{"id":"d3772f47-54f1-499d-85ee-0b8378e2a73b","org_id":"5b607c7a-3ba2-4077-b038-cdccd0ce7c34","project_id":"b18679c0-fffb-4308-82b6-9e91be23582f","parent_id":null,"identifier":"BEB-3856","number":3856,"title":"LOOP CONFORMANCE — review SpecOps and every loop against four criteria: no CC fallback, cloud MCP trigger, gates are settings, tracked every time","description":"Repo: alexrollin/abilifi-apps\nClass: CODE\nLane: BUILD\nFEATURE NAME: **LOOP CONFORMANCE**\nETA: 2026-08-23\nBudget: estimate 150 / ceiling 300\nPriority: P0.\n\n## WHY\nAlex 2026-08-22: today's failures are one pattern repeated in every loop, not four separate bugs. SpecOps and every other loop get reviewed against the SAME criteria, once, now.\n\n## THE FOUR CRITERIA\nEvery loop and service is judged on these and nothing else:\n1. **NO CC FALLBACK** — CC is not called, woken, waited for, posted to, or required anywhere in the path. Not to run it, not to trigger it, not to unblock it.\n2. **CLOUD MCP TRIGGER** — Fable can fire it on demand from chat, with nothing else awake, and gets the result back in that call. A thing that only runs on a tick is unreachable when it is needed.\n3. **GATES ARE SETTINGS** — every threshold, cap, limit and on/off in that loop is a row on the breaker panel (BEB-3852), changeable on the tick with no deploy. A hardcoded number is a FAIL.\n4. **TRACKED EVERY TIME** — every run records what it did, with raw evidence, every time. Not sampled, not on failure only.\n\n## THE DELIVERABLE — A TABLE. NOTHING ELSE.\nOne doc in BB Docs: every loop and service as a row, the four criteria as columns, PASS or FAIL in each cell, and for each FAIL one line naming the exact change that fixes it — file and value where known.\n\nIn scope, at minimum: SpecOps · refine · spec · build · part · repair · propose · claim · preflight · land · deploy · evaluate · watcher · kicker · heartbeat · park-escalate · bridge.\n\nDO NOT REDESIGN ANYTHING IN THIS TICKET. Do not open child tickets. Do not fix anything yet. The output is the table and the one-line fixes. Alex reads it and decides what gets built.\n\n## Acceptance\n1. The table exists in BB Docs with every service above as a row and a verdict in all four cells.\n2. Every FAIL carries a one-line fix naming the file or the row it needs.\n3. No new gate, watcher, threshold or detector is introduced by this ticket.\n4. Doc id posted to the bridge.\n\nRefs: BEB-3852 (breaker panel — where the settings rows live), BEB-3854 (self-heal — the trigger pattern), BEB-3855 (bridge identity), BEB-3853 (no prompt), BEB-2436 (SpecOps).","status":"todo","priority":0,"assignee_id":null,"created_at":1787422090259,"updated_at":1788686566053,"completed_at":null,"due_date":"2026-08-29","claimed_by":null,"claimed_until":null,"required_capabilities":null,"estimate":150,"cost_ceiling":300,"cancelled_at":null,"last_actor":"unverified:shared"}