v3/@claude-flow/guidance/docs/adrs/ADR-G015-coherence-driven-throttling.md
Status: Accepted Date: 2026-02-01 Author: Guidance Control Plane Team
Long-running agents accumulate errors. In current systems, these errors compound silently until the agent produces catastrophically wrong output. The standard response is to cap autonomy duration, which limits capability. A better approach: measure coherence continuously and reduce privileges proportionally, allowing the agent to continue operating in a degraded but safe mode.
Implement CoherenceScheduler that computes a weighted coherence score and maps it to privilege levels:
Three signals, weighted:
| Signal | Weight | Measurement |
|---|---|---|
| Violation rate | 0.4 | Gate denials per time window |
| Rework rate | 0.3 | Edits to recently-written code |
| Drift score | 0.3 | Deviation from original task intent |
Score ranges from 0.0 (total incoherence) to 1.0 (perfect coherence).
| Score Range | Level | Allowed Operations |
|---|---|---|
| >= 0.8 | full | All operations |
| >= 0.6 | restricted | No destructive tools, reduced write rate |
| >= 0.3 | read-only | Only read operations, no writes |
| < 0.3 | suspended | No operations, await human intervention |
Privilege can recover upward if the coherence score improves. This happens naturally when:
EconomicGovernor enforces hard budget limits alongside soft coherence throttling:
| Budget | Enforcement |
|---|---|
| Tokens | Running total, hard cap |
| Tool calls | Counter per session |
| Storage bytes | Memory write accumulator |
| Wall clock time | Elapsed since session start |
| Cost (USD) | Computed from token + tool usage |
When a budget is exhausted, the governor blocks the relevant action category regardless of coherence score.