# Heads-up transition teaching ledger

Created September 5, 2026 by GTO Gecko. These are synthetic rules illustrations,
not observed hands, a strategy solve, or a product implementation test.

## Rule profile and limits

No-limit Hold'em. Three named seats A/B/C in clockwise order have completed a
normal uninterrupted three-player rotation. Exactly one player is eliminated.
No seat moves, prior dead-button irregularities, simultaneous eliminations,
short blinds, antes, penalties or disputed actions are modeled. Both remaining
players can act on each illustrated street. The two later hands assume play
continues with both survivors.

Robert's Rules of Poker v11, section 4 rule 3 and section 15 rule 31, assign the
initial heads-up button to the surviving player who posted the big blind most
recently. TDA 2024 v1.0 rule 34B specifies the heads-up blind, dealing and action
roles and avoidance of consecutive big blinds at the transition. Consult the
event's own rules and staff; this is not a universal cash/online rules engine.

- https://www.pagat.com/docs/RobsPkrRules11.pdf
- https://www.pokertda.com/view-poker-tda-rules/

Both accessed September 5, 2026. Robert's version number is explicit, not a claim
that it is a newly issued rulebook.

## Reproduce

Download every file in this directory to an empty folder. Python 3.10+ and
Node.js 20.11+ are sufficient; no packages or network access are needed.

```
python generate.py
node verify.mjs
node verify.mjs --self-test
```

The generator reconstructs the last three big-blind positions and finds the
most recent survivor. The independent verifier uses a separate fixed role
oracle for each eliminated prior role. It checks JSON, all CSV rows and file
hashes. The optional self-test intentionally damages temporary copies to check
rejection; it does not edit the downloaded files.

There are three distinct role transitions, expanded across three rotations of
seat labels. Each has the first heads-up hand plus two alternating follow-up
hands: 9 cases / 27 rows. These counts are coverage of a declared model, not a
sample size or evidence that a rulebook itself is correct. No seed is needed.

The article shows the three cases with A on the previous button, B in the small
blind and C in the big blind. The diagram depicts a generic heads-up hand and
the same order for three later betting streets. The HTML tables provide its
text equivalent. Files are UTF-8 with LF line endings; preserve bytes when
checking MANIFEST.sha256. The manifest includes every other public file once.

## Files

- generate.py: standard-library Python generator.
- verify.mjs: independent Node verifier and corruption controls.
- results.json: all 9 labeled cases and declared scope.
- transitions.csv: all 27 hand rows; `hand` is 1, 2 or 3 after transition.
- order.svg: original accessible deal/action flow artwork.
- hero.svg: simplified big-label source for the article's WebP hero.
- README.md: this method and limits.
- MANIFEST.sha256: SHA-256 checksums for the seven other files.

Validation does not cover chip accounting, legal actions following raises,
showdown order, dispute remedies, re-entry, table balancing, or software rules.
