Carolopedia

A friendly guide to Carol, her ecosystem, and the agents who built her.

📖 CarolopediaServicesBuild InitiativesAll activitiesINI-999902793Guide page
📋

CAROL-INI-3873-00: Rich chat phase 3: the self-correcting turn - the lane runtime's loop answers from the records: reformulate on empty, read the data dictionary for schema, remember past conversations

Initiative
Open in Initiatives →

📖About

Ninad direction (2026-08-15): THE intelligence step. Today a turn is one query plan and one reply; an empty result ends the attempt - Clara answered records-hold-nothing on the Audit & Compliance owner until a name-vs-id rule was hand-taught (3863 UAT r1), where a loop would have reformulated and recovered alone. Build, inside the fences and citing the intelligence design: (1) the turn runs the lane runtime's own agentic loop (Codex/Claude) with read-only grounded queries as its tool - look at a result, reformulate, follow up, then answer; bounded rounds, chat-track billed, text-lane fallback preserved; (2) the query-writer's schema knowledge is READ from the data dictionary and SST instead of hand-written prompt hints, so new tables and renames teach themselves and hints cannot drift (one fact one home, 1126); (3) the agent retrieves relevant PAST conversation threads and its episodic memory into the turn. Every quality rule stands: truncation stated, refused is never empty, citations carried per read.

--- Resequenced 2026-08-16 (Ninad): the rich-chat arc is FIVE phases. 1 rich replies (3864/3865/3866) - 2 live stages + named threads (3867) - 3 the self-correcting turn + WhatsApp full-turn convergence (3873) - 4 files, charts, canvas (3868) - 5 get-back-to-me (3869; voice removed 2026-08-16, parked separately). The self-correcting turn moved AHEAD of files/canvas: it rebuilds the turn machinery and completes the one-engine convergence, and file grounding plus canvas state plug INTO that turn - building them first wires them to a seam about to be rebuilt. Voice was removed from the arc on 2026-08-16 and parked on its own record.

⚖️Decisions

  • 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)
  • [arc] Rich-chat arc resequenced into FIVE phases (Ninad, 2026-08-16): 1 rich replies (3864/3865/3866) | 2 live stages + named threads (3867) | 3 the self-correcting turn + WhatsApp full-turn convergence (3873) | 4 files, charts, canvas (3868) | 5 voice + get-back-to-me (3869). — The self-correcting turn moved ahead of files/charts/canvas because it rebuilds the turn machinery and finishes the one-engine convergence (3872/3877); file grounding and canvas state plug into that turn, so building them first would wire them to a seam about to be rebuilt. Voice remains last per Ninad's standing ruling. (orion)
  • [status-router] planned -> executing | event=bypass_executing | bypass transition (or-bx-01)
  • [status-router] executing -> reviewing | event=dispatcher_transition | dispatcher state change (ds-s1)
  • [status-router] reviewing -> closed | event=operator_signoff | Auto-accepted (CAROL-INI-1859): Orion-initiated, >2 days in reviewing with no objection. (el-srac-01)

Success criteria

  • A question whose first query returns empty is answered correctly via reformulation, with no hand-taught hint for that case (the Audit & Compliance owner class of question, proven on a fresh example) (must_have)
  • The loop is bounded (rounds and spend), bills the chat track, and a turn stays inside the proxy window (must_have)
  • Schema knowledge served from the data dictionary/SST: adding a described table makes it answerable with NO grounding-code change (proven live) (must_have)
  • On a text-only lane the turn still answers via the fallback path - degraded, visible, never broken (must_have)
  • All grounding fences hold in every round; citations name every record set read (must_have)
  • A question referencing an earlier conversation is answered using that thread (must_have)
  • Carol WhatsApp runs the FULL turn through the one engine (her tool executor and metered lane become the API-lane runtime loop), not only the shared composer - proven on a live WhatsApp turn (must_have)