From d2e424d93edd091d7d49e26befac764947476a2e Mon Sep 17 00:00:00 2001 From: Meta Vens Date: Sat, 2 May 2026 11:25:10 +0100 Subject: [PATCH] Compact persisted project state --- notes/fresh-workspace-handoff.md | 391 ++++----------------- notes/ghostlight-current-system-map.md | 349 ++++--------------- notes/ghostlight-implementation-plan.md | 433 +++--------------------- state/evidence.archive.jsonl | 72 ++++ state/evidence.jsonl | 86 +---- state/map.yaml | 250 ++++++-------- 6 files changed, 362 insertions(+), 1219 deletions(-) create mode 100644 state/evidence.archive.jsonl diff --git a/notes/fresh-workspace-handoff.md b/notes/fresh-workspace-handoff.md index 3c11fe1..2aab402 100644 --- a/notes/fresh-workspace-handoff.md +++ b/notes/fresh-workspace-handoff.md @@ -12,355 +12,78 @@ Do not continue implementation automatically from a rehydrate-only request. 4. Run `npm run state:status`. 5. Restate the persisted next action before touching code or docs. -## Current Shape +## Mission -Ghostlight now has the persistence spine plus the first architecture payload: +Ghostlight exists to build socially persistent generative agents for Aetheria: +characters and institutions whose actions emerge from personality, culture, +memory, perception, incentives, material constraints, and scene pressure. -- canonical map -- scratch -- evidence ledger -- branch ledger -- compact re-entry note -- system map -- implementation plan -- Python helpers for state summary and compaction audits -- architecture notes for: - - personality structure - - signal classification - - state distributions and prompt projection - - Aetheria content generation targets - - population scaling for socially dense authored slices -- first schema seam: - - `schemas/agent-state.schema.json` - - `schemas/agent-state.required-fields.json` - - `examples/agent-state.call-of-the-void.json` - - `tools/validate_agent_state.py` -- prompt projection and distillation docs: - - `docs/architecture/prompt-projection-contract.md` - - `docs/architecture/projection-distillation-plan.md` - - `docs/architecture/sequential-agent-runtime.md` - - `docs/architecture/ink-branching-scenes.md` -- evaluation follow-up docs: - - `docs/architecture/schema-future-mechanisms.md` -- Aetheria lore grounding docs: - - `docs/architecture/aetheria-lore-grounding-architecture.md` - - `docs/architecture/lore-grounding-digest-format.md` - - `docs/architecture/projected-local-context.md` - - `docs/architecture/soft-model-training-artifacts.md` - - `docs/architecture/training-plan.md` - - `docs/architecture/technology-item-manifest-plan.md` -- lore grounding seam: - - `schemas/lore-grounding-digest.schema.json` - - `examples/lore-grounding/historical-flashpoint.template.json` - - `examples/lore-grounding/cold-wake-panic.ganymede-corridor.json` - - `tools/validate_lore_grounding.py` -- coordinator artifact seam: - - `schemas/coordinator-artifact.schema.json` - - `examples/coordinator/cold-wake-sanctuary-intake.v0.json` - - `tools/validate_coordinator_artifacts.py` - - `npm run coordinator:validate` -- sandboxed responder packet seam: - - `docs/architecture/sandboxed-responder-packets.md` - - `schemas/responder-packet.schema.json` - - `schemas/responder-output.schema.json` - - `examples/responder-packets/scene-02-sanctuary-intake.sella_ren.packet.v0.json` - - `examples/responder-packets/scene-02-sanctuary-intake.sella_ren.packet.v1.json` - - `examples/responder-packets/scene-02-sanctuary-intake.sella_ren.packet.research.v0.json` - - `experiments/responder-packets/cold-wake-sanctuary-intake-sella-v0.capture.json` - - `experiments/responder-packets/cold-wake-sanctuary-intake-sella-v0.mutation.json` - - `experiments/responder-packets/cold-wake-sanctuary-intake-sella-retrieval-v0.capture.json` - - `experiments/responder-packets/cold-wake-sanctuary-intake-sella-lane-comparison.v0.json` - - `tools/build_responder_packet.py` - - `tools/validate_responder_packets.py` - - `tools/validate_responder_outputs.py` - - `tools/apply_responder_output_mutation.py` - - `npm run responder-packets:validate` - - `npm run responder-outputs:validate` -- Cold Wake story-lab seam: - - `docs/experiments/cold-wake-story-lab.md` - - `examples/agent-state.cold-wake-story-lab.json` - - `examples/projections/cold-wake-story-lab.jsonl` - - `experiments/cold-wake-story-lab/the-narrowest-possible-margin.md` - - archived local-model prototype captures under `experiments/cold-wake-story-lab/` - - `tools/build_cold_wake_story_lab_fixture.py` -- Ink branching and mutation seam: - - `examples/ink/cold-wake-sanctuary-intake.ink` - - `examples/ink/cold-wake-sanctuary-intake.training.json` - - archived prototype Ink/capture receipts under `examples/ink/` and `experiments/ink/` - - `tools/validate_ink_examples.py` - - `tools/materialize_sequential_capture.py` - - `tools/apply_sequential_ink_branch_mutation.py` - - `inkjs` dev dependency and `npm run ink:validate` -- projected local context seam: - - `schemas/projected-local-context.schema.json` - - `examples/projected-contexts/scene-02-sanctuary-intake.maer_tidecall.projected-context.json` - - `examples/projected-contexts/scene-02-sanctuary-intake.sella_ren.projected-context.json` - - `tools/project_local_context.py` - - `tools/validate_projected_contexts.py` - - includes an embodiment/interface section so Navigator action is projected - from checked Aetheria lore instead of default human body assumptions; - - now includes `runtime_retrieval_requirements` and - `latent_pressure_requirements` so compact lore facts and character-local - scars survive projection without becoming mandatory confession prose; - current source supports fluid architecture, acoustic signaling, communal - orientation chambers, mixed-species translation/coexistence, and specialized - cetacean environments; AetheriaLore has now been patched with mixed - wet/dry habitat and interface ergonomics -- Cold Wake fixture note: - - `docs/architecture/aetheria-cold-wake-training-fixture.md` -- first projection example seam: - - `schemas/projection-example.schema.json` - - `examples/projections/call-of-the-void.scene-broken-taxi-oz.jsonl` - - `examples/projections/call-of-the-void.scene-broken-taxi-oz.pretty.json` - - `tools/validate_projection_examples.py` -- visitor-facing README refreshed to explain Ghostlight's goals +The live product-facing goal is procedural branching scene generation for games: +speech and non-speech actions, NPC responses, consequences, future hooks, and +state/memory/social-perception mutation. The wider ambition includes narrated +story scaffolding, Elysium branch exploration, psychologically grounded consumer +behavior, major faction decision-making, and technology/item manifest generation. -There is still no full runtime yet. The live machine is design, state -discipline, a cleaner repo boundary, the first executable state contract, a -documented projection path, the first Ink-backed playable branching scene, the -first prototype-generated Ink draft with reviewed training annotations, and the -first reviewed mutation receipt showing how a selected generated branch changes -both involved characters. The soft-model training doctrine is now explicit: -deterministic gates stay code, while fuzzy judgments become reviewed artifacts -for future coordinator/story-runtime, projector, character-agent, appraiser, -mutator, relationship/perception, Aetheria responder, and -institution/faction/consumer decision models. -The coordinator is currently the authoring agent: it glues scenes together, -maintains continuity, chooses which machinery runs, emits connective prose, and -proposes world-state changes. Keep those outputs structured enough for future -game-engine integration instead of letting them rot as chat-only intuition. -Gold responder data must be sandboxed. The coordinator may be omniscient, but a -responder example is only valid if the acting worker saw exactly the projected -local packet, visible event, allowed action space, and explicitly included source -excerpts. Do not let responder workers inherit full chat/coordinator context when -generating training data. Preserve exact responder-visible input, raw output, -reviewed output, hidden-context refs, leakage audit, isolation method, and -coordinator intervention labels. Coordinator repairs are allowed, but they must -be labeled as repairs rather than treated as raw responder behavior. -The concrete training plan now enumerates the trainable stages, their inputs, -outputs, likely model families, artifact families, and pilot corpus gates. The -listed pilot counts are schema shakedown thresholds, not robust training -targets. They exist to expose missing fields, bad boundaries, leakage risks, and -validator gaps before large data generation. Robust organs will need roughly an -order of magnitude more examples, with separate review-assistant and runtime -targets. -The first coordinator artifact seam now exists. It captures scene setup, -next-beat choice, acting-agent choice, machinery invocation plan, sandboxed -responder handoffs, world-state refs, proposed deltas, branch constraints, -item-manifest deltas, unresolved hooks, glue prose, and review status. The first -example is a backfilled Cold Wake sanctuary packet-assessment artifact accepted -as draft for schema shakedown, not gold responder data. -The first responder packet seam now exists. It converts a coordinator artifact -and projected local context into the exact packet-only prompt surface a -character responder may see, with visible event, allowed actions, source -excerpts, hidden-context audit, isolation requirements, output contract, and -validator checks against raw-state or coordinator-context leakage. The first -Sella packet is accepted as draft for sandbox testing, not as gold responder -output. The first no-fork responder output capture now also exists and is -accepted as draft: the worker received only the packet prompt, returned valid -JSON, preserved Sella's read as interpretation, left packet personhood -unresolved, and required no coordinator prose repair. -Responder data now has two explicit lanes. `packet_only` is the runtime-parity -lane: curated source excerpts are in the packet and the responder does not -search lore. `retrieval_augmented` is the lore-absorption lane: the coordinator -or a retrieval worker searches a declared AetheriaLore scope, then gives the -responder a bounded packet. Do not use retrieval-augmented examples as proof -that the packet-only runtime prompt has enough context, and do not describe -them as autonomous responder research unless the responder actually had repo -access. -There is now an explicit research-enabled mode: -`responder_scoped_repository_search`. Use it only when the responder is allowed -to inspect the declared lore scope. The packet must include `Required Lore -Research`, `allowed_scope`, and `research_instructions`; the output capture must -include consulted refs and a research summary. A research-enabled responder that -answers without consulting lore has failed the assignment, bless its little -unexamined heart. -The first concrete research-enabled Sella packet now exists at -`examples/responder-packets/scene-02-sanctuary-intake.sella_ren.packet.research.v0.json`. -It is generated with -`tools/build_responder_packet.py --lore-access-mode responder_scoped_repository_search`, -sets `no_repo_access` false, and requires `consulted_refs` plus -`research_summary` in the responder object. -The v1 Sella packet removes responder-visible references to absent coordinator -knowledge and adds curated AetheriaLore excerpts for Cold Wake, the Ganymede -Route Compact, Navigator rescue ledgers, and Lightsail reliability. -The packet builder now gets those source excerpts from projected -`runtime_retrieval_requirements` rather than from a static hand-written list. -For the current Sella packet, that pulls Cold Wake heat-debt, Navigator rescue -ledger, Aya sanctuary-capacity, and Ganymede/Lightsail route-obligation facts -into packet-only context. -The packet-only Sella capture has now been materialized into a reviewed mutation -receipt and mutated fixture: -`examples/agent-state.cold-wake-story-lab.after-sella-conditions.json`. The -mutation accepts a conditional cold repair-bay path as scene-local state, keeps -packet personhood unresolved, and updates Maer and Sella state, relationship -stance, memories, and perceived overlays. -The first retrieval-augmented Sella capture also exists. It uses -coordinator-selected scoped AetheriaLore refs and produces richer -Aetheria-native language around heat-debt timing, rescue ledgers, dockfall -burden, and sanctuary as moral-debt sink. The lane comparison records that this -is good lore-absorption data but not proof of packet-only runtime sufficiency. -Follow-up review clarified the real concern: Sella's packet-visible -sanctuary-collapse scar does not need to surface in speech, but it must remain -visible to the responder as latent behavioral pressure. Future -projector/retrieval review should verify pressure availability, not reward -mission-critical trauma-dumping. -It now uses three timeline lanes: `historical_grounded`, -`transition_grounded`, and `future_branch`. Future branches are required -training/evaluation material for post-Rupture Elysium concepts, but generated -branch assumptions are branch-local canon indexed by lineage, not global facts -shared by every Elysium history. +## Current Focus -## Current Direction +The active path is not the archived local-model prototype runner. The active +path is: -Use Ghostlight first for: +1. Source-ground Aetheria context. +2. Project canonical state into character-local operating context. +3. Build an exact responder packet. +4. Run a sandboxed responder with only the allowed packet/context/research scope. +5. Capture raw output, consulted refs, research summary, reviewed output, + leakage audit, and coordinator interventions. +6. Apply only reviewed mutations into state, memory, relationships, perceived + overlays, and unresolved hooks. -- content generation inside the Call of the Void slice described in - `AetheriaLore` -- dialogue scaffolding and procedural drama for narrated Aetheria timeline - stories +## Live Seams -Cold Wake is now selected as the first historical grounding fixture because it -is authored pre-Elysium lore. It is not the current game target. Treat it as -training feedstock for projection and dialogue scaffolding. +- Canonical map: `state/map.yaml` +- Current system map: `notes/ghostlight-current-system-map.md` +- Implementation plan: `notes/ghostlight-implementation-plan.md` +- Agent-state schema: `schemas/agent-state.schema.json` +- Projected local context schema: `schemas/projected-local-context.schema.json` +- Coordinator artifact schema: `schemas/coordinator-artifact.schema.json` +- Responder packet schema: `schemas/responder-packet.schema.json` +- Responder output schema: `schemas/responder-output.schema.json` +- Research-enabled Sella packet: `examples/responder-packets/scene-02-sanctuary-intake.sella_ren.packet.research.v0.json` +- Packet builder: `tools/build_responder_packet.py` +- Packet/output validators: `tools/validate_responder_packets.py`, `tools/validate_responder_outputs.py` -## Aetheria Grounding Doctrine +Archived prototype captures and tools remain as evidence under `experiments/`, +`examples/ink/`, and old `run_qwen_*` helpers. They are useful receipts, not the +current gold-data route. -Before writing or generating Aetheria scenes, check AetheriaLore for the -factions, movements, institutions, species or body types, location, and time -period involved. If a blocking detail is missing, patch the lore source with a -narrow elaboration before treating the detail as available to Ghostlight. +## Aetheria Doctrine + +- Cold Wake is a historical pre-Elysium grounding fixture, not the product target. +- Call of the Void remains a consumer target for content generation and dialogue scaffolding. +- Elysium futures are branch-local canon indexed by lineage. +- Before generating Aetheria scenes, check lore for factions, movements, + institutions, species/body affordances, location, time period, infrastructure, + and material constraints. +- If a blocking lore gap appears, patch AetheriaLore narrowly before treating the + detail as available to Ghostlight. +- Technology exploration should emit database-shaped item/assembly/component/ + supply-chain candidates mapped toward Aetheria-Economy's CultCache item model. ## Current Next Action Run a sandboxed no-fork research-enabled responder against `examples/responder-packets/scene-02-sanctuary-intake.sella_ren.packet.research.v0.json`, allowing only the declared AetheriaLore scope. Capture exact visible input, -consulted refs, research summary, raw output, review labels, and leakage audit. -Review whether the output uses institutional lore and latent pressure without -prompt parroting, omniscience, or mission-critical trauma-dumping. Do not use -archived local-model prototype runners for gold responder data. - -Cat/Oz remains useful as an Elysium procedural mechanics fixture, but -single-history grounding should start from authored historical lore rather than -gameplay-era Elysium outcomes. -Post-Rupture future branches should be generated too, under explicit branch -labels, so the models learn Aetheria concepts that only exist after the -Rupture: Aether, pseudospace, temporal nonlinearity, spirits, necrotech, -mutable bodies, altered substrates, and the fresh little institutional crimes -that grow around them. -Future branches now also need event constraint labels: -`branch_attractor`, `fated_event`, `tech_order_constraint`, `quest_injection`, -or `branch_local_event`. This supports likely Elysium faction births, authored -rails, baked-in technology order, and quest injection into active timelines. -Future and historical exploration should also emit technology/item manifest -data: item families, variants, assemblies, subassemblies, components, materials, -faction tech-base access, prerequisites, bottlenecks, compatibility rules, -upgrade surfaces, economic consequences, and quest hooks. Pre-Elysium starting -tech is part of this because factions enter Elysium with asymmetric industrial -bases and supply chains. -Existing named but nebulous technologies should be elaborated into blueprint -candidates during the same process. Separate source facts, inferred -engineering, and open lore gaps so item database candidates do not pretend the -timeline already answered every manufacturing question. -The concrete schema target already exists in Aetheria-Economy: CultCache-backed -`ItemData` subclasses are technological blueprint records. `SimpleCommodityData` -defines fungible resources, `CompoundCommodityData` defines assemblies, -subassemblies, components, processed materials, and crafted economic units, -`ConsumableItemData` defines usable consumables, and `GearData` plus other -`EquippableItemData` subclasses define top-level usable gear. Runtime -`ItemInstance` objects carry realized quality, provenance, manufacturer -branding, assembly history, and world-state placement. Ghostlight should attach -recipes, assembly trees, compatibility, tooling, facilities, process -requirements, and supply-chain dependencies to the relevant blueprint as -manifest metadata or engine-schema gaps until Aetheria-Economy exposes explicit -storage for those details. -The player-facing fantasy is provenance hunting. An ultimate laser is not only a -high-stat blueprint; it is a realized artifact assembled from rare or excellent -subsystems, manufacturer processes, repair history, counterfeit substitutions, -salvage scars, ownership chains, and operating conditions. Players should be -able to follow those threads through trade, salvage, espionage, faction access, -obsolete factories, and miserable little wars over parts like a beam-control -wafer some dead manufacturer only made for nine months before regulators ate the -board. -Ghostlight's job is to make that content scalable without turning it into -sludge. Treat the technology pipeline as a content refinery: ground the concept -in lore, decompose it into parts and supply chains, map it to the economy -blueprint classes, define performance and instance variation, preserve review -labels and source gaps, then emit database-shaped candidates instead of another -spreadsheet swamp. - -The evaluation follow-up fixed the immediate v0 schema issues: - -- `behavioral_dimensions.warmth` became `interpersonal_warmth` -- `voice_style.warmth` became `verbal_warmth` -- Cat now has a perceived-state overlay for Oz -- Cat and Oz now have relationship summary memories -- `event-drone-lie` now includes observed exchange, private interpretations, - and event effects - -Completed projection path items: - -- defined projection examples, Cold Wake grounding, story-lab fixtures, and projection controls -- adopted Ink as the playable branching scene format -- built and validated local-awareness, projected-context, responder-packet, capture, and mutation seams -- preserved archived local-model prototype captures as reviewed receipts, not active guidance -- materialized one accepted projector-routed prototype branch into Ink, sidecar annotation, mutation receipt, and mutated fixture -- extracted the important lessons: character-local context, source-checked embodiment, object custody, per-turn consolidation, structured failure receipts, and no raw-state leakage into responder prompts - -Remaining projection path: - -- build a deterministic speaker-local input slicer -- build a renderer that emits projection controls before prompt prose -- review the embodiment-aware materialized v10 Ink and mutation receipt for - narrative quality and state-change plausibility -- keep using sandboxed responder packets and reviewed outputs for fresh - generation passes -- source-checked retries improved Maer's grounded embodiment, but no capture was - materialized because Sella appraisal/response still exposed object-custody - drift, invented mutation paths, structured-output dropout, or - prompt-constraint leakage -- next pass should focus on separating response constraints from in-world prose - before chasing another materialized Ink branch -- decide whether to polish this Ink text by hand or generalize the sequential - materializer for future accepted captures -- preserve the no-thinking default for strict tool-call generation unless a - diagnostic run explicitly needs `--think` -- improve the local-awareness-to-Ink prompt so semantic `training_hooks` do not - drift into future branch ids, object custody remains branch-local, and action - labels come from the exact canonical enum -- materialize a validated sequential branch into Ink -- keep the near-term product target to interactive dialogue trees and - scene-local consequences -- preserve training-data hooks for future open-world behavior, iterated - decisions, psychologically grounded consumer choices, scarcity/reputation - pressure, and major faction or institution decision-making -- defer implementing world-scale simulation loops, autonomous offscreen - factions, economy loops, and long-horizon plot machinery until the scene-local - machine works -- use a frontier teacher model to generate/audit projection artifacts -- train a smaller student projector only after the artifact schema, input - slicer, and evaluator stabilize -- treat the character agent/responder as a training target too: an - Aetheria-tuned local model can eventually learn lore, tone, factional - preconceptions, species affordances, and institutional pressure from a corpus - of strong responses spread throughout the timeline plus reviewed Ghostlight - receipts, while still acting only inside character-local context and - deterministic mutation gates -- require responder sandboxing before gold data generation: exact - responder-visible input, raw output, reviewed output, hidden-context refs, - leakage audit, isolation method, and coordinator repair labels must be saved +consulted refs, research summary, raw output, review labels, leakage audit, and +any coordinator intervention. Review whether the output uses institutional lore +and latent pressure without prompt parroting, omniscience, or mission-critical +trauma-dumping. Do not use archived local-model prototype runners for gold +responder data. ## Warnings -- Do not let this repo become a mirror maze of notes that say the same thing - in slightly different outfits. -- Keep canonical state small. If evidence starts turning into an activity feed, - cut it back. -- Keep the prompt-projection doctrine intact: prompt text is projection, not - truth storage. -- Do not accidentally re-promote the older corridor-crisis idea into a game MVP - because an old doc had a strong chin and good lighting. -- `notes/evaluation.md` may exist as an untracked user-supplied file for the - next session. It was intentionally left unread and uncommitted during the - compaction prep. +- Keep persistent state small. Git history and artifacts own chronology. +- Do not let notes, map, handoff, and evidence become four versions of the same brain. +- Do not train on coordinator-repaired responder prose unless the repair is labeled. +- Do not let Elysium branch futures overwrite Sol single-history facts. +- Do not rebuild the older corridor-crisis game slice by accident. diff --git a/notes/ghostlight-current-system-map.md b/notes/ghostlight-current-system-map.md index 3dcd2f1..832b3c0 100644 --- a/notes/ghostlight-current-system-map.md +++ b/notes/ghostlight-current-system-map.md @@ -1,284 +1,83 @@ # Ghostlight Current System Map -Ghostlight does not have a runtime yet. The live system right now is the repo's -state and re-entry discipline. +Ghostlight still does not have a full runtime. The live system is a set of +validated artifact seams for producing reviewed training data. -## Current Control Flow +## Control Flow -1. A user or agent enters the repo with a bounded question or implementation - goal. -2. The session rehydrates from: - - `state/map.yaml` - - `notes/fresh-workspace-handoff.md` - - this file - - `notes/ghostlight-implementation-plan.md` -3. The session runs `npm run state:status` to recover the current summary, next - action, and active subgoals. -4. Work happens in one bounded slice. -5. If understanding changes, the map is updated. -6. If future belief changes, distilled evidence is appended. -7. If compaction pressure rises, the helper audits state hygiene before the - session banks the fire. +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. -## Live Surfaces +## Core Surfaces -- `state/map.yaml` - - canonical experiment, objective, constraints, invariants, active subgoals, - accepted design, and current status -- `state/scratch.md` - - temporary working memory for one bounded organ -- `state/evidence.jsonl` - - durable belief-changing records only -- `state/branches.json` - - explicit hypothesis or branch tracking -- `notes/fresh-workspace-handoff.md` - - re-entry packet -- `notes/ghostlight-implementation-plan.md` - - larger-organ sequence -- `docs/research/` - - research backlog and social-model notes -- `docs/architecture/` - - world, state, and prompt-system architecture notes -- `docs/architecture/prompt-projection-contract.md` - - contract for turning durable state into speaker-local pressure prose and - prompt sections -- `docs/architecture/projection-distillation-plan.md` - - plan for using a frontier teacher model to generate reviewed projection - artifacts before training a smaller student projector -- `docs/architecture/sequential-agent-runtime.md` - - scene-local dialogue/runtime loop where agents act from local awareness, - generated actions become event proposals, and bounded state mutation drives - branchable speech or non-speech scene consequences while preserving - training hooks for later open-world, economic, and faction decision models -- `docs/architecture/ink-branching-scenes.md` - - integration contract that makes Ink the standard playable branch format - while Ghostlight owns local awareness, projection rationale, consequence - review, and state mutation around Ink scenes -- `docs/experiments/cold-wake-story-lab.md` - - four-scene Cold Wake writing experiment using Ghostlight projection as a - story-generation crutch and training-data source -- `docs/architecture/schema-future-mechanisms.md` - - parking lot for appraisal, transition, belief, action, conversation, - resource, dyad, institution, memory, and embodiment mechanisms not yet - promoted into the v0 schema -- `docs/architecture/aetheria-lore-grounding-architecture.md` - - boundary and plan for grounding single-history training data in authored - Aetheria history while treating Elysium gameplay-era outcomes as - conditional branch canon; - includes the source-first doctrine for checking AetheriaLore and patching - blocking lore gaps before generation, plus a `future_branch` lane for - reviewed possible post-Rupture Elysium futures -- `docs/architecture/lore-grounding-digest-format.md` - - human-facing format guide for cultural, factional, institutional, role, and - speaker-boundary lore digests -- `docs/architecture/projected-local-context.md` - - contract for the projector seam that turns canonical state into - character-local operating context before a response model sees it, - including source-checked embodiment and interface affordances, runtime - retrieval requirements, and latent pressure handling -- `docs/architecture/soft-model-training-artifacts.md` - - doctrine for treating every non-deterministic judgment as reviewed - training material for future specialized models, including - coordinator/story runtime, projector, character agent/responder, appraiser, - state mutator, relationship/perception classifier, Aetheria responder, and - institution/faction/consumer decision models -- `docs/architecture/sandboxed-responder-packets.md` - - contract for the exact packet-only surface handed from an omniscient - coordinator to a sandboxed character responder, including visible event, - local prompt, allowed actions, source excerpts, hidden-context audit, and - output contract; also defines the separate `packet_only` and - `retrieval_augmented` responder-data lanes -- `docs/architecture/training-plan.md` - - concrete enumeration of trainable Ghostlight stages, including each stage's - inputs, outputs, likely model architecture, artifact family, first training - gate, and timeline coverage across historical grounded, transition - grounded, and future-branch examples -- `docs/architecture/technology-item-manifest-plan.md` - - plan for turning coordinator-led Aetheria exploration into game-usable - item, component, assembly, faction tech-base, prerequisite, supply-chain, - and upgrade-path data, including elaboration of existing nebulous named - technologies into blueprint candidates; now explicitly targets the - Aetheria-Economy CultCache `ItemData` technological blueprint classes - instead of a parallel Ghostlight item database -- `docs/architecture/aetheria-cold-wake-training-fixture.md` - - human-facing note that reframes the recovered Cold Wake scenario as - historical projection feedstock rather than the active product target -- `schemas/agent-state.schema.json` - - v0 canonical agent-state contract for agents, relationships, events, - scenes, perceived overlays, and dialogue context packs -- `schemas/projection-example.schema.json` - - v0 reviewed projection artifact contract for speaker-local prompt - projection examples, including projection controls for frame, authority, - object custody, required semantics, and forbidden resolutions -- `schemas/lore-grounding-digest.schema.json` - - v0 contract for grounding historical fixtures in source-backed cultural and - factional pressure fields -- `schemas/projected-local-context.schema.json` - - v0 contract for projected character-local operating context artifacts, - including structured runtime retrieval requirements and latent pressure - requirements -- `schemas/coordinator-artifact.schema.json` - - v0 contract for coordinator/story-runtime receipts: scene setup, - next-beat choice, acting-agent choice, machinery invocations, sandboxed - responder handoffs, world-state refs, proposed deltas, branch constraints, - item-manifest deltas, unresolved hooks, glue prose, and review notes -- `schemas/responder-packet.schema.json` - - v0 contract for the exact input a sandboxed character responder may see, - now lane-labeled as `packet_only` or `retrieval_augmented` with explicit - lore-access policy; research-enabled packets can require - responder-scoped repository search with visible research instructions -- `schemas/responder-output.schema.json` - - v0 contract for reviewed captures from sandboxed responder workers, - preserving raw output, parsed output, isolation method, leakage audit, and - coordinator review; output captures also preserve generation lane and - consulted lore refs, and research-enabled captures can preserve a research - summary -- `schemas/agent-state.required-fields.json` - - required first-class variable names for canonical state and relationship - stance -- `examples/agent-state.call-of-the-void.json` - - first Call of the Void-flavored fixture for schema and projection work -- `examples/agent-state.cold-wake-story-lab.json` - - first story-shaped historical fixture for Cold Wake projection work -- `examples/projections/call-of-the-void.scene-broken-taxi-oz.jsonl` - - first reviewed Cat and Oz projection examples -- `examples/projections/call-of-the-void.scene-broken-taxi-oz.pretty.json` - - pretty-printed mirror for inspecting the first projection examples -- `examples/projections/cold-wake-story-lab.jsonl` - - response-turn projection examples for the Cold Wake story lab, including - rejected and accepted Maer/Veyr prompt revisions -- `examples/coordinator/cold-wake-sanctuary-intake.v0.json` - - first coordinator artifact schema-shakedown example, backfilled from the - accepted-as-draft sanctuary packet-assessment beat and explicitly marked as - not gold responder data -- `examples/responder-packets/scene-02-sanctuary-intake.sella_ren.packet.v0.json` - - first responder-packet schema-shakedown example for Sella's sanctuary - response; accepted as draft for sandbox handoff testing, not gold responder - output -- `examples/responder-packets/scene-02-sanctuary-intake.sella_ren.packet.v1.json` - - corrected packet-only Sella handoff with absent hidden context moved out of - responder-visible prose and curated AetheriaLore excerpts added for Cold - Wake, Ganymede rescue obligations, Navigator rescue ledgers, and Lightsail - reliability -- `examples/responder-packets/scene-02-sanctuary-intake.sella_ren.packet.research.v0.json` - - first concrete research-enabled Sella handoff; it uses - `responder_scoped_repository_search`, declares the allowed AetheriaLore - scope, permits repo access only for that scope, and requires consulted refs - plus research summary in the responder object -- `experiments/responder-packets/cold-wake-sanctuary-intake-sella-v0.capture.json` - - first no-fork sandboxed responder output capture from the Sella packet; - accepted as draft with no leakage flags and no coordinator prose repair -- `experiments/responder-packets/cold-wake-sanctuary-intake-sella-v0.mutation.json` - - reviewed mutation receipt that materializes the packet-only Sella response - into scene-local state, relationship, memory, perceived-overlay, and - unresolved-hook updates without resolving packet personhood -- `experiments/responder-packets/cold-wake-sanctuary-intake-sella-retrieval-v0.capture.json` - - first retrieval-augmented responder capture using coordinator-selected - scoped AetheriaLore refs - for Aya sanctuary politics, Cold Wake heat-debt pressure, Navigator rescue - ledgers, Ganymede route obligations, and Lightsail reliability -- `experiments/responder-packets/cold-wake-sanctuary-intake-sella-lane-comparison.v0.json` - - comparison artifact showing the packet-only lane proves bounded runtime - competence while the retrieval-augmented lane adds stronger - Aetheria-native institutional texture, retrieval lessons, and a warning - that character backstory must remain available as latent pressure -- `experiments/cold-wake-story-lab/` - - archived local-model response captures and reviews from the writing experiment - - `the-narrowest-possible-margin.md`, the first readable short story - assembled from accepted projection outputs -- `examples/lore-grounding/historical-flashpoint.template.json` - - fillable template for the first historical Aetheria grounding digest -- `examples/lore-grounding/cold-wake-panic.ganymede-corridor.json` - - first draft historical grounding digest, centered on Cold Wake Panic in the - Ganymede/Jovian corridor -- `examples/ink/cold-wake-sanctuary-intake.ink` - - first playable Ink-backed Cold Wake branching scene, using speech, gesture, - object revelation, and moral-pressure branches -- `examples/ink/cold-wake-sanctuary-intake.training.json` - - reviewed sidecar annotation tying Ink branches to Ghostlight local - awareness, projection controls, branch rationale, consequence surfaces, and - manual mutation policy -- archived local-model prototype Ink and capture receipts - - older files with `qwen` in the path remain in `examples/ink/` and - `experiments/ink/` as historical receipts; they are not the active - generation path and should not steer new gold-data work unless model - plumbing is explicitly being tested -- `tools/ghostlight_state.py` - - compact state inspection and evidence or branch updates -- `tools/ghostlight_prepare_compaction.py` - - pre-compaction audit of required files, handoff content, and git hygiene -- `tools/validate_agent_state.py` - - dependency-free validator for the current schema fixture invariants -- `tools/validate_projection_examples.py` - - dependency-free validator for projection example JSONL records -- archived local-model prototype tools - - older `run_qwen_*`, `materialize_qwen_*`, `validate_qwen_captures.py`, and - `check_qwen_chat_tools.py` helpers remain for validating historical - receipts and testing model plumbing; they are not the active gold-data path -- `tools/validate_lore_grounding.py` - - dependency-free validator for lore grounding digest examples -- `tools/validate_ink_examples.py` - - compiles Ink examples with `inkjs` and validates sidecar training - annotations plus reviewed prototype Ink-generation captures -- `tools/materialize_sequential_capture.py` - - turns an accepted sequential capture into playable Ink, sidecar annotation, - reviewed mutation receipt, and a mutated fixture -- `tools/project_local_context.py` - - deterministic first projector that compiles canonical state, scene facts, - relationships, memories, projection controls, and optional observed event - into character-local operating prose; for cetacean Navigators it projects - source-checked habitat affordances from AetheriaLore instead of generic - human body defaults; now emits scene-triggered compact lore retrieval - requirements and latent character-history pressure requirements -- `tools/validate_projected_contexts.py` - - validates projected context artifacts and rejects prompt text that leaks raw - canonical state internals -- `tools/validate_coordinator_artifacts.py` - - validates v0 coordinator artifacts, including sandboxed responder handoff - fields, world-state refs, branch constraints, proposed deltas, unresolved - hooks, and review status -- `tools/build_responder_packet.py` - - builds packet-only or research-enabled responder handoffs from a coordinator - artifact and projected local context; source excerpts now come from active - projected runtime retrieval requirements instead of a static lore list -- `tools/validate_responder_packets.py` - - validates responder packets and rejects prompt surfaces that leak raw state - internals or hidden coordinator context markers -- `tools/validate_responder_outputs.py` - - validates sandboxed responder output captures, including exact raw-to-parsed - JSON agreement, no-fork isolation, action labels, leakage audit, and review - metadata; also validates responder mutation receipts -- `tools/apply_responder_output_mutation.py` - - applies a reviewed responder-output capture into a mutated agent-state - fixture and mutation receipt -- `tools/apply_sequential_ink_branch_mutation.py` - - applies a reviewed replay of one selected branch into a mutated agent-state - fixture and mutation receipt without letting Ink variables become - canonical truth -- `tools/build_cold_wake_story_lab_fixture.py` - - generator for the verbose Cold Wake story-lab state fixture +- `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. +- `notes/fresh-workspace-handoff.md`: compact re-entry packet. +- `notes/ghostlight-implementation-plan.md`: near-term implementation sequence. +- `docs/architecture/`: detailed contracts and rationale. -## What Does Not Exist Yet +## Active Artifact Pipeline -- a classifier pipeline -- a prompt renderer -- a full projection training corpus -- a deterministic projection input slicer -- a student projection model -- a simulation/event loop implementation -- a relationship engine -- a culture prior engine -- an automatic Ink branch generator from local awareness -- automatic promotion of Ink branch outcomes into canonical state +```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 + -> mutation receipt + -> updated fixture / future training corpus +``` -The canonical schemas and first Cold Wake fixture seams now exist as v0 -contracts. Archived local-model prototype receipts proved useful for discovering -architecture lessons, but the active path is now sandboxed responder packets, -source-grounded local context, reviewed outputs, and audited mutation receipts. -Deterministic gates stay code; fuzzy coordination, projection, action choice, -appraisal, mutation, relationship movement, Aetheria responder training, and -economic/faction decision judgments become reviewed artifacts for later -fine-tuning or distillation. The next gold-data pass should use the concrete -research-enabled Sella packet and preserve exact visible input, consulted refs, -research summary, raw output, reviewed output, hidden-context refs, leakage -audit, isolation method, and coordinator intervention labels. +## 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` + +## Current Live Example + +- Research-enabled packet: + `examples/responder-packets/scene-02-sanctuary-intake.sella_ren.packet.research.v0.json` +- It uses `responder_scoped_repository_search`, allows only declared + AetheriaLore scope, and requires `consulted_refs` plus `research_summary`. +- The next useful sample should be generated through a no-fork sandboxed + responder, not through archived local-model prototype runners. + +## Archived Receipts + +Old local-model prototype files with `qwen` in their paths remain useful for +validation and lessons about structured-output failure, object custody, +embodiment, prompt leakage, and materialization. They are not active direction. +Do not let them steer gold responder data unless the task is explicitly model +plumbing. + +## Missing Organs + +- Deterministic speaker-local input slicer +- Full prompt renderer +- Classifier/appraiser pipeline +- Relationship/perception updater +- State mutator model +- Student projector +- Full scene/event loop implementation +- Culture prior engine +- Automatic promotion of branch outcomes into canonical state + +## Current North Star + +Generate high-quality, sandboxed, source-grounded responder/coordinator 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, and clear branch consequences. diff --git a/notes/ghostlight-implementation-plan.md b/notes/ghostlight-implementation-plan.md index 7995739..6f13eee 100644 --- a/notes/ghostlight-implementation-plan.md +++ b/notes/ghostlight-implementation-plan.md @@ -1,398 +1,63 @@ # Ghostlight Implementation Plan +## Current Phase + +Build the first reliable data-generation loop for socially persistent Aetheria +agents. The immediate target is not a full simulation. It is a clean, reviewed, +sandboxed training-data pipeline for branching scenes and state consequences. + ## Near-Term Sequence -1. 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. +1. Stabilize canonical state and projection seams. + - Keep `schemas/agent-state.schema.json` and required vectors coherent. + - Keep canonical state separate from perceived overlays. + - Keep voice, presentation, relationship, memory, and situational pressure explainable. + - Do not leak raw numeric state internals into responder prompt text. -2. 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. +2. Stabilize responder packet and output seams. + - Use `schemas/responder-packet.schema.json` and `schemas/responder-output.schema.json`. + - Build packets from coordinator artifacts plus projected local context. + - Preserve exact responder-visible input, hidden-context audit, allowed actions, source excerpts, output contract, and lore-access mode. + - Preserve raw output, parsed output, review labels, consulted refs, research summary, leakage audit, and coordinator interventions. -3. Build the prompt projection layer for authoring. - - Use `docs/architecture/prompt-projection-contract.md` as the first - renderer contract. - - Use `docs/architecture/schema-future-mechanisms.md` to 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. +3. Generate the next research-enabled responder sample. + - Use `examples/responder-packets/scene-02-sanctuary-intake.sella_ren.packet.research.v0.json`. + - Run a no-fork sandboxed responder with only the packet and declared lore scope. + - Require actual lore consultation before answering. + - Review for institutional grounding, latent character pressure, non-omniscience, prompt parroting, and mission-critical trauma-dumping. + - Do not use archived local-model prototype runners for gold responder data. -4. Build the scene-local sequential dialogue loop. New target. - - Use `docs/architecture/sequential-agent-runtime.md` as the first runtime - contract. - - Use `docs/architecture/ink-branching-scenes.md` as the branch-format - contract. Ink owns playable branching scenes; Ghostlight owns local - awareness, projection rationale, consequences, and reviewed state mutation. - - Keep the product target narrow: procedural branching scene trees for games - first. "Dialogue tree" means speech and non-speech actions, not only - spoken lines. - - 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. - - Consolidate participant appraisals and state mutation after every - resolved action before selecting the next actor; hurt, threat, - reassurance, obligation, overload, and misread should alter the state any - affected participant acts from. - - 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: Ink scene source, compiled Ink JSON, scene - transcript, candidate player choices, including non-speech actions, NPC response branches, - state/memory/social-perception deltas, and unresolved hooks. - - For protagonist scenes, generate several plausible things the protagonist - could do from state and affordances, then generate NPC responses and branch - consequences such as trust loss, suspicion, obligation, debt, resource - cost, information exposure, or future scene 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: express one Cold Wake story-lab beat as Ink, compile it, - and validate a sidecar training annotation that maps branches to - Ghostlight state basis, action intent, consequence surfaces, and manual - mutation policy. - - Archived prototype drafts produced branch candidates from local awareness and proved the Ink materialization seam. - - First sequential prototype draft separated actor-local choice, participant appraisal/consolidation, and - the next actor's move from updated state. The first saved capture is - useful-needs-revision because it exposed the missing per-turn appraisal - boundary and weak action enum discipline. - - First reviewed branch mutation: use - `tools/apply_sequential_ink_branch_mutation.py` to apply one selected - generated branch into - `examples/agent-state.cold-wake-story-lab.after-sanctuary-ledger.json` - and a mutation receipt, updating both Maer and Sella without treating Ink - variables as canonical truth. - - Second sequential draft: the symmetrical turn framing produced canonical - action labels and a concrete Sella `withhold_object` next action, but - still needs stricter schema or tool-call enforcement because array fields - drifted into strings and objects. - - Archived local-model invocation lesson: model-specific chat/tool - formatting belongs in runner code and must not leak into Ghostlight - artifact formats. - - Projector gap: the sequential runner still sends selected raw numeric - state variables into prompts. This is archived scaffolding for local-model - plumbing tests, not the final Ghostlight architecture. - - Projector prototype: `tools/project_local_context.py` now turns canonical - variables, memory, relationship stance, culture, and scene pressure into - compact character-local operating context and action affordances. - - Projected-context artifacts use - `ghostlight.projected_local_context.v0` and validate through - `tools/validate_projected_contexts.py`; rendered prompt text must not leak - raw state internals such as `current_activation`, `plasticity`, means, or - decimal state values. - - Runtime retrieval/projector correction: projected contexts now carry - `runtime_retrieval_requirements` and `latent_pressure_requirements`. - Retrieval requirements render compact lore facts for scene-relevant - pressures; latent pressure requirements keep character history visible as - behavior-shaping context without forcing it into speech. - - Embodiment correction: projected local context now includes a first-class - embodiment/interface section. Aetheria faction affordances must be checked - against lore before projection. Current Navigator source supports fluid - architecture, acoustic signaling, soft navigation light, layered water - motifs, communal orientation chambers, mixed-species - translation/coexistence, specialized cetacean environments, and, after a - source patch, mixed wet/dry habitat and interface ergonomics. - - Aetheria generation doctrine: before writing scenes or generating training - data, check AetheriaLore for factions, movements, institutions, species or - body types, location, and time period. If a blocking room-scale detail is - missing, patch AetheriaLore narrowly before treating that detail as - available to projection. - - A later sequential prototype routed structured generation through - projected local context instead of selected activation dictionaries and - proved the projector boundary while preserving malformed-output failures - as receipts. - - Runner tightening: failed Maer choice generation now writes reviewed - receipts instead of exiting, obvious malformed stringified tool arrays can - be repaired, repair notes are separated from fatal validation notes, and - Sella's next-action prompt receives appraisal prose instead of raw numeric - deltas. - - Later sequential prototype drafts captured malformed structured output, - no-call dropouts, and schema-looping as reviewed failure receipts. These - are runner/model reliability lessons, not active architecture targets. - - V10 materialization: `tools/materialize_sequential_capture.py` - materialized the accepted projector-routed capture into Ink, sidecar - annotation, reviewed mutation receipt, and a mutated Cold Wake fixture. - - Next prototype work should use sandboxed responder packets and reviewed - outputs; do not revive the archived local-model runner unless explicitly - testing model plumbing. - - Source-checked retry results: v11-v17 improved Maer's body/interface - behavior substantially, producing packet actions through shared clinic - displays and mixed wet/dry affordances instead of humanoid action. No - capture was materialized because later passes exposed repair notes, - object-custody drift, invented mutation paths, one local-model appraisal - tool-call dropout, and prompt-constraint leakage into Sella prose. - - Validation correction: the sequential runner now checks Maer embodiment, - Cold Wake object semantics, Sella appraisal paths/relationship ids, and - prompt leakage in responder prose. The next implementation move should - make responder prose less likely to copy constraints verbatim before - trying to materialize another capture. +4. Materialize reviewed consequences. + - Convert accepted responder output into a mutation receipt. + - Update only reviewed scene state, memories, relationship stance, perceived overlays, and unresolved hooks. + - Keep fuzzy social changes manual and auditable until appraiser/classifier models exist. -5. Build the projection distillation loop. Started. - - Use `docs/architecture/projection-distillation-plan.md` as the teacher to - student roadmap. - - Use `docs/architecture/soft-model-training-artifacts.md` as the boundary - between deterministic code and soft model-training targets. - - Use `docs/architecture/training-plan.md` as the concrete stage inventory: - lore grounding compiler, coordinator/story runtime, memory/lore retriever, - projector, character agent/responder, event resolver, participant - appraiser, state mutator, relationship/perception updater, evaluator - classifiers, and institution/faction/consumer decision models. - - Use `docs/architecture/aetheria-lore-grounding-architecture.md` to keep - Aetheria grounded training separate from procedural Elysium branch - generation. - - Maintain `schemas/projection-example.schema.json`, - `examples/projections/`, and `tools/validate_projection_examples.py` as - the first reviewed artifact seam. - - Use authored historical Aetheria flashpoints, not malleable Elysium - gameplay outcomes, as the first grounded lore-training corpus. - - Also generate reviewed post-Rupture Elysium `future_branch` fixtures so - models learn Aetheria's weird future concepts under supervision rather - than treating late-Sol history as the whole training universe. - - Future branches must label source-backed post-Elysium concepts separately - from generated branch assumptions, branch lineage, sibling-branch - exclusions, and branch-local canonical facts. - - Future branches must also label constrained events: pressure-born - `branch_attractor`, authorial `fated_event`, discovery-gated - `tech_order_constraint`, authored `quest_injection`, or ordinary - `branch_local_event`. - - Elysium-born factions and institutions, including things like Adrasteia or - Miss Terri's Sugarrific Snack Company, should be modeled through those - labels rather than hidden in prose: they may emerge from branch pressure, - be nudged by fate, arrive through quest injection, or remain local to one - branch. - - Use `docs/architecture/technology-item-manifest-plan.md` to make future - exploration produce game-usable technology data: item families, variants, - assemblies, subassemblies, components, materials, faction access, - prerequisites, bottlenecks, compatibility rules, upgrade slots, economic - consequences, and quest hooks. - - Target the existing Aetheria-Economy CultCache item model rather than a - Ghostlight-only taxonomy. Manifest candidates should map conceptual layers - onto `SimpleCommodityData`, `CompoundCommodityData`, `ConsumableItemData`, - `GearData`, and other `EquippableItemData` technological blueprint - classes. Runtime `SimpleCommodity`, `CompoundCommodity`, `ConsumableItem`, - and `EquippableItem` instances belong to inventory/world-state simulation, - carrying realized quality, provenance, manufacturer branding, and assembly - history. - - Treat recipes, assembly trees, upgrade compatibility, tooling, facilities, - process requirements, and supply-chain dependencies as blueprint metadata - or engine-schema gaps attached to the relevant `*Data` class until - Aetheria-Economy exposes explicit storage for them. - - Use the same manifest process to elaborate existing nebulous timeline - technologies into blueprint candidates. Named tech like a - super-Planckian emitter should be decomposed into candidate assemblies, - subassemblies, components, materials, processes, tooling, facilities, - failure modes, quality tiers, and supply-chain dependencies with inferred - fields marked as inferred. - - Pre-Elysium starting tech must be manifested too. Factions do not begin - with identical tech bases, manufacturing rights, stockpiles, maintenance - skills, standards, or supply-chain dependencies. - - Maintain `schemas/lore-grounding-digest.schema.json`, - `examples/lore-grounding/`, and `tools/validate_lore_grounding.py` as the - cultural and factional pressure seam for grounded fixtures. - - Use `examples/lore-grounding/cold-wake-panic.ganymede-corridor.json` as - 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.md` and - `examples/agent-state.cold-wake-story-lab.json` as 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 prototype 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 archived local-model captures as reviewed receipts; validators keep unreviewed captures from quietly becoming training data. - - Use `experiments/cold-wake-story-lab/the-narrowest-possible-margin.md` as - 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. - - Treat the character agent/responder as a training target too. A - small local model can eventually be adapted on a corpus of - strong Aetheria responses spread throughout the timeline, plus reviewed - Ghostlight receipts, so lore, tone, factional preconceptions, species - affordances, and institutional pressure become native responder priors - rather than prompt handholding. - - Generate gold responder data through a sandbox boundary. The coordinator - may know the full scene, but the responder worker should receive only the - projected local packet, visible event, allowed action space, and explicitly - included source excerpts. If the harness supports one-turn sub-agents, - start them without inherited conversation context for responder turns. - Record exact responder-visible input, raw output, reviewed output, - hidden-context refs, leakage audit, and every coordinator repair. - - Include future-branch post-Rupture responses before expecting the responder - to handle Elysium concepts such as Aether, pseudospace, temporal - nonlinearity, spirits, necrotech, mutable bodies, and altered substrates - without heavy prompt scaffolding. - - Keep deterministic gates as code even after fine-tuning: visibility, - action legality, object custody, resource accounting, schema validation, - source provenance, mutation authority, prompt leakage checks, and Ink - compilation. - - Emit reviewed artifacts for every fuzzy organ before training specialized - models: coordinator/story runtime, projector, character agent/responder, - participant appraiser, state mutator, relationship/perception classifier, - Aetheria responder, and later institution/faction/consumer decision - models. +5. Generalize the loop. + - Add more historical grounded fixtures from AetheriaLore. + - Add future-branch Elysium fixtures with branch lineage and constraint labels. + - Emit technology/item manifest deltas when scenes discover or stress gear, assemblies, supply chains, or faction tech bases. + - Keep artifacts database-shaped enough for future game-engine integration. -6. Build the coordinator artifact seam. New target. - - Treat the current authoring agent as the temporary coordinator: it glues - scenes together, decides which machinery runs, maintains continuity, emits - connective prose, and proposes world-state changes for deterministic gates - and reviewed mutation. - - Keep coordinator state game-engine-shaped even before a game engine exists: - scene ids, location ids, participants, active objects, resources, public - facts, unresolved facts, branch flags, event refs, fixture refs, and - consequences awaiting review. - - Save coordinator decisions as training artifacts: scene setup, next-beat - choice, acting-agent choice, tool/model invocation plan, glue prose, - branch merge or split decisions, world-state refs read, proposed state - changes, carried hooks, rejected prose, and reviewer notes. - - Coordinator artifacts that invoke a responder must preserve the sandbox - handoff: projected-local-context id, exact responder-visible input, hidden - context refs, isolation method, raw responder output id, reviewed output - id, and coordinator intervention labels. Do not train a responder on prose - the coordinator repaired unless the repair is explicitly labeled. - - Do not let glue prose become canonical truth. It is narrative connective - tissue and training signal; structured state and reviewed mutations decide - what happened. - - The long-term coordinator model should learn how to stage scenes, preserve - continuity, call specialist organs, and emit readable connective narration - while respecting deterministic gates and game-engine constraints. - - First concrete training-plan target: define the coordinator artifact schema - before generating another long story pass, so glue prose, next-beat choice, - world-state refs, branch flags, unresolved hooks, and machinery invocations - are captured as trainable data instead of living only in chat. - - Coordinator artifacts should be able to attach item-manifest deltas when a - scene or branch decision discovers, alters, upgrades, restricts, salvages, - counterfeits, or economically stresses a technology or item. - - First schema seam: `schemas/coordinator-artifact.schema.json`, - `examples/coordinator/cold-wake-sanctuary-intake.v0.json`, and - `tools/validate_coordinator_artifacts.py` now validate the coordinator - receipt shape through `npm run schema:validate`. - - First responder packet seam: - `schemas/responder-packet.schema.json`, - `examples/responder-packets/scene-02-sanctuary-intake.sella_ren.packet.v0.json`, - `tools/build_responder_packet.py`, and - `tools/validate_responder_packets.py` now validate the exact prompt surface - a sandboxed character responder may see. - - Responder examples now have two lanes. `packet_only` uses curated source - excerpts and tests runtime parity. `retrieval_augmented` uses coordinator - or retriever-selected scoped AetheriaLore refs, preserves consulted refs, - and is for baking lore and tone into final responder outputs rather than - proving runtime prompt sufficiency. It is not autonomous responder research - unless the artifact explicitly says the responder had repo access. - - Research-enabled responder correction: `retrieval_augmented` now has an - explicit `responder_scoped_repository_search` mode. Those packets must - surface a `Required Lore Research` section, declared `allowed_scope`, and - `research_instructions`; output captures must preserve consulted refs and - a research summary. If the responder does not consult scoped lore before - answering, the capture should fail review. - - The v1 Sella packet removes responder-visible warnings about absent hidden - context and adds curated AetheriaLore excerpts for Cold Wake, the Ganymede - Route Compact, Navigator rescue ledgers, and Lightsail reliability. - - First responder output seam: - `schemas/responder-output.schema.json`, - `experiments/responder-packets/cold-wake-sanctuary-intake-sella-v0.capture.json`, - and `tools/validate_responder_outputs.py` now preserve the raw no-fork - worker response, parsed response, isolation method, hidden-context refs, - leakage audit, and coordinator review. - - First responder mutation materialization: - `tools/apply_responder_output_mutation.py` now writes - `experiments/responder-packets/cold-wake-sanctuary-intake-sella-v0.mutation.json` - and `examples/agent-state.cold-wake-story-lab.after-sella-conditions.json` - from the packet-only Sella capture. - - First retrieval-augmented comparison: - `experiments/responder-packets/cold-wake-sanctuary-intake-sella-retrieval-v0.capture.json` - and - `experiments/responder-packets/cold-wake-sanctuary-intake-sella-lane-comparison.v0.json` - show that scoped lore access improves Aetheria-native institutional texture - around heat-debt timing, rescue ledgers, dockfall burden, and sanctuary - capacity politics, but can crowd out character-local backstory if the - projector does not protect that pressure. - - Retrieval/projector requirements are now wired into the projected-context - seam and responder packet builder. The Sella packet gets Cold Wake - heat-debt, Navigator rescue ledgers, Aya sanctuary capacity, and - Ganymede/Lightsail route obligations from projected runtime requirements - instead of a static hand-written excerpt list. - - Next prototype: use this corrected packet surface for a fresh sandboxed - responder pass, then review whether the response uses institutional lore - and latent pressure without prompt parroting or mission-critical - trauma-dumping. If the pass is research-enabled, use - `responder_scoped_repository_search` and require consulted refs before the - responder answers. +6. Train only after schemas stop sliding. + - Pilot samples are schema shakedown, not robust corpus scale. + - Specialized future models include coordinator, retriever, projector, + responder, appraiser, mutator, relationship/perception updater, evaluator, + and institution/faction/consumer decision models. + - Deterministic gates remain code: visibility, action legality, object + custody, resource accounting, schema validation, source provenance, + mutation authority, prompt leakage checks, and Ink compilation. -7. 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 +## Deferred -8. Build the first Aetheria authoring consumer. - - use the Call of the Void slice described in `AetheriaLore` as 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 +- Full world simulation loop +- Autonomous offscreen faction simulation +- Economy simulation loop +- Long-horizon plot generation without author scaffolding +- Fine-tuning before artifact schemas, review criteria, and evaluators stabilize ## 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. +- Work one bounded organ at a time. +- Prefer explicit maps and contracts over implicit context. +- If the diff grows while understanding shrinks, stop and simplify. +- Keep history in git and archived receipts; keep persisted state focused on the mission. diff --git a/state/evidence.archive.jsonl b/state/evidence.archive.jsonl new file mode 100644 index 0000000..bc5e71a --- /dev/null +++ b/state/evidence.archive.jsonl @@ -0,0 +1,72 @@ + +{"ts": "2026-05-01T17:06:46+00:00", "type": "scaffold", "status": "ok", "note": "Initialized Ghostlight with a stripped-down Epiphany-style persistence spine: canonical map, scratch, evidence, handoff, implementation plan, and Python state or compaction helpers."} +{"ts": "2026-05-01T17:24:54+00:00", "type": "migration", "status": "ok", "note": "Migrated Ghostlight-owned research and architecture notes out of VoidBot and into this repo; Ghostlight is now the canonical home for personality, culture, state-projection, and Aetheria persistent-world design notes."} +{"ts": "2026-05-01T17:35:16+00:00", "type": "decision", "status": "rejected", "note": "Rejected the prior corridor-crisis game slice as Ghostlight active direction; current Aetheria consumer target is Call of the Void content generation plus narrated timeline dialogue and procedural drama scaffolding."} +{"ts": "2026-05-01T17:35:57+00:00", "type": "source", "status": "ok", "note": "Imported the scattered Call of the Void Google Doc brainstorm into docs/aetheria/call-of-the-void-brainstorm.md as raw source material; compact canon remains the AetheriaLore Call of the Void design note."} +{"ts": "2026-05-01T17:40:43+00:00", "type": "design", "status": "accepted", "note": "Clarified Ghostlight authoring rationale: the system should build drama and narrative pressure, then render character-local dialogue context packs constrained to what each character knows, feels, wants, remembers, hides, and perceives."} +{"ts": "2026-05-01T17:46:36+00:00", "type": "design", "status": "accepted", "note": "Corrected Call of the Void continuity drift: old colony-fleet no-return twist is obsolete; current pressure should come from the whole Solar system being sequestered into Elysium with its institutions, conflicts, and unresolved machinery intact."} +{"ts": "2026-05-01T17:52:01+00:00", "type": "implementation", "status": "ok", "note": "Added v0 canonical agent-state schema, required first-class dimension list, Call of the Void example fixture, and dependency-free validation script. schema:validate passes on the first fixture."} +{"ts": "2026-05-01T18:10:28+00:00", "type": "design", "status": "accepted", "note": "Split performed self from voice style in the v0 schema: presentation_strategy now includes abrasive_boundary and ironic_distance, while voice_style carries sarcasm, dryness, sincerity evasion, emotional evasion, and banter-as-boundary handles."} +{"ts": "2026-05-01T18:14:18+00:00", "type": "documentation", "status": "ok", "note": "Added agent-state variable glossary defining numeric components, current v0 labels, label-set policy, and why canonical fixtures include full required vectors rather than only strongly applicable labels."} +{"ts": "2026-05-01T18:21:07+00:00", "type": "design", "status": "accepted", "note": "Removed certainty from canonical authored state variables. Canonical character state now stores mean, plasticity, and current_activation; perceived/inferred dimensions use confidence when a read can be wrong."} +{"ts": "2026-05-01T18:26:40+00:00", "type": "design", "status": "accepted", "note": "Reworked perceived dimensions so observer reads do not know canonical mean or plasticity. Perceived state now tracks observed_activation, attributed_disposition, and confidence to model fundamental attribution bias; confidence is driven by evidence, emotion, stakes, memory, prejudice, and social reinforcement."} +{"ts": "2026-05-01T18:35:51+00:00", "type": "design", "status": "accepted", "note": "Expanded voice_style from a narrow quirk set into a broad required communication vector covering register, pace, precision, disclosure, politeness, humor, dominance, responsiveness, and related speech mechanics."} +{"ts": "2026-05-01T18:42:59+00:00", "type": "design", "status": "accepted", "note": "Added explicit voice_style axes for lyricism, coded_politeness, theatricality, and technical_compression so the required vector preserves the intended speech examples rather than folding them into weaker adjacent labels."} +{"ts": "2026-05-01T18:49:11+00:00", "type": "design", "status": "accepted", "note": "Separated verbal_response_strategy from voice_style. Sarcastic deflection, sincerity evasion, emotional evasion, banter-as-boundary, and verbal aggression are pressure-activated speech defenses, not baseline voice texture."} +{"ts": "2026-05-01T18:54:49+00:00", "type": "design", "status": "accepted", "note": "Removed verbal_response_strategy as a canonical layer. Defensive verbal moves should emerge during projection from interactions among underlying organization, dispositions, behavioral dimensions, presentation strategy, situational pressure, relationship context, and voice style."} +{"ts": "2026-05-01T18:55:15+00:00", "type": "design", "status": "accepted", "note": "Kept sarcastic deflection, sincerity evasion, emotional evasion, banter-as-boundary, and verbal aggression as target emergent behaviors for projection tests rather than canonical state fields."} +{"ts": "2026-05-01T19:09:58+00:00", "type": "design", "status": "accepted", "note": "Removed forbidden_context from dialogue context packs. Packs are positive speaker-local payloads; unknown or author-only material is omitted by the projection builder, while known secrets are expressed through goals, beliefs, memories, and presentation constraints."} +{"ts": "2026-05-01T19:13:15+00:00", "type": "design", "status": "accepted", "note": "Relationship stance is directional. Added Oz->Cat alongside Cat->Oz in the Call of the Void fixture and taught the validator to require reciprocal relationship edges for represented agent pairs."} +{"ts": "2026-05-01T19:18:05+00:00", "type": "design", "status": "accepted", "note": "Defined prompt projection as a six-stage contract: select speaker-local inputs, compute active pressure, detect tensions, derive response affordances, render compact prompt sections, then evaluate whether target verbal behaviors emerge from state interactions."} +{"ts": "2026-05-01T19:26:23+00:00", "type": "design", "status": "accepted", "note": "Persisted projection distillation plan: use a frontier teacher to generate reviewed projection artifacts, collect accepted and rejected examples, then train a smaller student projector only after the projection schema, input slicer, and evaluator stabilize."} +{"ts": "2026-05-01T19:57:04+00:00", "type": "design", "status": "accepted", "note": "Evaluation follow-up accepted immediate schema fixes: split interpersonal_warmth from verbal_warmth, add Cat perception of Oz, populate Cat/Oz relationship summaries, enrich event-drone-lie with observed exchange, private interpretations, and event effects, and park broader social-simulation mechanisms in docs/architecture/schema-future-mechanisms.md."} +{"ts": "2026-05-01T20:02:29+00:00", "type": "implementation", "status": "accepted", "note": "Added ghostlight.projection_example.v0 schema, first reviewed Cat/Oz projection JSONL examples for scene-broken-taxi-oz, projection example validator, and package scripts that validate both agent-state and projection seams. Next projection implementation step is deterministic speaker-local input slicing."} +{"ts": "2026-05-01T20:19:04+00:00", "type": "design", "status": "accepted", "note": "Projection prompt_text must be self-sufficient for the dialogue model: include speaker-local setting, historical, cultural, socioeconomic, and embodiment context needed for the turn rather than relying on source refs or the full projection artifact."} +{"ts": "2026-05-01T20:31:43+00:00", "type": "design", "status": "accepted", "note": "Revised Aetheria projection-training architecture: grounded training data should start from authored historical lore flashpoints, while Elysium gameplay-era scenes such as Cat/Oz are procedural branch material unless explicitly promoted. Next step is a lore grounding digest format and first historical flashpoint selection."} +{"ts": "2026-05-01T20:38:47+00:00", "type": "implementation", "status": "accepted", "note": "Added ghostlight.lore_grounding_digest.v0 schema, template, human format guide, and validator. Lore digests now explicitly model cultural pressure fields, factional misread maps, role pressures, speaker lore boundaries, and author-only exclusions. Next step is choosing the first authored historical Aetheria flashpoint and filling a real digest."} +{"ts": "2026-05-01T20:50:46+00:00", "type": "design", "status": "accepted", "note": "Cold Wake Panic is selected as the first historical grounding fixture. Use it as pre-Elysium projection training feedstock via examples/lore-grounding/cold-wake-panic.ganymede-corridor.json, not as the active Ghostlight game target."} +{"ts": "2026-05-01T21:16:24+00:00", "type": "experiment", "status": "mixed", "note": "Cold Wake story-lab first Qwen response confirmed response_turn/action affordances are useful: qwen3.5:9b produced a mixed terminal-blocking plus dialogue beat for Maer. Failure lesson: personhood-pressure wording was too strong and let the model imply the artifact was a person instead of preserving unresolved suspicion."} +{"ts": "2026-05-01T21:22:33+00:00", "type": "experiment", "status": "accepted", "note": "Cold Wake Maer/Veyr projection now has useful rejected v1/v2 captures and accepted v3 Qwen output. Lesson: unresolved personhood pressure needs explicit noun fencing; claimant-status, provenance, and chain-of-custody language preserved ambiguity while still allowing controlled terminal-blocking action."} +{"ts": "2026-05-01T21:32:34+00:00", "type": "experiment", "status": "accepted", "note": "Completed first Cold Wake short story from Ghostlight projection receipts. Architectural lesson: repeated Qwen failures were not just prompt wording issues; projection needs first-class controls for frame ownership, authority boundaries, object custody, required semantics, and forbidden resolutions. Added capture validation so accepted/rejected outputs remain accountable training data."} +{"ts": "2026-05-01T21:59:49+00:00", "type": "design", "status": "accepted", "note": "Reframed Ghostlight target from specific dialogue projection toward sequential character agents: each acting agent gets local awareness, options, objectives, and mutation authority; generated action becomes an event proposal resolved into bounded state changes. Single-turn projection remains a debug/training seam, not the procedural-generation endpoint."} +{"ts": "2026-05-01T22:18:59+00:00", "type": "design", "status": "accepted", "note": "Sequential runtime prototype should keep fuzzy interpretation manual at first. Action tools should be concrete primitives; ask/refuse/offer/reveal/conceal/request are intended communicative functions on actions, while listener appraisal may misread them. Manual appraisal and mutation review becomes training data for future classifiers."} +{"ts": "2026-05-01T22:31:04+00:00", "type": "design", "status": "accepted", "note": "Tightened Ghostlight runtime scope: near-term goal is procedural interactive dialogue trees and scene-local consequence propagation into state, memory, and social perception. Sequential agent machinery should serve branchable game dialogue first; world-scale simulation, autonomous offscreen factions, economy, and long-horizon plot generation stay deferred."} +{"ts": "2026-05-01T22:36:38+00:00", "type": "design", "status": "accepted", "note": "Adjusted scope boundary: implement scene-local interactive dialogue first, but shape training data for later open-world agents, iterated decisions, psychologically grounded consumer behavior, scarcity/reputation pressure, and major faction or institution decision-making. Defer full simulation loops, not the labels and state hooks those future models will need."} +{"ts": "2026-05-01T22:40:18+00:00", "type": "design", "status": "accepted", "note": "Clarified that dialogue trees mean branching scene trees, not speech-only menus. Ghostlight should generate plausible protagonist speech or non-speech choices, NPC responses, and branch consequences in world state, memory, and social perception, such as losing trust or opening future hooks."} +{"ts": "2026-05-01T22:51:37+00:00", "type": "design", "status": "accepted", "note": "Adopted Ink as the standard playable branching scene format for Ghostlight interactive fiction. Ghostlight should generate/project Ink scenes and maintain reviewed sidecar annotations for local awareness, action intent, consequence surfaces, and manual state mutation instead of inventing a parallel branching format."} +{"ts": "2026-05-02T01:37:07+00:00", "type": "implementation", "status": "ok", "note": "Built the first local-awareness-to-Qwen-to-Ink branch generation pass. Qwen generated four Cold Wake sanctuary-intake branch candidates from Ghostlight state and projection controls; the reviewed capture was materialized into a playable qwen-draft Ink file plus sidecar annotations. Lesson: semantic training hooks and branch-local object custody need tighter prompting before generated drafts can be promoted beyond training material."} +{"ts": "2026-05-02T01:40:41+00:00", "type": "implementation", "status": "ok", "note": "Ink metadata for Ghostlight/Aetheria must use // comments, not # tags, in writer-facing drafts. Inky exposes # tags in preview, causing state and training handles to leak into readable scene output; validate_ink_examples now rejects Ghostlight/Aetheria metadata tags."} +{"ts": "2026-05-02T01:45:54+00:00", "type": "design", "status": "accepted", "note": "Hardened local-awareness invariant for Ink branching: protagonist choices and NPC responses must be separate generation passes. A responder should see only its own state plus observable protagonist action, not protagonist private intent or full protagonist-local state. The existing Qwen Ink draft is labeled as one-shot bootstrap scaffolding, not target runtime behavior."} +{"ts": "2026-05-02T02:45:44+00:00", "type": "implementation", "status": "ok", "note": "Added ghostlight.projected_local_context.v0 seam and deterministic projector so sequential Qwen prompts consume character-local operating prose instead of raw canonical state variables. v6 projector-routed capture validated as useful-needs-revision due nested response_constraints stringification."} +{"ts": "2026-05-02T02:54:51+00:00", "type": "implementation", "status": "ok", "note": "Tightened projector-routed sequential runner: failed Maer choice calls now write reviewed receipts, parser can repair obvious truncated stringified tool arrays, repair notes are separated from fatal validation notes, and next-action prompts receive appraisal prose instead of raw numeric deltas. v8/v9 captures show Qwen still has tool-call reliability failures, so no projector-routed branch was materialized."} +{"ts": "2026-05-02T03:00:05+00:00", "type": "implementation", "status": "ok", "note": "Disabled thinking by default for strict projector-routed sequential Qwen generation after v9 thinking trace showed schema self-check looping. v10 no-think run completed quickly and validated as accepted_as_draft with no repair or failure notes."} +{"ts": "2026-05-02T03:03:14+00:00", "type": "implementation", "status": "ok", "note": "Materialized accepted v10 no-thinking projector-routed sequential capture into playable Ink, sidecar annotation, reviewed mutation receipt, and mutated Cold Wake fixture. Validation passes; fuzzy state, memory, relationship, and perceived-overlay updates remain manual reviewed training data."} +{"ts": "2026-05-02T03:19:48+00:00", "type": "design", "status": "accepted", "note": "Embodiment/interface affordances are now first-class projected local context. Cetacean Navigator scenes must project habitat-native channels, workstations, displays, rails, acoustic or translation systems, and other Navigator-built infrastructure instead of generic human body assumptions."} +{"ts": "2026-05-02T03:23:47+00:00", "type": "design", "status": "accepted", "note": "Corrected embodiment lesson: Ghostlight should check AetheriaLore faction source before projecting faction-specific action affordances. Navigator lore supports fluid architecture, acoustic signaling, communal orientation chambers, translation/coexistence, and specialized cetacean environments; precise clinic workstation ergonomics remain a source-lore gap."} +{"ts": "2026-05-02T03:29:28+00:00", "type": "design", "status": "accepted", "note": "Formalized Aetheria generation doctrine: source-check factions, movements, institutions, location, time period, species/body affordances, infrastructure, and material constraints before writing or generating; patch blocking AetheriaLore gaps narrowly before treating details as available to projection."} +{"ts": "2026-05-02T03:29:51+00:00", "type": "documentation", "status": "ok", "note": "Added source-first Aetheria generation doctrine and patched AetheriaLore Cetacean Navigators with habitat/interface ergonomics so Navigator action affordances can be projected from source rather than local improvisation."} +{"ts": "2026-05-02T03:46:05+00:00", "type": "experiment", "status": "mixed", "note": "Source-checked Navigator projection improved Maer action proposals: v13-v17 route packets through shared clinic displays and wet/dry interface affordances instead of human body defaults. No capture was materialized; failures exposed object-custody drift, invented mutation paths, Qwen appraisal tool dropouts, and prompt-constraint leakage into Sella prose."} +{"ts": "2026-05-02T07:55:40+00:00", "type": "architecture", "status": "ok", "note": "Soft judgments that cannot be deterministic code are now explicit training-artifact targets: projector, character agent/responder, participant appraiser, state mutator, relationship/perception classifier, lore-tone adapter, and later institution/faction/consumer decision models should all emit reviewed accepted/rejected receipts before fine-tuning or distillation."} +{"ts": "2026-05-02T07:58:01+00:00", "type": "architecture", "status": "ok", "note": "Clarified Aetheria lore/tone training: the responder itself should be fine-tuned on strong source-grounded responses across the timeline so setting assumptions become native priors, rather than treating lore/tone as a separate adapter layer."} +{"ts": "2026-05-02T08:01:25+00:00", "type": "architecture", "status": "ok", "note": "Added the coordinator/story runtime as a trainable soft organ: the current authoring agent glues scenes together, selects next beats and acting agents, invokes machinery, carries unresolved hooks, emits glue prose, and proposes game-engine-shaped world-state changes while deterministic gates retain authority."} +{"ts": "2026-05-02T08:04:36+00:00", "type": "architecture", "status": "ok", "note": "Added a concrete Ghostlight training plan enumerating trainable stages, inputs, outputs, likely model families, artifact families, corpus gates, and deterministic boundaries. Next implementation should define the coordinator artifact schema before more story-generation passes so glue prose and world-state coordination become trainable data."} +{"ts": "2026-05-02T08:12:30+00:00", "type": "architecture", "status": "ok", "note": "Extended Aetheria timeline training plan with a future_branch lane: Ghostlight should generate reviewed possible post-Rupture Elysium futures so responder/coordinator/appraiser/decision models learn concepts like Aether, pseudospace, temporal nonlinearity, spirits, necrotech, mutable bodies, and altered substrates while keeping generated branch assumptions separate from promoted canon."} +{"ts": "2026-05-02T08:14:44+00:00", "type": "architecture", "status": "ok", "note": "Corrected Elysium future-branch metaphysics: Sol timeline is a single-history artifact, while every possible Elysium future is canon inside its own branch lineage. Training artifacts must preserve branch lineage, prior conditions, and sibling-branch exclusion boundaries instead of treating generated futures as non-canon or merely provisional."} +{"ts": "2026-05-02T08:21:41+00:00", "type": "architecture", "status": "ok", "note": "Added Elysium branch event constraints: future branches can mark events as branch_attractor, fated_event, tech_order_constraint, quest_injection, or branch_local_event so likely faction births, authored rails, technology discovery order, and quest injection are explicit runtime/training signals rather than hidden prose."} +{"ts": "2026-05-02T08:31:00+00:00", "type": "architecture", "status": "ok", "note": "Added technology/item manifest plan: coordinator-led Aetheria exploration must emit game-usable item families, variants, assemblies, subassemblies, components, faction tech bases, prerequisites, bottlenecks, compatibility rules, supply-chain consequences, upgrade paths, and quest hooks for both pre-Elysium starting tech and branch-local post-Rupture innovations."} +{"ts": "2026-05-02T08:33:46+00:00", "type": "architecture", "status": "ok", "note": "Extended technology/item manifest plan to explicitly elaborate existing nebulous Aetheria timeline technologies into blueprint candidates. Manifest candidates must separate source facts, inferred engineering, and open lore gaps while decomposing tech into assemblies, subassemblies, components, materials, processes, tooling, facilities, quality tiers, failure modes, supply chains, and gameplay hooks."} +{"ts": "2026-05-02T08:42:58+00:00", "type": "research", "status": "ok", "note": "Aetheria-Economy already provides the concrete item schema target: CultCache-backed ItemData subclasses are technological blueprints (SimpleCommodityData, CompoundCommodityData, ConsumableItemData, GearData/EquippableItemData), while ItemInstance subclasses represent realized runtime artifacts carrying quality/provenance/branding/world state. Ghostlight item manifests should map onto that model, with assembly trees, recipes, compatibility, tooling, facilities, process requirements, and supply-chain dependencies recorded as blueprint metadata or engine-schema gaps until the economy code exposes explicit storage."} +{"ts": "2026-05-02T08:51:57+00:00", "type": "architecture", "status": "ok", "note": "Documented the player-facing gear fantasy and content-refinery framing: ultimate items should be provenance hunts through blueprint, assembly quality, manufacturer practice, supply-chain lineage, repair history, counterfeit substitution, and operating conditions; Ghostlight should convert lore-grounded ideas into reviewed database-shaped Aetheria-Economy candidates rather than another manual spreadsheet bottleneck."} +{"ts": "2026-05-02T09:04:24+00:00", "type": "architecture", "status": "ok", "note": "Accepted sandboxed responder-data doctrine: coordinator may be omniscient, but gold responder examples must be generated from only the exact projected local packet, visible event, allowed actions, and explicitly included source excerpts. Artifacts must preserve raw output, reviewed output, hidden-context refs, leakage audit, isolation method, and coordinator intervention labels so repaired prose is not laundered as raw responder behavior."} +{"ts": "2026-05-02T09:08:43+00:00", "type": "architecture", "status": "ok", "note": "Clarified training corpus scale: the existing per-stage sample counts are pilot schema-shakedown gates for exposing schema, boundary, leakage, validator, and workflow problems, not robust training targets. Review-assistant and runtime targets require much larger corpora, held-out evaluation, negative coverage, and failure audits; pilot data may be invalidated by schema fixes."} +{"ts": "2026-05-02T09:14:24+00:00", "type": "implementation", "status": "ok", "note": "Added the v0 coordinator artifact seam: schemas/coordinator-artifact.schema.json, examples/coordinator/cold-wake-sanctuary-intake.v0.json, tools/validate_coordinator_artifacts.py, and npm run coordinator:validate. The schema captures scene setup, next-beat choice, machinery invocations, sandboxed responder handoffs, world-state refs, proposed deltas, branch constraints, item-manifest deltas, unresolved hooks, glue prose, and review status."} +{"ts": "2026-05-02T09:19:50+00:00", "type": "implementation", "status": "ok", "note": "Added the v0 responder packet seam: schemas/responder-packet.schema.json, docs/architecture/sandboxed-responder-packets.md, tools/build_responder_packet.py, tools/validate_responder_packets.py, and examples/responder-packets/scene-02-sanctuary-intake.sella_ren.packet.v0.json. The packet captures the exact responder-visible prompt surface, observed event, allowed action labels, source excerpts, output contract, hidden-context audit, and isolation requirements for future sandboxed gold responder data."} +{"ts": "2026-05-02T09:25:24+00:00", "type": "implementation", "status": "ok", "note": "Generated and preserved the first no-fork sandboxed responder output from the Sella responder packet. Added schemas/responder-output.schema.json, tools/validate_responder_outputs.py, and experiments/responder-packets/cold-wake-sanctuary-intake-sella-v0.capture.json. The capture records raw output, exact parsed output, packet-only isolation, hidden-context refs, leakage audit, coordinator interventions, and review status."} +{"ts": "2026-05-02T09:43:23+00:00", "type": "design", "status": "ok", "note": "Split responder data into explicit packet_only and research_augmented lanes. packet_only uses curated source excerpts for runtime parity; research_augmented allows scoped AetheriaLore search with consulted refs for lore absorption. Added v1 Sella packet with absent hidden context removed from responder-visible prose and curated Cold Wake, Ganymede Compact, Navigator rescue ledger, and Lightsail source excerpts."} +{"ts": "2026-05-02T09:50:08+00:00", "type": "implementation", "status": "ok", "note": "Completed both responder lanes for the Sella sanctuary beat. Materialized the packet-only Sella capture into a reviewed mutation receipt and mutated fixture, then generated a research_augmented Sella capture with scoped AetheriaLore refs and a lane comparison showing packet-only proves runtime parity while research_augmented adds heat-debt, rescue-ledger, dockfall, and Aya sanctuary capacity texture for retrieval/projector requirements."} +{"ts": "2026-05-02T09:59:37+00:00", "type": "design", "status": "accepted", "note": "Corrected responder lane terminology: the prior research_augmented Sella capture was coordinator-retrieved lore, not autonomous responder research, so the lane is now retrieval_augmented with lore_access.mode coordinator_scoped_retrieval. The comparison now records that retrieval improved institutional texture but underused Sella Ren's packet-visible sanctuary-collapse scar; future projector/retrieval review must preserve character-local scars as well as lore grounding."} +{"ts": "2026-05-02T10:02:28+00:00", "type": "design", "status": "accepted", "note": "Refined character-pressure retention doctrine: packet-visible backstory such as Sella Ren's sanctuary-collapse scar should be available to shape responder behavior, but review must not reward unnecessary trauma-dumping or require the scar to surface in mission-critical speech."} +{"ts": "2026-05-02T10:08:14+00:00", "type": "implementation", "status": "ok", "note": "Implemented runtime retrieval/projector requirements. Projected local contexts now emit source-backed runtime_retrieval_requirements and latent_pressure_requirements; prompt text renders retrieved lore and latent pressure handling; responder packets copy active retrieval requirements into source_excerpts so packet-only contexts receive compact Cold Wake heat-debt, Navigator rescue-ledger, Aya sanctuary-capacity, and Ganymede/Lightsail route-obligation facts without granting repo access or forcing character backstory into speech."} +{"ts": "2026-05-02T10:11:38+00:00", "type": "design", "status": "accepted", "note": "Added explicit research-enabled responder instructions. `responder_scoped_repository_search` now means the responder may inspect only the declared lore scope, must consult it before answering, and must ground behavior in retrieved lore docs; packet validation requires visible research instructions and output validation requires consulted refs plus a research summary."} +{"ts": "2026-05-02T10:17:55+00:00", "type": "implementation", "status": "ok", "note": "Generated the first concrete research-enabled Sella responder packet. build_responder_packet.py now supports responder_scoped_repository_search, sets repo access open only for that lane, renders Required Lore Research, and requires consulted_refs plus research_summary."} +{"ts": "2026-05-02T10:21:51+00:00", "type": "maintenance", "status": "ok", "note": "Demoted Qwen/local-model prototype material in rehydrate surfaces. Canonical map and handoff now treat those runs as archived receipts, not active gold-data direction; next action stays on sandboxed research-enabled responder packets."} diff --git a/state/evidence.jsonl b/state/evidence.jsonl index bc5e71a..67dd7e0 100644 --- a/state/evidence.jsonl +++ b/state/evidence.jsonl @@ -1,72 +1,14 @@ - -{"ts": "2026-05-01T17:06:46+00:00", "type": "scaffold", "status": "ok", "note": "Initialized Ghostlight with a stripped-down Epiphany-style persistence spine: canonical map, scratch, evidence, handoff, implementation plan, and Python state or compaction helpers."} -{"ts": "2026-05-01T17:24:54+00:00", "type": "migration", "status": "ok", "note": "Migrated Ghostlight-owned research and architecture notes out of VoidBot and into this repo; Ghostlight is now the canonical home for personality, culture, state-projection, and Aetheria persistent-world design notes."} -{"ts": "2026-05-01T17:35:16+00:00", "type": "decision", "status": "rejected", "note": "Rejected the prior corridor-crisis game slice as Ghostlight active direction; current Aetheria consumer target is Call of the Void content generation plus narrated timeline dialogue and procedural drama scaffolding."} -{"ts": "2026-05-01T17:35:57+00:00", "type": "source", "status": "ok", "note": "Imported the scattered Call of the Void Google Doc brainstorm into docs/aetheria/call-of-the-void-brainstorm.md as raw source material; compact canon remains the AetheriaLore Call of the Void design note."} -{"ts": "2026-05-01T17:40:43+00:00", "type": "design", "status": "accepted", "note": "Clarified Ghostlight authoring rationale: the system should build drama and narrative pressure, then render character-local dialogue context packs constrained to what each character knows, feels, wants, remembers, hides, and perceives."} -{"ts": "2026-05-01T17:46:36+00:00", "type": "design", "status": "accepted", "note": "Corrected Call of the Void continuity drift: old colony-fleet no-return twist is obsolete; current pressure should come from the whole Solar system being sequestered into Elysium with its institutions, conflicts, and unresolved machinery intact."} -{"ts": "2026-05-01T17:52:01+00:00", "type": "implementation", "status": "ok", "note": "Added v0 canonical agent-state schema, required first-class dimension list, Call of the Void example fixture, and dependency-free validation script. schema:validate passes on the first fixture."} -{"ts": "2026-05-01T18:10:28+00:00", "type": "design", "status": "accepted", "note": "Split performed self from voice style in the v0 schema: presentation_strategy now includes abrasive_boundary and ironic_distance, while voice_style carries sarcasm, dryness, sincerity evasion, emotional evasion, and banter-as-boundary handles."} -{"ts": "2026-05-01T18:14:18+00:00", "type": "documentation", "status": "ok", "note": "Added agent-state variable glossary defining numeric components, current v0 labels, label-set policy, and why canonical fixtures include full required vectors rather than only strongly applicable labels."} -{"ts": "2026-05-01T18:21:07+00:00", "type": "design", "status": "accepted", "note": "Removed certainty from canonical authored state variables. Canonical character state now stores mean, plasticity, and current_activation; perceived/inferred dimensions use confidence when a read can be wrong."} -{"ts": "2026-05-01T18:26:40+00:00", "type": "design", "status": "accepted", "note": "Reworked perceived dimensions so observer reads do not know canonical mean or plasticity. Perceived state now tracks observed_activation, attributed_disposition, and confidence to model fundamental attribution bias; confidence is driven by evidence, emotion, stakes, memory, prejudice, and social reinforcement."} -{"ts": "2026-05-01T18:35:51+00:00", "type": "design", "status": "accepted", "note": "Expanded voice_style from a narrow quirk set into a broad required communication vector covering register, pace, precision, disclosure, politeness, humor, dominance, responsiveness, and related speech mechanics."} -{"ts": "2026-05-01T18:42:59+00:00", "type": "design", "status": "accepted", "note": "Added explicit voice_style axes for lyricism, coded_politeness, theatricality, and technical_compression so the required vector preserves the intended speech examples rather than folding them into weaker adjacent labels."} -{"ts": "2026-05-01T18:49:11+00:00", "type": "design", "status": "accepted", "note": "Separated verbal_response_strategy from voice_style. Sarcastic deflection, sincerity evasion, emotional evasion, banter-as-boundary, and verbal aggression are pressure-activated speech defenses, not baseline voice texture."} -{"ts": "2026-05-01T18:54:49+00:00", "type": "design", "status": "accepted", "note": "Removed verbal_response_strategy as a canonical layer. Defensive verbal moves should emerge during projection from interactions among underlying organization, dispositions, behavioral dimensions, presentation strategy, situational pressure, relationship context, and voice style."} -{"ts": "2026-05-01T18:55:15+00:00", "type": "design", "status": "accepted", "note": "Kept sarcastic deflection, sincerity evasion, emotional evasion, banter-as-boundary, and verbal aggression as target emergent behaviors for projection tests rather than canonical state fields."} -{"ts": "2026-05-01T19:09:58+00:00", "type": "design", "status": "accepted", "note": "Removed forbidden_context from dialogue context packs. Packs are positive speaker-local payloads; unknown or author-only material is omitted by the projection builder, while known secrets are expressed through goals, beliefs, memories, and presentation constraints."} -{"ts": "2026-05-01T19:13:15+00:00", "type": "design", "status": "accepted", "note": "Relationship stance is directional. Added Oz->Cat alongside Cat->Oz in the Call of the Void fixture and taught the validator to require reciprocal relationship edges for represented agent pairs."} -{"ts": "2026-05-01T19:18:05+00:00", "type": "design", "status": "accepted", "note": "Defined prompt projection as a six-stage contract: select speaker-local inputs, compute active pressure, detect tensions, derive response affordances, render compact prompt sections, then evaluate whether target verbal behaviors emerge from state interactions."} -{"ts": "2026-05-01T19:26:23+00:00", "type": "design", "status": "accepted", "note": "Persisted projection distillation plan: use a frontier teacher to generate reviewed projection artifacts, collect accepted and rejected examples, then train a smaller student projector only after the projection schema, input slicer, and evaluator stabilize."} -{"ts": "2026-05-01T19:57:04+00:00", "type": "design", "status": "accepted", "note": "Evaluation follow-up accepted immediate schema fixes: split interpersonal_warmth from verbal_warmth, add Cat perception of Oz, populate Cat/Oz relationship summaries, enrich event-drone-lie with observed exchange, private interpretations, and event effects, and park broader social-simulation mechanisms in docs/architecture/schema-future-mechanisms.md."} -{"ts": "2026-05-01T20:02:29+00:00", "type": "implementation", "status": "accepted", "note": "Added ghostlight.projection_example.v0 schema, first reviewed Cat/Oz projection JSONL examples for scene-broken-taxi-oz, projection example validator, and package scripts that validate both agent-state and projection seams. Next projection implementation step is deterministic speaker-local input slicing."} -{"ts": "2026-05-01T20:19:04+00:00", "type": "design", "status": "accepted", "note": "Projection prompt_text must be self-sufficient for the dialogue model: include speaker-local setting, historical, cultural, socioeconomic, and embodiment context needed for the turn rather than relying on source refs or the full projection artifact."} -{"ts": "2026-05-01T20:31:43+00:00", "type": "design", "status": "accepted", "note": "Revised Aetheria projection-training architecture: grounded training data should start from authored historical lore flashpoints, while Elysium gameplay-era scenes such as Cat/Oz are procedural branch material unless explicitly promoted. Next step is a lore grounding digest format and first historical flashpoint selection."} -{"ts": "2026-05-01T20:38:47+00:00", "type": "implementation", "status": "accepted", "note": "Added ghostlight.lore_grounding_digest.v0 schema, template, human format guide, and validator. Lore digests now explicitly model cultural pressure fields, factional misread maps, role pressures, speaker lore boundaries, and author-only exclusions. Next step is choosing the first authored historical Aetheria flashpoint and filling a real digest."} -{"ts": "2026-05-01T20:50:46+00:00", "type": "design", "status": "accepted", "note": "Cold Wake Panic is selected as the first historical grounding fixture. Use it as pre-Elysium projection training feedstock via examples/lore-grounding/cold-wake-panic.ganymede-corridor.json, not as the active Ghostlight game target."} -{"ts": "2026-05-01T21:16:24+00:00", "type": "experiment", "status": "mixed", "note": "Cold Wake story-lab first Qwen response confirmed response_turn/action affordances are useful: qwen3.5:9b produced a mixed terminal-blocking plus dialogue beat for Maer. Failure lesson: personhood-pressure wording was too strong and let the model imply the artifact was a person instead of preserving unresolved suspicion."} -{"ts": "2026-05-01T21:22:33+00:00", "type": "experiment", "status": "accepted", "note": "Cold Wake Maer/Veyr projection now has useful rejected v1/v2 captures and accepted v3 Qwen output. Lesson: unresolved personhood pressure needs explicit noun fencing; claimant-status, provenance, and chain-of-custody language preserved ambiguity while still allowing controlled terminal-blocking action."} -{"ts": "2026-05-01T21:32:34+00:00", "type": "experiment", "status": "accepted", "note": "Completed first Cold Wake short story from Ghostlight projection receipts. Architectural lesson: repeated Qwen failures were not just prompt wording issues; projection needs first-class controls for frame ownership, authority boundaries, object custody, required semantics, and forbidden resolutions. Added capture validation so accepted/rejected outputs remain accountable training data."} -{"ts": "2026-05-01T21:59:49+00:00", "type": "design", "status": "accepted", "note": "Reframed Ghostlight target from specific dialogue projection toward sequential character agents: each acting agent gets local awareness, options, objectives, and mutation authority; generated action becomes an event proposal resolved into bounded state changes. Single-turn projection remains a debug/training seam, not the procedural-generation endpoint."} -{"ts": "2026-05-01T22:18:59+00:00", "type": "design", "status": "accepted", "note": "Sequential runtime prototype should keep fuzzy interpretation manual at first. Action tools should be concrete primitives; ask/refuse/offer/reveal/conceal/request are intended communicative functions on actions, while listener appraisal may misread them. Manual appraisal and mutation review becomes training data for future classifiers."} -{"ts": "2026-05-01T22:31:04+00:00", "type": "design", "status": "accepted", "note": "Tightened Ghostlight runtime scope: near-term goal is procedural interactive dialogue trees and scene-local consequence propagation into state, memory, and social perception. Sequential agent machinery should serve branchable game dialogue first; world-scale simulation, autonomous offscreen factions, economy, and long-horizon plot generation stay deferred."} -{"ts": "2026-05-01T22:36:38+00:00", "type": "design", "status": "accepted", "note": "Adjusted scope boundary: implement scene-local interactive dialogue first, but shape training data for later open-world agents, iterated decisions, psychologically grounded consumer behavior, scarcity/reputation pressure, and major faction or institution decision-making. Defer full simulation loops, not the labels and state hooks those future models will need."} -{"ts": "2026-05-01T22:40:18+00:00", "type": "design", "status": "accepted", "note": "Clarified that dialogue trees mean branching scene trees, not speech-only menus. Ghostlight should generate plausible protagonist speech or non-speech choices, NPC responses, and branch consequences in world state, memory, and social perception, such as losing trust or opening future hooks."} -{"ts": "2026-05-01T22:51:37+00:00", "type": "design", "status": "accepted", "note": "Adopted Ink as the standard playable branching scene format for Ghostlight interactive fiction. Ghostlight should generate/project Ink scenes and maintain reviewed sidecar annotations for local awareness, action intent, consequence surfaces, and manual state mutation instead of inventing a parallel branching format."} -{"ts": "2026-05-02T01:37:07+00:00", "type": "implementation", "status": "ok", "note": "Built the first local-awareness-to-Qwen-to-Ink branch generation pass. Qwen generated four Cold Wake sanctuary-intake branch candidates from Ghostlight state and projection controls; the reviewed capture was materialized into a playable qwen-draft Ink file plus sidecar annotations. Lesson: semantic training hooks and branch-local object custody need tighter prompting before generated drafts can be promoted beyond training material."} -{"ts": "2026-05-02T01:40:41+00:00", "type": "implementation", "status": "ok", "note": "Ink metadata for Ghostlight/Aetheria must use // comments, not # tags, in writer-facing drafts. Inky exposes # tags in preview, causing state and training handles to leak into readable scene output; validate_ink_examples now rejects Ghostlight/Aetheria metadata tags."} -{"ts": "2026-05-02T01:45:54+00:00", "type": "design", "status": "accepted", "note": "Hardened local-awareness invariant for Ink branching: protagonist choices and NPC responses must be separate generation passes. A responder should see only its own state plus observable protagonist action, not protagonist private intent or full protagonist-local state. The existing Qwen Ink draft is labeled as one-shot bootstrap scaffolding, not target runtime behavior."} -{"ts": "2026-05-02T02:45:44+00:00", "type": "implementation", "status": "ok", "note": "Added ghostlight.projected_local_context.v0 seam and deterministic projector so sequential Qwen prompts consume character-local operating prose instead of raw canonical state variables. v6 projector-routed capture validated as useful-needs-revision due nested response_constraints stringification."} -{"ts": "2026-05-02T02:54:51+00:00", "type": "implementation", "status": "ok", "note": "Tightened projector-routed sequential runner: failed Maer choice calls now write reviewed receipts, parser can repair obvious truncated stringified tool arrays, repair notes are separated from fatal validation notes, and next-action prompts receive appraisal prose instead of raw numeric deltas. v8/v9 captures show Qwen still has tool-call reliability failures, so no projector-routed branch was materialized."} -{"ts": "2026-05-02T03:00:05+00:00", "type": "implementation", "status": "ok", "note": "Disabled thinking by default for strict projector-routed sequential Qwen generation after v9 thinking trace showed schema self-check looping. v10 no-think run completed quickly and validated as accepted_as_draft with no repair or failure notes."} -{"ts": "2026-05-02T03:03:14+00:00", "type": "implementation", "status": "ok", "note": "Materialized accepted v10 no-thinking projector-routed sequential capture into playable Ink, sidecar annotation, reviewed mutation receipt, and mutated Cold Wake fixture. Validation passes; fuzzy state, memory, relationship, and perceived-overlay updates remain manual reviewed training data."} -{"ts": "2026-05-02T03:19:48+00:00", "type": "design", "status": "accepted", "note": "Embodiment/interface affordances are now first-class projected local context. Cetacean Navigator scenes must project habitat-native channels, workstations, displays, rails, acoustic or translation systems, and other Navigator-built infrastructure instead of generic human body assumptions."} -{"ts": "2026-05-02T03:23:47+00:00", "type": "design", "status": "accepted", "note": "Corrected embodiment lesson: Ghostlight should check AetheriaLore faction source before projecting faction-specific action affordances. Navigator lore supports fluid architecture, acoustic signaling, communal orientation chambers, translation/coexistence, and specialized cetacean environments; precise clinic workstation ergonomics remain a source-lore gap."} -{"ts": "2026-05-02T03:29:28+00:00", "type": "design", "status": "accepted", "note": "Formalized Aetheria generation doctrine: source-check factions, movements, institutions, location, time period, species/body affordances, infrastructure, and material constraints before writing or generating; patch blocking AetheriaLore gaps narrowly before treating details as available to projection."} -{"ts": "2026-05-02T03:29:51+00:00", "type": "documentation", "status": "ok", "note": "Added source-first Aetheria generation doctrine and patched AetheriaLore Cetacean Navigators with habitat/interface ergonomics so Navigator action affordances can be projected from source rather than local improvisation."} -{"ts": "2026-05-02T03:46:05+00:00", "type": "experiment", "status": "mixed", "note": "Source-checked Navigator projection improved Maer action proposals: v13-v17 route packets through shared clinic displays and wet/dry interface affordances instead of human body defaults. No capture was materialized; failures exposed object-custody drift, invented mutation paths, Qwen appraisal tool dropouts, and prompt-constraint leakage into Sella prose."} -{"ts": "2026-05-02T07:55:40+00:00", "type": "architecture", "status": "ok", "note": "Soft judgments that cannot be deterministic code are now explicit training-artifact targets: projector, character agent/responder, participant appraiser, state mutator, relationship/perception classifier, lore-tone adapter, and later institution/faction/consumer decision models should all emit reviewed accepted/rejected receipts before fine-tuning or distillation."} -{"ts": "2026-05-02T07:58:01+00:00", "type": "architecture", "status": "ok", "note": "Clarified Aetheria lore/tone training: the responder itself should be fine-tuned on strong source-grounded responses across the timeline so setting assumptions become native priors, rather than treating lore/tone as a separate adapter layer."} -{"ts": "2026-05-02T08:01:25+00:00", "type": "architecture", "status": "ok", "note": "Added the coordinator/story runtime as a trainable soft organ: the current authoring agent glues scenes together, selects next beats and acting agents, invokes machinery, carries unresolved hooks, emits glue prose, and proposes game-engine-shaped world-state changes while deterministic gates retain authority."} -{"ts": "2026-05-02T08:04:36+00:00", "type": "architecture", "status": "ok", "note": "Added a concrete Ghostlight training plan enumerating trainable stages, inputs, outputs, likely model families, artifact families, corpus gates, and deterministic boundaries. Next implementation should define the coordinator artifact schema before more story-generation passes so glue prose and world-state coordination become trainable data."} -{"ts": "2026-05-02T08:12:30+00:00", "type": "architecture", "status": "ok", "note": "Extended Aetheria timeline training plan with a future_branch lane: Ghostlight should generate reviewed possible post-Rupture Elysium futures so responder/coordinator/appraiser/decision models learn concepts like Aether, pseudospace, temporal nonlinearity, spirits, necrotech, mutable bodies, and altered substrates while keeping generated branch assumptions separate from promoted canon."} -{"ts": "2026-05-02T08:14:44+00:00", "type": "architecture", "status": "ok", "note": "Corrected Elysium future-branch metaphysics: Sol timeline is a single-history artifact, while every possible Elysium future is canon inside its own branch lineage. Training artifacts must preserve branch lineage, prior conditions, and sibling-branch exclusion boundaries instead of treating generated futures as non-canon or merely provisional."} -{"ts": "2026-05-02T08:21:41+00:00", "type": "architecture", "status": "ok", "note": "Added Elysium branch event constraints: future branches can mark events as branch_attractor, fated_event, tech_order_constraint, quest_injection, or branch_local_event so likely faction births, authored rails, technology discovery order, and quest injection are explicit runtime/training signals rather than hidden prose."} -{"ts": "2026-05-02T08:31:00+00:00", "type": "architecture", "status": "ok", "note": "Added technology/item manifest plan: coordinator-led Aetheria exploration must emit game-usable item families, variants, assemblies, subassemblies, components, faction tech bases, prerequisites, bottlenecks, compatibility rules, supply-chain consequences, upgrade paths, and quest hooks for both pre-Elysium starting tech and branch-local post-Rupture innovations."} -{"ts": "2026-05-02T08:33:46+00:00", "type": "architecture", "status": "ok", "note": "Extended technology/item manifest plan to explicitly elaborate existing nebulous Aetheria timeline technologies into blueprint candidates. Manifest candidates must separate source facts, inferred engineering, and open lore gaps while decomposing tech into assemblies, subassemblies, components, materials, processes, tooling, facilities, quality tiers, failure modes, supply chains, and gameplay hooks."} -{"ts": "2026-05-02T08:42:58+00:00", "type": "research", "status": "ok", "note": "Aetheria-Economy already provides the concrete item schema target: CultCache-backed ItemData subclasses are technological blueprints (SimpleCommodityData, CompoundCommodityData, ConsumableItemData, GearData/EquippableItemData), while ItemInstance subclasses represent realized runtime artifacts carrying quality/provenance/branding/world state. Ghostlight item manifests should map onto that model, with assembly trees, recipes, compatibility, tooling, facilities, process requirements, and supply-chain dependencies recorded as blueprint metadata or engine-schema gaps until the economy code exposes explicit storage."} -{"ts": "2026-05-02T08:51:57+00:00", "type": "architecture", "status": "ok", "note": "Documented the player-facing gear fantasy and content-refinery framing: ultimate items should be provenance hunts through blueprint, assembly quality, manufacturer practice, supply-chain lineage, repair history, counterfeit substitution, and operating conditions; Ghostlight should convert lore-grounded ideas into reviewed database-shaped Aetheria-Economy candidates rather than another manual spreadsheet bottleneck."} -{"ts": "2026-05-02T09:04:24+00:00", "type": "architecture", "status": "ok", "note": "Accepted sandboxed responder-data doctrine: coordinator may be omniscient, but gold responder examples must be generated from only the exact projected local packet, visible event, allowed actions, and explicitly included source excerpts. Artifacts must preserve raw output, reviewed output, hidden-context refs, leakage audit, isolation method, and coordinator intervention labels so repaired prose is not laundered as raw responder behavior."} -{"ts": "2026-05-02T09:08:43+00:00", "type": "architecture", "status": "ok", "note": "Clarified training corpus scale: the existing per-stage sample counts are pilot schema-shakedown gates for exposing schema, boundary, leakage, validator, and workflow problems, not robust training targets. Review-assistant and runtime targets require much larger corpora, held-out evaluation, negative coverage, and failure audits; pilot data may be invalidated by schema fixes."} -{"ts": "2026-05-02T09:14:24+00:00", "type": "implementation", "status": "ok", "note": "Added the v0 coordinator artifact seam: schemas/coordinator-artifact.schema.json, examples/coordinator/cold-wake-sanctuary-intake.v0.json, tools/validate_coordinator_artifacts.py, and npm run coordinator:validate. The schema captures scene setup, next-beat choice, machinery invocations, sandboxed responder handoffs, world-state refs, proposed deltas, branch constraints, item-manifest deltas, unresolved hooks, glue prose, and review status."} -{"ts": "2026-05-02T09:19:50+00:00", "type": "implementation", "status": "ok", "note": "Added the v0 responder packet seam: schemas/responder-packet.schema.json, docs/architecture/sandboxed-responder-packets.md, tools/build_responder_packet.py, tools/validate_responder_packets.py, and examples/responder-packets/scene-02-sanctuary-intake.sella_ren.packet.v0.json. The packet captures the exact responder-visible prompt surface, observed event, allowed action labels, source excerpts, output contract, hidden-context audit, and isolation requirements for future sandboxed gold responder data."} -{"ts": "2026-05-02T09:25:24+00:00", "type": "implementation", "status": "ok", "note": "Generated and preserved the first no-fork sandboxed responder output from the Sella responder packet. Added schemas/responder-output.schema.json, tools/validate_responder_outputs.py, and experiments/responder-packets/cold-wake-sanctuary-intake-sella-v0.capture.json. The capture records raw output, exact parsed output, packet-only isolation, hidden-context refs, leakage audit, coordinator interventions, and review status."} -{"ts": "2026-05-02T09:43:23+00:00", "type": "design", "status": "ok", "note": "Split responder data into explicit packet_only and research_augmented lanes. packet_only uses curated source excerpts for runtime parity; research_augmented allows scoped AetheriaLore search with consulted refs for lore absorption. Added v1 Sella packet with absent hidden context removed from responder-visible prose and curated Cold Wake, Ganymede Compact, Navigator rescue ledger, and Lightsail source excerpts."} -{"ts": "2026-05-02T09:50:08+00:00", "type": "implementation", "status": "ok", "note": "Completed both responder lanes for the Sella sanctuary beat. Materialized the packet-only Sella capture into a reviewed mutation receipt and mutated fixture, then generated a research_augmented Sella capture with scoped AetheriaLore refs and a lane comparison showing packet-only proves runtime parity while research_augmented adds heat-debt, rescue-ledger, dockfall, and Aya sanctuary capacity texture for retrieval/projector requirements."} -{"ts": "2026-05-02T09:59:37+00:00", "type": "design", "status": "accepted", "note": "Corrected responder lane terminology: the prior research_augmented Sella capture was coordinator-retrieved lore, not autonomous responder research, so the lane is now retrieval_augmented with lore_access.mode coordinator_scoped_retrieval. The comparison now records that retrieval improved institutional texture but underused Sella Ren's packet-visible sanctuary-collapse scar; future projector/retrieval review must preserve character-local scars as well as lore grounding."} -{"ts": "2026-05-02T10:02:28+00:00", "type": "design", "status": "accepted", "note": "Refined character-pressure retention doctrine: packet-visible backstory such as Sella Ren's sanctuary-collapse scar should be available to shape responder behavior, but review must not reward unnecessary trauma-dumping or require the scar to surface in mission-critical speech."} -{"ts": "2026-05-02T10:08:14+00:00", "type": "implementation", "status": "ok", "note": "Implemented runtime retrieval/projector requirements. Projected local contexts now emit source-backed runtime_retrieval_requirements and latent_pressure_requirements; prompt text renders retrieved lore and latent pressure handling; responder packets copy active retrieval requirements into source_excerpts so packet-only contexts receive compact Cold Wake heat-debt, Navigator rescue-ledger, Aya sanctuary-capacity, and Ganymede/Lightsail route-obligation facts without granting repo access or forcing character backstory into speech."} -{"ts": "2026-05-02T10:11:38+00:00", "type": "design", "status": "accepted", "note": "Added explicit research-enabled responder instructions. `responder_scoped_repository_search` now means the responder may inspect only the declared lore scope, must consult it before answering, and must ground behavior in retrieved lore docs; packet validation requires visible research instructions and output validation requires consulted refs plus a research summary."} -{"ts": "2026-05-02T10:17:55+00:00", "type": "implementation", "status": "ok", "note": "Generated the first concrete research-enabled Sella responder packet. build_responder_packet.py now supports responder_scoped_repository_search, sets repo access open only for that lane, renders Required Lore Research, and requires consulted_refs plus research_summary."} -{"ts": "2026-05-02T10:21:51+00:00", "type": "maintenance", "status": "ok", "note": "Demoted Qwen/local-model prototype material in rehydrate surfaces. Canonical map and handoff now treat those runs as archived receipts, not active gold-data direction; next action stays on sandboxed research-enabled responder packets."} +{"ts": "2026-05-02T10:31:00+00:00", "type": "distilled_state", "status": "accepted", "note": "Initialized Ghostlight with a stripped-down Epiphany-style persistence spine."} +{"ts": "2026-05-02T10:32:00+00:00", "type": "distilled_state", "status": "accepted", "note": "Rejected old active game-slice drift; Ghostlight targets Aetheria authoring, Call of the Void, and timeline drama scaffolding."} +{"ts": "2026-05-02T10:33:00+00:00", "type": "distilled_state", "status": "accepted", "note": "Canonical state separates authored state from perceived overlays; perceived reads carry confidence and can be wrong."} +{"ts": "2026-05-02T10:34:00+00:00", "type": "distilled_state", "status": "accepted", "note": "Projection compiles character-local context from state, memory, relationship, culture, scene pressure, embodiment, affordances, and lore."} +{"ts": "2026-05-02T10:35:00+00:00", "type": "distilled_state", "status": "accepted", "note": "Cold Wake is the first historical grounding fixture; use as pre-Elysium training feedstock, not product target."} +{"ts": "2026-05-02T10:36:00+00:00", "type": "distilled_state", "status": "accepted", "note": "Ink is the playable branching scene format; Ghostlight owns projection, annotations, consequences, and reviewed mutation around it."} +{"ts": "2026-05-02T10:37:00+00:00", "type": "distilled_state", "status": "accepted", "note": "Sequential runtime target: characters act from local awareness; actions become event proposals; every affected participant appraises before next turn."} +{"ts": "2026-05-02T10:38:00+00:00", "type": "distilled_state", "status": "accepted", "note": "Aetheria generation is source-first and source-repairing; patch blocking lore gaps before projecting details."} +{"ts": "2026-05-02T10:39:00+00:00", "type": "distilled_state", "status": "accepted", "note": "Soft judgments are training-artifact targets: coordinator, retriever, projector, responder, appraiser, mutator, relationship/perception, evaluator, and decision models."} +{"ts": "2026-05-02T10:40:00+00:00", "type": "distilled_state", "status": "accepted", "note": "Future branches are branch-local Elysium canon indexed by lineage and constraint labels; technology exploration must emit blueprint-grade item/supply-chain data."} +{"ts": "2026-05-02T10:41:00+00:00", "type": "distilled_state", "status": "accepted", "note": "Gold responder data must be sandboxed with exact visible input, raw/reviewed output, leakage audit, isolation method, and coordinator interventions."} +{"ts": "2026-05-02T10:42:00+00:00", "type": "distilled_state", "status": "accepted", "note": "Current live seam is the research-enabled Sella responder packet requiring scoped lore consultation, consulted refs, and research summary."} +{"ts": "2026-05-02T10:43:00+00:00", "type": "distilled_state", "status": "accepted", "note": "Archived local-model prototype material remains evidence only; do not use those runners for gold responder data unless explicitly testing model plumbing."} +{"ts": "2026-05-02T10:44:00+00:00", "type": "distilled_state", "status": "ok", "note": "Persisted state was compacted to mission, live seams, and next action; older evidence moved to state/evidence.archive.jsonl."} diff --git a/state/map.yaml b/state/map.yaml index be2f84b..e40761a 100644 --- a/state/map.yaml +++ b/state/map.yaml @@ -4,167 +4,109 @@ experiment: phase: phase_0_scaffold premise: > Build a durable research and implementation home for socially persistent - generative agents whose behavior emerges from latent state, culture, - memory, perception, and incentives rather than flat persona prompts. + generative agents whose behavior emerges from personality, culture, + memory, perception, incentives, and situation rather than flat persona + prompts. -objective: +mission: primary: > - Turn Ghostlight into a legible machine for persistent socially aware - characters that can generate interactive branching scene trees for games, - including speech and non-speech actions, propagate scene consequences into - state and memory, and eventually support procedural - storyline generation, psychologically grounded consumer behavior, and major - faction decision-making without collapsing into prompt soup. - current: > - Move from hand-authored single-turn projection artifacts toward the first - scene-local sequential dialogue tick: local awareness, action or dialogue - choice, event proposal, conservative state mutation, and validation. + 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 responder training data through + projected local context, responder packets, reviewed outputs, and audited + mutation receipts. + active_fixture: > + Cold Wake is a pre-Elysium historical training fixture, not the product + target. Call of the Void and Elysium-era gameplay remain procedural + consumer targets. -constraints: - - Prefer explicit latent state over persona theater. - - Culture should shape priors and incentives, not stamp out clones. - - Prompt text is a projection surface, not the canonical store of truth. - - Keep persistent state small enough to rehydrate without drowning the next session. - - Reuse proven machinery where it fits before inventing ornate nonsense. - - Do not treat an older corridor-crisis game slice as the active Ghostlight implementation target. - - Cold Wake may be used as a pre-Elysium historical grounding fixture, but not as the active product target unless explicitly revived. - - Do not use the obsolete Call of the Void colony-fleet return-home twist; current Aetheria canon sequesters the whole Solar system into Elysium. - - Do not treat Elysium gameplay-era outcomes as single-history Sol facts; Elysium futures are conditional canon indexed by branch lineage. - - Generate possible post-Rupture Elysium futures as reviewed `future_branch` training and evaluation material so models learn weird Elysium concepts as branch-local canonical histories. - - Some Elysium branch events may be constrained by attractors, fated events, technology order, or quest injections; do not model the future as equal-probability soup. - - Coordinator-led exploration must produce game-usable technology/item manifest knowledge, not only narrative branch history. - -invariants: - - The map is canonical and slow-changing. - - Scratch is temporary and disposable. - - Evidence is durable and distilled. +hard_boundaries: + - Prompt text is projection, not truth storage. - Canonical agent state and per-agent perceived state must remain distinct. - - Listener misread is part of the model, not an error to flatten away. - - Personality must be modeled as layered organization, presentation, and situational activation, not just one bag of labels. - - Authoring outputs must remain explainable in terms of state, relationship, pressure, memory, and goals. - - Character generation should be agent-local: each acting turn should restrict context to what the character knows, feels, wants, remembers, hides, perceives, can attempt, and has authority to affect. - - Aetheria single-history training data should come from authored historical lore; procedural Elysium scenes are conditional branch histories. - - Post-Rupture future branches must distinguish source-backed Elysium concepts, generated branch assumptions, branch lineage, and sibling-branch exclusion boundaries. - - Elysium branch generation must track event constraint type: branch attractor, fated event, tech-order constraint, quest injection, or ordinary branch-local event. - - Technology and item exploration must track item families, variants, assemblies, subassemblies, components, materials, faction access, prerequisites, bottlenecks, compatibility rules, supply-chain consequences, and quest hooks. - - Existing nebulous named technologies in the Aetheria timeline should be elaborated into blueprint candidates with source facts, inferred engineering, and open lore gaps separated. - - Aetheria scene generation must check AetheriaLore source for factions, social movements, locations, time periods, species, body affordances, infrastructure, and material constraints before projection. - - Soft judgments that cannot be wired as deterministic code should emit reviewed training artifacts instead of becoming permanent ad hoc rules. - - Coordinator output must keep world and branch state shaped for future game-engine integration even while current coordination lives in authored imagination and glue prose. + - Characters act from local knowledge, local perception, local pressure, and bounded affordances. + - Listener misread is first-class; intent and interpretation are not the same object. + - 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. + - 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. + - Archived local-model prototype runners are receipts and plumbing tests, not the gold-data path. -data_flow: - observe: - - research notes - - implementation artifacts - - simulation requirements - - setting constraints - - AetheriaLore source context - process: - - rehydrate from canonical state - - work one bounded organ - - verify the seam that matters - - distill only belief-changing evidence - - commit or cut the branch - cut: - - kill machinery that does not visibly serve the core model - - move volatile proof to git history or artifacts, not durable notes - - remove active scenario assumptions when the user redirects the product target +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 verbal behavior should emerge from state, pressure, relationship, 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, 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 only declared lore scope and requires consulted refs 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. + 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. + - Glue prose is training signal, not canonical truth. + training_targets: + - Coordinator/story runtime + - Memory and lore retrieval + - Projector/state interpreter + - Character agent/responder + - Participant appraiser + - State mutator + - Relationship/perception updater + - Evaluator/review classifiers + - Aetheria-tuned responder + - Institution, faction, and consumer decision models active_subgoals: - - Keep Ghostlight as the canonical home for its architecture notes so consumer projects do not quietly regrow duplicate brains. - - Define the canonical agent state model, including first-class volatility, attachment-seeking, and distance-seeking. - - Define how culture shapes priors, incentives, masks, and economic behavior without turning populations into clones. - - Define the boundary between canonical signal, perceived signal, and prompt projection. - - Support content generation for the Call of the Void slice in AetheriaLore and dialogue scaffolding or procedural drama for narrated Aetheria timeline stories. - - Ground projection training in authored Aetheria historical flashpoints before using Ghostlight to generate Elysium branch history. + - Keep Ghostlight focused on the architecture and data pipeline for socially persistent agents. + - Build schema-stable, sandboxed responder data before chasing larger runtime loops. + - Preserve Aetheria grounding through source-backed lore, branch labels, and reviewed assumptions. + - 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. -accepted_design: - - Ghostlight owns the deeper agent-state, personality, culture, relationship, and prompt-projection architecture; other projects can remain consumers instead of shrines. - - Personality is layered: underlying organization, stable dispositions, behavioral dimensions, presentation strategy, situational activation, relationship state, and goals or values. - - The agent model must distinguish canonical state from per-agent perceived state. - - Prompts are rendered projections of perceived state, active memory, and scene pressure; they are not the authoritative store of truth. - - Culture acts as a prior-shaping and incentive field with distributions, covariance, scripts, reward gradients, taboo maps, and prestige structure. - - Synthetic dialogue from known hidden state is a valid bootstrap source for training signal classifiers, but utterances themselves are not ground truth. - - Performance, concealment, and mask maintenance are signal, not just obstruction. - - The near-term Aetheria consumer is authoring support: Call of the Void content generation plus narrated timeline dialogue and procedural drama scaffolding. - - Ghostlight should build drama and narrative pressure, then project character-local dialogue contexts so characters can breathe and act from their own partial state. - - Call of the Void pressure should come from Sol's whole unresolved inheritance being trapped inside Elysium, not from a lone expedition discovering there is no way home. - - The first schema contract lives in schemas/agent-state.schema.json with required first-class dimensions in schemas/agent-state.required-fields.json and a validator in tools/validate_agent_state.py. - - Canonical authored character variables do not carry certainty; perceived dimensions do not expose canonical mean or plasticity, and instead model observed activation, attributed disposition, and confidence. - - Fundamental attribution bias is first-class in perceived state: observers can mistake exceptional behavior for stable character, with stubborn reads emerging from confidence drivers such as memory, stakes, emotion, prejudice, and social reinforcement. - - Voice style is a broad required communication vector covering lyrical speech, formality, verbosity, hedging, coded politeness, theatricality, dialect, register switching, technical compression, ritualized address, and related language mechanics. - - Defensive verbal responses are derived during projection from underlying organization, dispositions, behavioral dimensions, presentation strategy, situational pressure, relationship context, and voice style rather than stored as a separate canonical layer. - - Sarcastic deflection, sincerity evasion, emotional evasion, banter-as-boundary, and verbal aggression are target emergent behaviors for projection tests. - - Dialogue context packs are positive-context payloads; unknown or author-only material is omitted rather than listed as forbidden context, while known secrets are handled through goals, memories, beliefs, and presentation constraints. - - Relationship stance is directional; reciprocal agent pairs need separate edges because trust, fear, obligation, dependence, and betrayal expectations are not symmetric by default. - - Prompt projection should compile state into actor-local awareness and pressure prose through input selection, active-pressure scoring, tension detection, response affordance derivation, projection controls, compact prompt rendering, and post-generation evaluation. - - Projection must allow characters to act, not only speak; response turns can be dialogue, action, silence, withdrawal, violence, resource use, concealment, revelation, or mixed beats when state and scene pressure justify them. - - Projection distillation is the long-term optimization path: a frontier teacher model generates reviewed projection artifacts, and a smaller student projector is trained only after the artifact schema, deterministic input slicer, and evaluator are stable. - - Behavioral warmth and verbal warmth are separate axes: `interpersonal_warmth` describes social care or welcome, while `verbal_warmth` describes soft or reassuring language surface. - - Events can carry lightweight observed exchange, private interpretation, and event-effect scaffolding so prompt projection can reason from appraisal and consequence without pretending the v0 schema is already a full transition engine. - - Future social-simulation mechanisms should be documented and tested through projection artifacts before promotion into the canonical schema. - - Projection examples use `ghostlight.projection_example.v0` JSONL records with traceable known facts, active pressures, tensions, response affordances, voice surface, rendered prompt text, and audit checks. - - Aetheria projection training has three timeline lanes: historical grounded fixtures from authored lore, transition grounded fixtures around the Rupture/displacement, and future-branch Elysium fixtures that exercise post-Rupture concepts as conditional canon. - - Lore grounding digests use `ghostlight.lore_grounding_digest.v0` records to distill authored lore into cultural pressure fields, factional misread maps, role pressures, speaker knowledge boundaries, and author-only exclusions. - - The Cold Wake Panic is the first chosen historical grounding fixture: a draft Ganymede corridor digest now models thermal stealth panic, insurer category failure, Navigator rescue obligation, Lightsail reliability pressure, Aya-coded care pressure, pirate porosity, Cognitum firmware denial, and Cryonix/Rossum certification culture. - - The Cold Wake story lab uses Maer Tidecall as protagonist across a four-scene arc: tribunal freeze, sanctuary intake, Callisto provenance, and convoy threshold; early prototype runs exposed prompt weaknesses around unresolved personhood suspicion. - - Projection controls are now first-class in projection examples: frame_controls, authority_boundaries, object_custody, required_semantics, and forbidden_resolutions capture failure lessons before prompt prose is rendered. - - Prototype response captures are validated training receipts, not loose logs; accepted, rejected, and useful-needs-revision outputs should keep review status, response kind, strengths, failures, and pipeline lessons. - - The first complete Cold Wake short story, The Narrowest Possible Margin, is assembled from Ghostlight projection receipts plus in-session connective narration. - - Single-turn projection is a debug and training seam, not the final procedural-generation shape; the near-term runtime target is scene-local interactive dialogue generation with agents acting from local awareness, producing event proposals, and mutating bounded state. - - Generated action should become an event proposal resolved by mutation authority, not direct unrestricted edits to world or other-agent private state. - - Sequential runtime action primitives should stay concrete; ask, refuse, offer, reveal, conceal, and request are communicative intentions carried by actions, while listener interpretation remains separate and may be wrong. - - Early fuzzy social updates should be manual reviewed training data, not brittle rule-based appraisals pretending to understand relationships before the corpus exists. - - Scope boundary: implement interactive branching scene trees and scene-local consequences first; dialogue trees include speech and non-speech actions, while preserving training data hooks for open-world contexts, iterated decisions, economic behavior, scarcity, reputation, faction pressure, and institution decision-making. - - Do not train dialogue-only models that will be useless for later game-world simulation; reviewed scene data should preserve why agents buy, refuse, trade, hoard, comply, defect, conceal, punish, or help when those decisions appear. - - Branching scene generation should propose plausible protagonist choices, including speech, silence, movement, object use, concealment, revelation, withdrawal, violence, trade, or refusal, then record NPC responses and branch consequences such as trust loss or future hooks. - - Ink is the standard branching scene format for playable interactive fiction; Ghostlight should project and annotate Ink scenes rather than inventing a parallel dialogue-tree language. - - Ink sidecar training annotations preserve actor-local awareness, projection controls, branch rationale, action intent, reviewed consequences, and manual mutation policy while keeping Ink itself as the branch structure. - - Responder models may generate Ink branch candidates from a Ghostlight local-awareness packet, but generated branches must be saved as reviewed captures and accepted as draft/training material before they become Ink or mutation input. - - Character turns must be generated from character-local awareness only: protagonist choices are generated from protagonist-local state, then responder actions are generated from responder-local state plus observable protagonist action, not protagonist private intent. - - Gold responder training data must be sandboxed: the responder sees only the exact projected local packet, visible event, allowed actions, and explicitly included source excerpts; it must not inherit coordinator context, hidden state, author-only plot beats, future branch plans, or repo/lore access the trained model will not have. - - Responder artifacts must preserve exact visible input, raw output, reviewed output, hidden-context refs, leakage audit, isolation method, and coordinator intervention labels; coordinator repairs are useful but cannot be laundered as raw responder behavior. - - Interaction turns are symmetrical: an actor acts, the action resolves into an event, every affected participant appraises and updates state, then the next actor is selected from the newly consolidated state. - - Every meaningful scene event should update each affected character's state, memory, relationship stance, or perceived overlay through a reviewed mutation receipt; Ink variables remain playthrough-local and do not become canonical truth by accident. - - Early sequential prototype captures are useful training material because they exposed actor/responder isolation, per-turn participant appraisal, action-label discipline, tool-call/schema reliability, and the need to keep model plumbing separate from final Ghostlight architecture. - - Local-model runner code is archived scaffolding, not the active gold-data path. - - A projector/state interpreter must sit between canonical agent state and responder prompts, translating numbers, memories, relationships, culture, and scene pressure into compact character-local operating context and affordances. - - Character agents should not need to interpret `current_activation`, `plasticity`, or raw dimension scores; those belong to Ghostlight's internal state model and projector training data. - - The first projected local context seam now exists as `ghostlight.projected_local_context.v0`: deterministic projection turns canonical state into character-local operating prose with audit refs while hiding raw state variables from prompt text. - - The sequential prototype runner now consumes projected local context instead of selected raw activation dictionaries. - - The first projector-routed prototype captures validated the architecture boundary while preserving malformed structured-output failures as training evidence. - - Projector-routed next-action prompts should receive appraisal context as prose constraints, not raw numeric state deltas from the appraisal artifact. - - Failed sequential model calls must still write reviewed receipts instead of exiting without evidence. - - Prototype structured-output failures show model/tool reliability is a runner concern, not a reason to distort the projector seam; malformed tool arrays, no-call dropouts, and schema-looping must become reviewed failure receipts. - - The first accepted projector-routed sequential capture has been materialized into playable Ink, sidecar training annotation, reviewed mutation receipt, and a mutated Cold Wake fixture. - - Materialized sequential captures should still keep fuzzy state, relationship, memory, and perceived-overlay changes manual and audited until classifiers exist. - - Embodiment and interface affordances belong in projected local context, but Aetheria faction-specific affordances must be checked against lore source before projection; current Navigator source supports fluid architecture, acoustic signaling, soft navigation light, layered water motifs, communal orientation chambers, mixed-species translation/coexistence, specialized cetacean environments, and mixed wet/dry interface ergonomics. - - Ghostlight's Aetheria generation doctrine is source-first and source-repairing: if a blocking lore gap appears while generating scenes or training data, patch AetheriaLore with a narrow elaboration before treating the detail as available to Ghostlight projection. - - AetheriaLore now includes Navigator habitat and interface ergonomics for mixed wet/dry, acoustic, translation, and shared operational spaces, so future Navigator scenes should cite that source instead of improvising body affordances. - - Source-checked Navigator retries improved Maer's generated action affordances but were not materialized; remaining blockers are object-custody semantics, valid appraisal/mutation paths, structured-output reliability, and prompt-constraint leakage into responder prose. - - The soft organs are training targets: coordinator/story runtime, projector, character agent/responder, appraiser, state mutator, relationship/perception classifier, Aetheria responder, and later institution/faction/consumer decision models should all produce reviewed artifacts for future distillation or fine-tuning. - - An Aetheria-tuned responder should learn lore, tone, factional preconceptions, species affordances, and institutional pressure from strong source-grounded responses spread throughout the timeline, but it still acts only inside Ghostlight's character-local context, deterministic gates, and mutation authority. - - The coordinator is a trainable artifact: it glues scenes together, chooses next beats and acting agents, invokes specialist machinery, carries unresolved hooks, emits reviewed glue prose, and proposes world-state changes without bypassing deterministic gates. - - Coordinator artifacts use `ghostlight.coordinator_artifact.v0` to capture scene setup, next-beat choice, acting-agent choice, machinery invocations, sandboxed responder handoffs, world-state refs, proposed deltas, branch constraints, item-manifest deltas, unresolved hooks, glue prose, and review status. - - Responder packets use `ghostlight.responder_packet.v0` to preserve the exact packet-only prompt surface a character responder may see: projected local context, observed event, allowed action labels, source excerpts, output contract, hidden-context audit, and isolation requirements. - - Responder outputs use `ghostlight.responder_output.v0` to preserve raw sandboxed worker output, parsed output, no-fork isolation, hidden-context refs, leakage audit, coordinator interventions, and review status. - - Responder data has two explicit lanes: `packet_only` for runtime parity with curated source excerpts, and `retrieval_augmented` for coordinator- or retriever-selected scoped AetheriaLore refs that bake worldbuilding into final outputs while preserving consulted refs. This is not autonomous responder research unless the responder actually receives scoped repo access. - - First lane-comparison correction: retrieval-augmented output improved institutional texture, and follow-up review clarified that Sella Ren's packet-visible sanctuary-collapse scar does not need to surface in speech but must remain available to the responder as latent behavioral pressure. - - The first responder lane comparison shows packet-only output proves bounded runtime competence, while retrieval-augmented output adds heat-debt timing, rescue-ledger burden, dockfall responsibility, and Aya sanctuary capacity politics that should become retrieval/projector requirements. - - Runtime retrieval/projector requirements are now first-class projected-context fields: compact source-backed lore facts flow into packet source excerpts when scene-relevant, and latent character-history pressure remains visible without becoming required spoken disclosure. - - Research-enabled responder mode is now explicit: `responder_scoped_repository_search` packets must surface required lore research instructions and allowed scope, and captures must preserve consulted refs plus a research summary so ignored research access is reviewable. - - The first concrete research-enabled Sella packet now exists at `examples/responder-packets/scene-02-sanctuary-intake.sella_ren.packet.research.v0.json`; it is generated by `tools/build_responder_packet.py --lore-access-mode responder_scoped_repository_search` and requires scoped AetheriaLore consultation before response. - - The concrete training plan enumerates the trainable stages and their model families: generative decoder LLMs for coordinator/responder/soft structured outputs, classifiers or cross-encoders for appraisal/evaluation/relationship movement, retrieval models for memory and lore selection, and deterministic code for gates. - - Training-plan sample counts are pilot schema-shakedown gates, not robust corpus targets; pilot data may be invalidated by schema fixes, while review-assistant and runtime targets are expected to be roughly an order of magnitude larger with held-out evaluation and failure audits. - - The timeline training plan now requires future-branch Elysium examples so the responder, coordinator, appraiser, and decision models learn post-Rupture concepts such as Aether, pseudospace, temporal nonlinearity, spirits, necrotech, mutable bodies, altered substrates, and weird institutions under branch-lineage labels. - - Elysium-born factions and institutions can emerge as pressure-born attractors, authored/fated events, quest injections, or branch-local developments; technology discovery order and quest prerequisites are runtime constraints, not flavor text. - - Future exploration should discover the Elysium technology landscape by simulating capable major-player decisions, while emitting manifests for branch-local innovations and pre-Elysium starting tech asymmetries across factions. - - Item blueprint candidates should decompose technologies into assemblies, subassemblies, components, materials, processes, tooling, facilities, quality tiers, failure modes, supply-chain dependencies, and gameplay hooks. - - Ghostlight item manifests should target Aetheria-Economy's existing CultCache item model: `SimpleCommodityData`, `CompoundCommodityData`, `ConsumableItemData`, `GearData`, and other `EquippableItemData` subclasses are technological blueprint classes, while runtime `ItemInstance` classes carry realized quality, provenance, manufacturer branding, assembly history, and world-state placement. - - Assembly trees, recipes, upgrade compatibility, tooling, facilities, process requirements, and supply-chain dependencies should attach to the relevant Aetheria-Economy blueprint as manifest metadata or engine-schema gaps until the economy code exposes explicit storage for them. - - The player-facing gear fantasy is provenance hunting: an ultimate item is the right blueprint realized through exceptional assemblies, quality, supply-chain lineage, manufacturer practice, repair history, substitutions, and operating conditions, so chasing power becomes salvage, trade, espionage, logistics, and faction conflict. - - Ghostlight's technology pipeline should function as a content refinery: ground ideas in lore and mechanics, decompose them into parts and supply chains, map them to Aetheria-Economy blueprint classes, define performance and instance variation, preserve review labels, and produce database-shaped candidates instead of spreadsheet sludge. +current_artifacts: + canonical_docs: + - 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/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/projected-local-context.schema.json + - schemas/coordinator-artifact.schema.json + - schemas/responder-packet.schema.json + - schemas/responder-output.schema.json + live_examples: + - examples/lore-grounding/cold-wake-panic.ganymede-corridor.json + - examples/projected-contexts/scene-02-sanctuary-intake.sella_ren.projected-context.json + - examples/coordinator/cold-wake-sanctuary-intake.v0.json + - examples/responder-packets/scene-02-sanctuary-intake.sella_ren.packet.research.v0.json + - experiments/responder-packets/cold-wake-sanctuary-intake-sella-v0.capture.json + - experiments/responder-packets/cold-wake-sanctuary-intake-sella-v0.mutation.json + archived_receipts: + - Archived local-model prototype captures remain under experiments/ and examples/ink/ for validation and lessons, not active steering. + +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. + - Commit and push completed work. + - If state grows faster than understanding, cut it back. current_status: - summary: Ghostlight now has the Epiphany-style persistence spine, the first architecture payload, the v0 canonical agent-state schema seam, prompt projection docs, immediate schema fixes from evaluation, first reviewed Cat/Oz projection examples, a revised Aetheria lore-grounding architecture, a lore grounding digest schema, the first coordinator artifact schema seam, the first responder packet seam, the first sandboxed responder output seam, explicit packet-only versus retrieval-augmented responder lanes, the first concrete research-enabled Sella packet, the first responder lane comparison, the first draft Cold Wake historical grounding digest, a Cold Wake story-lab fixture, projection controls, validated prototype capture receipts, a complete Cold Wake short story assembled from accepted projection outputs, a hand-authored Ink-backed Cold Wake branching scene, the first prototype-generated Ink draft materialized from local awareness with reviewed training annotations, the first reviewed sequential branch mutation that updates both Maer and Sella after a sanctuary intake beat, sequential prototype receipts showing the symmetrical turn shape produces better action behavior, local-model tool-call smoke receipts archived as scaffolding, the first projected-local-context seam that routes sequential prompts through character-local operating prose instead of raw state variables, tightened receipt handling for projector-routed structured-output failures, archived local-model invocation lessons, the first materialized projector-routed sequential Ink scene with reviewed mutation training data, a source-checked embodiment/interface projection surface for Navigator scenes, a formal source-first Aetheria generation doctrine, source-checked retry receipts showing improved Maer embodiment plus remaining Sella response/prompt-leak blockers, a soft-model training artifact doctrine, a concrete training plan with pilot schema-shakedown gates separated from robust corpus targets, sandboxed responder-data requirements, an explicit future-branch lane, Elysium branch event constraints, and a technology/item manifest plan for turning nebulous named tech into blueprint-grade components, assemblies, faction tech bases, supply chains, upgrade paths, gameplay hooks, provenance-hunting player fantasy, and content-refinery outputs mapped onto Aetheria-Economy's CultCache blueprint and instance model. - next_action: Run a sandboxed no-fork research-enabled responder against `examples/responder-packets/scene-02-sanctuary-intake.sella_ren.packet.research.v0.json`, allowing only the declared AetheriaLore scope, then capture exact visible input, consulted refs, research summary, raw output, review labels, and leakage audit. Review for institutional lore use, latent pressure, prompt parroting, omniscience, and mission-critical trauma-dumping. Do not use archived local-model prototype runners for gold responder data. + summary: Ghostlight is focused on sandboxed, source-grounded responder and coordinator training artifacts for socially persistent Aetheria agents, with archived prototype runs demoted to receipts and the live path centered on projected local context, responder packets, reviewed outputs, and audited state mutation. + next_action: Run a sandboxed no-fork research-enabled responder against `examples/responder-packets/scene-02-sanctuary-intake.sella_ren.packet.research.v0.json`, allowing only the declared AetheriaLore scope, then capture exact visible input, consulted refs, research summary, raw output, review labels, leakage audit, and any coordinator intervention. Review for institutional lore use, latent pressure, prompt parroting, omniscience, and mission-critical trauma-dumping. Do not use archived local-model prototype runners for gold responder data.