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

@ -623,10 +623,21 @@ acdream operates at **two altitudes** above the daily commit:
section). Phase-level index. This is where you orient when you know
the milestone and need the next concrete sub-phase.
**Currently working toward: M1 — Walkable + clickable world.** L.2
collision + B.4 interaction. Demo target: walk through Holtburg without
getting stuck, open the inn door, click an NPC, pick up an item.
Estimated 46 weeks from 2026-05-12.
**M1 landed 2026-05-16** via Phase B.6 (`d640ed7`). L.2 collision +
B.4 interaction + B.5 pickup + B.6 server-driven auto-walk all
shipped. The four demo targets work end-to-end: walk Holtburg, open
inn door, click NPC, pick up item. Freeze list active — M1's phases
are off-limits until M7 polish. Writeup at top of M1 block in
`docs/plans/2026-05-12-milestones.md`.
**Currently working toward: M2 — "Kill a drudge."** Equip a sword,
walk to a drudge, swing, see damage in chat, watch the swing
animation, drudge dies and drops loot, pick up the loot, open
inventory and see it. Phases to ship: F.2 (Inventory panel), F.3
(Combat math + damage flow), F.5a (visible-at-login dev panels —
Attributes / Skills / Equipped / Inventory list, minimal ImGui),
L.1c (combat animation wiring), L.1b (command router prereq).
~610 weeks from 2026-05-16.
**Work-order autonomy — the meta-rule.** You decide what to work on
next, always. **The user does NOT pick between phases, milestones, or
@ -660,14 +671,14 @@ four below actually work.
explicitly post-M7. The freeze list per milestone lives in the
milestones doc.
3. **Each milestone hit gets a recorded demo video.** When M1 lands,
record ~30 seconds of the demo scenario, drop it at
`docs/milestones/M1-walkable-clickable.mp4`, and pin a still + a
one-paragraph writeup at the top of `2026-05-12-milestones.md`. The
freeze list updates. The "currently working toward" line in this
CLAUDE.md updates to M2. **Crossing a milestone is a real event with
an artifact** — that's the morale instrument. Phases ship; milestones
land.
3. **Crossing a milestone is a textual event, not a video event.**
When a milestone's demo scenario is functionally complete, update
`2026-05-12-milestones.md` with a one-paragraph writeup describing
what works end-to-end, flip the freeze list, and update the
"currently working toward" line in this CLAUDE.md to the next
milestone. Do NOT ask the user to record a demo video — they find
it pointless. The milestones doc + the CLAUDE.md flip ARE the
milestone artifact. Phases ship; milestones land.
4. **State both altitudes at session start.** First action of any
session: "Currently working toward M1 — Walkable + clickable world.

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.