You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Carry the ls-tree enumeration idiom into its three remaining instruction-text homes (os-dev.md · platform-readings · AGENTS.md §9) — deferred from #13305 by face-holds and the re-wrap funding ban #13484
Filed by the skills lane seat (session session_01EXxTW8mvPBhoHxmyPZ63de, PM loop round 3), executing recommendation B from the #13305 dev report's open question 1, plus the rework fallout on PR #13480. Lane self-triaged: pm:queue · domain:skills · p2.
What already exists (do not re-do)
#13305 landed the mechanical layer: .claude/hooks/guard-tree-enum.sh (+36-case selftest, registered in .claude/settings.json, mirrored into objectui) blocks the working-tree-glob + origin/main-read signature, and its BLOCK MESSAGE teaches the canonical idiom at the moment of the mistake. objectui AGENTS.md carries the incident subsection (no ratchet binds there). The transferable control sentence is in the guard header and block message verbatim.
What this card carries — the instruction-TEXT homes the idiom could not reach
.claude/skills/pm-dispatch/references/platform-readings.md — the zero-reading discipline page. Was OFF-surface (face held by the SKILL.md serial queue).
root AGENTS.md §9 Practices list — one practice sentence: enumerate from the ref you read (git ls-tree --name-only origin/main <dir>), never a working-tree glob feeding per-file origin/main reads. PR feat(hooks): guard the origin/main ENUMERATION half, and name the ls-tree idiom #13480's first attempt funded this by re-wrapping the surrounding block 85B→115B at constant line count — removed in rework as 筹行 (banned 2026-08-17, sharpened 2026-08-29: 「筹行(为内容购买行数)⛔ vs 独立密度修复(无内容购买)允许」). AGENTS.md is 1162/1162, so this sentence needs legal funding: a ruled ceiling raise (+1), a ruled cut, or riding a future net-content-reduction PR per the ruling's 顺带 clause.
Why a hook is not enough (from the #13305 report, verified reasoning)
The guard fires only on a Bash PreToolUse command in a repo that registers it. A seat reasoning about enumeration while writing a report, an MCP-only listing, or work in a repo without the hook never meets it. The mechanical guard is the enforcement; the instruction text is where the habit is taught.
Dispatch constraints (checked at claim time, not now)
Dispatch when the faces are free, or split per face at dispatch time (fold-or-serial answered then). All three files are governed (.claude/** / AGENTS.md): draft + human merge.
Line ratchets at claim time to be re-derived, never recalled. The wording should carry the control-sentence cross-reference only if the target file does not already state it.
Refs
#13305 (parent work, PRs #13480 + objectui#6908) · #12980 (os-dev.md holder + its pending ceiling decision) · #13052 (AGENTS.md §9 sibling raise, RULED A 2026-08-30) · the 2026-08-17 funding ban + 2026-08-29 distinction (SKILL.md 机械守卫索引 row).
Filed by the skills lane seat (session
session_01EXxTW8mvPBhoHxmyPZ63de, PM loop round 3), executing recommendation B from the #13305 dev report's open question 1, plus the rework fallout on PR #13480. Lane self-triaged:pm:queue·domain:skills· p2.What already exists (do not re-do)
#13305 landed the mechanical layer:
.claude/hooks/guard-tree-enum.sh(+36-case selftest, registered in.claude/settings.json, mirrored into objectui) blocks the working-tree-glob +origin/main-read signature, and its BLOCK MESSAGE teaches the canonical idiom at the moment of the mistake. objectuiAGENTS.mdcarries the incident subsection (no ratchet binds there). The transferable control sentence is in the guard header and block message verbatim.What this card carries — the instruction-TEXT homes the idiom could not reach
.claude/agents/os-dev.md— the "origin/main is a shared pointer" clause; this is where derive-don't-recall habits are taught to every dispatched dev. Was OFF-surface for finding(process): theorigin/mainreading rule covers file CONTENTS but not file ENUMERATION — a working-tree glob feedinggit show origin/main:yields a zero that looks like a full scan #13305 (face held by [finding] Atimeout-killed command reports near-zero CPU to the shell'stime, understating cost 14x-82x — and it reads exactly like "this step blocks rather than computes" #12980, which is itself parkedneeds-user-decisionon a ceiling raise 466→471/473)..claude/skills/pm-dispatch/references/platform-readings.md— the zero-reading discipline page. Was OFF-surface (face held by the SKILL.md serial queue).AGENTS.md§9 Practices list — one practice sentence: enumerate from the ref you read (git ls-tree --name-only origin/main <dir>), never a working-tree glob feeding per-fileorigin/mainreads. PR feat(hooks): guard the origin/main ENUMERATION half, and name the ls-tree idiom #13480's first attempt funded this by re-wrapping the surrounding block85B→115B at constant line count — removed in rework as 筹行 (banned 2026-08-17, sharpened 2026-08-29: 「筹行(为内容购买行数)⛔ vs 独立密度修复(无内容购买)允许」). AGENTS.md is 1162/1162, so this sentence needs legal funding: a ruled ceiling raise (+1), a ruled cut, or riding a future net-content-reduction PR per the ruling's 顺带 clause.Why a hook is not enough (from the #13305 report, verified reasoning)
The guard fires only on a Bash PreToolUse command in a repo that registers it. A seat reasoning about enumeration while writing a report, an MCP-only listing, or work in a repo without the hook never meets it. The mechanical guard is the enforcement; the instruction text is where the habit is taught.
Dispatch constraints (checked at claim time, not now)
timeout-killed command reports near-zero CPU to the shell'stime, understating cost 14x-82x — and it reads exactly like "this step blocks rather than computes" #12980 (decision box) · platform-readings ← SKILL.md serial tail · AGENTS.md ← finding(process): theorigin/mainreading rule covers file CONTENTS but not file ENUMERATION — a working-tree glob feedinggit show origin/main:yields a zero that looks like a full scan #13305 rework, then the [finding]git worktree add -bcan fail writing upstream config and leave the branch created but no worktree — the recipe's own half-state, and.git/configis shared like the stash #13052 RULED-A raising PR (1162→1164, scope-exact — ⛔ this card's sentence must NOT ride that ruled vehicle)..claude/**/AGENTS.md): draft + human merge.Refs
#13305 (parent work, PRs #13480 + objectui#6908) · #12980 (os-dev.md holder + its pending ceiling decision) · #13052 (AGENTS.md §9 sibling raise, RULED A 2026-08-30) · the 2026-08-17 funding ban + 2026-08-29 distinction (SKILL.md 机械守卫索引 row).