Files
JokerComboAdvisor/AUDIT.md
T
funman300 53907424b0 Fix four tag gaps and a contradiction found by the full-database audit
Cross-checked all 150 jokers' tags against JOKER_EFFECTS.md and the dump:

- Drop the Vampire + Marble clash: Vampire gains xMult from any non-base
  scoring card (card.lua:3907), Stones included, so Marble feeds it --
  the same shape as the Midas Mask pair. The data even scored the duo
  as a combo while warning against it. Stone-build harm stays covered
  by the Vampire + Stone Joker line.
- Delayed Gratification wants discards_up: it pays per unused discard,
  same shape as Banner.
- The Idol wants suit_flex: it checks is_suit (card.lua:3530), so
  Smeared doubles its eligible cards, like Ancient Joker.
- 8 Ball wants retrig_scoring: the 1-in-4 rolls per scored 8 in the
  individual pass (card.lua:3507), so retriggers re-roll it.
- Reword the suit give phrasings: nothing vanilla turns cards into a
  suit, so 'turns cards into Spades' was a lie whenever Blackboard sat
  across from a one-sided giver like Wrathful or Arrowhead.

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

5.4 KiB

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 36
Clashes 24
Cautions 15
Themes 31
Jokers in no famous pair 102

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 25
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_card_sharp — REJECTED as a clash with Obelisk. Card Sharp rewards replaying a hand and Obelisk punishes replaying your MOST played hand -- but neither destroys the other precondition; the player's hand choice does. That is an opposed incentive, not an opposed effect. Flagging it would dilute the clash signal, which only earns trust while every entry is mechanical.
  • 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 1 2 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: 25