Carolopedia

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

📖 CarolopediaServicesBuild InitiativesAll activitiesINI-999902516Guide page
📋

CAROL-INI-3616-00: Definitions live in the App Handbook and Data Dictionary; Sage's app skill makes them mandatory

Initiative
Open in Initiatives →

📖About

UAT items 2+3 from the task-tracker arc (CAROL-INI-3608 UAT r1). (1) DEFINITIONS HOME: every definition the Status Report app displays must be SERVED from registered App Handbook rows (shared/app_handbook) for app 'status-report' — register any inline-only definitions as rows; task vocabulary (task, task-budget, plan-vs-budget) must be visible in the Data Dictionary/glossary surface. Definitions stay visible in the status-report app, but served from the registered rows. (2) SKILL MANDATE: Sage's add-new-app skill gains a HARD gate — every metric/number a new app displays needs an App Handbook row registered via the sanctioned upsert in the same build, glossary terms for new concepts, and a GET /api/definitions endpoint serving its own rows (cookbook 938). The execute sub-skill gains a mandatory register-definitions step and a new anti-pattern: never style bare element selectors (button/a/span); the 44px tap-target rubric must be scoped under the app's own container — global rules leak into the injected shared topbar. Also records the already-shipped fleet-wide topbar hardening (component-scoped CSS reset) on this initiative.

⚖️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)
  • [status-router] executing -> reviewing | event=bypass_work_complete | UAT items 2+3 delivered: definitions served from App Handbook rows (report_cost registered), task vocabulary verified in Data Dictionary, H11 gate + CSS anti-pattern added to the add-new-app skill (orion)
  • [delivery-check] 3 must-have criteria remain pending at bypass_end — delivery has no mechanical re-performance lane; UAT must grade on live evidence, not checklist silence (CAROL-INI-3020): (no detail) (orion)
  • uat_comment — Ninad UAT 2026-08-03 (CLI-218): move the 'What the words on this page mean' section INTO the Data Dictionary — a page should not carry its own glossary. MEASURED at the time of the comment: five pages still render an inline glossary panel. Three (Status Report, Task Tracker, Consciousness) duplicate rows that already live in the dictionary; two (Agent Protocols, Semantic Memory) have ZERO dictionary rows, so their definitions exist only as prose in the page and deleting the panel would lose them. Rework: migrate first, then retire the panels behind a link to the Data Dictionary. (ninad)
  • [status-router] reviewing -> executing | event=bypass_executing | bypass transition (or-bx-01)
  • [status-router] executing -> reviewing | event=dispatcher_transition | dispatcher state change (ds-s1)
  • [recovery] queue row revived in place — the execution had died leaving status=executing with no live queue row; the step-advance sweep relaunches the current step (CAROL-INI-2981) (elrond.handover_watchdog)
  • [recovery] queue row revived in place — the execution had died leaving status=executing with no live queue row; the step-advance sweep relaunches the current step (CAROL-INI-2981) (elrond.handover_watchdog)
  • [rework-plan] reviewer rework (phase 3) added 9 step(s): Address: Every definition the Status Report app shows is served from App Handboo; Address: Building a new app without registering its App Handbook metric definiti; Address: The add-new-app skill warns against bare element CSS selectors (the 44p; Address: Every definition that today exists only as prose inside a page is reada; Address: Every definition that today exists only as prose inside a page is reada; Address: No page renders its own glossary panel any more; each links to its defi; Address: No page renders its own glossary panel any more; each links to its defi; Address: The two pages that had no registered definitions at all now have them, ; Address: The two pages that had no registered definitions at all now have them, (ir-s1)
  • [status-router] reviewing -> executing | event=reviewer_rework | reviewer reopened for rework (ir-s1)
  • [rework-plan] reviewer rework (phase 3) added 3 step(s): Address: Every definition that today exists only as prose inside a page is reada; Address: No page renders its own glossary panel any more; each links to its defi; Address: The two pages that had no registered definitions at all now have them, | skipped 3 duplicate seed(s) already live: Address: Every definition the Status Report app shows is served from App Handboo; Address: Building a new app without registering its App Handbook metric definiti; Address: The add-new-app skill warns against bare element CSS selectors (the 44p (ir-s1)
  • [delivery-check] 6 pending must-have criteria stamped met at bypass_end on live re-performance evidence (CAROL-INI-3020): test test_ini3616r1.py: PASS (7 passed in 3.54s) (orion)
  • [status-router] executing -> reviewing | event=bypass_reviewing | bypass transition (or-bx-01)
  • [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

  • Every definition the Status Report app shows is served from App Handbook rows and appears in the App Handbook app; task vocabulary appears in the Data Dictionary/glossary surface (must_have)
  • Building a new app without registering its App Handbook metric definitions and glossary terms now FAILS the add-new-app review contract (must_have)
  • The add-new-app skill warns against bare element CSS selectors (the 44px tap-target rule must be scoped to app containers, never global button/a rules) (must_have)
  • Every definition that today exists only as prose inside a page is readable from the Data Dictionary, none lost in the move (must_have)
  • No page renders its own glossary panel any more; each links to its definitions in the Data Dictionary instead (must_have)
  • The two pages that had no registered definitions at all now have them, closing the standing defect that a displayed metric carries a registered definition (must_have)