Part V · Contracts · Plate 05
Persisted channels
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.