Files
coulomb-loop/docs/decisions/DEC-002-event-vs-sweep-quality.md
tegwick e783dc9a2b Bootstrap coulomb-loop engagement: governance, loops, and activity definitions.
Register with state-hub, accept DEC-001–004 and ADR-004 rotation policy, scaffold
pilot roster, hourly ActivityDefinition copies, and bootstrap log after schedule
init on three custodian pilot repos.
2026-06-18 04:53:51 +02:00

67 lines
1.9 KiB
Markdown

# 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.