197 lines
9.9 KiB
Markdown
197 lines
9.9 KiB
Markdown
# Ghostlight Current System Map
|
|
|
|
Ghostlight does not have a full runtime yet. The live system is a set of
|
|
validated artifact seams for producing reviewed training data.
|
|
|
|
## Control Flow
|
|
|
|
1. Rehydrate from `state/map.yaml`, `notes/fresh-workspace-handoff.md`, this
|
|
file, and `notes/ghostlight-implementation-plan.md`.
|
|
2. Run `npm run state:status`.
|
|
3. Work one bounded organ.
|
|
4. Validate the seam that matters.
|
|
5. Persist only belief-changing evidence.
|
|
6. Commit and push completed work.
|
|
|
|
## Core Surfaces
|
|
|
|
- `state/map.yaml`: canonical mission, boundaries, live architecture, next action.
|
|
- `state/evidence.jsonl`: distilled belief-changing evidence only.
|
|
- `state/evidence.archive.jsonl`: older evidence preserved for archaeology.
|
|
- `state/corpus-coverage.json`: accepted/planned fixture coverage ledger.
|
|
- `notes/fresh-workspace-handoff.md`: compact re-entry packet.
|
|
- `notes/ghostlight-implementation-plan.md`: near-term implementation sequence.
|
|
- `docs/architecture/`: detailed contracts and rationale.
|
|
|
|
## Active Artifact Pipeline
|
|
|
|
```text
|
|
Aetheria lore/source context
|
|
-> lore grounding digest / source notes
|
|
-> canonical agent and scene state
|
|
-> projected local context
|
|
-> responder packet
|
|
-> sandboxed responder output
|
|
-> review and leakage audit
|
|
-> observable event record
|
|
-> participant-local appraisal receipts
|
|
-> mutation receipt
|
|
-> updated scene/world/social state
|
|
-> sandboxed coordinator continuity and next-beat plan
|
|
-> meta-coordinator review, wiring, and labeled interventions
|
|
-> branch compiler materializes Ink + sidecar + visual plan + compiler notes
|
|
-> IF artifact reviewer audits consequence, fold, and visual continuity
|
|
-> narrative/lore/spatial/visual reviewers audit player-facing quality
|
|
-> accepted fixture / future training corpus + optional illustrated replay collateral
|
|
```
|
|
|
|
Responder packets are one seam, not the whole project. The branching scene path
|
|
also requires coordinator receipts, branch compiler artifacts, and independent
|
|
review before a fixture is accepted.
|
|
|
|
Tone is a live seam. The system should preserve Aetheria's range instead of
|
|
defaulting to dry technical crisis prose: comic warmth, domestic routine,
|
|
ritual memory, weird bureaucracy, noir suspicion, wonder, horror, poetic dread,
|
|
and procedural systems pressure are all valid when source-grounded and
|
|
character-local. Adams/Pratchett-style wit-with-stakes is a useful default
|
|
touchstone for counterbalancing bleakness without dissolving consequence.
|
|
|
|
Visual replay is a presentation seam, not a core social-model training seam.
|
|
Illustrated IF fixtures need click-through sections with stable
|
|
`visual_scene_id` anchors, stable visual character refs for recurring named
|
|
characters, a global style cue when the visual language matters, imagegen-ready
|
|
base prompts, character visibility and stance controls, and branch/state
|
|
modifiers. This data belongs in a separate `.visual.json` artifact referenced
|
|
by the training sidecar, not inside the training annotation itself.
|
|
|
|
Generated images are not geometry authority. They can establish visual mood,
|
|
materials, and concept direction, but multi-angle illustrated IF needs a durable
|
|
`scene_set` source such as a hand-built 3D blockout, procedural scene file, or
|
|
layout asset with named cameras and staging slots. For those scenes, imagegen is
|
|
the painter/render pass over a camera-specific blockout, not the architect of
|
|
the room.
|
|
|
|
## Important Contracts
|
|
|
|
- Agent state: `schemas/agent-state.schema.json`
|
|
- Projection examples: `schemas/projection-example.schema.json`
|
|
- Lore grounding: `schemas/lore-grounding-digest.schema.json`
|
|
- Projected local context: `schemas/projected-local-context.schema.json`
|
|
- Coordinator artifacts: `schemas/coordinator-artifact.schema.json`
|
|
- Responder packets: `schemas/responder-packet.schema.json`
|
|
- Responder outputs: `schemas/responder-output.schema.json`
|
|
- Event records: `schemas/event-record.schema.json`
|
|
- Participant appraisals: `schemas/participant-appraisal.schema.json`
|
|
- Reviewed mutations: `schemas/reviewed-mutation.schema.json`
|
|
- Scene-loop bundles: `schemas/scene-loop-bundle.schema.json`
|
|
- Ink branch contract: `docs/architecture/ink-branching-scenes.md`
|
|
- Illustrated IF visual pipeline: `docs/architecture/illustrated-if-visual-pipeline.md`
|
|
- Training stages and corpus gates: `docs/architecture/training-plan.md`
|
|
- Corpus coverage ledger: `docs/architecture/corpus-coverage-ledger.md`
|
|
|
|
## Current Live Examples
|
|
|
|
Pallas Species Strikes is the active reference-only story fixture:
|
|
|
|
- `examples/lore-grounding/pallas-species-strikes.awakened-labor.v0.json`
|
|
- `examples/agent-state.pallas-species-strikes.v0.json`
|
|
- `examples/coordinator/pallas-species-strikes.branch-and-fold.v0.json`
|
|
- `examples/ink/pallas-species-strikes.branch-and-fold.v0.ink`
|
|
- `examples/ink/pallas-species-strikes.branch-and-fold.v0.training.json`
|
|
- `examples/visual/pallas-species-strikes.branch-and-fold.v0.visual.json`
|
|
- `experiments/pallas-species-strikes/pallas-species-strikes.branch-and-fold-clean-run.v0.md`
|
|
- `experiments/pallas-species-strikes/pallas-species-strikes.visual-scene-review.v1.json`
|
|
|
|
The fixture is not training-ready data for Ghostlight's model stages. It was
|
|
coordinator-authored without the exact projected-context, sandboxed responder,
|
|
appraisal, mutation, relationship-update, and true branch-compiler receipts
|
|
those stages require. Keep it as a reference for story shape, grounding,
|
|
branch-and-fold presentation, visual planning, and future fixture expectations.
|
|
|
|
`pallas-training-loop-v0` is the first separate training-shaped derivative. It
|
|
rebuilds only the Kappa threshold beat through actual receipts:
|
|
|
|
- scene digest and initial state under `examples/training-loops/pallas-training-loop-v0/`
|
|
- projected contexts under `examples/projected-contexts/`
|
|
- responder packets under `examples/responder-packets/`
|
|
- raw no-fork subagent captures under `experiments/responder-packets/`
|
|
- event, appraisal, mutation, review, and bundle receipts under `examples/training-loops/pallas-training-loop-v0/`
|
|
- clean readable transcript under `experiments/pallas-training-loop-v0/`
|
|
|
|
It is training-shaped for projector, responder, event resolver, participant
|
|
appraiser, mutator, relationship/perception updater, and coordinator/story
|
|
runtime. It is not branch compiler, IF reviewer, visual, or accepted full-fixture
|
|
coverage data.
|
|
|
|
`lucent-hostage-feed-v0` is the current open-ended training-loop draft. It
|
|
tests the same receipt-chain organs in a less reference-bound scene: a Lucent
|
|
Media hostage-feed negotiation inside the media-eye counterweight of a tethered
|
|
station staring down at a metropolis bubble.
|
|
|
|
The Lucent bundle includes:
|
|
|
|
- scene digest, initial state, and branch surface under `examples/training-loops/lucent-hostage-feed-v0/`
|
|
- projected contexts under `examples/projected-contexts/`
|
|
- responder packets under `examples/responder-packets/`
|
|
- raw no-fork subagent captures under `experiments/responder-packets/`
|
|
- event, appraisal, mutation, review, and bundle receipts under `examples/training-loops/lucent-hostage-feed-v0/`
|
|
- clean readable transcript under `experiments/lucent-hostage-feed-v0/`
|
|
- fixture materializer at `scripts/materialize_lucent_loop.py`
|
|
|
|
Only the fifteen post-restart turns from `turn-06` through `turn-20` are counted
|
|
as training-clean responder receipts. The earlier exploratory opening turns are
|
|
setup/rehearsal context. The loop demonstrates state carryover: feed evidence
|
|
externalization creates breathing room, breathing room creates a bench-edge
|
|
substitution, the substitution enables a process-note admission, the admission
|
|
enables direct hostage leverage to end, and release folds into safe-line
|
|
confirmation plus non-contact protective handoff.
|
|
|
|
The current coordinator lesson is explicit: nudge through game-ergonomic state
|
|
levers rather than forcing plot. Safe lines, evidence locks, security holds,
|
|
handling categories, posture constraints, route access, clocks, public proof
|
|
objects, and resource pressure are the elastic strings. Actors pull against
|
|
those strings from local state; the coordinator records observed action and
|
|
folds consequences through reviewed mutation.
|
|
|
|
The coordinator must now be treated as a sandboxable organ in future
|
|
training-shaped loops. Codex remains the meta-coordinator: it prepares visible
|
|
input, launches the coordinator worker, reviews the output, labels repairs, and
|
|
wires structured state between organs. Raw coordinator training data should come
|
|
from sandboxed coordinator prompts, not from omniscient chat steering.
|
|
|
|
## Pruned Receipts
|
|
|
|
Old prototype fixture receipts and model-runner files have been removed
|
|
from the live workspace. Their useful lessons belong in the architecture docs,
|
|
state map, evidence ledger, and git history. Do not reintroduce deleted receipt
|
|
paths as active state surfaces.
|
|
|
|
## Missing Or Incomplete Organs
|
|
|
|
- Deterministic speaker-local input slicer
|
|
- Full prompt renderer
|
|
- Classifier/appraiser pipeline
|
|
- Relationship/perception updater
|
|
- State mutator model
|
|
- Student projector
|
|
- Branch compiler implementation beyond coordinator-authored fixtures
|
|
- IF artifact reviewer implementation beyond manual/frontier review
|
|
- Visual scene continuity reviewer implementation beyond prompted specialist review
|
|
- Full scene/event loop implementation
|
|
- Culture prior engine
|
|
- Automatic promotion of branch outcomes into canonical state
|
|
- Corpus coverage ledger expansion beyond the current draft Pallas and Lucent
|
|
receipt-chain rows
|
|
|
|
## Current North Star
|
|
|
|
Generate high-quality, sandboxed, source-grounded branching-scene samples that
|
|
can later train specialized Ghostlight models while staying usable by a game
|
|
engine: exact inputs, exact outputs, provenance, review labels, state mutation
|
|
receipts, branch compiler artifacts, IF review findings, visual scene plans, and
|
|
clear branch consequences. The samples should also train tonal control: a
|
|
fixture needs an intentional prose mode and enough ordinary life for consequence
|
|
to matter.
|
|
|
|
Use `npm run coverage:status` before choosing new fixtures so the corpus grows
|
|
by coverage need instead of proximity to the nearest interesting disaster.
|