Skip to content

Compliance: non-stub-feature-ideation.yml #414

Closed

Description

@don-petry

Compliance Finding

Category: ci-workflows
Severity: error
Check: non-stub-feature-ideation.yml

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.

Standard Reference

standards/ci-standards.md#centralization-tiers

Remediation

Copy the relevant workflow template from standards/workflows/ verbatim — do not generate from scratch:

gh api repos/petry-projects/.github/contents/standards/workflows/<template>.yml --jq '.content' | base64 -d > .github/workflows/<template>.yml

Available templates: agent-shield.yml, dev-lead.yml, dependabot-automerge.yml, dependabot-rebase.yml, dependency-audit.yml, feature-ideation.yml


This issue was automatically created by the weekly compliance audit.

Activity

  1. don-petry commented on Jul 3, 2026

    @don-petry
    CollaboratorAuthor

    Dev-Lead Implementation Plan

    Issue: #414 — Compliance: non-stub-feature-ideation.yml

    Scope

    Replace the drifted .github/workflows/feature-ideation.yml with the verbatim canonical stub from petry-projects/.github standards/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

  2. don-petry commented on Jul 3, 2026

    @don-petry
    CollaboratorAuthor

    Dev-Lead: Implementation Complete

    Plan Execution

    • 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.
  3. don-petry commented on Jul 10, 2026

    @don-petry
    CollaboratorAuthor

    Weekly Compliance Audit (2026-07-10)

    This finding is still open.

    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.

    Standard: standards/ci-standards.md#centralization-tiers

  4. added
    dev-leadFor dev-lead agent pickup
    and removed
    dev-leadFor dev-lead agent pickup
    on Jul 15, 2026
  5. don-petry commented on Jul 15, 2026

    @don-petry
    CollaboratorAuthor

    Dev-Lead Implementation Plan

    Issue: #414 — Compliance: non-stub-feature-ideation.yml

    Scope

    Replace the outdated .github/workflows/feature-ideation.yml caller stub with the canonical stub copied verbatim from petry-projects/.github standards/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.

  6. don-petry commented on Jul 15, 2026

    @don-petry
    CollaboratorAuthor

    Dev-Lead: Implementation Complete

    Plan Execution

    • 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 #963 discussion → workflow_dispatch redispatch bridge job, the #571 prep 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.
  7. don-petry commented on Jul 17, 2026

    @don-petry
    CollaboratorAuthor

    Resolved! This check is now passing as of 2026-07-17. Closing automatically.

  8. added a commit that references this issue on Jul 17, 2026
  9. added a commit that references this issue on Aug 4, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    compliance-auditAutomated compliance audit findingdev-leadFor dev-lead agent pickup

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions