Commit graph Ghostlight/state
Author SHA1 Message Date
Meta Vens
ef04aa5e03 Stop listing the stock lens set twice; name it plainly in the handoff
map.yaml's next action listed the stock lens set as L1 and again inside
"the remaining library capabilities". The handoff still said the titled
elaborators "return as weighted lenses", which predates the ruling that
they ship as the library's stock lens set.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-16 12:41:46 +02:00
Meta Vens
d89f2602c2 Sync the last surfaces that described the kernel before L0
The closing Mind pass found four places still describing the tree as it
was before the extraction:
- the handoff's controllers path;
- plan step 15's heading, which said not started;
- plan D1, which still said "detail profile";
- the system map's source owner and schema name, and its private
  world::WorldKernel.

Each now names the ghostlight crate and its sealed-by-admission boundary.
The boundary evidence record's first decision said the kernel's only
Dungeon import was a type that has since moved; it now points at the L0
record. The previous text is archived by compaction.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-16 12:26:38 +02:00
Meta Vens
d86ed9f4a2 Close L0: postmortem, ledger, target and state reconciled
The kernel extraction is finished. The world kernel is the ghostlight
library crate; Dungeon consumes it across a boundary sealed by admission,
proven from outside the crate.

The cut map records the last two fix batches and Q1-10, defaulted: the
minter scanner stays a tripwire, with Clippy recorded as the fix. The
subtraction ledger missed its estimate, +210 net source lines against about
+65. The reasons: the scanner grew chasing evasions, the boundary needed
about 90 more public items than planned, and the rejection tests buy a
ruling made after the estimate.

The postmortem lists what Soul caught, the operator corrections, the
incidents, and the open follow-ups. The target states which invariants
hold and how. The plan, map.yaml and the handoff point at L1. The L0
evidence record is rewritten as its distilled lessons; the previous text is
archived.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-16 12:24:49 +02:00
Meta Vens
880c9656ad Record Cut 1 and Soul's verdict; sync the stale surfaces
Cut 1 landed at 108b691..f859d2c. Soul reran the builds, tests, census and
mutations itself and confirmed the behavior-unchanged claim; it found six
defects.

F1 is the one that matters: the seal is name-based. Public ID types,
ScopeDigest and DecisionOpportunity all derive Deserialize, so an external
crate can mint them from JSON and rebuild the fixture path ruling Q1-4
said must be unreachable. The reducer still rejects forged opportunities,
so kernel integrity holds while the invariant's wording does not. Q1-9 asks
the operator whether sealing means unforgeable admission or unconstructible
types.

F2 (bypassable minter count) and F3 (71 unused public items) are queued for
the fix batch. F4 names Eve in library error strings. F5 and F6 are
recorded, not fixed.

The map, map.yaml and the handoff now say the kernel is the ghostlight
crate.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-16 02:27:09 +02:00
Meta Vens
d83534cf38 Write the library extraction target; merge conflicting boundary records
Plan step 15 pass L0 extracts the world kernel from crates/ghostlight-dungeon
into its own library crate. The new target document lists the invariants
that must survive:
- sealed kernel visibility at the crate boundary;
- no change in behavior, schemas, or stores;
- no Dungeon concepts or dependencies in the library;
- a working release path;
- unaffected pins;
- bounded build fan-out.

It also lists the questions Imagination must bring back.

Two evidence records from 2026-09-15 disagreed about focus and whether the
extraction and title decisions were settled. They are now one boundary
record. The title correction now points at the ontology doc's lens section.
The compaction archived the previous records verbatim.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-15 22:57:01 +02:00
Meta Vens
e19c9d9bda Replace focus with typed detail rules; ship titles as stock lenses
A detail rule is a function from place to detail level. Each consumer
chooses its own level-of-detail rule. Dungeon uses ByDistance anchored on
important subjects, the player first. Delvehold starts from Uniform.

Rules are typed world data that the library evaluates, not consumer code.
The deficit a rule produces is an admission input, and journal replay
re-runs reduce, so a changed consumer function would break committed
history. WorldScaleIntent per-kind targets remain the ceiling a rule
distributes.

The eight titles move into the library doc as the stock lens set. The
kernel extraction is ordered as plan step 15 pass L0, ahead of every
library pass.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-15 22:55:18 +02:00
Meta Vens
3d5fe83708 Keep Session Zero in Dungeon; spec the library capabilities it consumes
Ghostlight Dungeon is a consumer of the Ghostlight library. Session Zero,
Vault choice, players, sliders and starting locations are Dungeon authority
and do not shape the library.

The ontology doc gains consumer-neutral library targets: elaboration
lenses with weights, focus-weighted demand with a consumer-supplied detail
profile, one evidence source bound per world, and elaborator sessions in
Draft. The Session Zero doc now carries only Dungeon policy that consumes
those capabilities.

The map records the boundary as a hard rule. The plan splits into library
passes L1-L4 and Dungeon passes D1-D3. Two decisions stay open: extracting
the kernel from crates/ghostlight-dungeon, and whether the eight titles ship
as a library stock lens set.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-15 22:46:54 +02:00
Meta Vens
25ff91f08d Restore the titled elaborators as lenses and design Session Zero
The eight titles (Patina, Charter, Ledger, Hearth, Tangle, Veil, Ember,
Numen) were deleted with their titled verifier and quotas, and no operator
decision covered them. The ontology doc and evidence record 6 now say the
tribunal was the verifier and the quotas, not the titles. A new correction
record carries the history and the 2026-09-15 direction.

Session Zero is the player's path through a world's Draft phase. The player
chooses a Vault, describes the experience, and sets title weights. The seed
lane sketches the world and the player chooses a start. A swarm then draws a
title by weight for each session and elaborates by travel distance from the
player, before and after activation. It is plan step 15, and its fifth pass
closes the playtest gate.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-15 22:33:21 +02:00
Meta Vens
705d298f91 Make the local playtest the next gate; correct stale map claims
The playtest gate goes ahead of the outbound consumer batch. The handoff
defines it and lists the walls found in source. The map no longer claims
co-op for up to eight players on the rebuilt kernel. It points the economy
spec at GameCult/Njordr and says CultCache comes from CultLib, not a
vendored copy.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-15 22:10:52 +02:00
Meta Vens
a306feda4d Clarify connector constraint in map
The Claude SDK sidecar is the only live provider. Backends share one
standardized CultNet connector API with Epiphany; CodexConnector is isolated
and not live here; a generic OpenAI-compatible connector gates third-party use.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-14 23:06:40 +02:00
Meta Vens
59bbe85875 Keep the world elaboration record and first-generation world fixtures in Ghostlight
The elaborator swarm's GitHub branches were removed after verified bundling,
but its output is still wanted: the operator will integrate ideas into the
lore vaults as time allows. The durable record now lives in the repository
that owns the obligation instead of a Codex task folder and deleted branches.

experiments/elaboration/ carries the reviewed additions packet (A2 and D1-D3
approved, A1 demoted, K1/K2/Z1-Z3 pending), the per-world reviews, the
2026-09-05 shortlist with its 20 full candidates, and the 92 per-pass idea
ledgers, with a README naming where the bundled vault additions are and how
to restore one. The four reviewer-accepted first-generation world fixtures
return from their deleted codex/world-* branches to examples/ and
prompts/image-generation/ beside the existing fixtures. The map and handoff
point at the new home.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-13 16:35:03 +02:00
Meta Vens
22937b71f0 Replace vendor/cultcache-py submodule with published PyPI dependency
CultLib's packages/cultcache-py is now published as cultcache-py==0.2.0 on
PyPI (MIT), so the standalone GameCult/cultcache-py fork that Ghostlight
vendored as a submodule is retired. Symbol-for-symbol and on-disk-format
verification against the pinned submodule commit 9b4bbb8 found no
incompatibility: every symbol tools/ghostlight_state_store.py imports
(CultCache, JsonLinesBackingStore, define_document_type) and every method it
calls kept its signature, and JsonLinesBackingStore's on-disk JSONL envelope
fields and sort order are unchanged, confirmed by a real round-trip against
Ghostlight's production state/ghostlight-state.cultcache.jsonl.

tools/ghostlight_state_store.py no longer pushes vendor/cultcache-py/src onto
sys.path; it imports cultcache_py directly. Since Ghostlight's session
bootstrap previously depended on the submodule needing no install step,
tools/requirements.txt now pins cultcache-py==0.2.0 and npm run
state:bootstrap (pip install -r tools/requirements.txt, idempotent) runs as a
pre-hook ahead of state:status and state:prepare-compaction; AGENTS.md's
Session Bootstrap protocol and Useful Commands section call it out explicitly
for the direct ghostlight_state.py CLI invocations that don't go through npm.

Verified for real: `python tools/ghostlight_state.py status` and `python
tools/ghostlight_prepare_compaction.py`, run from a venv with cultcache-py
installed from PyPI, against Ghostlight's actual production state file (22 ok
findings, 2 pre-existing unrelated warnings, exit 0 both times).

Idunn's deployment/idunn/recipe.toml never declared vendor/cultcache-py in
required_gitlinks (only vendor/eve) and its build/test/service steps never
touch Python state tooling, so no recipe change is needed for admission.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-13 16:08:19 +02:00
Meta Vens
6133461d8e Spec the GameCult economy daemon
Dimensions, materials, lots with provenance, recipes as roles, products as
property vectors; markets as Ghostlight mirrors; prices as a pure function
of committed state; both directions through the consumer contract. The
economy owner is the consumer that owns a world's market mirrors.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-11 15:04:28 +02:00
Meta Vens
d5cbc45a87 Map: name the span rule beside its schema pin
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-11 14:34:35 +02:00
Meta Vens
4406008b3c Record run 12: every cited span lands
Runbook row 12, evidence record, schema pins in map and handoff moved to
controller_work.v15.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-11 14:34:20 +02:00
Meta Vens
d0c047f375 Record run 11: the interrupted cell, logged per cell
Runbook row 11 and the interrupted-cell section, evidence record, map and
handoff advanced: next is the outbound consumer batch.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-11 14:12:26 +02:00
Meta Vens
4ef5f71397 Record run 10: the first displays and the first live interrupted cell
Runbook row 10 and the interrupted-cell section; plan step 14 landed;
evidence record; map, handoff, and scratch reconciled (schemas v4/v14,
thirteen components, next action is the per-cell interrupted log line).

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-11 13:34:09 +02:00
Meta Vens
5885eff5b6 Map step 14: nonverbal display by quote
A visible act becomes Seen { by } knowledge on the co-located, kernel-lowered
from the invocation beside speech, quoted by the Interpreter as the visible
clause alone. Intent stays private. Authority map, cut line, budgets,
verification, and the three operator decisions are in the plan; map,
handoff, and scratch point at it. Not built.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-11 12:51:33 +02:00
Meta Vens
b29e7e5b57 Record run 9: a world with a name and a premise
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-11 03:13:52 +02:00
Meta Vens
d4d7bc3c07 Give a world its brief: authored once, guidance on every lane
world_create.v3 carries a required brief, trimmed at ingress, stored on the
state and its snapshot, and projected as the guidance of the Projector,
Persona, Interpreter, operational, and grouped lanes and both authoring
prompts. The two narrative stages that rebuild prompts on resume carry it
(controller_work.v13). The smoke titles its world by the seed root label and
hands its brief to the world rather than to each seed session, so a vow can
no longer name a test fixture.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-11 03:04:02 +02:00
Meta Vens
5e6c7e22fd Record runs 7 and 8: the first people who speak in their own voices
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-11 02:35:38 +02:00
Meta Vens
0a6a7216e3 Record runs 4 to 6 and map the seed authoring meaning as proposed step 12
The membrane traced end to end: the Projector's borrowed voice, the
contentless commitment, the unbuilt PersonaMaterial, and the missing
co-presence are recorded as findings; the harness no longer claims to fail
on silence, which is now the honest baseline. The map and handoff point at
the decision the operator owns.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-11 01:31:20 +02:00
Meta Vens
52d148788c Record the first SDK road runs and point the Mind past the login gate
Run 3 proves speech cited by quote arrives whole with no quarantine. The
map, handoff, and runbook now say the SDK route is run; the remaining road
item is the live interrupted cell. One distilled evidence record carries
the day's belief-changing findings.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-11 00:06:17 +02:00
Meta Vens
04db2dafa7 Cut the handoff's chronology down to current authority and the next gate
Item 1 had grown to three hundred lines of per-pass SHAs, line numbers, and
test counts that git and the ledger own. The handoff now carries what is
true of the tree, the constraints, the ordered next moves, the operator's
open decisions, and the deployment gate. Gating lessons move to the
re-entry warnings; the map points there instead of repeating them.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-06 15:55:19 +02:00
Meta Vens
18f2eb96a2 Distill the evidence ledger to twelve records through one compaction path
44 records to 12: supersession chains collapsed to their survivors,
per-commit receipts folded into the decision they served, standing
pre-rebuild decisions merged into one record map.yaml already owns. Every
removed record is archived verbatim. `compact-evidence` is now the one
durable deletion path; the status tool reads folded scalars, and the
compaction helper imports the map readers instead of carrying copies.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-06 15:03:55 +02:00
Meta Vens
e211075969 Compact the map's next action to working memory before compaction
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-06 14:55:29 +02:00
Meta Vens
1665620690 Close plan step 11: the SDK port with its follow-ups and lessons
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-06 02:38:50 +02:00
Meta Vens
feb603b04b Record the SDK port design as decided
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-06 00:52:51 +02:00
Meta Vens
634e81f365 Open plan step 11, the Claude SDK inference port; record the SDK research
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-06 00:25:31 +02:00
Meta Vens
e93ed166f1 Record the overturned connector assumptions
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-06 00:14:11 +02:00
Meta Vens
fd4edc531b Record the Claude connector task opening
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-06 00:09:47 +02:00
Meta Vens
06236a4faa Close steps 9 and 10 with their follow-ups
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-06 00:04:08 +02:00
Meta Vens
5cd88536ef Record step 10 landed; phrase the operation count as the pinned catalog count
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-05 23:44:36 +02:00
Meta Vens
f6cd3b534c Record step 9 integrated and step 10 in flight
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-05 23:24:30 +02:00
Meta Vens
a62708fe33 Record steps 9 and 10 in flight; drop the two-call-sites claim
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-05 22:40:48 +02:00
Meta Vens
b22536fb11 Open plan step 9, interruption, and retire the re-submission decision
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-05 21:37:34 +02:00
Meta Vens
bcfd024b34 Record the seeded road run in the handoff and map
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-05 19:38:45 +02:00
Meta Vens
79206dfce7 Carry the road's rules from the seeded live smoke
The seeded smoke passed on the twelfth run: six persons authored into
Low Sere from the Kalsa vault in one round, the deficit to zero, nine
subjects and six boundaries at activation, eight cells per tick, the
seeded people speaking to each other. Each earlier failure became a rule
in the tree: strict function schemas (anyOf, typed tags) with an offline
totality test over both authoring lanes; a content-addressed provider
request identity so repair rounds do not collide with the connector's
replay record; the connector's expiry skew separated from the response
read timeout; the seed lane's own round budget with parallel tool calls
and a budget-end submit; canonical ids and the placement rule in the
brief; the commitment shape rule in its tool description; inference
faults and cell outcomes logged where the operator can read them; and a
harness that fails on an empty seed or a silent world.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-05 19:38:01 +02:00
Meta Vens
b7042f16df Record the seed producer and close its Soul follow-ups
Docs describe the seed lane as landed: scale intent at creation, the
phase-free qualification with the Draft refusal in one owner, the owner
port bound to the Draft revision, the Vault reader's containment and
caps, obligations as the source of boundaries, evidence lifetime at
ingress. The session-zero and compiler language leaves the eve-native,
multiplayer, Delvehold, and mvp docs; plan step 8 is landed; the smoke
note's run block targets Kalsa Public at Low Sere. Steward folded the
boundary and cut the stale drift warning.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-05 18:32:20 +02:00
Meta Vens
70600d8015 Open plan step 8, the seed producer
The plan carries the objective, current mechanism, and cut line; the
map's mission, boundaries, and subgoals speak the live admission
vocabulary; the session-zero document is teardown evidence; the draft
answer variant is marked representable but uninhabited. Steward folded
the task opening into the handoff and map.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-05 16:29:04 +02:00
Meta Vens
f9a1c3ea1e Record the first live smoke in the mvp doc and handoff
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-05 15:45:37 +02:00
Meta Vens
5e52943734 Add the local live smoke harness and record the first road run
An ignored runtime test drives the production tick driver, cover,
elaboration sweep, and clock against a real CodexConnector on a genesis
world and logs what the operator would see; the fixture now takes an
optional live controller. Runbook in notes/local-live-smoke.md; the
first run (three ticks, Persona spoke each tick, elaboration clean) is
recorded as evidence.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-05 15:42:46 +02:00
Meta Vens
0a26286412 Clear the scratch subgoal after the series close-out
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-05 04:33:17 +02:00
Meta Vens
842b5af4ee Record pass 10 and close step 6 of the plan
The consumer-api doc is the live contract for the landed ingress; the
ontology's Current mechanism runs through pass 10 and its follow-ups;
the mvp doc names the live authority answer; the plan's step 6 is
complete with the outbound consumer response as the next seam; the map
and handoff carry the series-complete state, the world-v3 generation,
and the decisions the operator owns; one evidence record distils the
ten passes.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-05 04:31:40 +02:00
Meta Vens
1203aa3286 Record pass 9 in the ontology and mvp docs and handoff
Current mechanism describes the budgeted connected cover, the tick
driver as the single clock owner, and the grouped-cell membrane rule;
the scale section carries the ceil(N/R) bound, the two reasons the cap
yields, and the contention finding with its open operator decision; the
two stale claims about AdmitPatch phase and EvidenceRef are corrected;
the consumer-api drift note names the decided transport; controller
model variables are documented. Steward folded passes 1 through 9 and
the pass 10 design state.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-05 03:24:11 +02:00
Meta Vens
7dbbc81a3b Record pass 8 in the ontology and consumer-api docs and handoff
Current mechanism describes the two AdmitPatch authors, jurisdictional
confinement at answer and write, the tool surface as one schema spelling
per type, and the evidence-bounded repair loop; Invariant 11 and
Verification 16 carry the expansion rule; the consumer-api drift note
names pass 10's four debts. Steward folded passes 1 through 8 and the
in-flight pass 9.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-05 01:56:17 +02:00
Meta Vens
106e7efc3c Record pass 7 in the ontology and mvp docs and handoff
Current mechanism describes the clock, commitments, pressure, causal
boundaries, scale deficit, and the structural answer rule; the Commitment
and Pressure rows and the twenty-seven operation count follow the cut;
the mvp doc no longer names a readiness partition. Steward folded passes
1 through 7 and the in-flight pass 8.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-05 00:38:55 +02:00
Meta Vens
76999ded14 Record pass 6 in the ontology doc and handoff
Current mechanism describes facts, channels, knowledge, speech fan-out
over the declared reach, the two homes of a statement, and the
controller port; the Channel row and Precondition block follow the cut.
Steward folded passes 1 through 6 and the in-flight pass 7.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-04 23:51:42 +02:00
Meta Vens
43e8042d8c Record pass 5 in the ontology doc and handoff
Current mechanism describes authority, selection, and redress with the one
covering predicate, the admission-only nesting rule, and the shared
grant/revoke envelope; the selection row and operation count follow the
landed cut. Steward folded passes 1 through 5 and the in-flight pass 6
into the handoff and map.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-04 22:22:08 +02:00
Meta Vens
d589ea0578 Record pass 4 in the ontology doc and handoff
Current mechanism now describes passes 1 through 4; plan invariant 10
follows the scope-digest rule; steward folded the pipeline state into
the handoff and map. Emergency compaction scratch deleted.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-04 20:59:26 +02:00