v4_vocab_review_20260430
-
generated_by: scripts/v4_vocab_landscape.py generated_at: 2026-04-30T06:06:42Z sqlite_snapshot: 2026-04-29 05:50:08 vocab_version_prompt: v1 vocab_entries_total: 115 v4_features_rows_total: 1501 distinct_other_labels: 663 other_primitive_occurrences: 732 rows_with_v1_stamp_and_other_content: 664 plan: docs/plans/v4-vocab-and-cozy-v02.md filters: none (full corpus)
Successor to v4_vocab_review_20260429.md. Adds adoption stats, full-corpus primitive frequency, co-occurrence pairs, and a claimed/unclaimed cross-reference against notes/mechanics.md.
1. Adoption stats
-
Total v4-wide rows: 1501
-
vocab_versiondistribution (stamp-by-prompt at aggregation time):v1— 1501 rows (100.0%)
Stamp-vs-content gap. 664/1501 rows (44.2%) carry vocab_version=v1 yet still contain at least one _other: primitive. The aggregator stamps vocab_version from the prompt header at aggregation time — it does not reflect the LLM's actual vocabulary at extraction time. Consequence: 100%-v1 stamp ≠ 100%-v1 content. Closing the gap requires either re-extraction with the v1 prompt OR aggregator-level relabeling that rewrites _other:<label> → <label> when <label> is now a v1 entry.
_other:occurrences across the corpus: 732 across 663 distinct labels.
2. Per-primitive frequency (full corpus)
All 115 v1 entries, sorted by occurrence count.
| Primitive | Count | Translation status |
|---|---|---|
hand_management_under_draw | 370 | claimed |
attrition_clock | 362 | claimed |
variable_player_powers | 250 | claimed |
set_collection_concentrating | 210 | partial |
dice_mitigation | 202 | claimed |
region_majority | 200 | unclaimed |
simultaneous_action_selection | 197 | unclaimed |
action_blocking | 176 | unclaimed |
engine_growth | 167 | partial |
push_your_luck_escalation | 160 | claimed |
spatial_adjacency_scoring | 155 | claimed |
escalating_threat | 152 | partial |
variable_setup_per_game | 150 | claimed |
partial_observability | 147 | partial |
set_collection_diversifying | 117 | partial |
card_drafting | 110 | unclaimed |
area_movement_with_blocking | 100 | unclaimed |
time_pressure_realtime | 100 | unclaimed |
delayed_payoff | 92 | partial |
closing_window | 89 | partial |
tile_orientation_choice | 88 | claimed |
info_asymmetry_stable | 84 | unclaimed |
route_committal | 82 | unclaimed |
tableau_personal_board | 77 | partial |
bidding_with_secret_stake | 75 | unclaimed |
communication_constraint | 74 | unclaimed |
memory_load | 65 | n/a |
tempo_swing | 63 | unclaimed |
incremental_economy | 62 | partial |
card_combo_chaining | 60 | claimed |
secret_objective_card | 58 | partial |
network_building | 57 | unclaimed |
bluff_layer | 56 | unclaimed |
simultaneous_reveal_drama | 53 | claimed |
on_play_trigger | 51 | claimed |
tableau_shared_market | 51 | partial |
multi_use_card | 49 | partial |
shared_objective_card | 45 | partial |
claim_at_completion | 43 | partial |
semantic_overloading | 43 | unclaimed |
bidding_for_priority | 41 | unclaimed |
attribute_alignment_scoring | 40 | partial |
forced_table_talk | 40 | unclaimed |
polyomino_packing | 39 | partial |
progressive_complexity | 38 | claimed |
event_card_disruption | 37 | partial |
variable_resource_conversion | 37 | unclaimed |
tableau_market_refresh | 36 | partial |
action_selection_via_card | 35 | partial |
economy_throttle | 32 | unclaimed |
bag_composition_meta | 30 | partial |
arc_three_acts | 28 | claimed |
cascading_failure | 28 | partial |
tech_tree_unlock | 28 | partial |
worker_recall_phase | 26 | unclaimed |
engine_pollution | 23 | unclaimed |
event_deck_seeded_threat | 21 | partial |
card_market_replenish_variance | 20 | partial |
cooperative_with_traitor | 20 | unclaimed |
feeding_pressure | 20 | unclaimed |
combo_with_floor | 17 | claimed |
turn_order_auction | 15 | unclaimed |
bag_draw_set_completion | 9 | partial |
escalation_then_resolution | 9 | claimed |
roll_and_move_race | 9 | unclaimed |
phase_locked_actions | 7 | partial |
negotiation_over_resources | 5 | unclaimed |
auction_for_goods | 3 | unclaimed |
chain_with_branching | 3 | partial |
currency_conversion_loss | 3 | unclaimed |
exponential_payoff | 3 | claimed |
gear_shift_constraint | 3 | unclaimed |
hidden_role_voting | 3 | unclaimed |
speed_recognition_race | 3 | partial |
combo_setup_cost | 2 | claimed |
deduction_grid_elimination | 2 | unclaimed |
engine_acceleration | 2 | partial |
expanding_board_via_play | 2 | unclaimed |
multi_activity_party_challenge | 2 | unclaimed |
trivia_estimation | 2 | unclaimed |
capture_by_enclosure | 1 | unclaimed |
chronological_ordering | 1 | unclaimed |
collectible_squad_building | 1 | claimed |
dexterity_flicking | 1 | unclaimed |
dexterity_stacking | 1 | unclaimed |
pattern_match_grab | 1 | unclaimed |
positional_race_track | 1 | unclaimed |
3d_spatial_placement | 0 | unclaimed |
action_point_movement | 0 | unclaimed |
board_elimination_by_fill | 0 | unclaimed |
border_scoring | 0 | partial |
branching_narrative_choice | 0 | partial |
card_activated_unit_selection | 0 | unclaimed |
dexterity_placement_balance | 0 | unclaimed |
dexterity_placement_constraint | 0 | unclaimed |
exact_bid_trick_taking | 0 | unclaimed |
i_cut_you_choose | 0 | unclaimed |
ladder_climbing | 0 | unclaimed |
multiplier_stacking_additive_vs_mult | 0 | claimed |
negative_set_avoidance | 0 | unclaimed |
object_combination_puzzle | 0 | claimed |
once_around_auction | 0 | unclaimed |
partnership_bidding | 0 | unclaimed |
personal_sheet_optimization | 0 | partial |
physical_construction_task | 0 | unclaimed |
rondel_action_selection | 0 | unclaimed |
rondel_movement | 0 | unclaimed |
sectioned_board_activation | 0 | unclaimed |
shifting_win_condition | 0 | unclaimed |
slow_unlock_via_repetition | 0 | claimed |
steal_from_opponent | 0 | unclaimed |
summoner_kill_win_condition | 0 | claimed |
telephone_chain_drawing | 0 | unclaimed |
trick_avoidance | 0 | unclaimed |
trick_taking_trump | 0 | unclaimed |
Status totals
- unclaimed: 60
- partial: 32
- claimed: 22
- n/a: 1
3. Underused v1 primitives (≤2 occurrences)
Most are just-promoted v1 entries — counts will rise once aggregator-level relabeling or re-extraction closes the stamp-vs-content gap.
engine_acceleration— 2combo_setup_cost— 2multiplier_stacking_additive_vs_mult— 0border_scoring— 0slow_unlock_via_repetition— 0dexterity_stacking— 1dexterity_flicking— 1dexterity_placement_balance— 0dexterity_placement_constraint— 0physical_construction_task— 03d_spatial_placement— 0i_cut_you_choose— 0once_around_auction— 0partnership_bidding— 0trick_taking_trump— 0trick_avoidance— 0exact_bid_trick_taking— 0ladder_climbing— 0negative_set_avoidance— 0positional_race_track— 1action_point_movement— 0rondel_movement— 0rondel_action_selection— 0chronological_ordering— 1trivia_estimation— 2multi_activity_party_challenge— 2telephone_chain_drawing— 0branching_narrative_choice— 0deduction_grid_elimination— 2capture_by_enclosure— 1board_elimination_by_fill— 0summoner_kill_win_condition— 0card_activated_unit_selection— 0collectible_squad_building— 1shifting_win_condition— 0expanding_board_via_play— 2object_combination_puzzle— 0pattern_match_grab— 1personal_sheet_optimization— 0sectioned_board_activation— 0steal_from_opponent— 0
4. Top primitive co-occurrence pairs
Pairs of canonical (non-_other:) primitives that co-occur within the same game's primitive list. Top 20 by frequency.
| A | B | Co-occur count |
|---|---|---|
attrition_clock | hand_management_under_draw | 106 |
escalating_threat | variable_player_powers | 76 |
hand_management_under_draw | set_collection_concentrating | 72 |
hand_management_under_draw | variable_player_powers | 61 |
spatial_adjacency_scoring | tile_orientation_choice | 59 |
dice_mitigation | variable_player_powers | 57 |
attrition_clock | push_your_luck_escalation | 56 |
attrition_clock | variable_player_powers | 56 |
hand_management_under_draw | region_majority | 53 |
attrition_clock | dice_mitigation | 53 |
area_movement_with_blocking | variable_player_powers | 52 |
dice_mitigation | push_your_luck_escalation | 45 |
attrition_clock | escalating_threat | 45 |
card_combo_chaining | engine_growth | 45 |
hand_management_under_draw | simultaneous_action_selection | 43 |
attrition_clock | simultaneous_action_selection | 42 |
attrition_clock | partial_observability | 42 |
info_asymmetry_stable | partial_observability | 41 |
action_blocking | region_majority | 39 |
attrition_clock | set_collection_concentrating | 39 |
5. Top 10 new _other: candidates under v1
Compared against the 2026-04-29 review. Note: per pre-flight finding, no fresh _other: items have surfaced post-promotion because no re-extraction has happened. The list below is identical to the prior review modulo the just-promoted labels.
| Label | Count | Top example | Status |
|---|---|---|---|
_other:dexterity_stacking | 10 | Bandu: "When a player's structure falls, they are out of the game. Last player standing …" | now in v1 — relabeling closes |
_other:dexterity_flicking | 8 | Elk Fest: "players take turns flicking 2 stones; moose front and back hooves must rest atop…" | now in v1 — relabeling closes |
_other:roll_and_move_race | 5 | Barbarossa: "Roll / Spin and Move — take turns moving around board by rolling die or spending…" | now in v1 — relabeling closes |
_other:ladder_climbing | 4 | The Great Dalmuti: "Each player in turn must play same number of cards of a better rank or pass; las…" | now in v1 — relabeling closes |
_other:deduction_grid_elimination | 4 | Clue: "through deductive reasoning each player must figure out which character, weapon,…" | now in v1 — relabeling closes |
_other:i_cut_you_choose | 4 | Hanamikoji: "I Cut, You Choose — give opponent choice of three cards" | now in v1 — relabeling closes |
_other:dexterity_placement_balance | 3 | Hamster Roll: "place one of your pieces somewhere within the wheel, which might move and rotate…" | now in v1 — relabeling closes |
_other:elimination_deduction | 3 | Clue Master Detective: "ten suspects, eight weapons, twelve locations; narrow down by elimination to mak…" | candidate for v2 |
_other:trick_avoidance | 3 | Cliffhanger: "winner of the game is the player who collected the most goat's heads without goi…" | now in v1 — relabeling closes |
_other:chronological_ordering | 3 | Timeline: Events: "If the card was placed correctly with the date in chronological order with all o…" | now in v1 — relabeling closes |
6. Recommendation
-
Vocab v2 prompt bump: 1 promotion-worthy candidates (count ≥3, not in v1). Plan threshold is ≥5 for a v2 bump.
- Action: skip vocab v2. Re-evaluate after re-extraction or new v4-wide enrichments.
-
Aggregator-level relabeling: 39 distinct
_other:labels (104 occurrences) match a v1 primitive name verbatim. Rewriting_other:<label>→<label>for these closes a meaningful share of the stamp-vs-content gap with no LLM re-extraction.- Action: add a one-pass aggregator relabeling step.
- Status: SHIPPED 2026-04-30 via scripts/relabel_v4_primitives.py. 104 rewrites across 104 rows. Post-relabel: 584 rows (38.9%) still carry
_other:content (down from 664 / 44.2%), 628_other:occurrences (down from 732). Residual gap is genuinely-novel labels not yet promotion-worthy.
7. Full top-20 _other: labels
| Label | Count | In v1? |
|---|---|---|
_other:dexterity_stacking | 10 | yes |
_other:dexterity_flicking | 8 | yes |
_other:roll_and_move_race | 5 | yes |
_other:ladder_climbing | 4 | yes |
_other:deduction_grid_elimination | 4 | yes |
_other:i_cut_you_choose | 4 | yes |
_other:dexterity_placement_balance | 3 | yes |
_other:elimination_deduction | 3 | no |
_other:trick_avoidance | 3 | yes |
_other:chronological_ordering | 3 | yes |
_other:once_around_auction | 2 | yes |
_other:auction_for_goods | 2 | yes |
_other:dexterity_placement_constraint | 2 | yes |
_other:board_elimination_by_fill | 2 | yes |
_other:trick_taking_with_trump | 2 | no |
_other:partnership_bidding | 2 | yes |
_other:positional_race_track | 2 | yes |
_other:card_activated_unit_selection | 2 | yes |
_other:multi_activity_party_challenge | 2 | yes |
_other:exact_bid_trick_taking | 2 | yes |