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
Observation filed while implementing #8170 (PR #8227). Not fixed there — out of that card's scope.
The finding
The survey both #8110 and #8170 rest on is: enumerate the root check:* scripts, grep them against .github/workflows/**with YAML comment lines stripped, and treat a script matched by nothing as unwired. That method is sound for its purpose, and its comment-stripping step is what made it correct in the first place.
But the fix both cards landed is a step invoking the script directly:
- name: Self-test the skill-frame freshness gate (self-test half only, never the scan)
run: node scripts/check-skill-frame-freshness.mjs --self-test
— deliberately not pnpm check:skill-frame-freshness, because the npm script is --self-test && the scan and the scan half must not come along. Same for #8170's step.
The consequence: the npm script name still appears in no workflow, so re-running the same survey today reports both landed gates as unwired. Measured on main plus PR #8227's head, comments stripped:
check:skill-frame-freshness -> 0 workflow references (wired since PR #8171)
check:dev-prereqs -> 0 workflow references (wired in PR #8227)
check:platform-checklist -> 0 workflow references (genuinely out, by policy)
All three columns read identically, and only one of the three is still a real finding. The next agent running this survey re-discovers two cards that are already closed, and the negative half of the survey — the part the original card went out of its way to make reviewable — is what stops being reviewable.
Why it is worth recording
The survey is not a committed script; it lives as prose in #8110 and #8170. So nothing will notice it going stale, and the failure mode is exactly the one the family is about: a check that reads as coverage while measuring the wrong thing.
Dispositions, not a recommendation
Refine the criterion — a script counts as wired if EITHER the npm script name OR scripts/(its file) appears in an uncommented workflow line. One-line change to the method, zero change to the repo. Cheapest, and keeps the survey ad-hoc.
Codify it as a gate — a check: that reconciles the root check:* list against workflow wiring in both directions, with an explicit ledger for the deliberate exclusions (check:platform-checklist, and the scan halves of the two split gates). Real coverage, real cost: the ledger is another hand-kept list, and this repo already carries several.
No recommendation offered — the choice between 1 and 2 is a maintainer call about how much survey tooling the devx surface should carry, and disposition 2 in particular is a new permanent gate rather than a fix.
Observation filed while implementing #8170 (PR #8227). Not fixed there — out of that card's scope.
The finding
The survey both #8110 and #8170 rest on is: enumerate the root
check:*scripts, grep them against.github/workflows/**with YAML comment lines stripped, and treat a script matched by nothing as unwired. That method is sound for its purpose, and its comment-stripping step is what made it correct in the first place.But the fix both cards landed is a step invoking the script directly:
— deliberately not
pnpm check:skill-frame-freshness, because the npm script is--self-test && the scanand the scan half must not come along. Same for #8170's step.The consequence: the npm script name still appears in no workflow, so re-running the same survey today reports both landed gates as unwired. Measured on
mainplus PR #8227's head, comments stripped:All three columns read identically, and only one of the three is still a real finding. The next agent running this survey re-discovers two cards that are already closed, and the negative half of the survey — the part the original card went out of its way to make reviewable — is what stops being reviewable.
Why it is worth recording
The survey is not a committed script; it lives as prose in #8110 and #8170. So nothing will notice it going stale, and the failure mode is exactly the one the family is about: a check that reads as coverage while measuring the wrong thing.
Dispositions, not a recommendation
scripts/(its file)appears in an uncommented workflow line. One-line change to the method, zero change to the repo. Cheapest, and keeps the survey ad-hoc.check:that reconciles the rootcheck:*list against workflow wiring in both directions, with an explicit ledger for the deliberate exclusions (check:platform-checklist, and the scan halves of the two split gates). Real coverage, real cost: the ledger is another hand-kept list, and this repo already carries several.check:skill-frame-freshness --self-testruns nowhere in CI, so a broken fixture is invisible until a human runs the gate #8110 /check:dev-prereqs --self-testruns nowhere in CI — the second and only other member of #8110's split-gate family #8170 so the next surveyor reads it before re-deriving.No recommendation offered — the choice between 1 and 2 is a maintainer call about how much survey tooling the devx surface should carry, and disposition 2 in particular is a new permanent gate rather than a fix.
Generated by Claude Code