Repository navigation
[Phase 2] Repin .github-private's feature-ideation.yml stub to the feature-ideation/next channel + update its compliance test #874
Copy link
Copy link
Closed
Labels
dev-leadFor dev-lead agent pickupFor dev-lead agent pickupinitiativeEpic / initiative tracking issueEpic / initiative tracking issue
Description
Story
As a maintainer of .github-private (the next ring / dogfood-first repo),
I want repin this repo's feature-ideation.yml stub from the @v1 SHA to the feature-ideation/next channel tag and update test_feature_ideation.bats to assert the channel pin,
so that .github-private runs the candidate (folded-enhancement) version of feature-ideation first, exercising the unified capability before any other ring.
Acceptance Criteria
- .github/workflows/feature-ideation.yml
uses:line points atpetry-projects/.github/.github/workflows/feature-ideation-reusable.yml@feature-ideation/next(channel tag), replacing the@897e4de… # v1SHA pin. - No other part of the stub changes — trigger shape (schedule + workflow_dispatch + discussion:created), the ideas/non-Bot guard, the permissions block, the secrets block, the target_discussion input, and the project_context all stay as before except the single uses ref.
- tests/test_feature_ideation.bats is updated so it asserts the
@feature-ideation/nextchannel pin (and the org reusable path) instead of the@v1SHA /# v1annotation, and the whole bats file passes. - A comment in the stub records that the channel-tag pin is the sanctioned ring-release mechanism (an explicit, documented exception to the stub's 'do not edit the uses: line' guidance), citing the ring-release model.
Tasks / Subtasks
- Repin the single
uses:ref in .github/workflows/feature-ideation.yml to the feature-ideation/next channel tag. (AC: test issue from agent #1, Go-live improvements for PR review agent #2) - Rewrite the SHA/version-pin assertions in tests/test_feature_ideation.bats to assert the channel-tag pin; keep the 'calls the org reusable' assertion. (AC: Add @claude delegation, auto-merge, and rebase handling #3)
- Add a short in-stub comment documenting the channel pin as the sanctioned ring-release exception. (AC: Optimize review: small-PR and incremental fast paths #4)
Dev Notes
- The stub header in .github/workflows/feature-ideation.yml says 'You MUST NOT change … the uses: line'. The whole point of the canary/ring model is to pin once to a moving channel tag, so this repin is a SANCTIONED override of that guidance — precedent: AGENTS.md documents auto-rebase.yml deliberately pinning the reusable at @v2 ahead of the canonical @v1 stub. Note it in-stub so a future compliance pass doesn't 'fix' it back.
- tests/test_feature_ideation.bats currently hardcodes V1_SHA=897e4de… and asserts both
@<sha>and the trailing# v1annotation, plus a 'not pinned to v2' guard (it exists to prevent re-filing Compliance: non-stub-feature-ideation.yml #629). After the repin those assertions are wrong — replace them with a channel-pin assertion: grep foruses: petry-projects/.github/.github/workflows/feature-ideation-reusable.yml@feature-ideation/next. - HARD GATE (untracked prerequisites): (a) the
feature-ideation/nextchannel tag must already exist on petry-projects/.github, and (b) the orgnon-stub-feature-ideation.ymlcompliance audit must already accept a channel-tag pin — otherwise this repin breaks theuses:resolution and/or re-triggers the Compliance: non-stub-feature-ideation.yml #629 compliance finding. Both live in petry-projects/.github (see epic Untracked prerequisites and open questions). Confirm both are in place before merging. - feature-ideation.yml already carries the discussion:created enhancement trigger and the ideas/non-Bot guard, so repinning to /next changes WHICH reusable version runs (and thus gets the folded behavior) without touching triggers.
Project Structure Notes
Touches only .github/workflows/feature-ideation.yml and tests/test_feature_ideation.bats. The stub stays a thin caller; only its pinned ref changes.
References
- .github/workflows/feature-ideation.yml#uses
- tests/test_feature_ideation.bats
- AGENTS.md (auto-rebase @v2 precedent for an intentional non-canonical pin)
- docs/release/versioning.md#how-callers-select-a-version
Likely target surface
.github/workflows/feature-ideation.ymltests/test_feature_ideation.bats
Story prepared by the BMAD Scrum Master (Bob) for epic #872. Status: ready-for-dev.
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
dev-leadFor dev-lead agent pickupFor dev-lead agent pickupinitiativeEpic / initiative tracking issueEpic / initiative tracking issue
Activity
don-petry commentedon Jun 21, 2026
Dev-Lead Implementation Plan
Issue: #874 — [Phase 2] Repin .github-private's feature-ideation.yml stub to the feature-ideation/next channel + update its compliance test
Scope
Repin the
feature-ideation.ymlthin-caller stub from the@v1SHA to thefeature-ideation/nextchannel tag, document the repin as a sanctioned ring-release exception in-stub, and rewritetest_feature_ideation.batsto assert the channel pin.Implementation Checklist
.github/workflows/feature-ideation.yml— change the singleuses:ref from...feature-ideation-reusable.yml@897e4de… # v1to...@feature-ideation/next; nothing else in the stub changes (triggers, guard, permissions, secrets, target_discussion, project_context all stay).github/workflows/feature-ideation.yml— add a short comment recording the channel-tag pin as the sanctioned ring-release mechanism (explicit, documented override of the stub's "do not edit the uses: line" guidance), citing the ring-release modeltests/test_feature_ideation.bats— replace the V1_SHA /# v1/ "not pinned to v2" assertions with a channel-pin assertion (uses: petry-projects/.github/.github/workflows/feature-ideation-reusable.yml@feature-ideation/next); keep the "calls the org reusable" assertionTests to Write
@feature-ideation/next(channel tag)# v1annotation / v2-SHA-guard testsTest Command
bats tests/test_feature_ideation.bats(full suite viascripts/run-bats.sh), plusbash .dev-lead/scripts/dev-lead-lint.shNote — merge gate (untracked prerequisites, per Dev Notes / epic #872)
This repin depends on two prerequisites that live in
petry-projects/.github: (a) thefeature-ideation/nextchannel tag existing there, and (b) the orgnon-stub-feature-ideation.ymlaudit accepting a channel-tag pin. Checked viagit ls-remote: nofeature-ideation/*tags currently exist onpetry-projects/.github. Implementing the code change now, but this must be confirmed in place before merging or theuses:ref will not resolve / #629 re-triggers.don-petry commentedon Jun 21, 2026
Dev-Lead: Implementation Complete
Plan Execution
uses:ref in.github/workflows/feature-ideation.ymlfrom@897e4de… # v1to@feature-ideation/next(AC test issue from agent #1, Go-live improvements for PR review agent #2)@v2precedent (AC Optimize review: small-PR and incremental fast paths #4)tests/test_feature_ideation.bats: replaced theV1_SHApin /# v1annotation / "not pinned to v2 SHA" assertions with a single channel-pin assertion; kept the "calls the org reusable workflow" assertion (AC Add @claude delegation, auto-merge, and rebase handling #3)Test Results
TDD: the channel-pin assertion failed (red) against the old
@v1SHA pin, then passed (green) after the repin.Files Changed
.github/workflows/feature-ideation.yml: singleuses:ref repinned to@feature-ideation/next+ a sanctioned-ring-release comment above it. No other part of the stub changed — triggers (schedule + workflow_dispatch + discussion:created), the ideas/non-Bot guard,permissions:,secrets:,target_discussion, andproject_contextare all byte-identical.tests/test_feature_ideation.bats: asserts the@feature-ideation/nextchannel pin (and the org reusable path); dropped the now-wrong SHA/# v1/v2-guard tests. YAML validated; file passes.Notes — MERGE GATE (untracked prerequisites, per Dev Notes / epic #872)
This repin depends on two prerequisites that live in
petry-projects/.github, not this repo:feature-ideation/nextchannel tag must exist onpetry-projects/.github. I checked viagit ls-remote --tags https://github.com/petry-projects/.github.git— nofeature-ideation/*tags currently exist there. Until that tag is cut, this stub'suses:ref will not resolve and the workflow will fail to start.non-stub-feature-ideation.ymlcompliance audit must accept a channel-tag pin (otherwise the Compliance: non-stub-feature-ideation.yml #629 finding re-triggers on this repo).The code change is complete and self-consistent, but both prerequisites must be confirmed in place before this is merged. I cannot create cross-repo tags or merge, so flagging here for the maintainer.
feat: implement issue #874 — [Phase 2] Repin .github-private's featur…