Design new cards with real-world historical references, balanced stats, and rule consistency. Guides thematic selection, stat allocation, and validates against game rules.
Design cards that are historically grounded, mechanically sound, and fun to play.
alpha-1)Every unit is a real historical figure. The card should make someone say "oh, that's clever" — the mechanics should reflect what the person was actually known for.
Every card should have a reason to exist in a deck.
When picking figures for units:
name:ap_cost:effect format as unit actions.Query the existing cards to understand gaps:
# Card count by type and rarity
nu -c "glob library/sets/alpha-1/*.csv | each { |f| open $f | insert type ($f | path parse | get stem) } | flatten | select type rarity | group-by type | transpose key value | each { |r| { type: $r.key, total: ($r.value | length), rarities: ($r.value | group-by rarity | transpose key value | each { |x| {($x.key): ($x.value | length)} } | into record) } }"
Identify:
For each card:
name:ap_cost:effect format, where effect is a snake_case identifier (e.g. strength_contest_injure, buy_item_free, move_and_gain_gold)Present designs as a table matching the CSV columns before writing to files. Always show the full row so the user can review before committing.
Append new cards to the appropriate CSV file in library/sets/{set}/. Use the Edit tool to add rows — do not rewrite the entire file.
Delimiter rules (from library/schema.md):
; separates list items (attributes, keywords, actions)| separates alternative costs: separates action components (name:ap_cost:effect)> separates mission requirements from VP rewardRun the build script to check for schema errors:
bun library/build.ts
Fix any validation errors before proceeding.
After adding cards, invoke the /card-rule-review skill to check consistency with the rules. This catches:
If the review flags issues, fix them before considering the cards done.
/card-rule-reviewlibrary/schema.md