Prototype Jacurutu income, Testing Station and Shrine effects

Connect automatic unambiguous Jacurutu physical-force income, a sole-occupant
Testing Station storm choice and Shrine reciprocal physical card roles to
engine actions, player controls, legal AI and saved continuation. Preserve
Weather Control exclusion, exact card/force custody, private hand boundaries
and committed effects after restart. Shared role checks cover existing ordinary
and special Karama paths; reserved cards cannot enter another pending use.

Keep Orgiz, mixed-force Jacurutu allocation and contested Cistern/Testing
Station benefits explicitly pending. These are bounded prototypes; complete
Discovery/Advanced/expansion and publication gates remain closed.

Validation: types, lint and 4,345 offline tests passed (32 added), production
build passed, and 40 HTTP tests passed. Independent cross-reviews repaired
reserved-card deadlock, physical-card selection, alternate-role permission,
storm source/token binding and public-entitlement bot ordering. The first broad
run found five failures; focused repairs preceded the stable repeated check.

Browser A5EJQ2W4 used genuine Discovery setup/reveal/free entry with targeted QA
positioning. A human increased storm movement from two to three sectors,
moving sector 6 to 9. Refresh restored station forces and the private Snooper.
This was targeted control/recovery evidence, not an unmodified full game.
All 187 opening saved rooms remained unchanged; 31 QA/HTTP rooms were added
(218 total). Reused the running server; no restart or save reset.

Source-bound report:
/home/quintine/.local/share/dune/checkpoints/20260913-discovery-location-effects/verification-final/report.json
Source fingerprint: beecb85ab7ec39319115389c115434d161591e8549802c542a6343a0fc19bea6
Durations: check 140540ms; build 6741ms; integration 24956ms.
Aggregate goal counter 63,116,444 to 64,295,091 at final verification:
1,178,647 tokens before final Git/push overhead for three bounded functions.
Standing authorization: Push all from now on.
This commit is contained in:
Quintine committed 2026-09-13 14:50:09 +10:00
1 parent ab0ab52849
commit f0d3d9c464
31 files changed
+2524 -138

No files matched your search

+16 -15
View File
@@ -4,17 +4,18 @@ Updated 13 September 2026. This is the short navigation dashboard; detailed evid
## Evidence and source of truth
- The current [Discovery prototype](DISCOVERY_PROTOTYPE.md) adds
signed next-turn entry, sole-occupant Cistern income and later-turn carried
Ornithopter movement to the first batch. Focused lifecycle, engine, recovery,
private control and AI paths are present. Targeted browser room `CA782FQE`
verified partial free entry and a later range-three token move from a genuine
Discovery setup after QA state positioning; it was not an unmodified full-game
journey. Refresh and a subsequent power-outage restart restored its forces,
private hand, spice and spent token; all 157 saved rooms survived unchanged.
Required broad results are recorded in the checkpoint commit. Four location abilities
remain unavailable, and contested Cistern and Orgiz collection interpretations
remain unresolved. This is still **Prototyped**, not complete-module verification.
- The current [Discovery prototype](DISCOVERY_PROTOTYPE.md) adds unambiguous
Jacurutu battle income, sole-occupant Ecological Testing Station adjustment and
Shrine card conversion. They connect engine effects, private controls, legal
AI and saved continuation. Orgiz, mixed-force Jacurutu payouts and contested
Cistern/Testing Station benefits remain pending. Required broad checkpoint
results are recorded in the commit; this is **Prototyped**, not full compliance.
- Discovery checkpoint `ab0ab52` added signed next-turn entry, sole-occupant
Cistern income and later-turn carried Ornithopter movement. It passed **4,313
offline tests**, build and **40 HTTP tests**, preserving all 156 opening rooms
(187 after QA/checks). Browser room `CA782FQE` exercised free entry and carried
flight; refresh and recovery from a user-confirmed power outage retained the
private hand, forces, spice and spent token. Those were targeted scenarios.
- [First Discovery prototype](DISCOVERY_PROTOTYPE.md): genuine base-faction
Basic/Advanced setup, seven Spice Cards, eight tokens, Great Maker, Collection
inspection/rewards and revealed nested locations are connected. Checkpoint
@@ -54,7 +55,7 @@ restoration after necessary restarts. No recurring automation is installed.
| --- | --- | --- |
| Basic core | Playable loop; shared setup, Fremen movement cancellation, structured Truthtrance facts and bounded Basic/no-Guild Advanced reserve-shipment promises. | Ordinary Guild rate/transport cancellation; wider truthful questions/action commitments; integrated rules and human/AI acceptance. |
| Six-faction Advanced | Genuine offline setup across 456 configurations; four-profile full-game simulations and JSON continuations. | Base gaps plus provisional special-Karama outcomes, remaining timing audits and authentic multiplayer/browser acceptance. Public starts remain disabled. |
| Twelve factions and optional modules | Many bounded faction, card, Homeworld and Nexus slices have controls, bots and recovery evidence; Discovery now includes free location entry, sole-occupant Cistern income and later-turn carried Ornithopter movement. | Every unfinished effect and interaction, occupation entitlement, four remaining Discovery location abilities, contested collection rulings and complete combined games. Inventory or fixture coverage does not enable a module. |
| Twelve factions and optional modules | Many bounded faction, card, Homeworld and Nexus slices have controls, bots and recovery evidence; Discovery includes free entry, Cistern, carried flight and bounded Jacurutu, Testing Station and Shrine effects. | Every unfinished effect and interaction, occupation entitlement, Orgiz, mixed physical dial allocation and contested Discovery benefits and complete combined games. Inventory or fixture coverage does not enable a module. |
| AI difficulty | Four profiles consume private legal views; recorded Basic and Advanced studies complete. | Demonstrate a consistent Medium → Hard → Brutal strength ordering, improve strategic gaps, and repeat targeted studies after relevant policy/rule changes. |
| Multiplayer | Versioned writes, saved seats, owner recovery kits, uncertain-request retry and voluntary own-seat AI control. | Intentional transfer, unprepared abandoned-seat recovery, unattended continuation and remaining network-failure acceptance. Preserve privacy and existing games. |
| Player experience | Internal component inspectors and many desktop/phone feature journeys verified. | Complete end-to-end games, accessible controls, responsive layout, clear rules/errors and recovery across all supported combinations. |
@@ -75,9 +76,9 @@ now connects the [sourced components](DISCOVERY_COMPONENTS.md) to Great Maker,
destructive Discovery blows, private inspection/reveal, stash rewards, carried
Ornithopter custody and later-turn movement, five revealed nested locations,
signed free entry on the following turn and sole-occupant Cistern income. Only
Jacurutu counts toward stronghold victory. Next dependencies are Jacurutu battle
income, Ecological Testing Station, Shrine and Orgiz, plus unresolved contested
Cistern and collected-spice-blow interpretations. Complete variant acceptance
Jacurutu counts toward stronghold victory. Jacurutu income, Testing Station and Shrine now have bounded connected
prototypes. Next dependencies are Orgiz and the unresolved contested benefits,
physical dial allocation and collected-spice-blow interpretations. Complete variant acceptance
and normal public starts remain gated.
The user changed the development order on 13 September: get working prototypes
+63 -11
View File
@@ -1,6 +1,6 @@
# Discovery functional prototype
13 September 2026. The first connected Discovery batch is **Prototyped**, with
13 September 2026. The connected Discovery batches are **Prototyped**, with
partial rules coverage. It connects physical components, real actions, private
controls, AI choices and saved continuation. Normal public Discovery and
Advanced start gates, and the publication gate, remain closed.
@@ -73,7 +73,23 @@ to redeal a started game. The default `ix` profile remains available.
factions occupy Cistern, the unresolved benefit is withheld without blocking
Collection; this boundary does not decide which occupant should receive it.
Great Maker vote/ride, Discovery token/discard, next-turn entry and carried
- **Jacurutu:** winning a battle here automatically grants one bank spice per
opposing undialed physical force sent to the Tanks. Winner casualties and
pre-existing Tanks do not count. Ordinary and unambiguous Advanced plans are
playable. Mixed normal/elite plans with different possible physical counts
leave an explicit unpaid gap pending the allocation ruling below.
- **Ecological Testing Station:** a sole non-advisor occupant receives an owned
decrease/keep/increase choice after the ordinary storm-card window closes,
before traversal and CHOAM/Fremen protection. The original natural dial/card
source, turn, physical station and chosen distance remain bound through saved
protection and typed loss continuations. Weather Control bypasses the station.
- **Shrine:** current non-advisor occupation of the publicly revealed location
authorizes Truthtrance as Karama or Karama as Truthtrance in the existing effect
paths. Cards retain their physical identity and custody. A committed converted
Truthtrance retains its use receipt through departure, answering and discard.
This does not implement missing special powers or resolve their pending rules.
Great Maker vote/ride, Discovery token/discard, next-turn entry, station and carried
Ornithopter controls use the same private legal choices as the four AI profiles.
Token backs expose only permitted information; authorized faces have readable
explanations of all eight effects. Busy and autopilot states disable human
@@ -109,6 +125,25 @@ settle whether a stacked board deposit represents one or several collected
spice blows; contested occupancy and unresolved Ecaz shared collection add
further unanswered cases.
The Testing Station's two-occupant case leaves ordering and cumulative adjustment
unresolved. The prototype opens only the sole-occupant path and continues an
ordinary storm without that contested benefit. Choosing after the ordinary
storm-card window is an implementation timing interpretation: the printed
source specifies the Storm phase and excludes Weather Control, but does not
supply a separate station/card priority order. A legacy pending storm without
new source metadata keeps its existing movement; a subsequent naturally
produced storm can use the station. No source is inferred from display logs.
Jacurutu's text says opposing **undialed forces**, not a numeric wheel difference.
Advanced combat permits different physical allocations: an Emperor with one
ordinary force and one Sardaukar, dial two and one paid support, can dial the
supported Sardaukar alone or the supported ordinary plus unsupported Sardaukar.
Those choices leave one or zero undialed counters. The existing loser resolution
has no physical allocation choice. The user question asks whether the defeated
player should select those counters; it remains pending. The prototype records
the unpaid gap instead of silently choosing a reward. Source: publisher-authored
Ecaz & Moritani rulebook p13, with no clarification in its bundled Q&A.
## Evidence and next dependencies
Focused suites cover component inventory and private projection
@@ -124,7 +159,8 @@ engine, saved interaction and human/AI paths are covered by
and disposal are covered by `tests/discovery-flight.test.ts`. They exercise
immutable rejections, physical custody, hidden information and JSON restoration.
They do not certify a complete module, all combined routes or difficulty strength
ordering. Required broad checkpoint checks are pending for this expanded batch.
ordering. The free-entry/flight checkpoint `ab0ab52` passed 4,313 offline tests,
build and 40 HTTP tests, preserving all 156 opening rooms (187 after checks).
Browser room `CA782FQE` began through the genuine Discovery setup with one human
and two AI seats, then used a targeted QA state to reach the new controls without
@@ -158,11 +194,27 @@ The room is paused at acceptance of that blow. No other saved room was changed
and no server restart was needed. Required broad verification results and the
source-bound report are recorded in the checkpoint commit.
1. Connect the four remaining special location benefits: Jacurutu battle income,
Ecological Testing Station storm adjustment, Shrine card conversion and Orgiz
collection transfer. Ordinary Jacurutu victory counting does not implement its
battle income; Orgiz awaits the collected-pile ruling above.
2. Resolve contested Cistern ownership, then integrate combined modules and
complete games before refining or opening gates.
3. Run the required broad checkpoint, browser and saved-room verification for
this expanded prototype. Focused evidence does not open normal public starts.
The location-effects batch adds focused Jacurutu engine/SQLite tests, Testing
Station Basic/Advanced producers, Weather exclusion, saved Fremen losses,
private controls, all four AI paths and concurrent SQLite choices. Shrine tests
cover ordinary/special card substitution, reserved-card rejection, individual
physical-card controls and committed JSON/SQLite continuation. Concurrent
declarations preserve one exact physical discard and resume the prior effect. Independent
reviews check all three effects and required broad results are recorded in the
checkpoint commit and its source-bound report.
Browser room `A5EJQ2W4` began as a fresh three-player lobby through the backed-up
Discovery starter, then used real setup, reveal and free-entry actions in a
focused QA scenario. Its human Atreides occupant chose to increase an ordinary
two-sector storm to three; the storm moved from sector six to nine and proceeded
to Spice Blow. Refresh restored the same station forces and private Snooper.
This is targeted control/recovery evidence, not an unmodified complete game.
The 187 opening saved rooms remain preserved; no server restart was needed.
1. Resolve Orgiz's collected-blow interpretation, contested Cistern/Testing
Station benefits and Jacurutu's mixed physical dial allocation; complete their
remaining controls and effects when settled.
2. Integrate combined modules and complete games, then refine interaction,
strategy and presentation coverage before opening normal start gates.
3. Use the existing prototype starter and saved-room verification for further
batches. Focused evidence does not establish complete module compliance.
+19
View File
@@ -117,3 +117,22 @@ browser room uses genuine setup followed by explicitly targeted scenarios; the
156 opening rooms are preserved. Required stable checks and the aggregate endpoint
are recorded in the checkpoint commit, without counting these prototypes as
complete Discovery rules compliance.
The next location-effects batch begins at aggregate counter 63,116,444. Two
workhorse helpers implement Jacurutu and Shrine, then cross-review Shrine and
review the owner's Testing Station. Reuse of the existing prototype starter,
card-effect paths and SQLite fixtures connects three bounded functions. Review
found a reserved-card Shrine deadlock, incomplete alternate-role permission and
missing physical-card selection; these require fixes before broad verification.
Station review strengthened restored source and physical-token binding. One
focused rendered-control assertion was corrected to distinguish the native
`disabled` attribute from the component's `data-disabled` attribute. A fresh
browser scenario checks station controls and refresh; all 187 opening rooms
remain the preservation baseline. The first broad run reached 4,345 offline tests with five failures: two exposed
an unnecessary hand read before public Shrine entitlement, two old overlay
fixtures queued nonexistent cards, and one assertion expected older rejection
wording. The policy now checks public entitlement first; physical fixtures and
wording are corrected without weakening custody validation. Focused regressions
pass before the repeated stable broad run. Final aggregate endpoint and stable
checks belong in the verified checkpoint commit. Pending rulings and complete-mode
gates remain explicit rather than inflating accepted capability counts.
+20
View File
@@ -1,5 +1,25 @@
# Dune implementation status
## 13 September 2026 — Discovery location effects prototype
Adds automatic unambiguous Jacurutu battle income, an owned Testing Station
storm adjustment and physical Shrine card substitution through existing Karama
and Truthtrance paths. Decisions and committed effects preserve JSON/SQLite
continuation, physical custody and private information. Testing Station cannot
change Weather Control; Jacurutu counts opposing physical losses, not the wheel
alone. See the [prototype scope and rulings](DISCOVERY_PROTOTYPE.md).
Orgiz, contested Cistern/Testing Station and mixed-force Jacurutu remain pending.
Normal module/Advanced starts and publication stay gated. Targeted browser room
`A5EJQ2W4` exercises station choice and refresh after real setup/reveal/entry with
QA positioning. Independent review and focused regressions cover all three
functions; required broad results, source fingerprint and preservation of all
187 opening rooms are recorded in the checkpoint commit and private report.
The preceding `ab0ab52` entry/flight checkpoint passed 4,313 offline tests, build
and 40 HTTP tests. Its outage recovery and 156-room opening baseline are historical
results; the current batch keeps every game created afterward.
## 13 September 2026 — First connected Discovery prototype
Connects genuine base-faction Basic/Advanced audit setup to all seven sourced
+3 -1
View File
@@ -15,7 +15,7 @@ Updated 13 September 2026. This is the authoritative navigation index for existi
| Nexus faction effects | Preserve physical custody, original faction identity and durable effect receipts; use each printed family instead of borrowing another faction's rules by analogy. | [Atreides](NEXUS_ATREIDES_RULES.md), [Harkonnen](NEXUS_HARKONNEN_RULES.md), [BG](NEXUS_BENE_GESSERIT_RULES.md), [Emperor](NEXUS_EMPEROR_RULES.md), [Fremen](NEXUS_FREMEN_RULES.md), [Guild](NEXUS_GUILD_RULES.md) |
| Expansion Nexus families | Source audit coverage does not imply every panel is playable; consult later runtime records in the status log. | [Ixian Cunning](NEXUS_IXIAN_CUNNING_RULES.md), [Ixian replacement](NEXUS_IXIAN_REPLACEMENT_RULES.md), [Tleilaxu](NEXUS_TLEILAXU_RULES.md), [CHOAM](NEXUS_CHOAM_RULES.md), [Richese](NEXUS_RICHESE_RULES.md), [Ecaz](NEXUS_ECAZ_RULES.md), [Moritani](NEXUS_MORITANI_RULES.md) |
| CHOAM Secret Ally | Absent-faction Collection trade spends one actual Worthless card and the Nexus for two bank spice. It is separate from native Cunning and Auditor; the battle inspection alternative remains missing. | [Prototype contract](NEXUS_CHOAM_SECRET_ALLY.md) |
| Discoveries | Preserve seven sourced Spice Cards and eight physical tokens, private faction peeks and Collection choices. Revealed locations are separate territories; only Jacurutu counts toward stronghold victory. Next-turn free entry, sole-occupant Cistern income and later-turn Ornithopter spending are prototyped; four special location effects remain missing. | [Component authority](DISCOVERY_COMPONENTS.md), [prototype boundary](DISCOVERY_PROTOTYPE.md) |
| Discoveries | Preserve seven sourced Spice Cards and eight physical tokens, private faction peeks and Collection choices. Revealed locations are separate territories; only Jacurutu counts toward stronghold victory. Next-turn free entry, sole-occupant Cistern income and later-turn Ornithopter spending are prototyped; Jacurutu income, Testing Station and Shrine have bounded prototypes; Orgiz and contested/mixed cases remain pending. | [Component authority](DISCOVERY_COMPONENTS.md), [prototype boundary](DISCOVERY_PROTOTYPE.md) |
| Guild Secret Ally | One explicit Guild-priced ordinary shipment; borrowed prices/routes preserve native identity. Free Fremen reinforcement remains a separate choice. | [Route contract](NEXUS_GUILD_SECRET_ALLY_RULES.md), [verified runtime](NEXUS_GUILD_SECRET_ALLY_RUNTIME.md) |
| Homeworld custody and mobility | Physical home/visitor groups, population thresholds, tariffs and transport permissions retain distinct sources; Homeworld immunity is not universal immunity. | [Homeworld rules](HOMEWORLD_RULES.md), [benefits](HOMEWORLD_BENEFITS_RULES.md), [mobility](HOMEWORLD_MOBILITY_RULES.md), [invasion](HOMEWORLD_INVASION_RULES.md), [Guild transport](GUILD_HOMEWORLD_TRANSPORT_RULES.md) |
| Homeworld effects | Keep original payment/revival/placement identities and qualification observations; observations alone do not choose an occupied-benefit owner. | [Payments](HOMEWORLD_PAYMENT_INCOME_RULES.md), [card economy](HOMEWORLD_CARD_ECONOMY_RULES.md), [Collection](HOMEWORLD_COLLECTION_RULES.md), [revival deployment](HOMEWORLD_REVIVAL_DEPLOYMENT_RULES.md), [victory reinforcement](HOMEWORLD_VICTORY_REINFORCEMENT_RULES.md), [replacement](HOMEWORLD_REPLACEMENT_RULES.md), [Tupile](HOMEWORLD_TUPILE_INTELLIGENCE_RULES.md) |
@@ -32,6 +32,8 @@ These are unresolved in the cited records. Do not infer an answer from elapsed t
| Occupied Homeworlds | Entitlement/expiry after departure, replacement or contest; unique powers and shared income. The first-occupier/current-occupier question was already sent. | [Occupation questions](HOMEWORLD_OCCUPATION_RULES.md#questions-the-retrieved-sources-do-not-settle), [lifecycle audit](HOMEWORLD_OCCUPATION_LIFECYCLE_AUDIT.md) |
| Nexus responses and composition | Betrayal private-response timing, partial revival/payment choices, Emperor fewer-than-five, fresh advisor/storm cases, Duke restoration and remaining faction-specific combinations. | [Common boundaries](NEXUS_CARD_RULES.md#remaining-source-questions-and-release-boundaries) and the individual faction source/runtime documents above |
| Orgiz collection | User question pending: take one spice per positive board pile collected, or leave the effect pending? The publisher does not clarify stacked Spice Blows. The draft quote remains opt-in and is not enabled by the engine. Contested Cistern income also remains outside the ordinary sole-occupant prototype. | [Discovery interpretations](DISCOVERY_PROTOTYPE.md#interpretations-retained-for-refinement) |
| Jacurutu physical dial | The user question asks whether the losing player should choose the physical normal/elite forces represented by its dial. When legal Advanced allocations produce different rewards, income remains explicitly unpaid; numeric wheel subtraction is not a ruling. | [Discovery interpretations](DISCOVERY_PROTOTYPE.md#interpretations-retained-for-refinement) |
| Testing Station contest/timing | Only sole non-advisor occupation is prototyped. Two-occupant priority/stacking remains unresolved; opening after the ordinary storm-card window is an explicit source-timing inference. Weather Control is excluded by the printed text. | [Discovery interpretations](DISCOVERY_PROTOTYPE.md#interpretations-retained-for-refinement) |
| Discovery prototype inferences | Free entry uses storm order and ordinary source-storm restrictions; these are general-rule inferences. Great Maker currently follows ordinary first-turn worm skipping and Sandtrout suppression; an exhausted token type creates no replacement token. These preserve current source interpretation and physical inventory but are not separately confirmed rulings or complete combined-module certification. | [Interpretations for refinement](DISCOVERY_PROTOTYPE.md#interpretations-retained-for-refinement) |
| Other Homeworld combinations | Population/force splitting, removal custody, replacement shortages, income accounting and placement ordering remain local to their detailed contracts. | [Homeworld rules](HOMEWORLD_RULES.md), [occupation](HOMEWORLD_OCCUPATION_RULES.md) and the effect documents above |