Skip to main content
Architectural Decision Records (ADRs) capture the reasoning behind major design choices in EMEP. Each record includes the decision, status, rationale, consequences, and any superseding record.

Decision Table

Status Definitions

  • Proposed: Under discussion, not yet approved
  • Accepted: Approved and active; implementation must conform
  • Deprecated: Superseded by a newer ADR; do not use for new work
  • Rejected: Explicitly declined; record retained to prevent recurrence

Consequence Patterns

Accepted ADRs create obligations:
  • ADR-001: Every new component needs a defined interface contract and unit test plan
  • ADR-002: Merge strategies must be native implementations with documented algorithms
  • ADR-003: All model artifacts pass through safetensors conversion on import
  • ADR-004: ArtifactStore rejects unsigned writes in enterprise mode
  • ADR-005: Installation documentation includes mirror setup instructions
  • ADR-006 / 007: ExperimentTracker logs split assignments at creation time and enforces immutability
  • ADR-008: DeploymentManager rejects releases without valid semantic version
  • ADR-009: Documentation review checklist includes evidence tag verification
  • ADR-010: All specification pages include at least one Mermaid diagram
  • ADR-011 / 012: CI runs on Python 3.11 with PyTorch stable

Next Steps

See System Architecture for how these decisions shape the component topology, or Security Architecture for the trust boundaries that follow from ADR-004 and ADR-005.