Ghostlight/tools
Repository files (latest commit first)
Filename Latest commit message Latest commit date
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
..
ghostlight_prepare_compaction.py Distill the evidence ledger to twelve records through one compaction path 2026-09-06 15:03:55 +02:00
ghostlight_state.py Distill the evidence ledger to twelve records through one compaction path 2026-09-06 15:03:55 +02:00
ghostlight_state_store.py Replace vendor/cultcache-py submodule with published PyPI dependency 2026-09-13 16:08:19 +02:00
requirements.txt Replace vendor/cultcache-py submodule with published PyPI dependency 2026-09-13 16:08:19 +02:00
typeset_newspaper.py Separate newspaper house style from issue flow 2026-08-30 19:34:37 +02:00
validate_agent_state.py Add Cold Wake story lab experiment 2026-05-01 22:17:15 +01:00
validate_coordinator_artifacts.py Add coordinator artifact seam 2026-05-02 10:14:41 +01:00
validate_corpus_coverage.py Mark Pallas fixture as reference only 2026-05-04 14:06:01 +01:00
validate_initiative_schedules.py Add initiative scheduler artifact seam 2026-05-04 23:58:07 +01:00
validate_ink_examples.py Prune obsolete prototype fixtures 2026-05-04 13:33:18 +01:00
validate_lore_grounding.py Add Cold Wake grounding fixture 2026-05-01 21:51:13 +01:00
validate_projected_contexts.py Prune obsolete prototype fixtures 2026-05-04 13:33:18 +01:00
validate_projection_examples.py Complete Cold Wake story lab pass 2026-05-01 22:32:51 +01:00
validate_responder_outputs.py Prune obsolete prototype fixtures 2026-05-04 13:33:18 +01:00
validate_responder_packets.py Prune obsolete prototype fixtures 2026-05-04 13:33:18 +01:00
validate_training_loop_artifacts.py Add Pallas training-loop receipt pilot 2026-05-04 14:59:42 +01:00