A pattern language for loops that can pay their debts.
Loop engineering got its name in June 2026 — Boris Cherny's "I don't prompt Claude anymore… My job is to write loops" (June 2), Addy Osmani's naming essay (June 7), Peter Steinberger's viral "You shouldn't be prompting coding agents anymore" (June 8), Andrew Ng's three-loops letter (June 30). The practice is older than the name: designing the systems that prompt, verify, schedule, and stop AI agents.
Within a month, the vendors shipped the mechanisms — scheduled runs, goal conditions, worktrees, sub-agents, checker models. What didn't ship is the judgment layer: a vendor-neutral way to say what a loop is made of, what liabilities it accumulates while it works, and when it must not be trusted with more autonomy. Solvent is that layer. It is documentation, vocabulary, and patterns — not a harness, and not a competitor to the tools it describes.
The counterweight stands at the door, per our constitution: loops erode understanding by default. Armin Ronacher's warning is the honest starting point — each iteration's added local defense leaves a system "less understandable while appearing more robust" (The Coming Loop, June 23, 2026). This repository exists to make that erosion measurable and payable, not to deny it.
Every loop produces value and accrues debt — seven kinds of it. Accrual rate scales with autonomy.
A loop is solvent when, at its operating autonomy tier, measured debt accrual does not exceed its paydown capacity — verifier investment, review budget, memory hygiene, provenance.
An insolvent loop has exactly two legal moves: lower the tier, or raise the paydown.
Everything in this repository serves that judgment.
| Layer | The question it answers | Where |
|---|---|---|
| Primitives | what a loop is | vocabulary/primitives.md |
| Moves | what a turn does: Discover → Claim → Execute → Verify → Persist | vocabulary/moves.md |
| Debts | what accumulates while it works | vocabulary/debts.md |
| Autonomy tiers | the accrual-rate dial (T1–T5) | vocabulary/autonomy-tiers.md |
| Health signals | the gauges | vocabulary/health-signals.md |
| Debt | One line | Accrues at |
|---|---|---|
| Contextual (alias: intent debt) | can anyone recover why this exists? | Goal / intent capture |
| Comprehension | can the responsible humans still safely modify it? | the human interface |
| Verification | unchecked output — and checkers degraded or captured | Evaluation |
| Memory | stale, conflicting, or merely excessive standing state | World State |
| Coordination | divergence and duplicated work across agents and reviewers | Policy (multi-agent) |
| Recovery | accumulated irreversibility; the undo gap | Action |
| Observability | what the telemetry cannot show | the measurement layer |
Full definitions — principal, interest, default event, proxies, paydown — in vocabulary/debts.md.
Before granting a loop autonomy, classify the task: verifier strength (V0–V3) × blast radius (B0–B3) → autonomy-tier ceiling. Two rules with teeth:
- Your blast-radius column is set by what your credentials can reach, not by what the task intends.
- The matrix is movable: verifier investment buys rows; reversibility engineering buys columns. Paydown is tier-purchasing.
→ matrix/task-classification.md
- Adding a loop to an existing project → classify it on the matrix, then start at
patterns/pr-babysitter.md— B1, human-gated, the shape most users adopt first. - Upgrading a loop you already run →
skills/loop-review/SKILL.mdwalks the solvency audit. - Going overnight → compose
always-continue-harness+maker-checker-pair+structured-escalation, and respect the ceiling. The best-documented overnight success ran in containers against a differential oracle — "the task verifier is nearly perfect, otherwise Claude will solve the wrong problem" (Carlini, Anthropic, Feb 2026).
Not a harness, framework, orchestrator, or benchmark. It competes with none of Claude Code, Codex, LangGraph, or Temporal — it is the layer their features map into (every pattern ships ≥2 concrete implementation mappings). No cross-domain claims ahead of evidence: v0.1 patterns are coding-only; the vocabulary is domain-neutral by construction.
Every normative claim carries a tier and a dated source (evidence/tiers.md); the verified corpus lives in evidence/findings-ledger.md; deflationary findings are publishable; skeptics are cited at full strength. Our own rulings are decision records in decisions/ — a repository about contextual debt that cannot show its own rationale is dead on arrival.
vocabulary/ the five layers (primitives, moves, debts, tiers, signals)
matrix/ task classification: V × B → tier ceiling
patterns/ TEMPLATE + five seed patterns
failure-modes/ what insolvency looks like when it lands
evidence/ experiments + raw results, findings ledger, tier definitions, external reviews
paper/ write-ups, the experiment plan, and an errata file for our own paper
roadmap/ where this is meant to go next
skills/ agent-loadable artifacts (F11-disciplined)
decisions/ the repo's own decision records (0001–0011)
CHARTER.md mission, non-goals, constitution, success criteria
Scaffold: v0.1, July 11, 2026. Taxonomy v1.1, matrix v1, five seed patterns (all honestly tiered [Emerging]).
Experiments: status as of 2026-07-26. Live state — next action, standing hazards, per-machine blocks — is evidence/RUN-STATUS.md. Read that first if you want to know where this actually stands.
| ID | What it tested | Result |
|---|---|---|
| P0 | compute calibration, both machines | done, 2026-07-14 |
| E0a | Study 2 re-analysis under an ordinal instrument | tier agreement κ 0.36 → AC2 0.78 (diagnostic) |
| E1 | blast-radius scanner | 18/18 controlled (PASS); wild-sample precision poor, over-raises → v2 backlog |
| E2 | solvency ledger, 300/300 trials | pre-registered criterion not met — the ledger is capability-conditional and the compounding multiplier is unsupported in all three models. The divergence is the pre-registered finding. |
| E-coord | coordination debt; recorded run + analysis finalized | at power (n=25, N{2,4,8}), both channels' significant raw "benefit" is a write-rate/capability artifact; H3 dead on arrival. 9,675 records. 8B anchor pending. evidence/coord-0001/RESULTS.md |
| dogfood-0001 | does loading this repo's own skill degrade unrelated work? | 84 headless Sonnet-5 trials: no measured interference (kata 100%/100%, cost +1.2%) and a modest gain on loop audits (rubric 0.898 vs 0.794), bought at a real on-topic cost premium — [Emerging]. evidence/dogfood-0001.md, decisions/0009 |
Design-complete, awaiting freeze: evidence/evasion-0001/. Not started: E3 interference/value ladder · E4 verifier-capture · E5 incident case-time-control · E6 breadth · E7 randomized-synthetic causal.
Two of our own headline claims have now died under controls we built ourselves — E2's compounding multiplier, and E-coord's coordination benefit. The capability-floor control that killed the second (evidence/coord-0001/harness/) separates the model declined the risky action from the model could not perform it, and it unmasked a statistically significant coordination metric as a capability artifact before publication. That control, not the taxonomy, is the methodological result, and it is first in line for upstreaming (roadmap/inspect-eval-upstream.md).
External obsolescence review, 2026-07-26 — verdict NARROW (evidence/reviews/). Nothing found subsumes the thesis, but the taxonomy half lost its novelty race: "agentic technical debt" was named first by arXiv:2605.29129, and composition was measured at scale by arXiv:2606.00448 while our own H3 came back dead on arrival. The verifier-strength axis remains unoccupied. The review's own standing warning against us is recorded verbatim in RUN-STATUS.md: our instruments keep measuring capability rather than the construct.
- Prose and documentation — everything except as noted below — is CC BY 4.0. Use it, adapt it, build on it; credit Solvent and link back.
- Code samples and schemas — reference snippets, rubric/config samples, the loop-health conventions schema, harness code — are MIT, © 2026 Joshua Hickson.
The split is deliberate: a CC license fits a specification and its vocabulary; MIT fits code you would paste into your own harness. It signals spec vs. software and keeps corporate internal derivatives friction-free. The license does not protect the name — trademark is a separate instrument and out of scope. Rationale: decisions/0008-license.md.