Files
JokerComboAdvisor/AUDIT.md
T
funman300 b88fd0ea07 Pair Burglar with Card Sharp; caution the two hand-cost jokers
Card Sharp's x3 needs the same hand twice in ONE round -- it checks
played_this_round > 1 (card.lua:4465) and that counter resets each
round (state_events.lua:252). Burglar's +3 hands makes the replay
routine, so it gets the famous pair plus a hands_up want, same shape
as Burglar + Acrobat. The old verdict rejecting the Obelisk clash
stands; the audit entry now records both decisions.

Troubadour and Merry Andy join the cautions: their buried costs (one
fewer hand every round, one hand size) are the same shape as
Stuntman's existing warning.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-15 18:59:16 -07:00

126 lines
5.1 KiB
Markdown

# Synergy database audit
Generated by `lua audit.lua --write`. Do not edit by hand.
`test.lua` is the gate (it fails on what is broken). This is the map: it reports
what is merely *suspicious*, and records what we already decided so the analysis
does not get redone from scratch every session.
## Totals
| | |
|---|---|
| Jokers in the database | 150 |
| Famous pairs | 37 |
| Clashes | 24 |
| Cautions | 17 |
| Themes | 31 |
| Jokers in no famous pair | 101 |
## Jokers the advisor is silent about
These give nothing but engine roles (Mult/Chips/xMult) and want nothing, so they
score at most the generic +1 against any joker in the game. That is a legitimate
answer for some of them -- but it should be a decision, not an accident.
| | count |
|---|---|
| Silent, reviewed, staying that way | 24 |
| Silent, but a lead worth chasing | 0 |
| **Silent and never looked at** | **0** |
### Leads worth chasing
Unverified. Check each against the Lovely dump before acting on it -- a wrong
synergy is worse than a missing one.
### Reviewed, and deliberately silent
- **`j_baseball`** — xMult per Uncommon joker owned. A rarity tag would have exactly one payoff, and every giver would be "is uncommon" -- noise, not synergy.
- **`j_cavendish`** — the reward for Gros Michel dying, not a partner
- **`j_ceremonial`** — RESOLVED: it destroys the joker to its right at blind select (card.lua:2945), skipping Eternals. JCA.dagger_victim now names the joker about to die, in the tooltip, while there is still time to reorder.
- **`j_chicot`** — disables the boss blind; no joker interaction
- **`j_credit_card`** — lets you go negative; a money buffer, not a combo
- **`j_diet_cola`** — sell for a Double Tag; tags are outside our model
- **`j_glass`** — wants GLASS cards, and no vanilla joker creates them. Same trap as Steel Joker: enhance_gen is too coarse a tag to use here.
- **`j_gros_michel`** — self-destructs; the trap is a CAUTION
- **`j_half`** — +Mult on small hands; no joker cares
- **`j_ice_cream`** — decays; the trap is a CAUTION
- **`j_joker`** — plain +Mult; interacts with nothing
- **`j_loyalty_card`** — xMult every 6 hands; no joker interaction
- **`j_luchador`** — sell to disable a boss; no joker interaction
- **`j_misprint`** — random +Mult; interacts with nothing
- **`j_mr_bones`** — death insurance; no joker interaction
- **`j_obelisk`** — The trap is real but it is a CAUTION ("resets on your most played hand"), not a set of pairwise clashes. See j_card_sharp.
- **`j_popcorn`** — decays; the trap is a CAUTION
- **`j_red_card`** — +Mult per skipped booster; no joker interaction
- **`j_ride_the_bus`** — scales on face-free hands; the traps are CLASHES
- **`j_ring_master`** — Showman allows duplicates in the shop pool. We have no tag for pool effects, and one joker does not justify inventing one.
- **`j_steel_joker`** — wants STEEL cards. The only enhance_gen givers make Gold (Midas) and Stone (Marble), so tagging it enhance_gen would invent a synergy that does not exist. No vanilla joker creates Steel cards. Leave it alone.
- **`j_stuntman`** — big chips, -2 hand size; the trap is a CAUTION
- **`j_supernova`** — REJECTED as an Obelisk clash for the same reason as j_card_sharp
- **`j_throwback`** — xMult per skipped blind; no joker interaction
## Tag health
A tag with one member can never fire (it takes two jokers to make a synergy).
A tag with two is fragile: drop either joker and the theme dies.
| tag | givers | wanters | jokers | theme? |
|---|---|---|---|---|
| `card_gen` | 3 | 2 | 5 | yes |
| `clubs` | 3 | 4 | 4 | yes |
| `copy_target` | 10 | 3 | 13 | yes |
| `diamonds` | 2 | 2 | **2** | yes |
| `discards_up` | 2 | 9 | 11 | yes |
| `enhance_gen` | 2 | 2 | 4 | yes |
| `faces` | 1 | 9 | 10 | yes |
| `flush` | 5 | 4 | 6 | yes |
| `four_kind` | 2 | 1 | **2** | yes |
| `gold_gen` | 1 | 1 | **2** | yes |
| `hand_size` | 3 | 4 | 7 | yes |
| `hands_up` | 1 | 2 | 3 | yes |
| `hearts` | 2 | 2 | **2** | yes |
| `joker_gen` | 1 | 3 | 4 | yes |
| `money` | 15 | 3 | 17 | yes |
| `pair` | 3 | 3 | 3 | yes |
| `planet` | 3 | 3 | 3 | yes |
| `probability` | 1 | 7 | 8 | yes |
| `retrig_faces` | 1 | 10 | 11 | yes |
| `retrig_held` | 1 | 4 | 5 | yes |
| `retrig_low` | 1 | 11 | 12 | yes |
| `retrig_scoring` | 4 | 17 | 21 | yes |
| `sell_value` | 2 | 2 | 4 | yes |
| `spades` | 2 | 3 | 3 | yes |
| `spectral_gen` | 2 | 2 | **2** | yes |
| `stone_gen` | 1 | 1 | **2** | yes |
| `straight` | 7 | 6 | 8 | yes |
| `suit_flex` | 1 | 12 | 13 | yes |
| `tarot_gen` | 6 | 2 | 7 | yes |
| `three_kind` | 4 | 3 | 4 | yes |
| `two_pair` | 3 | 3 | 3 | yes |
## Load-bearing jokers
The jokers that appear in the most scoring relationships. If one of these is
mis-tagged, the error is spread across the whole database.
| joker | partners scoring >= 2 |
|---|---|
| `j_dusk` | 17 |
| `j_hanging_chad` | 17 |
| `j_selzer` | 17 |
| `j_smeared` | 17 |
| `j_splash` | 17 |
| `j_to_the_moon` | 16 |
| `j_bootstraps` | 15 |
| `j_bull` | 15 |
| `j_four_fingers` | 12 |
| `j_seance` | 12 |
| `j_sock_and_buskin` | 12 |
| `j_blueprint` | 11 |
Jokers with **no** partner scoring >= 2 anywhere in the game: 24