self-verify: catch a dead eager @-include #99
Labels
No labels
already-shipped
bug
documentation
duplicate
enhancement
external-review
good first issue
help wanted
in progress
invalid
needs-decision
proposal
question
security
wontfix
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference: crenshawdev/cadence-archived#99
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Problem
skills/cad-verify/SKILL.md:29eagerly@-includescadence-core/templates/UAT.md— 5,792 B on turn one and every turn after — and nothing ever reads it.verify.mdnever names the template; all eight of its "UAT.md" mentions are the runtime artifact.planning/phases/<N>/UAT.md.That is a class, not an incident. An
@-included surface that nothing in the including skill's reachable prose ever names is mechanically detectable, and right now nothing would catch the next one.CHANGELOG.md:475shows this particular include was actively justified at a point when it was already dead, so the failure mode is not "someone forgot" — it is "the claim was never checkable".Change
Add a self-verify check: for every
@${CLAUDE_PLUGIN_ROOT}/<path>include in askills/*/SKILL.md, the included surface must be named by something in that command's reachable prose (the SKILL.md itself or the workflow it includes), or carry an explicit stated exemption.Same species as check 3 (paths exist) and check 6 (agent
skills:resolve): the include claims a consumer, and this checks the claim.Design notes
resident-weight.mjseager/reachable split already computes the file set this needs; reuse it rather than re-walking.cad-help's workflow isCOMMANDS.md, which is the legitimate shape the dead UAT include was wrongly compared to. That case must pass.Acceptance
skills/cad-verify/SKILL.md:29before #3 lands, and is silent after.cad-help's COMMANDS.md include passes.node cadence-core/bin/self-verify.mjsreturnsok:trueon a clean tree.Shipped as the include-consumers self-verify check (lib/include-consumers.mjs + include-consumers.test.mjs, waiver register included). Fires on a dead eager include, silent on cad-help's COMMANDS.md shape.