Files
Dune/docs/MORITANI_LEADER_SKILLS.md

213 lines
13 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Moritani with Leader Skills
Connected development prototype, updated18 October2026. Registered selected
native Ecaz/Moritani with E1/E2/classic Basic/Advanced seats use all14 without an
incidental Nexus or single-family dependency. Original Worlds/phase/independent
cards compose; normal access is a preview, not full rules/publication acceptance.
**Current mixed-native continuation:** actual CHOAM World source3/commit1
remains in Tanks after the normal win; Mori pays no partner fee. Different unused
trained Frankos Aru4 dies once and gets one physical Mentat replacement.
Basic gains no assassination. Original Nexus/Discovery/Semuta, shared Duke and
Advanced role guards remain.
[Registered scope and609/609 proof](LEADER_SKILLS_RUNTIME.md#registered-native-e3-selected-decks--18-october-2026).
## Native World continuation — 17 October 2026
Standalone/paired World Skills now retains optional independent cards and
original phase modules without a Nexus dependency; bare native World cards
also work without Skills. Real World-origin shipments, separate native fee/H
returns, different unused trained-disc assassination and one Mentat replacement
retain original custody. Basic gains no assassination; shared Duke and
Advanced role restrictions remain.
[Current World contract and459/459 proof](LEADER_SKILLS_RUNTIME.md#native-e3-worlds-with-independent-cards--17-october-2026).
## Paired native E3 Skills — 17 October 2026
Both native factions now compose ordinary all14 Skills without Nexus,
optionally independent cards and original Tech3+/Advanced Strongholds2+. Native6/6 and Loyalty precede
the actual battle. Moritani loses against Ecaz, reveals unused trained Ecaz4,
returns its exact skill once and receives one physical replacement at Mentat.
The existing fixture/runtime pair exposes `paired:true`; standalone defaults,
Basic without assassination and original Advanced Harkonnen/Duke guards stay.
[Current scope, controls and323/323 proof](LEADER_SKILLS_RUNTIME.md#paired-e3-without-nexus--17-october-2026).
[Current phase composition and471/471 proof](LEADER_SKILLS_RUNTIME.md#independent-cards-with-original-phase-modules--17-october-2026)
also exercises a plain paired no-card phase loss through winner Tech and one
actual Mentat replacement, without inventing an extra module dependency.
## Independent Treachery composition — 17 October 2026
Fresh standalone Moritani/classic all14 Skills now retains the independent
Recruits, Reinforcements and Harass & Withdraw variant, Basic/Advanced2–6,
with optional original Tech3+/Advanced Strongholds2+. Original36-card setup and five eligible assignment discs,
private offers, Traitors and six-force placement remain. Advanced initializes
the native assassination advantage; Basic does not. The original Advanced
Harkonnen, shared-Duke and mixed-family Skills guards remain.
Card fees/returns and winner skills continue before native assassination.
The fee is three card-user reserves, never rescued battle dial; a successful
Harass returns only that user's actual undialed forces. An eligible unused
opposing trained disc returns its skill once on assassination, pays printed
bounty and retains the original single Mentat replacement. Source timing
interpretations remain provisional as documented in the card contracts.
Evidence: `tests/fixture-moritani-independent-skills.ts` and
`tests/moritani-independent-skills-runtime.test.ts`. The genuine normal-start
programme pays the native fee, returns exact sectors, loses, reveals unused
Master Bewt3, returns his trained skill once and draws one replacement at
actual Mentat. Four real policies choose that same legal card. Basic resolves
without assassination; plain no-card/no-Skills Harkonnen retains printed4 and
native capture. Frozen25-file274/274, types/lint/build and actual390px original
module setup pass. Conserved hands/Traitors and scoped entropy are labelled;
no full-game, calibration, deployed or played-save assurance claim follows.
## Standalone module composition — 4 October 2026
The same original standalone profile now retains canonical unused Tech Tokens
in Basic/Advanced3..6 and Stronghold Cards in Advanced2..6, optionally both.
Exact ecaz33/all14 and original native five-disc/setup remain; Advanced still
excludes Harkonnen and preserves original assassination/normal-call forfeiture.
Normal unused Guild Suk saves one before eligible Master Bewt3 assassination;
the exact skill returns once, printed3 pays and original winner rewards remain.
Losing Moritani retains actually played Tuek Worthless income/support. Actual
Mentat replaces the revealed physical card once; Collection remains separate.
No E3 pair, mixture, allied Occupy skill, public start or played-save conversion.
Human390px **AL6WCG8B v13/Mentat** verifies printed14→17 bounty, one private
Caid replacement and original physical/Tech outcomes. Read
[the combined contract and evidence](LEADER_SKILLS_RUNTIME.md#standalone-e3-module-composition--4-october-2026).
## Advanced assassination composition — 4 October 2026
Fresh local Advanced `leader-skills` tables now compose all fourteen physical
skills with the existing Moritani assassination preview: native Moritani and
classic opponents except Harkonnen, two through six unique seats, exactly the
`ecaz` family deck and no unrelated modules. Original five native assignment
discs, starting cards, private offers, traitors and six-force placement remain.
Existing Basic Moritani/Harkonnen entries are unchanged. Ecaz/Duke skill
assignment and further native/module combinations are not opened by this scope.
Winner skills precede faction powers. A pending original Suk rescue or Rihani
choice finishes before the loser receives Assassinate Leaders. The saved
unspent receipt waits without exposing premature private choices; its later
continuation cannot replay already completed casualties. The winning battle
disc stays excluded under the original assassination contract. A different
eligible native trained disc may die: its exact skill returns once and Moritani
receives only its printed bounty. Original public set-aside and one private
Mentat replacement remain; normal traitor revelation still forfeits assassination
for the whole game, not just this turn.
Existing Terror death, eligible own revival/private replacement, normal+1 versus
trained+3, native Suk rescue, Enemy of My Enemy and mandatory ally retention use
original handlers. Ordinary winning Worthless cards may be retained; only the
existing compulsory uses must be discarded. Only the battle winner receives
killed-disc bounties. Explicit private Mentat and separate normal Banker opt-ins
also compose with this native preview; no new Terror placement fee exists.
Bounded evidence: affected64/64 and CLI2/2 pass. Five genuine games finish1,425
accepted actions/no rejection,37 JSON continuations and24 battles; none opens
assassination, so assassination evidence comes from controlled cases, not those
natural histories. Nine controlled runtime cases exercise Suk/Rihani-before-
assassination, manual/four-policy trained-disc death and one actual Mentat
replacement, plus original private Mentat and normal Banker support income.
Controlled positions are declared, not represented as natural phase histories.
Final native/guide25/25, types/lint/build and original CLI **7JGUWMAP v6** pass.
Human390px **TQH86DL4 v20** uses original admitted IDs and the declared
controlled battle position, then actual normal-role plans and Hasimir6 reveal,
physical Warmaster return, winner card disposal and one private native Mentat
replacement. Wallet18/Tanks8/one new held Traitor remain after refresh; the
owned enlarged face and detailed guide are readable at390px.
## Public configuration and setup
The existing `leader-skills` local initializer accepts exactly `['ecaz']`,
Basic rules, Moritani plus base factions, and no other optional modules. It
does not enable Ecaz, Advanced assassination, the separate Ecaz Treachery
variant, Homeworlds, Nexus, Discoveries, Tech Tokens or Stronghold Cards with
this roster. Existing base and CHOAM/Richese profiles retain their boundaries.
Admission uses only public configuration, never hidden hands or the random deal.
Starting Treachery Cards and the ordinary private two-card skill offers precede
Traitors. Every physical skill remains eligible for Basic Moritani assignment;
there is no reduced deck or card-specific admission workaround. Moritani places
its six starting forces after the other setup choices. Existing human controls,
private offers, public assignments and minimal legal AI choices are reused.
## Connected interactions
Shared public-profile checks connect Banker spending, Diplomat base-defense
copying, Sandmaster ground/worm collection, Smuggler shipping/battle collection,
Bureaucrat payment redirection and Planetologist movement across engine,
projection, controls and bots. Suk casualty rescue, Rihani exchanges and
Sandmaster victory spice use the same expanded battle boundary. Printed leader
strength stays distinct from skill bonuses and bounty calculations.
Terror Assassination kills an ordinary skilled leader under the existing Terror
rules and returns its exact physical skill once. A later own-leader revival
offers an optional draw before revealing either card; the drawn choice remains
private through saved continuation. Sabotage affects Treachery custody only.
An Enemy of My Enemy alliance changes allies without transferring assignments.
The losing ally's retention choice excludes a used Planetologist Special and a
Diplomat copied Worthless card, since both must be discarded after use.
These are compositions of the recorded [Leader Skills contract](LEADER_SKILLS_RULES.md),
[Terror Assassination](MORITANI_ASSASSINATION_SNEAK.md),
[enemy alliance](MORITANI_ENEMY_ALLIANCE.md),
[ally retention](MORITANI_ALLY_RETENTION_RULES.md),
[Planetologist](PLANETOLOGIST_RULES.md) and [Diplomat](DIPLOMAT_DEFENSE.md)
contracts. No new publisher ruling is asserted. Existing Atomics/Extortion,
exceptional assassination pools and competing-arrival questions remain explicit.
## Remaining work
The [Leader Skills runtime](LEADER_SKILLS_RUNTIME.md) retains guarded default
Banker activation, ordinary Mentat questioning, modified Smuggler collection,
captured replacement entitlement and other source gaps. Its bounded Diplomat
retreat is connected for supported battles, not modified or simultaneous effects.
Private Mentat and normal Banker income are available only under their separate
explicit opt-ins; ordinary Mentat activation and recorded custody questions remain
pending. Basic Moritani admission does not certify every valid module combination.
The bounded Advanced composition above supersedes its earlier admission barrier;
Ecaz and further roster/module work remain. Native Tleilaxu has its separate
[Advanced foreign-ghola contract](TLEILAXU_LEADER_SKILLS.md).
Full AI strategy and difficulty calibration still wait for feature completion.
## Reproducible entry and verification
Create a fresh Basic lobby with Ecaz & Moritani selected, seat Moritani and only
base opponents, and ready every human. Preserve the room cookie and run the
existing backed-up, version-checked local tool:
```sh
node --import tsx tools/start-prototype.ts --profile leader-skills \
--db PATH_TO_LOCAL_D1_SQLITE --room EIGHT_CHARACTER_CODE \
--version CURRENT_LOBBY_VERSION --out /private/new-moritani-skills
node --import tsx tools/faction-games.ts --profile moritani-skills \
--out /private/new-moritani-skills-samples
npm test -- moritani-skills
```
The sample profile runs Basic games at two through six seats, adding Emperor,
Guild, Harkonnen, Fremen and Bene Gesserit in that order. It preserves all four
existing difficulty profiles and verifies Treachery, skill, Traitor and force
custody, rejected-action immutability and periodic JSON/private-view restoration.
Separate genuine-setup focused tests include Atreides. These are legal-play
samples, not calibration or exhaustive roster/skill coverage. Interrupted games
can use the existing `--resume` path, which retains the full module and roster.
Focused regressions exercise every physical skill assignment, public guards,
movement controls, legal bot choices, Terror death/Sabotage, revival, payment,
battle effects, real alliances and mandatory retention exclusions. Authenticated
in-memory SQLite restart and concurrent choices verify one physical assignment,
private offers, preserved seats and the final Moritani placement. Conserved
staged phase/battle positions are labeled rather than claimed as played games.
Private source-bound final checks, sample results, browser observations,
saved-game preservation and Git delivery live under `20260921-moritani-skills`
outside the checkout. Actual outcomes and remaining limitations are recorded in
the commit message; no saved game is reset or discarded for verification.