Decision infrastructure is the repository-level system that records an engineering decision, makes the relevant decision retrievable by coding agents, and verifies any machine-checkable constraint against the code. It turns project memory from optional prose into maintained engineering infrastructure.

Why agents expose the missing layer

Software teams have always depended on decisions that are not visible in the source tree: why deletion is reversible, why one library was rejected, which boundary owns authentication, or which compatibility promise cannot be broken. A human who has worked on the system for years may remember these constraints. A coding agent beginning a fresh task does not.

Instruction files help an agent behave consistently, and ADRs preserve architectural rationale. Neither automatically provides the complete path from a question to a cited, current decision and then to an objective merge check. Decision infrastructure connects those stages without asking a model to invent the connection.

The three jobs of decision infrastructure

A useful system has three separate responsibilities. Recording establishes human-reviewed authority. Retrieval gives an agent the smallest relevant set of records with stable citations. Enforcement checks the constraints that can be expressed mechanically while leaving judgement-based decisions visible but explicitly unclassified.

  • Record: typed, validated Markdown reviewed in the same workflow as code.
  • Retrieve: deterministic queries that return the same cited records for the same repository state.
  • Enforce: explicit checks for constraints that can be proved without an LLM judge.

What belongs in the record

The useful unit is not every conversation or every implementation detail. Record decisions whose loss would cause expensive rework, a safety failure, an incompatible interface, or repeated debate. Include the context, the chosen position, rejected alternatives when they matter, consequences, lifecycle state and relationships to other records.

Negative decisions are especially valuable. An agent can usually infer what the current code does; it cannot infer that the team evaluated hard deletion and deliberately rejected it. The rejected path is often the part most likely to be rediscovered and reintroduced.

A minimal implementation

Start with one real decision in the repository. Validate its structure, expose read-only discovery to the agent, and add enforcement only if the constraint has an objective test. This creates value without attempting to reconstruct the entire history of the project.

brew install asdecided/tap/asdecided-core
decided quickstart
decided validate decisions/

Sources and further reading

  1. AsDecided Core quickstart
  2. Architectural Decision Records
  3. Model Context Protocol architecture