Inferensys

Prompt

ADR Review Prompt for Architecture Decisions

A practical prompt playbook for using ADR Review Prompt for Architecture Decisions in production AI workflows.
Developer designing multi-agent workflow on laptop, architecture diagram on screen, casual home office setup with afternoon light.
PROMPT PLAYBOOK

When to Use This Prompt

Understand the job-to-be-done, ideal user, and boundaries for the ADR Review Prompt.

Use this prompt when you are a peer reviewer, tech lead, or architect who needs to provide consistent, structured, and actionable feedback on a draft Architecture Decision Record (ADR) before it is accepted. The primary job-to-be-done is to elevate the quality of architectural decisions by catching clarity issues, unstated assumptions, missing alternatives, and weak rationale that would otherwise go unnoticed in an ad-hoc review. The prompt assumes the draft ADR is complete enough to evaluate but has not yet been merged or approved. It is designed for teams that maintain an ADR repository and want to enforce a baseline quality standard across all decisions, not just the most controversial ones.

The ideal user is someone who understands the system's architecture but wants a disciplined review framework to avoid personal bias and inconsistency. Instead of writing freeform comments like 'this needs more detail,' the prompt produces a structured review that identifies specific gaps: options that should have been considered but were not, trade-offs that are mentioned but not analyzed, and rationale that describes what was chosen without explaining why alternatives were rejected. This is particularly valuable when reviewing ADRs from less experienced architects, when onboarding new team members to the ADR process, or when preparing for a group decision meeting where multiple reviewers need to align on feedback before the discussion.

Do not use this prompt as a replacement for domain expertise, stakeholder alignment conversations, or implementation feasibility checks. The model can identify structural gaps and reasoning flaws, but it cannot validate whether the technical constraints are correct, whether the cost estimates are realistic, or whether the chosen option aligns with organizational strategy. This prompt is also not suitable for generating an ADR from scratch—use the ADR Generation Prompt Template for that. Avoid using it on decisions that are already accepted and implemented unless you are conducting a retrospective quality audit. For high-risk decisions in regulated environments, always pair the model's review with human expert validation and consider using the ADR Compliance Mapping Prompt to ensure regulatory obligations are met.

PRACTICAL GUARDRAILS

Use Case Fit

Where the ADR Review Prompt delivers strong results and where it introduces risk. Use these cards to decide if this prompt fits your review workflow before you run it.

01

Good Fit: Structured Draft Review

Use when: you have a complete draft ADR with all required sections (Context, Decision, Options, Consequences). The prompt excels at finding gaps in rationale, unstated assumptions, and missing trade-offs in well-formed documents. Guardrail: Run a schema check before the review prompt to confirm all required sections exist.

02

Bad Fit: Raw Notes or Brainstorming

Avoid when: the input is meeting notes, Slack threads, or early-stage brainstorming. The review prompt expects structured ADR content and will hallucinate missing sections or flag false positives against unstructured text. Guardrail: Use the Context Extraction Prompt or ADR Generation Prompt first to produce a draft, then review.

03

Required Inputs

What you need: a complete draft ADR document, the system context (architecture, constraints, team capabilities), and any relevant prior ADRs that this decision depends on or conflicts with. Guardrail: Provide a [CONTEXT] block with system constraints and a [PRIOR_ADRS] block with related decisions to prevent the model from reviewing in a vacuum.

04

Operational Risk: False Positives

What to watch: the model may flag issues that are not actually problems, especially when it lacks domain-specific context about your system's constraints or team capabilities. This erodes reviewer trust and creates noise. Guardrail: Require a human reviewer to confirm or dismiss each finding. Track false-positive rate over time and calibrate the prompt's severity thresholds.

05

Operational Risk: Missed Domain Constraints

What to watch: the model may miss compliance requirements, regulatory constraints, or organization-specific policies that are not explicitly stated in the ADR or context. This creates a false sense of completeness. Guardrail: Pair this prompt with the ADR Compliance Mapping Prompt for regulated environments. Always include a [CONSTRAINTS] block with non-negotiable requirements.

06

Scale Limit: Single ADR Focus

What to watch: this prompt reviews one ADR at a time. It will not detect cross-ADR conflicts, dependency violations, or repository-level gaps. Guardrail: For repository-level analysis, chain this prompt with the ADR Consistency Check Prompt and ADR Gap Analysis Prompt. Do not expect a single-ADR review to catch systemic issues.

PROMPT PLAYBOOK

Copy-Ready Prompt Template

A copy-ready prompt that instructs the model to act as a peer reviewer for a draft Architecture Decision Record, producing structured, actionable feedback.

The following prompt template is designed to be dropped into your AI-assisted review workflow. It forces the model into a reviewer stance, not an authoring one, and constrains its output to a structured, actionable format. This prevents the common failure mode where the model simply rewrites the ADR instead of critiquing it. Replace the square-bracket placeholders with your specific ADR content and review parameters before execution.

code
You are an experienced software architect acting as a peer reviewer for a draft Architecture Decision Record (ADR). Your goal is to produce a structured, actionable review that identifies weaknesses, gaps, and risks before the ADR is approved. Do not rewrite the ADR. Do not suggest alternatives unless the current decision is fundamentally unsound.

## ADR TO REVIEW

**Title:** [ADR_TITLE]
**Context:** [ADR_CONTEXT]
**Decision:** [ADR_DECISION]
**Options Considered:** [ADR_OPTIONS]
**Rationale:** [ADR_RATIONALE]
**Consequences:** [ADR_CONSEQUENCES]

## REVIEW PARAMETERS

**Review Focus Areas:** [REVIEW_FOCUS_AREAS]
**Risk Tolerance:** [RISK_TOLERANCE]
**Team Context:** [TEAM_CONTEXT]

## OUTPUT SCHEMA

Produce a JSON object with the following structure:
{
  "overall_assessment": "PASS" | "NEEDS_REVISION" | "REJECT",
  "summary": "A 2-3 sentence summary of the review's key findings.",
  "findings": [
    {
      "severity": "BLOCKER" | "MAJOR" | "MINOR" | "SUGGESTION",
      "category": "CLARITY" | "COMPLETENESS" | "RATIONALE" | "ASSUMPTION" | "OPTION" | "CONSEQUENCE" | "CONTEXT",
      "location": "The specific section or statement in the ADR that triggered this finding.",
      "observation": "What the issue is, stated neutrally.",
      "recommendation": "A concrete, actionable suggestion for the author."
    }
  ],
  "missing_options": [
    "An alternative option that was not considered but should be, with a brief explanation of why it's relevant."
  ],
  "unstated_assumptions": [
    "An assumption the decision appears to depend on that is not explicitly documented."
  ],
  "risk_register": [
    {
      "risk": "A risk introduced or amplified by this decision.",
      "likelihood": "LOW" | "MEDIUM" | "HIGH",
      "impact": "LOW" | "MEDIUM" | "HIGH",
      "mitigation": "A suggested mitigation or acceptance rationale."
    }
  ]
}

## CONSTRAINTS
- Only report findings that are genuinely actionable. Do not invent issues.
- If the ADR is clear and complete, return an empty findings array and a PASS assessment.
- Do not critique writing style or grammar unless it creates genuine ambiguity about the decision.
- For each finding, you must be able to point to a specific location in the ADR.

To adapt this template, replace the [ADR_*] placeholders with the actual content from your draft ADR. The [REVIEW_FOCUS_AREAS] parameter lets you direct the review toward specific concerns like security, cost, or operational burden. Set [RISK_TOLERANCE] to LOW, MEDIUM, or HIGH to calibrate the reviewer's sensitivity. The [TEAM_CONTEXT] field should describe your team's size, expertise, and existing tech stack so the reviewer can flag decisions that are misaligned with your operational reality. Run this prompt through your model, validate the JSON output against the schema, and feed any BLOCKER or MAJOR findings back to the ADR author before the decision proceeds to approval.

IMPLEMENTATION TABLE

Prompt Variables

Placeholders required by the ADR Review prompt. Replace each with concrete values before sending the prompt. Validation notes describe how to check that the input is well-formed before the model sees it.

PlaceholderPurposeExampleValidation Notes

[ADR_DRAFT]

The full text of the Architecture Decision Record to review

Title: Use PostgreSQL for Event Store Status: Proposed Context: ... Decision: ... Consequences: ...

Must contain at least Title, Status, Context, Decision, and Consequences sections. Reject if fewer than 200 words or missing required sections.

[REVIEW_DEPTH]

Controls how exhaustively the reviewer inspects the ADR

comprehensive

Must be one of: quick, standard, comprehensive. Default to standard if not provided. Reject unrecognized values.

[REVIEW_FOCUS_AREAS]

Specific dimensions to emphasize during review, or null for all dimensions

["rationale_strength", "missing_options"]

Must be a JSON array of strings from the allowed focus area enum or null. Reject if array contains unrecognized focus areas.

[ORGANIZATION_STANDARDS]

Link or inline text describing ADR standards, templates, or required sections for this organization

ADRs must include a Security Impact section and reference any affected system SLAs.

Null allowed. If provided, must be non-empty string. Reviewer will check ADR against these standards.

[PREVIOUS_ADRS]

Related ADRs for consistency and dependency checking, or null

["ADR-0021: Use Kafka for Async Messaging", "ADR-0019: Standardize on Protobuf"]

Null allowed. If provided, must be a JSON array of strings. Each entry should include ADR identifier and title for traceability.

[SYSTEM_CONTEXT]

Brief description of the system, domain, and constraints the ADR operates within

E-commerce platform handling 50k orders/day. PCI-DSS compliance required. Team of 8 backend engineers.

Must be non-empty string. Should include scale, compliance, team size, and critical constraints. Reject if empty.

[REVIEWER_ROLE]

The role or perspective the reviewer should adopt

Principal Architect

Must be a non-empty string describing a relevant review role. Used to calibrate review tone and expectations. Reject if empty.

PROMPT PLAYBOOK

Implementation Harness Notes

How to wire the ADR review prompt into a CI/CD pipeline, code review tool, or architecture governance workflow with validation, retries, and human approval gates.

The ADR review prompt is designed to operate as a pre-merge quality gate in an architecture decision repository. Wire it into your existing pull request workflow (GitHub Actions, GitLab CI, or a custom review bot) so that every new or modified ADR document triggers an automated review before human architects spend time on it. The prompt expects a complete ADR draft as input, typically a Markdown file following a template like MADR or a custom org standard. Pass the raw file content into the [ADR_DRAFT] placeholder, along with any [ORG_STANDARDS] that define required sections, naming conventions, or mandatory constraint categories. The model should return structured JSON with review findings, which your harness then parses and acts on.

Validation and retry logic is critical here because the output must be machine-readable for downstream automation. Implement a JSON schema validator that checks for required fields (clarity_issues, missing_options, unstated_assumptions, weak_rationale, overall_score, recommendation). If validation fails, retry up to two times with the error message appended to the prompt as a [PREVIOUS_ERROR] context. After two failed retries, surface the raw output to a human reviewer with a warning flag. For high-risk domains (security architecture, compliance-mapped decisions, data residency), always require human approval regardless of the automated score. The recommendation field should map to three actions: approve (auto-merge allowed if score exceeds threshold), revise (block merge, post inline comments on the PR), or escalate (flag for architecture review board).

Model choice and latency matter for developer experience. Use a fast, capable model (Claude 3.5 Sonnet or GPT-4o) for the primary review pass. If your ADR repository is large, consider a RAG step that retrieves related ADRs before calling the review prompt, populating a [RELATED_DECISIONS] context to enable consistency and dependency checks. Log every review result—including the prompt version, model, timestamp, score, and human override if applied—to build an audit trail for governance reviews. Avoid running this prompt on every commit during draft editing; trigger it only on PR creation, PR update, or a manual /review command to keep feedback loops tight and costs predictable.

IMPLEMENTATION TABLE

Expected Output Contract

Defines the structured review output fields, their types, and validation rules for the ADR Review Prompt. Use this contract to parse, validate, and store review results before surfacing them to the author.

Field or ElementType or FormatRequiredValidation Rule

review_id

string (UUID v4)

Must be a valid UUID v4 string. Generate if not provided in [REVIEW_METADATA].

adr_id

string

Must match the identifier of the ADR being reviewed, extracted from [ADR_DRAFT].

overall_verdict

enum: APPROVE | REVISE | REJECT

Must be one of the three allowed values. If any critical issue is found, verdict cannot be APPROVE.

clarity_issues

array of objects

Each object must have 'location' (string), 'issue' (string), and 'suggestion' (string). Array can be empty but must not be null.

missing_options

array of strings

Each string must describe a plausible alternative not considered in the ADR. Array can be empty. Null is not allowed.

unstated_assumptions

array of objects

Each object must have 'assumption' (string) and 'risk_if_false' (string). Array can be empty. Null is not allowed.

weak_rationale_sections

array of objects

Each object must have 'section' (string) and 'weakness' (string). Array can be empty. Null is not allowed.

reviewer_notes

string or null

If provided, must be a non-empty string. If absent, value must be null. Free-text field for additional reviewer commentary.

PRACTICAL GUARDRAILS

Common Failure Modes

When an ADR review prompt fails, it usually fails in predictable ways. Here are the most common failure modes, why they happen, and how to guard against them before the review reaches a human approver.

01

Rubber-Stamp Approval

What to watch: The model produces a review that finds no issues, even when the ADR has obvious gaps in rationale or missing options. This often happens when the prompt lacks explicit criteria for what constitutes a finding. Guardrail: Include a minimum-findings expectation in the prompt and require the model to justify why each section passes before concluding. Pair with a checklist of common ADR anti-patterns the model must explicitly check.

02

Hallucinated Citations and Precedents

What to watch: The review fabricates references to non-existent ADRs, internal documents, or industry standards to support its critique. This is especially dangerous in regulated environments where reviewers may trust the model's apparent thoroughness. Guardrail: Constrain the prompt to reference only the provided ADR text and any explicitly supplied context. Add an instruction to mark any external reference as '[UNVERIFIED]' and require human confirmation before accepting it.

03

Style Critique Masquerading as Substance

What to watch: The review focuses on prose quality, formatting, and section naming while ignoring deep architectural flaws like missing failure modes, unstated latency assumptions, or unexamined operational burden. Guardrail: Separate the prompt's evaluation dimensions explicitly. Require the model to address architectural substance (trade-offs, constraints, failure modes, operability) before commenting on documentation style. Use a structured output schema that forces substantive findings into dedicated fields.

04

Context Window Truncation of Long ADRs

What to watch: For ADRs with extensive background, multiple options, or long consequence sections, the model silently loses context from the middle or end of the document. The review appears complete but misses issues in truncated sections. Guardrail: Chunk the ADR into logical sections and review each independently, then synthesize. Alternatively, add a pre-check that asks the model to summarize each section before reviewing, and flag any section it cannot summarize as potentially truncated.

05

Overconfidence in Ambiguous Trade-Offs

What to watch: The model presents subjective trade-off judgments (e.g., 'Option A is clearly superior') as objective findings, without acknowledging that the choice depends on team context, existing infrastructure, or risk tolerance not captured in the ADR. Guardrail: Instruct the model to flag trade-offs as context-dependent and to ask clarifying questions rather than declaring a winner. Require the output to separate 'objective gaps' from 'judgment calls that depend on context not present in the ADR.'

06

False-Positive Flood from Rigid Schema Enforcement

What to watch: When the prompt enforces a strict ADR template, the model flags every deviation as a finding, even when the ADR's structure is appropriate for its context. This buries real issues in noise and erodes reviewer trust. Guardrail: Distinguish between 'required sections' and 'sections that may be omitted with justification.' Ask the model to check whether missing sections are genuinely needed for this specific decision rather than flagging all absences equally.

IMPLEMENTATION TABLE

Evaluation Rubric

Use this rubric to evaluate the quality of the ADR review output before approving it for use in a CI/CD gate or peer review workflow. Each criterion targets a specific failure mode common in automated architecture reviews.

CriterionPass StandardFailure SignalTest Method

Clarity Issue Detection

Review identifies at least one specific sentence or section where terminology is ambiguous or undefined.

Review output contains only generic praise like 'looks clear' with no specific textual references.

Parse review output for direct quotes from the [DRAFT_ADR]. Assert at least one quoted string exists in the Clarity Issues section.

Missing Options Coverage

Review flags at least one plausible architectural alternative not mentioned in the [DRAFT_ADR] or confirms the options list is exhaustive.

Review states options are sufficient without listing what was considered, or misses an option present in the [CONTEXT_DOCS].

Compare options listed in the review against a known set from [CONTEXT_DOCS]. If [CONTEXT_DOCS] contains an unmentioned option, the review must flag it.

Unstated Assumption Identification

Review extracts at least one implicit assumption from the decision rationale and labels it as unvalidated.

Review accepts all stated rationale at face value without probing for prerequisites or environmental dependencies.

Check the Assumptions section of the review output. Assert length > 0. Validate each assumption is a declarative statement, not a question.

Rationale Strength Assessment

Review evaluates whether the chosen option's rationale directly addresses the stated constraints and rejects at least one weak justification.

Review paraphrases the ADR's rationale without critical evaluation or accepts 'team preference' as sufficient justification.

Semantic check: the Rationale Assessment section must contain a negation keyword (e.g., 'does not address', 'insufficient', 'weak') or a direct challenge to a stated reason.

False Positive Rate Control

Review does not flag a correctly documented decision as an anti-pattern or missing trade-off when the [DRAFT_ADR] is a known-good sample.

Review generates a high-severity finding for a section that is present, complete, and correctly formatted.

Run the prompt against a golden set of 5 validated ADRs. Assert that the number of high-severity findings is less than 1 per ADR on average.

Actionable Recommendation Quality

Each flagged issue includes a concrete, directive suggestion for improvement, not just a problem statement.

Recommendations are vague (e.g., 'improve clarity') or merely restate the problem without a proposed fix.

For each finding in the review output, assert the corresponding Recommendation field contains an imperative verb (e.g., 'Define', 'Add', 'Replace', 'Specify').

Output Schema Compliance

The review output is valid JSON matching the [OUTPUT_SCHEMA] with all required fields present and correctly typed.

Output is missing a required field, contains a string where an array is expected, or is not parseable JSON.

Validate the raw model response against the [OUTPUT_SCHEMA] using a JSON schema validator. Assert validation passes with no errors.

ADAPTATION OPTIONS

Adapt This Prompt

How to adapt

Add JSON schema validation, retry logic on malformed output, and structured logging of review results. Wire the prompt into a CI/CD gate that blocks ADR merge if critical issues are flagged. Add eval cases with known-good and known-bad ADRs to measure precision and recall.

Watch for

  • Silent format drift when model outputs valid JSON but wrong field names
  • Missing human review step before automated blocking
  • Review fatigue if every ADR triggers the same low-severity findings
Prasad Kumkar

About the author

Prasad Kumkar

CEO & MD, Inference Systems

Prasad Kumkar is the CEO & MD of Inference Systems and writes about AI systems architecture, LLM infrastructure, model serving, evaluation, and production deployment. Over 5+ years, he has worked across computer vision models, L5 autonomous vehicle systems, and LLM research, with a focus on taking complex AI ideas into real-world engineering systems.

His work and writing cover AI systems, large language models, AI agents, multimodal systems, autonomous systems, inference optimization, RAG, evaluation, and production AI engineering.