336 lines
66 KiB
YAML
336 lines
66 KiB
YAML
experiment:
|
||
name: Ghostlight
|
||
status: active_mvp_build
|
||
phase: ghostlight_dungeon_hosted_playtest
|
||
premise: >
|
||
Build a durable research and implementation home for socially persistent
|
||
generative agents whose behavior emerges from personality, culture,
|
||
memory, perception, incentives, and situation rather than flat persona
|
||
prompts.
|
||
|
||
mission:
|
||
ghostlight_dungeon: >
|
||
Build a persistent, Vault-grounded narrative simulation whose WorldKernel
|
||
exclusively owns revisioned world state, while generalized
|
||
Projector-Persona-Interpreter machinery produces bounded proposals for the
|
||
kernel to validate. The current forge surface supports one to eight
|
||
authenticated players in bounded shared-scene co-op; the durable
|
||
authority model admits those humans only as controllers of their exact
|
||
canonical actors through campaign membership.
|
||
primary: >
|
||
Generate psychologically grounded branching scenes, dialogue, actions,
|
||
social consequences, and eventually storylines, consumer behavior,
|
||
faction decisions, and technology/item manifests for Aetheria.
|
||
near_term: >
|
||
Use Delvehold as the first whole-world proving consumer of Ghostlight's
|
||
generic simulation API. Admit a consumer-authored world seed through the
|
||
same WorldKernel publication contract used by compiled seeds; simulate
|
||
realm, institution, population, and person-scale politics under a cell
|
||
budget in the hundreds; and let named figures emerge durably from causally
|
||
relevant offscreen pressure. Consumer-supplied boundary subjects remain
|
||
externally owned through generic authority descriptors and typed proposal
|
||
and receipt exchange. Delvehold supplies the authored setting and retains
|
||
players, civic state, dungeons, and quantitative economy; no Delvehold ID,
|
||
schema, or policy becomes privileged Ghostlight core authority. Preserve
|
||
atomicity, scoped knowledge, identity, topology, no-puppeting, and
|
||
model-no-commit invariants. Kalsa remains regression evidence.
|
||
voidbot_goal: >
|
||
Keep the appraiser, relationship/perception updater, and memory machinery
|
||
useful for VoidBot's core companion mission: reading specific humans over
|
||
time, forming grounded opinions about them, noticing misreads, and updating
|
||
trust, concern, irritation, respect, boundaries, and expectations from
|
||
evidence rather than generic friendliness.
|
||
active_fixture: >
|
||
Pallas Species Strikes is reference-only story quality material.
|
||
`pallas-training-loop-v0` is the first small receipt-chain pilot.
|
||
`lucent-hostage-feed-v0` is the current open-ended training-loop draft:
|
||
fifteen post-restart turns through safe-line resolution, with responder
|
||
receipts but coordinator turns still Codex-authored rather than sandboxed.
|
||
Call of the Void and Elysium-era gameplay remain procedural consumer
|
||
targets.
|
||
|
||
hard_boundaries:
|
||
- Prompt text is projection, not truth storage.
|
||
- A consumer-supplied ontology or fixed seed may bypass Session Zero world generation; it may never bypass WorldKernel validation, closed mutation authority, or atomic CultCache commit.
|
||
- Delvehold retains quantitative economy authority. Ghostlight string resource handles and strategic resource effects must not impersonate quantities, prices, recipes, production capacity, inventories, orders, contracts, or conservation semantics.
|
||
- Newspaper layout may reserve typed advertisement slots, but only the economic layer may supply advertiser identity, goods, price, claims, campaign continuity, or payment. Unfilled slots collapse unless the edition explicitly records unsold space; the compositor cannot invent an ad campaign to fill a page.
|
||
- Canonical agent state and per-agent perceived state must remain distinct.
|
||
- Characters act from local knowledge, local perception, local pressure, and bounded affordances.
|
||
- Aetheria prose must support tonal range and ordinary life, not only crisis pressure. Wit, warmth, domesticity, ritual, boredom, wonder, and quiet dread are valid state-grounded modes when they fit the scene.
|
||
- Character intelligence is modeled state, not a default model capability. Make the Ghostlight machinery as smart as possible, but project each character's cognition, metacognition, manipulation skill, inference speed, education, and blind spots only to the level supported by their stat sheet, culture, experience, stress, and current state.
|
||
- Listener misread is first-class; intent and interpretation are not the same object.
|
||
- A causal-horizon classifier is a future simulation-budget router, not a content classifier or state authority. From current player intent and canonical pressure it may propose the smallest causally relevant subject horizon and effective cell budget; the deterministic runtime validates that proposal and alone derives the connected cover, without rewriting the campaign's configured entitlement. Locally self-contained play may collapse to one cell, including an isolated erotic encounter, but world-facing aims such as political seduction retain the subjects needed for their consequences. Urgent clocks, due obligations, and already committed consequences remain canonical inputs and cannot be erased, deferred, or rewritten by horizon classification; the runtime must retain or restore the cells needed to advance them.
|
||
- Human-facing appraisal is a first-class target; VoidBot must be able to read people, form grounded opinions, and revise those opinions over repeated contact.
|
||
- Generated action is an event proposal; deterministic gates and reviewed mutation decide what becomes state.
|
||
- Initiative controls action opportunity, not perception. Every affected participant appraises and mutates from an event before the next actor is projected; the scheduler selects eligible actors from readiness, recovery, load, status, and reaction windows rather than handing everyone a round-robin turn.
|
||
- Fuzzy judgments become reviewed training artifacts before they become trained models.
|
||
- Aetheria generation is source-first; check lore for factions, bodies, locations, institutions, and constraints before projection.
|
||
- Do not import species-comfort assumptions across institutions. AU dry-operation cephalopod labor is bare-minimum productivity support, not Navigator-style or cephalopod-native comfort habitat, unless source lore says otherwise.
|
||
- Elysium futures are branch-local canon indexed by lineage, not single-history Sol facts.
|
||
- Technology exploration must emit game-usable item, component, assembly, supply-chain, compatibility, and provenance data mapped toward Aetheria-Economy.
|
||
- Interactive-fiction fixtures should branch and fold: normalize most consequences into compact state variables and shared-scene conditionals, reserving isolated route splits for major world-changing divergence.
|
||
- Interactive-fiction fixtures require independent artifact review before acceptance; tracked variables must materially affect later affordances, risk, appraisal, callbacks, visual state, or outcomes, unless explicitly marked telemetry-only.
|
||
- Ghostlight scenes should feel like puppets on elastic strings, not puppets on rails. The coordinator supplies playable affordances, gates, resources, clocks, posture constraints, route options, evidence objects, and risk pressure; actors choose locally within those constraints; state folds from observed action rather than from the coordinator forcing a plot outcome.
|
||
- Complete illustrated interactive-fiction fixtures should emit visual art direction for website imagery and replay value, with click-through visual scene segmentation, stable visual character refs for recurring named characters, a global style cue when the visual language matters, one durable base image prompt per distinct section, character visibility and stance controls, and additive modification prompts for branch-visible consequences and scene-state changes; assembled prompts include only actually visible character refs, while continuity notes stay in tooling unless rewritten as concrete visible description.
|
||
- Image prompts must be affirmative target descriptions. Describe visible geometry, materials, composition, lighting, bodies, tools, and state deltas; keep forbidden assumptions in reviewer findings or validation errors instead of feeding negative constructions to imagegen.
|
||
- Generated environment images are concept and material reference, not geometry authority. Multi-angle or branch-consistent illustrated IF needs a durable scene-set source such as a hand-built 3D blockout, procedural scene file, layout asset, or camera map with staging slots and occluders; imagegen paints over camera-specific visual input instead of preserving topology from memory.
|
||
- Visual artifacts are auxiliary illustrated replay and website collateral for the corpus, not core training targets for responder, appraiser, mutator, or relationship models. Visual review judges the playable IF experience and visual plan, not clean-run prose receipts.
|
||
|
||
live_architecture:
|
||
ghostlight_dungeon:
|
||
- The authoritative ownership and build map is `docs/architecture/ghostlight-dungeon-mvp.md`.
|
||
- One per-campaign WorldKernel mailbox owns canonical state and revision numbers.
|
||
- Every player, NPC, institution, scheduler, import, and reload transition uses the same typed WorldCommand validation and atomic CultCache commit path.
|
||
- Foreground attempts, NPC reactions, strategic cell outcomes, waits, travel, and approval-gated population fission lower into one closed semantic WorldMutationBatch vocabulary. Means and intended effects remain proposals; only the WorldKernel reducer can change canonical components.
|
||
- The mutation reducer validates a complete batch against an exact authority envelope on an isolated component overlay, advances each touched subject version once, and persists component state, authority, batch, mutation receipt, causal receipt, events, and aggregate compatibility projection atomically. Aggregate campaign rows are rejected by component-only mutation ingress.
|
||
- WorldEffectDelta, ActorStateDelta, and StrategicOutcomeEffect are model-boundary migration inputs, not independent writers. Destination identity resolution routes a genuinely new place to bounded region expansion and an exact reachable canonical place to in-place locality elaboration. Both lower places, propositions, populations, institutions, political relations, topology, and the civic manifest through the same typed mutation reducer. Compiler-validated agency profiles remain a companion projection outside the reducer and are an explicit component-migration frontier. Inhabited destination proposals require a civic manifest whose public authority, selection or succession, resources, and redress facts are structurally cross-bound and independently checked for semantic legibility before approval. Initial publication is a fresh-store creation transaction; named-person materialisation/folding is a resolution transaction that advances revision and resolution epoch, clears the cover, preserves the individual delta, and cannot rewrite Gestalt-wide knowledge, custody, pressure, or fictional time.
|
||
- Full-world acceptance keeps the root compiler bounded-local. The strategic driver may sequentially ask the existing destination compiler agent for at most eight ordered new-region proposals, but only WorldKernel ExpandRegion admission can commit them. An immutable run plan freezes the complete ordered request set; proposal checkpoints close the kernel-commit/checkpoint crash interval; per-region commit checkpoints bind the exact request, origin, committed jurisdiction, kernel receipt, and model-receipt hashes. Resume rejects request drift and trusts only canonical campaign state plus exact receipts. Operator authorization of the autonomous run admits valid branch-local previews without replaying Dungeon's per-preview UI approval, while unresolved canon gaps still stop. The driver, checkpoints, and compiler agents are forbidden world writers.
|
||
- Ghostlight owns generalized Projector to Persona to Interpreter machinery; consuming Personas retain their own canonical minds and commit authority.
|
||
- Player speech address is a bounded proposal over exact co-present simulation-eligible actor IDs. WorldKernel commits the selected Persona response set with the speech turn; every present actor still appraises, while direct addressees receive explicit response duty and observers retain optional agency. A direct addressee must speak or select typed deliberate silence, which lowers deterministically rather than opening a free-text reaction-effect lane.
|
||
- Foreground action assessment derives a closed structural schema from exact current authority. A compact private scope projection receives only the exact attempt and the structurally available lane names; local validation permits it only to subtract. Causally unselected lanes disappear from the assessor schema and information facts stay out of the prompt when knowledge mutation is unselected. Canonical dynamic effect maps cross the strict model boundary as bounded authority-enumerated entry arrays and lower once into WorldEffectDelta after validation. The admission-bound schema gives required strong/ordinary-success lanes minItems 1 only on the admissible branch and forces every inadmissible effect array empty; local validation repeats both rules after lowering. A separate compact semantic verifier then compares the complete four-band effect bundle with the player's exact means and intended effect. Neither stage can reassess difficulty, choose committed effects, expand authority, or commit. One mismatch produces a private semantic-invalid receipt and bounded same-snapshot assessor correction; a second mismatch aborts. Only structurally and semantically verified proposals enter the cache.
|
||
- Mutation-scope and action-assessment proposals are content-addressed by the exact scope, assessor, and verifier models, stable instructions, scoped action-specific schema, and permitted typed packet. Private CultCache cache rows are derived inference evidence only. Revision and expiry bind the consumable assessment and roll but do not invalidate an otherwise identical semantic proposal; cache hits revalidate it, emit an explicit zero-token receipt linked to the source scope, assessment, and verifier receipts, and issue a fresh revision-bound digest. Changed actor state, occupancy, facts, institutions, permissions, contract, boundaries, schema, or model contract changes the key. Eve projections itemize every signed modifier and exact reference.
|
||
- The hosted player story is the chronological lowering of exact committed NarrativeTurn rows. No narrator or verifier model rewrites those turns; historical narration projections are inert and never enter Eve or CultMesh player surfaces.
|
||
- Epiphany consumes the extracted Ghostlight projection crate at an exact Git revision while retaining her canonical Mind, effect admission, and consequence authority.
|
||
- Gestalt Personas own shared population state; durable member deltas preserve specific people between appearances. WorldKernel owns one revision-bound individuation primitive that validates exact Gestalt lineage, location, version, and canonical identifier uniqueness before atomically materializing the member. Public display names are not identity keys and may be ambiguous. The model-facing complexity lane contains only the compact member draft: local ID, name, traits, relationships, goals, and memories. The deterministic tool alone supplies the canonical schema, parent ID and version, location, materialization state, and relevance revisions before shared validation and WorldKernel admission. Foreground presence may call the primitive after exact player speech; strategic waves may call it for at most one selected Gestalt action through an action-bound selector receipt. Resolution owns the exact strategic-individuation validator. The scheduler calls that shared validator at proposal production, records semantic_invalid, and drops an invalid optional proposal before wave assembly; WorldKernel revalidates with the same owner at admission.
|
||
- The multiresolution agency graph derives a connected cohesive/arena attention cover from canonical actors, institutions, and Gestalt-compressed latent subjects under a campaign-selected 1–240 active-cell entitlement; provider concurrency is independently capped at 32. Active cells do not state total world population or complexity. The current full-world target is approximately 2,400 potentially acting entities under a 240-cell cover, about ten percent simultaneous attention. A 1,000-subject, 200-cell fixture remains machinery proof of complete unique coverage and parallel membrane dispatch under a seven-call provider gate, not the product-scale target. Resolution owns cover derivation, Nemesis allocates causal decision windows inside that cover, and WorldKernel retains commit authority.
|
||
- Model-driven strategic cell waves can change remote actors, institutions, gestalts, clocks, and exact-channel news while the absent player remains outside their write authority; the entire wave validates and commits atomically.
|
||
- Population activity effects represent exact attributed attempts to prepare, coordinate, investigate, recruit, obstruct, trade, or communicate; graph scope, locations, channels, and semantics validate before the kernel derives an event, and the effect never claims its own success.
|
||
- Population migration is a separate exact-leaf effect. WorldKernel atomically moves the Gestalt and its agency-profile location along an explicit reachable migration relation; destination populations remain distinct and named members never move by implication.
|
||
- Targetless investigation may inspect an exact current location or unnamed ordinary role, but it cannot invent an actor, response, discovery, or private knowledge.
|
||
- Salient dormant members may emit the same bounded activity vocabulary from their exact location toward their current leaf or adjacent subjects; member activity and migration share one action key, so arena aggregation cannot duplicate or transfer personal agency.
|
||
- Resolution-demand focal IDs are salience hints only; model output cannot force singleton cells or override the player-selected Persona-cell budget.
|
||
- Projectors receive decision-relevant situation state, Personas receive only lived narrative, and Interpreters receive exact action permissions; runtime-owned cell membership and revisions are bound locally rather than copied by a model.
|
||
- Canonical actor cell slices include exact goals, obligations, relationships, and bounded memories. Actor knowledge and Gestalt shared knowledge never become public information channels; channels are concrete report, courier, broadcast, or social routes, and profile maintenance removes legacy overlap and `unknown` placeholders.
|
||
- Each active strategic subject receives a subject-conditional Interpreter schema. Institution, actor, Gestalt, and named-member effect lanes are structurally distinct; movement and population-migration variants are absent when the exact subject has no reachable destination. Semantic retry owns meaning, not type combinations the runtime already knows are impossible.
|
||
- Targetless local preparation, investigation, communication, and obstruction stay bound to the exact supplied location and record only the source's attempt against an unnamed role or local feature. They cannot substitute a convenient canonical target or claim a listener, discovery, damage, disruption, or response.
|
||
- The independent effect verifier receives the same exact typed permissions as the Interpreter. Only supplied canonical destinations can create a travel obligation; places mentioned solely in lived prose remain local texture inside the supplied activity location.
|
||
- An exact subject/effect pair rejected by per-action local validation or the independent effect verifier is excluded from the one same-snapshot Interpreter correction schema. Neither validator can choose a replacement or commit; the Interpreter must select another permitted lane, omit the action, or abort the whole wave without mutation. Cross-action failures do not guess at an offender.
|
||
- Strategic outcome references use one `resource:*` ontology for actor possessions, institution resources, Gestalt resources, and member equipment. The local validator reports the exact action, offending handle, and allowed handle set to the private same-snapshot correction loop while the player receives only a spoiler-free refusal.
|
||
- Each strategic outcome digest receives an action-scoped schema. Only admissible effect kinds exist; the selected kind structurally requires its exact owner and fields, forbids fields owned by other kinds, and binds recipients, existing resources, relations, facts, pressure owners, and references to the exact action slice. Narrative causality remains a resolver/verifier judgment and WorldKernel remains the only writer.
|
||
- Every activity target is one runtime-derived descriptor keyed by authoritative ID, containing the canonical name and current locations. Reachable actor destinations map IDs to names; migration destinations name both population and location. Projectors, Interpreters, and effect verifiers can distinguish an actual target from an unnamed role and cannot turn “go to Reed” into travel to an unrelated permitted place.
|
||
- Strategic pressure transitions receive exact owner IDs and current unresolved strings. Resolutions copy current state; additions must be new. No-op pressure proposals are state-semantic failures, not JSON-shape failures, so the outcome-specific correction receives the rejected bundle while the kernel guard remains absolute. Named-member obligations exist only for social activities that can actually create a promise or debt, never physical obstruction, preparation, or investigation.
|
||
- Structured validation failures retain stage name plus exact instance and schema JSON pointers in private diagnostics. Public strategic refusals remain spoiler-free; model output and chain-of-thought do not become logs or state authority.
|
||
- A structured same-snapshot retry receives only the nearest rejected containing object beside the exact schema pointer, not the full rejected response. Parallel strategic failures retain the exact simulation cell, constituent IDs, and bounded causal chain in operator-only diagnostics while public receipts remain spoiler-free.
|
||
- Cell Projector perspective ownership is schema-bound to exact constituents and selected member exceptions. Ghostlight lowers unique subject-keyed segments into name/location prose and requires the debt-selected focus before the Persona sees the stream.
|
||
- Local world compilation treats direct-seed evidence as canon constraints rather than an exhaustive game map. Missing room-scale geometry, routes, people, procedures, and operational doctrine become explicit branch-local elaboration; only contradiction, an unanchored requested baseline, or a premise-changing ambiguity becomes a material gap.
|
||
- A separate Flash lane extracts exact institution anchors for coarse remote powers. Pro synthesizes playable branch-local strategic doctrine; an independent verifier accepts compatible elaboration, rejects actual canon contradiction, and can never delete an anchored institution into a gap. Every admitted remote doctrine is disclosed in the approval preview as a branch assumption.
|
||
- Strict provider schemas never receive canonical dynamic route, relationship, facet, assignment, or demand-weight maps. Model-facing records carry explicit semantic IDs or fixed axis fields; local validation rejects duplicates and lowers once into the canonical maps. This prevents strict-schema projection from silently turning open maps into empty closed objects.
|
||
- Remote institutions receive deterministic six-axis coarse profiles with distinct self-authority and explicit unknown facets. The Pro agency compiler profiles only locally materialized subjects; finer remote state compiles on demand.
|
||
- Model-stage receipts expose per-attempt provider identity, latency, validation errors, and prompt/completion/cache token usage without storing reasoning content.
|
||
- Budget and pins own `resolution_epoch`; provider concurrency owns a separate configuration epoch and cannot repartition or advance fiction.
|
||
- Approval-gated gestalt fission creates explicit child leaves plus `other/unknown`, preserves inactive parent lineage and member deltas, assigns every scarce parent resource to exactly one child, transfers every named member exactly once, and projects only derived agency profiles and cover state outside the mutation reducer.
|
||
- Existing v0 training fixtures are regression evidence and have no runtime write authority.
|
||
- SessionZeroKernel is the sole pre-world owner of persistent shared/private negotiation, typed contracts, character drafts, boundaries, decisions, invitations, and approvals. The WorldKernel receives only an unanimously approved brief at atomic publication.
|
||
- SessionZeroKernel keeps append-only model-invocation audit history separate from the active preview's exact compiler proof set. Repeated calls with one semantic receipt hash remain distinct audit entries; preview retirement clears only the proof set, and campaign publication receives only the receipts that produced the approved preview. Legacy conflated stores migrate atomically on registry load without changing revision, epochs, or fictional time.
|
||
- SessionZeroKernel remains the identity and state owner for every human-controlled actor during compilation. Public player names and premises may inform the shared world frame, but actor and Gestalt-member outputs may not materialize those reserved people. The model-generated player object is only a provisional starting-position marker; Ghostlight removes it and installs the approved typed characters locally. A collision receives one same-snapshot correction and then rejects atomically.
|
||
- Approved private relationships cross compilation through exact canonical subject IDs. Player references bind to approved actors; otherwise unresolved named people become stable server-generated relationship anchors. The shared world compiler receives no private subject name, identity handle, or relationship. After public topology validation, a separate private stage owns characterization and placement but cannot emit IDs, relationships, narration, facts, gaps, assumptions, or public changes; Ghostlight attaches the opaque ID and owner-only relationship locally. Omission, ambiguity, unknown placement, or collision rejects the candidate atomically, and links to actors, institutions, Gestalts, or named Gestalt members grant no knowledge or authority.
|
||
- Gap-bearing compiler results remain non-canonical exact previews. Host review selection cannot approve them; every active member approval binds shared contract, private character, and the exact world-preview digest. Publication preserves that digest and the accepted evidence gaps and branch assumptions, while the Eve tree visibly renders the player-reviewable world shape without institution-private resources/goals or another player's relationship anchors.
|
||
- The host may discard a retained non-canonical preview through the SessionZeroKernel. This clears preview-bound approvals and preview state, then returns the locked roster to drafting without changing the contract, characters, or fictional time.
|
||
- A material counter clears its prior typed payload, enters the permitted durable channel, removes acceptance authority, and remains unresolved until a same-epoch DM turn atomically installs a fresh decision. Generated opening and role suggestions are non-material; ignoring them cannot block custom compilation. Transcript-only blank contracts and characters fail locally before world compilation.
|
||
- Bounded co-op uses campaign_membership.v1 to bind one to eight authenticated members to exact actors in the existing campaign mailbox. Sequential public actions, actor-filtered surfaces, unanimous time/travel/cell-budget changes, and non-simulatable human actors are implemented; split parties, PvP, private play actions, delegation, late joining, and group lifecycle commands remain unsupported.
|
||
- Contract Review reuses Session Zero against an exact world revision. Unanimous publication may amend forward-looking contract and approved actor ledger fields but cannot rewrite custody, location, topology, knowledge, memory, canon, or history. Boundary tightening becomes immediate anonymous aggregate policy; relaxation waits for publication.
|
||
- `ghostlight.play` is the one stable Eve provider surface across anonymous entry, Session Zero, Contract Review, and campaign play. The browser embeds Eve's canonical provider host and lowering package; it owns only ephemeral drafts, tabs, focus, and rendering.
|
||
- Eve editable bindings are the input model. Operations capture named bindings into `gamecult.eve.command_invocation.v1`; rejected or stale receipts preserve drafts, and accepted receipts may clear exact binding names. HTML forms are lowering detail, not Eve state or payload semantics.
|
||
- Heimdall owns OAuth attempts, Discord callbacks, entitlement evaluation, claims, single-use completion, refresh, and logout. Its required Eve access plugin crosses a private loopback CultNet operation boundary; Ghostlight validates the exact claim and owns only its hashed app session before deriving actor authority from campaign membership.
|
||
- Heimdall access grants and Ghostlight app sessions survive daemon replacement. Each scheduled refresh uses a fresh private-command identity, verifies the signed access claim against the exact returned session without requiring an initial-login account summary, rotates the locally wrapped refresh claim by CAS, and issues a persistent HttpOnly cookie bounded by refresh expiry.
|
||
- Native players use `ghostlight.native.player` on loopback RUDP `127.0.0.1:4102`. Heimdall owns the one-time OAuth attempt and completion; Ghostlight redeems it into the same app-session authority used by the browser. The native client persists only its opaque Ghostlight bearer in a mode-0600 CultCache store, submits the same canonical Eve invocations to the same kernel mailboxes, and sends bounded five-second RUDP keepalives while a long model-backed command remains pending.
|
||
- Odin advertises the redacted native boundary and its four operations but receives no bearer, attempt handle, claim, account, member, actor, or campaign state. A forged native session is denied before surface projection or command admission.
|
||
- Public Ghostlight HTTP exposes only the Eve provider, logical surface, command, and invalidation endpoints plus the typed health probe and static assets. Exact private per-member and operator surfaces remain CultMesh documents; Hermodr is an optional generic materializer, not a runtime dependency.
|
||
- Yggdrasil release admission resolves the newest executable- or build-affecting commit from the admitted ref. Later documentation, notes, state receipts, and root Markdown do not become runtime authority or cause a redeploy; Idunn proves the selected commit is an ancestor of the admitted ref and verifies the exact witness after activation.
|
||
- Idunn owns Ghostlight deployment and same-release continuity, Odin owns discovery, Heimdall owns account identity, and VoidBot owns Vault retrieval. None can write campaign state. Epiphany is an adjacent consumer and future swarm-capacity provider, not a Ghostlight runtime dependency or authority.
|
||
persistence_spine:
|
||
- The hosted runtime uses Rust CultCache/redb `.cc` stores: one store per campaign plus service auth and CultMesh stores.
|
||
- `state/ghostlight-state.cultcache.jsonl`, `state/branches.json`, and `state/evidence.jsonl` belong to the older research pipeline and have no hosted runtime authority.
|
||
- `schemas/agent-state.schema.json` is also the first shared cross-runtime payload contract. CultNet clients should move `ghostlight.agent_state.v0` documents unchanged inside typed document envelopes instead of inventing forked state ontologies per repo.
|
||
state_model:
|
||
- Layer personality through organization, disposition, behavior, presentation, situational activation, relationships, goals, and values.
|
||
- Canonical authored state has no certainty; perceived overlays carry observed activation, attributed disposition, and confidence.
|
||
- Voice style is a broad communication vector; defensive, comic, tender, ritual, poetic, dry, or evasive verbal behavior should emerge from state, circumstance, relationship, tonal mode, and presentation.
|
||
projection:
|
||
- Project canonical state into character-local operating context before any responder sees it.
|
||
- Include scene facts, relevant memory, relationship read, stakes, embodiment/interface affordances, action affordances, projection controls, retrieved lore, tonal intent, ordinary-life texture, and latent pressure handling.
|
||
- Hide raw state internals such as means, plasticity, current_activation, and numeric dimensions from prompt text.
|
||
responder_packets:
|
||
- `packet_only` tests runtime parity from curated source excerpts.
|
||
- `retrieval_augmented` bakes setting texture into reviewed outputs through scoped retrieval.
|
||
- `responder_scoped_repository_search` allows the responder to inspect declared seed scope, follow bounded relevant AetheriaLore links, and requires consulted refs, followed refs, research trace, plus research summary.
|
||
- Gold responder data must preserve exact visible input, raw output, parsed/reviewed output, hidden-context refs, leakage audit, isolation method, and coordinator interventions.
|
||
training_loop_bundles:
|
||
- Scene-loop bundles are the receipt-chain unit for training-shaped sequential character scenes before branch compilation.
|
||
- A bundle must tie scene-local digest, initial state, coordinator turn artifacts, projected contexts, responder packets, raw responder captures, event records, participant appraisals, reviewed mutations, review summary, and coverage status.
|
||
- Training readiness is per organ. A valid responder turn does not automatically make branch compiler, IF reviewer, visual artifact, or whole-fixture coverage training-ready.
|
||
initiative_scheduler:
|
||
- Initiative scheduling is a deterministic runtime seam between reviewed mutation and the next actor projection.
|
||
- Participants carry initiative speed, next-ready time, reaction bias, interrupt threshold, current load, status, and constraints.
|
||
- Actions carry scale, recovery, initiative cost, interruptibility, commitment, and local affordance basis.
|
||
- Reaction windows are event-triggered opportunities with eligible actors, urgency, expiry, and allowed action scales; they are not automatic responses or hidden-state access.
|
||
- Coordinator overrides must record a reason before the artifact can claim training value.
|
||
- VoidBot's newer heartbeat routine is the reference for turning this seam into the cast swarm's live timing law: characters take scene turns through heartbeat initiative, cooldown begins after turn completion, and offstage agents use slower rumination/sleep turns for memory consolidation, resonance, incubation, and dreams. See `docs/architecture/voidbot-routine-adoption-plan.md`.
|
||
coordinator:
|
||
- The coordinator is a trainable soft organ: it stages scenes, chooses next beats and acting agents, invokes specialist machinery, carries unresolved hooks, emits glue prose, and proposes game-engine-shaped state changes.
|
||
- Future coordinator turns should be sandboxed as their own promptable worker outputs, with exact visible input, raw output, parsed coordinator artifact, review labels, and interventions preserved. Codex acts as meta-coordinator: it scopes, launches, reviews, repairs, and wires Ghostlight organs, but should not silently collapse the trainable coordinator organ back into omniscient chat.
|
||
- Glue prose is training signal, not canonical truth.
|
||
- Coordinator prose should choose an intentional tonal mode for the scene and protect breathing room when the story needs routine, levity, domestic texture, wonder, or slow dread before consequence.
|
||
- The coordinator/narrator may be smarter than the characters for reader service: explain opaque maneuvers, stakes, institutional games, and social tactics in accessible prose without retroactively making the acting characters more self-aware than their state allows.
|
||
- The coordinator nudges by affordance, not decree. Prefer concrete game-ergonomic levers such as safe lines, export locks, security holds, handling categories, visible posture scripts, route access, resource scarcity, clocks, and public proof objects over authorial pressure toward a desired ending.
|
||
branch_compiler:
|
||
- The branch compiler turns fixture briefs, lore digests, scene/world state, actor-local branch candidates, reviewed consequence packets, fold plans, and optional visual replay requirements into playable Ink plus training sidecars, separate visual plan artifacts when illustrated replay is in scope, and compiler notes.
|
||
- The branch compiler owns playable structure, click-through segmentation, conditionals, variables, callbacks, fold materialization, visual scene ids, and image prompt handles; it stores visual prompt data in `.visual.json` artifacts rather than bloating training annotations; it does not own hidden character truth, participant appraisal, or durable social mutation.
|
||
coverage_ledger:
|
||
- `state/corpus-coverage.json` tracks accepted, draft, planned, rejected, and superseded fixtures by faction, movement, flashpoint, timeline lane, tonal mode, collision axis, training target, artifact refs, review status, and economy hooks.
|
||
- `npm run coverage:status` validates the ledger and reports coarse corpus gaps before choosing the next fixture.
|
||
training_targets:
|
||
- Coordinator/story runtime
|
||
- Memory and lore retrieval
|
||
- Projector/state interpreter
|
||
- Character agent/responder
|
||
- Participant appraiser
|
||
- State mutator
|
||
- Relationship/perception updater
|
||
- Branch compiler for Ink materialization, fold/callback structure, and sidecar generation; visual plan generation is auxiliary illustrated replay support when a fixture is meant for website or art presentation
|
||
- Interactive-fiction artifact reviewer for fake variables, cosmetic choices, missing state reads, fake folds, and visual callback gaps
|
||
- Visual scene continuity reviewer for illustrated IF replay, click-through segmentation, imagegen-ready prompts, character visibility, stance control, and branch/state visual modifiers; this reviewer protects entertainment and presentation value, not core social-model training signal
|
||
- Human-facing appraisal and opinion model for VoidBot
|
||
- Evaluator/review classifiers
|
||
- Aetheria-tuned responder
|
||
- Institution, faction, and consumer decision models
|
||
|
||
active_subgoals:
|
||
- Rebuild the latent-world complexity acceptance criterion after Run 108's read-only semantic audit. Run 108 mechanically reaches exactly 2,400 simulation-eligible active leaves under a 240-cell attention cover, but that count does not prove 2,400 causally meaningful subjects: repeated fission produced hundreds of residual and other/unknown taxonomic leaves with inherited duplicate goals, repeated public identities, and little new fact pressure. Preserve Runs 64 through 111 as exact evidence. Resolution still owns cover selection, Nemesis still assigns causal decision windows inside an existing cover without gaining cover or commit authority, and the Greathold remains an externally sovereign boundary observer. Before another scale build, require semantic-distinctness, identity-diversity, relation-or-pressure contribution, and horizontal geography/culture gates rather than active-leaf count alone.
|
||
- Connect a Delvehold-owned adapter to the admitted generic consumer contract: shared compiler/consumer WorldSeed admission, externally authoritative institution-or-Gestalt snapshots, attributed proposal acknowledgement, and committed-event newspaper composition over typed CultNet, without consumer-specific IDs or schemas in Ghostlight.
|
||
- Extend strategic/offscreen named-person individuation beyond the proven emerge-then-act path so people plot across sustained political waves, acquire relationships, fold, and return without granting a cell, arena, or model commit authority.
|
||
- Finish the semantic mutation migration: delete or demote remaining legacy model effect schemas and move aggregate campaign fields toward projection-only state. Seed publication and named-person presence now have explicit non-effect authority classifications.
|
||
- Keep the selectable Kalsa Vault's Public player-safe and Spoilers GM-only evidence lanes intact through Git/Obsidian sync, retrieval, exact receipts, and player projection. Do not import it into the read-only Aetheria recovery index or create a rival Ghostlight semantic index.
|
||
- Grow the 36-case candidate agency corpus toward 300 reviewed, behaviorally distinct attempts that either compose from existing primitives, produce an explicit bargain, or falsify the algebra.
|
||
- Pressure live campaign compilation and play from exact Vault evidence; reject honest gaps instead of borrowing a nearby fixture, cast, or geography.
|
||
- Let append-only agent contexts realize stable-prefix cache reuse naturally without removing context needed for goals, promises, relationships, knowledge, or exact permissions; do not grow sporadic independent prompts such as newspaper filings merely to chase provider cache hits.
|
||
- Keep every model stage proposal-only; malformed, stale, cross-slice, or semantically invalid waves must leave campaign state and fictional time unchanged.
|
||
- Complete separate-account co-op privacy, actor-binding, unanimity, and restart proof when suitable testers or controlled account fixtures are available.
|
||
|
||
coverage_targets:
|
||
current_lore_counts:
|
||
major_powers: 12
|
||
minor_powers: 21
|
||
movements: 23
|
||
pre_elysium_flashpoints: 24
|
||
defunct_absorbed_powers: 5
|
||
baseline_story_fixtures: 92
|
||
baseline_with_defunct: 97
|
||
practical_first_broad_target: 100-150 reviewed fixtures
|
||
major_power_requirement: founding-era story plus day-in-the-life story
|
||
collision_requirement: every coverage story should involve multiple cultures, factions, movements, institutions, or body/infrastructure assumptions colliding
|
||
|
||
current_artifacts:
|
||
canonical_docs:
|
||
- docs/architecture/delvehold-forced-ontology-integration.md
|
||
- notes/documentation-inventory.md
|
||
- docs/architecture/corpus-coverage-ledger.md
|
||
- docs/architecture/prompt-projection-contract.md
|
||
- docs/architecture/projected-local-context.md
|
||
- docs/architecture/sequential-agent-runtime.md
|
||
- docs/architecture/ink-branching-scenes.md
|
||
- docs/architecture/illustrated-if-visual-pipeline.md
|
||
- docs/architecture/aetheria-lore-grounding-architecture.md
|
||
- docs/architecture/sandboxed-responder-packets.md
|
||
- docs/architecture/soft-model-training-artifacts.md
|
||
- docs/architecture/training-plan.md
|
||
- docs/architecture/technology-item-manifest-plan.md
|
||
- docs/architecture/persistence-spine.md
|
||
schemas:
|
||
- schemas/agent-state.schema.json
|
||
- schemas/projection-example.schema.json
|
||
- schemas/lore-grounding-digest.schema.json
|
||
- schemas/corpus-coverage.schema.json
|
||
- schemas/projected-local-context.schema.json
|
||
- schemas/coordinator-artifact.schema.json
|
||
- schemas/responder-packet.schema.json
|
||
- schemas/responder-output.schema.json
|
||
- schemas/event-record.schema.json
|
||
- schemas/participant-appraisal.schema.json
|
||
- schemas/reviewed-mutation.schema.json
|
||
- schemas/scene-loop-bundle.schema.json
|
||
- schemas/initiative-schedule.schema.json
|
||
prompts:
|
||
- prompts/README.md
|
||
- prompts/sandboxed-responder-packet.md
|
||
- prompts/sandboxed-coordinator-turn.md
|
||
- prompts/interactive-fiction-weaver.md
|
||
- prompts/research-sanity-responder.md
|
||
- prompts/narrative-quality-reviewer.md
|
||
- prompts/lore-grounding-reviewer.md
|
||
- prompts/spatial-geometric-cohesion-reviewer.md
|
||
- prompts/visual-scene-continuity-reviewer.md
|
||
live_examples:
|
||
- state/ghostlight-state.cultcache.jsonl
|
||
- tools/ghostlight_state_store.py
|
||
- vendor/cultcache-py
|
||
- state/corpus-coverage.json
|
||
- examples/agent-state.call-of-the-void.json
|
||
- examples/projections/call-of-the-void.scene-broken-taxi-oz.jsonl
|
||
- examples/projections/call-of-the-void.scene-broken-taxi-oz.pretty.json
|
||
- examples/lore-grounding/historical-flashpoint.template.json
|
||
- examples/lore-grounding/pallas-species-strikes.awakened-labor.v0.json
|
||
- examples/agent-state.pallas-species-strikes.v0.json
|
||
- examples/coordinator/pallas-species-strikes.branch-and-fold.v0.json
|
||
- examples/ink/pallas-species-strikes.branch-and-fold.v0.ink
|
||
- examples/ink/pallas-species-strikes.branch-and-fold.v0.training.json
|
||
- examples/ink/lucent-hostage-feed.branch-and-fold.v0.ink
|
||
- examples/ink/lucent-hostage-feed.branch-and-fold.v0.training.json
|
||
- examples/ink/lucent-hostage-feed.negotiator-branch.v1.ink
|
||
- examples/ink/lucent-hostage-feed.negotiator-branch.v1.training.json
|
||
- examples/lore-grounding/corvid-collective-founding.v0.json
|
||
- examples/training-loops/corvid-collective-founding-v0/corvid-collective-founding-v0.initial-state.json
|
||
- examples/ink/corvid-collective-founding.branch-and-fold.v0.ink
|
||
- examples/ink/corvid-collective-founding.branch-and-fold.v0.training.json
|
||
- examples/visual/corvid-collective-founding.branch-and-fold.v0.visual.json
|
||
- experiments/corvid-collective-founding-v0/sandbox-packets/corvid-collective-founding-v0.coordinator-packet.md
|
||
- experiments/corvid-collective-founding-v0/sandbox-captures/corvid-collective-founding-v0.coordinator.capture.json
|
||
- experiments/corvid-collective-founding-v0/reviews/corvid-collective-founding-v0.narrative-review.final.json
|
||
- experiments/corvid-collective-founding-v0/reviews/corvid-collective-founding-v0.lore-review.final.json
|
||
- experiments/corvid-collective-founding-v0/reviews/corvid-collective-founding-v0.narrative-review.visual-enabled.json
|
||
- experiments/corvid-collective-founding-v0/reviews/corvid-collective-founding-v0.lore-review.visual-enabled.json
|
||
- experiments/corvid-collective-founding-v0/reviews/corvid-collective-founding-v0.spatial-review.final.json
|
||
- experiments/corvid-collective-founding-v0/reviews/corvid-collective-founding-v0.visual-review.final.json
|
||
- experiments/lucent-hostage-feed-v0/sandbox-packets/lucent-hostage-feed.negotiator-branch.v1.coordinator-packet.md
|
||
- experiments/lucent-hostage-feed-v0/sandbox-captures/lucent-hostage-feed.negotiator-branch.v1.coordinator.capture.json
|
||
- experiments/lucent-hostage-feed-v0/sandbox-packets/lucent-hostage-feed.negotiator-branch.v1.weaver-packet.md
|
||
- experiments/lucent-hostage-feed-v0/reviews/lucent-hostage-feed.negotiator-branch.v1.narrative-review.final.json
|
||
- experiments/lucent-hostage-feed-v0/reviews/lucent-hostage-feed.negotiator-branch.v1.lore-review.final.json
|
||
- experiments/lucent-hostage-feed-v0/reviews/lucent-hostage-feed.negotiator-branch.v1.spatial-review.final.json
|
||
- examples/visual/pallas-species-strikes.branch-and-fold.v0.visual.json
|
||
- experiments/pallas-species-strikes/pallas-species-strikes.branch-and-fold-clean-run.v0.md
|
||
- experiments/pallas-species-strikes/pallas-species-strikes.visual-scene-review.v1.json
|
||
- examples/training-loops/pallas-training-loop-v0/pallas-training-loop-v0.bundle.json
|
||
- examples/training-loops/pallas-training-loop-v0/pallas-training-loop-v0.scene-digest.json
|
||
- examples/training-loops/pallas-training-loop-v0/pallas-training-loop-v0.initial-state.json
|
||
- experiments/pallas-training-loop-v0/pallas-training-loop-v0.clean-run.md
|
||
- examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.bundle.json
|
||
- examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.scene-digest.json
|
||
- examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.initial-state.json
|
||
- examples/training-loops/lucent-hostage-feed-v0/lucent-hostage-feed-v0.review.json
|
||
- examples/initiative/lucent-hostage-feed-v0.turn-20.initiative.json
|
||
- experiments/lucent-hostage-feed-v0/lucent-hostage-feed-v0.clean-run.md
|
||
- scripts/materialize_lucent_loop.py
|
||
- scripts/materialize_lucent_loop_continuation.py
|
||
pruned_receipts:
|
||
- Old prototype fixture receipts and local runner files were removed from the live workspace after their lessons were distilled into docs, state, evidence, and git history.
|
||
|
||
data_flow:
|
||
- Rehydrate from map, handoff, system map, implementation plan, and `npm run state:status`.
|
||
- Work one bounded organ.
|
||
- Verify the seam that matters.
|
||
- Add distilled evidence only when future belief changes.
|
||
- Steward memory: keep the smallest correct persistent surface current and cut stale steering when it slows re-entry.
|
||
- Commit and push completed work.
|
||
- If state grows faster than understanding, cut it back.
|
||
|
||
current_status:
|
||
summary: Ghostlight's generic consumer boundary admits sparse WorldSeeds, runs the hundreds-class parallel cell machinery used by Dungeon, and projects grounded newspapers from committed public events. Local acceptance proves 1,000 subjects across 200 cells and two-wave durable named-person emergence. Exact-source provider run 38 at `596e50679244b5d42b4cfdf70d723f815751b8ff` resumed the preserved world at revision 8 without replaying compilation or four committed locality elaborations, recovered 51 of 52 strategic-wave cells on pulse three and the final cell on pulse four, then committed all six waves through revision 14. Pushed commit `3a69306f3004e4af2cd57bba612a6ad8d1b8132f` implements the mapped clock-consequence owner and is verified locally: world clocks own declared consequence text and exact observable scope; a bounded agent may propose legacy scope binding, while `WorldKernel` alone admits it and materializes stable threshold-crossing events and public news through the common mutation path. Binding, emitted-event ancestry, mutation receipts, and the next newspaper boundary persist atomically. Exact-source run 39 resumed run 38 without replaying its six committed waves, bound clock consequences, committed six new waves through revision 21, and emitted Issues 7 through 12 plus a final digest. This completes the mechanical provider acceptance path; all inherited wave 1-6 checkpoint hashes match run 38 exactly and live services were unchanged. Independent blind editorial review returns FAIL: only Issue 7 approaches spicy, while Issues 8-12 are dominated by plans, filings, inspections, warnings, and abstract relationship deltas without betrayal, scandal, public reaction, sustained reversal, or material lived cost. That run-39 diagnosis is superseded for the current phase: run 51 closes the world and reconciliation mechanics, and the active defect belongs to newsroom narrative selection and self-contained semantic provenance over immutable facts. Independent grounding review also returns FAIL: Issue 9 inflates a planned expedited agenda into completion, while Issue 8 assigns unsupported feminine pronouns to Sela Venn and Eryn Tal. Other grounding mechanics pass: 208/208 citations resolve, no future events appear, no replay occurred, the player remained unchanged, all 116/116 manifest entries verify, the archive is exact, and root independently confirmed the live service PIDs and invocation IDs remained unchanged. Editorial and grounding acceptance are terminally failed for run 39. Eight titled elaborators use the generic agent harness under deterministic weighted scheduling, bounded parallelism, and Luna/Terra/Sol routing. Workers remain proposal-only; deterministic admission binds exact frozen schedules, dispatch, receipts, conflicts, and semantic verification, and `WorldKernel` alone owns atomic CultCache persistence. Destination reconciliation is a private transactional workbench, provider schema compatibility is lowered once at the shared model-connector boundary, and durable elaboration and strategic-pulse checkpoints bind to their canonical mutation proofs. The generic ModelAgent harness remains consumer-neutral transport. Provider run 23 remains stopped; earlier failed runs and checkpoint archives remain immutable provenance. The live daemons remain outside the acceptance body. Dungeon play remains regression pressure, the Delvehold game-side adapter remains unimplemented, and unpublished Mars and Kalsa destination previews remain unapproved.
|
||
provider_acceptance_checkpoint: Exact pushed commit `139b8a6` completed Run 60 under `character-newsroom.v10` without world or per-wave replay. Its acceptance witness and terminal status bind the completed page and exact resume lineage. The independently dispatched blind reviewer, shown only the reader-facing fantasy newspaper, read it as a real left-populist civic broadsheet and did not immediately identify procedural generation, so the narrative reverse-Turing criterion passes. The review's substantive criticism is that the three stories feel like three rewrites of one briefing; accepted Run 60 remains immutable. The run used 96,902 prompt tokens and reported zero cache hits. Its delivered typeset artifact is `output/pdf/canopy-ledger-run-60-front-page.pdf`; frozen-source and visual verification remain accepted. Exact pushed `bc2ca39` then produced frozen-fact newsroom-only Run 61 Issues 13, 15, 16, 17, and 18 without world or wave model replay. Provider output proves `special_issue` convergence in Issues 13 and 15, independent `general_issue` beats in Issues 16 through 18, and assignment-selector cache hits. Blind review of Issues 13, 15, 16, and 17 passes both distinct recurring voices and issue-shape diversity, recognizing Ossan, Mera, Corin, and Lysa's biases plus modest cross-issue evolution. Run 62 exercised v12 without world or wave replay and failed only because two lead articles proposed invalid datelines; recurring reporter calls still recorded zero cache hits. Run 63 used exact pushed v13 `a52d57b`; Issues 17 and 18 completed before root stopped the final weekly recomposition, both repeated bylines again recorded zero cache hits, and live services remained unchanged. Preserve Runs 61 through 63 as stopped or completed immutable evidence. Copy defects remain later deadline-correction work rather than a reason to reopen accepted issue artifacts.
|
||
implementation_checkpoint: Exact pushed v13 `a52d57b` keeps one stable reporter action schema, places a common stable house charter before recurring identity and dynamic assignment, and projects deterministic `allowed_datelines` from cited records while retaining copy-desk factual authority and deterministic cited-place admission; 480 library tests and the all-target check pass. Run 63 falsifies reporter-cache pursuit as a useful acceptance target for sporadic independent filings. The proposed v14 cache-floor prompt growth was removed. Append-only agent contexts remain the natural cache beneficiary; accepted Run 60 remains immutable. The strategic cut extracts one shared `validate_strategic_individuation_proposals` owner used by resolution validation and by the scheduler before it returns an optional proposal. An invalid optional identity emits a semantic-invalid receipt and produces no individuation instead of aborting the recoverable wave. Focused valid and invalid regressions pass, and exact-source Run 68 exercises the corrected provider path through twelve committed waves; no further validator implementation is pending. The newsroom-only cut adds a navigation-only directory of completed public changes grouped by period and exact source timestamps to new v14 audit citations. The directory derives context from canonical records and gains no fact or world authority. Legacy empty source times are omitted from both rendering and serialization, preserving inherited v13 receipt bytes and digests; new v14 nonempty source times remain rendered and serialized. Exact-source Run 73 proves that compatibility path and final recomposition mechanically. Current source gives the assignment editor bounded full-ledger queries and explicitly asks it to search sideways for opposition and countermoves; Run 73 falsifies the stronger assumption that this access and instruction alone guarantee balanced selection. Exact pushed v15 source `b6787d909bd79b68ed3a4d143b7f6dd438e00fa2` binds accountability, opposition, and counter-narrative pitches to two distinct named parties and selected citations through a typed conflict axis, and preserves canonical ledger order. Run 74 falsifies the stronger v15 assumption: its lone accountability pitch used the same transfer citation for cultivators and a passive Tribunal, while four of five pitches avoided the adversarial axis through lead or consequence functions. Two cited names did not prove two moves. Exact pushed v16 `86fe6ed89d51da26b65ab6a031608075840b1527` binds each adversarial axis to two distinct cited public moves or positions and rejects one record presented as both sides; it adds no event writer, judge, process, dependency, or persistent authority. Formatting, 27 focused newspaper tests, 484 full library tests, and 16 strategic-smoke tests pass.
|
||
full_world_acceptance_checkpoint: Run 68 at exact source `69c811a2669fc38f19f9199bf57088dc250bfc3e` is mechanically complete at world revision 27 with 12/12 strategic waves, 240 events, 514 public news rows, and a final newspaper. Independent editorial and grounding reviews both fail. Earlier per-wave papers prove the immutable record already contains dramatic completed facts, including an organ breaching the rail capital, a dead pump, and families crossing borders; the final paper failed to make that committed change legible. Preserve Run 68 unchanged. Run 69 at source `84b31e57a462710eb939c4559e0437eb5d6a7a28` failed before any model call when immutable recomposition verification encountered an empty rendered `Source time:` line in inherited v13 per-wave issues. Run 70 at source `ec45952b843e102dc2ebddda3a3bbb4058687175` also failed before any model call because v14 serialization changed the legacy recomposition digest. Exact-source Run 73 `b827d897b9579c2091a67c363d35b8695288ba2f` is terminal complete at `/var/lib/gamecult/ghostlight-dungeon/acceptance/full-world-delvehold-b827d89-73`: world revision 27, 12/12 waves, 240 events, 514 news rows, inherited artifacts byte-identical to Run 68, manifest valid, and archive SHA-256 `090d05f304c8f3d33c9dccd728bffbf3e5dc2969a7aeeffc2f9d7bafe701ac8a`. Exact-source Run 74 `b6787d909bd79b68ed3a4d143b7f6dd438e00fa2` is mechanically complete at `/var/lib/gamecult/ghostlight-dungeon/acceptance/full-world-delvehold-b6787d9-74`: revision 27, 12/12 waves, 240 events, 514 news rows, Run 68 inherited artifacts byte-identical, manifest valid, unchanged live services, and archive SHA-256 `957b11a5d584d27d23bf4d50ed1fbc8d067faf67953b03f80705bfb9587c496d`. Independent editorial review fails: the page has a coherent throughline and sharp prose but no sustained adversarial narrative; opposing decision-makers, motives, responses, and countermoves are largely absent, scandal and public reaction are missing, lived costs remain abstract, and the result reads as polished minutes with conclusions. Its post-press correction notice has two items: `The corridor had begun closing hours earlier` overstates a source that says the prolonged oath-route closure was diverting arrivals six hours before the breach; `no relief or assignment of liability has followed` must narrow to `no tribunal remedy is recorded yet`. Run 75 launched at exact source `86fe6ed89d51da26b65ab6a031608075840b1527` under the superseded 240-cell-only acceptance shape and was stopped cleanly at the operator's scale correction. Preserve `/var/lib/gamecult/ghostlight-dungeon/acceptance/full-world-delvehold-86fe6ed-75` as stopped non-acceptance evidence: preflight, world-region and titled-elaboration checkpoints, a wave-one cell terminal checkpoint, partial pulses 01/02, and two rejected pulse receipts exist. `ghostlight-full-world-run75.service` invocation `86bfe6a3ef504a7d99f579b3d67710ab` is inactive/dead after explicit stop; live services remain unchanged. Do not claim terminal success or failure. Preserve Runs 64 through 75. Mechanical completion of the earlier world is proven, but final newspaper acceptance under the corrected scale target is not.
|
||
scale_checkpoint: The active 240-cell entitlement is an attention budget, not the world-size claim. `WorldElaborationDemand` mechanically derives a 2,400-active-leaf target from a ten-percent cover intent, and immutable Run 108 reached that count at complexity round 43 before clock binding advanced the campaign to revision 1551 and resolution epoch 1545. Read-only CampaignStore inspection now falsifies the stronger semantic claim: the world contains 3,141 Gestalts, 366 Actors, 371 member records, 68 institutions, 164 facts, 2,430 relations, and only 55 locations; 557 searchable records contain other-unknown, 780 contain residual, many active leaves inherit identical goals, and distinct people repeatedly share generated public names. This is a mechanically large agency graph, not accepted whole-world semantic complexity. Pushed source `b61e762` bounds Nemesis through anchor-summary and responder-dossier paging while retaining complete deterministic eligibility privately. Immutable Run 109 proved Nemesis and the 240-cell dispatch at that scale, ending with 226 completed and 14 frame-bound failures at SHA-256 `f502ad560e0f23db226c326072e5e8a6d0ed9975f0e63bc67606d7d7cb9b2c27`; no fictional wave committed and time did not advance. Pushed source `67421ad` bounded Projector and Interpreter frames. Immutable Run 110 cloned Run 109's exact checkpoint, retried only its 14 failures, eliminated every connector-frame failure, and banked one additional cell. Its pulse-two checkpoint contains 227 completed and 13 failed cells with SHA-256 `88a4f193e9f4d136841ede8d9c6b23e88788002a5f2e6b0c93bea9bb51b388de`. The 13 remaining Interpreters exhausted their agent steps by using target inspection as directory assistance for ordinary noun phrases, so root stopped the transient unit before more calls. The current correction deletes that misplaced query authority: Projector receives only decision-owner dossiers plus at most 24 relevant targets, and one deterministic pre-Interpreter projection adds bounded canonical targets whose exact supplied names occur in the lived stream or Persona turn. Full membership and permissions remain private; unmatched roles remain targetless local actions when supported; effect verification receives only candidate-cited targets; Resolution remains cover owner and WorldKernel remains commit owner. Exact resource/member assignment, compact individuation ownership, proposal supersession, civic fission rebinding, evolved-checkpoint proof, bounded lineage lookup, parallel session compaction, deterministic child-ID reconciliation, and materialized-member affiliation transfer remain preserved.
|
||
presentation_checkpoint: The historical press-layout and seed-ownership split are complete. `notes/historical-newspaper-layout-grammar.md` remains the durable grammar. Manifest v2 at `output/tex/canopy-ledger-run-61-style-1847-flow-723.manifest.toml` independently binds `style_seed=1847`, `flow_seed=723`, frozen source SHA-256 `8f195140f52a40ba705d6a66987146a1500ae89668e5d82b01d1792eb3afb882`, and the final artifact `output/pdf/canopy-ledger-run-61-style-1847-flow-723.pdf`, SHA-256 `a457f4b1702a7a52480e42fce0039f0dbe677ff32958e98f1c412b346237190c`. An identical seed pair produces byte-identical TeX and PDF; changing only flow preserves the exact style section while materially changing a plausible layout, and changing only style preserves flow topology. Cut-first and cut-midstory templates pass visual inspection; the failed split-card template is deleted. Frozen copy/assets, actual PDF `/BM /Multiply`, and economic-layer advertising authority remain invariant.
|
||
public_reference_checkpoint: Public architecture reference is complete. Canonical Ghostlight commit `15ea0f0` owns five pages under `docs/public-architecture` covering overview, authority, pipelines, 43 named production stages, and eight titled elaborators. Site commit `ea0b026` publishes exact projections under `F:\Projects\GhostlightDungeon-site\content\Documentation`, adds the sync/check script, explorer and table-of-contents navigation, scoped documentation layout, and homepage Architecture link. Local Quartz build and visual browser QA pass. GitHub Pages workflow `33408004480` succeeded. `https://ghostlight.gamecult.org/Documentation/` and the extensionless `Documentation/Agents-and-model-stages` route are live; the stage page exposes seven tables and 51 rows. Ghostlight remains technical authority; the site repository owns public composition and deployment.
|
||
next_action: Preserve Runs 75 through 111 and the exact 2,400-subject round-43 world. Immutable Run 111 already cloned Run 110's exact 227-completed/13-failed pulse-two checkpoint under pushed source `b81a977`; it is active and had committed two of ten strategic waves through revision 1553 at the latest durable status. Observe that unit without restarting or replaying complexity rounds, clock binding, Nemesis, or completed cell membranes. At terminal state, preserve the exact root and require ten committed strategic waves, per-wave publications and final digest, exact provenance and archive/hash checks, and unchanged live-service identities; if it fails, diagnose only the frozen failed boundary. Do not raise the connector bound, truncate canonical membership or permissions, restore Interpreter target lookup, or start another persistence optimization without measured evidence. Preserve compact elaborator continuity, canonical-ID identity ownership, deterministic proposal supersession, Resolution cover ownership, WorldKernel commit authority, the completed public reference, the two-seed press checkpoint, and the economic-layer advertising boundary.
|
||
gestalt_population: Gestalt Personas own shared population baselines; persistent member deltas own named individuality; WorldKernel materialization and approval-gated fission preserve lineage and identity. Materialisation/folding changes only representation and the exact member delta, advances resolution epoch, and retires the old cover; it has no Gestalt-wide effect authority. Selected actionable member exceptions are mandatory Projector perspective owners, so aggregation cannot silently erase their decision. Presence projection is limited to nearby active leaves and exact-location dormant members, includes reciprocal player relationship evidence, and may propose an earned cast without committing it. Simulation cells are derived covers only.
|