Ghostlight/docs/architecture
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Meta Vens f859d2c4e3 Give the world library a sealed public boundary
Completes the move begun in the previous commit, which does not build on its
own. `ghostlight` is now a library crate with an explicit public surface;
`ghostlight-dungeon` is a consumer that reaches the kernel through it and
cannot reach past it.

Deleted first: `mod world;`, the nine unused re-exports, the `#[cfg(test)]`
re-export block, `fixture_controller_opportunities`, the five inference
`fixture_*` items, Dungeon's own `VerifiedPrincipalEvidence`, and Dungeon's
direct `ghostlight-persona-projection` dependency.

The seal. `WorldKernel`, `WorldState`, `reduce`, `apply_effect`,
`CommandEnvelope`, `AuthenticatedCaller`, the journal writer, every ID
`issue()`, and `ScopeDigest::fixture` carry no `pub` of any kind and no
feature gate; the crate declares no `[features]`, so no build configuration
can lift them. Ten `compile_fail` doc-tests stand outside the crate and pin
each one to its error code.

The principal seam. The library owns `VerifiedPrincipalEvidence` with a public
`new`; `mailbox` still bounds it by `valid_until` at ingress. A Dungeon test
counts the minters in production source and fails at anything but one.

The port contract (Q1-7). `PreparedInference::prepare` (renamed from the free
`prepare_invocation`), `InferenceOutput::new`, and
`InferenceFault::{retryable, recovery_required, integrity_violation}` are now
the port's public constructors, so a consumer-implemented `InferencePort` can
answer without test-only wrappers. `TracingInferencePort` is an ungated
decorator.

The tick-ordering test (Q1-8) derives its cover from a real active world
through `derive_cover` and asserts two cells; its ordering and shared-tick
assertions are unchanged.

Behaviour is unchanged. The library's 420 unit tests are the base `world::`
set with the prefix stripped — the names diff empty. Dungeon keeps all 49 of
its names and gains two Soul tests the boundary requires. No schema string,
digest preimage, or store layout is touched.

Windows verification only; the Linux release is Idunn's build.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-16 02:06:07 +02:00
..
aetheria-agent-population-model.md Retarget Ghostlight toward Call of the Void authoring 2026-05-01 18:36:27 +01:00
aetheria-content-generation-targets.md Add Aetheria tonal range doctrine 2026-05-03 09:12:09 +01:00
aetheria-lore-grounding-architecture.md Clean documentation status drift 2026-05-02 23:51:58 +01:00
aetheria-persistent-agent-architecture.md Retarget Ghostlight toward Call of the Void authoring 2026-05-01 18:36:27 +01:00
agent-state-distributions-and-prompt-projection.md Tighten agent state schema from evaluation 2026-05-01 20:57:34 +01:00
agent-state-variable-glossary.md Tighten agent state schema from evaluation 2026-05-01 20:57:34 +01:00
canonical-agent-state-schema.md Tighten agent state schema from evaluation 2026-05-01 20:57:34 +01:00
corpus-coverage-ledger.md Mark Pallas fixture as reference only 2026-05-04 14:06:01 +01:00
cultnet-shared-agent-state-contract.md Name CultLib as the home of the TypeScript CultNet client 2026-09-13 16:47:39 +02:00
delvehold-forced-ontology-integration.md Njordr owns the economy whole, Delvehold interior included 2026-09-11 15:54:23 +02:00
gamecult-economy-daemon.md Point the economy spec at GameCult/Njordr 2026-09-11 18:29:10 +02:00
ghostlight-dungeon-multiplayer-intention.md Record the seed producer and close its Soul follow-ups 2026-09-05 18:32:20 +02:00
ghostlight-dungeon-mvp.md Record the Claude SDK inference port in the docs 2026-09-06 02:11:41 +02:00
ghostlight-dungeon-session-zero.md Open plan step 8, the seed producer 2026-09-05 16:29:04 +02:00
ghostlight-eve-native-interface.md Record the seed producer and close its Soul follow-ups 2026-09-05 18:32:20 +02:00
ghostlight-library-extraction-cut.md Record the L0 rulings; close the fixture question 2026-09-16 01:27:37 +02:00
ghostlight-library-extraction.md Write the library extraction target; merge conflicting boundary records 2026-09-15 22:57:01 +02:00
ghostlight-multiresolution-agency.md Restore the scale target as design, not load fixture 2026-09-04 16:14:44 +02:00
ghostlight-session-zero.md Give the world library a sealed public boundary 2026-09-16 02:06:07 +02:00
ghostlight-transition-algebra.md Design the elaboration ontology 2026-09-04 15:39:17 +02:00
ghostlight-world-consumer-api.md Let a person be seen: nonverbal display by quote 2026-09-11 13:21:53 +02:00
ghostlight-world-ontology.md Give the world library a sealed public boundary 2026-09-16 02:06:07 +02:00
illustrated-if-visual-pipeline.md Document illustrated IF scene-set pipeline 2026-05-04 12:23:41 +01:00
ink-branching-scenes.md Prune obsolete prototype fixtures 2026-05-04 13:33:18 +01:00
lore-grounding-digest-format.md Add lore grounding digest seam 2026-05-01 21:39:00 +01:00
persistence-spine.md Replace vendor/cultcache-py submodule with published PyPI dependency 2026-09-13 16:08:19 +02:00
projected-local-context.md Model character cognition separately from system intelligence 2026-05-04 19:45:00 +01:00
projection-distillation-plan.md Clean documentation status drift 2026-05-02 23:51:58 +01:00
prompt-projection-contract.md Prune obsolete prototype fixtures 2026-05-04 13:33:18 +01:00
sandboxed-responder-packets.md Prune obsolete prototype fixtures 2026-05-04 13:33:18 +01:00
schema-future-mechanisms.md Document source-first Aetheria generation doctrine 2026-05-02 04:30:17 +01:00
sequential-agent-runtime.md Add initiative scheduler artifact seam 2026-05-04 23:58:07 +01:00
soft-model-training-artifacts.md Model character cognition separately from system intelligence 2026-05-04 19:45:00 +01:00
technology-item-manifest-plan.md Document colony trade goods in item manifests 2026-05-02 11:51:10 +01:00
training-plan.md Prune obsolete prototype fixtures 2026-05-04 13:33:18 +01:00
voidbot-routine-adoption-plan.md Plan VoidBot routine for cast swarm 2026-05-06 03:31:46 +01:00