Skip to content
topicPhase: PlanDelivery

Planning & Architecture Decision Records ​

How AI integrates into enterprise planning, how ADRs are drafted and shared, and where humans retain decision authority.

Reference template — no production code in this repo.
Decision guide: Planning, ADR & specs · Knowledge indexing
Procedures to adapt: SOP-002 · SOP-003 · SOP-009


Planning Process Overview ​


ADR Lifecycle ​

StatusMeaningAI contextHuman action
ProposedAI or human drafted, under reviewNot indexedArchitect reviews
AcceptedDecision ratifiedIndexed for RAGNone — implementation proceeds
RejectedDecision not adoptedNot indexedArchive with rationale
SupersededReplaced by newer ADROld removed from indexLink to successor ADR
DeprecatedStill valid history, no longer guidanceWarning in retrievalOptional migration plan

ADR template (MADR-compatible) ​

Each ADR in docs/adr/NNNN-title.md includes:

  1. Title and status
  2. Context — problem and constraints (AI can draft from requirements)
  3. Decision drivers — quality attributes, NFRs
  4. Considered options — minimum two, with pros/cons (AI generates; human validates)
  5. Decision outcome — chosen option and rationale
  6. Consequences — positive, negative, risks
  7. Links — related ADRs, specs, tickets

AI in ADR Drafting ​

Prompting guidelines for ADR agents:

  • Always retrieve existing Accepted ADRs before proposing new ones
  • Flag conflicts with prior decisions
  • Include AWS-specific cost and operational trade-offs
  • Never auto-accept — output status is always Proposed

Sharing Non-Production Artifacts ​

ADRs, specs, threat models, and runbooks are knowledge artifacts. They require a different delivery model than application code.

Git as source of truth ​

repo/
├── docs/
│   └── adr/
│       ├── 0001-record-architecture-decisions.md
│       ├── 0042-order-event-bus.md
│       └── README.md          # index with status table
├── specs/
│   ├── openapi/
│   │   └── orders-v1.yaml
│   └── asyncapi/
│       └── order-events.yaml
└── .cursor/
    └── rules/
        └── adr-context.mdc    # points agents to ADR index

Publication pipeline (on merge to main) ​

StepActionAWS service
1Validate ADR format, broken linksCodeBuild
2Build static site (MkDocs / Docusaurus)CodeBuild
3Upload to S3S3
4Serve via CDNCloudFront
5Sync to Backstage TechDocsBackstage plugin
6Re-index for RAGOpenSearch Ingestion / Kendra

Discovery surfaces ​

SurfaceAudiencePurpose
BackstageAll engineersBrowse services, ADRs, specs, runbooks
Static ADR siteArchitects, auditorsRead-only ADR history
OpenSearch/KendraAI agentsSemantic retrieval at plan/code time
MCP serverCursor / IDEsearch_adr, get_spec tools
PR commentsReviewersInline ADR discussion before merge

Why not Confluence-only? ​

Confluence is fine as a mirror, but Git must be canonical:

  • Version control and PR review for ADR changes
  • ADRs stay close to code and specs in the monorepo
  • CI can block merge if ADR status is wrong or links break
  • AI agents read from indexed Git content, not stale wiki copies

Optional: GitHub Action syncs Accepted ADRs to Confluence for PM/non-dev stakeholders.


Human-in-the-Loop: Planning Phase ​

DecisionWhoAI role
Business priorityPOSummarize impact, estimate complexity
API contract shapeArchitect + senior devDraft OpenAPI from stories
Technology choiceArchitectDraft ADR with options
Security postureSecurity engineerDraft threat model
Test strategyTech leadDraft test plan from spec
Go/no-go for implementationArchitectCheck ADR + spec completeness

Hard rule: No feature branch for production code until linked spec is Approved and relevant ADRs are Accepted.


Integration with Spec-Driven Development ​

Each OpenAPI operation should reference ADR IDs in its description or x-adr extension field so traceability is machine-readable.

Example:

yaml
paths:
  /orders:
    post:
      summary: Create order
      x-adr: ["0042-order-event-bus", "0015-idempotency-keys"]
      description: |
        Creates an order and publishes OrderCreated to EventBridge per ADR-0042.

Metrics for Planning Health ​

MetricTargetSignal
ADR time-to-accept< 3 business daysPlanning bottleneck
Spec approval before first PR100%Spec-driven discipline
ADR retrieval hit rate in agent logs> 80% for arch changesContext is working
Superseded ADR cleanup< 30 daysKnowledge debt

Reference template only — no production code. Adapt in your own project.