docs: add ariadne planning notes

This commit was merged in pull request #26.
This commit is contained in:
2026-09-08 15:38:36 -04:00
parent c03becfbb9
commit af244d1064
4 changed files with 388 additions and 10 deletions

View File

@@ -0,0 +1,68 @@
# Ariadne project goals
Ariadne analyzes a local Ren'Py game install.
It extracts source, builds a source graph, and plans routes through target nodes.
## Privacy constraint
Do not write the target game's title in the monorepo.
Use `target game` or `Ren'Py game` in committed notes, code, and pull requests.
Keep title-specific paths and names in ignored local data only.
## Goal order
1. Unlock all Steam achievements.
2. Maximize Season 3 dialogue coverage.
3. Extend the same coverage work to Seasons 1 and 2.
## Steam achievements
Achievement unlocks appear in source as reachable calls.
The first planning target is every achievement grant node.
Ariadne needs to find each grant call and compute route conditions that reach it.
This is source-graph coverage over sparse semantic targets.
## Season 3 dialogue coverage
Season 3 exposes an in-game percentage for seen dialogue.
The stat computes Ren'Py dialogue-block coverage from persistent seen data.
For this game, dialogue blocks map mainly to unique `Say` statements.
Ariadne should target Season 3 `Say` nodes as coverage targets.
The in-game percentage gives a validation signal for Ariadne's coverage model.
Season 3 also rewards high coverage inside the game.
## Seasons 1 and 2 coverage
Seasons 1 and 2 lack the same in-game percentage display.
Ariadne can still compute source coverage for their dialogue nodes.
Validation for these seasons will depend on Ariadne's own model.
Persistent seen data can still help later.
## State model phases
The first phase ignores player state.
It asks which routes cover all targets from source alone.
A later phase reads existing player state.
It uses save files or persistent data to remove completed targets.
That phase produces a personalized plan for remaining achievements and dialogue coverage.
## Graph model
The source graph needs typed nodes for labels, jumps, conditions, menus, visual statements, dialogue, and achievement grants.
Menus and conditions require branch edges and merge edges.
Dialogue and visual nodes support route explanation.
Achievement and dialogue nodes become coverage targets.
## Near-term implementation direction
Keep extraction and decompilation generic.
Parse source into typed graph artifacts.
Add achievement grant nodes before broad route planning.
Add Season 3 dialogue nodes as the next coverage target set.