Skip to content

finding: AGENTS.md's Skills section lists 2 of the 5 internal playbooks and 9 of the 11 published skills #9526

Description

@claude

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)

  1. Stop enumerating. Replace both lists with "consult the matching SKILL.md" plus the two root paths — the filesystem is already browsable and self-describing.
  2. 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.
  3. 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

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions