You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Centralized workflow feature-ideation.yml references the reusable but is not pinned to @v1 (org standard). Replace with the canonical stub from standards/workflows/feature-ideation.yml which delegates to petry-projects/.github/.github/workflows/feature-ideation-reusable.yml@v1.
Replace the drifted .github/workflows/feature-ideation.yml with the verbatim canonical stub from petry-projects/.githubstandards/workflows/feature-ideation.yml, which pins the reusable to the current @v1 SHA and includes the up-to-date discussion → workflow_dispatch redispatch bridge.
Implementation Checklist
Fetch canonical standards/workflows/feature-ideation.yml from petry-projects/.github (already retrieved)
Overwrite .github/workflows/feature-ideation.yml with the canonical content verbatim
Confirm no per-repo project_context customisation is lost (both current and canonical still carry the TODO placeholder — nothing to preserve)
Verify no other files couple to this workflow's internals (sonar-project.properties references only the path, not content)
Tests to Write
None — pure CI-config replacement of a thin caller stub with no require()-able logic. Phase 2 (TDD) is skipped under the documented exception for behavior-preserving configuration changes. Verification is via YAML validity + repo lint/test suite.
Test Command
npm test (full Jest suite + coverage) and bash .dev-lead/scripts/dev-lead-lint.sh
Fetched canonical standards/workflows/feature-ideation.yml from petry-projects/.github
Overwrote .github/workflows/feature-ideation.yml with the canonical content verbatim
Confirmed no per-repo project_context was lost — both old and canonical carry the same TODO placeholder
Confirmed no content coupling elsewhere — sonar-project.properties references only the file path (a SonarCloud ignore rule), not its contents
Test Results
> jest --runInBand
Test Suites: 12 passed, 12 total
Tests: 301 passed, 301 total
📊 Coverage Report:
✅ statements : 98.91% (999/1010) [required: 95%]
✅ branches : 90.00% (558/620) [required: 85%]
✅ functions : 98.00% (98/100) [required: 95%]
✅ lines : 100% (0/0) [required: 100%]
✅ All coverage metrics meet requirements.
# npm run check → 0 errors (only pre-existing unused-var warnings in unrelated test files)
# npx prettier --check .github/workflows/feature-ideation.yml → All matched files use Prettier code style!
# bash .dev-lead/scripts/dev-lead-lint.sh → all checks passed
# python yaml.safe_load → YAML valid
Files Changed
.github/workflows/feature-ideation.yml: replaced the drifted stub with the canonical org stub. The reusable pin advances from @c2beceb…# v1 to the canonical @e20a8fac…# v1, and the stub gains the up-to-date discussion → workflow_dispatch redispatch bridge (#963), the enhance_backlog/target_discussion dispatch inputs, and target_discussion: ${{ inputs.target_discussion || '' }}.
Notes
TDD (Phase 2) skipped under the documented exception: this is a behavior-preserving CI-config replacement of a thin caller stub with no require()-able logic and no unit-testable surface. Verified instead via YAML validity, prettier, dev-lead lint, and the full Jest suite.
One-line deviation from byte-for-byte verbatim: the repo's mandatory prettier pass normalized a single YAML string in the enhance_backlog description from single-quoted ('…repo''s…') to double-quoted ("…repo's…"). Semantically identical; required so npm run check passes. The stub logic is otherwise identical to the canonical source of truth.
project_context remains the TODO placeholder, matching the canonical template — no repo-specific customization existed to preserve.
Detail: Centralized workflow feature-ideation.yml references the reusable but is not pinned to @v1 (org standard). Replace with the canonical stub from standards/workflows/feature-ideation.yml which delegates to petry-projects/.github/.github/workflows/feature-ideation-reusable.yml@v1.
Replace the outdated .github/workflows/feature-ideation.yml caller stub with the canonical stub copied verbatim from petry-projects/.githubstandards/workflows/feature-ideation.yml.
Implementation Checklist
Overwrite .github/workflows/feature-ideation.yml with the verbatim canonical stub via gh api ... | base64 -d
Confirm the new stub delegates to the reusable via the org-standard pinned ref
Confirm no repo-local customisation (project_context is a TODO placeholder here, matching the template) is lost
Tests to Write
N/A — this is a CI/config change (GitHub workflow YAML). No test framework covers workflow files in this repo; Phase 2 TDD exception applies (behavior-preserving config remediation). Validation is via YAML lint / shellcheck of embedded scripts.
Test Command
bash .dev-lead/scripts/dev-lead-lint.sh (repo lint), plus npm run check and npm test for the JS suite.
Overwrote .github/workflows/feature-ideation.yml with the verbatim canonical stub via gh api repos/petry-projects/.github/contents/standards/workflows/feature-ideation.yml --jq '.content' | base64 -d
Verified byte-for-byte match against the canonical source (diff reported MATCH before prettier normalization)
Confirmed the stub delegates to petry-projects/.github/.github/workflows/feature-ideation-reusable.yml and preserves the job-level permissions: and secrets: blocks
Confirmed no repo-local customisation was lost (project_context was — and remains — the template TODO placeholder)
Test Results
No test framework covers GitHub workflow YAML in this repo, so the Phase 2 TDD exception applies (behavior-preserving CI/config remediation). Validation was via lint + the existing JS suite:
# dev-lead lint
[lint] shellcheck on 4 file(s)...
[lint] validating CODEOWNERS...
OK: CODEOWNERS
[lint] all checks passed
# npm run check (prettier + eslint)
✖ 22 problems (0 errors, 22 warnings) # warnings are pre-existing in unrelated test files
=== CHECK EXIT: 0 ===
# npm test -- --coverage
Test Suites: 12 passed, 12 total
Tests: 301 passed, 301 total
# node scripts/check-coverage.js
✅ statements : 98.91% (999/1010) [required: 95%]
✅ branches : 90.00% (558/620) [required: 85%]
✅ functions : 98.00% (98/100) [required: 95%]
✅ lines : 100% (0/0) [required: 100%]
✅ All coverage metrics meet requirements.
Files Changed
.github/workflows/feature-ideation.yml: Replaced the outdated caller stub with the canonical template. This brings in the drift that had accumulated centrally: the #963discussion → workflow_dispatch redispatch bridge job, the #571prep input-resolution job (keeps inputs.* out of the reusable with: to avoid a zero-job startup failure on the discussion event), and the new enhance_backlog / target_discussion dispatch inputs. The uses: delegation, job-level permissions:, and secrets: blocks are preserved.
Notes
Ref discrepancy: the issue body states the reusable should be pinned to @v1, but the actual canonical template at standards/workflows/feature-ideation.yml pins @feature-ideation/stable (a first-party release channel, carrying a NOSONAR(githubactions:S7637) marker). The remediation instructs to copy the template verbatim — do not generate from scratch, so the file now matches the canonical source exactly. The @v1 in the prose appears to be a generic placeholder in the audit template rather than the literal ref for this workflow.
Prettier normalization: two purely cosmetic prettier changes were applied to pass the repo's mandatory npm run check gate (single→double quoted YAML string with an embedded apostrophe, and double→single space before an inline # NOSONAR comment). Both are semantically identical to the canonical source and consistent with the repo's other prettier-formatted workflows.
No source/behavioral code changed; all 301 existing tests pass and coverage thresholds are met.
Activity
don-petry commentedon Jul 3, 2026
Dev-Lead Implementation Plan
Issue: #414 — Compliance: non-stub-feature-ideation.yml
Scope
Replace the drifted
.github/workflows/feature-ideation.ymlwith the verbatim canonical stub frompetry-projects/.githubstandards/workflows/feature-ideation.yml, which pins the reusable to the current@v1SHA and includes the up-to-datediscussion → workflow_dispatchredispatch bridge.Implementation Checklist
standards/workflows/feature-ideation.ymlfrompetry-projects/.github(already retrieved).github/workflows/feature-ideation.ymlwith the canonical content verbatimproject_contextcustomisation is lost (both current and canonical still carry the TODO placeholder — nothing to preserve)Tests to Write
require()-able logic. Phase 2 (TDD) is skipped under the documented exception for behavior-preserving configuration changes. Verification is via YAML validity + repo lint/test suite.Test Command
npm test(full Jest suite + coverage) andbash .dev-lead/scripts/dev-lead-lint.shdon-petry commentedon Jul 3, 2026
Dev-Lead: Implementation Complete
Plan Execution
standards/workflows/feature-ideation.ymlfrompetry-projects/.github.github/workflows/feature-ideation.ymlwith the canonical content verbatimproject_contextwas lost — both old and canonical carry the same TODO placeholdersonar-project.propertiesreferences only the file path (a SonarCloud ignore rule), not its contentsTest Results
Files Changed
.github/workflows/feature-ideation.yml: replaced the drifted stub with the canonical org stub. The reusable pin advances from@c2beceb…# v1to the canonical@e20a8fac…# v1, and the stub gains the up-to-datediscussion → workflow_dispatchredispatch bridge (#963), theenhance_backlog/target_discussiondispatch inputs, andtarget_discussion: ${{ inputs.target_discussion || '' }}.Notes
require()-able logic and no unit-testable surface. Verified instead via YAML validity, prettier, dev-lead lint, and the full Jest suite.prettierpass normalized a single YAML string in theenhance_backlogdescription from single-quoted ('…repo''s…') to double-quoted ("…repo's…"). Semantically identical; required sonpm run checkpasses. The stub logic is otherwise identical to the canonical source of truth.project_contextremains the TODO placeholder, matching the canonical template — no repo-specific customization existed to preserve.don-petry commentedon Jul 10, 2026
Weekly Compliance Audit (2026-07-10)
This finding is still open.
Detail: Centralized workflow
feature-ideation.ymlreferences the reusable but is not pinned to@v1(org standard). Replace with the canonical stub fromstandards/workflows/feature-ideation.ymlwhich delegates topetry-projects/.github/.github/workflows/feature-ideation-reusable.yml@v1.Standard: standards/ci-standards.md#centralization-tiers
don-petry commentedon Jul 15, 2026
Dev-Lead Implementation Plan
Issue: #414 — Compliance: non-stub-feature-ideation.yml
Scope
Replace the outdated
.github/workflows/feature-ideation.ymlcaller stub with the canonical stub copied verbatim frompetry-projects/.githubstandards/workflows/feature-ideation.yml.Implementation Checklist
.github/workflows/feature-ideation.ymlwith the verbatim canonical stub viagh api ... | base64 -dTests to Write
Test Command
bash .dev-lead/scripts/dev-lead-lint.sh(repo lint), plusnpm run checkandnpm testfor the JS suite.don-petry commentedon Jul 15, 2026
Dev-Lead: Implementation Complete
Plan Execution
.github/workflows/feature-ideation.ymlwith the verbatim canonical stub viagh api repos/petry-projects/.github/contents/standards/workflows/feature-ideation.yml --jq '.content' | base64 -ddiffreported MATCH before prettier normalization)petry-projects/.github/.github/workflows/feature-ideation-reusable.ymland preserves the job-levelpermissions:andsecrets:blocksproject_contextwas — and remains — the template TODO placeholder)Test Results
No test framework covers GitHub workflow YAML in this repo, so the Phase 2 TDD exception applies (behavior-preserving CI/config remediation). Validation was via lint + the existing JS suite:
Files Changed
.github/workflows/feature-ideation.yml: Replaced the outdated caller stub with the canonical template. This brings in the drift that had accumulated centrally: the#963discussion → workflow_dispatchredispatch bridge job, the#571prepinput-resolution job (keepsinputs.*out of the reusablewith:to avoid a zero-job startup failure on thediscussionevent), and the newenhance_backlog/target_discussiondispatch inputs. Theuses:delegation, job-levelpermissions:, andsecrets:blocks are preserved.Notes
@v1, but the actual canonical template atstandards/workflows/feature-ideation.ymlpins@feature-ideation/stable(a first-party release channel, carrying aNOSONAR(githubactions:S7637)marker). The remediation instructs to copy the template verbatim — do not generate from scratch, so the file now matches the canonical source exactly. The@v1in the prose appears to be a generic placeholder in the audit template rather than the literal ref for this workflow.npm run checkgate (single→double quoted YAML string with an embedded apostrophe, and double→single space before an inline# NOSONARcomment). Both are semantically identical to the canonical source and consistent with the repo's other prettier-formatted workflows.don-petry commentedon Jul 17, 2026
Resolved! This check is now passing as of 2026-07-17. Closing automatically.
feat: implement issue #414 — Compliance: non-stub-feature-ideation.yml (
feat: implement issue #414 — Compliance: non-stub-feature-ideation.yml (