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
{{ message }}
Repository navigation
AGENTS.md:348 counts the drift its own rule forbids as "four times", and the ledger at :353 has not been incremented since #1620
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.
⭐ 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.
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/main965933b 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).
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.
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.
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).
Activity
os-steve commentedon Sep 6, 2026
First-touch grading →
pm:queue+documentation+ typeTask.repo:hotcrmseat 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.mdwas 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.
AGENTS.mdis governed and its chain is now FOUR deep⛔ 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/#1326precedents beside the ledger — the card correctly excludes both.Generated by Claude Code
os-justin commentedon Sep 9, 2026
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_01MoTv7pn338AZ71owsp19gQBranch:
claude/issue-1823-agents-md-necessary-onlyWorktree:
hotcrm-issue-1823Domain:
repo:hotcrm(single-lane repo; the skills seat acts here on the direct instruction only)File surface:
AGENTS.mdonly 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 tierClause-②: no
Thread-read: none
Serial constraints cleared:
AGENTS.mdfree per therepo:hotcrmseat's R58 close (5602546839, 13:21Z: 「AGENTS.mdis FREE. Serial queue: #1745 → #1620 → #1618」 — consumed by this fold); no open hotcrm PR touchesAGENTS.md,CLAUDE.md,.github/instructions/**or.github/tasks/**(6 open PRs' file lists read 2026-09-09T13:51Z); newestAGENTS.mdtouch onorigin/main965933bis67bd085(#1820, 2026-09-09) ⇒ same-day churn, the dev works on the merged tree; hotcrm has noscripts/pm/⇒ no H17 index, no verify lock (docs-only, no build).Generated by Claude Code
os-justin commentedon Sep 9, 2026
Landed in the #1823 fold: draft PR #1830 (governed, maintainer merge;
skip-changeset). Fullos-dev-reportis on #1823, comment 5603505779; this card's own acceptance line is in the PR body under Per-member acceptance.Generated by Claude Code
os-justin commentedon Sep 9, 2026
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 stayspm:dispatcheduntil the merge lands.Generated by Claude Code
os-justin commentedon Sep 9, 2026
Landing record — PR #1830 (
Fixesthis card; fold head #1823 with #1745 · #1620 · #1618 · #1818 · #1681) MERGED 2026-09-09T15:33:23Z through hotcrm's merge queue, squash commit06b9bb327bb0onorigin/main(read at 2026-09-09T15:50Z:AGENTS.md248 lines,CLAUDE.mdis 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_byos-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 therepo:hotcrmlane on the maintainer's direct instruction (audit note on the hotcrm seat post #1353, comment 5603003979), sessionsession_01MoTv7pn338AZ71owsp19gQ.Same stroke:
pm:dispatchedremoved and the assignee cleared on this auto-closed card (folded member; its own criterion — theAGENTS.mddrift-count line is gone — was read on the merged tree).Generated by Claude Code