Skip to content

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

Closed as not planned

Description

@zhuangjianguo

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

  1. .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): the origin/main reading rule covers file CONTENTS but not file ENUMERATION — a working-tree glob feeding git show origin/main: yields a zero that looks like a full scan #13305 (face held by [finding] A timeout-killed command reports near-zero CPU to the shell's time, understating cost 14x-82x — and it reads exactly like "this step blocks rather than computes" #12980, which is itself parked needs-user-decision on a ceiling raise 466→471/473).
  2. .claude/skills/pm-dispatch/references/platform-readings.md — the zero-reading discipline page. Was OFF-surface (face held by the SKILL.md serial queue).
  3. 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)

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).

Activity

  1. zhuangjianguo commented on Aug 31, 2026

    @zhuangjianguo
    CollaboratorAuthor

    CLOSED not_planned — 价值门拒收(skills 席,执行维护者 2026-08-31 指令:重点审核 skills 改进值不值)。

    判据:机械守卫 guard-tree-enum.sh 已在两仓强制这一缺陷类,且其拦截消息在犯错的那一刻教正确惯用法 —— 三处指令文本镜像属 belt-and-braces 散文,不改变任何 agent 的任何决定,却要吃三个零余量文件的行预算(其一还需天花板裁决)。规则堆积不做(#12911 论题)。证据与惯用法存档于本卡与 #13305;守卫失效或出现 hook 覆盖不到的实测事故 ⇒ 重开自由。


    Generated by Claude Code

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions