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
Investigate the 50% failure rate of feature-ideation.yml and determine the correct fix location.
Investigation findings
The failing runs are workflow_dispatch / schedule (fast ~17β21s). discussion runs pass because they only execute the local redispatch job and never call the reusable.
The failing step is inside the reusablefeature-ideation-reusable.yml (hosted in petry-projects/.github, pinned here via the sanctioned @feature-ideation/v1-next ring channel): ideate / Gather Project Signals β Install Python jsonschema:
ERROR: Could not open requirements file: [Errno 2] No such file or directory:
'.feature-ideation-tooling/scripts/feature-ideation-requirements.txt'
Root cause: the reusable checks out its tooling from petry-projects/.github at tooling_ref (default v1). scripts/feature-ideation-requirements.txt is 404 at the v1 tag but present at main and feature-ideation/v1-next. The v1 tooling tag is stale / was never moved forward.
Conclusion β no in-repo change is correct
This repo holds only the thin caller stub, which is drift-free with the org template (tests/test_feature_ideation.bats passes; repo lint passes). The defect is entirely in the cross-repo reusable / its v1 tooling tag.
The tempting workaround β forwarding tooling_ref: from this stub to override the broken v1 default β is rejected:
The org template stub does not forward tooling_ref; adding it would create template drift (flagged by the template-drift / stub-drift guards) and violate thin-caller-stub minimalism.
It would only mask the stale-tag defect for this one consumer while every other feature-ideation consumer stays broken.
Exempting the workflow from Fleet Monitor (FLEET_GATE_WORKFLOWS) is also rejected β this is a real failure, not intentional gate enforcement.
Required fix (cross-repo, petry-projects/.github)
Move the v1 tag forward to a commit that includes scripts/feature-ideation-requirements.txt (the reusable's own docs assume v1 tracks releases), or fix the reusable's tooling_ref default. Out of scope for this repository.
Dev-Lead: Investigation Complete β No In-Repo Fix (Cross-Repo Root Cause)
Root cause
The DEGRADED status is caused by a defect in the cross-repo reusable, not this repo's caller stub.
Failing workflow_dispatch/schedule runs die in the reusable feature-ideation-reusable.yml (petry-projects/.github, pinned via the sanctioned @feature-ideation/v1-next ring channel) at ideate / Gather Project Signals β Install Python jsonschema:
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'
##[error]Process completed with exit code 1.
The reusable checks out its tooling from petry-projects/.github at tooling_ref (default v1). scripts/feature-ideation-requirements.txt is 404 at tag v1 but present at main and feature-ideation/v1-next β the v1 tooling tag is stale / was never advanced to a release carrying
the requirements file. discussion runs pass because they only execute the local redispatch job and
never invoke the reusable (matching the observed 50%: dispatch/schedule fail, discussion succeeds).
Decision β no changes to .github-private
This repo holds only the thin caller stub, which is drift-free with the org template and correct.
No source change here can fix a stale tag in another repo, and the tempting workarounds are guardrail
violations:
Forwarding tooling_ref: from the stub to override the broken v1 default β rejected. The org
template does not forward it, so this creates template drift (template-drift / stub-drift guards)
and violates thin-caller minimalism, while masking the defect for only this one consumer.
Exempting the workflow via FLEET_GATE_WORKFLOWS β rejected. This is a real failure, not
intentional gate enforcement; suppressing it would hide the bug.
Required fix (out of scope β petry-projects/.github)
Move the v1 tag forward to a commit that includes scripts/feature-ideation-requirements.txt (the
reusable's tooling_ref docs assume v1 tracks releases), or correct the reusable's tooling_ref
default. Recommend opening a tracking issue against petry-projects/.github.
Verification (this repo)
$ bats tests/test_feature_ideation.bats
1..15
ok 1..15 (all pass)
$ bash .dev-lead/scripts/dev-lead-lint.sh
[lint] shellcheck on 98 file(s)...
[lint] validating 4 agent profile(s)...
[lint] all checks passed
Files Changed
None. Root cause is cross-repo; the in-repo stub is correct and drift-free.
Phase 2 (TDD) note
Skipped per the documented exception β there is no in-repo behavioral change to test. Existing tests/test_feature_ideation.bats already pins the stub's drift-free contract and stays green.
Notes
No in-repo action is appropriate. Fix must land in petry-projects/.github (stale v1 tooling tag).
β Auto-resolved by Fleet Monitor. This workflow's failure rate has been below the 10% threshold (or the workflow was removed) since 2026-07-23 (3 days) β the monitor stopped flagging it. Closing. It will reopen automatically if the workflow crosses the threshold again.
Activity
don-petry commentedon Jul 22, 2026
Dev-Lead Implementation Plan
Issue: #1354 β [Fleet Monitor] petry-projects/.github-private β .github/workflows/feature-ideation.yml
Scope
Investigate the 50% failure rate of
feature-ideation.ymland determine the correct fix location.Investigation findings
workflow_dispatch/schedule(fast ~17β21s).discussionruns pass because they only execute the localredispatchjob and never call the reusable.feature-ideation-reusable.yml(hosted inpetry-projects/.github, pinned here via the sanctioned@feature-ideation/v1-nextring channel):ideate / Gather Project Signals β Install Python jsonschema:petry-projects/.githubattooling_ref(defaultv1).scripts/feature-ideation-requirements.txtis 404 at thev1tag but present atmainandfeature-ideation/v1-next. Thev1tooling tag is stale / was never moved forward.Conclusion β no in-repo change is correct
This repo holds only the thin caller stub, which is drift-free with the org template (
tests/test_feature_ideation.batspasses; repo lint passes). The defect is entirely in the cross-repo reusable / itsv1tooling tag.The tempting workaround β forwarding
tooling_ref:from this stub to override the brokenv1default β is rejected:tooling_ref; adding it would create template drift (flagged by thetemplate-drift/ stub-drift guards) and violate thin-caller-stub minimalism.feature-ideationconsumer stays broken.Exempting the workflow from Fleet Monitor (
FLEET_GATE_WORKFLOWS) is also rejected β this is a real failure, not intentional gate enforcement.Required fix (cross-repo,
petry-projects/.github)Move the
v1tag forward to a commit that includesscripts/feature-ideation-requirements.txt(the reusable's own docs assumev1tracks releases), or fix the reusable'stooling_refdefault. Out of scope for this repository.Test Command
bats tests/test_feature_ideation.bats(+bash .dev-lead/scripts/dev-lead-lint.sh)don-petry commentedon Jul 22, 2026
Dev-Lead: Investigation Complete β No In-Repo Fix (Cross-Repo Root Cause)
Root cause
The DEGRADED status is caused by a defect in the cross-repo reusable, not this repo's caller stub.
Failing
workflow_dispatch/scheduleruns die in the reusablefeature-ideation-reusable.yml(petry-projects/.github, pinned via the sanctioned@feature-ideation/v1-nextring channel) atideate / Gather Project Signals β Install Python jsonschema:The reusable checks out its tooling from
petry-projects/.githubattooling_ref(defaultv1).scripts/feature-ideation-requirements.txtis 404 at tagv1but present atmainandfeature-ideation/v1-nextβ thev1tooling tag is stale / was never advanced to a release carryingthe requirements file.
discussionruns pass because they only execute the localredispatchjob andnever invoke the reusable (matching the observed 50%: dispatch/schedule fail, discussion succeeds).
Decision β no changes to
.github-privateThis repo holds only the thin caller stub, which is drift-free with the org template and correct.
No source change here can fix a stale tag in another repo, and the tempting workarounds are guardrail
violations:
tooling_ref:from the stub to override the brokenv1default β rejected. The orgtemplate does not forward it, so this creates template drift (
template-drift/ stub-drift guards)and violates thin-caller minimalism, while masking the defect for only this one consumer.
FLEET_GATE_WORKFLOWSβ rejected. This is a real failure, notintentional gate enforcement; suppressing it would hide the bug.
Required fix (out of scope β
petry-projects/.github)Move the
v1tag forward to a commit that includesscripts/feature-ideation-requirements.txt(thereusable's
tooling_refdocs assumev1tracks releases), or correct the reusable'stooling_refdefault. Recommend opening a tracking issue against
petry-projects/.github.Verification (this repo)
Files Changed
Phase 2 (TDD) note
Skipped per the documented exception β there is no in-repo behavioral change to test. Existing
tests/test_feature_ideation.batsalready pins the stub's drift-free contract and stays green.Notes
No in-repo action is appropriate. Fix must land in
petry-projects/.github(stalev1tooling tag).don-petry commentedon Jul 26, 2026
β Auto-resolved by Fleet Monitor. This workflow's failure rate has been below the 10% threshold (or the workflow was removed) since 2026-07-23 (3 days) β the monitor stopped flagging it. Closing. It will reopen automatically if the workflow crosses the threshold again.