Commit Graph
100 Commits
Author SHA1 Message Date
jpmschweitzerandClaude Opus 4.6 2b2448665b docs(meta): record M1 test results in milestone doc
All 7 implementation tasks pass. All 7 static validation checks pass.
ck3-tiger: 0 fatal, 0 errors, 0 untidy. In-game testing remains as
the final step.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-08 13:32:46 +01:00
jpmschweitzerandClaude Opus 4.6 ae20bdc446 fix(modifiers): fix double-encoded BOM on modifier_icons file
The file had a double-encoded BOM (C3 AF C2 BB C2 BF instead of
EF BB BF) from being written through a Latin-1 → UTF-8 path.
CK3 requires a proper 3-byte UTF-8 BOM.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-08 13:31:51 +01:00
jpmschweitzerandClaude Opus 4.6 f0ed76d344 chore(meta): update changelog
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-08 13:22:08 +01:00
jpmschweitzerandClaude Opus 4.6 f6d3bb1ea7 docs(meta): document modifier icon system and on_game_start scope
Added two new gotchas to the modding reference:
- Modifier icons must use common/modifier_icons/ indirection (bare
  names, not full DDS paths) to avoid doubled-path resolution
- on_game_start events must use scope=none with every_living_character
  for character initialization

Also added modifier_icons directory to the directory layout tree and
two rows to the Common Pitfalls table.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-08 13:21:52 +01:00
jpmschweitzerandClaude Opus 4.6 0426174ed9 fix(loc): fix data function errors and opinion modifier collision
- Removed invalid [ROOT.GetName] from ReligiousHeadTitleName keys
  across all 4 faiths plus fallback (ck3-tiger: Custom/GetName cannot
  follow a Scope promote)
- Renamed disappointed_opinion to disappointed_by_snapping_opinion to
  avoid collision with vanilla opinion modifier of same name
- Added loc keys for the renamed opinion modifier and
  guilty_about_snapping_opinion

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-08 13:21:44 +01:00
jpmschweitzerandClaude Opus 4.6 0d8256e658 fix(events): correct scope, range, and logic warnings
- Changed mistborn_init.0001 from character_event to scope=none with
  every_living_character, matching vanilla on_game_start pattern
- Replaced negative add_gold with remove_short_term_gold in hemalurgy
  bribe option
- Removed single-item OR wrapper around any_parent Mistborn check in
  activate_allomancy_effect

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-08 13:21:34 +01:00
jpmschweitzerandClaude Opus 4.6 2a0e444cfc fix(modifiers): use bare icon names via modifier_icons indirection
CK3 resolves modifier icons through common/modifier_icons/ definitions.
Using full DDS paths in the icon field causes the engine to double the
path (gfx/.../gfx/.../icon.dds.dds), producing ~50 missing-file
warnings. Created modifier_icons definitions for all 45 icons and
switched all modifier icon fields to bare names.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-08 13:21:28 +01:00
jpmschweitzerandClaude Opus 4.6 3b7919a40a chore(meta): update changelog
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-08 13:06:03 +01:00
jpmschweitzerandClaude Opus 4.6 a4ac208667 docs(meta): document localization gotchas in modding reference
Add Localization Gotchas section covering hard-won lessons:
religion custom loc mapping blocks, trait double-prefix keys,
name list name loc, county adjective keys, culture extra keys,
and province history for total conversions. Also add 3 entries
to the Common Pitfalls table.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-08 13:03:52 +01:00
jpmschweitzerandClaude Opus 4.6 d265708701 chore(meta): update changelog
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-08 13:02:58 +01:00
jpmschweitzerandClaude Opus 4.6 809d95aa04 loc(loc): add game rule and misc localization keys
Add game rule keys (rule_mistborn_game_mode, narrative/sandbox
setting names and descriptions) and utility keys (easy, medium).
Add missing discover_metallic_arts_decision_confirm key.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-08 13:02:38 +01:00
jpmschweitzerandClaude Opus 4.6 e87faf83df loc(traits): add double-prefix trait localization keys
CK3 looks up traits with both trait_X and trait_trait_X prefixes.
Added trait_trait_* entries for all 22 metallic arts traits
(name + desc) to eliminate ck3-tiger warnings.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-08 13:01:55 +01:00
jpmschweitzerandClaude Opus 4.6 417059955e loc(culture): add culture, heritage, and tradition loc keys
Add missing keys: heritage/language _name, culture prefix and
collective_noun, tradition _name variants, and culture_parameter
bonus descriptions.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-08 13:01:43 +01:00
jpmschweitzerandClaude Opus 4.6 292bf74e47 loc(religion): add complete faith custom localization
Add localization mapping blocks to all 4 religions in the
definition file — CK3 requires explicit localization = { }
blocks to map generic keys (HighGodName, PriestMale, etc.)
to faith-prefixed loc strings.

Add ~960 loc entries covering all 128 custom loc keys for
each faith (steel_ministry, survivorism, terris_worldbringers,
cult_of_ruin): deity names/pronouns, priest/bishop/devotee
titles, religious terms, afterlife, holy war names, holy site
double-prefix keys, and religion adherent names.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-08 13:01:20 +01:00
jpmschweitzerandClaude Opus 4.6 dcb1e6956a loc(titles): add county adjective localization
CK3 uses <county>_adj keys for demonyms. Added adjective forms
for all 50 counties across the six Dominances.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-08 13:00:53 +01:00
jpmschweitzerandClaude Opus 4.6 04a1d215e8 loc(culture): add localization for all name list names
Every name in the three name lists (noble_scadrian, skaa, terris)
needs a loc key for CK3 to display it. Added ~200 name entries
plus the dynnp_of dynasty prefix key.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-08 13:00:46 +01:00
jpmschweitzerandClaude Opus 4.6 b9fc315c07 data(history): slim default provinces to skip vanilla-defined IDs
Regenerated 99_default_provinces.txt to only cover 2,413 province
IDs that have no history in either vanilla or our mod. Previously
covered all 13,164 non-mod IDs, causing ~30K duplicate-field
warnings from ck3-tiger for provinces vanilla already defines.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-08 13:00:39 +01:00
jpmschweitzerandClaude Opus 4.6 e5e55c3827 chore(meta): update changelog
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-08 12:19:23 +01:00
jpmschweitzerandClaude Opus 4.6 a2c8f96234 loc(culture): add localization for 37 custom character names
CK3 requires a loc key for every name= value in character history.
All 37 custom names from 00_mistborn_characters.txt now have entries,
clearing the remaining untidy(missing-localization) warnings.

ck3-tiger now reports 0 fatal, 0 error, 0 untidy.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-08 12:19:08 +01:00
jpmschweitzerandClaude Opus 4.6 244d064890 chore(meta): update changelog
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-08 12:12:13 +01:00
jpmschweitzerandClaude Opus 4.6 5950d7101a fix(titles): remove deprecated color2 from all landed titles
CK3 1.18 no longer uses color2 on titles. Removing 78 instances
eliminates all untidy(unneeded) warnings from ck3-tiger.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-08 12:12:03 +01:00
jpmschweitzerandClaude Opus 4.6 49a3dd7457 chore(meta): update changelog
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-08 12:11:00 +01:00
jpmschweitzerandClaude Opus 4.6 d9db390af9 docs(meta): improve player test instructions in test protocol
Make gameplay testing instructions more explicit — Claude Code
cannot launch CK3 or interact with the UI, so the test script
must clearly describe what the human player needs to do. Add
guidance on game speed and what to look for.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-08 12:10:33 +01:00
jpmschweitzerandClaude Opus 4.6 84deb30df4 data(history): add default province data for unused vanilla provinces
Provide holding=none defaults for all 13,164 vanilla province IDs
not used by the mod. Prevents ~27K "Province with no county data"
error log messages that were flooding the logs and making it hard
to spot real mod issues during testing.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-08 12:10:26 +01:00
jpmschweitzerandClaude Opus 4.6 4fdece1ede fix(loc): remove duplicate breeding_for_allomancy_modifier key
This key was defined in both decisions and modifiers localization
files. The authoritative definition lives in mistborn_modifiers,
so remove the stale duplicate from mistborn_decisions.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-08 12:10:18 +01:00
jpmschweitzerandClaude Opus 4.6 dcb8a36b93 feat(culture): add name lists with dynasty names and localization
Add custom name lists for noble_scadrian, skaa, and terris cultures
with male/female names, dynasty names, and cadet dynasty names.
Add localization for all name list and dynasty name keys. Remove
stale TODO comments from culture definitions.

Fixes ck3-tiger errors for missing name_list references and game
log warnings about 0 dynasty names.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-08 12:10:12 +01:00
jpmschweitzerandClaude Opus 4.6 6d89e00292 chore(meta): update changelog
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-08 11:30:13 +01:00
jpmschweitzerandClaude Opus 4.6 0dc56e8c47 chore(meta): add PNG output directory structure convention to asset-gen skill
Document that generated PNGs should mirror the mod's gfx/ directory
structure under ~/Pictures/mcp-images/ for organization. Also note
to overwrite files on regeneration instead of creating versioned copies.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-08 11:29:51 +01:00
jpmschweitzerandClaude Opus 4.6 ab7b2e35e2 feat(modifiers): add missing modifier definitions, fix icon paths, generate icons
- Fix 9 modifiers pointing to wrong placeholder icons (compounder.dds,
  lord_ruler_attention.dds) — now reference their own dedicated DDS files
- Add 6 missing base modifier definitions (mist_heavy, fertile_ashland,
  full_crew, eleventh_metal_insight, duel_veteran, atium_contract_holder)
- Add 21 flavor event modifier definitions with stat blocks
- Add localization for all new modifiers (name + description)
- Generate 4 new modifier icons on the hammered-metal coin base:
  first_metalmind_strength, first_metalmind_memories,
  first_metalmind_health, savant_power_surge
- Zero modifiers now use placeholder icons (except compounder itself)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-08 11:29:44 +01:00
jpmschweitzerandClaude Opus 4.6 607359742d docs(meta): add character lore references to milestones
Point M3 (tasks 3.1, 3.3, 3.4), M5 (task 5.3), and M6 (task 6.1)
to the new character lore profiles in docs/bookmarks/the end of an
empire/characters/. Add design docs section to MASTERPLAN current
state noting the 19 character profiles and index exist.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-08 10:53:06 +01:00
jpmschweitzerandClaude Opus 4.6 0301d527aa chore(meta): update changelog
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-08 10:44:45 +01:00
jpmschweitzerandClaude Opus 4.6 3b186ecdf3 docs(history): add character lore for the end of an empire bookmark
19 character profiles plus an index/glossary for the 1020.1.1
bookmark cast. Each file documents lore summary, personality,
CK3 trait mapping, starting conditions, relationships, and
mechanical notes.

Canonical characters: Lord Ruler, Kelsier's crew (10), Venture
family (2), Shan Elariel, Kar. Four Great House heads (Hasting,
Lekal, Erikeller, Tekiel) are extrapolated from canonical house
lore and clearly marked as such.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-08 10:44:32 +01:00
jpmschweitzerandClaude Opus 4.6 d41f4d0e7d docs(meta): update project status across all tracking documents
MASTERPLAN current state reflects M1 complete, M2 ~85% done with
full inventory of what exists and what's missing. REQUIRED_ASSETS
adds completion tracking table (92/230+ assets, ~40%). Events
registry status corrected from "none implemented" to reflect M2
events and completed modifier icons/backgrounds. REVIEW_NOTES
resolves WARNING-01 (pillars), WARNING-05 (attention unified),
WARNING-06/07 (trigger distinctions), WARNING-08 (religion family),
updates NOTE-02 (province IDs), and corrects summary counts.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-08 10:24:20 +01:00
jpmschweitzerandClaude Opus 4.6 cbb14ef26e chore(meta): update changelog
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-08 10:12:22 +01:00
jpmschweitzerandClaude Opus 4.6 59eece6015 feat(events): add 16 event scene background illustrations
16 event backgrounds at 1592x848 DXT1 DDS covering all scene
types: 3 noble interiors (court, ball, private_chamber), 3
institutional interiors (temple, dungeon, ruins), 1 noble arena
(fighting_pit), 4 skaa/underclass (streets, plantation,
underground, market), and 5 exteriors (wilderness, battlefield,
mists, ashmount_close, clear_night). Noble interiors use bright
marble and colored fabrics to contrast wealth against ash-choked
exteriors. Fighting pit designed as noble spectacle arena per
Mistborn lore.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-08 10:12:08 +01:00
jpmschweitzerandClaude Opus 4.6 1e2f4a4740 chore(meta): add event background scene-class overlays to asset-gen
Add 5 scene-class overlays for event backgrounds: Noble interior
(bright marble, colored fabrics, candlelight), Institutional interior
(cold stone, iron fixtures), Noble arena (Colosseum-style fighting
pit with house banners), Skaa/underclass (ash-stained, cramped),
and Exterior (overcast Scadrial landscape). Scene-class mapping
table routes each event scene to its overlay. Noble interiors use
bright marble instead of dark mahogany to contrast wealth against
the ash-choked exterior world.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-08 10:11:58 +01:00
jpmschweitzerandClaude Opus 4.6 6571b8f0c3 chore(meta): document modifier coin base in asset-gen skill
Adds the coin base PNG location and the prompt pattern that
keeps the model anchored to the correct coin style.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-08 09:49:11 +01:00
jpmschweitzerandClaude Opus 4.6 93d9d977a8 chore(meta): update changelog
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-08 09:48:46 +01:00
jpmschweitzerandClaude Opus 4.6 d4dc71e123 feat(modifiers): add 21 flavor event modifier icons
Hammered-metal coin style icons for the flavor events expansion:
underground network, keeper advisor, pewter gate champion, mist
scholar/warden/denier, ruin pact, ministry insider, combat veteran,
underground contacts, house rivalry, cautious/defiant/paranoid ruler
(attention aftermath trio), mist sickness, ashfall crisis, metal
shortage, skaa loyalty/resentment, double agent, artifact corruption.

60x60 uncompressed ARGB DDS with 6 mipmap levels.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-08 09:48:32 +01:00
jpmschweitzerandClaude Opus 4.6 7d7ed454b9 chore(meta): update changelog
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-08 09:19:30 +01:00
jpmschweitzerandClaude Opus 4.6 2516cc08e3 docs(events): add flavor events registry and update asset/milestone plans
Create docs/events-registry.md cataloging ~112 proposed flavor events:
- Part A: 17 extensions to existing event chains
- Part B: 32 chain steps across 7 new multi-event arcs
- Part C: 63 one-shot events including 8 artifact acquisition events

Update M7 milestone with task group 7.14 referencing the registry.
Update REQUIRED_ASSETS.md with 21 new modifier icons and 8 new event
backgrounds needed for the flavor events expansion (~53 total modifiers,
16 total event backgrounds).

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-08 09:19:10 +01:00
jpmschweitzerandClaude Opus 4.6 988e752204 chore(meta): update changelog
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-08 08:30:37 +01:00
jpmschweitzerandClaude Opus 4.6 9b9de332b8 feat(modifiers): add 21 modifier icons
Painterly hammered-metal coin style, dark background, 60x60
uncompressed ARGB with 6 mipmap levels. Covers all modifiers
currently referenced in code (compounder, lord ruler attention
tiers, steel ministry, ash blight, koloss rampage, metal reserves)
plus future M4-M8 modifiers (great house status, atium supply,
breeding, ruin influence, inquisitor power, mist, fertile ashland,
full crew, eleventh metal, duel veteran, atium contract).

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-08 08:30:19 +01:00
jpmschweitzerandClaude Opus 4.6 41ae6484b2 chore(meta): update changelog
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-07 22:52:44 +01:00
jpmschweitzerandClaude Opus 4.6 84d0a20b10 loc(traits): add missing localization keys
- Add trait group display names (allomancy, strength, potential,
  feruchemy groups)
- Add trait_trait_ prefixed keys for CK3's loc lookup convention
  (mistborn, mistborn_potential, feruchemy_potential, knows_hemalurgy)
- Add terris culture loc (collective_noun, prefix)
- Add terris_worldbringers faith custom loc (deity names, priest
  titles, afterlife, house of worship, religious text, etc.)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-07 22:52:26 +01:00
jpmschweitzerandClaude Opus 4.6 4dbe353ba7 fix(mod): fix culture pillar, on_game_start override, event backgrounds
- Add head_determination = head_determination_domain to all three
  Scadrian cultures (required by CK3 1.18)
- Move on_game_start initialization from effect block to
  mistborn_init.0001 event to avoid overriding vanilla's effect block
- Replace non-existent event backgrounds (corridor.dds, battlefield.dds)
  with valid vanilla keys (study, wilderness)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-07 22:52:15 +01:00
jpmschweitzerandClaude Opus 4.6 ddd595f71b fix(traits): fix groups, genetic inheritance, and icon paths
- Remove group from Misting/Mistborn/potential/Feruchemy traits that
  lacked a level field (CK3 unsets the group and logs errors)
- Add level = 1/2/3 to allomantic strength traits (proper progression)
- Remove inherit_chance and both_parent_has_trait_inherit_chance from
  all genetic traits (CK3 1.18 considers this an error)
- Set birth values (0.0-1.0 range) to control inheritance frequency
- Fix doubled icon paths: remove gfx/interface/icons/traits/ prefix
  that CK3 auto-prepends, causing double-pathed lookups

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-07 22:52:05 +01:00
jpmschweitzerandClaude Opus 4.6 e31761db68 fix(encoding): add UTF-8 BOM to all .txt files
CK3 requires UTF-8 BOM on .txt data files. Without it, every file
logs a parse warning and data loading becomes unreliable. Added BOM
(EF BB BF) to all 76 .txt files under lords_of_ash/.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-07 22:51:53 +01:00
jpmschweitzerandClaude Opus 4.6 e6e43e99eb chore(meta): update changelog
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-07 22:37:18 +01:00
jpmschweitzerandClaude Opus 4.6 6292734baf loc(events): add localization for all M2 content
Add localization for: training events (4 events, 12 options),
metal supply events (4 events, 10 options), Feruchemy events
(2 events, 5 options), hemalurgy events (3 events, 9 options),
savant events (2 events, 6 options), late snapping event, sandbox
event. Add loc for new decisions (training, metal supply, black
market, sandbox). Add modifier descriptions for metal reserves,
savant power surge, Feruchemy metalminds, keeper_of_terris,
atium_reserve, and brutal_repression.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-07 22:36:51 +01:00
jpmschweitzerandClaude Opus 4.6 85a46c307e feat(on_action): wire M2 events and add game start metal supplies
Add all new yearly pulse events: metal supply, Feruchemy discovery,
Inquisitor transformation, Ruin's whispers, Hemalurgy discovery,
savant acquisition/consequences. Add duralumin/nicroburst to
compounding check. Add on_imprison hook for late snapping. Grant
starting metal reserves to Allomancers at game start (abundant for
nobles, low for skaa).

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-07 22:36:44 +01:00
jpmschweitzerandClaude Opus 4.6 18c0924427 fix(events): fix skaa allomancer recruitment and atium attention
Replace hardcoded Coinshot trait on skaa recruits with random
Misting type via activate_allomancy_effect, matching lore that
skaa Allomancers manifest varied abilities. Replace inline
lord_ruler_attention variable changes in atium events with
decrease_lord_ruler_attention_effect for consistency.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-07 22:36:37 +01:00
jpmschweitzerandClaude Opus 4.6 96bcaa3558 feat(events): add Feruchemy, training, metal supply, and sandbox events
Add Feruchemy activation chain (mistborn_feruchemy.0001/0010) for
Terris characters discovering their art and creating first metalminds.
Add Allomantic training events (mistborn_training.0001/0010/0020/0030)
for mentoring family members. Add metal supply events
(mistborn_metal.0001/0010/0020/0030) for reserve management and
wartime scarcity. Add sandbox testing event (mistborn_sandbox.0001)
for voluntary metallic arts discovery.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-07 22:36:31 +01:00
jpmschweitzerandClaude Opus 4.6 5e44459a6f feat(decisions): add training, metal supply, and sandbox decisions
Add train_allomancer_decision for mentoring family members to
strengthen Allomantic ability. Add acquire_metal_supply_decision
and acquire_metals_black_market_decision for Allomantic metal
procurement. Add discover_metallic_arts_decision for sandbox mode
voluntary power testing. Add duralumin/nicroburst to compounding
decision trigger list.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-07 22:36:24 +01:00
jpmschweitzerandClaude Opus 4.6 8dcc8b941f feat(maa): add recruitment restrictions and rebalance men-at-arms
Add can_recruit triggers: Hazekillers/Noble Guard require noble
scadrian culture, Koloss require duchy+ rank, Mistborn Agents
require Allomancers in court. Rebalance stats: reduce Koloss max
(300→150), increase Koloss costs, reduce Mistborn Agent damage
(100→80), remove self-counter on skirmishers, increase Hazekiller
counter multiplier (1→2), halve Skaa Levy max (1000→500). Add
siege_value to Koloss.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-07 22:36:19 +01:00
jpmschweitzerandClaude Opus 4.6 7175c1783f feat(modifiers): add Feruchemy, savant, metal supply, and combat modifiers
Add Feruchemy modifiers: keeper_of_terris, first_metalmind variants
for strength/memories/health. Add savant_power_surge for temporary
Allomantic flare. Add metal supply modifiers (abundant/low/depleted)
and atium_reserve. Add brutal_repression county modifier for skaa
uprising consequences. Fix county_opinion → county_opinion_add.

Add opinion modifiers: disappointed_opinion and
guilty_about_snapping_opinion for parent reactions to failed snapping.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-07 22:36:10 +01:00
jpmschweitzerandClaude Opus 4.6 a0185cdc71 feat(triggers): add hemalurgy trigger and redirect snapping effect
Add has_multiple_spikes_trigger for Inquisitor transformation check
(requires 3+ spike traits). Redirect trigger_snapping_effect to use
the snapping event chain (mistborn_snapping.0020) as single source
of truth for Misting type assignment, replacing inline duplication.

Fix minor formatting issue in trait_misting_coinshot definition.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-07 22:36:03 +01:00
jpmschweitzerandClaude Opus 4.6 264156ec77 fix(events): replace invalid event themes and fix modifier reference
CK3 does not have 'skulduggery', 'mystery', or 'learning_skill' as
valid event themes. Replaced with 'secret' and 'learning' across
all affected event files. Also changed skaa uprising to use the new
'brutal_repression' modifier instead of reusing 'ash_blight'.

Renamed mistborn_feruchemy.0010.c → mistborn_feruchemy.0010.opt_c
to avoid a MURMUR3A hash collision with a vanilla loc key.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-07 22:35:52 +01:00
jpmschweitzerandClaude Opus 4.6 c1d02baa23 chore(meta): update changelog
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-07 22:10:24 +01:00
jpmschweitzerandClaude Opus 4.6 b41b6dab18 fix(events): replace negative add_gold with remove_short_term_gold
CK3 does not support negative values for add_gold. Replaced all 14
instances across 6 event files with remove_short_term_gold, which
is the correct CK3 effect for deducting gold.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-07 22:09:57 +01:00
jpmschweitzerandClaude Opus 4.6 e614bacbca feat(game-rules): add narrative/sandbox game mode toggle
Created mistborn_game_mode game rule with narrative_mode (default)
and sandbox_mode options. Appears on the game setup screen.
Narrative mode enables curated story events; sandbox mode enables
the Discover Your Metallic Arts decision and suppresses story arcs.
Matching triggers added in prior commit.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-07 22:09:50 +01:00
jpmschweitzerandClaude Opus 4.6 eeb18da1c1 feat(decisions): suppress 34 vanilla decision files
Created empty replacement files for all vanilla CK3 decision files
to prevent non-Mistborn decisions from appearing in the decision
menu. Covers major decisions, activities, religious, lifestyle,
DLC, regional, and culture-specific decisions.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-07 22:09:39 +01:00
jpmschweitzerandClaude Opus 4.6 b291d65900 fix(bookmarks): add portraits, bookmark group, and fix suppression
- Created bookmark_portraits/ with placeholder portrait definitions
  for all 4 bookmark characters (regenerate in-game with
  dump_bookmark_portraits for proper visuals)
- Added bm_group_1020 bookmark group and localization
- Added start_date to vanilla bookmark suppression entries (required
  field per ck3-tiger)
- Removed invalid background field from bookmark definition
- Added replace_path directives for bookmarks to mod descriptors
- Adjusted character positions on the bookmark screen

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-07 22:09:27 +01:00
jpmschweitzerandClaude Opus 4.6 368ad742ef fix(culture): add missing color property to language pillars
Added color to language_scadrial and language_terris pillars to
match the vanilla CK3 pattern. Without this, the culture UI may
not display language indicators correctly.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-07 22:09:17 +01:00
jpmschweitzerandClaude Opus 4.6 bfd4431869 fix(decisions): unify Lord Ruler attention on variable-based system
Removed the generic lord_ruler_attention_modifier and unified both
decision checks onto the variable system (var:lord_ruler_attention).
The on_action yearly pulse now applies/removes tiered modifiers
(lord_ruler_attention_1/2/3) based on variable thresholds, giving
players visible feedback that matches the underlying variable state.

Fixes WARNING-05 from the mod review.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-07 22:09:11 +01:00
jpmschweitzerandClaude Opus 4.6 d125178f67 fix(triggers): separate active/dormant allomancy and feruchemy triggers
Split over-inclusive triggers into distinct variants:
- is_feruchemist_trigger now matches only active trait_feruchemist
- has_allomantic_potential_trigger now excludes already-snapped chars
- Added has_any_feruchemy_trigger and has_any_allomantic_ability_trigger
  for broad matching when needed
- Added is_narrative_mode_trigger and is_sandbox_mode_trigger for the
  new game mode system

Fixes WARNING-06 and WARNING-07 from the mod review.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-07 22:09:04 +01:00
jpmschweitzerandClaude Opus 4.6 a164f1b189 data(history): remap province IDs to vanilla map coordinates
Replaced sequential IDs (1-105) with actual vanilla province IDs
from landed_titles (2030-3107 range). Without this fix, no province
had valid culture, religion, or holding data at game start because
CK3 matches province history by vanilla map IDs.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-07 22:08:57 +01:00
jpmschweitzerandClaude Opus 4.6 8656095605 chore(meta): update changelog
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-07 20:53:33 +01:00
jpmschweitzerandClaude Opus 4.6 a259b6c0e8 feat(gfx): add 5 loading screen illustrations
Add custom loading screens replacing vanilla illustrations:
- ls_vin_mists (show_first priority)
- ls_luthadel_skyline
- ls_kredik_shaw
- ls_ashmounts
- ls_kelsier_overlooking

Includes loadscreen_settings.txt with priority 2 for all screens.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-07 20:53:11 +01:00
jpmschweitzerandClaude Opus 4.6 3d2315f3ea feat(bookmarks): add bookmark background art and suppress vanilla bookmarks
Add background DDS art for the "End of an Empire" bookmark and
reference it in the bookmark definition. Add vanilla bookmark
suppression file to hide all base-game bookmarks since this is a
total conversion.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-07 20:53:01 +01:00
jpmschweitzerandClaude Opus 4.6 e685d5a72e chore(meta): update changelog
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-07 20:27:26 +01:00
jpmschweitzerandClaude Opus 4.6 36953309d1 docs(meta): fix trait icon filenames in asset requirements
Corrected allomantic strength trait filenames from
trait_allomantic_strength_* to trait_allomantic_* to match
actual trait definitions in code.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-07 20:27:03 +01:00
jpmschweitzerandClaude Opus 4.6 ede70edced feat(traits): add 26 trait icons for metallic arts system
All trait icons generated via Nano Banana and converted to
uncompressed ARGB DDS at 120x120. Covers the full metallic arts
system: 12 Misting types, Mistborn, 3 Allomantic strength tiers,
2 Allomantic potential tiers, Feruchemist + potential, and 6
Hemalurgy variants. Dark fantasy painterly style with consistent
visual identity across trait families.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-07 20:26:56 +01:00
jpmschweitzerandClaude Opus 4.6 b088e0471d chore(meta): add asset-gen skill for visual asset generation
Skill for generating CK3-native art assets using the Nano Banana
(Gemini 2.5 Flash Image) MCP tool. Includes style guide, category
prompt templates, and DDS conversion reference. Encodes learnings
from first batch: no circular frames, no vector art, no text,
dark backgrounds edge-to-edge, consistent orientation within trait
families, max 3 parallel generation calls.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-07 20:26:46 +01:00
jpmschweitzerandClaude Opus 4.6 541b474c36 chore(meta): update changelog
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-07 18:47:26 +01:00
jpmschweitzerandClaude Opus 4.6 5f633768e6 docs(meta): add comprehensive visual asset requirements document
Catalogues all ~200+ visual assets needed across milestones M1-M8,
with verified specs from CK3 v1.18 game files. Covers trait icons,
modifier icons, decision illustrations, map files, loading screens,
bookmark art, CoA emblems, religion icons, lifestyle assets, activity
assets, event backgrounds, portraits, and workshop thumbnail. Includes
DDS production guide, priority ordering, art style guide, and complete
gfx/ directory structure.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-07 18:47:09 +01:00
jpmschweitzerandClaude Opus 4.6 f6afda26ba chore(meta): update changelog
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-07 18:21:59 +01:00
jpmschweitzerandClaude Opus 4.6 7b7620c13c docs(meta): sync documentation with current codebase state
CLAUDE.md: add bookmarks/bookmarks/, opinion_modifiers/, and
religion_families/ to project structure tree.
MASTERPLAN.md: remove resolved trait_knows_hemalurgy item from M1.
REVIEW_NOTES.txt: update WARNING-05 to reflect that tiered attention
modifiers are now defined.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-07 18:21:47 +01:00
jpmschweitzerandClaude Opus 4.6 8848645b22 chore(meta): update changelog
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-07 17:59:30 +01:00
jpmschweitzerandClaude Opus 4.6 b7d168aba8 chore(meta): add teammateMode setting
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-07 17:59:07 +01:00
jpmschweitzerandClaude Opus 4.6 cdca1db756 fix(titles): remove no-op ai_primary_priority and fix bookmark path
- Remove empty ai_primary_priority block from e_final_empire (the
  if block had no effect, causing a lint error)
- Move bookmarks to common/bookmarks/bookmarks/ subdirectory to
  match CK3 1.18 expected path

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-07 17:59:03 +01:00
jpmschweitzerandClaude Opus 4.6 fb7a517f7b fix(events): use has_character_modifier and add_character_modifier
CK3 1.18 requires the full has_character_modifier and
add_character_modifier forms. The shorthand has_modifier and
add_modifier are not valid in character scope.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-07 17:58:56 +01:00
jpmschweitzerandClaude Opus 4.6 fd0e1181d7 fix(culture): rename deprecated modifier fields in traditions
- dynasty_prestige_mult → monthly_dynasty_prestige_mult
- scheme_power_mult → owned_personal_scheme_success_chance_add
- Remove hostile_scheme_resistance_mult (removed in CK3 1.18)
- Move cultural_acceptance_gain_mult from character_modifier to
  culture_modifier block where CK3 expects it

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-07 17:58:49 +01:00
jpmschweitzerandClaude Opus 4.6 69af34cf59 fix(religion): fix doctrine keys, tenets, holy sites, and add family
Doctrine renames to match vanilla CK3 1.18:
- Split adultery doctrine by gender (men/women shunned/accepted)
- doctrine_marriage_monogamous → doctrine_monogamy/concubines
- doctrine_theocracy_spiritual → doctrine_theocracy_lay_clergy
- doctrine_pluralism_hostile → doctrine_pluralism_fundamentalist
- doctrine_kinslaying_criminal → doctrine_kinslaying_close_kin_crime
- Remove doctrine_concubines_allowed/none (redundant with marriage)

Tenet renames:
- tenet_divine_right → tenet_legalism
- tenet_religious_law → tenet_religious_legal_pronouncements
- tenet_liberation_theology → tenet_unrelenting_faith

Also: remove reformed_icon from all faiths (only valid for
unreformed pagan faiths), create rf_scadrial religion family
definition, fix is_active from block to value in holy sites.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-07 17:58:44 +01:00
jpmschweitzerandClaude Opus 4.6 d61ad6f72a fix(modifiers): rename deprecated fields and relocate opinion modifier
- dynasty_prestige_mult → monthly_dynasty_prestige_mult
- Remove hostile_scheme_power_mult (removed in CK3 1.18)
- county_opinion → county_opinion_add
- Move disapproves_skaa_mercy to common/opinion_modifiers/ where
  CK3 expects opinion modifier definitions

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-07 17:58:31 +01:00
jpmschweitzerandClaude Opus 4.6 cfb9cde999 fix(decisions): fix CK3 1.18 syntax errors in decisions
- Convert picture fields from string to block format
- Use vanilla trait names (ambitious, sadistic, greedy, callous,
  compassionate) instead of trait_ prefixed versions
- Move stress from cost block to add_stress in effect block
- Fix add_opinion: add required target field, remove redundant
  opinion value

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-07 17:58:25 +01:00
jpmschweitzerandClaude Opus 4.6 1c2699aa53 chore(meta): update changelog
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-07 17:42:00 +01:00
jpmschweitzerandClaude Opus 4.6 52e0e5b092 fix(history): remove redundant male = yes and fix trait/picture syntax
CK3 defaults to male when no gender is specified, so explicit
male = yes is unnecessary. Fixed decision picture to use reference
block syntax. Changed deprecated beautiful trait to beauty_good_3.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-07 17:41:42 +01:00
jpmschweitzerandClaude Opus 4.6 6abe8a8496 fix(traits): remove invalid index fields and fix opposite keyword
CK3 1.18 does not use explicit trait index assignments — they are
auto-assigned by load order. Also fixed `opposite` → `opposites`
(correct CK3 keyword) on allomantic strength traits.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-07 17:41:37 +01:00
jpmschweitzerandClaude Opus 4.6 6075c8eb73 docs(milestones): add gender doctrine and clean up IDEAS.md
Add Gender Doctrine group to M3 task 3.8 with three options:
male_preference (Steel Ministry), equal (Survivorism, Terris),
irrelevant (Cult of Ruin). Women can hold titles, serve in
council, and wield Allomancy in all faiths — only inheritance
order is affected. Add gender preference to M4 government types.
Remove integrated ideas from IDEAS.md (unlanded crew → M5,
debug decisions → TESTING.md).

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-07 17:41:30 +01:00
jpmschweitzerandClaude Opus 4.6 fccca3f6c3 chore(meta): update changelog
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-07 17:34:51 +01:00
jpmschweitzerandClaude Opus 4.6 84255ab819 docs(meta): add testing protocol and link from all milestones
Create docs/TESTING.md with debug game rule, debug decisions per
milestone, log analysis commands, pre-launch validation script,
post-run analysis script, and Claude Code testing capabilities.
Add cross-reference to TESTING.md in each milestone's Testing
Checkpoints section (M1-M8).

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-07 17:34:33 +01:00
jpmschweitzerandClaude Opus 4.6 fb327194e2 docs(milestones): add education, legacies, governments, factions, and more
Expand M3 with custom education system (5 tracks × 4 tiers), dynasty
legacies (5 universal + 10 house-specific), custom death reasons (12),
and character nicknames (~15). Expand M4 with custom government types
(3), factions (5), vassal contracts (6 terms), secret types (8), hooks
(3), court types (3), and portrait modifier system (10 triggers).
Update MASTERPLAN scope to reflect all new systems.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-07 17:34:23 +01:00
jpmschweitzerandClaude Opus 4.6 28aea2de49 chore(meta): update changelog
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-07 17:18:50 +01:00
jpmschweitzerandClaude Opus 4.6 5b1a022f0a docs(meta): capture debug decisions testing idea
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-07 17:18:39 +01:00
jpmschweitzerandClaude Opus 4.6 c3512a8aa9 chore(meta): add ck3-tiger linting via Makefile
Adds static analysis for CK3 mod files using ck3-tiger. The Makefile
downloads the platform-specific binary and persists the CK3 game
directory path for validation runs.

Targets: make setup, make lint, make clean
Config: lords_of_ash/ck3-tiger.conf (English only, hide vanilla)
Commit skill updated with pre-commit lint step.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-07 17:18:36 +01:00
jpmschweitzerandClaude Opus 4.6 cef75b4695 chore(meta): update changelog
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-07 17:01:03 +01:00
jpmschweitzerandClaude Opus 4.6 2b8120034f docs(masterplan): add council, religion, caste, and innovation scope
Update MASTERPLAN.md to reflect new systems added to milestones:
- M3: custom tenets/doctrines, expanded holy sites, Inquisitor
  holy order, Keeper Network secret society
- M4: council retheme + court positions, caste laws, innovation
  eras, legend suppression
- M5: band council with crew roles
- M7: advanced council interactions, post-endgame throne choice

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-07 17:00:40 +01:00
jpmschweitzerandClaude Opus 4.6 51bc5fa57d docs(milestones): add council, religion, caste, and innovation systems
Expand milestone docs with several major new systems:

M3: Religion overhaul — 12 custom tenets (3 per faith), 2 custom
doctrine groups (Allomantic Stance, Caste Doctrine), expanded holy
sites (~10, differentiated by faith, with conditional sites),
tradition condition fixes, dead parameter cleanup. New task 3.11:
Steel Inquisitor holy order + individual Inquisitor request mechanic,
Keeper Network secret society with progression and discovery risk.

M4: Council retheme (5 positions with 10 custom tasks), 7 court
positions (Royal Court), legend system suppression, caste law system
(3 tiers: Strict/Relaxed/Abolished with cross-caste consequence
events), innovation system (Age of the Lord Ruler pre-unlocked +
Age of Liberation locked behind lord_ruler_fallen flag).

M5: Band council with 7 crew roles, vacancy penalties, ~14 role
events, and 5 band tasks. Each crew member's Allomantic ability
enhances their assigned role.

M7: Advanced council interactions (~25 events) — kandra courtier
replacement, Court Smoker vs Seeker duels, Obligator Witness
betrayal, Terris Steward Keeper reveal. Post-endgame choice: seize
the throne or release the kingdoms. Variable standardized to
lord_ruler_fallen across all docs.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-07 17:00:34 +01:00
jpmschweitzerandClaude Opus 4.6 07a1491936 chore(meta): update changelog
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-07 16:30:19 +01:00