Skip to content

Three open branches each mint llp/0266-*, so the second one merged silently collides #907

Description

@philcunliffe

Ground truth, re-derived from git ls-tree over every remote ref after git fetch --prune:

branch PR file
origin/fix/issue-836 #850 llp/0266-core-command-argument-validation.decision.md
origin/fix/issue-884 #893 llp/0266-prune-asks-every-client-not-the-run.decision.md
origin/update/icebird-squirreling-native-batches #866 llp/0266-native-prepared-batches-through-query-sources.decision.md

The highest LLP number on origin/master is 0265, so all three independently picked "one past master" and landed on the same number. They are three genuinely different decisions, not duplicates of one.

Why it matters

The three files have distinct slugs, so git will not report a conflict. Whichever merges second (and third) just adds another llp/0266-* file beside the first. The corpus then has two or three documents numbered 0266, and every @ref LLP 0266 in code becomes ambiguous. PR #893's code already carries a repointed @ref LLP 0266, and PR #850's triage follow-up (#903) cites "LLP 0266 #open-questions item 2" meaning a different document.

Nothing currently detects this: /ref-check validates that a referenced LLP exists, not that a number resolves to exactly one document.

Two things to fix

  1. The collision itself. Renumber two of the three to the next free numbers and repoint their @refs and cross-links. Pure renumbering that does not change meaning is an explicitly permitted mechanical edit on Accepted docs (LLP 0156), so this needs no new decision. Which document keeps 0266 is a judgement call best made by whoever knows the merge order.

  2. The minting rule that allowed it. The Impl-designer rule takes the max across <DEFAULT> and all integration/* refs. These three were minted by review and issue-fix workers on fix/* and contributor branches, which that rule never covered, so each fell back to the master-only max. The rule should be "max across every ref that could merge", and ideally /ref-check should fail when one number resolves to more than one file.

Provenance

Found by the neutral reconcile loop while fanning in review workers; the collision was created by neutral's own workers, not by a human. Filed rather than fixed in place because renumbering mid-review would move three heads (re-opening their review ladders) and the choice of which document keeps 0266 depends on intended merge order.

Related: PR #850, PR #866, PR #893, issue #903.

Metadata

Metadata

Assignees

No one assigned

    Labels

    neutral:fixDelegate this issue to neutral for an autonomous fix attempt (reproduce -> fix -> PR)

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions