Skip to content

docs(gaps): register GT-638 — the board has no id allocator - #298

Merged
beyondnetPeru merged 1 commit into
mainfrom
docs/gt-638-id-allocator
Jul 30, 2026
Merged

docs(gaps): register GT-638 — the board has no id allocator#298
beyondnetPeru merged 1 commit into
mainfrom
docs/gt-638-id-allocator

Conversation

@beyondnetPeru

Copy link
Copy Markdown
Contributor

A gap id is chosen by reading the highest GT-* on whichever branch you are on, and nothing contrasts that with any other branch. Two parallel sessions therefore allocate the same number, and one finds out at merge time.

It already happened

8449af3d on develop reads "renumber the ratchet fix GT-634 -> GT-637, ID collision with develop". That row and GT-634 on main took the same id within hours, from sessions that could not see each other.

The renumber is manual and lossy, and that costs more than the clash. An id lives in the board row, the catalog anchor, the closure-evidence record, cross-references from other rows in both languages, commit messages and PR bodies — and only the first three are mechanically checkable. 08-validate-tracking cannot help by construction: it validates within one working tree, and branches are outside its world.

Not an isolated slip

In the 2026-07-30 developmain merge the same convergent-duplication pattern appears three times: GT-633 fixed twice by two sessions, the evidence guard's parser fixed twice, and this id allocated twice. A merge does not fix that.

The id for this row

Allocated by taking the union of ids across main and develop rather than the maximum on one — main was at 635, develop already had 636 and 637. That is exactly the workaround the fix should make unnecessary; doing it any other way would have reproduced the defect while registering it.

Verified

08-validate-tracking (636 gaps, 612/612 EN/ES sections, 578 closure records) · 01-validate-docs (1491 files) · 04-check-bilingual-parity · 41 at 38 dead on a clean checkout against a budget of 40 · 46 chain current and at a fixed point. Counters 596/635 → 596/636, pending 21 → 22.

Evolith Core Quality Gates

  • Bilingual Parity: row and catalog entry in EN and ES.
  • Validation Scripts: 01-validate-docs.mjs green.
  • Bilingual Validation: 04-check-bilingual-parity.mjs green.
  • Agnosticism: documentation only.

Linked ADRs / Issues

Conventional Commits

  • Commit follows Conventional Commits.

🤖 Generated with Claude Code

A gap id is chosen by reading the highest `GT-*` on whichever branch you are on,
and nothing contrasts that with any other branch. Two parallel sessions therefore
allocate the same number and one finds out at merge time.

IT ALREADY HAPPENED, which is why this is a row and not a note. `8449af3d` on
develop reads "renumber the ratchet fix GT-634 -> GT-637, ID collision with
develop": that row and GT-634 on main took the same id within hours, from sessions
that could not see each other.

The renumber is manual and LOSSY, and that costs more than the clash. An id lives
in the board row, the catalog anchor, the closure-evidence record, cross-references
from other rows in both languages, commit messages and PR bodies — and only the
first three are mechanically checkable. `08-validate-tracking` cannot help by
construction: it validates within one working tree, and branches are outside its
world.

Nor is it an isolated slip. In the 2026-07-30 develop -> main merge the same
convergent-duplication pattern appears three times: GT-633 was fixed twice by two
sessions, the evidence guard's parser was fixed twice, and this id was allocated
twice. A merge does not fix that.

THE ID FOR THIS ROW was allocated by taking the UNION of ids across main and
develop rather than the maximum on one — main was at 635, develop already had 636
and 637 — which is exactly the workaround the fix should make unnecessary. Doing
it any other way would have reproduced the defect while registering it.

Registered PENDING, P2/S, with criteria that ask for a check at PR time naming
both users of a colliding id, and a negative fixture OBSERVED red rather than
declared able to fail.

Verified: 08-validate-tracking (636 gaps, 612/612 EN/ES sections, 578 closure
records), 01-validate-docs (1491 files), 04 bilingual parity, 41 at 38 dead on a
clean checkout against a budget of 40, 46 chain current and at a fixed point.
Counters 596/635 -> 596/636, pending 21 -> 22.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@beyondnetPeru
beyondnetPeru requested a review from a team as a code owner July 30, 2026 14:57
@chatgpt-codex-connector

Copy link
Copy Markdown

You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard.

@github-actions

Copy link
Copy Markdown

📊 Bilingual Coverage Impact

PR Changes

  • Paired EN/ES files modified: 3
  • New EN files needing ES translation: 0

Repository Coverage

Metric Value
Total EN files 524
Total ES files 498
Paired files 0
Coverage 0%

Good: All EN changes have ES counterparts.


Generated by GitHub Actions

@beyondnetPeru
beyondnetPeru merged commit b75522f into main Jul 30, 2026
32 of 34 checks passed
@beyondnetPeru
beyondnetPeru deleted the docs/gt-638-id-allocator branch July 30, 2026 19:53
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.

1 participant