Summary
The RSR workflow templates in this repo use a uses: ref form that GitHub Actions does not support:
uses: ../../.github/workflows/codeql-reusable.yml
A reusable-workflow uses: may only be ./.github/workflows/<file>.yml (same repo) or
<owner>/<repo>/.github/workflows/<file>.yml@<ref> (cross repo). A ../ path is rejected at
parse time, so every workflow instantiated from these templates is permanently dead.
Why it was invisible
A workflow that fails this way produces the triple conclusion=failure, 0 jobs, and a run
name equal to its path rather than its declared name:. That is the same triple produced
by callee-lockfile poisoning, so these have been repeatedly mis-triaged as lockfile faults.
They are not — they never parsed.
Measured on hyperpolymath/a2ml: six workflows (codeql, governance, mirror,
scorecard, secret-scanner, hypatia-scan) all died on a single push at 2026-09-14T21:40.
Six simultaneous 0-job failures in one repo is the tell.
Population (a FLOOR, not a total)
GitHub code search for "uses: ../../.github/workflows" user:hyperpolymath extension:yml
returns 41 files:
| Kind |
Repos |
Files |
Live (root .github/workflows/) — dead workflows |
hyperpolymath/lol (7), hyperpolymath/deed-core (6) |
13 |
| Template / nested (inert, but the source) |
hyperpolymath/standards (24), hyperpolymath/k9-ecosystem (4) |
28 |
⚠ Code search undercounts. hyperpolymath/a2ml carries the identical broken ref — verified
directly through the contents API — yet does not appear in the search results. The real live
population must be established with a contents-API sweep over the estate, not code search.
The 24 files in this repo sit under rhodium-standard-repositories/, meta-a2ml/,
axel-protocol/ and 0-ai-gatekeeper-protocol/. They are inert here (GitHub only executes
.github/workflows/ at the repo root) but they are what gets copied outward.
Acceptance criteria
Related
🤖 Generated with Claude Code
https://claude.ai/code/session_01HfgwLCdKNd5iZVo6VTiSim
Summary
The RSR workflow templates in this repo use a
uses:ref form that GitHub Actions does not support:A reusable-workflow
uses:may only be./.github/workflows/<file>.yml(same repo) or<owner>/<repo>/.github/workflows/<file>.yml@<ref>(cross repo). A../path is rejected atparse time, so every workflow instantiated from these templates is permanently dead.
Why it was invisible
A workflow that fails this way produces the triple
conclusion=failure, 0 jobs, and a runnameequal to its path rather than its declaredname:. That is the same triple producedby callee-lockfile poisoning, so these have been repeatedly mis-triaged as lockfile faults.
They are not — they never parsed.
Measured on
hyperpolymath/a2ml: six workflows (codeql,governance,mirror,scorecard,secret-scanner,hypatia-scan) all died on a single push at2026-09-14T21:40.Six simultaneous 0-job failures in one repo is the tell.
Population (a FLOOR, not a total)
GitHub code search for
"uses: ../../.github/workflows" user:hyperpolymath extension:ymlreturns 41 files:
.github/workflows/) — dead workflowshyperpolymath/lol(7),hyperpolymath/deed-core(6)hyperpolymath/standards(24),hyperpolymath/k9-ecosystem(4)⚠ Code search undercounts.
hyperpolymath/a2mlcarries the identical broken ref — verifieddirectly through the contents API — yet does not appear in the search results. The real live
population must be established with a contents-API sweep over the estate, not code search.
The 24 files in this repo sit under
rhodium-standard-repositories/,meta-a2ml/,axel-protocol/and0-ai-gatekeeper-protocol/. They are inert here (GitHub only executes.github/workflows/at the repo root) but they are what gets copied outward.Acceptance criteria
uses: ../../.github/workflows/<x>-reusable.ymlin this repo's template directoriesis replaced with
hyperpolymath/standards/.github/workflows/<x>-reusable.yml@<sha>,SHA-pinned, with the SHA present in
actions.lock.hyperpolymath/k9-ecosystem/dispatch-templates/from-k9-svc/.../uses:ref at root
.github/workflows/; the resulting list is recorded in this issue.hyperpolymath/lol,hyperpolymath/deed-coreandhyperpolymath/a2mlare repaired andeach shows a non-zero job count on a re-fired run.
(⚠
a2mlis under a standing hands-off hold — owner to confirm before touching it.)uses:containing../or$/— extend the existinguses ⊆ actions.lockgate, which today only inspects SHA-pinned refs and so is blind tothis class entirely.
../ref and the guard is proven to fail on it(mutant must die).
Related
uses ⊆ actions.lockgate landed in fix(standards): unblock commits, repair the lockfile, gate it in CI #804 does not catch this: it matches only@<40-hex>refs, and these have no@refat all.gh actions-lockrewrite mode inventinguses: $/.github/actions/....🤖 Generated with Claude Code
https://claude.ai/code/session_01HfgwLCdKNd5iZVo6VTiSim