Architecture decision records¶
Each record explains a decision that affects a stable package boundary. A record describes the context, the decision, its consequences, and the main alternative not chosen.
| Record | Decision | Status | Date |
|---|---|---|---|
| ADR-001 | Use structural provider protocols. | Accepted | 2026-05-11 |
| ADR-002 | Keep the package at the repository root. | Accepted | 2026-05-11 |
| ADR-003 | Use one OpenAI-compatible provider. | Accepted | 2026-05-11 |
| ADR-004 | Keep the base install dependency-free. | Accepted | 2026-05-11 |
| ADR-005 | Require callers to supply price rates. | Accepted | 2026-05-22 |
| ADR-006 | Maintain a named failure-case corpus. | Accepted | 2026-06-08 |
| ADR-007 | Make pattern APIs async-first. | Accepted | 2026-05-22 |
| ADR-008 | Let callers persist workflow checkpoints. | Accepted | 2026-06-18 |
| ADR-009 | Make approval timeout behavior explicit. | Accepted | 2026-06-18 |
| ADR-010 | Probe once for optional OpenTelemetry support. | Accepted | 2026-06-18 |
| ADR-011 | Use a strict concurrent map phase and one reduce call. | Accepted | 2026-06-18 |
| ADR-012 | Ship a small stdio MCP server. | Accepted | 2026-07-02 |
| ADR-013 | Keep model-judged corpus review advisory. | Accepted | 2026-07-02 |
| ADR-014 | Keep Anthropic batches separate from live patterns. | Accepted | 2026-07-03 |
| ADR-015 | Enforce a bounded tool-execution contract. | Accepted | 2026-07-03 |
| ADR-016 | Reach a Claude subscription through the Agent SDK, in an extra. | Accepted | 2026-08-19 |
New records use the next number and the same four-section structure. Do not rewrite an old decision to hide a replacement. Mark it superseded and link to the new record.