Skip to content

spec(record): shared record surfaces are a lock — 16/29 open PRs conflict, 13 in bookkeeping only (#364) - #367

Closed
localai-bot wants to merge 1 commit into
mainfrom
row/ENG-RECORD-CONFLICT-SURFACES
Closed

spec(record): shared record surfaces are a lock — 16/29 open PRs conflict, 13 in bookkeeping only (#364)#367
localai-bot wants to merge 1 commit into
mainfrom
row/ENG-RECORD-CONFLICT-SURFACES

Conversation

@localai-bot

Copy link
Copy Markdown
Collaborator

Issue: #364. Row: ENG-RECORD-CONFLICT-SURFACES. Spec: .agents/specs/retire-shared-record-surfaces.md.

Spec and record only. No checker semantic, no doc content and no product source changes here — the implementation is W1–W5 in the spec.

What was measured

git merge-tree --write-tree origin/main <head> against every open PR at origin/main d928e2c3: 16 of 29 open PRs conflict (55%), and 13 of those 16 conflict in bookkeeping files only.

File conflicting PRs
.agents/coordination.md 8
.agents/NOW.md 5
.agents/roadmap_v1.md 4
scripts/check-public-doc-tables.py 4
docs/STATUS.md 4
any src/ or tests/ path 3

Why it is structural

  1. NOW.md is a fixed-size shared buffer at exactly 6000/6000 chars. Adding a row requires evicting one, so every PR is a read-modify-write of a global. The conflict is the lucky outcome — a clean three-way merge applies both evictions and both additions, silently dropping live rows.
  2. STATUS_RATCHET is a hardcoded byte count of a different file that may only fall, so a PR owing STATUS.md one lifecycle line must delete unrelated prose to pay for it. The checker's own comment already records this failure and answered it with slack instead of removing the coupling.
  3. coordination.md's claims table is insert-at-one-anchor — six ROCm GDN PRs from one author's sequential stack conflict on nothing else.

On the protocol's own terms

AGENTS.md holds that history is git and that there is no state log, yet both claims tables are state logs duplicating gh pr list, row/<ID> branch names and issue state. Third instance of one failure mode: policy.csv retired in 0f3e44ee, per-class line budgets retired 2026-08-10.

Evidence produced by this PR itself

Filing this single row tripped four separate hardcoded global countersENGINE_ROWS, two engine-matrix summary roll-ups, and RUNNABLE_BASELINE. Each is re-pinned here via the existing bump convention with its reason, and recorded as evidence rather than worked around.

Gates

scripts/agent-preflight.sh rc=0, --staged rc=0, check-doc-checkpoint.py OK, agent-integration.py --base origin/main all gates green. No CUDA/GPU/SACRED gate is implicated: no product source is touched.

🤖 Generated with Claude Code

…conflicts (#364)

16 of 29 open PRs are CONFLICTING, and 13 of those 16 conflict in bookkeeping
files ONLY, with no product code involved. Measured at origin/main d928e2c by
running `git merge-tree --write-tree` against every open PR head:
coordination.md in 8, NOW.md in 5, roadmap_v1.md in 4,
check-public-doc-tables.py in 4, STATUS.md in 4 -- and any src/ or tests/ path
in just 3, one of which is a stale mega-branch.

Three surfaces are shaped so concurrent PRs must collide, rather than merely
risk it. NOW.md is a fixed-size shared buffer sitting at EXACTLY 6000/6000
chars, so adding a row requires evicting another and every PR becomes a
read-modify-write of one global -- where the conflict is the lucky outcome,
since a clean three-way merge would apply both evictions and both additions and
silently drop live rows. STATUS_RATCHET is a hardcoded byte count of a
different file that may only fall, so a PR owing STATUS.md one lifecycle line
must delete unrelated prose to pay for it; the checker's own comment already
records the failure and answered it with slack rather than by removing the
coupling. And coordination.md's claims table is insert-at-one-anchor, which is
why six ROCm GDN PRs from one author's sequential stack conflict on nothing
else.

It also contradicts the protocol it serves. AGENTS.md holds that history is git
and that there is no state log, yet both claims tables are state logs
duplicating `gh pr list`, row/<ID> branch names and issue state. The argument
that refuses a waiver registry applies unchanged to a claims registry, and this
is the third instance of one failure mode: policy.csv was retired in 0f3e44e
and the per-class line budgets on 2026-08-10, both because the gate fired on
ordinary work.

The exonerated surfaces share one property, one writer per file. Specs are one
file per row and took ZERO conflicts across the whole sample, so W1-W5 rewrite
the three offenders into that shape or derive them, keep every local per-cell
and per-paragraph cap, and record the invariant: no surface that every PR must
write.

This commit is the spec and the record only. No checker semantic, no doc
content and no product source changes; the four counter re-pins below are the
existing bump convention for a real new row, each carrying its reason.

Filing this one row tripped four separate hardcoded global counters
(ENGINE_ROWS, two engine-matrix summary roll-ups, and RUNNABLE_BASELINE), which
is the same defect the row exists to remove and is recorded here as evidence
rather than worked around.

Issue: #364

FOLLOWING_AGENTS_PROTOCOL

Following-Agents-Protocol: true
AI-Assisted: true
Assisted-by: AGENT:claude-opus-5[1m] [Claude Code]
@localai-bot

Copy link
Copy Markdown
Collaborator Author

Superseded by #368: identical work, but these commits carried a malformed Assisted-by trailer (AGENT:claude-opus-5[1m] [Claude Code] — the ASSISTED_BY pattern in scripts/check-commit-trailers.py permits no brackets in the model token). The history was rewritten onto row/ENG-RECORD-CONFLICT-SURFACES-v2 rather than force-pushed over this branch. Closing with the reason recorded rather than leaving a stale PR open.

@localai-bot
localai-bot deleted the row/ENG-RECORD-CONFLICT-SURFACES branch August 11, 2026 12:59
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants