Summary
The feature-ideation/v1-next reusable fails every run at the Install Python jsonschema step in the Gather Project Signals job, blocking both ideation modes (new-ideas scan and the human-idea enhancement sweep). Currently only petry-projects/.github-private is pinned to v1-next, so it has had no successful ideation run since 2026-07-12. This regression will break the whole fleet if v1-next is promoted to ring1 → stable.
Failing step
Run pip install --quiet --require-hashes --only-binary :all: -r .feature-ideation-tooling/scripts/feature-ideation-requirements.txt
ERROR: Could not open requirements file: [Errno 2] No such file or directory:
'.feature-ideation-tooling/scripts/feature-ideation-requirements.txt'
Process completed with exit code 1
(e.g. run https://github.com/petry-projects/.github-private/actions/runs/29797710230)
Root cause — canary tooling skew
feature-ideation-reusable.yml checks out petry-projects/.github into .feature-ideation-tooling at inputs.tooling_ref, which defaults to 'v1':
tooling_ref:
default: 'v1'
The v1-next reusable (commit 12b0075) added the new pip install … scripts/feature-ideation-requirements.txt step and the requirements file. But the file only exists on main and the feature-ideation/v1-next tag — it is absent from the v1 tag (commit d3d768d), which predates it:
| ref |
scripts/feature-ideation-requirements.txt |
main |
✅ present |
feature-ideation/v1-next |
✅ present |
v1 (tooling_ref default) |
❌ 404 |
feature-ideation/v1-ring1 / stable |
❌ absent (older reusable, no pip step — so those repos still pass) |
So the reusable YAML advanced to a version that depends on a new tooling file, but the tooling checkout still resolves to the old v1 tag → file missing → hard fail. The healthy repos (broodly/TalkTerm/bmad/.github on stable/ring0/ring1) pass only because their older reusable has no pip step yet.
Recommended fix
Make tooling track the reusable version so they can never skew (same fix pattern as the auto-rebase tooling_ref regression, #528 → job_workflow_sha):
- Preferred: default
tooling_ref to the reusable's own resolved sha (github.job_workflow_sha) instead of the floating v1 tag, so the tooling checkout always matches the reusable that requested it.
- Alternative (minimal): move the
v1 tag forward to a commit that includes scripts/feature-ideation-requirements.txt (or back-port the file onto v1).
Do not promote feature-ideation/v1-next past its current ring until this is fixed — promotion would propagate the failure to every consumer.
Acceptance
- A scheduled/dispatch run of the
v1-next reusable completes the Gather Project Signals job (pip install resolves).
.github-private produces Ideas Discussions again (new-ideas + backlog-enhancement modes both succeed).
- Regression test: tooling_ref/reusable skew cannot recur (e.g. tooling sourced from
job_workflow_sha).
🤖 Generated with Claude Code
Summary
The
feature-ideation/v1-nextreusable fails every run at theInstall Python jsonschemastep in theGather Project Signalsjob, blocking both ideation modes (new-ideas scan and the human-idea enhancement sweep). Currently onlypetry-projects/.github-privateis pinned tov1-next, so it has had no successful ideation run since 2026-07-12. This regression will break the whole fleet ifv1-nextis promoted to ring1 → stable.Failing step
(e.g. run https://github.com/petry-projects/.github-private/actions/runs/29797710230)
Root cause — canary tooling skew
feature-ideation-reusable.ymlchecks outpetry-projects/.githubinto.feature-ideation-toolingatinputs.tooling_ref, which defaults to'v1':The
v1-nextreusable (commit12b0075) added the newpip install … scripts/feature-ideation-requirements.txtstep and the requirements file. But the file only exists onmainand thefeature-ideation/v1-nexttag — it is absent from thev1tag (commitd3d768d), which predates it:scripts/feature-ideation-requirements.txtmainfeature-ideation/v1-nextv1(tooling_ref default)feature-ideation/v1-ring1/stableSo the reusable YAML advanced to a version that depends on a new tooling file, but the tooling checkout still resolves to the old
v1tag → file missing → hard fail. The healthy repos (broodly/TalkTerm/bmad/.github on stable/ring0/ring1) pass only because their older reusable has no pip step yet.Recommended fix
Make tooling track the reusable version so they can never skew (same fix pattern as the auto-rebase
tooling_refregression, #528 →job_workflow_sha):tooling_refto the reusable's own resolved sha (github.job_workflow_sha) instead of the floatingv1tag, so the tooling checkout always matches the reusable that requested it.v1tag forward to a commit that includesscripts/feature-ideation-requirements.txt(or back-port the file ontov1).Do not promote
feature-ideation/v1-nextpast its current ring until this is fixed — promotion would propagate the failure to every consumer.Acceptance
v1-nextreusable completes theGather Project Signalsjob (pip install resolves)..github-privateproduces Ideas Discussions again (new-ideas + backlog-enhancement modes both succeed).job_workflow_sha).🤖 Generated with Claude Code