Part V · Contracts · Plate 05

Persisted channels

On this page

5. Persisted Channels and Their Readers (S8)

Every artifact an organ persists should have a named reader or be removed. deploy/dead-channels.sh inventories this across the five organ repos (JSONL files, SQLite tables, declared generated artifacts) and reports every write-only channel and every table that is created and never written. It is an on-demand inventory, not a CI gate (Ivan, 2026-11-02, cns decision 10): run it locally or from the Actions tab (.github/workflows/dead-channels.yml, workflow_dispatch only). The debt ledger (deploy/debt-ledger.mjs, docs/DEBT.md, .github/workflows/debt-ledger.yml) is on demand in the same way.

Channel Writer Reader
<sessionDir>/<seat>-system1.jsonl Cortex System1Router (one line per classify call) cortex sys1 report <seat> [--session-dir <dir>] [--json]: calls by band live / mock / fallback / error; absent (exit 3) when the seat has no log.
$THALAMUS_STATE_DIR/telemetry.db thalamus serve thalamus replay (see 1.4).
.axon/axon.db tables experts, expert_sessions, events, knowledge_entries, knowledge_entries_fts none (never written) none: dropped in schema v18 (see 2.1).

Known exemptions are listed with a reason in deploy/dead-channels.patterns and printed on every run (today only the release tooling's sync-version.mjs scripts and Cortex's linear-agent.ts). The three name-only exemptions for Axon node_anchor_texts, Axon node_anchor_fts and Engram memories_fts_vocab were removed by S2 task 17: each of them must have a reader or be dropped, and deploy/test-s2-census.sh asserts it.