Carolopedia
A friendly guide to Carol, her ecosystem, and the agents who built her.
📖About
GOAL: Replace the manual induction-program.md workflow with a web app that surfaces the three induction sections in real time, with run history and change detection.
SECTIONS: 1. Documents — pointers to all SSTs (constitution, registry, designs, plans, cookbook, prompts, tools) with last-modified timestamps and currentness indicator. One click opens the SST. 2. Handover — last 3 sessions open state. Source: roll up commits + an append-prune table mirroring induction-program.md Part 2. 3. Health Check — Gates 1-6 (vault, tunnel, endpoints, scheduled processes, alerts, regression) with live status. Each gate runs on demand. Gate 6 invokes the existing runner at ~/.claude/projects/-Users-ninadjoshi/memory/regression/runner.py.
CHANGE DETECTION: each gate keeps run history. UI highlights deltas vs previous run. For Gate 6 the runner already emits NEW FAILURE / FIXED / DRIFT / NEW TEST / REMOVED TEST; surface those.
OPEN QUESTIONS (resolve during Archon design):
- Host: carol-vm (alongside Plan Generator 7165 / SST 7166 / Initiatives 7167) or laptop? carol-vm is leaning since SSTs live there.
- Port: next free in 71xx range on carol-vm.
- regression.db location: lift from laptop into carol-vm/data/ if app moves to carol-vm.
DEPENDENCIES: regression runner + tests.json + regression.db established this session at ~/.claude/projects/-Users-ninadjoshi/memory/regression/.
NON-GOALS:
- NOT a replacement for the existing Carol Induction app at port 7204 (that one is about Carol-the-AI runtime context — different concept).
- NOT auto-running gates on cron — gates run on demand or at session start.
⚖️Decisions
- App lives on carol-vm in the 71xx range, not on the laptop. — All SSTs (registry, designs, plans, cookbook) already live on carol-vm. Co-locating the dashboard with the data avoids cross-network reads on every page load and matches the existing pattern (Plan Generator 7165 / SST 7166 / Initiatives 7167 / Policies 7139). Laptop hosting would require either daily SSH-tunneled reads or pushing a copy of the SSTs to the laptop. (Ninad)
- Distinct from the existing Carol Induction app at port 7204. — Port 7204 surfaces Carol-the-AI runtime context (system prompt, tools, cache). This new app is for the Orion/Claude-Code session-start workflow. Conflating them would muddle two different audiences and two different concepts. Different name, different port, different purpose. (Ninad)
- Three-section UI mirroring induction-program.md structure: Documents / Handover / Health Check. — The markdown file is already validated as the right shape (three roughly-equal-time parts). Mirroring it gives users a familiar mental model and lets the markdown remain the canonical reference if the app is down. (Ninad)
- Gate 6 reuses the existing runner at ~/.claude/projects/-Users-ninadjoshi/memory/regression/runner.py rather than reimplementing test execution in the app. — Runner already persists results, diffs against previous runs, and surfaces NEW FAILURE / FIXED / DRIFT. Reimplementing would duplicate logic. App invokes the runner via subprocess and reads regression.db for display. (Orion)
- Distinct from BB-INI-079 (BB's parallel induction app on bb-vm). Each VM gets its own induction app — no unified Carol+BB app. Per-project rule established 2026-04-28. (Ninad)
- requester rewritten ninad -> orion per CAROL-INI-744: orion is the only human-CLI requester — Backfill of historical rows after INI744 added API-level refusal of requester=ninad. Orion is Ninads CLI agent; all human-originated initiatives are filed with requester=orion. (orion)
✅Success criteria
- Visiting the app URL renders all three sections without errors and each gate is clickable (must_have)
- Clicking Gate 6 invokes the regression runner and returns a result diff in under 30s for cached/no-change runs (full run delegated to background) (must_have)
- Cookbook entry #3 (CAROL-INI-NNN convention) is surfaced in Section 1 by name, not buried in a generic table (must_have)
- induction-program.md links to the app and the app links back, so either entry point works (must_have)
- App appears in registry.db apps table and in the Carols Apps dashboard (must_have)
- Three sections are within ±15% of each other in vertical screen real estate (rough-equal-time proxy) (must_have)