Architecture Decision Records¶
Each major design decision in the Agent Manifest Specification is recorded here with its rationale, alternatives considered, and consequences. ADRs are immutable once accepted - superseded decisions get a new ADR that references the old one.
| ADR | Title | Status |
|---|---|---|
| 0001 | RFC 8785 (JCS) for canonical serialization | Accepted |
| 0002 | Ed25519 as the standard cryptographic profile | Accepted |
| 0003 | RFC 9162 Merkle tree with domain separation | Accepted |
| 0004 | Pydantic v2 for schema modeling in the Python SDK | Accepted |
| 0005 | ML-DSA-65 and hybrid Ed25519+ML-DSA-65 signature support | Accepted |
| 0006 | Human-in-the-Loop (HITL) embedded approval record design | Accepted |
| 0007 | JSON-Lines append-only CRL as the SDK revocation format | Accepted |
| 0008 | Four conformance levels (0–3) rather than binary conformant/non-conformant | Accepted |
| 0009 | SPIFFE URIs as the canonical identity format for agent_id and issuer | Accepted |
To propose a new ADR, open a GitHub issue using the spec change template and follow the ADR template.
For practical implementation guidance that corresponds to these decisions, see the tutorials: HITL approval workflows (ADR-0006), revocation and key rotation (ADR-0007), hardware attestation (ADR-0008), and server-side verification.