Ghostlight/state/map.yaml
2026-08-26 03:07:36 +02:00

322 lines
46 KiB
YAML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

experiment:
name: Ghostlight
status: active_mvp_build
phase: ghostlight_dungeon_hosted_playtest
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:
ghostlight_dungeon: >
Build a persistent, Vault-grounded narrative simulation whose WorldKernel
exclusively owns revisioned world state, while generalized
Projector-Persona-Interpreter machinery produces bounded proposals for the
kernel to validate. The current forge surface supports one to eight
authenticated players in bounded shared-scene co-op; the durable
authority model admits those humans only as controllers of their exact
canonical actors through campaign membership.
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: >
Finish routing canonical world changes through the closed semantic mutation
algebra, then resume adversarial pressure on hosted Session Zero, world
compilation, fiction-first action resolution, and multiresolution Gestalt
agency. Expand the agency corpus with behaviorally distinct reviewed cases.
Preserve atomicity, actor custody, private knowledge, stable topology,
persistent identity, and offscreen agency while reducing provider retries
and token-heavy prompts that do little useful cognitive work.
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.
- A consumer-supplied ontology or fixed seed may bypass Session Zero world generation; it may never bypass WorldKernel validation, closed mutation authority, or atomic CultCache commit.
- Delvehold retains quantitative economy authority. Ghostlight string resource handles and strategic resource effects must not impersonate quantities, prices, recipes, production capacity, inventories, orders, contracts, or conservation semantics.
- 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.
- Initiative controls action opportunity, not perception. Every affected participant appraises and mutates from an event before the next actor is projected; the scheduler selects eligible actors from readiness, recovery, load, status, and reaction windows rather than handing everyone a round-robin turn.
- 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:
ghostlight_dungeon:
- The authoritative ownership and build map is `docs/architecture/ghostlight-dungeon-mvp.md`.
- One per-campaign WorldKernel mailbox owns canonical state and revision numbers.
- Every player, NPC, institution, scheduler, import, and reload transition uses the same typed WorldCommand validation and atomic CultCache commit path.
- Foreground attempts, NPC reactions, strategic cell outcomes, waits, travel, and approval-gated population fission lower into one closed semantic WorldMutationBatch vocabulary. Means and intended effects remain proposals; only the WorldKernel reducer can change canonical components.
- The mutation reducer validates a complete batch against an exact authority envelope on an isolated component overlay, advances each touched subject version once, and persists component state, authority, batch, mutation receipt, causal receipt, events, and aggregate compatibility projection atomically. Aggregate campaign rows are rejected by component-only mutation ingress.
- WorldEffectDelta, ActorStateDelta, and StrategicOutcomeEffect are model-boundary migration inputs, not independent writers. Bounded region expansion lowers through typed place/proposition admission and topology mutations. Initial publication is a fresh-store creation transaction; named-person materialisation/folding is a resolution transaction that advances revision and resolution epoch, clears the cover, preserves the individual delta, and cannot rewrite Gestalt-wide knowledge, custody, pressure, or fictional time.
- Ghostlight owns generalized Projector to Persona to Interpreter machinery; consuming Personas retain their own canonical minds and commit authority.
- Player speech address is a bounded proposal over exact co-present simulation-eligible actor IDs. WorldKernel commits the selected Persona response set with the speech turn; every present actor still appraises, while direct addressees receive explicit response duty and observers retain optional agency. A direct addressee must speak or select typed deliberate silence, which lowers deterministically rather than opening a free-text reaction-effect lane.
- Foreground action assessment derives a closed structural schema from exact current authority. A compact private scope projection receives only the exact attempt and the structurally available lane names; local validation permits it only to subtract. Causally unselected lanes disappear from the assessor schema and information facts stay out of the prompt when knowledge mutation is unselected. Canonical dynamic effect maps cross the strict model boundary as bounded authority-enumerated entry arrays and lower once into WorldEffectDelta after validation. The admission-bound schema gives required strong/ordinary-success lanes minItems 1 only on the admissible branch and forces every inadmissible effect array empty; local validation repeats both rules after lowering. A separate compact semantic verifier then compares the complete four-band effect bundle with the player's exact means and intended effect. Neither stage can reassess difficulty, choose committed effects, expand authority, or commit. One mismatch produces a private semantic-invalid receipt and bounded same-snapshot assessor correction; a second mismatch aborts. Only structurally and semantically verified proposals enter the cache.
- Mutation-scope and action-assessment proposals are content-addressed by the exact scope, assessor, and verifier models, stable instructions, scoped action-specific schema, and permitted typed packet. Private CultCache cache rows are derived inference evidence only. Revision and expiry bind the consumable assessment and roll but do not invalidate an otherwise identical semantic proposal; cache hits revalidate it, emit an explicit zero-token receipt linked to the source scope, assessment, and verifier receipts, and issue a fresh revision-bound digest. Changed actor state, occupancy, facts, institutions, permissions, contract, boundaries, schema, or model contract changes the key. Eve projections itemize every signed modifier and exact reference.
- The hosted player story is the chronological lowering of exact committed NarrativeTurn rows. No narrator or verifier model rewrites those turns; historical narration projections are inert and never enter Eve or CultMesh player surfaces.
- Epiphany consumes the extracted Ghostlight projection crate at an exact Git revision while retaining her canonical Mind, effect admission, and consequence authority.
- Gestalt Personas own shared population state; first-relevance individuation and later folding are revisioned WorldKernel commits, and durable member deltas preserve specific people between appearances.
- The multiresolution agency graph derives a connected cohesive/arena cell cover from canonical actors, institutions, and gestalt leaves under a campaign-selected 1–128 pooled entitlement budget; provider concurrency is separate.
- Model-driven strategic cell waves can change remote actors, institutions, gestalts, clocks, and exact-channel news while the absent player remains outside their write authority; the entire wave validates and commits atomically.
- Population activity effects represent exact attributed attempts to prepare, coordinate, investigate, recruit, obstruct, trade, or communicate; graph scope, locations, channels, and semantics validate before the kernel derives an event, and the effect never claims its own success.
- Population migration is a separate exact-leaf effect. WorldKernel atomically moves the Gestalt and its agency-profile location along an explicit reachable migration relation; destination populations remain distinct and named members never move by implication.
- Targetless investigation may inspect an exact current location or unnamed ordinary role, but it cannot invent an actor, response, discovery, or private knowledge.
- Salient dormant members may emit the same bounded activity vocabulary from their exact location toward their current leaf or adjacent subjects; member activity and migration share one action key, so arena aggregation cannot duplicate or transfer personal agency.
- Resolution-demand focal IDs are salience hints only; model output cannot force singleton cells or override the player-selected Persona-cell budget.
- Projectors receive decision-relevant situation state, Personas receive only lived narrative, and Interpreters receive exact action permissions; runtime-owned cell membership and revisions are bound locally rather than copied by a model.
- Canonical actor cell slices include exact goals, obligations, relationships, and bounded memories. Actor knowledge and Gestalt shared knowledge never become public information channels; channels are concrete report, courier, broadcast, or social routes, and profile maintenance removes legacy overlap and `unknown` placeholders.
- Each active strategic subject receives a subject-conditional Interpreter schema. Institution, actor, Gestalt, and named-member effect lanes are structurally distinct; movement and population-migration variants are absent when the exact subject has no reachable destination. Semantic retry owns meaning, not type combinations the runtime already knows are impossible.
- Targetless local preparation, investigation, communication, and obstruction stay bound to the exact supplied location and record only the source's attempt against an unnamed role or local feature. They cannot substitute a convenient canonical target or claim a listener, discovery, damage, disruption, or response.
- The independent effect verifier receives the same exact typed permissions as the Interpreter. Only supplied canonical destinations can create a travel obligation; places mentioned solely in lived prose remain local texture inside the supplied activity location.
- An exact subject/effect pair rejected by per-action local validation or the independent effect verifier is excluded from the one same-snapshot Interpreter correction schema. Neither validator can choose a replacement or commit; the Interpreter must select another permitted lane, omit the action, or abort the whole wave without mutation. Cross-action failures do not guess at an offender.
- Strategic outcome references use one `resource:*` ontology for actor possessions, institution resources, Gestalt resources, and member equipment. The local validator reports the exact action, offending handle, and allowed handle set to the private same-snapshot correction loop while the player receives only a spoiler-free refusal.
- Each strategic outcome digest receives an action-scoped schema. Only admissible effect kinds exist; the selected kind structurally requires its exact owner and fields, forbids fields owned by other kinds, and binds recipients, existing resources, relations, facts, pressure owners, and references to the exact action slice. Narrative causality remains a resolver/verifier judgment and WorldKernel remains the only writer.
- Every activity target is one runtime-derived descriptor keyed by authoritative ID, containing the canonical name and current locations. Reachable actor destinations map IDs to names; migration destinations name both population and location. Projectors, Interpreters, and effect verifiers can distinguish an actual target from an unnamed role and cannot turn “go to Reed” into travel to an unrelated permitted place.
- Strategic pressure transitions receive exact owner IDs and current unresolved strings. Resolutions copy current state; additions must be new. No-op pressure proposals are state-semantic failures, not JSON-shape failures, so the outcome-specific correction receives the rejected bundle while the kernel guard remains absolute. Named-member obligations exist only for social activities that can actually create a promise or debt, never physical obstruction, preparation, or investigation.
- Structured validation failures retain stage name plus exact instance and schema JSON pointers in private diagnostics. Public strategic refusals remain spoiler-free; model output and chain-of-thought do not become logs or state authority.
- A structured same-snapshot retry receives only the nearest rejected containing object beside the exact schema pointer, not the full rejected response. Parallel strategic failures retain the exact simulation cell, constituent IDs, and bounded causal chain in operator-only diagnostics while public receipts remain spoiler-free.
- Cell Projector perspective ownership is schema-bound to exact constituents and selected member exceptions. Ghostlight lowers unique subject-keyed segments into name/location prose and requires the debt-selected focus before the Persona sees the stream.
- Local world compilation treats direct-seed evidence as canon constraints rather than an exhaustive game map. Missing room-scale geometry, routes, people, procedures, and operational doctrine become explicit branch-local elaboration; only contradiction, an unanchored requested baseline, or a premise-changing ambiguity becomes a material gap.
- A separate Flash lane extracts exact institution anchors for coarse remote powers. Pro synthesizes playable branch-local strategic doctrine; an independent verifier accepts compatible elaboration, rejects actual canon contradiction, and can never delete an anchored institution into a gap. Every admitted remote doctrine is disclosed in the approval preview as a branch assumption.
- Strict provider schemas never receive canonical dynamic route, relationship, facet, assignment, or demand-weight maps. Model-facing records carry explicit semantic IDs or fixed axis fields; local validation rejects duplicates and lowers once into the canonical maps. This prevents strict-schema projection from silently turning open maps into empty closed objects.
- Remote institutions receive deterministic six-axis coarse profiles with distinct self-authority and explicit unknown facets. The Pro agency compiler profiles only locally materialized subjects; finer remote state compiles on demand.
- Model-stage receipts expose per-attempt provider identity, latency, validation errors, and prompt/completion/cache token usage without storing reasoning content.
- Budget and pins own `resolution_epoch`; provider concurrency owns a separate configuration epoch and cannot repartition or advance fiction.
- Approval-gated gestalt fission creates explicit child leaves plus `other/unknown`, preserves inactive parent lineage and member deltas, assigns every scarce parent resource to exactly one child, transfers every named member exactly once, and projects only derived agency profiles and cover state outside the mutation reducer.
- Existing v0 training fixtures are regression evidence and have no runtime write authority.
- SessionZeroKernel is the sole pre-world owner of persistent shared/private negotiation, typed contracts, character drafts, boundaries, decisions, invitations, and approvals. The WorldKernel receives only an unanimously approved brief at atomic publication.
- SessionZeroKernel keeps append-only model-invocation audit history separate from the active preview's exact compiler proof set. Repeated calls with one semantic receipt hash remain distinct audit entries; preview retirement clears only the proof set, and campaign publication receives only the receipts that produced the approved preview. Legacy conflated stores migrate atomically on registry load without changing revision, epochs, or fictional time.
- SessionZeroKernel remains the identity and state owner for every human-controlled actor during compilation. Public player names and premises may inform the shared world frame, but actor and Gestalt-member outputs may not materialize those reserved people. The model-generated player object is only a provisional starting-position marker; Ghostlight removes it and installs the approved typed characters locally. A collision receives one same-snapshot correction and then rejects atomically.
- Approved private relationships cross compilation through exact canonical subject IDs. Player references bind to approved actors; otherwise unresolved named people become stable server-generated relationship anchors. The shared world compiler receives no private subject name, identity handle, or relationship. After public topology validation, a separate private stage owns characterization and placement but cannot emit IDs, relationships, narration, facts, gaps, assumptions, or public changes; Ghostlight attaches the opaque ID and owner-only relationship locally. Omission, ambiguity, unknown placement, or collision rejects the candidate atomically, and links to actors, institutions, Gestalts, or named Gestalt members grant no knowledge or authority.
- Gap-bearing compiler results remain non-canonical exact previews. Host review selection cannot approve them; every active member approval binds shared contract, private character, and the exact world-preview digest. Publication preserves that digest and the accepted evidence gaps and branch assumptions, while the Eve tree visibly renders the player-reviewable world shape without institution-private resources/goals or another player's relationship anchors.
- The host may discard a retained non-canonical preview through the SessionZeroKernel. This clears preview-bound approvals and preview state, then returns the locked roster to drafting without changing the contract, characters, or fictional time.
- A material counter clears its prior typed payload, enters the permitted durable channel, removes acceptance authority, and remains unresolved until a same-epoch DM turn atomically installs a fresh decision. Generated opening and role suggestions are non-material; ignoring them cannot block custom compilation. Transcript-only blank contracts and characters fail locally before world compilation.
- Bounded co-op uses campaign_membership.v1 to bind one to eight authenticated members to exact actors in the existing campaign mailbox. Sequential public actions, actor-filtered surfaces, unanimous time/travel/cell-budget changes, and non-simulatable human actors are implemented; split parties, PvP, private play actions, delegation, late joining, and group lifecycle commands remain unsupported.
- Contract Review reuses Session Zero against an exact world revision. Unanimous publication may amend forward-looking contract and approved actor ledger fields but cannot rewrite custody, location, topology, knowledge, memory, canon, or history. Boundary tightening becomes immediate anonymous aggregate policy; relaxation waits for publication.
- `ghostlight.play` is the one stable Eve provider surface across anonymous entry, Session Zero, Contract Review, and campaign play. The browser embeds Eve's canonical provider host and lowering package; it owns only ephemeral drafts, tabs, focus, and rendering.
- Eve editable bindings are the input model. Operations capture named bindings into `gamecult.eve.command_invocation.v1`; rejected or stale receipts preserve drafts, and accepted receipts may clear exact binding names. HTML forms are lowering detail, not Eve state or payload semantics.
- Heimdall owns OAuth attempts, Discord callbacks, entitlement evaluation, claims, single-use completion, refresh, and logout. Its required Eve access plugin crosses a private loopback CultNet operation boundary; Ghostlight validates the exact claim and owns only its hashed app session before deriving actor authority from campaign membership.
- Heimdall access grants and Ghostlight app sessions survive daemon replacement. Each scheduled refresh uses a fresh private-command identity, verifies the signed access claim against the exact returned session without requiring an initial-login account summary, rotates the locally wrapped refresh claim by CAS, and issues a persistent HttpOnly cookie bounded by refresh expiry.
- Native players use `ghostlight.native.player` on loopback RUDP `127.0.0.1:4102`. Heimdall owns the one-time OAuth attempt and completion; Ghostlight redeems it into the same app-session authority used by the browser. The native client persists only its opaque Ghostlight bearer in a mode-0600 CultCache store, submits the same canonical Eve invocations to the same kernel mailboxes, and sends bounded five-second RUDP keepalives while a long model-backed command remains pending.
- Odin advertises the redacted native boundary and its four operations but receives no bearer, attempt handle, claim, account, member, actor, or campaign state. A forged native session is denied before surface projection or command admission.
- Public Ghostlight HTTP exposes only the Eve provider, logical surface, command, and invalidation endpoints plus the typed health probe and static assets. Exact private per-member and operator surfaces remain CultMesh documents; Hermodr is an optional generic materializer, not a runtime dependency.
- Yggdrasil release admission resolves the newest executable- or build-affecting commit from the admitted ref. Later documentation, notes, state receipts, and root Markdown do not become runtime authority or cause a redeploy; Idunn proves the selected commit is an ancestor of the admitted ref and verifies the exact witness after activation.
- Idunn owns Ghostlight deployment and same-release continuity, Odin owns discovery, Heimdall owns account identity, and VoidBot owns Vault retrieval. None can write campaign state. Epiphany is an adjacent consumer and future swarm-capacity provider, not a Ghostlight runtime dependency or authority.
persistence_spine:
- The hosted runtime uses Rust CultCache/redb `.cc` stores: one store per campaign plus service auth and CultMesh stores.
- `state/ghostlight-state.cultcache.jsonl`, `state/branches.json`, and `state/evidence.jsonl` belong to the older research pipeline and have no hosted runtime authority.
- `schemas/agent-state.schema.json` is also the first shared cross-runtime payload contract. CultNet clients should move `ghostlight.agent_state.v0` documents unchanged inside typed document envelopes instead of inventing forked state ontologies per repo.
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.
initiative_scheduler:
- Initiative scheduling is a deterministic runtime seam between reviewed mutation and the next actor projection.
- Participants carry initiative speed, next-ready time, reaction bias, interrupt threshold, current load, status, and constraints.
- Actions carry scale, recovery, initiative cost, interruptibility, commitment, and local affordance basis.
- Reaction windows are event-triggered opportunities with eligible actors, urgency, expiry, and allowed action scales; they are not automatic responses or hidden-state access.
- Coordinator overrides must record a reason before the artifact can claim training value.
- VoidBot's newer heartbeat routine is the reference for turning this seam into the cast swarm's live timing law: characters take scene turns through heartbeat initiative, cooldown begins after turn completion, and offstage agents use slower rumination/sleep turns for memory consolidation, resonance, incubation, and dreams. See `docs/architecture/voidbot-routine-adoption-plan.md`.
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:
- Admit DELVE/HOLD through the forced-ontology boundary in `docs/architecture/delvehold-forced-ontology-integration.md`: one externally controlled `greathold` institution, consumer-owned quantitative economy, typed CultMesh exchange, and no compiler-bypass path around WorldKernel.
- Finish the semantic mutation migration: delete or demote remaining legacy model effect schemas and move aggregate campaign fields toward projection-only state. Seed publication and named-person presence now have explicit non-effect authority classifications.
- Admit Kalsa through a selectable typed Vault manifest with Public player-safe and Spoilers GM-only evidence lanes, Git/Obsidian sync provenance, and exact receipt filtering. Do not import it into the read-only Aetheria recovery index or create a rival Ghostlight semantic index.
- Grow the 36-case candidate agency corpus toward 300 reviewed, behaviorally distinct attempts that either compose from existing primitives, produce an explicit bargain, or falsify the algebra.
- Pressure live campaign compilation and play from exact Vault evidence; reject honest gaps instead of borrowing a nearby fixture, cast, or geography.
- Make strategic cells produce meaningful attributed activity while rivals in arenas retain separate knowledge, speech, resources, and authority.
- Preserve named-person continuity through materialization, folding, migration, nested Gestalt lineage, and later return encounters.
- Optimize stable-prefix cache reuse and work per token without removing context needed for goals, promises, relationships, knowledge, or exact permissions.
- Keep every model stage proposal-only; malformed, stale, cross-slice, or semantically invalid waves must leave campaign state and fictional time unchanged.
- Complete separate-account co-op privacy, actor-binding, unanimity, and restart proof when suitable testers or controlled account fixtures are available.
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:
- docs/architecture/delvehold-forced-ontology-integration.md
- 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
- docs/architecture/persistence-spine.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
- schemas/initiative-schedule.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/ghostlight-state.cultcache.jsonl
- tools/ghostlight_state_store.py
- vendor/cultcache-py
- 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
- examples/lore-grounding/corvid-collective-founding.v0.json
- examples/training-loops/corvid-collective-founding-v0/corvid-collective-founding-v0.initial-state.json
- examples/ink/corvid-collective-founding.branch-and-fold.v0.ink
- examples/ink/corvid-collective-founding.branch-and-fold.v0.training.json
- examples/visual/corvid-collective-founding.branch-and-fold.v0.visual.json
- experiments/corvid-collective-founding-v0/sandbox-packets/corvid-collective-founding-v0.coordinator-packet.md
- experiments/corvid-collective-founding-v0/sandbox-captures/corvid-collective-founding-v0.coordinator.capture.json
- experiments/corvid-collective-founding-v0/reviews/corvid-collective-founding-v0.narrative-review.final.json
- experiments/corvid-collective-founding-v0/reviews/corvid-collective-founding-v0.lore-review.final.json
- experiments/corvid-collective-founding-v0/reviews/corvid-collective-founding-v0.narrative-review.visual-enabled.json
- experiments/corvid-collective-founding-v0/reviews/corvid-collective-founding-v0.lore-review.visual-enabled.json
- experiments/corvid-collective-founding-v0/reviews/corvid-collective-founding-v0.spatial-review.final.json
- experiments/corvid-collective-founding-v0/reviews/corvid-collective-founding-v0.visual-review.final.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
- examples/initiative/lucent-hostage-feed-v0.turn-20.initiative.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: Yggdrasil serves immutable Ghostlight release e89db8bcadcd6e32af8b0349a99f45777c031536 with Eve 19c3dcf9173dce848a6253e975324ea239a02d24, daemon SHA-256 eb79caa884ac324a5ac784fd872f785debe6c44cacea361539f0d8307a2bc29f, native-client SHA-256 8be63daa65683e01561963d18a3303b998913b1c4b98b53fea31c9b4c663288b, artifact sha256-9f526356193458aad58ad92121cccaba337dd9838ebbf766490bdccfc15eba8d, and independent CodexConnector release 80de3acc18e058f649c3b25ce617f8869f038670. Idunn passed 313 tests, built the locked Linux release, selected it atomically, and left both zero-restart services healthy. Nightwing serves qwen3-embedding:0.6b over WireGuard and the real VoidBot MCP returns grounded Aetheria witnesses. Native Session Zero e7f2f947-25fa-4e1b-82e3-4a3e07dc4497 is unpublished at revision 60 with its exact Mars/Zhestokost contract, poem-length Corvid identity, private state, and bounded extraordinary permission intact. The superseded preview was discarded through SessionZeroKernel. Replacement digest sha256:6c79562d9a1399a3c9f63940c1c1968caa3a0d3644fe453aac6ab18babceb41c has four explicitly interconnected locations, three fresh actors, one Gestalt, three clocks, twelve institutions including Pan-Solar Consortium, approval-visible branch-local geometry and doctrine, and no First Exodus cast or geometry. Its first world_compile attempt timed out safely at 120 seconds; the same-snapshot retry succeeded. No player has approved the digest and no campaign has been published. Existing mutation, Gestalt, topology, knowledge, privacy, approval, no-puppeting, and atomicity invariants remain authoritative. Starfire remains retired as a writer and build host.
next_action: Have the host review exact revision-60 preview digest sha256:6c79562d9a1399a3c9f63940c1c1968caa3a0d3644fe453aac6ab18babceb41c and its branch-local assumptions; do not approve or publish without that decision. After explicit approval and publication, inspect the canonical six-axis agency profiles and first resolution cover, then pressure foreground resolution, away-time news, a 20-plus-power Aetheria skeleton, and nested refugee continuity across budgets 1, 4, 8, and 32. Measure the 26,796-character world_compile stage and 120-second timeout under realistic load before changing its budget; improve context efficiency rather than merely extending latency if failures recur. Admit Kalsa only through a selectable typed Vault manifest preserving Public and Spoilers lanes. Continue expanding the 36-case agency corpus toward 300 reviewed cases and run multi-account co-op proof. Preserve actor, privacy, approval, atomicity, topology, knowledge, and no-puppeting invariants; use Idunn on Yggdrasil for every package build and deployment.
gestalt_population: Gestalt Personas own shared population baselines; persistent member deltas own named individuality; WorldKernel materialization and approval-gated fission preserve lineage and identity. Materialisation/folding changes only representation and the exact member delta, advances resolution epoch, and retires the old cover; it has no Gestalt-wide effect authority. Selected actionable member exceptions are mandatory Projector perspective owners, so aggregation cannot silently erase their decision. Presence projection is limited to nearby active leaves and exact-location dormant members, includes reciprocal player relationship evidence, and may propose an earned cast without committing it. Simulation cells are derived covers only.