Skip to content
↑↓Navigate↵SelectescClose

ADR Backlog

Feature-gated architecture decisions backlog

This file lists ADRs that must be authored in the same merge train as the first feature that consumes them. Authoring them before any implementing code exists would produce shallow, premature decisions — see 0000 - Recording architectural decisions as ADRs and Delivery Methodology Rule 2.

A body of work may not be marked complete until the ADR listed below (if any) has merged in Accepted status. The doc-lint script at scripts/check-adr-references.sh verifies the P0 ADRs below exist and are linked from the README.

These exist in this directory and are linked from README.md:

ADR Title File
0000 Record architectural decisions as ADRs 0000 - Recording architectural decisions as ADRs
0001 Rust microservices with axum + tonic for backend 0001 - Rust microservices with axum + tonic for backend
0005 OpenAI-compatible API as the gateway contract 0005 - OpenAI-compatible API as the gateway contract
0011 Apache 2.0 license policy and third-party license allowlist 0011 - Apache 2.0 license policy and third-party license allowlist
ADR Scope that requires it
0025 Gateway-computed usage counters. Recording a usage figure nexus derives itself, rather than one an upstream reported. The first consumer is image-input measurement on chat and Responses: providers report no image-token breakdown on those surfaces (see ../compatibility-matrix.md), so the count can only come from nexus measuring the request. The decision is how a derived figure is marked, kept out of rate matching, and distinguished in audit evidence from a provider-reported one — not whether to measure. Required by the merge request that introduces any such counter.

The FIPS-capable build profile that this table reserved as 0009 was authored as 0021 - FIPS build support behind a cargo feature when the build work landed, so 0009 is an unused number and is not to be claimed.

Numbers 0013–0015 were allocated to decision drafts that were abandoned before acceptance; they are retired and must not be reused.

  1. A merge request that implements a backlog row’s scope must include (or be paired with) that ADR in Accepted status.
  2. A later change that supersedes an earlier decision adds a new ADR and sets the earlier ADR’s status to Superseded by ADR-NNNN. Earlier ADRs are not edited except for the status line.
  3. New ADR numbers are claimed sequentially. The next unused number after the highest entry in this backlog or in the ADR directory is the next number.
  4. Adding an ADR to this backlog (because a planned body of work promises it) is itself a small merge request that edits only this table.
  • Every ADR-NNNN id cited by a work specification must either have a file NNNN-*.md in the ADR directory or a row in this backlog.
  • The doc-lint script scripts/check-adr-references.sh automates the P0-ADR check in CI.