Repository navigation
docs(agents): sanitizer clause states the two measured body-mutation shapes; Skills section stops enumerating; platform-readings carries the read-layer facts - #9715
Merged
Conversation
…shapes; Skills section stops enumerating; platform-readings carries the read-layer facts AGENTS.md gains the binding sanitizer clause naming the measured shapes (storage-side exclamation-mark deletion from the markup-declaration opener; API-side truncation at script-tag-shaped tokens) with the spell-it-out-in-words author rule, and its Skills section replaces both hand-written inventories with the two root paths (the filesystem is the catalog). platform-readings.md carries the same facts as fact rows within the 134-line ratchet ceiling. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01WswfK2yNYT9hNnMH6TzAwL
This was referenced Aug 18, 2026
…s (maintainer size review) — facts stay in platform-readings Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01WswfK2yNYT9hNnMH6TzAwL
This was referenced Aug 19, 2026
os-support-ai
marked this pull request as ready for review
August 19, 2026 01:13
os-warren
pushed a commit
that referenced
this pull request
Aug 19, 2026
check-skill-line-ratchet.mjs covered every .claude/skills/** instruction surface and .claude/agents/os-dev.md, but not AGENTS.md itself — the largest, most-read, most binding instruction file in the repo, and the hole the oversized 39-line read-layer clause (compacted by #9715) entered through. Add a CEILINGS entry set at its line count on origin/main (post-#9715, e57524c): 958 lines, headroom 0, same shrink-only convention as the existing entries. Extend the self-test coverage case. Fixes #9792 Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01AeA3nU1B5Q2pgxqxgUrexd
akarma-synetal
pushed a commit
to akarma-synetal/framework
that referenced
this pull request
Aug 23, 2026
check-skill-line-ratchet.mjs covered every .claude/skills/** instruction surface and .claude/agents/os-dev.md, but not AGENTS.md itself — the largest, most-read, most binding instruction file in the repo, and the hole the oversized 39-line read-layer clause (compacted by objectstack-ai#9715) entered through. Add a CEILINGS entry set at its line count on origin/main (post-objectstack-ai#9715, e57524c): 958 lines, headroom 0, same shrink-only convention as the existing entries. Extend the self-test coverage case. Fixes objectstack-ai#9792 Claude-Session: https://claude.ai/code/session_01AeA3nU1B5Q2pgxqxgUrexd Co-authored-by: Claude <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Fixes #9621
Fixes #9557
Fixes #9526
Three-card bundle on the read-layer/sanitizer family plus AGENTS.md inventory hygiene. Instruction text only — no runtime code. Governed surface (AGENTS.md +
.claude/skills/): this PR stays DRAFT and is merged by the maintainer, by hand — never queued, armed, or flipped ready by a seat.Per the family's own convention, this body spells the poison tokens out in words and never writes them literally.
Rework provenance: the AGENTS.md clause was compressed from ~34 lines to 6 per the maintainer's size review (2026-08-18); the facts moved to their proper tier, the platform-readings table, which was already in this PR and is unchanged.
What changed
1. AGENTS.md — body-mutation clause (Multi-agent working discipline), 6 lines. The dispatch ruling said to amend the clause naming "less-than + letter"; measured on fetched
main(cd455c8), AGENTS.md carried no sanitizer clause at all — the "less-than + letter" wording lives in the dev-agent definition file, a sibling card's solo surface, untouched here. The clause added (next to the attribution-footer/body-rewrite block, its nearest kin) is the operative minimum: the bold author rule (poison-shaped tokens — regex literals, script-tag shapes — go in fences with the dangerous character spelled out in words, or are described in words; read any less-than fragment back after writing), a pointer to the pm-dispatch platform-readings table where the two measured mutation shapes and triggers live, and the do-not-repair remedy (a body reading short only through the API is probably intact — check the rendered page before "repairing" it; a rewrite destroys a correct card).2. AGENTS.md — Skills section. Adopted grading direction 1: both hand-written inventories (the nine-name published list and the two-name internal list) are replaced by the two root paths (
skills/,.claude/skills/) plus "the filesystem is the catalog; consult the matching SKILL.md". Stale names deleted, none added; themetadata.internal: truerequirement is retained.3.
platform-readings.md— read-layer fact rows (the facts' authoritative tier). The truncation row carries the deterministic read-side trigger (script-tag-shaped token; doctype/object shapes too) with the WebFetch-the-rendered-page remedy, and a new row carries the storage-layer exclamation-mark deletion (the markup-declaration opener — less-than, exclamation mark, open square bracket — exactly a regex negative lookbehind before a character class; measured at rest by two independent authors; bare less-than + exclamation mark survives) with the spell-in-words author rule. No issue numbers in operational text (id-lint green).Ratchet payment table (
platform-readings.md, ceiling 134)AGENTS.md post-rework count: 958 lines (was 983 on base; the clause itself is 6) — input for the follow-up ceiling card.
Gates (all re-run at final commit
1334c1c, the pushed head)Derived by
node scripts/pm/dispatch-gates.mjs(no paths passed; 6 matched of 109 families; identical derivation before and after the rework commit):pnpm check:doc-authoringpnpm --workspace-concurrency=2 --filter @objectstack/lint run check:doc-formula-expressions(closure rebuilt in the fresh worktree first — the initial run failed on a missingdist/, an environment artifact, not the diff; script echo verified)pnpm check:pm-governed-mergespnpm check:pm-skill-id-lintpnpm check:pm-skill-ratchet(platform-readings: 134 lines, ceiling 134, headroom 0)pnpm check:skill-frame-syncnode scripts/check-nul-bytes.mjs(6203 files, no raw control bytes)Recovered content statement (the two mutilated member cards)
Tests/docs-only instruction change —
skip-changesetapplied read-modify-write with read-back.Generated by Claude Code