Skip to content

Architecture Decision Records

ADRs capture significant, hard-to-reverse decisions and the reasoning behind them. They are immutable once Accepted: to change a decision, write a new ADR that supersedes the old one.

Use template.md for new records. Number sequentially.

ADRTitleStatus
0001Monorepo layout and package boundariesAccepted
0002Protocol versioning independent of the toolchainAccepted
0003Single source of truth with tool adaptersAccepted
0004Ownership model and idempotent syncAccepted
0005Validation via zod with published JSON SchemaAccepted
0006Bundled, offline-first template distributionAccepted
0007Specification-first architecture (Specification → Engine → CLI)Accepted
0008Plugin runtime security (trust and sandbox model)Accepted
0009Plugin sandbox mechanism (worker)Superseded by 0010
0010Plugin sandbox: Node Permission Model subprocessAccepted
0011Bundle plugins at resolve time (multi-file; integrity over the bundle)Accepted

When to write an ADR

  • Changing a package boundary or dependency direction.
  • Changing the protocol's shape or semantics (also requires an RFC — see ../governance.md).
  • Choosing or replacing a foundational dependency.
  • Any decision a future contributor would otherwise reverse without context.

Released under the MIT License.