Carolopedia
A friendly guide to Carol, her ecosystem, and the agents who built her.
📖About
INI-029's Session Induction app surfaced this: registry row stored url='http://carol-vm:7169' (an SSH-aliased hostname not resolvable from a browser) and a duplicate session_induction row exists at port 7168. App was registered with no public URL convention enforcement and no external-reachability check.
Fix the gap class across all pipeline stages so it doesn't repeat: - Archon authors a Design row codifying the URL pattern (https://carol.denken-labs.com/dev/
Themis is OUT of scope. URL-pattern is a design concern owned by Archon; validation is Forge's responsibility; testing is Argus's. Merlin's step-run review and Elrond's phase review pick up the new template rows automatically — no aggregator code changes.
⚖️Decisions
- Auto-detected remediation target INI-999917 from title/description scan (matched CAROL-INI-0029 -> row id 999917 (CAROL-INI-0029-00: Session Induction App — 3-section dashboard for Orion session)); override by setting remediates_initiative_id explicitly at bypass_start. (system-auto-detect)
- Elrond's bypass methodology checklist (a reminder, not a gate -- you've got this): 0. File it requested_mode='bypass' (planner-vs-bypass is a deliberate choice). bypass_start REFUSES a non-bypass initiative (CAROL-INI-1846), and the dispatcher only skips the bypass lane when the mode says bypass -- a 'planner' mistag lets Merlin's pipeline grab the placeholder step and block your finished work. 1. Filed as planned status -- let the bypass claim/activate it; never file active. 2. Open the bypass (bypass_start) with your droid id + the remediation answer (remediates_initiative_id=NNN, or remediates_nothing=True). 3. Work the blocks for your work-type: template -> design -> code -> test -> review. Do the real work; record decisions on the initiative as you make them. 4. Reality is recorded for you at close -- code (files changed), each decision, and the twin-review verdict become real activities tied to this initiative and show in the Activity Tracker like a planner run (CAROL-INI-1840). No dummy rows. 5. Keep the initiative status moving; it parks in 'reviewing' and is tagged uat-pending for you at close (CAROL-INI-1836), so the stuck-watchdog leaves it alone until UAT. 6. Close runs the gates (design/architecture compliance + caller-audit). If a gate flags something pre-existing or unrelated to your change, waive it with a clear written rationale -- audit, don't skip. 7. Bypass skips the planner's auto-orchestration, NOT the standards. Same template checklist, same review, same observability as a planner run. (elrond)
- Follow-on to parent INI 1000107 (orion)
- Scope inherited verbatim from parent INI 1000107 per CAROL-INI-361. (elrond.initiative_author)
- Criteria refinement (CAROL-INI-509): Struck 'Initiative shipped via canonical bypass' — RSI diagnosis identified this as a process meta-check that caused the prior block; operator requires substantive artifacts instead. (elrond.initiative_author)
- Criteria refinement (CAROL-INI-509): Refined 'register_app.py rejects a synthetic call with url='http://carol-vm:9999' + accepts a synthetic call with the canonical pattern' to use 'and' instead of '+' for clarity and to match concrete testability. (elrond.initiative_author)
- Criteria refinement (CAROL-INI-509): Refined 'checklist_templates contains 1 new Argus execute row + 1 new Merlin review row for type_code='A' referencing the design row' to use 'and' instead of '+' for readability. (elrond.initiative_author)
- [status-router] planned -> dispatched | event=dispatch | dispatcher queued (ds-s1)
- Gap J (CAROL-INI-771): stuck-dispatched with queue.status='cancelled'; flipped to blocked so Escalation card surfaces it. Reason: STALE: initiative is 'dispatched' (mode=bypass) — no longer dispatch-eligible (CAROL-INI-2009) (elrond.handover_watchdog)
- Gap J (CAROL-INI-771): stuck-dispatched with queue.status='cancelled'; flipped to blocked so Escalation card surfaces it. Reason: STALE: initiative is 'dispatched' (mode=bypass) — no longer dispatch-eligible (CAROL-INI-2009) (elrond.handover_watchdog)
- Gap J (CAROL-INI-771): stuck-dispatched with queue.status='cancelled'; flipped to blocked so Escalation card surfaces it. Reason: STALE: initiative is 'dispatched' (mode=bypass) — no longer dispatch-eligible (CAROL-INI-2009) (elrond.handover_watchdog)
- [status-router] dispatched -> blocked | event=stuck_10min_no_activity | Elrond safety net: initiative has had no activity for 10+ minutes. Blocking under the parallel safety mechanism. (el-watchdog)
- Elrond blocked initiative under the CAROL-INI-2162 dead-Albus protocol. Albus was supposed to wake for step 0 (cause=albus_no_show) but did not respond. Cause: albus_no_show. Reason: Elrond safety net: initiative stranded 10+ min. Albus wake failed or produced no useful result. (el-s1)
- [status-router] blocked -> executing | event=operator_reopen | CAROL-INI-2291 (Ninad direct order): phantom block by the stuck-10min watchdog/albus_no_show while work was intentionally held by the breaker or Albus was busy on the serialized RSI lane. Operator revert to pre-block state. (orion)
- [status-router] executing -> dispatched | event=operator_requeue | CAROL-INI-2291 (Ninad direct order): phantom block by the stuck-10min watchdog/albus_no_show while work was intentionally held by the breaker or Albus was busy on the serialized RSI lane. Operator revert to pre-block state. Step 2: back to dispatched for the dispatcher/loop reconciler. (orion)
- Gap J (CAROL-INI-771): stuck-dispatched with queue.status='cancelled'; flipped to blocked so Escalation card surfaces it. Reason: (elrond.handover_watchdog)
- Gap J (CAROL-INI-771): stuck-dispatched with queue.status='cancelled'; flipped to blocked so Escalation card surfaces it. Reason: (elrond.handover_watchdog)
- Gap J (CAROL-INI-771): stuck-dispatched with queue.status='cancelled'; flipped to blocked so Escalation card surfaces it. Reason: (elrond.handover_watchdog)
- Gap J (CAROL-INI-771): stuck-dispatched with queue.status='cancelled'; flipped to blocked so Escalation card surfaces it. Reason: (elrond.handover_watchdog)
- Gap J (CAROL-INI-771): stuck-dispatched with queue.status='cancelled'; flipped to blocked so Escalation card surfaces it. Reason: (elrond.handover_watchdog)
- Gap J (CAROL-INI-771): stuck-dispatched with queue.status='cancelled'; flipped to blocked so Escalation card surfaces it. Reason: (elrond.handover_watchdog)
- Gap J (CAROL-INI-771): stuck-dispatched with queue.status='cancelled'; flipped to blocked so Escalation card surfaces it. Reason: (elrond.handover_watchdog)
- Gap J (CAROL-INI-771): stuck-dispatched with queue.status='cancelled'; flipped to blocked so Escalation card surfaces it. Reason: (elrond.handover_watchdog)
- Gap J (CAROL-INI-771): stuck-dispatched with queue.status='cancelled'; flipped to blocked so Escalation card surfaces it. Reason: (elrond.handover_watchdog)
- Gap J (CAROL-INI-771): stuck-dispatched with queue.status='cancelled'; flipped to blocked so Escalation card surfaces it. Reason: (elrond.handover_watchdog)
- Gap J (CAROL-INI-771): stuck-dispatched with queue.status='cancelled'; flipped to blocked so Escalation card surfaces it. Reason: (elrond.handover_watchdog)
- Gap J (CAROL-INI-771): stuck-dispatched with queue.status='cancelled'; flipped to blocked so Escalation card surfaces it. Reason: (elrond.handover_watchdog)
- Gap J (CAROL-INI-771): stuck-dispatched with queue.status='cancelled'; flipped to blocked so Escalation card surfaces it. Reason: (elrond.handover_watchdog)
- Elrond re-scoped success criterion 3579 (replace) on Albus's prescription — Policy P.01.02.04.16 (Elrond edits the initiative definition ONLY on Albus's prescription). Albus diagnosis: The original criterion 'Initiative shipped via canonical bypass' is mechanism-bound and unreachable: orion-requested bypass sessions are operator-driven and none was ever started (session_attempts=0 for >17h), while every autonomous path (dispatcher auto-pick, RSI-only breaker enqueue, al_trigger_01) explicitly excludes orion bypass mode. The replacement measures the same intent — the work actuall (elrond)
- Elrond re-scoped success criterion 3579 (replace) on Albus's prescription — Policy P.01.02.04.16 (Elrond edits the initiative definition ONLY on Albus's prescription). Albus diagnosis: The original criterion 'Initiative shipped via canonical bypass' is mechanism-bound and unreachable: orion-requested bypass sessions are operator-driven and none was ever started (session_attempts=0 for >17h), while every autonomous path (dispatcher auto-pick, RSI-only breaker enqueue, al_trigger_01) explicitly excludes orion bypass mode. The replacement measures the same intent — the work actuall (elrond)
- [pre-verify-gate] pass | PASS — no issues (CAROL-INI-2128) (ds-s1)
- [pre-verify-gate] pass | PASS — no issues (CAROL-INI-2128) (ds-s1)
- [status-router] dispatched -> executing | event=dispatcher_transition | dispatcher state change (ds-s1)
- [status-router] executing -> reviewing | event=dispatcher_transition | dispatcher state change (ds-s1)
- [status-router] reviewing -> executing | event=reviewer_rework | reviewer reopened for rework (ir-s1)
- [status-router] executing -> dispatched | event=dispatch | dispatcher queued (ds-s1)
- [pre-verify-gate] fail | FAIL — stale_artifacts (CAROL-INI-2128) (ds-s1)
- [status-router] dispatched -> executing | event=operator_put | PUT /api/initiatives (operator)
- [status-router] executing -> dispatched | event=dispatch | dispatcher queued (ds-s1)
- [pre-verify-gate] fail | FAIL — stale_artifacts (CAROL-INI-2128) (ds-s1)
- [pre-verify-gate] fail | FAIL — stale_artifacts (CAROL-INI-2128) (ds-s1)
- [pre-verify-gate] fail | FAIL — stale_artifacts (CAROL-INI-2128) (ds-s1)
- [pre-verify-gate] fail | FAIL — stale_artifacts (CAROL-INI-2128) (ds-s1)
- [pre-verify-gate] fail | FAIL — stale_artifacts (CAROL-INI-2128) (ds-s1)
- [pre-verify-gate] fail | FAIL — stale_artifacts (CAROL-INI-2128) (ds-s1)
- [pre-verify-gate] fail | FAIL — stale_artifacts (CAROL-INI-2128) (ds-s1)
- [pre-verify-gate] fail | FAIL — stale_artifacts (CAROL-INI-2128) (ds-s1)
- [pre-verify-gate] fail | FAIL — stale_artifacts (CAROL-INI-2128) (ds-s1)
- [pre-verify-gate] fail | FAIL — stale_artifacts (CAROL-INI-2128) (ds-s1)
- [pre-verify-gate] fail | FAIL — stale_artifacts (CAROL-INI-2128) (ds-s1)
- [pre-verify-gate] fail | FAIL — stale_artifacts (CAROL-INI-2128) (ds-s1)
- [pre-verify-gate] fail | FAIL — stale_artifacts (CAROL-INI-2128) (ds-s1)
- [pre-verify-gate] fail | FAIL — stale_artifacts (CAROL-INI-2128) (ds-s1)
- [pre-verify-gate] fail | FAIL — stale_artifacts (CAROL-INI-2128) (ds-s1)
- [pre-verify-gate] fail | FAIL — stale_artifacts (CAROL-INI-2128) (ds-s1)
- [pre-verify-gate] fail | FAIL — stale_artifacts (CAROL-INI-2128) (ds-s1)
- [pre-verify-gate] fail | FAIL — stale_artifacts (CAROL-INI-2128) (ds-s1)
- [pre-verify-gate] fail | FAIL — stale_artifacts (CAROL-INI-2128) (ds-s1)
- [pre-verify-gate] fail | FAIL — stale_artifacts (CAROL-INI-2128) (ds-s1)
- [pre-verify-gate] fail | FAIL — stale_artifacts (CAROL-INI-2128) (ds-s1)
- [pre-verify-gate] fail | FAIL — stale_artifacts (CAROL-INI-2128) (ds-s1)
- [pre-verify-gate] fail | FAIL — stale_artifacts (CAROL-INI-2128) (ds-s1)
- [pre-verify-gate] fail | FAIL — stale_artifacts (CAROL-INI-2128) (ds-s1)
- [pre-verify-gate] fail | FAIL — stale_artifacts (CAROL-INI-2128) (ds-s1)
- [pre-verify-gate] fail | FAIL — stale_artifacts (CAROL-INI-2128) (ds-s1)
- [pre-verify-gate] fail | FAIL — stale_artifacts (CAROL-INI-2128) (ds-s1)
- [pre-verify-gate] fail | FAIL — stale_artifacts (CAROL-INI-2128) (ds-s1)
- [pre-verify-gate] fail | FAIL — stale_artifacts (CAROL-INI-2128) (ds-s1)
- [pre-verify-gate] fail | FAIL — stale_artifacts (CAROL-INI-2128) (ds-s1)
- [pre-verify-gate] fail | FAIL — stale_artifacts (CAROL-INI-2128) (ds-s1)
- [pre-verify-gate] fail | FAIL — stale_artifacts (CAROL-INI-2128) (ds-s1)
- [pre-verify-gate] fail | FAIL — stale_artifacts (CAROL-INI-2128) (ds-s1)
- [pre-verify-gate] fail | FAIL — slot_cancelled (CAROL-INI-2128) (ds-s1)
- Gap J (CAROL-INI-771): stuck-dispatched with queue.status='cancelled'; flipped to blocked so Escalation card surfaces it. Reason: (elrond.handover_watchdog)
- Gap J (CAROL-INI-771): stuck-dispatched with queue.status='cancelled'; flipped to blocked so Escalation card surfaces it. Reason: (elrond.handover_watchdog)
- [pre-verify-gate] fail | FAIL — slot_cancelled (CAROL-INI-2128) (ds-s1)
- [pre-verify-gate] fail | FAIL — slot_cancelled; stale_artifacts (CAROL-INI-2128) (ds-s1)
- Gap J (CAROL-INI-771): stuck-dispatched with queue.status='cancelled'; flipped to blocked so Escalation card surfaces it. Reason: (elrond.handover_watchdog)
- [pre-verify-gate] fail | FAIL — slot_cancelled (CAROL-INI-2128) (ds-s1)
- [pre-verify-gate] fail | FAIL — slot_cancelled (CAROL-INI-2128) (ds-s1)
- Gap J (CAROL-INI-771): stuck-dispatched with queue.status='cancelled'; flipped to blocked so Escalation card surfaces it. Reason: (elrond.handover_watchdog)
- [pre-verify-gate] fail | FAIL — slot_cancelled (CAROL-INI-2128) (ds-s1)
- Gap J (CAROL-INI-771): stuck-dispatched with queue.status='cancelled'; flipped to blocked so Escalation card surfaces it. Reason: (elrond.handover_watchdog)
- [pre-verify-gate] fail | FAIL — slot_cancelled; stale_artifacts (CAROL-INI-2128) (ds-s1)
- Gap J (CAROL-INI-771): stuck-dispatched with queue.status='cancelled'; flipped to blocked so Escalation card surfaces it. Reason: (elrond.handover_watchdog)
- [pre-verify-gate] fail | FAIL — slot_cancelled (CAROL-INI-2128) (ds-s1)
- Gap J (CAROL-INI-771): stuck-dispatched with queue.status='cancelled'; flipped to blocked so Escalation card surfaces it. Reason: (elrond.handover_watchdog)
- Gap J (CAROL-INI-771): stuck-dispatched with queue.status='cancelled'; flipped to blocked so Escalation card surfaces it. Reason: (elrond.handover_watchdog)
- [pre-verify-gate] fail | FAIL — slot_cancelled; stale_artifacts (CAROL-INI-2128) (ds-s1)
- [pre-verify-gate] fail | FAIL — slot_cancelled (CAROL-INI-2128) (ds-s1)
- Gap J (CAROL-INI-771): stuck-dispatched with queue.status='cancelled'; flipped to blocked so Escalation card surfaces it. Reason: (elrond.handover_watchdog)
- [pre-verify-gate] fail | FAIL — slot_cancelled (CAROL-INI-2128) (ds-s1)
- [pre-verify-gate] fail | FAIL — slot_cancelled (CAROL-INI-2128) (ds-s1)
- [pre-verify-gate] pass | PASS — no issues (CAROL-INI-2128) (ds-s1)
- [pre-verify-gate] pass | PASS — no issues (CAROL-INI-2128) (ds-s1)
- [status-router] dispatched -> executing | event=dispatcher_transition | dispatcher state change (ds-s1)
- [status-router] executing -> dispatched | event=concurrency_cap_enforcement | Exceeded max concurrent 1 — re-queued by concurrency monitor (CAROL-INI-2180) (ds-s1)
- [status-router] dispatched -> reviewing | event=review_inferred | review row present (el-review-inferer)
- [status-router] reviewing -> executing | event=reviewer_rework | reviewer reopened for rework (ir-s1)
- [status-router] executing -> blocked | event=operator_put | PUT /api/initiatives (operator)
- [rsi-group] cause=operator_put members=[999900490, 999900514, 999900077, 999900440, 999900446, 999900467, 999900468, 999900485, 999900482, 999900488, 999900556, 999900615, 999900602, 999900614] (leverage-first pick: largest same-cause group, 14 members) (elrond.rsi_loop)
- [status-router] blocked -> diagnosis | event=diagnosis_start | RSI loop: leverage pick cause=operator_put group_size=14 (blocked since 2026-07-02 23:08:47); Albus diagnosis INI 999900919 (el-rsi-loop-01)
- Orion remediation in progress: INI-999900919 bypass opened — CAROL-INI-696: an Orion-driven bypass has been opened to remediate this parent. The canonical Orion remediated: marker will be posted on close — see cookbook 156 / 155. (shared.bypass.bypass_start)
- Albus RSI diagnosis (root cause): [procedural, confidence high] The initiative is blocked because the operator manually put it to blocked after a reviewer reopened it for rework, indicating that the execution artifacts did not satisfy the success criteria. The prior diagnosis for a similar initiative (1000107) highlighted that criteria were meta-checks rather than substantive, and although the current criteria appear improved, the pipeline still lacks proper evidence capture automation, causing the operator to intervene when progress stalls. (albus)
- Albus RSI recommendations: - Audit the initiative's success criteria to ensure each points to a concrete, verifiable artifact (e.g., a test output file, a DB row count, a log line). - Implement automated evidence collection in each step so that when a step completes, its output is persisted and linked to the corresponding success criterion. - Before marking any criterion as 'met', run a verification script (e.g., a Python assertion against the registry or template tables) that produces a pass/fail result. - If rework is requested, ensure the reviewer provides explicit instructions on what must change, and the execution plan is updated accordingly before re-execution. || Next attempt succeeds because: With concrete, verifiable criteria and automated evidence collection, the operator will see clear proof of completion and will not need to manually block the initiative. The reviewer rework will be guided by specific, testable requirements, breaking the deadlock. (albus)
- Orion remediated: INI-999900919 bypass closed — CAROL-INI-696 close-marker: the Orion bypass INI-999900919 filed against this parent reached terminal state (closed). This row's literal prefix Orion remediated: is the canonical signal the cookbook-155 dispatcher gate looks for. (shared.bypass.bypass_end)
- [rsi-group-member-done] 999900514 -> retriggered as 999900921 (elrond.rsi_loop)
- [rsi-group-member-failed] 999900077 retrigger refused: {'ok': False, 'reason': 'create_returned_no_id: {\'error\': \'INI2205_BAD_CRITERIA: All success criteria appear process-only (LLM confirmed). Each must describe a measurable user-visible outcome. FAIL\', \'criteria\': [\'Request-reachable raw plangen (elrond.rsi_loop)
- [rsi-group-member-done] 999900440 -> retriggered as 999900923 (elrond.rsi_loop)
- [rsi-group-member-done] 999900446 -> retriggered as 999900924 (elrond.rsi_loop)
- [rsi-group-member-failed] 999900467 error: BrokenPipeError(32, 'Broken pipe') (elrond.rsi_loop)
- [rsi-group-member-done] 999900468 -> retriggered as 999900926 (elrond.rsi_loop)
- [rsi-group-member-failed] 999900485 error: BrokenPipeError(32, 'Broken pipe') (elrond.rsi_loop)
- [rsi-group-member-failed] 999900482 error: BrokenPipeError(32, 'Broken pipe') (elrond.rsi_loop)
- [rsi-group-member-failed] 999900488 error: BrokenPipeError(32, 'Broken pipe') (elrond.rsi_loop)
- [rsi-group-member-failed] 999900556 error: BrokenPipeError(32, 'Broken pipe') (elrond.rsi_loop)
- [rsi-group-member-done] 999900615 -> retriggered as 999900927 (elrond.rsi_loop)
- [rsi-group-member-failed] 999900602 error: BrokenPipeError(32, 'Broken pipe') (elrond.rsi_loop)
- [rsi-group-member-failed] 999900614 error: BrokenPipeError(32, 'Broken pipe') (elrond.rsi_loop)
- Orion remediated: Albus RSI diagnosis: [procedural, confidence high] The initiative is blocked because the operator manually put it to blocked after a reviewer reopened it for rework, indicating that the execution artifacts did not satisfy the success criteria. The prior diagnosis for a similar initiative (1000107) highlighted that criteria were meta-checks rather than substantive, and although the current criteria appear improved, the pipeline still lacks proper evidence capture automation, causing the operator to intervene when progress stalls. (orion)
- [status-router] diagnosis -> closed | event=operator_put | PUT /api/initiatives (operator)
- Closed: superseded by follow-on INI 999900929 (CAROL-INI-0210-03: App public-URL pipeline contract — design + validator + template rows + dedup, NO Themis) (elrond.initiative_author)
✅Success criteria
- Design row exists (id captured) with public-URL pattern documented (must_have)
- register_app.py rejects a synthetic call with url='http://carol-vm:9999' + accepts a synthetic call with the canonical pattern (must_have)
- checklist_templates contains 1 new Argus execute row + 1 new Merlin review row for type_code='A' referencing the design row (must_have)
- Registry has exactly one session_induction row with the public URL (must_have)
- No Themis-* in any row added by this initiative (must_have)
- Initiative shipped end-to-end via the autonomous pipeline (planner dispatch of the authored 5-step plan), with all step artifacts captured in the standard evidence flow (must_have)