Ghostlight/state/map.yaml
2026-05-04 23:21:05 +01:00

213 lines
19 KiB
YAML

experiment:
name: Ghostlight
status: incubation
phase: phase_0_scaffold
premise: >
Build a durable research and implementation home for socially persistent
generative agents whose behavior emerges from personality, culture,
memory, perception, incentives, and situation rather than flat persona
prompts.
mission:
primary: >
Generate psychologically grounded branching scenes, dialogue, actions,
social consequences, and eventually storylines, consumer behavior,
faction decisions, and technology/item manifests for Aetheria.
near_term: >
Produce sandboxed, source-grounded branching-scene training data through
projected local context, responder packets, reviewed outputs, mutation
receipts, sandboxed coordinator continuity, branch compiler artifacts, and
IF review.
voidbot_goal: >
Keep the appraiser, relationship/perception updater, and memory machinery
useful for VoidBot's core companion mission: reading specific humans over
time, forming grounded opinions about them, noticing misreads, and updating
trust, concern, irritation, respect, boundaries, and expectations from
evidence rather than generic friendliness.
active_fixture: >
Pallas Species Strikes is reference-only story quality material.
`pallas-training-loop-v0` is the first small receipt-chain pilot.
`lucent-hostage-feed-v0` is the current open-ended training-loop draft:
fifteen post-restart turns through safe-line resolution, with responder
receipts but coordinator turns still Codex-authored rather than sandboxed.
Call of the Void and Elysium-era gameplay remain procedural consumer
targets.
hard_boundaries:
- Prompt text is projection, not truth storage.
- Canonical agent state and per-agent perceived state must remain distinct.
- Characters act from local knowledge, local perception, local pressure, and bounded affordances.
- Aetheria prose must support tonal range and ordinary life, not only crisis pressure. Wit, warmth, domesticity, ritual, boredom, wonder, and quiet dread are valid state-grounded modes when they fit the scene.
- Character intelligence is modeled state, not a default model capability. Make the Ghostlight machinery as smart as possible, but project each character's cognition, metacognition, manipulation skill, inference speed, education, and blind spots only to the level supported by their stat sheet, culture, experience, stress, and current state.
- Listener misread is first-class; intent and interpretation are not the same object.
- Human-facing appraisal is a first-class target; VoidBot must be able to read people, form grounded opinions, and revise those opinions over repeated contact.
- Generated action is an event proposal; deterministic gates and reviewed mutation decide what becomes state.
- Fuzzy judgments become reviewed training artifacts before they become trained models.
- Aetheria generation is source-first; check lore for factions, bodies, locations, institutions, and constraints before projection.
- Do not import species-comfort assumptions across institutions. AU dry-operation cephalopod labor is bare-minimum productivity support, not Navigator-style or cephalopod-native comfort habitat, unless source lore says otherwise.
- 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.
- Interactive-fiction fixtures require independent artifact review before acceptance; tracked variables must materially affect later affordances, risk, appraisal, callbacks, visual state, or outcomes, unless explicitly marked telemetry-only.
- Ghostlight scenes should feel like puppets on elastic strings, not puppets on rails. The coordinator supplies playable affordances, gates, resources, clocks, posture constraints, route options, evidence objects, and risk pressure; actors choose locally within those constraints; state folds from observed action rather than from the coordinator forcing a plot outcome.
- Complete illustrated interactive-fiction fixtures should emit visual art direction for website imagery and replay value, with click-through visual scene segmentation, stable visual character refs for recurring named characters, a global style cue when the visual language matters, one durable base image prompt per distinct section, character visibility and stance controls, and additive modification prompts for branch-visible consequences and scene-state changes; assembled prompts include only actually visible character refs, while continuity notes stay in tooling unless rewritten as concrete visible description.
- Image prompts must be affirmative target descriptions. Describe visible geometry, materials, composition, lighting, bodies, tools, and state deltas; keep forbidden assumptions in reviewer findings or validation errors instead of feeding negative constructions to imagegen.
- Generated environment images are concept and material reference, not geometry authority. Multi-angle or branch-consistent illustrated IF needs a durable scene-set source such as a hand-built 3D blockout, procedural scene file, layout asset, or camera map with staging slots and occluders; imagegen paints over camera-specific visual input instead of preserving topology from memory.
- Visual artifacts are auxiliary illustrated replay and website collateral for the corpus, not core training targets for responder, appraiser, mutator, or relationship models. Visual review judges the playable IF experience and visual plan, not clean-run prose receipts.
live_architecture:
state_model:
- Layer personality through organization, disposition, behavior, presentation, situational activation, relationships, goals, and values.
- Canonical authored state has no certainty; perceived overlays carry observed activation, attributed disposition, and confidence.
- Voice style is a broad communication vector; defensive, comic, tender, ritual, poetic, dry, or evasive verbal behavior should emerge from state, circumstance, relationship, tonal mode, and presentation.
projection:
- Project canonical state into character-local operating context before any responder sees it.
- Include scene facts, relevant memory, relationship read, stakes, embodiment/interface affordances, action affordances, projection controls, retrieved lore, tonal intent, ordinary-life texture, and latent pressure handling.
- Hide raw state internals such as means, plasticity, current_activation, and numeric dimensions from prompt text.
responder_packets:
- `packet_only` tests runtime parity from curated source excerpts.
- `retrieval_augmented` bakes setting texture into reviewed outputs through scoped retrieval.
- `responder_scoped_repository_search` allows the responder to inspect declared seed scope, follow bounded relevant AetheriaLore links, and requires consulted refs, followed refs, research trace, plus research summary.
- Gold responder data must preserve exact visible input, raw output, parsed/reviewed output, hidden-context refs, leakage audit, isolation method, and coordinator interventions.
training_loop_bundles:
- Scene-loop bundles are the receipt-chain unit for training-shaped sequential character scenes before branch compilation.
- A bundle must tie scene-local digest, initial state, coordinator turn artifacts, projected contexts, responder packets, raw responder captures, event records, participant appraisals, reviewed mutations, review summary, and coverage status.
- Training readiness is per organ. A valid responder turn does not automatically make branch compiler, IF reviewer, visual artifact, or whole-fixture coverage training-ready.
coordinator:
- The coordinator is a trainable soft organ: it stages scenes, chooses next beats and acting agents, invokes specialist machinery, carries unresolved hooks, emits glue prose, and proposes game-engine-shaped state changes.
- Future coordinator turns should be sandboxed as their own promptable worker outputs, with exact visible input, raw output, parsed coordinator artifact, review labels, and interventions preserved. Codex acts as meta-coordinator: it scopes, launches, reviews, repairs, and wires Ghostlight organs, but should not silently collapse the trainable coordinator organ back into omniscient chat.
- Glue prose is training signal, not canonical truth.
- Coordinator prose should choose an intentional tonal mode for the scene and protect breathing room when the story needs routine, levity, domestic texture, wonder, or slow dread before consequence.
- The coordinator/narrator may be smarter than the characters for reader service: explain opaque maneuvers, stakes, institutional games, and social tactics in accessible prose without retroactively making the acting characters more self-aware than their state allows.
- The coordinator nudges by affordance, not decree. Prefer concrete game-ergonomic levers such as safe lines, export locks, security holds, handling categories, visible posture scripts, route access, resource scarcity, clocks, and public proof objects over authorial pressure toward a desired ending.
branch_compiler:
- The branch compiler turns fixture briefs, lore digests, scene/world state, actor-local branch candidates, reviewed consequence packets, fold plans, and optional visual replay requirements into playable Ink plus training sidecars, separate visual plan artifacts when illustrated replay is in scope, and compiler notes.
- The branch compiler owns playable structure, click-through segmentation, conditionals, variables, callbacks, fold materialization, visual scene ids, and image prompt handles; it stores visual prompt data in `.visual.json` artifacts rather than bloating training annotations; it does not own hidden character truth, participant appraisal, or durable social mutation.
coverage_ledger:
- `state/corpus-coverage.json` tracks accepted, draft, planned, rejected, and superseded fixtures by faction, movement, flashpoint, timeline lane, tonal mode, collision axis, training target, artifact refs, review status, and economy hooks.
- `npm run coverage:status` validates the ledger and reports coarse corpus gaps before choosing the next fixture.
training_targets:
- Coordinator/story runtime
- Memory and lore retrieval
- Projector/state interpreter
- Character agent/responder
- Participant appraiser
- State mutator
- Relationship/perception updater
- Branch compiler for Ink materialization, fold/callback structure, and sidecar generation; visual plan generation is auxiliary illustrated replay support when a fixture is meant for website or art presentation
- Interactive-fiction artifact reviewer for fake variables, cosmetic choices, missing state reads, fake folds, and visual callback gaps
- Visual scene continuity reviewer for illustrated IF replay, click-through segmentation, imagegen-ready prompts, character visibility, stance control, and branch/state visual modifiers; this reviewer protects entertainment and presentation value, not core social-model training signal
- Human-facing appraisal and opinion model for VoidBot
- Evaluator/review classifiers
- Aetheria-tuned responder
- Institution, faction, and consumer decision models
active_subgoals:
- Keep Ghostlight focused on the architecture and data pipeline for socially persistent agents.
- Build schema-stable, sandboxed responder, coordinator, branch compiler, and IF review data before chasing larger runtime loops.
- Preserve Aetheria grounding through source-backed lore, branch labels, and reviewed assumptions.
- Preserve Aetheria tonal range: Adams/Pratchett-style wit-with-stakes is a useful default touchstone, while other controlled modes remain valid when grounded in character, setting, and consequence.
- Shape every soft judgment as future training data, not permanent prompt folklore.
- Keep item/technology exploration database-shaped for Aetheria-Economy instead of prose-only worldbuilding, including colony-consumed manufactured trade goods, not only gear assemblies.
- Track corpus coverage across all major factions, minor factions, movements, and flashpoints so no single fixture becomes the training universe by accident.
coverage_targets:
current_lore_counts:
major_powers: 12
minor_powers: 21
movements: 23
pre_elysium_flashpoints: 24
defunct_absorbed_powers: 5
baseline_story_fixtures: 92
baseline_with_defunct: 97
practical_first_broad_target: 100-150 reviewed fixtures
major_power_requirement: founding-era story plus day-in-the-life story
collision_requirement: every coverage story should involve multiple cultures, factions, movements, institutions, or body/infrastructure assumptions colliding
current_artifacts:
canonical_docs:
- notes/documentation-inventory.md
- docs/architecture/corpus-coverage-ledger.md
- docs/architecture/prompt-projection-contract.md
- docs/architecture/projected-local-context.md
- docs/architecture/sequential-agent-runtime.md
- docs/architecture/ink-branching-scenes.md
- docs/architecture/illustrated-if-visual-pipeline.md
- docs/architecture/aetheria-lore-grounding-architecture.md
- docs/architecture/sandboxed-responder-packets.md
- docs/architecture/soft-model-training-artifacts.md
- docs/architecture/training-plan.md
- docs/architecture/technology-item-manifest-plan.md
schemas:
- schemas/agent-state.schema.json
- schemas/projection-example.schema.json
- schemas/lore-grounding-digest.schema.json
- schemas/corpus-coverage.schema.json
- schemas/projected-local-context.schema.json
- schemas/coordinator-artifact.schema.json
- schemas/responder-packet.schema.json
- schemas/responder-output.schema.json
- schemas/event-record.schema.json
- schemas/participant-appraisal.schema.json
- schemas/reviewed-mutation.schema.json
- schemas/scene-loop-bundle.schema.json
prompts:
- prompts/README.md
- prompts/sandboxed-responder-packet.md
- prompts/sandboxed-coordinator-turn.md
- prompts/interactive-fiction-weaver.md
- prompts/research-sanity-responder.md
- prompts/narrative-quality-reviewer.md
- prompts/lore-grounding-reviewer.md
- prompts/spatial-geometric-cohesion-reviewer.md
- prompts/visual-scene-continuity-reviewer.md
live_examples:
- state/corpus-coverage.json
- examples/agent-state.call-of-the-void.json
- examples/projections/call-of-the-void.scene-broken-taxi-oz.jsonl
- examples/projections/call-of-the-void.scene-broken-taxi-oz.pretty.json
- examples/lore-grounding/historical-flashpoint.template.json
- 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/ink/lucent-hostage-feed.branch-and-fold.v0.ink
- examples/ink/lucent-hostage-feed.branch-and-fold.v0.training.json
- examples/ink/lucent-hostage-feed.negotiator-branch.v1.ink
- examples/ink/lucent-hostage-feed.negotiator-branch.v1.training.json
- experiments/lucent-hostage-feed-v0/sandbox-packets/lucent-hostage-feed.negotiator-branch.v1.coordinator-packet.md
- experiments/lucent-hostage-feed-v0/sandbox-captures/lucent-hostage-feed.negotiator-branch.v1.coordinator.capture.json
- experiments/lucent-hostage-feed-v0/sandbox-packets/lucent-hostage-feed.negotiator-branch.v1.weaver-packet.md
- experiments/lucent-hostage-feed-v0/reviews/lucent-hostage-feed.negotiator-branch.v1.narrative-review.final.json
- experiments/lucent-hostage-feed-v0/reviews/lucent-hostage-feed.negotiator-branch.v1.lore-review.final.json
- experiments/lucent-hostage-feed-v0/reviews/lucent-hostage-feed.negotiator-branch.v1.spatial-review.final.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
- examples/training-loops/pallas-training-loop-v0/pallas-training-loop-v0.bundle.json
- examples/training-loops/pallas-training-loop-v0/pallas-training-loop-v0.scene-digest.json
- examples/training-loops/pallas-training-loop-v0/pallas-training-loop-v0.initial-state.json
- experiments/pallas-training-loop-v0/pallas-training-loop-v0.clean-run.md
- examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.bundle.json
- examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.scene-digest.json
- examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.initial-state.json
- examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.review.json
- experiments/lucent-hostage-feed-v0/lucent-hostage-feed-v0.clean-run.md
- scripts/materialize_lucent_loop.py
- scripts/materialize_lucent_loop_continuation.py
pruned_receipts:
- Old prototype fixture receipts and local runner files were removed from the live workspace after their lessons were distilled into docs, state, evidence, and git history.
data_flow:
- Rehydrate from map, handoff, system map, implementation plan, and `npm run state:status`.
- Work one bounded organ.
- Verify the seam that matters.
- Add distilled evidence only when future belief changes.
- Steward memory: keep the smallest correct persistent surface current and cut stale steering when it slows re-entry.
- Commit and push completed work.
- If state grows faster than understanding, cut it back.
current_status:
summary: `lucent-hostage-feed-v0` now has the original receipt-chain loop, the older meta-coordinator-authored branch scaffold, and a newer sandboxed coordinator plus sandboxed Interactive Fiction Weaver negotiator-perspective branch pilot at `lucent-hostage-feed.negotiator-branch.v1`. The v1 branch pilot compiles, carries labeled meta-coordinator repairs, and received B-level-or-better narrative, lore, and spatial reviewer passes; visual review was not applicable because no visual plan was requested. Pallas remains reference-only; `pallas-training-loop-v0` remains the smaller receipt-chain pilot.
next_action: Decide whether to backfill the useful Lucent lore gaps into AetheriaLore, build a visual/scene-set pass for the Lucent IF, or move to the next coverage fixture. Keep broad corpus coverage at draft until artifacts have exact receipts for the organs they claim, and keep meta-coordinator repairs labeled.