docs(obsidian): process inbox notes
This commit is contained in:
@@ -6,6 +6,34 @@ These notes capture the design state from the Ariadne pipeline and Ren'Py AST di
|
||||
|
||||
Do not assume the implementation described here still exists in the Ariadne worktree. The pull request work was considered exploratory and should be dropped or redone cleanly.
|
||||
|
||||
## Product goals
|
||||
|
||||
Ariadne analyzes a local Ren'Py game install.
|
||||
It builds a source graph and plans routes through target nodes.
|
||||
|
||||
Goal order:
|
||||
|
||||
1. Unlock all Steam achievements.
|
||||
2. Maximize Season 3 dialogue coverage.
|
||||
3. Extend dialogue coverage to Seasons 1 and 2.
|
||||
|
||||
Achievement unlocks appear in source as reachable calls.
|
||||
The first planning target is each achievement grant node.
|
||||
|
||||
Season 3 exposes an in-game percentage for seen dialogue.
|
||||
That percentage gives a validation signal for Ariadne's coverage model.
|
||||
|
||||
The first phase ignores player state.
|
||||
It computes routes from source alone.
|
||||
A later phase reads save files or persistent data.
|
||||
It removes completed targets and plans remaining coverage.
|
||||
|
||||
## Privacy constraint
|
||||
|
||||
Do not write the target game's title in committed material.
|
||||
Use `target game` or `Ren'Py game` in notes, code, commits, and pull requests.
|
||||
Keep title-specific paths and names in ignored local data only.
|
||||
|
||||
## Core state model
|
||||
|
||||
Ariadne's core state should be graph-first. The current agreed shape is:
|
||||
@@ -274,6 +302,30 @@ Treat that dump as a development surface until Ariadne documents a stable format
|
||||
|
||||
Route planning is out of scope for the first importer slice.
|
||||
|
||||
## Pipeline stage boundary
|
||||
|
||||
A library stage is a pure state transformation.
|
||||
It receives committed `State` and stage-specific inputs.
|
||||
It returns a new `State` with pending operations.
|
||||
|
||||
A CLI stage is a user-facing execution target.
|
||||
It owns filesystem discovery, file reads, and stage orchestration.
|
||||
It can deserialize Clew JSON by calling Ariadne library helpers.
|
||||
|
||||
`run_parse` receives already-deserialized Clew documents.
|
||||
It does not discover files, read files, or deserialize JSON.
|
||||
|
||||
The runner applies pending operations after each library stage.
|
||||
The next stage receives committed state with no pending operations.
|
||||
|
||||
`apply_pending` returns a new `State`.
|
||||
It applies the pending batch atomically.
|
||||
Invalid pending operations do not produce partial committed state.
|
||||
|
||||
The first implementation does not resume from serialized stage artifacts.
|
||||
It also avoids a stage trait, shared context object, and stage invocation enum.
|
||||
Give each stage function only the inputs it needs.
|
||||
|
||||
## Preparation output direction
|
||||
|
||||
Clew produces the preparation output for Ariadne.
|
||||
|
||||
Reference in New Issue
Block a user