Ghostlight/docs/architecture/projected-local-context.md
2026-05-02 23:40:45 +01:00

5.1 KiB

Projected Local Context

The projected local context is the missing seam between canonical Ghostlight state and a character agent.

Canonical state is storage. It can contain means, plasticity, activation, relationship stance, memories, culture, goals, and author-facing source paths. A character response model should not have to interpret that machinery. It should receive a compact operating context: what this character knows, wants, misreads, can do, sounds like, and must not resolve.

Contract

Pipeline:

canonical state + scene + reviewed annotation
  -> projector/state interpreter
  -> ghostlight.projected_local_context.v0
  -> response-model prompt
  -> generated action proposal

The projected context may retain source references for audit. The rendered prompt text must not expose raw state internals such as current_activation, plasticity, means, or selected numeric dimensions.

Artifact Shape

Schema: schemas/projected-local-context.schema.json

Validator: tools/validate_projected_contexts.py

Generator: tools/project_local_context.py

Current examples:

  • examples/projected-contexts/scene-02-sanctuary-intake.maer_tidecall.projected-context.json
  • examples/projected-contexts/scene-02-sanctuary-intake.sella_ren.projected-context.json

The context contains:

  • speaker identity and setting
  • known facts and speaker beliefs
  • current stakes
  • embodiment and interface affordances
  • active inner pressures rendered as ordinary language
  • relationship read and known biases
  • tensions
  • runtime retrieval requirements
  • latent pressure requirements
  • action affordances
  • projection controls
  • voice surface
  • likely response moves
  • do-not-invent boundaries
  • rendered prompt text

Retrieval And Latent Pressure

The projector now emits two explicit requirement lists before the responder packet is built.

runtime_retrieval_requirements are compact lore facts the runtime should include when their trigger is scene-relevant. They are not a license for a responder to browse the lore archive. They are coordinator or retriever outputs with source refs and a prompt role. In the Cold Wake sanctuary scene, the active requirements cover heat-debt timing, Navigator rescue ledgers, Aya sanctuary capacity politics, and Ganymede/Lightsail route obligations.

latent_pressure_requirements are character-local history or emotional pressure that must remain visible to the responder because it can shape behavior. They are not dialogue requirements. Sella's memory of a sanctuary overpromising safety should bias her toward capacity suspicion, condition-setting, and hard triage boundaries. It should not make her announce the memory in the middle of a mission-critical exchange unless the scene genuinely asks for that.

The rendered prompt includes these as:

  • Retrieved Lore To Keep In View
  • Latent Pressure Handling

The responder packet also copies source-excerpt retrieval requirements into its source_excerpts, so packet-only tests can evaluate the same bounded context a runtime responder would receive.

Runtime Boundary

The character model receives local operating context, not omniscient truth. If Maer acts, Sella's next pass receives only the observable event and Sella's own local context. Maer's private intent is not included.

The sequential runtime still owns:

  • tool contracts
  • action enums
  • event proposal capture
  • participant appraisal
  • reviewed mutation
  • branch compiler / Ink materialization

The projector owns the translation from Ghostlight's internal state language to character-local operating prose.

Current Limit

The first projector is deterministic and deliberately simple. It uses threshold language like "dominant", "strong", "present", and "background" rather than numeric scores. This is enough to remove raw state soup from responder prompts and create inspectable training artifacts.

Later versions can become smarter, but they should still preserve this boundary: response models act from projected local context; they do not become ad hoc interpreters of the canonical schema.

Embodiment Boundary

Embodiment is part of the prompt surface, not flavor garnish. If a character is a cetacean Navigator, the response model must know what kind of body is acting and what infrastructure surrounds it.

For Aetheria factions, project faction-specific affordances only after checking the lore source. The current Navigator projection is grounded in:

  • E:\Projects\AetheriaLore\Aetheria\Worldbuilding\Pre-Elysium\Factions\Powers\Major\Cetacean Navigators.md
  • E:\Projects\AetheriaLore\Aetheria\Worldbuilding\Pre-Elysium\Technology\Uplift.md

Those sources support fluid architecture, acoustic signaling, soft navigation light, layered water motifs, communal orientation chambers, mixed-species translation/coexistence, specialized environments for cetacean physiology, and mixed wet/dry interface ergonomics for Navigator-adjacent habitats.

Do not let the model default to hands, pockets, standing, walking, leaning, or doorway blocking unless the fixture explicitly establishes that visible interface. Do not patch over missing lore with confident furniture.