8.3 KiB
8.3 KiB
Ghostlight Implementation Plan
Near-Term Sequence
-
Freeze the first canonical state model. In progress.
- Define the latent variable families.
- Define first-class dimensions, including volatility, attachment-seeking, and distance-seeking.
- Define canonical state versus perceived state.
- Keep authoring outputs explainable from the state, not just generated from stylish prompt fog.
- Maintain
schemas/agent-state.schema.json,schemas/agent-state.required-fields.json, and the example fixtures as the first executable contract.
-
Freeze the first event and classifier schema.
- Define event labels.
- Define canonical expression labels.
- Define listener perception labels.
- Define mask or presentation labels.
- Define confidence, uncertainty, and evidence accumulation rules.
-
Build the prompt projection layer for authoring.
- Use
docs/architecture/prompt-projection-contract.mdas the first renderer contract. - Use
docs/architecture/schema-future-mechanisms.mdto keep appraisal, transition, belief, action, conversation, resource, dyad, institution, memory, and embodiment needs visible without prematurely bloating the v0 agent-state schema. - Render scene and dialogue scaffolds from structured state, relevant memories, scene pressure, cultural defaults, and perceived state.
- Keep the prompt renderer a projection surface instead of a second brain.
- Make generated moves inspectable: why this character deflects, confesses, threatens, softens, bargains, or lies.
- Treat this as a debug/training seam for the larger sequential runtime, not as the final product shape.
- Use
-
Build the scene-local sequential dialogue loop. New target.
- Use
docs/architecture/sequential-agent-runtime.mdas the first runtime contract. - Keep the product target narrow: procedural interactive dialogue trees for games first, then scene-local character action with consequence propagation, then longer procedural storyline generation later.
- Do not make the training data dialogue-only. Preserve labels and state hooks for open-world contexts, iterated decisions, consumer behavior, scarcity, reputation, faction pressure, and institution decision-making.
- Build local awareness from scene state, agent state, relationships, memories, resources, affordances, and known constraints.
- Keep action primitives concrete: speech, silence, movement, gesture, object use, object transfer, object blocking, resource spending, waiting, and attack. Treat ask/refuse/offer/reveal/conceal/request as intended communicative functions, not separate reality-mutating tools.
- Preserve the gap between actor intent and listener interpretation; a listener is free to misread what the actor thought they were doing.
- Treat generated action as an event proposal, not direct truth mutation.
- Resolve the event against world state and mutation authority.
- Automate only mechanical legality, visibility, world/resource/object deltas, and event append in the first prototype.
- Keep fuzzy updates manual at first: appraisals, relationship movement, belief changes, memory writes, intent classification, misreads, and activation deltas. Save those reviewed decisions as future classifier and appraiser training data.
- Keep author control at stage-setting and high-level constraints; do not require the author to script every beat.
- Emit game-useful artifacts: scene transcript, candidate player choices, NPC response branches, state/memory/social-perception deltas, and unresolved hooks.
- Keep out of implementation scope for now: world-scale simulation loops, economy simulation loops, city-scale scheduling, autonomous offscreen factions as full actors, and long-horizon plot invention without author scaffolding.
- Still record why agents buy, refuse, trade, hoard, comply, defect, conceal, punish, or help when those decisions appear in scenes; those reviewed decisions are seed data for later consumer-behavior and faction models.
- First prototype: rerun one Cold Wake story-lab beat through a deterministic local-awareness/projection-control renderer, then apply one conservative state mutation and validate the resulting fixture.
- Use
-
Build the projection distillation loop. Started.
- Use
docs/architecture/projection-distillation-plan.mdas the teacher to student roadmap. - Use
docs/architecture/aetheria-lore-grounding-architecture.mdto keep Aetheria grounded training separate from procedural Elysium branch generation. - Maintain
schemas/projection-example.schema.json,examples/projections/, andtools/validate_projection_examples.pyas the first reviewed artifact seam. - Use authored historical Aetheria flashpoints, not malleable Elysium gameplay outcomes, as the first grounded lore-training corpus.
- Maintain
schemas/lore-grounding-digest.schema.json,examples/lore-grounding/, andtools/validate_lore_grounding.pyas the cultural and factional pressure seam for grounded fixtures. - Use
examples/lore-grounding/cold-wake-panic.ganymede-corridor.jsonas the first draft historical grounding digest. - Build the first grounded projection fixture from one specific Cold Wake room rather than from the whole crisis at once.
- Use
docs/experiments/cold-wake-story-lab.mdandexamples/agent-state.cold-wake-story-lab.jsonas the first story-shaped writing lab. - Treat projection outputs as response turns, not dialogue-only turns: characters may speak, act, withdraw, stay silent, use violence, or combine speech and action when state and scene pressure justify it.
- Keep failed and accepted Qwen captures together. The Maer/Veyr v1 and v2 outputs are useful failed examples; v3 is the first accepted output that preserves unresolved claimant status while allowing controlled physical action.
- Treat repeated generation failures as projection architecture signals, not only prompt wording problems. Projection examples now include controls for frame ownership, authority boundaries, object custody, required semantics, and forbidden resolutions.
- Keep Qwen captures as reviewed receipts.
tools/validate_qwen_captures.pyis part ofnpm run schema:validateso unreviewed captures do not quietly become training data. - Use
experiments/cold-wake-story-lab/the-narrowest-possible-margin.mdas the first end-to-end story artifact assembled from accepted response captures plus authored connective narration. - Use a frontier teacher model to produce reviewed projection artifacts from structured state and lore grounding digests.
- Save accepted and rejected projection examples as supervised data.
- Train or adapt a smaller student projector only after the artifact schema, input slicer, and evaluator are stable.
- Use
-
Build the first drama-scaffolding loop.
- memory updates
- relationship updates
- goal pressure
- situational activation
- cultural and institutional pressure
- conflict beats derived from incompatible goals and values
-
Build the first Aetheria authoring consumer.
- use the Call of the Void slice described in
AetheriaLoreas the first concrete content-generation context - treat Call of the Void and other Elysium gameplay-era fixtures as procedural branch material unless specific outcomes are explicitly promoted
- support dialogue scaffolding and procedural drama for narrated stories across the Aetheria timeline
- do not treat Cold Wake as the implementation target unless explicitly revived later; it is currently training feedstock
- use the Call of the Void slice described in
Discipline
- Do not start with an MMO and call it ambition.
- Do not train a classifier before the label schema is stable enough to deserve the trouble.
- Do not let prompt-writing outrun the structured state model.
- Do not fine-tune a projector before the projection artifact schema, input slicer, and evaluator have stopped sliding around.
- Do not let elegant theory notes multiply faster than implementation seams.
- Do not accidentally rebuild a game slice when the requested consumer is an authoring and story-generation organ.