Skip to content

AGENTS.md:348 counts the drift its own rule forbids as "four times", and the ledger at :353 has not been incremented since #1620

Closed

Description

@os-steve

Found while executing #1536 (the docs/feature-inventory.md QUO-010 / QUO-012 rows). Filed rather than swept: that card's declared file surface is docs/feature-inventory.md plus a changeset, and AGENTS.md is not on it.

Measured on origin/main @ df549fef.

What is stale

Documentation-discipline rule 5 — the rule that forbids hand-copying a machine list into prose — states a hand-maintained count of its own precedents, and carries a hand-maintained roster beside it:

AGENTS.md:348  A table transcribed into prose drifts, and this repo has measured it drifting four
AGENTS.md:349  times.
AGENTS.md:353  > Drift measured: #610, #965, #977, #1228. Boundary precedents: #1422 (documentable)

At least two further drifts of exactly that class have been measured since those four, and neither is in the ledger:

A third is a candidate rather than a certainty, and wants a judgement this card does not make: #1319 (closed) recorded feature-inventory.md's OPP-009 citing a key that no longer exists. That is the same drift shape, but the card bundles it with a code-comment correction, so whether it counts as a ledger entry is a call for whoever maintains the ledger.

Why it is worth a card

The count and the roster are themselves a hand-copied machine fact in the one paragraph that forbids them, so the rule currently under-reports its own evidence. That evidence is the rule's argument: "this repo has measured it drifting four times" is what makes rule 5 more than an assertion, and the true number is at least six.

⛔ This is not a proposal to delete the ledger. The section says outright that the precedent cards are tombstones, kept so the same card is not filed again next quarter — the ledger earns its place. The question is only whether it is maintained on each landing drift, or is a snapshot of the 2026-08-31 ruling that is not meant to grow. If the latter, the sentence at :348 wants wording that does not read as a live tally.

Not in scope

Activity

  1. added
    documentationImprovements or additions to documentation
    pm:queueReady for the PM dispatch loop
    on Sep 6, 2026
  2. added theissue type on Sep 6, 2026
  3. os-steve commented on Sep 6, 2026

    @os-steve
    CollaboratorAuthor

    First-touch grading → pm:queue + documentation + type Task. repo:hotcrm seat R39, 2026-09-06T00:4xZ.

    ⭐ The anti-drift rule's own evidence has drifted. Filed by #1536's dev off its declared surface — correct, AGENTS.md was not on it.

    Why it queues

    Measured, named lines (:348, :353), and two concrete un-ledgered instances (#1464 closed; #1536 whose own body calls itself "a fifth", landing now as PR #1619). ⇒ lane work. ⛔ Not the decision box: the open question it raises is settled below by rule 5's own criterion, not by a new convention.

    ⭐ Seat ruling on the open question — the COUNT is the defect; the LEDGER is not

    The card asks whether the ledger is a live tally to maintain, or a snapshot whose sentence should stop reading as one. Both halves resolve, and differently, under rule 5's own test:

    • :348's numeral — "drifting four times" — IS the rule-5 defect. It is a machine-derivable fact hand-transcribed into prose, with nothing holding the copy to the original. ⭐ That the violation sits inside the sentence forbidding it is the finding, and the fix is to stop stating a hand-maintained number — say that the drift is measured repeatedly and let the roster below carry the instances.
    • :353's roster is NOT a rule-5 defect and ⛔ must not be deleted. It is a curated tombstone list with no machine source — nobody can derive "which cards were filed for this" from the tree. Rule 5 condemns transcribed machine lists, ⛔ not curated ones. And the section states its purpose plainly: the tombstones exist so the same card is not filed again next quarter. ⇒ a dedup list that stops growing stops working. Keep it, and extend it.

    ⇒ Add #1464 and #1536. The rule's argument gets stronger, not weaker: "at least six" beats "four", and it is the evidence that makes rule 5 more than an assertion.

    ⚠️ #1319 is left as the dev's judgement, with my lean: the card is right that it bundles the drift with a code-comment correction. My lean is include it with that bundling noted — the ledger's purpose is dedup, and a partial match still stops a re-file. ⛔ But do not force it; if the dev reads the bundling as making it a different class, saying so with the reason is an acceptable answer.

    ⚠️ Fenced — AGENTS.md is governed and its chain is now FOUR deep

    #1443 → PR #1603, ACCEPTed, 8/8 green, AWAITING A HUMAN MERGE   ← stalled here
    #1573 → fenced, second
    #1618 → fenced, third
    #1620 → fenced, fourth
    

    ⛔ Never two drafts on one hand-merged governed file. ⛔ Not dispatchable until PR #1603 merges and the chain drains in order.

    ⭐ Worth stating because it changes the priority of a maintainer action: four cards now sit behind one human merge, and three of them (#1618, #1620, and this lane's share of #1573) are corrections to the agent instruction file itself — the class this repo has repeatedly measured as producing confidently-wrong actions rather than loud failures. ⇒ merging PR #1603 is currently the highest-leverage single action available to the maintainer in this lane. Carried to the round report, ⛔ not nagged on the PR.

    Scope note for whoever takes it

    ⛔ Nothing about the QUO-010 / QUO-012 rows (that is #1536 / PR #1619). ⛔ No opinion on rule 5's boundary test or the #1422 / #1329 / #1326 precedents beside the ledger — the card correctly excludes both.


    Generated by Claude Code

  4. added
    pm:dispatchedDispatched to a dev agent by /pm-dispatch
    and removed
    pm:queueReady for the PM dispatch loop
    on Sep 9, 2026
  5. self-assigned this
    on Sep 9, 2026
  6. os-justin commented on Sep 9, 2026

    @os-justin
    Collaborator

    Claim: PM loop round 2 — maintainer direct dispatch to the skills seat, authority verbatim: 「看一下 hotcrm 的agents.md 写的太乱了。只留下必要的。包括同时同时审核 hotcrm 的skills 任务,合并派发处理。」 and 「首先要明确 hotcrm 是元数据应用,平台功能应该在 objectstack中开发。 其次 claude.md 是不是直接让他阅读 agents.md 即可,没必要维护两套。所有仓库都有类似的问题」. Fold member of #1823 (chain head; full claim there): rule 5's own hand-maintained drift count and precedent ledger leave the file (premise re-checked: PR #1809 rewrote :348 — the dev reads the current line, not the card's).
    Session: session_01MoTv7pn338AZ71owsp19gQ
    Branch: claude/issue-1823-agents-md-necessary-only
    Worktree: hotcrm-issue-1823
    Domain: repo:hotcrm (single-lane repo; the skills seat acts here on the direct instruction only)
    File surface: AGENTS.md only for this member (stop on breach; explain in the report)
    Container & model: L (a 651-line instruction file rewritten to ≤250 lines + five folded cards + a new CLAUDE.md), mode:subagent (the hotcrm seat's standing 「不要用云卡片」), model: claude-fable-5-1 — --tier REFUSES for a sister repo (Families are a property of THAT repo. A card landing in another repo derives nothing here — assert with --repo to make this checkable. dispatch-gates: REFUSING ), so the tier is the seat's explicit decision: a whole-file rewrite of the agent instruction surface with necessity judgement is protocol-semantics work ⇒ contract-review tier, reviewed in the seat at the same tier
    Clause-②: no
    Thread-read: none
    Serial constraints cleared: AGENTS.md free per the repo:hotcrm seat's R58 close (5602546839, 13:21Z: 「AGENTS.md is FREE. Serial queue: #1745 → #1620 → #1618」 — consumed by this fold); no open hotcrm PR touches AGENTS.md, CLAUDE.md, .github/instructions/** or .github/tasks/** (6 open PRs' file lists read 2026-09-09T13:51Z); newest AGENTS.md touch on origin/main 965933b is 67bd085 (#1820, 2026-09-09) ⇒ same-day churn, the dev works on the merged tree; hotcrm has no scripts/pm/ ⇒ no H17 index, no verify lock (docs-only, no build).


    Generated by Claude Code

  7. os-justin commented on Sep 9, 2026

    @os-justin
    Collaborator

    Landed in the #1823 fold: draft PR #1830 (governed, maintainer merge; skip-changeset). Full os-dev-report is on #1823, comment 5603505779; this card's own acceptance line is in the PR body under Per-member acceptance.


    Generated by Claude Code

  8. os-justin commented on Sep 9, 2026

    @os-justin
    Collaborator

    ACCEPT for this fold member — the review record is on the chain head #1823 (5603569687, this seat, 2026-09-09T14:30Z): PR #1830 delivers it — rule 5's drift count and ledger are gone (「measured it drifting repeatedly … This rule binds this file too」); the seat-grading conflict is stated on the PR for the maintainer. Governed terminal (draft, needs-user-decision, 速读, reviews requested); the card stays pm:dispatched until the merge lands.


    Generated by Claude Code

  9. os-justin commented on Sep 9, 2026

    @os-justin
    Collaborator

    Landing record — PR #1830 (Fixes this card; fold head #1823 with #1745 · #1620 · #1618 · #1818 · #1681) MERGED 2026-09-09T15:33:23Z through hotcrm's merge queue, squash commit 06b9bb327bb0 on origin/main (read at 2026-09-09T15:50Z: AGENTS.md 248 lines, CLAUDE.md is the 6-line pointer). GOVERNED (AGENTS.md, CLAUDE.md, .github/instructions/**): approved, flipped ready and enqueued by os-zhuang (review APPROVED 15:32:55Z; merged_by os-zhuang) — this seat did none of the three. In-seat review ACCEPT 5603569687 on #1823; 速读 5603571614 on the PR. Recorded by the skills seat acting in the repo:hotcrm lane on the maintainer's direct instruction (audit note on the hotcrm seat post #1353, comment 5603003979), session session_01MoTv7pn338AZ71owsp19gQ.

    Same stroke: pm:dispatched removed and the assignee cleared on this auto-closed card (folded member; its own criterion — the AGENTS.md drift-count line is gone — was read on the merged tree).


    Generated by Claude Code

  10. removed their assignment
    on Sep 9, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    documentationImprovements or additions to documentation

    Type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions