Inferensys

Prompt

Consequences Documentation Prompt for ADRs

A practical prompt playbook for generating a thorough consequences section for Architecture Decision Records, covering positive outcomes, negative trade-offs, mitigation strategies, and affected components.
Architect reviewing LLM integration architecture on laptop, system diagrams visible, modern technical office setup.
PROMPT PLAYBOOK

When to Use This Prompt

Define the job, reader, and constraints for the Consequences Documentation Prompt for ADRs.

This prompt is for staff engineers and technical architects who have already drafted the core sections of an Architecture Decision Record (ADR)—context, decision, and considered alternatives—and now need to rigorously document the ripple effects of that decision. The job-to-be-done is to produce a structured 'Consequences' section that moves beyond a simple pros-and-cons list to capture positive outcomes, negative trade-offs, explicit mitigation strategies, and a clear map of affected system components. The ideal user has the decision's full context and understands the system's current architecture well enough to validate the model's output against reality.

Use this prompt when the decision's scope is clear but its downstream impact needs to be systematically explored and recorded for future maintainers. It is particularly valuable for decisions involving cross-cutting concerns like data model changes, API contract modifications, or infrastructure shifts where the blast radius is large. Do not use this prompt as a substitute for the initial decision-making process itself; it documents consequences, not the decision rationale. Avoid it for trivial, low-impact decisions where the overhead of a full consequences analysis would slow the team down without adding meaningful traceability. The prompt requires a complete [DECISION_SUMMARY], [CONSIDERED_ALTERNATIVES], and [SYSTEM_CONTEXT] as inputs—garbage in, garbage out applies here with force.

Before running this prompt, ensure the ADR's context and decision sections are finalized and approved. The output should be treated as a draft that requires human review, especially for the accuracy of affected components and the feasibility of proposed mitigations. After generating the consequences section, validate it against the original decision scope using the completeness checks described in the evaluation harness, and be prepared to iterate on mitigation strategies with the team before the ADR is accepted.

PRACTICAL GUARDRAILS

Use Case Fit

Where the Consequences Documentation Prompt for ADRs delivers value and where it introduces risk. Use these cards to decide whether this prompt fits your current architecture workflow.

01

Good Fit: Structured ADR Workflows

Use when: your team already writes ADRs with a standard template and needs consistent consequences sections. The prompt excels at mapping decisions to affected components, second-order effects, and mitigation strategies. Guardrail: provide the original decision scope and context as input so the model traces consequences back to stated trade-offs rather than inventing unrelated impacts.

02

Bad Fit: Undocumented or Oral Decisions

Avoid when: the architecture decision exists only in meeting notes or Slack threads without a written ADR. The prompt requires structured input about the decision, alternatives considered, and trade-offs. Without that context, the model hallucinates plausible but ungrounded consequences. Guardrail: require a completed ADR context section as a prerequisite input before running this prompt.

03

Required Inputs

What you must provide: the original decision statement, considered alternatives, trade-offs acknowledged, and the system components or bounded contexts affected. Optional but valuable: architecture principles, dependency maps, and known constraints. Guardrail: validate that all required fields are non-empty before calling the prompt. Missing inputs produce generic consequences that fail peer review.

04

Operational Risk: Stale Consequences

What to watch: consequences documented today may become inaccurate as the system evolves. A consequence that references a deprecated component or a resolved risk misleads future maintainers. Guardrail: include a last-reviewed timestamp in the output and schedule periodic re-evaluation when dependent ADRs change or components are replaced.

05

Operational Risk: Over-Specification

What to watch: the model may enumerate every conceivable consequence, including low-probability edge cases, creating an unmaintainable document that obscures the important risks. Guardrail: constrain the output to consequences with a defined likelihood threshold or direct traceability to the decision scope. Use a completeness check that flags speculative items for human review.

06

Human Review Required

What to watch: consequences documentation directly shapes implementation priorities, risk registers, and migration planning. An incorrect or missing consequence can lead to unmitigated production risk. Guardrail: never auto-merge consequences into the ADR repository without human review. Require explicit approval from the decision author or architecture reviewer before the ADR status advances.

PROMPT PLAYBOOK

Copy-Ready Prompt Template

A reusable prompt template for generating the Consequences section of an Architecture Decision Record, with placeholders for decision context, scope, and output requirements.

This template produces the Consequences section of an ADR by forcing the model to reason about ripple effects across positive outcomes, negative trade-offs, mitigation strategies, and affected components. Use it when you have a completed decision statement and context but need a structured, searchable consequences record that future maintainers can rely on. Do not use this prompt for initial decision-making or alternative evaluation—those require separate ADR prompts that precede this step.

text
You are a staff engineer documenting the consequences of an architecture decision for a permanent Architecture Decision Record (ADR).

Your task is to produce only the "Consequences" section of the ADR. Do not repeat the decision title, context, or alternatives unless they are directly relevant to a specific consequence.

# INPUTS

[DECISION_SUMMARY]
[CONTEXT]
[CONSIDERED_ALTERNATIVES]
[SYSTEM_COMPONENTS]
[CONSTRAINTS]

# OUTPUT REQUIREMENTS

Produce a Consequences section with exactly these subsections, in order:

## Positive Outcomes
- List each positive outcome as a bullet point.
- For each outcome, explain what becomes easier, faster, cheaper, or more reliable.
- Link each outcome to the specific decision element that enables it.

## Negative Trade-offs
- List each negative trade-off as a bullet point.
- For each trade-off, explain what becomes harder, slower, more expensive, or riskier.
- State whether the trade-off is accepted, partially mitigated, or deferred.

## Mitigation Strategies
- For each accepted or partially mitigated negative trade-off, describe the mitigation.
- Include concrete actions, tooling, process changes, or future work that reduces the impact.
- If a trade-off is accepted without mitigation, state the rationale explicitly.

## Affected Components
- List every system component, service, or interface affected by this decision.
- For each component, describe the nature of the impact (changed API, new dependency, increased load, deprecated function, new responsibility).
- Flag any component that requires immediate action versus eventual adaptation.

## Second-Order Effects
- Identify consequences that may emerge later as the system evolves.
- Cover scaling limits, team topology changes, vendor lock-in risks, and future migration costs.
- State which effects are speculative and which are near-certain.

# RULES

- Every claim must be traceable to the provided [DECISION_SUMMARY], [CONTEXT], or [CONSIDERED_ALTERNATIVES].
- If a consequence is uncertain, mark it with "[LIKELY]" or "[SPECULATIVE]" and explain the condition that would trigger it.
- Do not invent components, constraints, or alternatives not present in the inputs.
- If the inputs lack enough detail to assess a category, write "Insufficient information to assess" rather than guessing.
- Use precise technical language appropriate for an engineering audience.
- Keep the total output under 800 words unless the decision scope demands more.

[OUTPUT_SCHEMA]
[RISK_LEVEL]

Adapt this template by replacing each square-bracket placeholder with concrete inputs. The [DECISION_SUMMARY] should contain the one-paragraph decision statement from the ADR header. [CONTEXT] should include the problem statement, constraints, and assumptions that shaped the decision. [CONSIDERED_ALTERNATIVES] should list the options that were evaluated and rejected, with brief reasons. [SYSTEM_COMPONENTS] should enumerate the services, databases, APIs, and infrastructure pieces in scope. [CONSTRAINTS] should capture non-functional requirements like latency budgets, compliance requirements, or team skill constraints. The optional [OUTPUT_SCHEMA] placeholder can specify a JSON structure if you need machine-readable consequences for downstream tooling. The [RISK_LEVEL] placeholder accepts values like "low," "medium," or "high" to adjust the depth of second-order effect analysis—higher risk levels demand more thorough speculation about future failure modes.

Before integrating this prompt into a pipeline, validate that the generated consequences section passes a completeness check: every affected component from [SYSTEM_COMPONENTS] should appear in the Affected Components subsection, every trade-off from [CONSIDERED_ALTERNATIVES] should have a corresponding entry in Negative Trade-offs, and no mitigation should be proposed without a linked trade-off. For high-risk decisions, route the output to a human reviewer who can verify that second-order effects are neither overstated nor overlooked. If you are generating multiple ADRs, run a consistency check across consequences sections to catch contradictory assumptions about component ownership or interface contracts.

IMPLEMENTATION TABLE

Prompt Variables

Placeholders required by the Consequences Documentation Prompt. Replace each with concrete values before execution. Validation notes describe how to confirm the input is well-formed before the prompt runs.

PlaceholderPurposeExampleValidation Notes

[DECISION_TITLE]

The exact title of the ADR this consequences section belongs to

ADR-004: Adopt PostgreSQL for Event Sourcing

Must match an existing ADR title in the repository. Non-empty string check. Cross-reference against ADR index.

[DECISION_SUMMARY]

A 2-4 sentence summary of the decision being documented

We will use PostgreSQL as the primary event store, replacing the existing MongoDB implementation.

Length check: 2-4 sentences. Must include the action taken and the system affected. No implementation details at this level.

[AFFECTED_COMPONENTS]

List of system components, services, or modules impacted by this decision

event-writer service, read-model projection, audit-log consumer, billing-reconciliation job

Each component must be a real name from the system architecture. Null allowed if no components are affected. Parse as comma-separated list.

[STAKEHOLDERS]

Roles or teams that need to understand these consequences

Platform Engineering, Security, Developer Experience, SRE

Must contain at least one team or role identifier. Validate against known team list if available. Empty list triggers a warning.

[DECISION_SCOPE]

Boundary of what the decision covers and explicitly excludes

Covers all new event-sourced aggregates. Excludes legacy order-processing pipeline.

Must include both inclusions and exclusions. Parse for 'covers' and 'excludes' keywords. Missing exclusions triggers a completeness warning.

[TIMEFRAME]

Expected duration for these consequences to remain relevant

Next 18 months, until event-store abstraction layer is complete

Must specify a duration or milestone condition. Accepts relative time, calendar dates, or version-linked conditions. Null not allowed.

[KNOWN_CONSTRAINTS]

Existing constraints that limit how consequences can be mitigated

Team has no PostgreSQL DBA; max 50ms p99 write latency budget; SOC2 compliance required

Each constraint must be a verifiable statement. Parse for at least one constraint. Empty list triggers a retry prompt asking for explicit constraints.

PROMPT PLAYBOOK

Implementation Harness Notes

How to wire the Consequences Documentation Prompt into an ADR pipeline with validation, retries, and human review.

The Consequences Documentation Prompt is designed to be called after the core decision, context, and alternatives sections of an ADR are already drafted. In a typical implementation, the application layer assembles the decision record, extracts the decision scope and considered alternatives, and passes them as structured inputs to the prompt. The model then produces a consequences section that covers positive outcomes, negative trade-offs, mitigation strategies, and affected components. Because this output becomes part of a permanent architecture record, the harness must enforce completeness, consistency, and traceability before the ADR is accepted.

Wire the prompt into a documentation pipeline that first validates the input: confirm that [DECISION_SUMMARY], [ALTERNATIVES_CONSIDERED], and [AFFECTED_COMPONENTS] are non-empty and contain enough detail to ground the consequences analysis. After the model returns the consequences text, run a completeness validator that checks for required subsections (positive outcomes, negative trade-offs, mitigation strategies, affected components) and flags any missing sections. Follow this with a scope alignment check that compares the consequences against the original decision scope—if the model introduces consequences for components not listed in [AFFECTED_COMPONENTS], flag them for architect review. For high-risk or regulated domains, route the output to a human approval queue before the ADR is merged. Log the prompt version, model, input hashes, and validator results for auditability.

Model choice matters here. Use a model with strong reasoning and structured output capabilities (such as Claude 3.5 Sonnet or GPT-4o) and set a low temperature (0.0–0.2) to maximize consistency across ADR runs. If the validator rejects the output, implement a single retry with the validation errors appended as [CONSTRAINTS] feedback—do not loop indefinitely. For teams maintaining large ADR repositories, consider storing the consequences output alongside the decision record with a consequences_generated_by metadata field that includes the model version and prompt hash. Avoid using this prompt for decisions that are still in active debate; the input must represent a settled decision with clear scope, or the consequences analysis will be speculative and unreliable.

IMPLEMENTATION TABLE

Expected Output Contract

Defines the fields, types, and validation rules for the consequences section of an Architecture Decision Record. Use this contract to parse, validate, and store the model output before accepting it into the ADR repository.

Field or ElementType or FormatRequiredValidation Rule

positive_consequences

Array of strings

Array must contain at least 1 item. Each string must be non-empty and describe a beneficial outcome linked to the decision.

negative_tradeoffs

Array of strings

Array must contain at least 1 item. Each string must be non-empty and describe a cost, risk, or downside. Cannot be empty if positive_consequences is populated.

mitigation_strategies

Array of objects

Each object must have 'risk' (string) and 'mitigation' (string) keys. Every entry in negative_tradeoffs must have a corresponding mitigation object. Null allowed only if negative_tradeoffs is empty.

affected_components

Array of strings

Must list at least one system component, service, or module. Each entry must match a known component from the [SYSTEM_BOUNDARY_CONTEXT] or be flagged for manual review.

completeness_score

Number (0-1)

Must be a float between 0.0 and 1.0. Represents the model's self-assessment of coverage against the [DECISION_SCOPE]. Fail if below 0.8 and route to human review.

unaddressed_concerns

Array of strings

If present, each string must describe a risk or impact not covered by the mitigation strategies. If empty array, field must still be present. Null not allowed.

confidence_assessment

String (enum)

Must be one of: 'high', 'medium', 'low'. If 'low', the entire output block must be routed for human approval regardless of other validation results.

source_references

Array of strings

If present, each entry must be a valid ADR ID or document reference from the [ADR_REPOSITORY]. Used to ground consequence claims in prior decisions. Empty array is acceptable.

PRACTICAL GUARDRAILS

Common Failure Modes

Consequences documentation fails when the model treats trade-offs as afterthoughts, misses second-order effects, or produces generic risks that don't match the actual decision. These cards cover the most frequent failure patterns and how to prevent them before the ADR reaches review.

01

Generic Consequences Without Specificity

What to watch: The model produces vague consequences like 'may impact performance' or 'could increase complexity' without connecting them to the specific decision, affected components, or measurable thresholds. Guardrail: Require the prompt to map each consequence to a named component, a concrete metric or observable behavior, and a severity estimate. Validate output by checking that every consequence references at least one specific system element from the decision context.

02

Missing Negative Trade-Offs

What to watch: The model over-emphasizes positive outcomes and skips or minimizes negative consequences, especially when the decision rationale was framed positively in the input. This creates an unbalanced ADR that future maintainers cannot trust. Guardrail: Add an explicit instruction to produce at least as many negative consequences as positive ones. Use a post-generation check that counts consequence categories and flags outputs where negative trade-offs are absent or outnumbered more than 2:1.

03

Second-Order Effects Omitted

What to watch: The model captures immediate consequences but misses ripple effects such as increased operational toil, downstream integration breakage, monitoring blind spots, or team cognitive load shifts. Guardrail: Prompt the model to trace each consequence through at least one dependency hop. Include a completeness check that verifies every external interface, data store, and dependent service from the system boundary definition appears in the consequences analysis.

04

Mitigation Strategies That Restate the Problem

What to watch: The model generates mitigations like 'monitor for issues' or 'document the trade-off' without actionable steps, owners, or success criteria. These placeholder mitigations create false confidence. Guardrail: Require each mitigation to include a concrete action, a responsible role or team, and a verification method. Add a validator that rejects mitigation text shorter than one sentence or matching generic patterns such as 'monitor closely' or 'review periodically.'

05

Consequences Drift from Original Decision Scope

What to watch: The model introduces consequences for scenarios that were explicitly out of scope or already addressed by a different ADR, bloating the document and confusing future readers about what this decision actually affects. Guardrail: Include the decision scope and explicit non-goals in the prompt context. Add an eval step that checks whether any listed consequence touches a system or concern marked as out of scope, and flag those for removal or explicit scoping clarification.

06

Unsupported Certainty Language

What to watch: The model uses definitive language such as 'will cause,' 'guarantees,' or 'eliminates' for consequences that are probabilistic, context-dependent, or unverified. This misleads reviewers about risk certainty. Guardrail: Instruct the model to use calibrated language such as 'may,' 'likely,' 'in scenarios where,' or 'under load conditions of X.' Add a post-generation scan for absolute certainty terms and flag them for human review unless accompanied by evidence or a measurable condition.

IMPLEMENTATION TABLE

Evaluation Rubric

Use this rubric to test whether the generated consequences section is complete, honest, and actionable before merging the ADR. Run each criterion against the output and flag failures for revision.

CriterionPass StandardFailure SignalTest Method

Positive Outcome Coverage

At least one positive consequence is documented per [DECISION_SCOPE] area

Output contains zero positive consequences or only generic statements like 'improved performance' without specifics

Count positive consequence bullets; verify each maps to a scope element from the input

Negative Trade-off Acknowledgment

At least one negative consequence or trade-off is explicitly stated for each major decision point

Output claims no downsides exist or uses hedging language like 'may have minor impacts' without specifics

Search for negative framing keywords; flag if none found or if all negatives are attributed to external factors

Affected Component Identification

Every system component, service, or team mentioned in [AFFECTED_SYSTEMS] appears in the consequences

A listed affected system has no corresponding consequence entry or is only mentioned in passing

Cross-reference [AFFECTED_SYSTEMS] list against output; flag any missing entries

Mitigation Completeness

Each negative consequence has at least one concrete mitigation strategy with an owner or timeline

Negative consequences are listed without any mitigation or with vague mitigations like 'monitor closely'

For each negative consequence, verify a mitigation bullet exists; check for owner or date qualifier

Second-Order Effect Detection

Output identifies at least one downstream or cascading consequence beyond immediate impacts

All consequences are first-order only with no mention of future state, compounding effects, or dependency chain impacts

Search for temporal language or dependency references; flag if none found

Scope Alignment

Consequences address every element in [DECISION_SCOPE] without introducing unrelated impacts

Output discusses consequences for systems or concerns not in scope, or omits a declared scope area entirely

Map each consequence to a scope element; flag unmatched scope items and out-of-scope additions

Actionability Check

Each consequence is stated with enough specificity that a future reader can act on it or verify it

Consequences use vague qualifiers like 'significant', 'some', or 'various' without measurable thresholds

Scan for unqualified adjectives; flag any consequence that cannot be converted into a concrete task or metric

Risk Acceptance Documentation

Any accepted risk is explicitly labeled as accepted with rationale for why mitigation is deferred

Risks are listed as negative consequences without indicating whether they are accepted, mitigated, or transferred

Search for acceptance language; flag negative consequences that lack a disposition statement

ADAPTATION OPTIONS

Adapt This Prompt

How to adapt

Use the base prompt with a lightweight markdown template. Remove strict schema enforcement and let the model produce freeform consequences text. Focus on speed over completeness.

Prompt modification

  • Remove [OUTPUT_SCHEMA] and replace with: List the consequences in bullet points under Positive, Negative, and Mitigations.
  • Drop the completeness checklist from the prompt.
  • Add: If you are uncertain about a consequence, mark it with [NEEDS VERIFICATION].

Watch for

  • Missing affected components list
  • Consequences stated without linking back to the original decision scope
  • Overly optimistic framing that skips negative trade-offs
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.