Skip to content

AutoStory design: checkpoints as data (event model) - #78

Closed
dayfine wants to merge 4 commits into
mainfrom
design/autostory-event-model
Closed

dayfine wants to merge 4 commits into
mainfrom
design/autostory-event-model

Conversation

@dayfine

@dayfine dayfine commented Oct 30, 2026

Copy link
Copy Markdown
Owner

Base: main; independent, so the diff shows only this change.

Our AutoStory checkpoints keep failing the same three ways on hardware: positions drift with nothing confirming them, NPC talks are assumed, and dialogues end by button count. This adds a design doc that makes each checkpoint a list of events with a skip-if/precondition, an action, an observable expected effect and named recoveries, with anchors to confirm the pose, approach rules for talks and dialogues that end on a stable overworld; it also surveys prior art (BT.CPP pre/post-conditions, Honorbuddy profiles, Nav2 recoveries, Playwright waits, upstream SV AutoStory). Five worked checkpoints (Mom, the Route 201 Poké Mart lady, Roark, Route 202 trainers, FRLG Mewtwo) are in docs/design/autostory-examples/ as JSON. Docs only, no code.

🤖 Generated with Claude Code

https://claude.ai/code/session_01AKYzhrMnPK61XHWEch4a6E

Prior art, an event model (pre/post-conditions, anchors, talk approach
rules, dialogues ended by the screen, interrupts, resume by re-check),
and five worked checkpoints as JSON.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01AKYzhrMnPK61XHWEch4a6E
dayfine added a commit that referenced this pull request Nov 1, 2026
Section 8 keeps the step rules from the event model (anchors, talks,
dialogs that end on a screen, named recoveries, resume as a re-check)
and the RNG hand-off rules from the demo plan. Section 5 gets the
movement table and the SwSh target; section 7 the planner's missing
search limits; section 6c links the FRLG events after Brock (#130).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01AKYzhrMnPK61XHWEch4a6E
@dayfine

dayfine commented Nov 1, 2026

Copy link
Copy Markdown
Owner Author

Folded into #133: section 8.1 of AutoStory-Architecture.md keeps the event model's step rules; the story tables replaced the JSON checkpoints.

@dayfine dayfine closed this Nov 1, 2026
dayfine added a commit that referenced this pull request Nov 2, 2026
* Design doc: shared AutoStory run flow, 2D movement, and an FRLG AutoStory

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01AKYzhrMnPK61XHWEch4a6E

* Design doc: lead with problem, situation and proposal; FireRed, solo from a new game

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01AKYzhrMnPK61XHWEch4a6E

* Design doc: full upstream reference for the SwSh draft

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01AKYzhrMnPK61XHWEch4a6E

* Design doc: prior art (junari's FRLG script) and ComputerControl#259

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01AKYzhrMnPK61XHWEch4a6E

* Design doc: PR plan with sizes for reviewers

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01AKYzhrMnPK61XHWEch4a6E

* Design doc: FRLG pilot to Brock first, shared code later

Reorder the plan so the first PRs touch only FRLG files and end in a runnable
pilot (new game -> Boulder Badge in about 10 PRs, first runnable at PR 5),
with an F3 go/no-go gate on checkpoints and Switch hours. The SV/BDSP shared
run flow moves to a later phase. Add a one-page upstream-facing proposal,
standalone review comment drafts for PokemonAutomation#1717
(not posted), and the FRLG authors on main. Drop the agent process section.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01AKYzhrMnPK61XHWEch4a6E

* Design doc: reusable pieces in their final homes, no copy-then-move

The plan wrote FRLG's run flow and tile path inside the FRLG module and moved
them out in phase D (R0, T4): move-only PRs of our own code. Adding new files
to a shared module changes no one else's code, so they now start in
Pokemon/AutoStory and Pokemon/Navigation. New section 0.1 lists the
game-neutral pieces from SV, BDSP PokemonAutomation#1717, SwSh PokemonAutomation#1207, BBQ and the BDSP lab
work (screen machine, step trace, failure policy, list selection, system
keyboard, Lab Console, run flow, tile path, decision tests) with their
homes; D4 builds the FRLG intro on the screen machine. The proposal says
the same.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01AKYzhrMnPK61XHWEch4a6E

* Design doc: what broke on the console and the rule each break taught

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01AKYzhrMnPK61XHWEch4a6E

* Design doc lessons: drop the Max Lair entry, it is not AutoStory

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01AKYzhrMnPK61XHWEch4a6E

* AutoStory design notes: screen machine, walking, map, planner, executor

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01AKYzhrMnPK61XHWEch4a6E

* AutoStory design: plan on routes, trust town grids only once verified

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01AKYzhrMnPK61XHWEch4a6E

* AutoStory docs: what broke in Butters' 00.04 and 00.05, and what replaced it

Lessons: a table of his recorded route against what console B showed
(timed legs, slot-3 Ember, no healing, pixel-matched Potion, the Poke
Mart lady and Barry missed by a tile), our own mistakes in this round
(an optional step kept for hours, claims not checked on screen, map
errors, untiled movement, a fixed OCR cut), and stepping through new
ground before automating it. Design: the executor, move choice,
training and Potion healing as built, and the Lab Console stepping.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01AKYzhrMnPK61XHWEch4a6E

* AutoStory lessons: link our commit for each fix; the Pokétch president's talk

Each row of the Butters comparison and each of our own mistakes now
links the fork commit that fixed it, on bdsp/new-game-intro-v2. Adds
what stepping through Phase 23 showed: A re-opens the president's talk,
B advances it.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01AKYzhrMnPK61XHWEch4a6E

* AutoStory lessons: 00.05 stepped through to the PC; read positions from the ground; towns need grids too

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01AKYzhrMnPK61XHWEch4a6E

* AutoStory: segment 01 plan (story, trainers, maps, work order); segment 00 leftovers scheduled

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01AKYzhrMnPK61XHWEch4a6E

* AutoStory lessons: segment 01 runs r81 to r90, one rule per failure

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01AKYzhrMnPK61XHWEch4a6E

* AutoStory lessons §10: Oreburgh Mine, Roark's gym, Route 204 to Floaroma; Butters' segment 01

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01AKYzhrMnPK61XHWEch4a6E

* AutoStory: shared navigation core and the FRLG Brock / BDSP Floaroma MVP branches

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01AKYzhrMnPK61XHWEch4a6E

* AutoStory: end the FRLG run with Mew, through the Sevii Ruby and Sapphire

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01AKYzhrMnPK61XHWEch4a6E

* AutoStory navigation stack: fork PR numbers

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01AKYzhrMnPK61XHWEch4a6E

* AutoStory: queue the BDSP MVP follow-ups (clock pin, shared walker, resources)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01AKYzhrMnPK61XHWEch4a6E

* AutoStory lessons §11: Floaroma MVP runs r107 to r109 and the lab around them

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01AKYzhrMnPK61XHWEch4a6E

* AutoStory lessons: split into Part 1 for Butters (PokemonAutomation#1717) and Part 2 for us

Sections are renumbered; cross-references updated. Butters' segment 01
table and the two PokemonAutomation#1717 failures from r108 get their own sections in Part 1.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01AKYzhrMnPK61XHWEch4a6E

* AutoStory docs: mark the segment plans done or superseded, the PokemonAutomation#1717 drafts stale; pose status

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01AKYzhrMnPK61XHWEch4a6E

* Design: AutoStory lessons from 01.03/01.04 (D-pad tiles, clip then offset) and the MVP plan

Section 14 of the lessons: measured movement (D-pad taps are whole tiles,
stick holds drift), the clip-to-wall then D-pad offset route model, what
the screen tells, and the process mistakes. AutoStory-MVP-Plan.md: run 1
stays on fork #68; the compact series stacked on #66 follows it.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01AKYzhrMnPK61XHWEch4a6E

* Design: AutoStory lessons 15 (Route 204, maps from the decomp) and the plan's next version

Lessons from 01.06 to 01.10 (r216 to r246): Bulbapedia DP images have 12 px
rows and cliffs painted taller than their tiles; the Platinum decomp gives
the real tiles and NPCs; a wandering NPC is not a wall; the planner's
cheapest legs are not a human's line; time-counted legs break when blocked;
a tap's screen change separates steps (21 to 50) from bumps (4 to 13); a
stale build ran twice. The MVP plan gets a "Maps from the game's data" track
(decoder, re-derivation, annotation, probes, PokemonNavigation) and the
planner/walker goals for the next version.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01AKYzhrMnPK61XHWEch4a6E

* Design: take in the decomp review and the route-impact check

The review's points on events, scripts, interaction identities and warps
go into the plan; the critique: terrain first, pokediamond before
pokeplatinum (DP's own map and event data exist), the walker's observation
is a separate problem, and the start is the maps 01.06 to 01.10 walk on.
The offline route-impact check: wall legs absorb the row differences, two
open legs and all of Jubilife's walks change, and the short grids pass
because vertical timing compensates by the same 4/3.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01AKYzhrMnPK61XHWEch4a6E

* Design: PR chain review, what moves to the core, what stays per game, FRLG and PokemonNavigation

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01AKYzhrMnPK61XHWEch4a6E

* Design: a 160 ms D-pad tap turns and steps (r248a)

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01AKYzhrMnPK61XHWEch4a6E

* AutoStory lessons: Route 204 after r246 (turn taps, bumps, until-stopped, banner end, routes as data, Diamond decomp)

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01AKYzhrMnPK61XHWEch4a6E

* Design: AutoStory architecture after the FRLG proof of concept

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01AKYzhrMnPK61XHWEch4a6E

* Architecture: the game simulator (encounters, Repel, battles, EXP, whiteout), parallel to the MVP

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01AKYzhrMnPK61XHWEch4a6E

* Architecture: SwSh/LA, story engine under Pokemon/AutoStory, reuse of RNG and Elite Four programs, milestones after the MVPs

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01AKYzhrMnPK61XHWEch4a6E

* Architecture: room for error - bounded safe inputs, then confirm the end state

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01AKYzhrMnPK61XHWEch4a6E

* Architecture: fold in the event model (#78) and the FRLG demo plan (#56)

Section 8 keeps the step rules from the event model (anchors, talks,
dialogs that end on a screen, named recoveries, resume as a re-check)
and the RNG hand-off rules from the demo plan. Section 5 gets the
movement table and the SwSh target; section 7 the planner's missing
search limits; section 6c links the FRLG events after Brock (#130).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01AKYzhrMnPK61XHWEch4a6E

* Architecture: generated maps ship in Resources (Packages), test maps stay compiled in

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01AKYzhrMnPK61XHWEch4a6E

---------

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant