Files
Dune/docs/TRUTHTRANCE_MOVEMENT_PROMISES.md
T
Quintine edbcbe28de Enforce Basic Truthtrance ground-movement promises
Add a structured future single-movement predicate and persistent authoring, feasible-answer and promise controls for bare native Basic active post-shipment turns. Yes requires one matching physical movement while possible; No survives every later Hajr/Ornithopter opportunity until actual turn closure. Matching physical commitment precedes disposal and arrival effects. Preserve compatible promises after opposing loss and reject voluntary destruction of the last owned completion.

Reuse the actual movement declaration and physical commitment in a focused owned-action search rather than a strategic shortlist. Retain typed groups, original two-group cohorts, held Hajr, both Ornithopter modes, city access and current Kulon bonus. Deterministic preparation on private clones retains physical cost semantics without inventing response/discard events in reachability. Existing native/optional/Advanced movement retains its actual controls.

Verify 17-file218/218, types/lint/build, seven original-action gameplay/control/table-rendering programmes and all four existing legal profiles. Original public classic, paid cache Ornithopter and native allowed-Kulon sources use only unopened positions and scalar lotteries; extra-card/force-loss edges are explicitly controlled. Repair nearby stale fixture continuations to acknowledge Semuta/battle outcomes and put pre-movement Hajr in Basic. Full modes, wider preparation/timing/module coverage, comprehensive assurance and deployed acceptance remain open. No strategic tuning or saved-room/reset/restart/deployment operation.
2026-10-24 14:32:16 +11:00

117 lines
7.4 KiB
Markdown

# Truthtrance ground-movement promises
## Basic prototype — 24 October 2026
**Prototyped / Partial.** The structured question asks whether the respondent
will make **one ground movement of at least N physical forces to a printed
territory before their current Shipment and Movement turn ends**. It concerns
future events after the answer, not earlier moves or sums of smaller groups.
Shipment, HMS relocation, free accompaniment and Ambassador relocation do not
count. A concealed No-Field marker itself is not a physical on-board force;
ordinary counters moving with it retain their actual count.
The general binding-while-possible/current-turn authority is the GF9 November
2020 FAQ printed p8, recorded in the [shipment source contract](TRUTHTRANCE_SHIPMENT_PROMISES.md#authority-and-supported-meaning).
Its worked example concerns shipment. Applying that rule to this existential
movement statement, the owned-action witness and accepted-order release policy
below are explicit software compositions, not a publisher movement-specific FAQ
or Basic adoption of the unofficial Advanced revision.
Fresh or existing Basic native tables can ask at a clean **active post-shipment
turn**, including selected E1/E2/E3 factions. No optional modules or Advanced
inherit this entry. The actual native roster, physical inventory and route
validation remain authoritative; no mode or publication gate opens. Earlier
phase/waiting-turn movement questions, compound movement/fact questions and wider
owned preparations/interactions remain unfinished. Existing saves are not
reconfigured and absent promise fields remain absent until a real answer binds.
## Behavior and controls
- **Yes** stays pending across nonmatching moves while a legal owned completion
remains. One matching physical commitment fulfills it permanently, before card
disposal, Intrusion, Ambassador/Terror or other later arrival effects. It is
not a promise to keep those forces alive afterward.
- **No** forbids every matching ordinary/card ground movement until the actual
turn ends, including later Hajr and both Ornithopter groups. A first nonmatch
or card-disposal pause does not fulfill it. Ending early cannot evade Yes.
- Feasible answers use actual board/typed groups and the shared human movement
declaration validator, not the strategic bot shortlist. The finite search
considers ordinary moves, held Hajr, both held/active Ornithopter modes and
their original cohort, current city access and current native bonuses such as
CHOAM Kulon. Preparations use private detached execution; actual cards retain
their ordinary effects, counters, discard/response and arrival continuations.
Unknown future draws/gifts and unresolved opposing outcomes are not invented.
- Voluntary moves/actions cannot remove the last legal completion. A declared
native movement waits for its real counter response before fulfillment or
impossibility. Opposing impossibility releases only the answers that cannot
remain compatible: retain every No and still-feasible Yes in accepted order.
An impossible large promise does not erase an independent smaller one.
- Authoring has dedicated movement labels, an exact public preview and a
one-to-twenty input. Only the respondent sees feasible answers and the next
owned completion action. Persistent promise/answer controls have no timer;
busy controls submit nothing. Four existing profiles follow those same legal
views without strategy changes or calibration.
This is bounded reachability, not complete arbitrary Truthtrance enforcement.
Other owned preparation families (including Box recovery and native relocation
preparation), earlier timing, optional/Advanced profiles and comprehensive
combination/recovery/privacy/custody acceptance remain due.
## Source programmes and current verification
`tests/fixture-truth-movement.ts` uses genuine public Basic Atreides/Emperor
setup, original33-card inventory and actual dealt Truthtrance/Hajr. Only unopened
deal/Spice positions and native scalar lotteries are selected. Actual readiness,
setup, phases and a **two-spice** one-force Polar Sink shipment precede the
question; ten original Arrakeen forces, wallets and allowances are unchanged.
The original public Ecaz/CHOAM/Richese/Guild source also buys physical
Ornithopter for one in the native cache auction, deals original Truthtrance to
Ecaz, buys one normal card, pays for placement and Guild shipment, then finishes
an actual empty CHOAM Ambassador grant. Two-group Yes/No and range-three paths
use those real cards/forces. Its existing native Ecaz final-move Semuta boundary
remains; ending disposal and the earlier Truthtrance cost still use their actual
neutral continuation. No force, wallet, clock, bonus or played card is installed.
`tests/fixture-truth-movement-choam.ts` uses public native CHOAM/Emperor setup,
actual dealt Kulon/Truthtrance, one-spice Arrakeen shipment and actual allowed
Kulon. City access plus its current bonus proves a four-territory route.
Separate multiple-question and impossibility edges explicitly stage a conserved
second original Truthtrance acquisition and conserved force-loss outcomes. They
are not natural second-purchase or native Atomics/Terror source evidence.
The seventeen-file affected union passes **218/218**, with types/lint and the
production build passing. Seven actual gameplay/control/table-rendering
programmes cover direct Yes, later Hajr Yes, No surviving Hajr, both actual
Ornithopter groups, its range-three option and native current-Kulon route4.
Source programmes use20/58/26 accepted actions. Actual persistent promise
handlers execute the private witness and submit nothing when busy; actual
GameTable rendering covers question, answer, remaining promise, Truthtrance/
ending-disposal pauses and original turn completion. Authoring/answer states
are rendered and submitted as real actions, not browser clicks. Four existing
profiles make12 legal answer/move/end actions, without tuning or calibration.
Bounded review found current CHOAM range must include Kulon rather than a
three-territory cap, and an opposing loss must release only incompatible answers.
Both have regressions, including genuine Kulon play. Multiple-promise feedback
keeps detached settlement coherent; deterministic owned preparation does not
invent extra fresh-discard events while a real cost is suspended. Initial fixture
feedback corrected the actual two-spice Polar Sink tariff and automatically
allowed Kulon. Three representative older failures reproduced against the prior
committed engine: shared native fixtures now acknowledge neutral Semuta, two
battle fixtures acknowledge the actual result, and the broad pre-movement Hajr
case correctly uses Basic. Native Advanced Hajr still requires its genuine
post-movement opportunity. A notice-label scalar lint issue was repaired.
Frozen base `b4a556d5d345c9ff3056b01af0076ae86bdf5579`, tree
`990c92fd368f07e1be91dcc0c677a7c029ecfcd6f747b99943e07cae28f8cfc3`,
2631 files. Private logs, original-state/control HTML and receipts:
`/home/quintine/.local/share/dune/checkpoints/20261024-truth-movement/`,
`frozen-integrated-3/report.json`. Final checkpoint/reference prose overlays
are separately recorded; engine, controls, helpers and tests match the proof.
Framework aliases/CSS stubbing make this server-rendered evidence, not browser,
visual or deployed acceptance. Full modes, wider preparations/timing/modules,
comprehensive assurance and deployed acceptance remain open. No saved-room/D1
operation, reset, restart or deployment.