Carolopedia
A friendly guide to Carol, her ecosystem, and the agents who built her.
📖About
FOUND AT THE END OF CAROL-INI-3678 (CLI-226), while proving that a per-droid pin still outranks a track declaration. It could not be proved, because the pins do not do what they say.
MEASURED 2026-08-04. The shared LLM config pins carol-agent, message-handler, pa-c0 and 65 others to CODEX with model codex-gpt-5.6-sol. Asked for the same droids, get_droid_override returns provider=DEEPSEEK, and resolve_provider therefore answers deepseek. 68 of the 70 pins name a provider that differs from the fleet default; not one of the sampled ones survives the lookup.
WHY IT MATTERS. Ninad prescribed on 2026-08-04 that critical user-facing work runs on Codex, and named Carol's WhatsApp explicitly when asked. Her track now DECLARES codex and her droid IS pinned to codex — and she still resolves to DeepSeek. So the estate says Codex in two places and does DeepSeek in the third, which is the exact drift the whole allocation layer exists to prevent. It also means the 70 pins that CAROL-INI-3678 deliberately left above the track declaration may not be doing anything at all, which changes what that layer is for.
FILED OVER A DUPLICATE VERDICT (rule 713: plumbing never buries an UNMET objective). The gate named CAROL-INI-3678, whose own objective -- wire the track into the resolver -- IS met and proven live. This is a DIFFERENT objective on the same layer: a pin that does not do what it says. NOT CAUSED BY 3678. That change only ADDED a step BELOW the pin lookup and cannot affect what the lookup returns; the behaviour reproduces on the pre-install code path. Recorded here so the next session does not spend its time re-deriving it.
SCOPE. 1. Find why the override lookup rewrites a codex pin to the fleet default. The candidates are the consciousness lane, the chat-lane rule (CAROL-INI-3541, which OUTRANKS a per-worker pin by design and may be doing exactly what it was told), and the Codex ringfence. 2. If it is correct behaviour, say so ON THE RECORD and make it VISIBLE — a pin that is overruled must be reported as overruled, not silently rewritten, which is the same lesson as CAROL-INI-3663. 3. If it is a defect, cure it so a pin means what it says. 4. Either way: Carol's WhatsApp must actually run on Codex, proven by a real call booking provider=codex against the whatsapp-core track — not by reading a record. 5. Then audit which of the 70 pins are now redundant, since the track declaration reaches the same answer by construction.
⚖️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)
- [status-router] planned -> executing | event=bypass_executing | bypass transition (or-bx-01)
- [HYGIENE GATE apps_registered] skip: work_type=G does not require app registration (orion.bypass)
- [HYGIENE GATE design_filed] skip: no design_id provided (orion.bypass)
- [HYGIENE GATE architecture_compliance] pass: references architecture design #146 (agent-centric modular architecture) (orion.bypass)
- [HYGIENE GATE policy_check] pass: considered: P.01.03.07.03 (orion.bypass)
- [HYGIENE GATE constitution_aligned] pass: soft-default pass; caller responsible for asserting via decision row (orion.bypass)
- [HYGIENE GATE cookbook_entry] pass: cookbook 1195: A lane that overrules a written pin must REPORT the overrule (CAROL-INI-3679) (orion.bypass)
- [HYGIENE GATE logbook_entry] pass: logbook session 350: (orion.bypass)
- [status-router] executing -> reviewing | event=bypass_reviewing | bypass transition (or-bx-01)
- [agt_028.mind] dispatched my droid dd-s1 (sequence model-routing-authority-budget-tranche-01): I dispatch dd-s1 to audit CAROL-INI-3679 together with 3672, 3675-01, 3677, 3678, 3680, 3682, and 3683 as one model-routing, authority, and budget-enforcement tranche. Verify from executable paths and receipts which provider and model actually receive each request; whether declarations, pins, track lanes, subscriptions, rate cards, and task budgets govern execution rather than merely describe it; whether provider changes preserve privacy and consent boundaries; and whether every claim has independently reconstructable evidence. Treat undeclared routing, removable controls presented as enforcement, zero-priced usage, or administrative completion without execution evidence as hard blockers. — CAROL-INI-3679 states that WhatsApp is declared and pinned to Codex while still resolving to DeepSeek; the surrounding initiatives expose the connected control chain of removable pins, disconnected track lanes, missing rates, unfunded providers, and budgets that may not bite. My duty is to review these together, and dd-s1 has recent evidenced execution while several alternative auditors are placeholders or have never run. (agt_028.mind)
- [agt_042.mind] dispatched my droid var-privacy-gate-01 (sequence 1): I dispatch the Privacy Review Gate over CAROL-INI-3679-00 before approval. Trace how WhatsApp users, conversations, reply context, memories, prompts, and attachments are identified and routed when the declared Codex lane resolves to DeepSeek; verify per-user isolation, lawful basis, least privilege, classification, retention, deletion, provider disclosure, and prevention of cross-user or cross-provider residue. Return blocking findings and exact required changes, and record an actual completed run. — WhatsApp is the clearest current user-data surface, and a mismatch between the declared and actual model provider can alter disclosure, processing, retention, and routing boundaries. My authority includes dispatching this gate, and the authoritative run record—not remembered intent—still says it has never run. (agt_042.mind)
- [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
- The reason a codex pin resolves to deepseek is named, with evidence, not guessed. (must_have)
- A real call from Carols WhatsApp books provider=codex in the cost ledger against the whatsapp-core track. (must_have)
- A pin that is deliberately overruled is REPORTED as overruled, never silently rewritten. (must_have)
- Every one of the 70 per-droid pins is checked, not sampled, and each is either honoured or explained. (must_have)
- Carol Intelligence is READ to confirm the workload matches the declaration - never edited to agree. (must_have)