milestone: M1 landed; flip "currently working toward" to M2

M1 "Walkable + clickable world" landed 2026-05-16 with Phase B.6
(d640ed7). All four demo targets work end-to-end retail-faithfully:
walk Holtburg, open inn door, click NPC, pick up item.

Freeze list applied: L.2 (collision), B.4 (interaction outbound),
B.5 (pickup) — these phases are off-limits until M7 polish unless
something is actively broken.

CLAUDE.md "currently working toward" advanced to M2 — "Kill a drudge."
Phases to ship: F.2 (Inventory panel), F.3 (Combat math + damage),
F.5a (dev panels Attributes/Skills/Equipped/Inventory), L.1c
(combat animation wiring), L.1b (command router prereq).

Also removes the "record a demo video" requirement from milestone
discipline (CLAUDE.md rule #3 + milestones doc operating rule #3) —
user finds video recording pointless. Milestones are now textual
events: writeup + freeze flip + CLAUDE.md "currently working toward"
update. Saved as feedback memory.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
Erik 2026-05-16 17:29:21 +02:00
parent d640ed74e1
commit fb92122731
2 changed files with 65 additions and 31 deletions

View file

@ -17,13 +17,14 @@ feeling because no single phase ship feels like a real milestone.
This document sits **one altitude above** the roadmap. Each milestone is:
- **~610 weeks of focused work** (not a single phase, not a whole year).
- Defined by a **concrete playable scenario** that gets recorded as a demo
video when the milestone hits.
- Defined by a **concrete playable scenario** — when the scenario works
end-to-end, the milestone lands.
- A **scope-freeze event**: when a milestone lands, the phases it covers go
off-limits until v1.0's final polish pass (M7).
Crossing a milestone is a real event with an artifact. Phases ship; milestones
**land**.
Crossing a milestone is a textual event — milestones doc gets the writeup,
the freeze list flips, CLAUDE.md's "currently working toward" line advances.
Phases ship; milestones **land**.
---
@ -42,12 +43,12 @@ Crossing a milestone is a real event with an artifact. Phases ship; milestones
shipped phases keep silently consuming attention.
3. **The milestone log is the morale instrument.** When a milestone hits:
- Record a ~30-second demo video showing the scenario end-to-end.
- Drop it in `docs/milestones/MN-<slug>.mp4` (create the directory on
first hit).
- Pin a still frame + one-paragraph writeup at the top of this doc.
- Pin a one-paragraph writeup at the top of this doc describing what
works end-to-end (any caveats or known regressions are explicit).
- Update the freeze list. Update CLAUDE.md's "currently working toward"
line to the next milestone.
- NO demo videos. User explicitly removed that requirement 2026-05-16
("pointless of recording videos, for what purpose?").
4. **State both altitudes at session start.** "Currently working toward M1.
Current phase: L.2 collision. Next concrete step: L.2d slice 1 spec." This
@ -94,7 +95,28 @@ missing is the gameplay loop on top.
---
### M1 — "Walkable + clickable world" — 🟡 CURRENT, all 4 demo targets met (pending recorded video)
### M1 — "Walkable + clickable world" — ✅ LANDED 2026-05-16
**Landing writeup (2026-05-16, after Phase B.6 ship `d640ed7`):**
All four M1 demo targets work end-to-end. You can log into `+Acdream`
at Holtburg, walk freely without getting stuck (L.2 collision is
retail-faithful through the doorway). Click any inn door at any
range, press R, the character runs (or walks if close) toward it
with the correct animation cycle including the leg-shuffle turn-first
phase, opens the door via ACE's server-side `MoveToChain` callback.
Same for clicking an NPC — runs over, body rotates to face, dialogue
fires from ACE without any client-side retry. Pickup items at any
range with F or R; spell components, food, money, weapons all work;
signs and other `BF_STUCK` scenery correctly block at the gate.
AP cadence matches retail (0 Hz idle, ~1 Hz smooth motion, per-event
on cell/plane changes). Run/walk threshold matches retail observation
(1m of distance left to walk). The earlier ladder of workarounds —
client-side retry, per-frame chatty AP, MoveToState suppression
grace period — all deleted via the Phase B.6 architectural refactor
(`d640ed7`). M1's demo path is now bit-for-bit retail-faithful end
to end.
**Demo scenario:** Walk through Holtburg without getting stuck on the inn
doorway. Open the inn door. Click an NPC and see selection feedback. Pick
@ -109,21 +131,22 @@ up an item from the ground.
| 3 | Click an NPC and see selection feedback | ✅ met | B.4b chain + chat handlers; verified 2026-05-14 (Tirenia + Royal Guard double-click → NPC dialogue in chat panel) |
| 4 | Pick up an item from the ground | ✅ met (close-range path) | B.5 + post-B.5 `PickupEvent (0xF74A)` fix shipped 2026-05-14; visual-verified at Holtburg; creature-pickup guard added in `a01ebd5` |
**What's left to formally land M1:**
- Record ~30s demo video of the four-target scenario end-to-end.
- Drop at `docs/milestones/M1-walkable-clickable.mp4`.
- Pin still + one-paragraph writeup at the top of this doc.
- Flip the freeze list. Update `CLAUDE.md`'s "currently working toward"
line to M2.
**Landing artifacts done 2026-05-16:**
- ✅ Landing writeup pinned at top of this milestone block (above the table).
- ✅ Freeze list applied (see below).
- ✅ `CLAUDE.md`'s "currently working toward" advanced to M2.
**Known polish items deferred (do not block M1 recording, addressable post-M1):**
**Known polish items deferred to post-M7 (do not gate M1 landing):**
- **#61** — AnimationSequencer link→cycle frame-0 flash on door swing. LOW.
- **#62** — PARTSDIAG null-guard. Latent, not reachable today.
- **#63** — Server-initiated `MoveToObject` auto-walk not honored (blocks
double-click pickup + out-of-range F-pickup; close-range still works).
MEDIUM. Candidate Phase B.6 — holtburger has the reference port.
- **#63** — ✅ CLOSED by Phase B.6 (`d640ed7`). Server-initiated
`MoveToObject` is now honored end-to-end; ACE's `MoveToChain`
callback fires server-side on arrival.
- **#64** — Local-player pickup animation does not render (retail
observers see it correctly). LOW.
- **#69, #74, #75** — all closed by Phase B.6 (`d640ed7`). Turn-first
animation, retail-narrow AP cadence, body-direct auto-walk
architecture.
**Phases that shipped to clear M1:**
- **L.2 (a + d + g sub-lanes)** — Movement & Collision Conformance.