conventions.md claims every skill and workflow follows it, and is @-included by one skill of twenty-three #67
Labels
No labels
already-shipped
bug
documentation
duplicate
enhancement
good first issue
help wanted
in progress
invalid
needs-decision
proposal
question
wontfix
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference: crenshawdev/cadence#67
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?
What happened
cadence-core/references/conventions.mdopens by claiming a reach it does not have:It is
@-included by exactly one file:Every other citation is prose. 5 skills and 13 workflows name the file without loading it, and no agent mentions it at all. So its 99 lines of rules, covering paths, config resolution, parallel work, state, subagents and reviews, reporting style, and authoring style, reach the model only when something happens to read the file.
This is not a missing mechanism. Skills use
@${CLAUDE_PLUGIN_ROOT}27 times for other things, so the include works and is in active use. Workflows use it zero times.What you expected
Either the header's claim is true, or the header does not make it. "Referenced, not repeated" describes an architecture that was designed and then not wired, and the file states it as fact.
The practical consequence is worse than an unenforced rule. 18 files point at a contract that loads by accident, so each of them either restates the rule locally or quietly diverges from it, and nothing distinguishes the two. That is how contradictory guidance across layers gets manufactured, which is the failure mode Anthropic names directly in the new rules of context engineering: overlapping and conflicting instructions cost the model reasoning before it can act.
Reproduction
Environment
node --version: v26.4.0fba5879Notes
Two ways to close it, and the choice is a real one.
Make the claim true:
@-includeconventions.mdfrom every skill and workflow. This costs resident context in every session that loads any of them, for rules most invocations never need.Make the claim honest: soften the header to what is actually true, that the file is a reference workflows cite when a rule applies, and let progressive disclosure do its job. This is the two-line fix and it is the one that matches how the file is really used.
The second is probably right, but it should be decided rather than defaulted into. Whatever gets chosen, decide it before any new rule is added to this file, because a rule landing here inherits whatever reach the file actually has.