docs(agents): a local merge-tree of an os-regen path is not GitHub mergeability — state the corollary and name the sound probe (#15871) - #15885
Open
claude[bot] wants to merge 1 commit into
Conversation
…regen path is not GitHub mergeability, and name the sound probe (#15871) AGENTS.md §11 already says the `merge=os-regen` driver is a LOCAL facility. What it never stated is the corollary that costs a seat a round trip: a local `git merge-tree` of a routed path runs the same merge-ort machinery as `git merge`, so it HONOURS the driver, while GitHub runs none — the two answer different questions about the same snapshot. The added bullet names the sound instrument (a throwaway bare clone sharing the object store, where the driver is genuinely absent, which is GitHub's actual condition) and refuses the falsified `-c merge.os-regen.driver=` spelling, whose empty string does not disable the driver but leaves git failing to run it and reporting a conflict for every routed path — including ones that text-merge cleanly. Measurements are on PR #15868, which carries the same text in `scripts/pm/os-regen-merge.sh`'s header. Part of #15815 Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_012zGPuVVX3deAx9LdjK8jCk
This was referenced Sep 5, 2026
os-zhuang
approved these changes
Sep 5, 2026
os-zhuang
marked this pull request as ready for review
September 5, 2026 13:23
os-zhuang
enabled auto-merge
September 5, 2026 13:23
Collaborator
维护者速读 · 待你一个字(skills 席代读,2026-09-05T13:3xZ;本 PR 属 devx 车道,其席位可更正)改了什么:AGENTS.md §11 加 10 行:本地 为什么改:今天 spec 席就是被这个假绿骗了一次(#15647 addendum 3 记的那件事);规则本体已经说驱动是本地设施,少的是这个推论。 风险与代价:CI 红——AGENTS.md 行数上限 1162,现在 1161,加 10 行就是 1171,行数 ratchet 拒绝;dev 没有擅自抬上限,如实标红等你裁。此外它与成员 5 的 PR #15856(同一文件,已重钉上限为 1058)撞车:谁先落地另一个都要重解。os-zhuang 已批准(批的是一张红 PR)。 选项
你要做的:回 A / B。 Generated by Claude Code |
os-zhuang
approved these changes
Sep 5, 2026
This was referenced Sep 5, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Fixes #15871
Part of #15815 — the GOVERNED half. The ordinary half (the same text in
scripts/pm/os-regen-merge.sh's header, plus the driver's probe gate) is PR #15868.AGENTS.md§11 already says themerge=os-regendriver is a LOCAL facility. The corollary that actually costs a seat a round trip was nowhere stated: a localmerge-treeof a routed path is not evidence about GitHub's mergeability. This adds it as one bullet, immediately after that sentence. Nothing else inAGENTS.md; noCLAUDE.mdmirror (no gate demanded one).⛔ THIS PR IS BLOCKED ON A MAINTAINER RULING — do not merge as-is
pnpm check:pm-skill-ratchetis RED and I did not touch the pin. Its verdict, quoted:The ledger, measured rather than asserted:
AGENTS.mdonorigin/mainCEILINGSinscripts/pm/check-skill-line-ratchet.mjs)wrapLineAGENTS.mdonly⇒ The only route left is the header's own escape hatch: a maintainer ruling quoted in this PR body, after which the pin moves in a follow-up commit here. I have no such ruling, so I did not raise the roof and did not launder the raise as "pending". The red is the honest signal.
The paragraph is already at its floor: it is the card's ruled text, and every sentence in it is ruled substance (the corollary, the mechanism, the sound probe with both commands, the ⛔ refusal with its one-line reason). Cutting further drops ruled content.
AGENTS.md, and one of them re-pins this very ceilingEnumerated through
GET /pulls/N/filesover all 32 open PRs:AGENTS.mdAGENTS.md1162 → 1058 andMAX_TABLE_ROW_BYTES1081 → 768. It KEEPS the LOCAL-facility bullet this PR anchors to (it survives as a context line), but rewrites its neighbours.Both matter to whoever rules on the ceiling: if #15856 lands first, this bullet must be re-typeset into the rewritten §11 in that PR's rules-only voice — "every incident narrative, ruling date and quotation out" would trim the clause "and it has already cost a seat a round trip" — and the ask becomes 1058 → 1068. Neither ordering is mine to choose. Not addressed here.
The added text, exactly as committed
Wording mirrors the header shipped by PR #15868, compressed to AGENTS.md's bullet shape and its ~90-column prose width (widest added line: 91 chars, against 91 in the surrounding block). The placeholders are spelled
BASE HEADin words rather than in angle brackets, matching the card's own text and keeping the paragraph quotable in a GitHub body without tripping the body sanitizer.Verification
Governed predicate —
node scripts/pm/check-governed-merges.mjs --test AGENTS.md, quoted:⇒ draft, reviewers
os-zhuang+hotlong, human merge, never armed by a seat.Gate families derived with
node scripts/pm/dispatch-gates.mjs --changed --commands --repo objectstack-ai/objectstack(14 families) and reconciled with--ran:14 derived famil(ies) accounted for. Exit codes captured BEFORE any pipe.GREEN (9, all dependency-free, re-run at the final commit):
check:nul-bytesEXIT=0 —check-nul-bytes: OK (scanned 7656 text file(s) ... no raw ASCII control bytes);check:agent-test-spellingEXIT=0;check:docs-audit-scopeEXIT=0;check:pm-governed-proseEXIT=0 —✓ check-governed-prose: 2 instruction surface(s) name all 5 registered governed surfaces;check:pm-skill-id-lintEXIT=0;check:refd-timer-probeEXIT=0;check:watch-hint-literalEXIT=0; pluscheck:pm-skill-ratchet's own table-row leg —✓ AGENTS.md: widest table row is 1081 bytes (pin 1081; headroom 0).RED (1):
check:pm-skill-ratchetEXIT=1 — the ceiling, above.⊘ NOT MEASURED (5, by name — a prerequisite refusal is not a green):
check-closing-keyword-parity.mjsand its--self-testEXIT=3,check:driver-memory-censusEXIT=3,check:required-contextsEXIT=3,check:pm-governed-mergesEXIT=3 (all printFix: pnpm installandNothing was measured), andcheck-comment-mask-corpus.mjsEXIT=1 withERR_MODULE_NOT_FOUND— an unmet prerequisite, not a finding. This worktree has nonode_modulesby design; none of the five readsAGENTS.md(they read.github/workflows/, TS sources and parser registries), and CI runs them on this PR.check:pm-governed-merges' predicate is measured directly by the--testreading above.Mergeability was measured through the SOUND instrument this PR documents — dogfooding it:
Control leg the other way: in this worktree the driver IS registered (
git config --get merge.os-regen.driver→node "$(git rev-parse --show-toplevel)/scripts/git-merge-regen.mjs" %O %A %B %P, exit 0), so a probe run here would have been the instrument mismatch this bullet exists to stop. ⛔-c merge.os-regen.driver=was never used. Noos-regen-pendingmarker was left in the probe clone.Docs-only, publishes nothing from any package ⇒
skip-changeset.🤖 Generated with Claude Code
https://claude.ai/code/session_012zGPuVVX3deAx9LdjK8jCk
Generated by Claude Code