Carolopedia

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

📖 CarolopediaServicesBuild InitiativesAll activitiesINI-100000220Guide page
📋

CAROL-INI-0881-00: Move checklist templates from the planner app to Sage (analyst-owned, executor-independent)

Initiative
Open in Initiatives →

📖About

ARCHITECTURE VIOLATION: the 617 checklist templates live inside the planner app DB, coupling templates to the planner. Templates are a shared resource and should be OWNED BY SAGE (agt_025, the analyst), so they are independent of the planner and usable by whoever executes an initiative — Albus, Orion, or Elrond. TARGET: (1) Sage-owned templates store (own DB + accessor/API); (2) migrate all 617 templates + versions + suggestions; (3) a shared templates accessor module that every consumer uses, abstracting the location; (4) repoint consumers (bypass helpers, Elronds pipeline, planner app, initiatives app, SST scanner, sizing/planning droids); (5) compat during transition so nothing breaks, then drop the planner copy. Mirrors the roadmap-out-of-initiatives and the three-book bypass decouplings.

⚖️Decisions

  • PHASE 1 DONE: templates are now Sage-owned (agt_025/templates.db, 617 migrated) with a shared accessor (shared/templates.py, Sage-first + planner fallback); bypass helpers repointed; registry app Templates owned by Sage. PHASES 2+: migrate the remaining readers (planner app, Elronds pipeline, initiatives app, SST scanner, sizing/planning droids) to the accessor, then drop the planner copy. (orion)
  • OWNERSHIP MODEL: a thing is Sage-owned when the registry records it AND a Sage keeper droid curates/serves it — custody (folder/DB) alone is not ownership. Stand up Sages Template Keeper droid. (orion)
  • JOIN-CONSUMER CHOICE: core droids that join templates with planner data will ask Sage DIRECTLY (chosen over a planner-side mirror); no template copy lingers in the planner. (orion)
  • END STATE = templates-as-Skills: each procedure becomes a Sage-owned skill carrying a checkpoint contract (definition-of-done + non-negotiables). (orion)
  • REVIEWER GRADES THE CONTRACT, not the path: hard deterministic guardrails stay mechanical; soft outcome checks become judgment against the rubric. (orion)
  • SKILL STRUCTURE: per-role sub-skills (Sage=decide, Forge=execute, Argus=review) bound by a parent composite activity skill; today one template already bundles these role-tagged steps. (orion)
  • PARENT SKILL OWNERSHIP: the composite activity skill is owned by Sage (a method definition); Merlin owns the runtime orchestration skill that consumes it (recipe vs kitchen). (orion)
  • SEQUENCING: join-heavy core droids skip the intermediate read-rows-from-Sage step and go straight to skills — refactor the core ONCE, not twice. (orion)
  • PREREQUISITE for native Skills: each agent needs its own working directory + the Skill tool enabled (harness re-plumbing). (orion)
  • EXECUTION PLAN (agreed with Ninad). 881 — OWNERSHIP & DIRECT READS: P1 done (Sage store + accessor + bypass + SST scanner). P2 stand up Sages Template Keeper droid (the owning act) + registry/SST record. P3 finish standalone readers (induction-docs exporter). P4 teach the join-heavy core droids (Elronds pipeline + reviewer, planner app, sizing droid) to ask Sage DIRECTLY — but per refactor-once, take these straight to skills under 882 instead of an interim DB-read. P5 retire the planner template copy once no one reads it. 882 — SKILLS UPGRADE: S1 harness prereq (per-agent working dir + Skill tool). S2 pilot: convert one template type into per-role sub-skills (Sage/Forge/Argus) + a Sage parent activity skill carrying a checkpoint contract. S3 reviewer grades the contract (hard guardrails deterministic + outcome rubric). S4 migrate the core droids to consume the activity skill + emit checkpoint results. S5 roll out remaining templates as skills; Merlins orchestration consumes activity skills. S6 retire the template DB. (orion)
  • Orion remediated: INI-100000221 bypass closed — CAROL-INI-696 close-marker: the Orion bypass INI-100000221 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)
  • Orion remediated: INI-100000221 bypass closed — CAROL-INI-696 close-marker: the Orion bypass INI-100000221 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)
  • Orion remediated: INI-100000221 bypass closed — CAROL-INI-696 close-marker: the Orion bypass INI-100000221 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)
  • Orion remediated: INI-100000221 bypass closed — CAROL-INI-696 close-marker: the Orion bypass INI-100000221 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)
  • Orion remediated: INI-100000221 bypass closed — CAROL-INI-696 close-marker: the Orion bypass INI-100000221 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)
  • Orion remediated: INI-100000221 bypass closed — CAROL-INI-696 close-marker: the Orion bypass INI-100000221 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)
  • Orion remediated: INI-100000221 bypass closed — CAROL-INI-696 close-marker: the Orion bypass INI-100000221 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)
  • Orion remediated: INI-100000221 bypass closed — CAROL-INI-696 close-marker: the Orion bypass INI-100000221 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)
  • Orion remediated: INI-100000221 bypass closed — CAROL-INI-696 close-marker: the Orion bypass INI-100000221 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)
  • Orion remediated: INI-100000221 bypass closed — CAROL-INI-696 close-marker: the Orion bypass INI-100000221 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)
  • Orion remediated: INI-100000221 bypass closed — CAROL-INI-696 close-marker: the Orion bypass INI-100000221 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] planned -> closed | event=operator_put | PUT /api/initiatives (operator)

Success criteria

  • 617 templates live in a Sage-owned store, read via a shared accessor (must_have)
  • Bypass template helpers (Albus/Orion) use the Sage store, not the planner (must_have)
  • A shared accessor abstracts template location for all executors (must_have)
  • All other consumers migrated off the planner copy, then the planner copy dropped (must_have)