4a86a3e1ff
Perkeo duplicates a RANDOM held consumable (card.lua:2788), so Spectral and Planet supply feed it exactly like Tarot supply always did - and the spectral_gen theme gains the third member it needed (the Seance + Perkeo negative-spectral archetype, now discoverable three ways). The other five two-member themes (diamonds, hearts, four_kind, gold_gen, stone_gen) are vanilla reality: no third joker exists. They get FRAGILE_OK verdicts in audit.lua, rendered in AUDIT.md, and the audit now fails on a fragile theme with no verdict - or a stale verdict for a theme that grew - the same discipline as the silent-joker list. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
136 lines
5.6 KiB
Markdown
136 lines
5.6 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 | 4 | 4 | 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 | 3 | 3 | 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 |
|
|
|
|
### Fragile by design
|
|
|
|
Two-member themes reviewed and accepted: vanilla has no third joker to add.
|
|
|
|
- **`diamonds`** — Greedy Joker and Rough Gem are the only Diamond payoffs in vanilla.
|
|
- **`four_kind`** — DNA enables it, The Family pays it; no other vanilla joker cares.
|
|
- **`gold_gen`** — Midas Mask makes Gold, Golden Ticket cashes it - the whole economy.
|
|
- **`hearts`** — Lusty Joker and Bloodstone are the only Heart payoffs in vanilla.
|
|
- **`stone_gen`** — Marble adds Stones, Stone Joker counts them; Vampire eats them rather than wanting them.
|
|
|
|
## 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_seance` | 13 |
|
|
| `j_four_fingers` | 12 |
|
|
| `j_sock_and_buskin` | 12 |
|
|
| `j_blueprint` | 11 |
|
|
|
|
Jokers with **no** partner scoring >= 2 anywhere in the game: 24
|
|
|