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
Symptom — /verify never finds a CI-declared gate. Every run's discovery step scans .github/workflows/*.yml for a # verification: true comment above a step's - name: line,
and finds zero matches — not because nothing gates this repository, but because no workflow
file has ever carried that comment. .claude/gates.json's cached 7 gates (.NET build and tests, Sample round trip, Workload isolation, Game-service suite, Documentation gate, Slice status markers, Documentation build and site check) were discovered under an older,
pre-flag convention and can never be confirmed Fresh under the current one — its content-hash
freshness check can't detect the gap, since the flag's absence doesn't change workflow file
bytes, only the rule for what counts as a gate.
Observed on main, .claude/commands/verify.md as of the kit update that introduced the flag
convention (commit 1aa2a9f, 2026-08-12). The actual CI checks (build, Verify Documentation Build, Documentation links and terminology, Slice status markers, etc.) run and pass fine
on GitHub Actions — this is a gap in /verify's local reproduction of them, not a gap in CI
itself.
Reproduce
grep -rn "verification: true" .github/workflows/*.yml — zero matches, and zero in the full
git history of every workflow file in this repository.
Run /verify's discovery step (or pwsh ./tools/Test-GatesCache.ps1, which reports Fresh
against a gate list that was never actually flag-derived) — no CI-declared gate can be
reported in the "ran and passed" list, only ad hoc local checks.
Done when
Every step in .github/workflows/*.yml that genuinely gates this repository carries a # verification: true comment on the line above its - name:
.claude/gates.json is regenerated under flag-based discovery and reports Fresh against
a gate list backed by real flags
A subsequent /verify run reports at least one gate in "Ran and passed" sourced from an
actual # verification: true step, not only ad hoc local checks
Agent instructions
This issue is the specification. No upstream design document owns this — it is a gap
between the kit's own procedure and this repository's workflow files, introduced when the kit
update landed the flag convention without retrofitting it.
Authority: this issue, plus .claude/commands/verify.md's own description of the flag
(AGENTS.md and verify.md, "Discover, do not assume").
Out of scope: deciding whether a step that currently has no equivalent in .claude/gates.json's stale cache should newly become a gate — that is a judgement call
about what genuinely gates this repository, not a mechanical retrofit. Flag it rather than
guessing.
Stop if: any of the four current workflow files (build.yml, docs-ci.yml, docs-deploy.yml, release.yml) turns out to need restructuring beyond adding a comment
line — that is a CI change, not a tooling-labelling fix.
Symptom —
/verifynever finds a CI-declared gate. Every run's discovery step scans.github/workflows/*.ymlfor a# verification: truecomment above a step's- name:line,and finds zero matches — not because nothing gates this repository, but because no workflow
file has ever carried that comment.
.claude/gates.json's cached 7 gates (.NET build and tests,Sample round trip,Workload isolation,Game-service suite,Documentation gate,Slice status markers,Documentation build and site check) were discovered under an older,pre-flag convention and can never be confirmed
Freshunder the current one — its content-hashfreshness check can't detect the gap, since the flag's absence doesn't change workflow file
bytes, only the rule for what counts as a gate.
Observed on
main,.claude/commands/verify.mdas of the kit update that introduced the flagconvention (commit
1aa2a9f, 2026-08-12). The actual CI checks (build,Verify Documentation Build,Documentation links and terminology,Slice status markers, etc.) run and pass fineon GitHub Actions — this is a gap in
/verify's local reproduction of them, not a gap in CIitself.
Reproduce
grep -rn "verification: true" .github/workflows/*.yml— zero matches, and zero in the fullgit history of every workflow file in this repository.
/verify's discovery step (orpwsh ./tools/Test-GatesCache.ps1, which reportsFreshagainst a gate list that was never actually flag-derived) — no CI-declared gate can be
reported in the "ran and passed" list, only ad hoc local checks.
Done when
.github/workflows/*.ymlthat genuinely gates this repository carries a# verification: truecomment on the line above its- name:.claude/gates.jsonis regenerated under flag-based discovery and reportsFreshagainsta gate list backed by real flags
/verifyrun reports at least one gate in "Ran and passed" sourced from anactual
# verification: truestep, not only ad hoc local checksAgent instructions
This issue is the specification. No upstream design document owns this — it is a gap
between the kit's own procedure and this repository's workflow files, introduced when the kit
update landed the flag convention without retrofitting it.
.claude/commands/verify.md's own description of the flag(
AGENTS.mdandverify.md, "Discover, do not assume")..claude/gates.json's stale cache should newly become a gate — that is a judgement callabout what genuinely gates this repository, not a mechanical retrofit. Flag it rather than
guessing.
build.yml,docs-ci.yml,docs-deploy.yml,release.yml) turns out to need restructuring beyond adding a commentline — that is a CI change, not a tooling-labelling fix.
/verifyphase (tools/Test-DesignDrift.ps1's bold-id regexfix) — unrelated to that change's content.