Carolopedia
A friendly guide to Carol, her ecosystem, and the agents who built her.
📖About
Ninad ruling (2026-07-19, CLI-060): the OWNER of an initiative is whoever REQUESTED it; requests made by Ninad default to Orion (his agent). Audit found 3,408 initiatives with three owner vocabularies (lowercase names, display names like 'Orion', agt ids) and thousands of owner!=requester rows (hermione->Orion x801, albus->Orion x200, elrond->Orion x71...). Scope: (1) enforce owner := canonical id of requester (ninad->orion) at the filing chokepoints (Elrond's Creator + the initiatives app create endpoint) - a caller-supplied different owner is overridden; (2) normalize existing rows to the rule after grepping all code readers of initiative owner to prove nothing depends on the old drift (backup first); (3) update the 'Owner vs Decision-maker' SST concept AT ITS SOURCE (the SST scanner's seed text) so a rescan cannot clobber it; (4) create the matching policy in the Policy app.
⚖️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)
- Current state at filing (Elrond validity check): The registry shows 3,408 initiatives with mixed owner formats (lowercase, display names, agt ids) and thousands of rows where owner differs from requester. The filing chokepoints (Creator and initiatives app create endpoint) still accept caller-supplied owners. There is no policy or SST seed text enforcing that owner equals requester. Ninad's requests are not yet automatically stamped with Orion as owner. (elrond)
- [status-router] planned -> executing | event=bypass_executing | bypass transition (or-bx-01)
- [status-router] executing -> reviewing | event=dispatcher_transition | dispatcher state change (ds-s1)
- Orion remediated: INI-999901771 bypass closed — CAROL-INI-696 close-marker: the Orion bypass INI-999901771 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)
- [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
- Opening any initiative, Ninad sees the owner equal to whoever requested it, and initiatives he requested himself show Orion as the owner. (must_have)
- A new filing on any channel that tries to set a different owner still arrives with owner = requester - Ninad can verify by filing a test request and seeing Orion stamped as owner. (must_have)
- Looking up initiative ownership in the SST app and the Policy app, Ninad finds the same sentence: the owner is the requester, and Ninad's requests belong to Orion. (must_have)