# DEC-002 — Quality Escalation Trigger Strategy **Status:** accepted **Date:** 2026-06-18 **Owner:** Bernd **Blocks:** LOOP-WP-0002 T03, T05, T07 --- ## Question Should reactive quality escalation (LOOP-WP-0002) use **event-driven** triggers, **hourly sweep** polling, or **both**? ## Context Supplier draft `low-success-rate-review` expects NATS event `kaizen.metrics.recorded`. That emitter does not exist in `kaizen-agentic metrics record` today (KAIZEN-WP-0008 T03). LOOP-WP-0002 proposes hourly sweep as bootstrap scaffolding until events ship. ## Options ### A — Sweep first, events later (recommended) 1. Bootstrap: hourly `discover_kaizen_projects` sweep only 2. After KAIZEN-WP-0008 ships emitter: enable event definition; demote sweep to daily backup | Pros | Cons | |------|------| | Unblocks LOOP-WP-0002 without supplier code | Higher hub load during bootstrap | | Proven pattern (activity-core shell resolvers) | Latency up to 1 hour | ### B — Block until event emitter ships Wait for `metrics record --emit-event` before any LOOP-WP-0002 automation. | Pros | Cons | |------|------| | Clean architecture | Delays reactive loop entirely | | No duplicate triggers | LOOP-WP-0004 lacks quality signal data | ### C — Dual from day one Run hourly sweep **and** events when available; dedupe by `(repo, agent, hour)`. | Pros | Cons | |------|------| | Fastest signal once events land | Duplicate task risk; complex dedupe | | | Harder to tune false-positive rate | ## Recommendation **Option A.** Document emitter contract now (LOOP-WP-0002 T03); implement in KAIZEN-WP-0008; keep sweep as documented backup per ADR-003 stabilize phase. ## Decision record | Field | Value | |-------|-------| | Chosen option | **A** — sweep first, events later | | Decided by | Bernd Worsch | | Decided at | 2026-06-18 | ## On approval Update `loops/quality-escalation/thresholds.yml` trigger section.