Observed by the os-dev flight on #16083 (PR #16187) while paying the token ratchet for two contract sentences, and handed to the seat to file because both dedup channels available to that flight were down (REST /search/issues 403, the one MCP search_issues refused by the rate limit). The seat's dedup: every open domain:skills card read for decision tree / field-type-decision; the only hit is #16083 itself, the card whose delivery surfaced this.
The finding
skills/objectstack-data/rules/field-types.md carries a ~1800-byte ASCII "Field Type Decision Tree" block (around lines 147–216 at 5a30844272) that re-lists every field type already given in the same file's tables. content/docs/data-modeling/field-type-decision-tree.mdx carries a mermaid version of the same tree, for the same reader. Two carriers of one tree, in a rules file whose token ceiling is 3584 and whose headroom after PR #16187 is 17 tokens.
Why it is a card and not a note
The ratchet made a two-sentence contract fix on #16083 pay with an unrelated deletion. The next author who needs one row in this file hits the same wall. Removing the duplicated tree frees roughly 450 tokens — real headroom, paid once, in the file's own density rather than in whichever unrelated sentence the next flight can spare.
The rules-only ruling for the skill corpus points the same way: a decision tree that only re-lists the tables is not a rule the client agent cannot get elsewhere in the same file.
Acceptance
- The ASCII tree block is removed from
rules/field-types.md; the tables it re-lists are untouched.
- If the file needs a pointer to the tree, it is one line naming the docs page, not a second rendering.
check-skills-token-ratchet exit 0 with the new reading recorded; the per-file ceiling is NOT lowered in the same PR (a ceiling move is its own ruling).
- Governed surface (
skills/**): draft PR, seat review, os-zhuang + hotlong requested, human merge.
Refs #16083, PR #16187.
Generated by Claude Code
Observed by the os-dev flight on #16083 (PR #16187) while paying the token ratchet for two contract sentences, and handed to the seat to file because both dedup channels available to that flight were down (REST
/search/issues403, the one MCPsearch_issuesrefused by the rate limit). The seat's dedup: every opendomain:skillscard read fordecision tree/field-type-decision; the only hit is #16083 itself, the card whose delivery surfaced this.The finding
skills/objectstack-data/rules/field-types.mdcarries a ~1800-byte ASCII "Field Type Decision Tree" block (around lines 147–216 at5a30844272) that re-lists every field type already given in the same file's tables.content/docs/data-modeling/field-type-decision-tree.mdxcarries a mermaid version of the same tree, for the same reader. Two carriers of one tree, in a rules file whose token ceiling is 3584 and whose headroom after PR #16187 is 17 tokens.Why it is a card and not a note
The ratchet made a two-sentence contract fix on #16083 pay with an unrelated deletion. The next author who needs one row in this file hits the same wall. Removing the duplicated tree frees roughly 450 tokens — real headroom, paid once, in the file's own density rather than in whichever unrelated sentence the next flight can spare.
The rules-only ruling for the skill corpus points the same way: a decision tree that only re-lists the tables is not a rule the client agent cannot get elsewhere in the same file.
Acceptance
rules/field-types.md; the tables it re-lists are untouched.check-skills-token-ratchetexit 0 with the new reading recorded; the per-file ceiling is NOT lowered in the same PR (a ceiling move is its own ruling).skills/**): draft PR, seat review,os-zhuang+hotlongrequested, human merge.Refs #16083, PR #16187.
Generated by Claude Code