Inferensys

Prompt

ADR Assumption Documentation Prompt

A practical prompt playbook for using ADR Assumption Documentation Prompt in production AI workflows.
Operations team reviewing AI workflow automation on laptop, workflow builder visible, casual office setup.
PROMPT PLAYBOOK

When to Use This Prompt

Identify when the ADR Assumption Documentation Prompt adds value, who should use it, and when it's the wrong tool.

Use this prompt when a team is finalizing an Architecture Decision Record (ADR) and needs to surface implicit assumptions before the decision is approved and implemented. The primary job-to-be-done is risk reduction: unstated assumptions are a leading cause of architectural regret because they turn into broken contracts, unexpected constraints, and costly reversals when proven false. The ideal user is an engineering lead, architect, or technical decision maker who has a draft ADR with a clear decision, options, and trade-offs, but recognizes that the team's shared context may contain blind spots. The prompt requires a draft ADR as input, along with any relevant system context, constraints, and stakeholder notes.

This prompt is not a substitute for the ADR itself. Do not use it to generate the decision, options, or rationale from scratch—use the ADR Generation Prompt Template for that. It is also not a general risk assessment tool; if you need a full risk register with likelihood and impact scoring, use the ADR Risk Assessment Prompt instead. Avoid this prompt when the decision is trivial, the system context is fully known and static, or the team has no authority to validate the surfaced assumptions. The output is an assumption log, not a decision document, and it requires follow-up: each assumption must be assigned an owner, a validation method, and an expiration condition before the ADR is accepted.

After running this prompt, review the assumption log with the full team. Flag any assumption that would invalidate the decision if proven false. Assign owners and deadlines for validation. If the log surfaces assumptions that require changes to the decision, options, or constraints, return to the ADR draft and revise before proceeding. The goal is not to document assumptions for documentation's sake—it is to prevent decisions from being built on foundations that haven't been checked.

PRACTICAL GUARDRAILS

Use Case Fit

Where the ADR Assumption Documentation Prompt works, where it fails, and the operational conditions required before you rely on it in a decision workflow.

01

Good Fit: Pre-Decision Clarity

Use when: a decision is still under active debate and the team needs to surface hidden beliefs before committing. The prompt excels at extracting implicit assumptions from design docs, meeting notes, and draft ADRs. Guardrail: run the prompt before the options-enumeration phase, not after the decision is already emotionally locked in.

02

Bad Fit: Post-Hoc Rationalization

Avoid when: the decision is already implemented and the team needs justification documentation. The prompt will generate plausible-sounding assumptions that match the chosen path, reinforcing confirmation bias rather than exposing real uncertainty. Guardrail: if the ADR status is already 'Accepted' or 'Implemented,' use the ADR Review Prompt instead.

03

Required Inputs

What you must provide: a draft problem statement, known constraints, stakeholder list, and any existing design artifacts. The prompt cannot invent domain-specific assumptions from thin air. Guardrail: if you cannot articulate at least three known constraints, the prompt will produce generic assumptions that add noise rather than clarity.

04

Operational Risk: False Confidence

What to watch: the prompt can produce well-structured assumption logs that look authoritative even when the underlying assumptions are unvalidated. Teams may treat the output as a checklist to tick rather than a set of hypotheses to test. Guardrail: every assumption must have an explicit owner and validation deadline before the ADR can move to 'Accepted.'

05

Operational Risk: Hidden Assumption Blindness

What to watch: the prompt identifies assumptions visible in the provided context but cannot surface assumptions the team doesn't know they're making—cultural defaults, architectural dogma, or 'that's how we've always done it' beliefs. Guardrail: pair the prompt output with a structured challenge session where an external reviewer or adversarial prompt probes for missing categories.

06

Integration Point: Decision Gate

What to watch: the assumption log is useful only if it feeds into a decision gate. Without enforcement, teams will generate assumptions and then ignore them. Guardrail: wire the output into your ADR approval workflow. Block 'Accepted' status until every high-severity assumption has a validated owner and expiration condition recorded in the decision record.

PROMPT PLAYBOOK

Copy-Ready Prompt Template

A reusable prompt template for extracting and documenting the assumptions embedded in an architecture decision before it is finalized.

This template is designed to be dropped into a prompt harness or used directly in a model playground. It forces the model to surface implicit assumptions—the unstated beliefs that, if proven false, would invalidate the decision. The output is a structured assumption log with validation criteria, owners, and expiration conditions. Adapt the placeholders to match your ADR format, risk tolerance, and review workflow.

text
You are an architecture reviewer specialized in identifying hidden assumptions in technical decisions. Your task is to extract, document, and assess every assumption embedded in the provided architecture decision record (ADR) draft.

## INPUT
[ADR_DRAFT]

## ADDITIONAL CONTEXT
[PROJECT_CONTEXT]
[STAKEHOLDER_LIST]
[CONSTRAINT_LIST]

## INSTRUCTIONS
1. Read the ADR draft and identify every assumption—explicit or implicit—that the decision depends on.
2. For each assumption, determine what would happen if it were false. If the decision would still stand, it is not a critical assumption.
3. Classify each assumption by type: Technical, Business, Organizational, Market, or Regulatory.
4. Assign a criticality rating: Critical (decision invalid if false), High (significant rework required), Medium (adjustment needed), Low (minor impact).
5. For Critical and High assumptions, propose a validation method and an owner.
6. Identify any missing assumptions—beliefs that should be stated but are absent from the draft.

## OUTPUT SCHEMA
Return a JSON object with the following structure:
{
  "decision_id": "string",
  "assumptions": [
    {
      "id": "ASM-001",
      "statement": "string (clear, falsifiable statement)",
      "type": "Technical | Business | Organizational | Market | Regulatory",
      "criticality": "Critical | High | Medium | Low",
      "source": "explicit | implicit | missing",
      "if_false_impact": "string (concrete consequence)",
      "validation_method": "string | null (required for Critical and High)",
      "owner": "string | null (role or name)",
      "expiration_condition": "string | null (event that would trigger re-validation)"
    }
  ],
  "missing_assumptions_summary": "string (summary of gaps found)",
  "overall_risk_assessment": "string (assessment of assumption health for this decision)"
}

## CONSTRAINTS
- Every assumption statement must be falsifiable. Avoid vague language like "the system will perform well."
- Do not invent assumptions that are not present or logically required by the ADR.
- If the ADR contains no assumptions, state that explicitly and explain why that is itself a risk.
- For regulated contexts, flag assumptions that touch compliance, data residency, or auditability.
- Limit the output to 20 assumptions maximum. Prioritize by criticality.

## RISK LEVEL
[RISK_LEVEL: low | medium | high]
- If RISK_LEVEL is high, require human review before the assumption log is accepted.
- If RISK_LEVEL is high, add a "reviewer_notes" field to each Critical assumption.

Adaptation guidance: Replace [ADR_DRAFT] with the full text of the decision record. Use [PROJECT_CONTEXT] to inject system diagrams, team structure, or business constraints that the ADR author assumed but did not state. [STAKEHOLDER_LIST] helps the model identify organizational assumptions about who owns what. [CONSTRAINT_LIST] provides explicit boundaries (budget, timeline, compliance) so the model can detect when the ADR silently violates a known constraint. The [RISK_LEVEL] placeholder controls whether the output includes reviewer notes and whether the harness should block automated acceptance. For CI/CD integration, parse the criticality field and fail the pipeline if any Critical assumption lacks a validation_method or owner.

IMPLEMENTATION TABLE

Prompt Variables

Required and optional inputs for the ADR Assumption Documentation Prompt. Each placeholder must be populated before the prompt is sent to the model. Missing or poorly validated inputs are the most common cause of incomplete assumption logs.

PlaceholderPurposeExampleValidation Notes

[DECISION_TITLE]

Identifies the architectural decision under review

Adopt PostgreSQL as primary OLTP store

Required. Must be a non-empty string under 200 characters. Reject if generic or missing context.

[DECISION_CONTEXT]

Provides the problem statement, constraints, and known facts driving the decision

We need a relational database for multi-region writes with sub-50ms p99 latency. Team has 3 years of PostgreSQL experience. Budget capped at $5k/month.

Required. Must be at least 100 characters. Validate that it contains constraints, not just a problem statement. Missing constraints produce weak assumption coverage.

[STAKEHOLDER_ROLES]

Lists the roles or personas whose assumptions need to be surfaced

Backend Lead, DBA, Security Engineer, Product Manager

Required. Must be a comma-separated list of at least 2 roles. Generic roles like 'team' or 'everyone' should be rejected. Each role should represent a distinct perspective.

[EXISTING_ARCHITECTURE_NOTES]

Optional field for existing documentation, diagrams, or prior ADRs that inform assumptions

Current system uses MySQL 8.0 with read replicas. See ADR-042 for prior database selection criteria.

Optional. If provided, must be under 5000 characters to avoid context dilution. Null allowed. If null, the model will flag missing context as a risk.

[ASSUMPTION_CATEGORIES]

Defines the categories of assumptions to surface, preventing blind spots

Performance, Security, Cost, Operability, Team Capability, Vendor Stability

Required. Must be a comma-separated list of at least 4 categories. Validate against a known taxonomy. Missing categories like 'Security' or 'Operability' should trigger a warning.

[EXPIRATION_CONDITIONS]

Specifies when assumptions should be revalidated or flagged as stale

Before production deployment, Quarterly review, On major version upgrade

Required. Must include at least one time-based or event-based trigger. Null or 'never' should be rejected. This prevents assumptions from becoming unexamined facts.

[OUTPUT_FORMAT]

Defines the schema for the assumption log output

JSON array with fields: assumption, category, owner, confidence, validation_method, expiration, risk_if_false

Required. Must be a valid schema description. Default to the recommended schema if not specified. Validate that the schema includes owner, confidence, and expiration fields.

[CONFIDENCE_THRESHOLD]

Sets the minimum confidence level for assumptions to be considered acceptable without further validation

0.7

Optional. Must be a float between 0.0 and 1.0. Defaults to 0.7 if not specified. Assumptions below this threshold should be flagged for immediate validation.

PROMPT PLAYBOOK

Implementation Harness Notes

How to wire the ADR Assumption Documentation Prompt into an application or review workflow.

This prompt is designed to be integrated into a structured Architecture Decision Record (ADR) workflow, not used as a one-off chat interaction. The primary integration point is immediately after a draft ADR is written and before it enters peer review. The harness should extract the draft ADR text, the original problem context (meeting notes, design docs, incident reports), and a list of known organizational constraints, then pass them as [DRAFT_ADR], [SOURCE_CONTEXT], and [ORGANIZATIONAL_CONSTRAINTS] respectively. The model's output—a structured assumption log—should be treated as a review artifact that is attached to the ADR, not as a replacement for human judgment. The assumption log becomes a living document that the team revisits when any listed assumption's expiration condition is triggered.

For application wiring, implement a validation layer that parses the model's JSON output and checks for required fields: assumption_id, statement, validation_criteria, owner, expiration_condition, and impact_if_false. If any assumption object is missing a required field, or if the impact_if_false field does not contain a severity classification (BLOCKING, HIGH, MEDIUM, LOW), trigger a retry with a more explicit error message appended to the [CONSTRAINTS] input. Log every assumption extraction run with the ADR version, the model used, the raw output, and the validation result. For high-risk domains such as security architecture or compliance-critical systems, route the assumption log to a human reviewer queue before it is accepted. The reviewer should confirm that no hidden assumptions were missed and that the severity classifications are accurate.

Model choice matters here. Use a model with strong reasoning capabilities (such as GPT-4o, Claude 3.5 Sonnet, or Gemini 1.5 Pro) because the task requires counterfactual thinking—identifying what is not stated but must be true. Smaller or faster models often miss implicit assumptions or produce shallow validation criteria. Do not use this prompt with a model that lacks structured output support; the assumption log must be machine-readable for downstream tooling. If your ADR workflow includes a CI/CD gate, integrate the assumption log's validation score as a quality check. For example, block ADR merge if any BLOCKING assumption lacks a named owner or if the total count of unowned assumptions exceeds a threshold. Finally, store the assumption log in a queryable format (such as a tagged field in your ADR repository) so that teams can search for all assumptions that will expire within a given timeframe or that depend on a specific external system.

IMPLEMENTATION TABLE

Expected Output Contract

Defines the structure, types, and validation rules for the assumption log generated by the ADR Assumption Documentation Prompt. Use this contract to parse, validate, and integrate the output into downstream systems or review workflows.

Field or ElementType or FormatRequiredValidation Rule

assumption_log

Array of Objects

Top-level key must be an array. Schema validation must pass. If empty, flag for human review as it indicates a potential failure to extract assumptions.

assumption_log[].id

String (kebab-case)

Must match pattern ^ASM-[0-9]{3}$. Must be unique within the array. Parse check for duplicates.

assumption_log[].statement

String

Must be a single, declarative sentence. Length must be between 20 and 500 characters. Cannot be a question or a conditional 'if-then' statement.

assumption_log[].category

Enum: [Technical, Business, User, Compliance, Dependency, Timeline]

Must be one of the specified enum values. Case-sensitive. Reject unknown categories.

assumption_log[].owner_role

String

Must identify a specific role (e.g., 'Staff Security Engineer'), not a generic title (e.g., 'Engineer') or a person's name. Null not allowed.

assumption_log[].validation_method

String

Must describe a concrete, verifiable action (e.g., 'Run load test', 'Review SOC 2 report'). Cannot be a vague statement like 'Ask the team'. Max 200 characters.

assumption_log[].expiration_condition

String

Must describe a specific, observable trigger (e.g., 'Before production release', 'When user count exceeds 10k'). Cannot be a date. Max 200 characters.

assumption_log[].risk_if_false

Enum: [Blocker, High, Medium, Low]

Must be one of the specified enum values. If 'Blocker', the statement field must be reviewed by a human before the ADR is accepted.

PRACTICAL GUARDRAILS

Common Failure Modes

What breaks first when documenting assumptions with an LLM and how to guard against it.

01

Hallucinated Constraints

What to watch: The model invents plausible but false technical constraints, system limits, or regulatory requirements that the team never stated. Guardrail: Require every assumption to be tagged with a source (e.g., [STATED], [INFERRED], [UNVERIFIED]) and flag all [INFERRED] and [UNVERIFIED] assumptions for mandatory human review before the ADR is accepted.

02

Assumption Over-Confidence

What to watch: The model presents assumptions as settled facts without uncertainty language, making weak assumptions appear as strong constraints. Guardrail: Add a confidence field (High/Medium/Low) to every assumption in the output schema. Reject or flag any assumption marked High confidence that lacks a linked source or explicit stakeholder confirmation.

03

Missing Negative Assumptions

What to watch: The model only documents what is assumed to be true, ignoring critical assumptions about what is not present (e.g., 'no rate limiting exists', 'no data retention policy applies'). Guardrail: Include a dedicated prompt instruction to enumerate 'Absence Assumptions'—things assumed not to exist or not to apply. Add a post-generation check that counts absence assumptions and warns if the count is zero for non-trivial decisions.

04

Stakeholder Blind Spots

What to watch: The model generates assumptions from a single perspective (e.g., backend engineering) and misses assumptions that security, compliance, or product teams would immediately flag. Guardrail: Append a stakeholder rotation instruction that asks the model to re-examine the decision from the perspective of Security, Compliance, Operations, and Product. Flag assumptions that would be contested by any of these roles.

05

Expiration and Staleness Neglect

What to watch: Assumptions are documented without expiration conditions, so they live forever in the ADR even after the underlying reality changes. Guardrail: Require every assumption to include an expiration_trigger field (e.g., 'Expires when: user count exceeds 10,000' or 'Review by: Q3 2025'). Add a validation rule that rejects assumptions with no expiration condition.

06

Implicit Scope Creep

What to watch: The model documents assumptions that are actually design decisions in disguise, blurring the line between 'what we believe to be true' and 'what we have chosen to do.' Guardrail: Add a classification step that labels each statement as Assumption or Decision. Flag any Assumption that contains action verbs like 'will use', 'shall implement', or 'must deploy' for reclassification as a decision.

IMPLEMENTATION TABLE

Evaluation Rubric

Use this rubric to test the quality of the ADR Assumption Documentation output before merging it into the decision record. Each criterion targets a specific failure mode common in assumption extraction.

CriterionPass StandardFailure SignalTest Method

Assumption Completeness

All implicit constraints from [CONTEXT] are surfaced as explicit assumptions

Assumptions list is empty or contains only obvious restatements of the decision

Compare output against a human-prepared list of 5+ known hidden assumptions from the same [CONTEXT]

Validation Criteria Specificity

Every assumption includes a falsifiable validation condition

Validation field contains vague phrases like 'check if true' or 'confirm with team' without a specific test

Parse each assumption's validation field; reject if no measurable condition or data source is named

Owner Assignment

Every assumption has a named role or individual owner

Owner field is null, 'TBD', or 'team' for more than one assumption

Schema check: owner field must be non-null and match a role from the provided [STAKEHOLDER_LIST]

Expiration Condition

Every assumption includes a deadline or trigger event for re-evaluation

Expiration field is null or set to 'never' without documented justification

Schema check: expiration field must contain a date, milestone, or event trigger

Hidden Assumption Detection

At least one assumption is flagged as 'previously unstated' with a confidence score below 0.8

All assumptions are marked as 'explicitly stated' with confidence 1.0

Count assumptions with confidence < 0.8; if zero, the prompt likely missed implicit constraints

Invalidation Impact

Each assumption describes what breaks if the assumption proves false

Impact field contains generic text like 'decision may need review' without specific consequences

Parse impact field; reject if it does not name at least one specific ADR section, option, or constraint that would be invalidated

Source Traceability

Every assumption cites the specific source passage or stakeholder statement it was derived from

Source field is null or contains only a document title without a section or quote reference

Schema check: source field must contain a non-null reference string; spot-check 3 assumptions against [CONTEXT] for hallucinated sources

Output Schema Compliance

Output is valid JSON matching the [OUTPUT_SCHEMA] with all required fields present

Output is missing required fields, contains extra untyped fields, or fails JSON parse

Automated schema validation against the provided JSON Schema; reject on any validation error

ADAPTATION OPTIONS

Adapt This Prompt

How to adapt

Use the base prompt with lighter validation. Focus on surfacing assumptions quickly rather than enforcing strict schema compliance. Accept free-text assumption lists and manually review them before feeding into the ADR.

  • Remove the [OUTPUT_SCHEMA] constraint and ask for a bulleted list of assumptions instead.
  • Drop the [EXPIRATION_CONDITIONS] field to reduce friction during early exploration.
  • Use a simpler instruction: "List every assumption this decision depends on. For each, note what would happen if it's wrong."

Watch for

  • Missing schema checks leading to inconsistent assumption formats across team members.
  • Overly broad instructions that produce vague assumptions like "the system will be reliable" without testable criteria.
  • Assumptions that are actually requirements or constraints masquerading as assumptions.
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.