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
[program] CLAUDE.md is a pointer to AGENTS.md in every repo — no second instruction set to maintain (maintainer 2026-09-09) #17161
Maintainer direct instruction to the skills seat (session session_01MoTv7pn338AZ71owsp19gQ, GitHub os-justin), given in that PM session's chat on 2026-09-09 at 13:3xZ and 13:4xZ, verbatim, untranslated:
CLAUDE.md in every repository becomes a pointer to AGENTS.md and carries nothing else — one instruction set per repo, maintained once. Each repo is one sub-issue (规则 2: a cross-repo change is never one dispatch); this card is the coordination node and is never dispatched.
repo
sub-issue
state on 2026-09-09
objectstack
filed below
CLAUDE.md 41 lines: pointer + inlined never-miss rules with hook pointers; scripts/pm/check-governed-prose.mjs counts it as an instruction surface that must name the five governed surfaces
objectui
filed below
CLAUDE.md 25 lines: pointer + two inlined rules with hook pointers; check-governed-queue-guard.mjs lists it as governed
hotcrm
filed below (folded into the AGENTS.md trim)
no CLAUDE.md at all; .github/copilot-instructions.md is already the pointer model
not readable from this session at filing; the sub-issue's first step is to measure whether a CLAUDE.md / AGENTS.md pair exists
Fixed shape for every sub-issue: the file says where the truth lives and that the reader must read it, in the repo's own instruction language; ⛔ no rule is restated in it, no hook list, no digest. Hooks and gates keep enforcing what they enforce (the never-miss rules live in AGENTS.md and in the hooks, not in the pointer). A gate that reads CLAUDE.md as an instruction surface adapts to the pointer form in the same PR. CLAUDE.md is a governed surface in every repo ⇒ draft PR, human merge, skip-changeset where the repo has it.
Governing text: the maintainer instruction above; AGENTS.md (each repo) as the single source it points to. Four-axis note recorded once here for all sub-issues: 实际业务需求 — the maintainer measured the cost directly (two sets to maintain, drift between them); 长远 — one source; 防 AI 犯错 — an agent that reads only CLAUDE.md today gets a digest that can lag AGENTS.md, and a pointer cannot lag; 不扩散 — deletion, no new surface. The known cost, stated: Claude Code loads CLAUDE.md automatically and AGENTS.md only through the pointer, so a session that skips the pointer has no rules until a hook fires — the hooks are the floor that makes this acceptable.
Carried findings (program carrier), recorded by the skills seat at 2026-09-09T14:08Z from objectui PR #8848's ## Acceptance notes — noted, not filed as cards; the sub-issue that reaches the file decides:
objectui .github/workflows/hook-selftests.yml:8 (a comment) cites 「the rule both CLAUDE.md files state as binding … see those files' ⛔ sections」; those sections are gone in objectui and objectstack#17162 removes them in objectstack, so the citation is stale on both sides once this program lands. It reads nothing and gates nothing. Reader who meets it: the next edit to that workflow, or the objectstack sub-issue's dev if the same workflow exists there (measure).
Carried finding (program carrier), recorded by the skills seat at 2026-09-09T14:28Z from PR #17168's ## Acceptance notes: eight objectstack script/agent comments cite CLAUDE.md as the place a rule is STATED — scripts/check-vendor-version-stamps.mjs :226 and :911, scripts/check-docs-single-h1.mjs :109 and :117, scripts/import-prerequisite.mjs :12 and :382, scripts/pm/ci-failure.mjs :215, .claude/agents/os-dev.md :35, .claude/workflows/docs-accuracy-audit.js :41. After #17162 those rules are stated in AGENTS.md; every citation still routes a reader there through the pointer (one hop longer, never a dead end) and no gate reads them. Reader who meets it: whoever lands the last sub-issue of this program does the one re-pointing pass across repos (objectui's hook-selftests.yml:8 comment, recorded above, joins that pass).
Program status at 2026-09-09T16:0xZ (skills seat, session session_01MoTv7pn338AZ71owsp19gQ): 2 of 5 repos landed. objectstack — #17162 / PR #17168 MERGED 15:55Z (d18b7607, CLAUDE.md 41 → 5 lines); hotcrm — folded into #1823 / PR #1830 MERGED 15:33Z (06b9bb327bb0, 6-line pointer). Still at the human terminal: objectui#8840 / PR #8848 (draft, needs-user-decision, no review yet). Queued and undispatchable until their repos are attached to a session with push credentials: objectstack-ai/cloud#2521 (cloud) · #17164 (objectos) · #17165 (www.objectos.ai) — the maintainer was asked whether this seat attaches and dispatches them (round-2 report). Carried notes from 5603238728 unchanged: objectui AGENTS.md :249's hook roster omits guard-main-checkout-bash.sh; objectstack hook-selftests.yml:8 cites both CLAUDE.md files' ⛔ sections and is stale now that objectstack's file is a pointer — that citation is a follow-up on the objectstack side once objectui's PR lands (file it then, one card, not a rider).
Program status at 2026-09-10T01:3xZ (skills seat, session session_01MoTv7pn338AZ71owsp19gQ): 3 of 5 repos landed. objectstack — #17162 / PR #17168 MERGED 2026-09-09T15:55Z; hotcrm — #1823 / PR #1830 MERGED 15:33Z; objectui — #8840 / PR #8848 MERGED 2026-09-10T01:24Z (157028ac, CLAUDE.md 25 → 3 lines, merged_by os-zhuang). Still queued and undispatchable until their repos are attached to a session with push credentials: objectstack-ai/cloud#2521 (cloud) · #17164 (objectos) · #17165 (www.objectos.ai) — the maintainer has been asked in every round report since round 2. Carried note discharged now that both CLAUDE.md files are pointers: objectstack .github/workflows/hook-selftests.yml cites the two files' ⛔ sections — measured and filed separately by this seat if stale.
Activity
os-justin commentedon Sep 9, 2026
Carried findings (program carrier), recorded by the skills seat at 2026-09-09T14:08Z from objectui PR #8848's
## Acceptance notes— noted, not filed as cards; the sub-issue that reaches the file decides:AGENTS.md:249namesguard-main-checkout.shand enumerates Edit/Write/NotebookEdit but never namesguard-main-checkout-bash.sh, which guards the same writes performed through Bash; after PR http-dispatcher: DELETE / PATCH / POST on /metadata/:type/:name are answered as READS — the same fall-through #8842 closed for PUT, on a different trigger #8848 no document in that repo names the hook. The rule survives intact and the hook keeps firing — an incomplete enforcement roster, not a lost rule. Reader who meets it: whoever next edits objectuiAGENTS.md〈9. Operational Rules〉..github/workflows/hook-selftests.yml:8(a comment) cites 「the rule bothCLAUDE.mdfiles state as binding … see those files' ⛔ sections」; those sections are gone in objectui and objectstack#17162 removes them in objectstack, so the citation is stale on both sides once this program lands. It reads nothing and gates nothing. Reader who meets it: the next edit to that workflow, or the objectstack sub-issue's dev if the same workflow exists there (measure).Generated by Claude Code
os-justin commentedon Sep 9, 2026
Carried finding (program carrier), recorded by the skills seat at 2026-09-09T14:28Z from PR #17168's
## Acceptance notes: eight objectstack script/agent comments citeCLAUDE.mdas the place a rule is STATED —scripts/check-vendor-version-stamps.mjs:226 and :911,scripts/check-docs-single-h1.mjs:109 and :117,scripts/import-prerequisite.mjs:12 and :382,scripts/pm/ci-failure.mjs:215,.claude/agents/os-dev.md:35,.claude/workflows/docs-accuracy-audit.js:41. After #17162 those rules are stated inAGENTS.md; every citation still routes a reader there through the pointer (one hop longer, never a dead end) and no gate reads them. Reader who meets it: whoever lands the last sub-issue of this program does the one re-pointing pass across repos (objectui'shook-selftests.yml:8comment, recorded above, joins that pass).Generated by Claude Code
os-justin commentedon Sep 9, 2026
Program status at 2026-09-09T16:0xZ (skills seat, session
session_01MoTv7pn338AZ71owsp19gQ): 2 of 5 repos landed. objectstack — #17162 / PR #17168 MERGED 15:55Z (d18b7607,CLAUDE.md41 → 5 lines); hotcrm — folded into #1823 / PR #1830 MERGED 15:33Z (06b9bb327bb0, 6-line pointer). Still at the human terminal: objectui#8840 / PR #8848 (draft,needs-user-decision, no review yet). Queued and undispatchable until their repos are attached to a session with push credentials: objectstack-ai/cloud#2521 (cloud) · #17164 (objectos) · #17165 (www.objectos.ai) — the maintainer was asked whether this seat attaches and dispatches them (round-2 report). Carried notes from 5603238728 unchanged: objectuiAGENTS.md:249's hook roster omitsguard-main-checkout-bash.sh; objectstackhook-selftests.yml:8cites both CLAUDE.md files' ⛔ sections and is stale now that objectstack's file is a pointer — that citation is a follow-up on the objectstack side once objectui's PR lands (file it then, one card, not a rider).Generated by Claude Code
os-justin commentedon Sep 10, 2026
Program status at 2026-09-10T01:3xZ (skills seat, session
session_01MoTv7pn338AZ71owsp19gQ): 3 of 5 repos landed. objectstack — #17162 / PR #17168 MERGED 2026-09-09T15:55Z; hotcrm — #1823 / PR #1830 MERGED 15:33Z; objectui — #8840 / PR #8848 MERGED 2026-09-10T01:24Z (157028ac,CLAUDE.md25 → 3 lines, merged_by os-zhuang). Still queued and undispatchable until their repos are attached to a session with push credentials: objectstack-ai/cloud#2521 (cloud) · #17164 (objectos) · #17165 (www.objectos.ai) — the maintainer has been asked in every round report since round 2. Carried note discharged now that both CLAUDE.md files are pointers: objectstack.github/workflows/hook-selftests.ymlcites the two files' ⛔ sections — measured and filed separately by this seat if stale.Generated by Claude Code