Docs: END-2 session log + DR-036; Backlog/Path_to_Fun/Milestones; CLAUDE.md END-2 line
Path A spine COMPLETE (14/14): Backlog SL-3 blocker cleared + marked done; Path_to_Fun END-2 done + banner; Milestones END-2 row. CLAUDE.md gains the END-2 gotcha line (replicate the outcome, don't client-derive; SiegeTimeout off during the final), net-zero via EB-1/EB-2/END-1/M7/inventory/build-grid condensations (40,445 then 40,510 w/ history note, under the 40,960 limit). DR-036 + session log capture the design, the operator forks (halt+banner, Target=4, SaveData v5), and the pre-coding + post-impl adversarial reviews. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -19,7 +19,7 @@ Last decluttered 2026-06-08 (removed all shipped `[x]` items; their context is p
|
||||
|
||||
**Already shipped & code-verified (do NOT rebuild — 13/14 slice systems):** movement, dash (MC-1, fun-gate PASSED 2026-06-10), melee combo (MC-4), ranged poke; base-local Ore mining (DR-031); Turret/Wall/Fabricator palette + UITK build HUD (DR-021); Ore→Fabricator→Charge→turret economy (EB-2 / DR-033); destructible structures (EB-1 / DR-032); soft-loss Engine Core integrity + overrun flash (END-1 / DR-034); SaveData v4 + frontend menu / Continue / build menu (DR-019). The audit: 9-agent grounded gap-analysis, 2026-06-13.
|
||||
|
||||
**The ONE blocker is END-2 (final siege + terminal win) — SL-3 below.** Today `GoalProgress.Charge` increments past `Target` forever with no clamp/consequence; there is a clear *loss* (Core overrun) but **no terminal *win***. END-2 must land by **June 26**. **Charge cadence LOCKED 2026-06-13: siege-survived-only** (goal +1 per survived siege; Path_to_Fun's "Both"/Aether-deposit cadence deferred post-slice). See [[DR-035_End_Of_Month_Slice_Adoption#Locked fork — END-2 charge cadence (2026-06-13)]].
|
||||
**END-2 (SL-3) is CODE-COMPLETE + validated (2026-06-13) — the Path-A blocker is CLEARED.** The goal meter now arms a visibly-larger final siege at `Charge>=Target` (=4) and latches a terminal **Victory** (survive it) / **Loss** (Core breached during it), with a HUD banner + run-halt. 342/342 EditMode green; Play-validated server==client + no ordering cycle; pre-coding + post-impl adversarial reviews. The **fun-gate** (does the climax land?) is the one open item → folds into SL-5. See [[DR-036_END2_Final_Siege_Win_Lose]] · [[2026-06-13_SL3_END2_Final_Siege_Win_Lose]]. **Charge cadence LOCKED 2026-06-13: siege-survived-only** (goal +1 per survived siege; "Both"/Aether-deposit deferred post-slice). See [[DR-035_End_Of_Month_Slice_Adoption#Locked fork — END-2 charge cadence (2026-06-13)]].
|
||||
|
||||
**Critical path:** SL-1 → SL-2 → **SL-3 (END-2)** → SL-5 → SL-6 → SL-7; SL-4 (visual) runs parallel, done by Jun 23. Every milestone ends with a **falsifiable play/fun-gate**, not a test count. Full vision + visual direction + cohesion checklist + Done Definition: [[End_Of_Month_Game_Jam_Slice]].
|
||||
|
||||
@@ -35,7 +35,8 @@ Last decluttered 2026-06-08 (removed all shipped `[x]` items; their context is p
|
||||
- **Fun-gate:** a fresh non-designer plays 5 min uncoached and reads mining as purposeful, building as a "prep" beat, waves as recognizable pressure, a siege death as "try again"; competent player finishes a run in 5–8 min.
|
||||
- **Deps:** SL-1.
|
||||
|
||||
### SL-3 — END-2: Final Siege & Win/Lose (PATH-A BLOCKER) `Jun 16-23 build, Jun 24 validate` · risk MED · **review-gated** ★
|
||||
### SL-3 — END-2: Final Siege & Win/Lose (PATH-A BLOCKER) ✅ CODE-COMPLETE + validated 2026-06-13 (fun-gate → SL-5) · **review-gated** ★
|
||||
> **Done 2026-06-13:** `RunPhase` (server-only) + `RunOutcome` (`[GhostField]`) on the CycleDirector ghost; new `GoalReachedSystem` arms the final siege (×live `FinalSiegeMultiplier`); `CyclePhaseSystem` latches Victory (final cleared) / Loss (Core breached) + halts the director; SaveData **v5** (a won/lost run loads finished, no re-arm); HUD terminal banner; `Target` 10→4. 342/342 EditMode green; Play-validated server==client + no ordering cycle. Spec/decisions [[DR-036_END2_Final_Siege_Win_Lose]] · session [[2026-06-13_SL3_END2_Final_Siege_Win_Lose]]. Open: operator fun-gate (climax feel) + SL-5's retry/quit-on-banner overlay + rich pre-final telegraph.
|
||||
- **Goal:** the goal meter means something — at `GoalProgress.Charge >= Target` arm a visibly-larger **final siege**; surviving it latches a **Victory**, breaching the Core during it latches a **Loss**; both fire a clear HUD banner. Spec: [[Path_to_Fun#END-2 — The charge means something: the cap arms a final siege, win or lose]].
|
||||
- **Charge cadence — LOCKED 2026-06-13: siege-survived-only** (goal +1 per survived siege, the existing single-writer; no Aether-deposit writer — "Both" deferred post-slice). [[DR-035_End_Of_Month_Slice_Adoption#Locked fork — END-2 charge cadence (2026-06-13)]].
|
||||
- **Tasks:** add `RunPhase{byte Normal|FinalDefense}` + `RunOutcome{byte InProgress|Victory|Loss}` on the CycleDirector (server-only single-writer, **NOT `[GhostField]`** — avoid the ghost re-hash; derive client-side) · new server-only `GoalReachedSystem` `[UpdateAfter(CyclePhaseSystem)]`: on the `Charge>=Target` edge (guarded `RunPhase==Normal` → exactly-once) **clamp `Charge`**, arm the final siege via the existing `ThreatState.PendingSiegeSize` (×`FinalSiegeMultiplier`), set `FinalDefense` · in `CyclePhaseSystem` (keep it the **sole** `WaveState`/`Phase` writer — no second writer, DR-017 cycle hazard): final-`DefendCleared`→`Victory`, final-overrun→`Loss` · add live `FinalSiegeMultiplier` (~2–3×) to `TuningConfig` · client-only HUD victory/loss banner reusing END-1's `OverrunTick` edge-detect pattern · **run the adversarial design review BEFORE coding** (netcode/determinism/single-writer) per [[validate-netcode-design-before-coding]] · 4 EditMode tests (arms once, Victory edge, Loss edge, Charge clamp).
|
||||
|
||||
Reference in New Issue
Block a user