Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 10 additions & 0 deletions AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -583,6 +583,16 @@ Even inside your own worktree, operate defensively:
(`authorable-surface/`, `json-schema.manifest/`, `api-surface/`) to keep parallel
spec PRs textually disjoint; every gate reads the whole directory as one set, so
ratchet semantics are unchanged (`packages/spec/scripts/lib/sharded-artifacts.ts`).
- **Corollary — a local `merge-tree` is NOT GitHub's mergeability**: a local
`git merge-tree` of any `merge=os-regen` path runs the same merge-ort machinery as
`git merge` and therefore honours the custom driver, while GitHub runs none, so the
two answer different questions about the same snapshot. Probe from a throwaway bare
clone that shares the object store and has no driver registered
(`git clone --bare --shared . PROBE.git`, then
`git --git-dir=PROBE.git merge-tree --write-tree --name-only BASE HEAD`), ⛔ never
with `-c merge.os-regen.driver=`, which 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.
- **Registration is per clone** (`pnpm install` → `prepare` →
`scripts/setup-git-hooks.mjs`); an unregistered clone falls back to git's default
text merge — older behaviour, not breakage.
Expand Down
13 changes: 12 additions & 1 deletion scripts/pm/check-skill-line-ratchet.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -868,7 +868,18 @@ export const CEILINGS = new Map([
// 1162 → 1058: the rules-only rewrite — every incident narrative, ruling date and
// quotation out, every rule kept as one sentence; re-pinned at the landed count,
// headroom 0 (lowering is always legitimate).
['AGENTS.md', 1058],
//
// 1058 → 1068: the merge-tree corollary (PR #15885, card #15871), +10 lines — a
// local `merge-tree` of a `merge=os-regen` path is NOT GitHub's mergeability, the
// driver-less bare-clone probe that answers GitHub's question, and the ⛔ refusal
// of `-c merge.os-regen.driver=`. Maintainer ruling, verbatim and untranslated:
// 「同意」 (decision batch #63, 2026-09-07, PR #15885 comment 5564103435) and
// 「15885 你接手跟进合并」 (2026-09-07, quoted in the director's correction comment
// on PR #15885). Re-wrap and cross-file moves are refused per the header: the
// bullet is already typeset at the surrounding block's 90-byte prose width, and
// AGENTS.md is not a CROSS_FILE_MOVES destination, so no `ruledRaises` record
// applies. Landed count, headroom 0, same convention.
['AGENTS.md', 1068],
// #9965: root CLAUDE.md is the other repo-root instruction file — same read
// path (every seat session), same governance (Prime Directive #14). It is
// structurally growth-prone in the way the ratchet is built for: it exists to
Expand Down
Loading