brain-channels-audit — 2026-04-18

Pod 42. Inventory of every surface the brain uses to talk back to the operator. This exists because Robert asked: "how do we communicate it through the system right this is like an AGI brain we are trying to make here." Today the channels are real but scattered — this audit documents them and motivates the new insights channel built in the same commit.

Channel inventory (8 rows)

#ChannelWhat it carriesTriggerOperator discoveryPopulated?
1Byline (statusline)Live ops heartbeat: running agents, broken/overdue, named p0/p1, followups, Ray draft, next-fireEvery Claude-Code turn (hook renders state/bin/statusline.sh)Always visible at the top of every terminal Claude Code window✅ live (12 tracked agents)
2TUI tabs (byline/tui.sh)Full picture: agents, skills, loops, settings. Press a hotkey to drill.Operator launches explicitlyPaste-ready slash command on byline rows routes them here✅ 2007-line impl
3notify.ndjsonPer-agent run-complete events (sent or skipped by channel)Every cron agent tail-calls byline/notify.shTelegram (if notify=1 in settings.tsv) + NDJSON audit; byline does NOT read this✅ 109 rows
4morning-brief (state/log/briefs/<date>.md)Dedup'd ranked list of items awaiting Robert (sweep + krisp)Operator says "morning brief" (skill is prose)Opens today's .md file — operator-pulled, not pushed✅ skill page wired, eval auto
5agents-dashboard (state/bin/agents-dashboard.sh)Per-agent status grid, cadence, last runOperator launches explicitlyMirrors byline but scroll-back instead of one line
6statusline (the file that powers #1)Composes three lenses: LIVE / ISSUES / NEXTCalled on every promptByline rendering
7dispatches.ndjsonCheap-labor dispatch audit (model, cost, latency)Every dispatch.ts callCost audit — no operator-facing surface✅ 28 rows
8frictions.ndjsonDefects blocking runs — p0/p1 severityAgents that hit frictionByline row 🚨 N open issues → /snappy-fix✅ (surfaced via byline)

Gap Pod 42 identified

Every channel above is either transactional (a single run happened, here's the result) or reactive (the operator asked, here's the answer). None of them carry "the brain just got better at something you didn't ask about." Examples that have no home today:

never hears about it unless they grep the frontmatter.

rides with every turn mentioning that skill — but the operator was not told the rule exists.

news (runtime parity is the measured thesis metric) — surfaces nowhere.

The byline is the right front door for this, but the existing lenses (LIVE / ISSUES / NEXT) don't leave a seam for proactive findings. The byline is "what is happening right now"; insights are "what changed about you that you should know."

Solution shipped in this commit

New additive channel:

kinds: capability (new graduation), pitfall (new fixer-added rule), parity (runtime score ≥0.10 climb).

💡 N new insights → /brain-insights.

Contract stays additive: no change to notify.ndjson, no change to morning-brief. Insights are a new seam for self-generated signal — not a rerouting of existing signal.

How the operator now discovers "the brain got better"

One answer: the 💡 row on the byline, cleared by /brain-insights. Before this commit: no answer.