Skip to content

Compliance: stub-surface-drift-feature-ideation.yml-on #329

Closed

Description

@don-petry

Compliance Finding

Category: ci-workflows
Severity: error
Check: stub-surface-drift-feature-ideation.yml-on

Detail

The feature-ideation.yml caller stub's on: surface has drifted from the canonical standards/workflows/feature-ideation.yml. These stubs are thin callers — the on: triggers, permissions: grants, and concurrency: block are owned centrally and are not repo-adjustable (only the documented with: inputs and the tier channel pin may differ per repo). Re-sync on: from standards/workflows/feature-ideation.yml.

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 17, 2026

    @don-petry
    ContributorAuthor

    Dev-Lead Implementation Plan

    Issue: #329 — Compliance: stub-surface-drift-feature-ideation.yml-on

    Note: The issue body originally handed to the agent was a GitHub API rate-limit (HTTP 403) error rather than the real issue content. The real issue was re-fetched via gh issue view 329. This plan is posted after implementation because the GitHub REST API was rate-limited (0/5000 remaining) during Phase 1; the canonical template was obtained via the non-rate-limited raw.githubusercontent.com endpoint.

    Scope

    Re-sync the drifted on: trigger surface of .github/workflows/feature-ideation.yml to match the canonical standards/workflows/feature-ideation.yml in petry-projects/.github.

    Implementation Checklist

    • .github/workflows/feature-ideation.yml — add the enhance_backlog and target_discussion workflow_dispatch inputs and update the discussion: trigger comment so the on: block matches canonical verbatim

    Tests to Write

    • N/A — CI configuration re-sync with no testable runtime behavior and no workflow-YAML test harness in this repo (Phase 2 exception: behavior-preserving config change). Validation is via YAML parse + byte-for-byte diff of the on: block against canonical.

    Test Command

    python3 -c "import yaml; yaml.safe_load(open('.github/workflows/feature-ideation.yml'))" + bash .dev-lead/scripts/dev-lead-lint.sh

  2. don-petry commented on Jul 17, 2026

    @don-petry
    ContributorAuthor

    Dev-Lead: Implementation Complete

    Plan Execution

    • Re-fetched the real issue (the handed-in body was a GitHub API rate-limit error, not the issue content)
    • Fetched canonical standards/workflows/feature-ideation.yml from petry-projects/.github via raw.githubusercontent.com (REST API was rate-limited)
    • Re-synced the on: block of .github/workflows/feature-ideation.yml to match canonical verbatim
    • Verified the on: block is byte-for-byte identical to canonical and the workflow YAML parses
    • Ran repo lint (.dev-lead/scripts/dev-lead-lint.sh) — all checks passed

    Test Results

    === diff of on: block (local vs canonical) ===
    ON BLOCKS IDENTICAL
    === YAML parse check ===
    YAML OK
    
      [lint] shellcheck: no .sh files found — skipping
      [lint] validating CODEOWNERS...
    OK: CODEOWNERS
      [lint] all checks passed
    

    No unit-test framework applies to workflow YAML; validation is YAML parse + byte-for-byte on:-block diff against canonical (Phase 2 TDD exception: behavior-preserving CI configuration re-sync).

    Files Changed

    • .github/workflows/feature-ideation.yml: Added the enhance_backlog and target_discussion workflow_dispatch inputs and updated the discussion: trigger comment, bringing the on: surface back in sync with the canonical template. Scoped strictly to the on: surface named by finding stub-surface-drift-feature-ideation.yml-on — permissions:, concurrency:, the jobs: block, and the uses: channel pin were intentionally left untouched (already matching or repo-adjustable / out of this finding's scope).

    Notes

    • The two new workflow_dispatch inputs are not yet referenced by this repo's jobs: block (which retains its existing single-ideate structure). Unused workflow_dispatch inputs are valid and inert, so the workflow remains syntactically and operationally sound. If a separate compliance finding targets the jobs: surface, it would be handled as its own issue.
    • The GitHub REST API was rate-limited (0/5000 shared quota) throughout the run; the canonical template was retrieved via the non-rate-limited raw endpoint, and these issue comments were posted after the quota reset.
  3. added
    dev-leadFor dev-lead agent pickup
    and removed
    dev-leadFor dev-lead agent pickup
    on Jul 21, 2026
  4. don-petry commented on Jul 21, 2026

    @don-petry
    ContributorAuthor

    Dev-Lead Implementation Plan

    Issue: #329 — Compliance: stub-surface-drift-feature-ideation.yml-on

    Scope

    Re-sync the centrally-owned on: trigger surface of .github/workflows/feature-ideation.yml to match the canonical standards/workflows/feature-ideation.yml, without touching the repo-adjustable tier channel pin or jobs.

    Diff (repo on: vs canonical on:)

    The canonical on: block adds two workflow_dispatch.inputs and updates one comment:

    • enhance_backlog (boolean) — backlog enhancement sweep input
    • target_discussion (string) — internal redispatch bridge input
    • Updated comment above the discussion: trigger describing the redispatch bridge

    permissions: {} and the concurrency: block already match canonical — no change needed.

    Implementation Checklist

    • Update the on: block in .github/workflows/feature-ideation.yml to byte-match the canonical on: surface (add the two inputs + comment)

    Tests to Write

    This is a CI-workflow configuration change with no runtime code path. Per Phase 2 exception (pure configuration change, no observable behavioral change to test harness), no unit tests apply. Verification is via YAML validity + the repo's dev-lead-lint.sh and, where available, actionlint.

    Test Command

    bash ".dev-lead/scripts/dev-lead-lint.sh" (+ YAML parse validation)

  5. don-petry commented on Jul 21, 2026

    @don-petry
    ContributorAuthor

    Dev-Lead: Implementation Complete

    Plan Execution

    • Re-synced the on: trigger surface of .github/workflows/feature-ideation.yml to byte-match the canonical standards/workflows/feature-ideation.yml
    • Confirmed permissions: {} and concurrency: already matched canonical (no change needed)
    • Left the repo-adjustable tier channel pin (uses: ref) and job structure untouched, per the standard (only with: inputs and the tier channel pin may differ per repo)

    Change

    Added the two workflow_dispatch.inputs the canonical surface owns and updated the discussion: trigger comment:

    • enhance_backlog (boolean) — backlog enhancement sweep
    • target_discussion (string) — internal redispatch bridge input
    • Comment above discussion: updated to describe the redispatch bridge

    Verification

    === on: surface parity vs canonical ===
    repo on == canonical on: True
    on-surface keys: ['schedule', 'workflow_dispatch', 'discussion']
    dispatch inputs: ['focus_area', 'research_depth', 'dry_run', 'enhance_backlog', 'target_discussion']
    repo YAML valid: OK
    
    === dev-lead-lint.sh ===
      [lint] shellcheck: no .sh files found — skipping
      [lint] validating CODEOWNERS...
    OK: CODEOWNERS
      [lint] all checks passed
    

    The repo on: block is now semantically identical to the canonical on: block (verified via PyYAML deep-equality). actionlint is not installed in this environment, so YAML validity was verified via a full PyYAML parse instead.

    Files Changed

    • .github/workflows/feature-ideation.yml: re-synced the centrally-owned on: surface (added enhance_backlog + target_discussion dispatch inputs; updated the discussion: trigger comment). No changes to permissions:, concurrency:, the tier channel pin, or the jobs.

    Notes

    • No test-first (TDD) phase: this is a pure CI-workflow configuration re-sync with no runtime code path to exercise (Phase 2 documented exception).
    • The two added dispatch inputs are unused by this stub's current single-job structure — that is expected. Job structure and the tier channel pin are repo-adjustable and out of scope for the -on surface-drift finding, so they were intentionally left as-is.
  6. don-petry commented on Jul 24, 2026

    @don-petry
    ContributorAuthor

    Weekly Compliance Audit (2026-07-24)

    This finding is still open.

    Detail: The feature-ideation.yml caller stub's on: surface has drifted from the canonical standards/workflows/feature-ideation.yml. These stubs are thin callers — the on: triggers, permissions: grants, and concurrency: block are owned centrally and are not repo-adjustable (only the documented with: inputs and the tier channel pin may differ per repo). Re-sync on: from standards/workflows/feature-ideation.yml.

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

  7. don-petry commented on Jul 31, 2026

    @don-petry
    ContributorAuthor

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

  8. added 3 commits that reference this issue on Aug 2, 2026
  9. added 3 commits that reference this issue on Aug 14, 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