Architecture Decision Records
ADRs record durable architectural choices and their consequences. Existing decisions are numbered in chronological order and remain in Git when superseded.
Format
# ADR-XXXX: Title
## Status
Proposed | Accepted | Deprecated | Superseded
## Context
...
## Decision
...
## Consequences
...
Use Proposed when implementation or repository evidence does not establish a settled choice. Never rewrite an accepted ADR to conceal a later decision; add a new ADR and mark the old one superseded.
Catalog
- ADR-0001 — Start with a modular monolith
- ADR-0002 — Local JSON default, PostgreSQL target
- ADR-0003 — Microsoft.Extensions.AI boundary
- ADR-0004 — Standalone scheduler before Quartz
- ADR-0005 — REST, UI, and MCP share application services
- ADR-0006 — Agentstration is the independent Management Plane
- ADR-0007 — SQLite control-plane storage for standalone mode
- ADR-0008 — Reconstructible Microsoft Agent Framework runtime
- ADR-0009 — Independent Work Plane with local Runtime dispatch
- ADR-0010 — Independent Flow definition module
- ADR-0011 — Dedicated Management module
- ADR-0012 — Runtime Run resource and observable execution
- ADR-0013 — Model-provider boundary and local Ollama adapter
- ADR-0014 — Configuration-backed model resolution into MAF
- ADR-0015 — Persisted model profiles and provider APIs
- ADR-0016 — Real model invocation from Agent Runner
- ADR-0017 — Canonical runtime/model options and capabilities
- ADR-0018 — Persisted model-provider declarations and dynamic clients
- ADR-0019 — Flow-owned Run resource and execution Console
- ADR-0020 — Workplace Entry, Interaction, and Task vertical
- ADR-0021 — Standalone Workplace and Work API hosts
- ADR-0022 — Interaction as durable conversation and FlowRun continuation
- ADR-0023 — Console supervision of WorkTasks through Work API
- ADR-0024 — Entries always target executable Flows
- ADR-0025 — Tenant, workspace, and identity foundation
- ADR-0026 — Out-of-process model-provider extensions through AEP
- ADR-0027 — AEP tool contributions resolve to MCP
- ADR-0028 — Tool Providers materialize a governed catalog
- ADR-0029 — Aspire consumes an existing local Ollama installation
- ADR-0030 — AEP is an autonomous SDK and Inspector repository
- ADR-0031 — Agentstration-native declarative resource envelope
- ADR-0032 — Use one authoritative standalone server
- ADR-0033 — Canonical resource names and explicit execution identities
- ADR-0034 — Seal MAF Flow orchestration behind the runtime adapter
- ADR-0035 — Resource names are scoped by explicit namespaces
- ADR-0036 — Runtime resolution and control-plane hardening
- ADR-0037 — Packs are Management and distribution artifacts
- ADR-0038 — Pack Projects retain sources and produce local immutable builds
- ADR-0039 — Pack manifests use the native definition envelope
- ADR-0040 — Secrets and Vaults V1
- ADR-0041 — Pack resource bindings are logical and installation-scoped
- ADR-0042 — Authentication and authorization boundaries
- ADR-0043 — Console API calls propagate only an explicitly trusted Web session
- ADR-0044 — Identity schema and Web key material are durable
- ADR-0045 — Security events are an append-only Management log
- ADR-0046 — Platform administration is explicitly transferable
- ADR-0047 — External identities are explicitly linked to Principals
- ADR-0048 — FlowRuns carry a durable execution scope
- ADR-0049 — Workplace Dashboards own Entry composition
- ADR-0050 — Background Control Plane access is explicit
- ADR-0051 — Pack Projects can originate from reviewed workspace snapshots
- ADR-0052 — Pack composition distinguishes contained model configuration from bindings
- ADR-0053 — Workspace scope is part of durable identity
- ADR-0054 — Durable interactive Flow execution preserves exact runtime identity
- ADR-0055 — Agentstration owns the Tool execution boundary
- ADR-0056 — Tool execution hooks are ordered Runtime guards
- ADR-0057 — Tool execution Hook resources select built-in Runtime handlers
- ADR-0058 — Tool governance decisions are traced per physical attempt
- ADR-0059 — Tool arguments require explicit bounded retention
- ADR-0060 — Entry owns Workplace execution presentation
- ADR-0061 — llama.cpp is an AEP provider and capabilities are resolved effectively
- ADR-0062 — Extension options use immutable versioned contracts
- ADR-0063 — Extension registrations are managed discovery sources
- ADR-0064 — Extension option migrations are explicit
- ADR-0065 — Model Providers bind registered extension contributions
- ADR-0066 — Pack Runtime Profile bindings drive local deployment
- ADR-0067 — LocalAI is an independent AEP provider
- ADR-0068 — Triggers submit Work through a reconstructible Quartz projection