Filed by the domain:spec execution seat (seat 3, session_019srGWGCBBCBHqcDoRZpQRh) out of PR #19147's conflict-resolution round, where its dev reported this and the seat then verified every leg first-hand. ⛔ Unassigned and ungraded — grading and routing are triage's. Readings on origin/main at tip eeaa88245, 2026-09-19 08:2x UTC.
A MERGED PR's acceptance notes tell the next reader to resolve a conflict in a hand-edited ratchet ledger by running a script that does not exist. The next round to conflict on that file and trust the note will either hand-wave the numbers or go looking for a command it cannot find. This round nearly did: the dispatch had to re-verify and explicitly override the claim.
The claim, verbatim
PR #19137 (merged 2026-09-19 01:11:19 UTC), ## Acceptance notes, first bullet:
dropped-refinements.baseline.json is a shared hot file. It is a generated, shrink-only ratchet that every holder regenerates, so a collision resolves by regenerating (scripts/pm/os-regen-merge.sh), ⛔ never by hand-editing conflict markers.
Measured — three legs, each one on its own instrument
| leg |
reading |
Is the path on the merge=os-regen list? |
git show origin/main:.gitattributes | grep -c dropped-refinements → 0. ⭐ Lit control, same file and same grep: the list DOES carry packages/spec/api-surface-declarations/**, packages/spec/spec-changes.json, packages/spec/authorable-surface/** and six more, so the zero is a reading and not a grep artefact |
| Does the named script exist? |
git show origin/main:scripts/pm/os-regen-merge.sh → the file is absent from the tree |
| What does the module itself say? |
packages/spec/scripts/lib/dropped-refinements.ts:68 — a section headed ## Why the ledger is HAND-EDITED and has no gen: script, whose stated reason is that 「a generator would let a new gap be admitted by running a command instead of by a decision」 |
⇒ All three disagree with the note, and the third does so on purpose: hand-editing is the design, not an oversight.
The nuance that makes this worth a card rather than a typo report
It is NOT that nothing is machine-produced. The four numbers in the ledger's measured block ARE produced by a script — PR #19147's round zeroed them to placeholders, ran pnpm --filter @objectstack/spec gen:schema, read 560 refinement site(s) across 200 published schema(s) … off that run, and wrote those numbers back. What does NOT exist is a command that resolves the merge: the conflicted measured block has to be resolved by a human and then re-measured, and the entries map has to be reconciled against what the gate observes. ⇒ The note's error is precisely the one that costs the next round its time: it says 「run this and the conflict is gone」 about a file where the honest procedure is 「resolve, re-measure, let the gate certify」.
What is NOT claimed
Dedupe words
dropped-refinements os-regen false · os-regen-merge.sh missing · hand-edited ledger conflict procedure · 19137 acceptance notes stale · baseline.json regenerate claim
Related: PR #19137 (the body) · PR #19147 and cards #17852 / #18847 (the round that hit it) · #18670 (the gap the ledger tracks).
Generated by Claude Code in session session_019srGWGCBBCBHqcDoRZpQRh; attribution is prose because a footer block is stripped on issue creation.
Generated by Claude Code
Filed by the
domain:specexecution seat (seat 3,session_019srGWGCBBCBHqcDoRZpQRh) out of PR #19147's conflict-resolution round, where its dev reported this and the seat then verified every leg first-hand. ⛔ Unassigned and ungraded — grading and routing are triage's. Readings onorigin/mainat tipeeaa88245, 2026-09-19 08:2x UTC.A MERGED PR's acceptance notes tell the next reader to resolve a conflict in a hand-edited ratchet ledger by running a script that does not exist. The next round to conflict on that file and trust the note will either hand-wave the numbers or go looking for a command it cannot find. This round nearly did: the dispatch had to re-verify and explicitly override the claim.
The claim, verbatim
PR #19137 (merged 2026-09-19 01:11:19 UTC),
## Acceptance notes, first bullet:Measured — three legs, each one on its own instrument
merge=os-regenlist?git show origin/main:.gitattributes | grep -c dropped-refinements→ 0. ⭐ Lit control, same file and same grep: the list DOES carrypackages/spec/api-surface-declarations/**,packages/spec/spec-changes.json,packages/spec/authorable-surface/**and six more, so the zero is a reading and not a grep artefactgit show origin/main:scripts/pm/os-regen-merge.sh→ the file is absent from the treepackages/spec/scripts/lib/dropped-refinements.ts:68— a section headed## Why the ledger is HAND-EDITED and has nogen:script, whose stated reason is that 「a generator would let a new gap be admitted by running a command instead of by a decision」⇒ All three disagree with the note, and the third does so on purpose: hand-editing is the design, not an oversight.
The nuance that makes this worth a card rather than a typo report
It is NOT that nothing is machine-produced. The four numbers in the ledger's
measuredblock ARE produced by a script — PR #19147's round zeroed them to placeholders, ranpnpm --filter @objectstack/spec gen:schema, read560 refinement site(s) across 200 published schema(s) …off that run, and wrote those numbers back. What does NOT exist is a command that resolves the merge: the conflictedmeasuredblock has to be resolved by a human and then re-measured, and theentriesmap has to be reconciled against what the gate observes. ⇒ The note's error is precisely the one that costs the next round its time: it says 「run this and the conflict is gone」 about a file where the honest procedure is 「resolve, re-measure, let the gate certify」.What is NOT claimed
measuredre-snapshot (202/553 → 200/551) are consistent with this tree, and PR spec: pre-parse __proto__ guard on ObjectSchema.fields and AssignmentConfigSchema.assignments (#17852, #18847) #19147 merged over them with theentriesmap auto-merging at zero textual conflict.scripts/pm/os-regen-merge.shever existed and was removed, or was never there. The seat read only the current tip;git log --followon that path would answer it and this seat did not run it.AGENTS.md:432) — so the remedy is wherever the claim should have come from, not the old body.Dedupe words
dropped-refinements os-regen false·os-regen-merge.sh missing·hand-edited ledger conflict procedure·19137 acceptance notes stale·baseline.json regenerate claimRelated: PR #19137 (the body) · PR #19147 and cards #17852 / #18847 (the round that hit it) · #18670 (the gap the ledger tracks).
Generated by Claude Code in session
session_019srGWGCBBCBHqcDoRZpQRh; attribution is prose because a footer block is stripped on issue creation.Generated by Claude Code