# Poker flashcard workshop

Three constructed off-table examples show how a card can reveal its answer or omit information needed by its question. This is a manual teaching artifact, not a solver, app import format, validated assessment or learning-outcome study.

- Open [workshop.html](workshop.html) in a current browser. Answers and original-prompt annotations start closed. Enter or Space toggles the focused disclosure.
- Browser printing includes all answer and repair text and a blank card-writing template. A physical printer has not been tested.
- [cards.json](cards.json) contains the literal front/back content, variations and reference links. References were checked September 6, 2026.
- [generate.py](generate.py) renders the workshop with Python 3 and its standard library. It escapes source strings before inserting HTML and requires HTTPS references.

To reproduce the HTML, download [cards.json](cards.json) and [generate.py](generate.py) into one folder. Run:

```text
python generate.py
```

The script resolves its input and output relative to itself, so the command can be run from any working directory. It deterministically rewrites only workshop.html using UTF-8 and LF newlines. No random seed or sampling is involved. The examples and their arithmetic are literal teaching fixtures; no user data or product output is included.

The generated page uses native HTML disclosures and CSS. It contains no JavaScript, analytics, network submissions or browser storage. Reference links navigate externally only when selected. It is a standalone manual aid; no integration with a trainer is assumed.

The price examples are river all-ins with full matching calls and no rake: 30/(60+30+30)=25% and 60/(60+60+60)=1/3. These are thresholds, not estimates of actual hand equity. The other cards ask for an action label and hand construction, not a strategic action.

Current source URLs appear inside cards.json and on the workshop backs. The production article is [Poker flashcards](https://gtogecko.com/blog/poker-flashcards). GTO Solutions AS publishes the article and GTO Gecko.

## Independent numerical checks

Download [verify_examples.py](verify_examples.py) alongside [cards.json](cards.json) and run `python verify_examples.py cards.json` (Python 3.9+ standard library). The checker uses separate Fraction arithmetic and enumerates 21 Holdem five-card selections and 60 Omaha selections for the declared fixtures. It checks card uniqueness, a changed second-hole-spade control and arithmetic above/below the break-even thresholds. It does not establish learning efficacy, validate every possible poker hand, or automate source interpretation. `python -O verify_examples.py cards.json` runs the same checks with Python assertions disabled.
