feat: introduce Wiggum Break as named circuit breaker
Replaces generic "circuit breaker" with "Wiggum Break" — policy enforcement halt condition named after Chief Wiggum (policy + Ralph Loop's dad). Hard breaks (immediate halt) and soft breaks (finish then halt) with wiggum.break event type. Updated both papers and shadow-detection skill.
This commit is contained in:
@@ -55,7 +55,7 @@ Explorer (research), Creator (design), Maker (implement), Guardian (security), S
|
|||||||
Three layers, one escalation protocol:
|
Three layers, one escalation protocol:
|
||||||
- **Archetype shadows** — individual agent dysfunction
|
- **Archetype shadows** — individual agent dysfunction
|
||||||
- **System shadows** — orchestration-level issues (echo chamber, tunnel vision, scope creep)
|
- **System shadows** — orchestration-level issues (echo chamber, tunnel vision, scope creep)
|
||||||
- **Policy boundaries** — operational limits (checkpoints, budgets, circuit breakers)
|
- **Policy boundaries** — operational limits (checkpoints, budgets, Wiggum Breaks)
|
||||||
|
|
||||||
### Workflows
|
### Workflows
|
||||||
| Risk Level | Workflow | Agents |
|
| Risk Level | Workflow | Agents |
|
||||||
|
|||||||
@@ -395,17 +395,28 @@ Beyond individual archetype dysfunction, ArcheFlow monitors for
|
|||||||
proposal's file list.
|
proposal's file list.
|
||||||
\end{description}
|
\end{description}
|
||||||
|
|
||||||
\subsection{Policy Boundaries}
|
\subsection{Policy Boundaries and the Wiggum Break}
|
||||||
|
|
||||||
The third layer enforces operational limits:
|
The third layer enforces operational limits through budget gates, cycle
|
||||||
\begin{itemize}
|
limits, and checkpoint policies. When limits are exceeded, the system
|
||||||
\item \textbf{Budget enforcement}: per-run token limits with per-agent
|
triggers a \emph{Wiggum Break}\footnote{Named after Chief Wiggum from
|
||||||
tracking.
|
\emph{The Simpsons}---a nod to both ``policy enforcement'' and the
|
||||||
\item \textbf{Cycle limits}: maximum PDCA iterations (1/2/3 for
|
Ralph Loop plugin for Claude Code.}---a circuit breaker that halts
|
||||||
fast/standard/thorough).
|
execution, saves state, and reports to the user.
|
||||||
\item \textbf{Checkpoint frequency}: mandatory progress saves to prevent
|
|
||||||
lost work on interruption.
|
Wiggum Breaks are classified as \emph{hard} (halt immediately) or
|
||||||
\end{itemize}
|
\emph{soft} (finish current task, then halt):
|
||||||
|
|
||||||
|
\begin{description}
|
||||||
|
\item[Hard breaks]: 3 consecutive agent failures, 3 consecutive shadow
|
||||||
|
detections in one run, test suite broken after merge, 2+ oscillating
|
||||||
|
findings.
|
||||||
|
\item[Soft breaks]: convergence score $< 0.5$ for 2 consecutive cycles,
|
||||||
|
findings unchanged between cycles, budget $> 95\%$ spent.
|
||||||
|
\end{description}
|
||||||
|
|
||||||
|
Each Wiggum Break emits a \texttt{wiggum.break} event capturing the
|
||||||
|
trigger, run state, and unresolved findings for post-run analysis.
|
||||||
|
|
||||||
\subsection{Connection to the Assistant Axis}
|
\subsection{Connection to the Assistant Axis}
|
||||||
|
|
||||||
|
|||||||
@@ -661,7 +661,8 @@ this three-layer architecture, though without explicitly naming all methods:
|
|||||||
sprint mode with WIP-limited parallel dispatch (implicit Kanban).
|
sprint mode with WIP-limited parallel dispatch (implicit Kanban).
|
||||||
\item \textbf{Quality}: Shadow detection (behavioral FMEA for agent
|
\item \textbf{Quality}: Shadow detection (behavioral FMEA for agent
|
||||||
failure modes); effectiveness scoring (rudimentary SPC); Guardian
|
failure modes); effectiveness scoring (rudimentary SPC); Guardian
|
||||||
fast-path (TOC---don't waste the bottleneck on clean code).
|
fast-path (TOC---don't waste the bottleneck on clean code); ``Wiggum
|
||||||
|
Break'' circuit breakers (hard/soft halt conditions with event logging).
|
||||||
\end{itemize}
|
\end{itemize}
|
||||||
|
|
||||||
The gap is in explicit TOC application (identifying and optimizing around
|
The gap is in explicit TOC application (identifying and optimizing around
|
||||||
|
|||||||
@@ -357,6 +357,7 @@ Emit events via `./lib/archeflow-event.sh <run_id> <type> <phase> <agent> '<json
|
|||||||
| Fix addressing review | `fix.applied` | source, finding, file, line |
|
| Fix addressing review | `fix.applied` | source, finding, file, line |
|
||||||
| End of PDCA cycle | `cycle.boundary` | cycle, max_cycles, exit_condition, convergence |
|
| End of PDCA cycle | `cycle.boundary` | cycle, max_cycles, exit_condition, convergence |
|
||||||
| Shadow triggered | `shadow.detected` | archetype, shadow, trigger, action |
|
| Shadow triggered | `shadow.detected` | archetype, shadow, trigger, action |
|
||||||
|
| Policy halt | `wiggum.break` | trigger, run_state, unresolved_findings, hard/soft |
|
||||||
| Run ends | `run.complete` | status, cycles, agents_total, fixes_total |
|
| Run ends | `run.complete` | status, cycles, agents_total, fixes_total |
|
||||||
|
|
||||||
Parent rules: `run.start` has `parent: []`. Agents parent to the event that triggered them. Phase transitions fan-in from all completing events. Parallel agents share the same parent.
|
Parent rules: `run.start` has `parent: []`. Agents parent to the event that triggered them. Phase transitions fan-in from all completing events. Parallel agents share the same parent.
|
||||||
|
|||||||
@@ -79,22 +79,32 @@ Every **45 minutes** or **3 completed tasks** (whichever first):
|
|||||||
| 95% budget spent | Complete current task, then STOP |
|
| 95% budget spent | Complete current task, then STOP |
|
||||||
| 100% budget | STOP immediately, commit WIP |
|
| 100% budget | STOP immediately, commit WIP |
|
||||||
|
|
||||||
### Circuit Breaker
|
### Wiggum Break (Circuit Breaker)
|
||||||
|
|
||||||
| Trigger | Action |
|
Named after Chief Wiggum — policy enforcement AND the Ralph Loop's dad.
|
||||||
|
When a Wiggum Break triggers, the system halts execution, saves state, and
|
||||||
|
reports to the user. "Bake 'em away, toys."
|
||||||
|
|
||||||
|
**Hard breaks** (halt immediately, commit WIP):
|
||||||
|
|
||||||
|
| Trigger | Reason |
|
||||||
|---------|--------|
|
|---------|--------|
|
||||||
| 3 consecutive agent failures/timeouts | STOP. Infrastructure issue, not a code problem. |
|
| 3 consecutive agent failures/timeouts | Infrastructure issue, not a code problem |
|
||||||
| 3 consecutive task failures in sprint | STOP. Something systemic is wrong. |
|
| 3 consecutive task failures in sprint | Something systemic is wrong |
|
||||||
| Same shadow detected 3+ times in one cycle | STOP. Task needs to be broken down or re-scoped. |
|
| Same shadow detected 3+ times in one cycle | Task needs to be broken down or re-scoped |
|
||||||
| Test suite broken after merge | Auto-revert, STOP, report. |
|
| Test suite broken after merge | Auto-revert, then halt |
|
||||||
|
| 2+ oscillating findings (present→absent→present) | Fundamental tension in review criteria |
|
||||||
|
|
||||||
### Diminishing Returns
|
**Soft breaks** (finish current task, then halt):
|
||||||
|
|
||||||
| Signal | Action |
|
| Signal | Reason |
|
||||||
|--------|--------|
|
|--------|--------|
|
||||||
| Cycle N findings identical to cycle N-1 | STOP cycling. Present best result. |
|
| Cycle N findings identical to cycle N-1 | No progress — present best result |
|
||||||
| Convergence score <0.5 for 2 consecutive cycles | STOP. "This needs a different approach." |
|
| Convergence score <0.5 for 2 consecutive cycles | "This needs a different approach" |
|
||||||
| Reviewer finding count increases cycle over cycle | STOP. Implementation is diverging, not converging. |
|
| Reviewer finding count increases cycle over cycle | Implementation is diverging, not converging |
|
||||||
|
|
||||||
|
When a Wiggum Break fires, emit a `wiggum.break` event with trigger, run state, and unresolved findings.
|
||||||
|
The event log makes it easy to audit why a run was halted and whether the break was warranted.
|
||||||
|
|
||||||
### Context Pollution
|
### Context Pollution
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user