Connect Basic Moritani to the full Leader Skills prototype

Admit the genuine private setup profile for Basic Moritani with base opponents,
exactly the Ecaz expansion and no other optional modules. Keep all14 physical
skills, private two-card offers, starting-card/Traitor order and Moritani's final
six-force placement. Public starts and complete-mode/publication gates remain.

Share public profile eligibility across Banker, Diplomat, Sandmaster movement
and worm riding, Smuggler shipping/collection, Bureaucrat payments, Planetologist
controls/bots and Suk/Rihani/Sandmaster battle settlement. Admission reads no
hidden cards or random deal. Preserve base/CHOAM boundaries and existing source
questions; no full AI implementation, strategy or calibration changes.

Genuine setup regressions cover all14 assignments, legal profiles and guards,
Terror Assassination death and exact skill return, optional own
revival draw/privacy, Sabotage, movement controls/bots, Smuggler shipment and
Bureaucrat paid bribes. Battle actions cover Rihani exchange, Sandmaster spice,
Banker funds, Suk casualties and Smuggler collection. Actual enemy alliances
prove losing-ally retention excludes mandatory Planetologist Special and
Diplomat-copy disposal. A real worm/Nexus ride collects Sandmaster spice once.
Authenticated in-memory SQLite restarts and concurrent skill choices preserve
one assignment, private offers, saved seats and final Moritani placement.
Conserved staged positions are explicitly distinct from played phase histories.

Add a reproducible moritani-skills profile to the existing faction-game runner,
including fixed2-6-player Basic rosters, seed offsets16-20 and saved resume.
Verify expected module presence, all14 physical skills and ordinary Traitor
custody alongside existing card/force/private-view checks. Default six expansion
samples and base samples retain their rosters/ordinals. No live DB is used by
these complete-game samples. CLI regressions check interrupted continuation
and Advanced refusal; corruption tests catch lost cards and entire module loss.

Independent review caught an old all-base worm guard and a sample checker that
missed whole-module deletion; both fixed with meaningful regressions and reviewed.
Initial edits had a stale helper reference and final lint found an unused import;
these were corrected. Types, lint, all 5034 offline tests and build pass on
stable final source. Five genuine complete-game samples passed with no rejected
actions:2 players189 actions/5 restores,3 players53/1,4 players862/23,
5 players116/3 and6 players1338/36. These are legality samples, not calibration
or exhaustive faction/card acceptance. No endpoint/auth/storage changes; existing
HTTP suite not repeated, while new authenticated storage and live browser actions
exercise the newly admitted profile through production boundaries.

Browser created a fresh Basic human Moritani/Easy Emperor lobby, then the existing
backed-up local initializer started that named ready room without replacing seats.
Human inspected both Killer Medic bands, assigned Lupino Ord, chose a private
Traitor and placed six in Polar Sink after all other setup. Refresh preserved
the two public skills, own hand/Traitor and6 deployed/14 reserves at pending
Storm. Mobile skill panel339px, client/scroll337; viewport restored afterward.
Screenshot capture timed out, so full visual/screen-reader acceptance stays open.

All 1580 opening games, 3348 saved seats and auxiliary rows
remain identical. One isolated QA game adds one human seat and entry receipt;
its row is unchanged after setup through refresh, with all seats unchanged.
SQLite integrity and foreign keys pass. No server restart, migration, reset or
recurring automation. Existing unfinished Leader Skill bands and material
rulings remain explicit in the new integration guide and internal checklist.

Private evidence: 20260921-moritani-skills.
Verified source tree: d5078661ecc2199b2bbfebd18034b16585d06410a697a78dc514bfa5b3b77a1c
This commit is contained in:
Quintine committed 2026-09-21 13:43:27 +10:00
1 parent e7e16024b7
commit 489bd3265d
29 files changed
+1474 -126

No files matched your search

+24 -25
View File
@@ -6,33 +6,32 @@ gated.** Prototypes do not open completion or publication gates.
## Current checkpoint and work
Latest delivered checkpoint: `de26aaf`, [Ecaz Loyalty](ECAZ_LOYALTY.md).
Types, lint, **5,012 offline tests**, production build and **49 HTTP tests** passed.
Six genuine faction-game samples completed with no rejected actions. A fresh
Advanced Ecaz/Harkonnen browser setup preserved the public set-aside card through
Traitor/force choices and refresh. All 1,539 opening rooms, 3,259 human seats and
auxiliary rows stayed unchanged; isolated QA/HTTP fixtures brought the baseline
to 1,579 rooms and 3,347 human seats. Screenshot capture timed out. The healthy
server was reused. Earlier checkpoints include `c2f24fc` for public faction sheets
and `e3cfd82` for private-hand browsing.
Latest delivered checkpoint: `e7e1602`, [revealed battle components](REVEALED_BATTLE_COMPONENTS.md).
Types, lint, **5,017 offline tests** and the production build passed. The shared
public display retains direct inspection across decision ownership; browser
checks covered genuine plan sealing, keyboard navigation, mobile layout and
refresh after an explicitly staged conserved battle. All 1,579 opening rooms,
3,347 human seats and auxiliary rows stayed unchanged. One new QA room/seat
brings the preservation baseline to 1,580 rooms and 3,348 human seats. Screenshot
capture timed out; full visual acceptance remains open. The healthy server was
reused. Earlier checkpoints include `de26aaf` for [Ecaz Loyalty](ECAZ_LOYALTY.md).
Current work: [revealed battle components](REVEALED_BATTLE_COMPONENTS.md) adds
public dials, leader portraits and readable used-card faces in one shared area,
with direct inspectors and navigation to pending decisions. Sealed plans and
private hands stay separate. Focused checks, independent review, browser QA and
final check/build/saved-preservation evidence accompany this presentation work.
The separate Bureaucrat/Emperor gift question is pending.
The `8f7a62c` policy checkpoint removed usage checks/cutoffs and deferred AI
refinement until feature completion, followed by three adjacent 75% targets.
Current work: [Basic Moritani with Leader Skills](MORITANI_LEADER_SKILLS.md)
connects the full fourteen-card deck with base opponents and no other optional
modules. Coordinated public-profile guards connect movement, shipment, payment
and battle effects; focused tests cover Terror death/revival, real alliance
retention exclusions and authenticated saved choices. A reusable two-through-six
player sample profile exercises legal continuation. Final results and browser,
independent review, preservation and Git evidence accompany this checkpoint.
The next concrete gameplay milestone is **Basic Moritani plus Leader Skills**
with base opponents and no other optional modules. A bounded current-code review
found no new Moritani-specific ruling, but widening setup alone is insufficient:
coordinate Banker, Diplomat, Sandmaster, Smuggler, Bureaucrat, Planetologist and
battle/victory public-profile guards, keep the full fourteen-card deck, and test
Terror leader death, skill return and revival through real continuations. Do not
hide unsupported cards after a random deal or claim complete combination support.
This provides a concrete dependency-ordered integration target for the next pass.
The remaining Leader Skills effects and source questions retain their explicit
boundaries; admitting Basic Moritani does not finish the module. Next integration
work should assess the remaining faction/module dependencies against these new
shared profile checks, without reducing the physical deck or hiding unsupported
cards after dealing. Advanced Moritani and Ecaz/Skills remain separate gates.
The Bureaucrat/Emperor gift question is still pending. The `8f7a62c` policy
checkpoint removed usage checks/cutoffs and deferred full AI work until feature
completion, followed by three adjacent 75% targets.
The reviewed remaining native Ecaz/Moritani effects, Duke revival and Richese
empty-cache auction arithmetic still cross recorded source questions; Loyalty is