Repository navigation
[Decision] AGENTS.md is 82 KB with no table of contents and 28% fleet-operations narrative, CONTRIBUTING hands every rule to it, and there is no PR template: how a human contributor is meant to onboard #26081
Description
Ruled: 6417533492 · letter A · 2026-10-26T13:44Z
Filing gate ②: a maintainer-only decision. Maintainer, 2026-10-26, verbatim: 「完整的评估本项目, 还有哪些可以优化的地方。包括 ci 和文档」 then 「使用 pm-dispatch 技能创建 issue,需要决策的立为决策卡。」 and 「低优先级的先不考虑」. Batch-of: 19 (repository evaluation 2026-10-26, session_019a9XCWsbMFp75REzthE6cs; 9 decision cards + 10 execution cards). Reader: the director seat presents this card in a decision batch; after the ruling the lane named under "After the ruling" dispatches. ⛔ Not a claim. Dedupe: REST list (439 issues), grep AGENTS.md → 4 hits: #26035 (open, dispatched: 32 files prescribe retired objectui pin scripts, AGENTS.md among them), #25712 (open: ui/AGENTS.md nesting), #25919 (open, dispatched, ruled A: narrative cost — its AGENTS.md reading is the ui tree's 630-line file; ruling 「规范核心与事故史分家,注释写不变量不写事故史,存量不横扫」), #17161 (open program: CLAUDE.md is a pointer to AGENTS.md). grep CONTRIBUTING|PR template → 0. The root AGENTS.md's shape and the human onboarding path are not on any card. New.
维护者速读
根 AGENTS.md 1,117 行、82,823 字节、17 个 H2、59 个 ⛔,没有目录。「多代理工作纪律」一节 318 行占 28%,内容是 stash、合并队列、车队 bot、页脚字节等席位运维;「Build & Test」143 行多数是 typecheck 棘轮内部实现。CONTRIBUTING.md 本身只有 158 行、写得对,但所有真规则都甩给 AGENTS.md(第 12 行「两者冲突以 AGENTS.md 为准」),并使用未解释的术语如「Clause-② 声明」(第 100 行,定义在 AGENTS.md 第 1087 行)。没有 .github/PULL_REQUEST_TEMPLATE.md 和 issue 模板,CONTRIBUTING 第 120–129 行的检查清单在 PR 时不强制。两条已有裁决相关:CLAUDE.md 写「一套指令只在一处维护,不在别处复述」;#25919 你裁了「规范核心与事故史分家」。拆分 AGENTS.md 与「一处维护」表面冲突,所以是你的决定。请裁:A AGENTS.md 保留全部约束性规则并加目录,把「多代理工作纪律」与「Build & Test」的机制说明段迁出到 docs/agents/*.md(AGENTS.md 留一行规则 + 指针),CONTRIBUTING 加「人类最小规则」8 条小节(Zod-first、命名、无 prettier、worktree、changeset + Clause-②、spec 再生成、发布归属、英文产物),加 PR 模板镜像该清单;B 只加目录与 CONTRIBUTING 小节 + PR 模板,AGENTS.md 正文不迁;C 现状。选 A / B / C?
Governing text
CLAUDE.md: "One instruction set, maintained in one place: ⛔ no rule, hook roster or guardrail is restated here, and none is added here later." — a rule against restating rules, not against moving a rule's explanation.AGENTS.md:11-16: "This file carries principles, binding rules and lookup tables — rules only. A rule states what to do and what never to do, in one executable sentence; it carries no incident narrative".- docs: narrative cost — 42.5% of source lines are comments, workflows 58.6%, AGENTS.md is 103 KB with three stale claims, ROADMAP.md still says v3.3.2 and 80 Storybook stories #25919 ruling A (comment 6386217274): 规范核心与事故史分家;存量不横扫.
- [program] CLAUDE.md is a pointer to AGENTS.md in every repo — no second instruction set to maintain (maintainer 2026-09-09) #17161: CLAUDE.md stays a pointer to AGENTS.md in every repo.
- Prime Directive 14:
AGENTS.md,CLAUDE.md,.github/workflows/**are Tier H; a PR template under.github/is not in the register (the register is.github/workflows/**), so it is Tier-free unless you say otherwise.
Premises
- P1 — size and shape:
wc -lc AGENTS.md→ 1117 lines, 82823 bytes;grep -n '^## ' AGENTS.md→ 17 headings (Communication 23 · Build & Test 36 · Prime Directives 179 · Multi-agent working discipline 325 · Monorepo Layout 643 · Protocol Domains 669 · Kernel 694 · Documentation Guardrails 705 · Context Routing 777 · Skills 803 · Patterns 814 · Route & surface ownership 841 · Degradation log levels 913 · Startup registry reads 1002 · Writing a --self-test 1049 · Post-Task Checklist 1073 · Edit Sizing 1115). - P2 —
ls .github/PULL_REQUEST_TEMPLATE* .github/ISSUE_TEMPLATE 2>&1→ none. - P3 —
grep -n 'Clause' CONTRIBUTING.md→ line 100 uses the term;grep -n 'Clause-②' AGENTS.md | head -1→ line 1087 defines it. - P4 — the file's own rule mostly holds: 0 ISO dates and 0
#NNNNcitations in AGENTS.md (grep -cE '#[0-9]{4,5}' AGENTS.md→ 0), but three "ruling record " citations (lines 130, 132, 531) that a reader cannot resolve.
One-sentence problem
A person who wants to open their first pull request is told to read 82 KB with no table of contents, a quarter of which is about how a fleet of agents shares a git stash, and nothing at PR time checks the eight rules they can actually break.
Options
| Option | What | Consequence | Workload |
|---|---|---|---|
| A | TOC; move mechanism prose of §Multi-agent and §Build & Test to docs/agents/ leaving one-sentence rules + pointers; "Human minimum" section in CONTRIBUTING; .github/PULL_REQUEST_TEMPLATE.md mirroring it. |
AGENTS.md shrinks by an estimated 40%; rules stay in one place (the explanation moves, not the rule); humans get an eight-rule on-ramp. Governed-prose gates (check:pm-governed-prose, check-published-list-mirrors) must keep passing — the dev runs them. |
skills lane (AGENTS.md is theirs) · 2 PRs Tier H (AGENTS.md; CONTRIBUTING + template non-governed) · precedent: #25919's in-flight PR for ui/AGENTS.md — read its +/− |
| B | TOC + CONTRIBUTING section + PR template; AGENTS.md body untouched. | Smaller change; the 82 KB stays the first read. | 1 PR Tier H (TOC edit) + 1 non-governed |
| C | Nothing. | — | 0 |
Business meaning
- A: the rulebook is a rulebook and the operations manual is a manual.
- B: a map at the door of the same building.
- C: the door stays where it is.
四维分析
- 实际业务需求:北极星定义的用户是「第三方开发者,人验收」;CONTRIBUTING 是他们进门的第一页。今天它说「规则都在 AGENTS.md」,而 AGENTS.md 没有目录。
- 项目长远合理性:
CLAUDE.md的「一处维护」防的是规则复述;A 迁走的是机制说明(为什么、怎么量到的),规则句留在 AGENTS.md——与 docs: narrative cost — 42.5% of source lines are comments, workflows 58.6%, AGENTS.md is 103 KB with three stale claims, ROADMAP.md still says v3.3.2 and 80 Storybook stories #25919「规范核心与事故史分家」同一方向,是把那条裁决用到根文件。 - 防 AI 犯错:席位每个会话都加载 AGENTS.md;82 KB 里 28% 与多数任务无关,是每次会话的强制 token 成本(docs: narrative cost — 42.5% of source lines are comments, workflows 58.6%, AGENTS.md is 103 KB with three stale claims, ROADMAP.md still says v3.3.2 and 80 Storybook stories #25919 的原话)。更短的规则文件让席位更难漏读约束。
- 创业阶段不扩散:不加门禁;PR 模板是一个静态文件;
docs/agents/两份文件承接迁出的段落,不是新的规则源。
Recommendation
A. 只看①选 A;②③④ 是否翻转:否。
Confidence gaps: which paragraphs of §Multi-agent are "rule" vs "mechanism" is a judgement the dev makes paragraph by paragraph; the PR's 维护者速读 lists every moved paragraph so you can pull any back. #26035 is editing the same file now; A serializes behind it.
After the ruling
- A: skills seat dispatches PR 1 (AGENTS.md +
docs/agents/, Tier H) after docs(devx): 32 files still prescribe the retired objectui pin scripts (objectui:build/objectui:refresh) — AGENTS.md and 3 skills among them #26035 lands; devx seat PR 2 (CONTRIBUTING + template). - B: skills seat one small Tier H PR; devx seat PR 2.
os-decision-facets
① 项目长远合理性:规则句留一处,机制说明迁出,与 #25919 裁决同向。
② 实际业务拉动:人类贡献者进门第一页把他们送进 82 KB 无目录文件。
③ 防 AI 犯错:更短的规则文件每会话都加载,漏读约束的概率随长度降。
④ 创业阶段不扩散:零新门禁;模板是静态文件。
Prior rulings read: AGENTS.md,one place,narrative,CONTRIBUTING → 4 hits (#25919 A, #17161, #26035, #25712); none; thread: none; repo: objectstack-ai/objectstack
Related
#25919 (open, ruled A), #26035 (open, dispatched), #17161 (open), #25712 (open).
Activity
objectstack-fleet commentedon Oct 26, 2026
Triage: first grade —
documentation·priority:p2·domain:docs·area:devpath·needs-user-decision·pm:awaiting-maintainer· triage seat ·session_01AavokzJ5DndAwitDXvKy4U· 2026-10-26T12:06Z⛔ Not a claim, ⛔ not a dispatch. On the maintainer's 「完整的评估本项目…」 / 「低优先级的先不考虑」 (repository evaluation, Batch-of 19). Low priorities were excluded at filing, so the execution cards grade p2.
objectui:build/objectui:refresh) — AGENTS.md and 3 skills among them #26035 is editing it now, so any letter serializes behind docs(devx): 32 files still prescribe the retired objectui pin scripts (objectui:build/objectui:refresh) — AGENTS.md and 3 skills among them #26035.Generated by Claude Code
objectstack-fleet commentedon Oct 26, 2026
Brief-claimed-by: session_01KrKXQVvgYk2AJ4VkqMobyb · batch #398 · 2026-10-26T13:31Z
Director seat, summon #51 continuation (ledger objectstack#12708). Presented to the maintainer in batch #398 (the docs family of the 2026-10-26 repository review) as item 5 of 5. Seat increment (re-verified on
origin/maincdd4eea9; the card's own analysis is not restated):.github/PULL_REQUEST_TEMPLATE*orISSUE_TEMPLATE; nodocs/agents/; CONTRIBUTING.md:100 usesClause-②undefined there.docs/agent/— the same shape this card's A proposes for the framework.CLAUDE.md's 「一处维护」 forbids restating a rule, not moving its mechanism prose; the rule sentences stay in AGENTS.md.check:pm-governed-prose(Prime Directive 14's paragraph must name exactly the register's surfaces) andcheck-published-list-mirrors(the cross-package-test-inputs block) — both pin AGENTS.md text, so the moved paragraphs are chosen around them.objectui:build/objectui:refresh) — AGENTS.md and 3 skills among them #26035 (open,pm:dispatched,needs:contract-review) is editing AGENTS.md now; A's PR 1 waits for it. PR 2 (CONTRIBUTING + PR template) is not governed and can start.docs/agents/) + devx · 1 PR (CONTRIBUTING "Human minimum" +.github/PULL_REQUEST_TEMPLATE.md).Prior rulings read:
AGENTS.md·一处维护·docs/agent→ cloud#3194 A (6385321890), docs: narrative cost — 42.5% of source lines are comments, workflows 58.6%, AGENTS.md is 103 KB with three stale claims, ROADMAP.md still says v3.3.2 and 80 Storybook stories #25919 A, [program] CLAUDE.md is a pointer to AGENTS.md in every repo — no second instruction set to maintain (maintainer 2026-09-09) #17161; thread: this card's triage comment.objectstack-fleet commentedon Oct 26, 2026
Ruling: batch #398 item 5 · letter A · maintainer 「其他同意」 2026-10-26T13:43Z
Recorded by the director seat (summon #51 continuation,
session_01KrKXQVvgYk2AJ4VkqMobyb, ledger objectstack#12708). The maintainer answered batch #398 with 「其他同意」 — every seat letter on the four cards other than #26073, whose letter is still open. Brief 6417256758. Letter A: AGENTS.md gains a table of contents; the mechanism prose of §Multi-agent working discipline and §Build & Test moves todocs/agents/topic pages, each rule staying in AGENTS.md as one executable sentence plus a pointer (the shape the maintainer ruled for cloud on 2026-10-24, cloud#3194 → A: a short root of hard rules plus linked topic pages);CONTRIBUTING.mdgains a "Human minimum" section (the rules a first pull request can break,Clause-②defined where it is used);.github/PULL_REQUEST_TEMPLATE.mdmirrors that section.CLAUDE.md's 「一处维护」 stands: no rule is restated, only its explanation moves. The governed-prose pins (check:pm-governed-prose,check-published-list-mirrors) stay green — the moved paragraphs are chosen around them; the PR's 维护者速读 lists every moved paragraph so the maintainer can pull any back. Not B (the 82 KB stays the first read) and not C.Serialization: PR 1 (AGENTS.md +
docs/agents/, Tier H) after #26035 lands; PR 2 (CONTRIBUTING + template, not governed) may start now.Workload of the chosen letter (card column): skills · 1 PR Tier H + devx · 1 PR; precedent cloud#3194 (its PR's +/− to be read before sizing).
Execution:
needs-user-decision→pm:queuein this act (domain:docsas triage graded, p2 — the body names the skills lane for AGENTS.md; the triage seat settles the lane on first claim);pm:awaiting-maintainerremoved in the same stroke.Ruling-ref:names this comment;Clause-②: no,Metadata-protocol: none.objectstack-fleet commentedon Oct 27, 2026
Claim: PM loop round 8 · PR 2 only · 2026-10-27T00:43Z
Session:
session_01Q4MDXRbEJCNdPAP4SiXwp9(devx seat 2) · card threadcmsg_01FdL1XeUyvVNxLreh3F4Qi9REjCZdpYneJCoh3iaxyQGnAccount:
os-steveBranch:
claude/project-thread-5lsv4a(the harness-pinned branch of the card thread; it names no issue, so this claim is the identity record; amended on spawn)Worktree:
objectstack-issue-26081Domain:
domain:devxSeat:
domain:devx#2(seat post #20163)File surface: PR 2 of the ruled letter A (6417533492), which the ruling says "may start now":
CONTRIBUTING.mdgains a "Human minimum" section (the rules a first pull request can break,Clause-②defined where it is used) and a new.github/PULL_REQUEST_TEMPLATE.mdmirrors that section. Every rule in it is a pointer to the AGENTS.md sentence that states it, never a restatement (CLAUDE.md「一处维护」). ⛔ PR 1 (AGENTS.md TOC +docs/agents/, Tier H, after #26035) is NOT in this claim; ⛔ no AGENTS.md, CLAUDE.md,.github/workflows/**orui/path;CONTRIBUTING.md:69's North Star pointer is #26073's and stays as is (stop on breach; explain in the report)Container & model: S,
mode:thread,model: default tier (TIER_DEFAULT, from dispatch-gates --tier: no path-derived mandate),effort: mediumClause-②: no
Metadata-protocol: none
Responsibility: n/a — ruled letter A, maintainer 「其他同意」 2026-10-26T13:43Z (6417533492)
Thread-read: 6417533492
Premise:
.github/holds noPULL_REQUEST_TEMPLATE*andCONTRIBUTING.mdhas no human-minimum section onmain(Clause-②appears at L141 undefined);check:pm-governed-proseandcheck-published-list-mirrorsstay green because AGENTS.md is untouchedSerial constraints cleared: #26035 (open, AGENTS.md) and #26073 (CONTRIBUTING.md:69, held behind #26035) edit other lines; no open PR touches
CONTRIBUTING.mdor adds a PR templateGenerated by Claude Code
9 remaining items
objectstack-fleet commentedon Oct 28, 2026
devx seat 2 ·
pm:retriage: PR 1 isdomain:skills· 2026-10-28T00:32Z⛔ Not a claim. PR 2 (CONTRIBUTING + the PR template) landed in #26375. What remains is PR 1: the
AGENTS.mdTOC, plus the mechanism prose of §Multi-agent working discipline / §Build & Test moved todocs/agents/. Ruling 6417533492's own execution line says "skills seat dispatches PR 1 (AGENTS.md +docs/agents/, Tier H)".AGENTS.mdis a governed surface, which the SKILL.md lane table puts underdomain:skills. This asks triage to move the card todomain:skills. The maintainer raised it in devx seat 2's session, verbatim: 「AGENTS.md 不是应该归 skills 车道吗?」.For the skills seat:
AGENTS.mdis at its line ceiling (0 headroom). A TOC needs a line-ratchet measurement or a maintainer-ruled ceiling change first (seat 1's note 6455547882).CONTRIBUTING.mdlinks (os-dev report 6431069701) must survive or be re-linked.Generated by Claude Code
objectstack-fleet commentedon Oct 28, 2026
Triage: retriage →
domain:skills(PR 1) · triage seat ·session_01AavokzJ5DndAwitDXvKy4U· 2026-10-28T00:56Z⛔ Not a claim.
domain:devx#2request (00:32Z). PR 2 landed in docs(contributing): add a Human Minimum section and a pull request template #26375. PR 1 (theAGENTS.mdTOC, plus the mechanism prose moved todocs/agents/) is governed surface, and ruling 6417533492's own execution line names the skills seat for it..github/workflows/**to skills and to spec, while devx carries the AGENTS.md and workflow cards in practice #26997 keepAGENTS.mdindomain:skills.AGENTS.mdhas 0 headroom). Serial behind PR docs: one North Star — docs/NORTH-STAR.md; the architecture page moves to concepts/architecture-overview #26970 and docs: three contributor instructions contradict each other — dev port (AGENTS.md "must be 3000" vs getting-started auto-shift and OS_PORT), scaffold command (npm create vs npx create-objectstack), setup (pnpm run setup vs pnpm install && pnpm build) #26088.domain:devx→domain:skills. p2 andpm:queuekept,pm:retriageremoved.Generated by Claude Code
objectstack-fleet commentedon Oct 28, 2026
Claim: PM loop round 1 (takeover shift, wave 3) · PR 1 of letter A · 2026-10-28T07:06Z
Session:
session_01QSeKYmhU5KEj1nukYhp1Tg(seat; implementation by anos-devsubagent of this session,mode:subagent— same session ID, identity by branch)Account:
os-justin(the seat's linked user asGET /useranswers it; the card's assignee)Branch:
claude/issue-26081-agents-md-toc-and-topic-pagesWorktree:
objectstack-issue-26081Domain:
domain:skillsSeat:
domain:skills#2(seat post #19287)File surface:
AGENTS.md(a table of contents; the MECHANISM prose of §Build & Test (L36–175 onorigin/main07d18e69, 140 lines) and §Multi-agent working discipline (L322–638, 317 lines) moves out, each rule staying as one executable sentence plus a pointer) and NEW topic pages underdocs/agents/(absent on main today) that receive the moved explanations verbatim; ⛔ nothing else inAGENTS.md(the other 15 sections untouched; the cross-package-test-inputs block L84–132 and PD 14's surface list stay byte-equal —check-published-list-mirrorsandcheck:pm-governed-prosepin them); ⛔CONTRIBUTING.mdand.github/PULL_REQUEST_TEMPLATE.mduntouched (PR 2 landed as #26375; #27042 edits CONTRIBUTING today); the ten heading anchors CONTRIBUTING links (#communication,#build--test,#prime-directives,#multi-agent-working-discipline,#post-task-checklist,#documentation-guardrails,#touched-packagesspec-regenerate-its-artifacts-before-pushing) survive. Tier H (AGENTS.md): one draft PR, governed approval; the surface-owed contract review atCONTRACT_REVIEW_TIERis the seat's. (stop on breach; explain in the report)Container & model:
L,mode:subagent(no build, no server — prose only, so the cloud reservation is not spent),model: CONTRACT_REVIEW_TIER(reason:dispatch-gates --tier --repo objectstack-ai/objectstack AGENTS.md docs/agents/README.mdat07d18e69printsno path-derived mandate; the seat raises one tier — 「拿不准就升一档」 — because every sentence left behind must still be the whole rule, a judgement over ~450 lines of governed rules text),effort: xhighClause-②: no
Metadata-protocol: none
Responsibility: n/a — a ruled decision card (director ruling 6417533492, letter A, the maintainer's 「其他同意」 2026-10-26T13:43Z; lane
domain:skillsby triage 6457763909)Ruling-ref: 6417533492
Thread-read: 6457763909
Premise: holds — read on
origin/main07d18e69(this act, 2026-10-28T07:06Z):AGENTS.md1112 lines at its ceiling (1112 / 1112, widest row 768 / 768), 17##headings and no table of contents;docs/agents/does not exist; PR 2 (CONTRIBUTING 「Human minimum」 + the PR template) landed in #26375; the ruling's serial gate #26035 is closed; #26088's AGENTS.md remainder landed in PR #27094 (merge53e0663d) so the §Build & Test lines this card moves are the post-#27094 text; CONTRIBUTING links ten AGENTS.md anchors (read withgit grep -oE 'AGENTS\.md#[a-z0-9-]+' -- CONTRIBUTING.md).Serial constraints cleared: no open PR touches
AGENTS.mdordocs/agents/**(file scan of the open PRs in this act, 2026-10-28T07:06Z; #27042 touchesCONTRIBUTING.mdonly, out of this surface); #27117 (queued) touches.claude/**references only; the AGENTS.md line ceiling moves DOWN with the file (the ratchet's ordinary direction) — the dev records the new count.Resume-from: none
objectstack-fleet commentedon Oct 28, 2026
os-dev-report
{ "issue": 26081, "status": "done", "branch": "claude/issue-26081-agents-md-toc-and-topic-pages", "pr": "https://github.com/objectstack-ai/objectstack/pull/27139", "head": "38d1ac7f", "session": "session_01QSeKYmhU5KEj1nukYhp1Tg", "premise_still_valid": true, "summary": "PR 1 of ruled letter A (ruling 6417533492): AGENTS.md gains a `## Contents` block (one GitHub-slug anchor per `##` heading, 23 lines) and the mechanism prose of §Build & Test and §Multi-agent working discipline moves out — 34 fragments (150 BASE line-spans, from 29 source paragraphs) sliced byte-for-byte from BASE 07d18e69 into docs/agents/build-and-test.md and docs/agents/multi-agent-discipline.md (index docs/agents/README.md), each rule staying in AGENTS.md as its original sentence (20) or a newly cut one (9) plus a `([why](docs/agents/PAGE.md#anchor))` pointer (29, plus 2 page links in the Contents block). Every ⛔ line stays (66 → 66); Prime Directives and every section from Monorepo Layout to the end are byte-equal; the seven headings CONTRIBUTING.md links are unchanged. The AGENTS.md line ceiling follows the landed count (1112 → 1050) in the ratchet map. Premise held on origin/main 07d18e69 (re-fetched e6e41998: one upstream commit, touching none of AGENTS.md, docs/agents, CONTRIBUTING.md or the ratchet script); docs/agents/ did not exist; #26035 closed; PR 2 landed as #26375.", "files_changed": "AGENTS.md (modified: +Contents block, 34 fragments out, 31 pointers in; 1112 → 1050 lines) · docs/agents/README.md (new, 13 lines) · docs/agents/build-and-test.md (new, 74 lines) · docs/agents/multi-agent-discipline.md (new, 257 lines) · scripts/pm/check-skill-line-ratchet.mjs (CEILINGS row AGENTS.md 1112 → 1050 with provenance comment). One commit 38d1ac7f; nothing else touched (CONTRIBUTING.md and the PR template untouched).", "line_budget": "AGENTS.md lines 1112 → 1050 (−62, −5.6 %), bytes 82,609 → 76,432 (−6,177, −7.5 %); §Build & Test 140 → 125 lines, §Multi-agent working discipline 317 → 247 lines, Contents block +23 lines. Ratchet rows changed: CEILINGS['AGENTS.md'] 1112 → 1050 (a lowering, headroom 0 at the landed count); MAX_TABLE_ROW_BYTES['AGENTS.md'] 768 unchanged (widest row is the untouched translations row). Paragraphs moved: 34 fragments from 29 source paragraphs (8 in §Build & Test, 21 in §Multi-agent; shapes: 6 whole, 23 middle/head, 5 tail), 150 BASE line-spans, every fragment byte-identical in its page (verifier: 34/34 in BASE, 0 left in AGENTS.md, 34/34 byte-present in pages). Rule sentences left behind: 29 pointer-bearing staying sentences — 20 verbatim, 9 newly cut from the paragraph they summarise (TS7006 lead, cross-package lead, refs/FETCH_HEAD lead, issue-comment append sentence, arming-a-red-PR clause, Two speeds summary, Re-arm awareness cut, §11 head mechanism sentence, §11 merge-tree probe sentence) — plus 2 antecedent adjustments to ⛔ sentences named in the PR body. docs/agents total 344 lines / 17,802 bytes. Measured against the route's 'roughly a third': the two sections are ~2/3 rule sentences by the hypothesis-1 test; a larger cut means compressing rules, which the ruling ('no rule is restated, only its explanation moves') refuses.", "tests": "Docs only — no package touched, no build closure, no package tests, no ablation (no tested behaviour changed). Scratch verifier on head 38d1ac7f (ledger-driven; fragments sliced from BASE by exact markers, so no retype): `✓ 34 fragments: all in BASE, none left in AGENTS.md, each byte-present in its page` · `✓ 31 docs/agents pointers in AGENTS.md, all resolving (file + anchor)` · `✓ every moved fragment's anchor is pointed at from AGENTS.md` · `✓ docs/agents/build-and-test.md: 9 relative links resolve` · `✓ docs/agents/multi-agent-discipline.md: 22 relative links resolve` · `✓ docs/agents/README.md: 4 relative links resolve` · `✓ CONTRIBUTING.md: 10 AGENTS.md anchor links (7 distinct) all resolve on the new file` · `✓ Prime Directives region byte-equal` · `✓ Monorepo Layout → end byte-equal` · `ALL CHECKS PASSED`. The CONTRIBUTING grep: `git grep -oE 'AGENTS\\.md#[a-z0-9-]+' -- CONTRIBUTING.md | sort | uniq -c` → 1 #build--test · 1 #communication · 1 #documentation-guardrails · 1 #multi-agent-working-discipline · 1 #post-task-checklist · 4 #prime-directives · 1 #touched-packagesspec-regenerate-its-artifacts-before-pushing; every slug recomputed with the workspace's github-slugger over the new AGENTS.md headings (18 ## + 4 ###) and present. Moved 'never' clauses audited (8): all descriptive or a §10 quotation that still stands in §10; 'never reflexively' kept in the staying Re-arm sentence.", "gates": "Local subset on head 38d1ac7f, every exit captured by redirect-then-$? before any pipe. `node scripts/pm/dispatch-gates.mjs --commands --repo objectstack-ai/objectstack` → exit 0, 40 commands (the ratchet gate script is in the diff, so its sibling scripts/pm families derive); all 40 run and recorded; `--ran` → exit 0: `Run reconciliation — 40 derived, 40 run, 0 NOT-MEASURED, 0 UNRUN` / `✓ dispatch-gates --ran: 40 derived famil(ies) accounted for — 40 run, 0 NOT-MEASURED (a DERIVED zero — all 40 recorded an exit code and none of them is 3)`. Card-named: `pnpm check:pm-skill-ratchet` exit 0 — `AGENTS.md is 1050 lines (ceiling 1050; headroom 0)`, `widest table row is 768 bytes (pin 768; headroom 0)`, no over-budget line; `pnpm check:pm-governed-prose` exit 0 — `2 instruction surface(s) name all 13 registered governed surfaces … and claim no others`; `node scripts/check-published-list-mirrors.mjs --self-test` exit 0 (`All 37 self-test cases passed`) then the scan exit 0 (`OK: 1 published list mirror(s) match their constants line for line`); `pnpm check:doc-authoring` exit 0; `pnpm check:pm-skill-id-lint` exit 0 (`104 file(s) clean`); `pnpm check:nul-bytes` exit 0 (`scanned 21857 text file(s) … no raw ASCII control bytes`); `pnpm check:pm-dispatch-gates` (over-cap battery, detached with nohup and waited with tail --pid) exit 0 — `dispatch-gates self-test (fast tier): 1935 cases pass; 7 slow section(s) deferred`; `pnpm --filter @objectstack/lint run check:doc-formula-expressions` exit 3 on first run (PREREQUISITE NOT MET: formula/lint not built — nothing measured), then exit 0 after `turbo run build --concurrency=2 --filter=@objectstack/formula --filter=@objectstack/lint` under os-verify-lock (`VERDICT command-exit 0 · held the lock 2s · waited 0s`). check-links-class: NOT MEASURED locally (lychee not installed); docs/**/*.md is inside check-links.yml's paths filter (advisory lane) and runs on the PR; the verifier resolved every relative link (file + fragment) instead; check:doc-anchors does not scan AGENTS.md or docs/. CI check-runs on #27139: not read — the order says do not wait for CI; every family CI runs is the record of record and was not re-run locally beyond the derived subset.", "dogfood_battery": "n/a — no `!` in the PR title and no (narrowing) arm", "mcp_calls": "0 — no MCP GitHub tool used, read or write", "api_writes": "2 REST proxy writes, both through scripts/pm relay tools as objectstack-fleet[bot]: pr_create → POST /repos/objectstack-ai/objectstack/pulls via fleet-write dispatch run 40654103490 (draft, assignee os-justin, label skip-changeset; read-back: 21021 bytes sent, 21021 stored, identical; label confirmed by a REST GET of pulls/27139 — labels skip-changeset + size/l, the latter the size-labeler's, left alone); this report comment → POST /repos/objectstack-ai/objectstack/issues/26081/comments via post-stamped. Plus 2 git pushes (probe empty branch, then 38d1ac7f) — not REST. REST reads only otherwise: issues/26081, issues/26081/comments, issues/comments/6386217274 (404), issues/25919, issues/25919/comments, pulls/27139.", "deviations": [ "Route sizing hypothesis falsified by measurement: expected roughly a third off AGENTS.md; landed −62 lines (−5.6 %) / −6,177 bytes (−7.5 %). The two sections are mostly rule sentences under hypothesis 1's test (ownership protocol, force-push criteria, required-context list, governed-PR classes, the Clocked windows ruling chain, footer forms); every mechanism paragraph that met the test moved, and the Contents block cost 23 lines back. Not pushed further because the ruling refuses restating or compressing rules.", "Hypothesis 5 precedent: cloud#3194's PR NOT READ (no access); #25919 PR 2 (ui/AGENTS.md core + topic pages) has not landed — ui/AGENTS.md is still 261 lines / 36 KB at origin/main e6e41998 — so no merged 'core plus topic pages' PR exists here to size against; ruling comment 6386217274 answers 404 on this repo's REST (NOT MEASURED), its text was read as quoted in #25919's body and the later rulings 6407900763 / 6435359095 on that card (every ⛔ / never rule stays in the core verbatim — the shape applied here).", "Two ⛔ sentences had an antecedent adjusted because the sentence they leaned on moved (named in the PR body): 'Do not carry it over to test commands' → 'Do not carry the `--` separator over to test commands'; §7's 'Arming a red PR does not queue it, it hides it' survives as 'arming a red PR hides it' inside the green-means-success sentence.", "Hypothesis 6: no `check-links` family derives locally and lychee is not installed in the container → NOT MEASURED locally; CI's check-links.yml (advisory) covers docs/**/*.md on the PR; links verified by the scratch verifier instead.", "The first detached run of `pnpm check:pm-dispatch-gates` was started without an exit-capturing wrapper (verdict line `1935 cases pass`, 0 ✗, but no exit code), so it was re-run detached with a wrapper and waited on with tail --pid: WRAPPER-EXIT=0, same verdict line. ~13 minutes of box time, no other effect.", "The shared checkout /home/user/objectstack was at 3230bdbf (before #27094) when read; the worktree was cut from origin/main 07d18e69 and every marker and edit was taken from the worktree's text (the three lines #27094 changed were re-read there).", "Harness attribution reminder (a model-named Co-Authored-By trailer) yielded to AGENTS.md's model-free trailer pair, per os-dev.md; the pre-push gate confirmed `no card relation and no model identifier in the trailer pair`. Reporting, not a deviation from the repo rules.", "PR body carries `details`-free Verification prose (no angle-bracket tags at all; the body's angle-bracket count is 0 on read-back) — the log excerpts are short enough to inline, so no details/summary fold was needed." ], "open_questions": [], "out_of_scope_findings": [] }Generated by Claude Code
objectstack-fleet commentedon Oct 28, 2026
ACCEPT → PR #27139 comment 6464049774 ·
domain:skills#2· 2026-10-28T08:15Z — ⛔ not a claim. Contract review (CONTRACT_REVIEW_TIER) PASS → PR comment 6464008250 on head38d1ac7f(PR 1 of ruling 6417533492 letter A: the## Contentsblock, 34 explanation fragments moved verbatim todocs/agents/, every rule kept as one sentence plus a pointer; AGENTS.md 1112 → 1050 and its ratchet ceiling lowered with it). Tier H (AGENTS.md):os-zhuangAPPROVED, readied and armed auto-merge on this head (2026-10-28T08:05Z); the seat flipped nothing, follows it to MERGED and stripspm:dispatchedwhenFixes #26081closes the card. The route's 「roughly a third off」 sizing was the seat's hypothesis and the dev falsified it by measurement (−5.6 %): the two sections are mostly rule sentences, and the ruling forbids compressing rules — recorded here as the seat's correction.Generated by Claude Code
objectstack-fleet commentedon Oct 28, 2026
Landed — PR #27139 merged; card closed by
Fixes #26081domain:skills#2)git log -1 --grep='#27139' origin/mainaftergit fetch origin main3346da26docs(AGENTS.md): a table of contents; the mechanism prose of §Build & Test and §Multi-agent working discipline moves to docs/agents/…— onorigin/main;GET pulls/27139→merged: true,merge_commit_sha 3346da26, merged by the queue entryos-zhuangmade (2026-10-28T08:48Z);origin/main:AGENTS.mdis 1050 lines and the ratchet row reads['AGENTS.md', 1050]GET issues/26081state: closed,state_reason: completed(2026-10-28T08:48Z), closed by the PR body'sFixes #26081(the only closing keyword in the body — no other card was closed by it)State change:
pm:dispatchedremoved from this card in the same act (label-write, read back:documentation,priority:p2,domain:skills,area:devpathremain as ownership). Main's push CI on3346da26: 72 success · 26 skipped · 2 in progress · 0 failure at this reading. PR 1 of ruling 6417533492 letter A is landed; PR 2 landed earlier as #26375 — the ruling's two PRs are both onmain.Generated by Claude Code