diff --git a/docs/architecture/ink-branching-scenes.md b/docs/architecture/ink-branching-scenes.md index b36efc7..06cdc18 100644 --- a/docs/architecture/ink-branching-scenes.md +++ b/docs/architecture/ink-branching-scenes.md @@ -172,6 +172,66 @@ not a full story by itself. A complete interactive fixture needs an opening pressure, at least one consequential branch before the clinic, and a resolution that visibly reflects earlier choices. +## Branch And Fold + +Do not model every choice as an indefinitely isolated authored subtree. Strict +worldline splitting creates a combinatoric writing burden after a handful of +choices, which interactive fiction authors have been discovering the painful +way since approximately the first time someone let a player open a second door. + +Ghostlight should branch locally and fold structurally: + +```text +choice + -> consequence packet + -> normalized state deltas + -> shared later scene reads compact variables + -> conditional options, callbacks, imagery, and relationship texture + -> major route split only when convergence would be false +``` + +Most branches should converge onto shared later scenes. The consequences should +survive as compact variables, bands, and flags rather than bespoke scenes for +every exact history. + +Good consequence state looks like this: + +- `sella_trust_maer: wary` +- `ledger_debt_level: high` +- `clinic_staff_exhaustion: true` +- `veyr_evidence_disclosed: partial` +- `isdra_reads_maer_as: procedurally_dangerous` +- `route_authority_pressure: escalated` + +Those variables should alter later scenes by changing available options, +relationship posture, timing pressure, resource costs, callback prose, visual +state modifiers, and participant appraisals. They should not usually require a +fully separate scene route. + +Use coarse bands instead of fake precision. `blocked`, `wary`, `conditional`, +`cooperative`, and `personally_invested` are more useful than pretending the +story can meaningfully maintain 37 decimals of trust. The same applies to heat +debt, legal exposure, institutional pressure, staff exhaustion, reputation, and +social suspicion. + +Major route splits are allowed when a consequence changes the playable world so +much that folding would lie. Examples: + +- a character dies, leaves, defects, or becomes unavailable +- a location is destroyed, locked, opened, or politically inaccessible +- a faction becomes hostile, allied, exposed, or legally empowered +- a key object is destroyed, stolen, transferred, or transformed +- the protagonist loses or gains institutional authority +- a quest route, rescue path, market, technology, or branch-local future opens + or closes entirely + +The coordinator owns the fold decision for now. Every material branch should +record whether it folds into an existing later scene, opens a conditional +variant inside that scene, or creates a justified route split. If a route split +is created, the artifact should name the reason and the expected future writing +debt. Trees are cheap to grow and expensive to prune. The machine should not +act surprised by botany. + ## Scene Imagery Ghostlight scenes are also website content. A complete fixture should emit diff --git a/notes/ghostlight-implementation-plan.md b/notes/ghostlight-implementation-plan.md index 6a2b5ec..20fc736 100644 --- a/notes/ghostlight-implementation-plan.md +++ b/notes/ghostlight-implementation-plan.md @@ -35,6 +35,7 @@ sandboxed training-data pipeline for branching scenes and state consequences. - Completed story-run setup beats: Maer accepted Sella's bounded diagnostic-contact conditions, extended live ledger exposure, opened the preservation-only diagnostic acoustic channel, and Sella marked decon route Three so the bounded diagnostic sleeve cycles live. - Next story-run beat: design and generate an interactive-fiction-shaped Cold Wake arc with an opening, branch points, cross-scene consequences, climax, and resolution. Coordinator glue prose is training signal for the future coordinator/story-runtime model. - Interactive-fiction correction: a full-story pass is not just a linear chain of responder receipts. It needs a beginning-to-ending narrative spine, branch points, and cross-scene consequence carryover so decisions visibly matter later. Responder artifacts should be generated at branch/action moments, while coordinator artifacts track branch flags, relationship deltas, resource costs, unresolved hooks, and later scene consequences. + - Branch-and-fold correction: do not let every choice create an isolated subtree. Normalize consequences into compact state bands and flags, fold most branches back into shared later scenes, and reserve major route splits for consequences that change the playable world enough that convergence would lie. - Website-content correction: each complete scene should include an art-direction block with establishing shot, light/color, bodies/interfaces, material evidence, branch-visible marks, one durable base image prompt, and additive branch/state modification prompts. Visual continuity is part of consequence carryover, not decorative garnish applied after the story escapes containment. - The Cold Wake v0/v1 fragments are diagnostic seam tests around the clinic climax, not a complete story arc. The next accepted story run should restart from the opening tribunal/route pressure, pass through provenance and clinic contact, and carry consequences into a resolution. diff --git a/state/evidence.jsonl b/state/evidence.jsonl index a02b9d6..b76effd 100644 --- a/state/evidence.jsonl +++ b/state/evidence.jsonl @@ -28,3 +28,4 @@ {"ts": "2026-05-02", "type": "design", "status": "needs_restart", "note": "Accepted full-story pass must be interactive-fiction-shaped, not a linear clinic-fragment receipt chain. Next Cold Wake run should restart from opening pressure with branch points and cross-scene consequence carryover."} {"ts": "2026-05-02T16:55:59+00:00", "type": "design", "status": "ok", "note": "Complete interactive-fiction fixtures should emit scene art direction and image prompt seeds; visual continuity is part of cross-scene consequence carryover for website imagery and branch legibility."} {"ts": "2026-05-02T16:58:51+00:00", "type": "design", "status": "ok", "note": "Scene imagery should use a durable base image prompt plus additive branch/state modification prompts, so visual consequences can be edited onto a stable scene instead of regenerated from scratch."} +{"ts": "2026-05-02T17:06:00+00:00", "type": "design", "status": "ok", "note": "Documented branch-and-fold IF process: local branches should normalize consequences into compact state variables and fold into shared later scenes by default; major route splits are reserved for world-changing divergence that would make convergence false."} diff --git a/state/map.yaml b/state/map.yaml index 95f67da..224fdc5 100644 --- a/state/map.yaml +++ b/state/map.yaml @@ -39,6 +39,7 @@ hard_boundaries: - Aetheria generation is source-first; check lore for factions, bodies, locations, institutions, and constraints before projection. - Elysium futures are branch-local canon indexed by lineage, not single-history Sol facts. - Technology exploration must emit game-usable item, component, assembly, supply-chain, compatibility, and provenance data mapped toward Aetheria-Economy. + - Interactive-fiction fixtures should branch and fold: normalize most consequences into compact state variables and shared-scene conditionals, reserving isolated route splits for major world-changing divergence. - Complete interactive-fiction fixtures must emit visual art direction for website imagery, with one durable base image prompt per scene and additive modification prompts for branch-visible consequences and scene-state changes. - Archived local-model prototype runners are receipts and plumbing tests, not the gold-data path. @@ -154,4 +155,4 @@ data_flow: current_status: summary: Cold Wake v0/v1 fragments exposed two design corrections. First, v0 had over-procedural speech and is diagnostic, not gold. Second, v1 starts near the clinic climax and is not a full story arc. The next accepted pass must be interactive-fiction-shaped: opening pressure, branch points, cross-scene consequence carryover, climax, and resolution. - next_action: Restart the accepted Cold Wake story run as an interactive fiction fixture from the opening tribunal/route pressure, not from the clinic climax. Design a beginning-to-ending spine with meaningful branch points whose consequences carry across scenes into relationship state, resource costs, available options, final resolution, and scene imagery. Use responder artifacts only at material branch/action beats, with compressed in-character speech and procedural detail outside dialogue. + next_action: Restart the accepted Cold Wake story run as an interactive fiction fixture from the opening tribunal/route pressure, not from the clinic climax. Design a beginning-to-ending spine with meaningful branch points whose consequences carry across scenes through branch-and-fold state variables, relationship state, resource costs, available options, final resolution, and scene imagery. Use responder artifacts only at material branch/action beats, with compressed in-character speech and procedural detail outside dialogue.