Files
Dune/docs/ATREIDES_FULL_PLAN_TIMING.md
Quintine 61828150b9 Keep Atreides special inspection available until plan reveal
Allow native Advanced use after declining the first offer, including a sealed
target. Reuse projected card/target permission in persistent controls and
minimal bots; retain sealed plans and finish target-last public reveal once.

Source: authorized supplied physical27 F. Ordinary preparation priority and
target-first ordering remain provisional; no new reading acknowledgement.

Verified: 11 affected offline files126/126, types/lint, production build, five
actual control/gameplay/GameTable SSR journeys and eight legal profile paths.
No saved-room, D1, reset, restart or deployment operation.
2026-10-24 18:49:22 +11:00

222 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.
# Atreides full-plan interaction audit
## Before-reveal window — 24 October 2026
**Prototyped / Partial.** The authorized supplied revision, physical **p27 F**,
allows the native Advanced special Karama before Battle Plans are revealed.
The initial offer after preparation remains, but declining it no longer forfeits
this battle's later opportunity. A quiet boundary with zero or one sealed plans
permits the same held spendable card and once-per-game use, including Atreides
outside the current battle. This supersedes the older pre-first-seal deadline
documented in the historical audit below; no explicit user decision fixed it.
A focused public-state timing quote serves native preflight and the private
owner-only projection. It never reads the opposing plan. Persistent controls
reuse that permission and original special-card action; both combatants remain
selectable. The initial offer uses those same controls, with its separate keep
button. Minimal bots retain their existing own/allied target preference and
use the shared permission at the initial or later window. No strategy tuning.
Selecting an already sealed target immediately makes its original committed
plan and selected physical card faces available to Atreides alone. Selecting an
unsealed target retains the existing target-first rule. Already sealed fields,
physical cards, forces, support payments and Truthtrance commitments are not
reopened or refunded. The private read does not itself materialize a No-Field;
the previously recorded distinction remains unchanged.
If Atreides has already sealed, a target that commits last completes both
plans and the normal public reveal happens in that same action. There is no
new reading pause or acknowledgement and neither combatant can revise its
plan. This deliberately preserves the existing automatic reveal protocol.
Target-first sequencing and Voice/ordinary Prescience preparation priority
remain provisional implementation compositions; the source supplies the
before-reveal deadline rather than those network ordering details. Current
response, decision, Truthtrance, card-effect and preparation priority remains.
The genuine three-seat fixture uses public native Advanced setup and original
undealt card/Spice positions. Atreides earns its Shield at an actual one-spice
auction, pays four to ship two forces and moves two from Arrakeen; Emperor pays
four to ship two into that territory. Native preparation reaches the original
offer, which is actually declined. No played phase, army, wallet, hand or plan
is assigned. Branches use real legal plan actions in either sealing order.
The source prefix is49 actions at the original offer or50 after its decline.
### Current scoped proof
The frozen **11-file126/126** affected offline union, `npm run check:quick`,
production build and actual changed-control smoke pass. Nine new native-window
cases, seven UI cases and an unrelated-owner late read cover immediate sealed
inspection, target-first continuation, own-sealed target-last reveal, self target,
unchanged plans, physical cost, rejected timing/target/card choices and all four
existing profiles. Earlier No-Field assertions retain the original marker and
ordinary planning rather than asserting the obsolete deadline.
Five actual new-component callback/gameplay/full GameTable SSR journeys reach
Collection: initial, later zero-seal, target already sealed, own already sealed
and own sealed self target. Eight own-view profile paths (zero/one seal for each
profile) accept eight original inspection actions and continue the native battle.
This is runtime and server-rendered control evidence, not browser/hydration,
mobile, complete-game or deployed certification.
First frozen feedback was125/126: adding a new shared pre-leader readiness guard
incorrectly blocked an existing Richese/Semuta initial offer. The repaired quote
retains the original Voice/Prescience preparation priority, while shared readiness
continues to guard actual plan commitments. The exact failing case passes1/1.
Second frozen tests pass126/126; type feedback then corrects checklist schema
metadata and two intentional test assertion types, with no rule behavior change.
Final types/lint/build and all scoped proof pass on unchanged source.
The source-bound proof is based on `660b0a0c258aeab6b3002a42a1f5ef6d527c1006`,
tree `dee3d11ca7dbfc6454530650087ce25967cd5d16e5b9694ce962a52e092d00ff`
(2711 nonignored files). Private reports/logs/control renderings remain outside
Git in `20261024-atreides-full-plan-window/frozen-integrated-3`; the final
checkpoint prose/reference overlay is reviewed separately with source hashes.
Relevant paths: [timing and policy](../game/atreides-full-plan.ts),
[controls](../components/atreides-full-plan.tsx),
[native fixture](../tests/fixture-atreides-full-plan-window.ts),
[native regressions](../tests/atreides-full-plan-window.test.ts),
[control regressions](../tests/atreides-full-plan-ui.test.tsx),
[existing full-plan cases](../tests/full-plan.test.ts) and
[existing No-Field cases](../tests/no-field-full-plan.test.ts).
Full Basic/Advanced/expansion modes, wider optional combinations, comprehensive
rules/save/privacy/custody/browser/deployed acceptance and full AI remain
unfinished. No saved-room, D1, reset, restart or deployment operation is needed
for this slice. The historical evidence below retains its original date/scope.
13 September 2026. This audit verifies the existing native Advanced interaction
paths without promoting an implementation timing choice to an official ruling.
The public Advanced and unfinished expansion gates remain closed.
## Supplied-source No-Field composition — 16 October 2026
The authorized supplied revision, physical **p27 C**, restricts the ordinary
one-element Battle Prescience dial choice against a No-Field. The distinct
**p27 F** special Karama says to look at any one player's **entire Battle
Plan** before public revelation. Physical **p36 B** names Prescience in its
No-Field dial exception; it does not separately name this special power.
Under standing choose-recommended, the prototype provisionally keeps those
powers distinct: ordinary dial Prescience stays prohibited, but native
Advanced special Karama may inspect the actual complete committed plan.
This is explicit textual composition, not a newly retrieved combined FAQ or
a newly answered user question. Other native special-use/counter/mode limits
and the provisional original target-first offer order remain.
The actual target commits first. Only Atreides receives that plan's dial,
support, leader and physical played faces. This entitlement does not expose
the token inventory or a prospective maximum to other seats. Private reading
is not public token revelation: reserves, marker and original event remain
unchanged until both combatants seal, then the native zero/capped materialization
and card/cost/loss history run once. This private-read-versus-public-reveal
composition is provisional as well. No saved field, Basic power or public
expansion start is added.
The same distinction follows native mixed Occupy: an active Ecaz plan uses
the original fixed increment plus Richese variable dial; prevention restores
only the chosen lead's own pool. It does not erase the unrelated marker's
original revelation or alter original card-user funding/physical losses.
### Scoped native proof
Eighteen new actual-shipment inspection cases and the frozen29-file393/393
related union pass, with types/lint/build and existing warnings. A final
type-narrowed real-Traitor case passes1/1. Fixture repairs preserve real shared
preleader readiness and test an actually legal alternate leader's ordinary
commitment; no product preparation or target-first guard is weakened.
Four actual390px journeys finish original battle-card cleanup/CHOAM market
into phase7: zero with real leader/cards; mixed ordinary dial3.5/support2;
Ecaz total5/support0 with marker5 capped to2; Richese H/R total6/support3.
Each actual private read leaves the native marker, reserves and force arrays
unchanged. Ordinary Prescience controls still offer only leader/weapon/defense.
The mixed defeat loses6 real counters. The capped co-side loses4 Richese and3
Ecaz counters; H/R spends its original3 after materialization, returns2 and
ends Richese reserves2/Tanks6, Ecaz Tanks3. Native token history remains.
Sixteen fresh native programs across all four profiles accept92 policy actions
through Collection, including original active/prevented owners and actual
Traitor outcomes. The guide imports with34 evidence paths/source anchor valid;
five No-Field facets and both topic coverages stay Partial. No overflow/browser/
application error; owned host/tab/scaffolds removed. Native controls here use
explicit conserved battle staging after genuine setup/shipment, not complete
unstaged games, new save assurance or deployed acceptance.
## Published requirements and remaining interpretation
The [GF9 base rulebook, printed p14](https://www.gf9games.com/dunegame/wp-content/uploads/Dune-Rulebook.pdf)
gives Advanced Atreides a once-per-game Karama inspection of any one player's
entire Battle Plan. Its Q&A p23 orders Voice before ordinary Prescience, permits
Truthtrance during that interaction and leaves unaffected plan components
changeable. The Q&A p22 permits a Ghola-revived leader to fight during Battle.
The [November 2020 FAQ, pp8–9](https://www.gf9games.com/dune/wp-content/uploads/2020/11/Dune-FAQ-Nov-2020.pdf)
confirms any-time Truthtrance, current-turn commitments with impossibility release,
and the Battle-phase Ghola use. The independent source audit retrieved official
indexed text for these passages.
Neither retrieved source orders special full-plan inspection against ordinary
Voice/Prescience, fixes the special offer's exact deadline, or expressly chooses
which combatant seals first. This implementation offers it after preparation,
before either plan is sealed, and requires the selected target to seal first.
Ghola cannot be played during the pending offer; it can be played after that
decision resolves. These remain explicit implementation choices. The older WBC
wording supporting target-first commitment is outside the requested GF9 authority
and was not adopted as a publisher ruling. Preserve the existing unresolved
interpretation instead of silently enabling Advanced on the strength of tests.
## Verified interaction boundary
`tests/full-plan.test.ts` now uses `initializeBaseGameForAudit` and completes actual
Advanced prediction, traitor and BG advisor setup before staging a battle. It no
longer starts Basic and flips the mode afterward. A staged scenario remains
distinct from a setup-to-finish Advanced game.
The 17 focused tests include five new interaction tests:
- All four profiles can honor a Truthtrance leader/weapon commitment, preserve
Voice and ordinary Prescience, revive the required leader with one physical
Ghola, seal for inspection and reach public reveal after the other plan seals.
- A question during the special offer preserves the pending choice and its
revival-dependent answers, whether Atreides later uses or declines the special.
- Questions after inspection disclose only the truthful result of the sealed
plan. They cannot reopen fields, duplicate a binding record or spend its support.
- Seven native preparation windows survive a Truthtrance interrupt: Voice
selection/response, Prescience selection/response/answer, full-plan offer and
selected-special target wait. Parent response, decision, preparation and plan
state are retained; named restrictions leave other fields selectable.
- Atreides can revive its own leader after reading and before sealing, while
the target's plan remains unchanged and private.
Existing tests retain owner-only inspection, sealed-card restrictions, ordinary
Prescience cancellation, outsiders and once-per-game custody. JSON continuation,
rejected-action immutability and physical-card conservation are asserted in the
new paths. No runtime change was needed for these tested interactions. An
independent review found no actionable issue with the added tests.
## Browser and restoration evidence
Room `AZC4HGLB` uses genuine Advanced initialization followed by a staged battle.
An Atreides human chose the special Karama inspection through the browser after
a Truthtrance leader promise and ordinary Prescience. The Medium Emperor used
Ghola to revive Hasimir Fenring and sealed a plan honoring those restrictions.
The private inspection displayed dial 0, support 0, Fenring, Chaumas and Shield,
while Atreides retained its own plan controls. Expanded component controls and
the inspection were readable on desktop and at 390×844 phone width.
A backed-up restart had already completed when the user removed the hourly
restart requirement. Browser refresh restored the same owned inspection and
the earlier inventory room `LC3E55GY`. The final comparison retained all 64
saved room versions and state hashes with none missing or changed. The server
returned HTTP 200. Future restarts occur only when a change or observed server
condition warrants them, with preservation and restoration checks; no recurring
automation is installed.
Required check results are recorded in the checkpoint commit and private
source-bound report. There are no runtime changes, so the preceding production
build and HTTP-suite evidence are reused rather than claimed as new runs.
This audit does not certify arbitrary Truthtrance questions, every Advanced
interaction, expansion combinations or a complete human/AI game.