Filed unassigned by the dev seat implementing #9403. Observation-class — recording a measured drift, not proposing the fix shape.
What was measured
AGENTS.md section Skills (skills/) carries two hand-written inventories. Both are stale against the tree at origin/main (072b55ad8):
Published catalog — the prose names nine: objectstack-platform, objectstack-data, objectstack-query, objectstack-api, objectstack-ui, objectstack-automation, objectstack-ai, objectstack-i18n, objectstack-formula.
$ ls skills/
README.md objectstack-ai objectstack-api objectstack-automation objectstack-data
objectstack-formula objectstack-i18n objectstack-platform objectstack-pm-dispatch
objectstack-query objectstack-ui objectstack-upgrade
Missing from the prose: objectstack-pm-dispatch, objectstack-upgrade.
Repo-internal playbooks — the prose names two, dogfood-verification and spec-property-retirement, introduced with a colon as if the list were exhaustive.
$ ls .claude/skills/
checklist-author checklist-test dogfood-verification pm-dispatch spec-property-retirement
Missing from the prose: checklist-author, checklist-test, pm-dispatch.
Why it matters
The sentence's operative purpose is "consult the matching SKILL.md when working in its domain". A seat that reads it as the catalogue does not know checklist-author / checklist-test exist, and does not learn that pm-dispatch is a skill it could be reading. The failure is silent in the direction that costs the most: the reader believes they have seen the list.
This is the same family as #9403 and #9525 — a hand-maintained enumeration duplicated out of something authoritative (here, the filesystem) with nothing tying the copy back. It is called out separately because the right shape is a different question: for governed prefixes the register is a code table, here it is a directory listing, and "just add the three missing names" re-arms the same drift for the next skill that lands.
Not fixed inside #9403's PR: that card's surface is the merge-governance text, and this is an inventory list whose fix shape (enumerate-and-pin vs. stop enumerating) is its own call.
Directions (not ruled)
- Stop enumerating. Replace both lists with "consult the matching
SKILL.md" plus the two root paths — the filesystem is already browsable and self-describing. - Enumerate and pin. A check that reconciles both lists against
ls skills/ and ls .claude/skills/. Real, but it is a new gate for a low-traffic sentence. - Fix the names now, accept the drift. Cheapest; measured to fail about as often as skills land.
Refs: #9403 · #9525 (the governed-prefix twin) · #9491 (the same shape for check-run names)
Generated by Claude Code
Filed unassigned by the dev seat implementing #9403. Observation-class — recording a measured drift, not proposing the fix shape.
What was measured
AGENTS.mdsection Skills (skills/) carries two hand-written inventories. Both are stale against the tree atorigin/main(072b55ad8):Published catalog — the prose names nine:
objectstack-platform,objectstack-data,objectstack-query,objectstack-api,objectstack-ui,objectstack-automation,objectstack-ai,objectstack-i18n,objectstack-formula.Missing from the prose:
objectstack-pm-dispatch,objectstack-upgrade.Repo-internal playbooks — the prose names two,
dogfood-verificationandspec-property-retirement, introduced with a colon as if the list were exhaustive.Missing from the prose:
checklist-author,checklist-test,pm-dispatch.Why it matters
The sentence's operative purpose is "consult the matching SKILL.md when working in its domain". A seat that reads it as the catalogue does not know
checklist-author/checklist-testexist, and does not learn thatpm-dispatchis a skill it could be reading. The failure is silent in the direction that costs the most: the reader believes they have seen the list.This is the same family as #9403 and #9525 — a hand-maintained enumeration duplicated out of something authoritative (here, the filesystem) with nothing tying the copy back. It is called out separately because the right shape is a different question: for governed prefixes the register is a code table, here it is a directory listing, and "just add the three missing names" re-arms the same drift for the next skill that lands.
Not fixed inside #9403's PR: that card's surface is the merge-governance text, and this is an inventory list whose fix shape (enumerate-and-pin vs. stop enumerating) is its own call.
Directions (not ruled)
SKILL.md" plus the two root paths — the filesystem is already browsable and self-describing.ls skills/andls .claude/skills/. Real, but it is a new gate for a low-traffic sentence.Refs: #9403 · #9525 (the governed-prefix twin) · #9491 (the same shape for check-run names)
Generated by Claude Code