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
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.
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_discussionworkflow_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.
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_discussionworkflow_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.
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:
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.
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:
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.
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.
Activity
don-petry commentedon Jul 17, 2026
Dev-Lead Implementation Plan
Issue: #329 — Compliance: stub-surface-drift-feature-ideation.yml-on
Scope
Re-sync the drifted
on:trigger surface of.github/workflows/feature-ideation.ymlto match the canonicalstandards/workflows/feature-ideation.ymlinpetry-projects/.github.Implementation Checklist
.github/workflows/feature-ideation.yml— add theenhance_backlogandtarget_discussionworkflow_dispatchinputs and update thediscussion:trigger comment so theon:block matches canonical verbatimTests to Write
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.shdon-petry commentedon Jul 17, 2026
Dev-Lead: Implementation Complete
Plan Execution
standards/workflows/feature-ideation.ymlfrompetry-projects/.githubviaraw.githubusercontent.com(REST API was rate-limited)on:block of.github/workflows/feature-ideation.ymlto match canonical verbatimon:block is byte-for-byte identical to canonical and the workflow YAML parses.dev-lead/scripts/dev-lead-lint.sh) — all checks passedTest Results
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 theenhance_backlogandtarget_discussionworkflow_dispatchinputs and updated thediscussion:trigger comment, bringing theon:surface back in sync with the canonical template. Scoped strictly to theon:surface named by findingstub-surface-drift-feature-ideation.yml-on—permissions:,concurrency:, thejobs:block, and theuses:channel pin were intentionally left untouched (already matching or repo-adjustable / out of this finding's scope).Notes
workflow_dispatchinputs are not yet referenced by this repo'sjobs:block (which retains its existing single-ideatestructure). Unusedworkflow_dispatchinputs are valid and inert, so the workflow remains syntactically and operationally sound. If a separate compliance finding targets thejobs:surface, it would be handled as its own issue.don-petry commentedon Jul 21, 2026
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.ymlto match the canonicalstandards/workflows/feature-ideation.yml, without touching the repo-adjustable tier channel pin or jobs.Diff (repo
on:vs canonicalon:)The canonical
on:block adds twoworkflow_dispatch.inputsand updates one comment:enhance_backlog(boolean) — backlog enhancement sweep inputtarget_discussion(string) — internal redispatch bridge inputdiscussion:trigger describing the redispatch bridgepermissions: {}and theconcurrency:block already match canonical — no change needed.Implementation Checklist
on:block in.github/workflows/feature-ideation.ymlto byte-match the canonicalon: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.shand, where available, actionlint.Test Command
bash ".dev-lead/scripts/dev-lead-lint.sh"(+ YAML parse validation)don-petry commentedon Jul 21, 2026
Dev-Lead: Implementation Complete
Plan Execution
on:trigger surface of.github/workflows/feature-ideation.ymlto byte-match the canonicalstandards/workflows/feature-ideation.ymlpermissions: {}andconcurrency:already matched canonical (no change needed)uses:ref) and job structure untouched, per the standard (onlywith:inputs and the tier channel pin may differ per repo)Change
Added the two
workflow_dispatch.inputsthe canonical surface owns and updated thediscussion:trigger comment:enhance_backlog(boolean) — backlog enhancement sweeptarget_discussion(string) — internal redispatch bridge inputdiscussion:updated to describe the redispatch bridgeVerification
The repo
on:block is now semantically identical to the canonicalon:block (verified via PyYAML deep-equality).actionlintis 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-ownedon:surface (addedenhance_backlog+target_discussiondispatch inputs; updated thediscussion:trigger comment). No changes topermissions:,concurrency:, the tier channel pin, or the jobs.Notes
-onsurface-drift finding, so they were intentionally left as-is.don-petry commentedon Jul 24, 2026
Weekly Compliance Audit (2026-07-24)
This finding is still open.
Detail: The
feature-ideation.ymlcaller stub'son:surface has drifted from the canonicalstandards/workflows/feature-ideation.yml. These stubs are thin callers — theon:triggers,permissions:grants, andconcurrency:block are owned centrally and are not repo-adjustable (only the documentedwith:inputs and the tier channel pin may differ per repo). Re-syncon:fromstandards/workflows/feature-ideation.yml.Standard: standards/ci-standards.md#centralization-tiers
don-petry commentedon Jul 31, 2026
Resolved! This check is now passing as of 2026-07-31. Closing automatically.
feat: implement issue #329 — Compliance: stub-surface-drift-feature-i…
feat: implement issue #329 — Compliance: stub-surface-drift-feature-i…
feat: implement issue #325 — Compliance: ruleset-drift-pr-quality-req…
feat: implement issue #329 — Compliance: stub-surface-drift-feature-i…
feat: implement issue #325 — Compliance: ruleset-drift-pr-quality-req…
feat: implement issue #400 — Compliance: ruleset-bypass-dependabot-co…