Ghostlight/docs/architecture
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Meta Vens 18b1098c3f Record the lens and its text on the session; adopt rows by answer (L1 Cut 3)
A new elaborator session draws its lens and authors its instruction text
once, and the checkpoint row carries both from then on. A resume reads the
row's session instead of demanding the fresh derivation equal it.

Session:
- `ElaboratorSession` gains `lens: Lens` and `instructions: String`
  (`deny_unknown_fields` kept).
- `select_answer` derives the command id from world, jurisdiction and
  answer digest, draws `lens::draw(snapshot.lens_weights, world, id)`, and
  authors `lens.instructions()`. It returns the id with the session, and
  `step` uses that id instead of deriving it a second time.
- `session_command_id` takes the three identity fields instead of a session,
  because the lens is drawn from the id and so the id exists before the
  session does. The derivation bytes are unchanged: the Cut 0 id
  `56dbcdb2-9337-ac07-f322-37376b58cbcb` is pinned in
  `a_session_identity_is_derived_from_its_answer`.
- `ELABORATION_INSTRUCTIONS` moves into `lens.rs` as a private constant.
  `elaboration_request` takes the text, and `step`, `persist_repair` and
  `integrity_is_valid` pass `session.instructions`. Integrity binds the
  stored invocation to the stored text, not to code (L1-Q7 (a)).

Adoption rule (L1-Q9, boundary half): the whole-session supersession
equality in `step` is deleted. A found row is this answer's row when world,
jurisdiction, answer and answer digest match (`same_answer`). Its session,
including ancestry, lens and text, replaces the fresh one. A boundary session
is no longer `Superseded` forever after an unrelated commit.
`valid_elaboration_progression` is unchanged and still compares whole
sessions row to row; the doc comments on both rules say why they differ.

Store: `controller_work.v15` -> `v16`; v15 rows are refused at open, not
migrated. The world ontology doc names v16.

Tests (controllers): `a_boundary_session_resumes_after_an_unrelated_commit`
(at 1a402e1 it reported Superseded),
`a_resumed_session_keeps_its_recorded_lens_when_the_weights_change`,
`a_checkpoint_that_changes_the_lens_or_its_text_is_an_illegal_transition`,
`a_row_whose_text_and_invocation_disagree_is_refused_at_open`,
`a_controller_work_row_from_v15_is_refused_at_open`,
`soul_the_same_patch_admits_the_same_under_every_lens` (pinned to the
Cut 0 mismatch JSON), and `the_catalog_takes_no_lens`. The single-dead-end
fixture now delegates to `dead_end_mailbox(weights, dead_ends)`, which builds
the first dead end with the same handles and labels as before.

Builds, but with two "this lint expectation is unfulfilled" warnings from
the `expect(dead_code)` markers on `Lens::instructions` and `lens::draw`. The
next commit removes those markers (c1.s1.f3).

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-16 16:07:25 +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 Close L0: postmortem, ledger, target and state reconciled 2026-09-16 12:24:49 +02:00
ghostlight-library-extraction-postmortem.md Close L0: postmortem, ledger, target and state reconciled 2026-09-16 12:24:49 +02:00
ghostlight-library-extraction.md Close L0: postmortem, ledger, target and state reconciled 2026-09-16 12:24:49 +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-stock-lenses-cut.md Record the Cut 2 fix batch, Soul pass 2 and two operator rulings 2026-09-16 15:45:58 +02:00
ghostlight-stock-lenses.md Write the stock lenses target (plan step 15, L1) 2026-09-16 12:45:03 +02:00
ghostlight-transition-algebra.md Design the elaboration ontology 2026-09-04 15:39:17 +02:00
ghostlight-world-consumer-api.md Name consumer.v5 and world_create.v4 in the world docs (L1 Cut 2) 2026-09-16 15:00:45 +02:00
ghostlight-world-ontology.md Record the lens and its text on the session; adopt rows by answer (L1 Cut 3) 2026-09-16 16:07:25 +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