Inferensys

Prompt

Config Decision Record Prompt

A practical prompt playbook for generating Architecture Decision Record (ADR)-style documentation for configuration parameter choices in production AI workflows.
Wide-angle shot of a modern WeWork open floor plan with creative walls covered in AI system architecture diagrams, product team collaborating in standing desk area with industrial lighting.
PROMPT PLAYBOOK

When to Use This Prompt

Understand the exact job this prompt performs, who should use it, and when to reach for a different tool.

Platform architects and DevOps engineers use this prompt to document why specific default values, constraints, or design choices were made for configuration parameters. The prompt produces ADR-style entries with context, alternatives considered, decision rationale, and consequences. Use this when you need to capture the reasoning behind a config decision for future maintainers, compliance auditors, or onboarding engineers. The output is a structured decision record that explains not just what the parameter is, but why it exists in its current form—critical context that source code comments and schema definitions rarely capture.

This prompt assumes you already know the parameter and its chosen value, and you need to document the why. You must supply the parameter name, its current value, the system context where it operates, and any alternatives that were evaluated. The prompt works best when you have a specific decision in mind—such as choosing a 30-second timeout over 10 seconds, or selecting AES-256-GCM over AES-128-CBC—and need to produce a durable record of that reasoning. Do not use this prompt for generating the config schema itself, extracting environment variables from code, or writing migration guides. Those tasks require different prompts in this pillar, such as the Config Schema to Markdown Table prompt or the Config Migration Guide Generator.

Before using this prompt, gather the decision context: what problem the parameter solves, which alternatives were seriously considered, what constraints influenced the choice (performance, security, cost, compatibility), and what consequences the decision creates for operators and downstream systems. The prompt will structure this into a consistent ADR format, but it cannot invent the reasoning—it can only organize and articulate what you provide. For high-risk configuration decisions affecting security posture, data durability, or compliance controls, always have a senior engineer review the generated decision record before it enters your documentation repository. The record becomes institutional memory that future incident responders and auditors will rely on.

PRACTICAL GUARDRAILS

Use Case Fit

Where the Config Decision Record prompt delivers reliable architecture documentation and where you should reach for a different tool or add human review.

01

Good Fit: Documenting Design Rationale

Use when: you need to capture why a specific default value, constraint, or config design choice was made. Guardrail: provide the full context—alternatives considered, team constraints, and downstream consequences—so the prompt produces a complete ADR rather than a shallow justification.

02

Bad Fit: Discovering Config Values

Avoid when: the task is to extract or inventory existing configuration parameters from source code. Guardrail: use the Config Schema to Markdown Table or Environment Variable Extraction prompts instead. This prompt assumes the config value is already known and focuses on the decision behind it.

03

Required Input: Alternatives and Trade-offs

Risk: without explicit alternatives considered, the prompt produces a one-sided rationale that skips trade-off analysis. Guardrail: always supply at least two alternatives that were evaluated, even if one is 'do nothing' or 'defer decision.' The eval harness should check for an alternatives section in the output.

04

Operational Risk: Stale Decisions

Risk: config decisions documented once and never revisited become misleading as systems evolve. Guardrail: include a review date or trigger condition in the ADR template. Pair with a periodic audit prompt that flags decisions older than a threshold or tied to deprecated parameters.

05

Operational Risk: Missing Consequences

Risk: the prompt may produce a decision record that lists what was chosen but omits the negative consequences and accepted trade-offs. Guardrail: add a dedicated consequences field to the output schema and require at least one negative or accepted-risk consequence. The eval should fail the output if this field is empty or overly optimistic.

06

When to Escalate: Cross-Team Decisions

Risk: a config decision that affects multiple teams or services requires broader input than a single prompt session can capture. Guardrail: flag decisions with cross-service impact for human review. Use the prompt to draft the ADR, then route through an approval workflow before the decision is considered final.

PROMPT PLAYBOOK

Copy-Ready Prompt Template

A copy-ready prompt template for generating Architecture Decision Record-style config decision records with structured trade-off analysis.

This prompt template produces a structured Config Decision Record (CDR) that documents why a specific default value, constraint, or design choice was made for a configuration parameter. It follows an ADR-inspired format that captures context, alternatives considered, decision rationale, and consequences. Use this when platform architects, SRE leads, or senior engineers need to create a durable record of config decisions that future maintainers can search and understand.

text
You are a platform architect documenting configuration design decisions for future maintainers. Generate a Config Decision Record (CDR) for the following configuration parameter decision.

## Input
- **Parameter Name:** [PARAMETER_NAME]
- **Configuration Domain:** [CONFIG_DOMAIN]
- **Decision Context:** [DECISION_CONTEXT]
- **System Context:** [SYSTEM_CONTEXT]
- **Constraints:** [CONSTRAINTS]
- **Stakeholders:** [STAKEHOLDERS]
- **Decision Date:** [DECISION_DATE]

## Output Schema
Produce a Config Decision Record with these sections:

### Title
A concise title summarizing the decision.

### Status
One of: Proposed, Accepted, Deprecated, Superseded.

### Context
Describe the forces at play: technical constraints, operational requirements, security posture, cost sensitivity, team capabilities, and any regulatory or compliance factors that shaped this decision.

### Decision
State the exact configuration parameter, its chosen default value or constraint, and the scope where it applies (environment, service, module). Include the parameter type, valid range, and whether it is required or optional.

### Alternatives Considered
For each alternative, provide:
- **Alternative:** What was considered.
- **Pros:** Why it was attractive.
- **Cons:** Why it was rejected.
- **Rejection Reason:** The decisive factor.

Include at least two alternatives. If no alternatives were seriously considered, explain why the chosen value was the only viable option.

### Consequences
Describe what becomes easier, harder, or different because of this decision. Cover:
- Positive consequences (what improves).
- Negative consequences (trade-offs, limitations, new risks).
- Mitigations for negative consequences.
- Migration or rollout implications if this changes an existing default.

### Related Decisions
List related CDRs, ADRs, or design documents by title and link if available. Note dependencies or conflicts.

### Validation
How to verify the decision is working as intended in production. Include specific metrics, alerts, or checks.

## Constraints
- Use precise technical language. Avoid vague qualifiers like "good enough" or "reasonable."
- Quantify trade-offs where possible (e.g., "increases p99 latency by 15ms, reduces memory by 200MB").
- Flag any assumptions that, if invalidated, would require revisiting this decision.
- If the decision has security, compliance, or cost implications, call them out explicitly.
- Do not invent facts. If context is missing, note what information would be needed to strengthen the record.

## Examples
[EXAMPLES]

## Risk Level
[RISK_LEVEL]

Adaptation guidance: Replace each square-bracket placeholder with real values before execution. The [EXAMPLES] placeholder should contain one or two well-formed CDR examples that demonstrate the expected depth and tone. The [RISK_LEVEL] placeholder accepts values like low, medium, high, or critical and should influence how thoroughly the model explores alternatives and consequences. For high-risk or critical decisions, add a human review step after generation: have a second engineer verify that all viable alternatives were considered and that consequences are not understated. Wire this prompt into a documentation pipeline that stores CDRs alongside the config schema or in a dedicated decision log repository with version control.

IMPLEMENTATION TABLE

Prompt Variables

Each placeholder required by the Config Decision Record prompt, its purpose, an example value, and actionable validation notes for wiring into an application harness.

PlaceholderPurposeExampleValidation Notes

[CONFIG_PARAMETER]

The specific configuration key or parameter name being decided

cache.ttl_seconds

Non-empty string; must match a real config key in the target schema; null not allowed

[DECISION_DATE]

ISO-8601 date when the decision was made or recorded

2025-03-15

Must parse as valid ISO-8601 date; not in the future; required for audit trail

[CONTEXT]

Background information, constraints, and the problem that motivated this config decision

Service latency increased 40% under peak load with current 300s cache TTL

Non-empty string; minimum 50 characters; should reference observable conditions or requirements

[ALTERNATIVES_CONSIDERED]

List of alternative values or approaches that were evaluated before the decision

["60s TTL", "900s TTL", "No cache"]

Must be a JSON array of strings; at least 2 alternatives required; each alternative must be a plausible config value

[DECISION]

The chosen configuration value and its justification

Set cache.ttl_seconds to 120s to balance freshness and load reduction

Non-empty string; must include both the value and the rationale; value must be within valid range for the parameter

[TRADE_OFFS]

Explicit trade-offs accepted with this decision, including risks and downsides

Accept 2-minute stale data window in exchange for 60% load reduction on origin

Non-empty string; must describe at least one concrete downside or risk; cannot be 'none' or 'no trade-offs'

[CONSEQUENCES]

Expected operational, performance, cost, or maintenance consequences of the decision

Cache hit ratio expected to increase from 70% to 92%; memory usage increases by 15%

Non-empty string; must include measurable or observable outcomes; avoid vague language like 'better performance'

[REVIEWERS]

List of individuals or roles who approved or should review this decision record

["platform-team", "sre-oncall"]

Must be a JSON array of strings; at least one reviewer required; each entry should map to a real team or role identifier

PROMPT PLAYBOOK

Implementation Harness Notes

How to wire the Config Decision Record prompt into an application or documentation workflow.

The Config Decision Record prompt is designed to be integrated into a platform engineering workflow where configuration changes are reviewed before merging. The primary integration point is a pull request check or a pre-commit hook that triggers when files in a config schema directory (e.g., config/schema/, infra/terraform/vars/) are modified. The application harness should extract the diff of the configuration change, the existing ADR directory for context, and the proposed new default or constraint, then assemble the prompt with these inputs. This is not a real-time user-facing prompt; it is a batch documentation generation step that runs in CI/CD pipelines or internal developer platforms like Backstage.

The harness must enforce a strict validation contract on the model's output. The expected output is a Markdown ADR document with specific sections: Title, Status, Context, Decision, Alternatives Considered, Consequences. Use a schema validator (e.g., a JSON schema that checks for the presence of all required headings) before writing the ADR file. If validation fails, implement a single retry with the error message injected into the [CONSTRAINTS] field, instructing the model to repair the missing section. After two failures, the check should fail with a clear log message and block the PR merge. For model choice, a capable mid-tier model like claude-3.5-sonnet or gpt-4o is appropriate; this task requires structured reasoning and trade-off analysis, not just text generation. Do not use a lightweight model for this prompt, as it will likely omit the 'Alternatives Considered' section or produce shallow trade-off analysis.

Logging and observability are critical for auditability. Every generated ADR should be logged with the commit SHA, the config parameter name, the model version used, and the validation status. Store these logs in a structured format (JSON) alongside the generated ADR in a dedicated directory (e.g., docs/adr/config/). This creates an audit trail that links every configuration decision back to the code change and the AI-assisted rationale. For high-risk configuration changes—such as those affecting security defaults, data retention, or authentication behavior—the harness should add a [REQUIRES_HUMAN_REVIEW] label to the generated ADR and automatically assign a review task to the platform architecture team. The prompt's [RISK_LEVEL] placeholder should be populated by a pre-classification step that scans the changed parameter name against a risk registry before the prompt is assembled.

IMPLEMENTATION TABLE

Expected Output Contract

The fields, format, and validation rules the generated Config Decision Record must satisfy before it is accepted into the ADR repository.

Field or ElementType or FormatRequiredValidation Rule

title

string

Must match pattern 'ADR-[0-9]{4}: .+'. Must be unique within the target ADR index.

status

enum

Must be one of: proposed, accepted, deprecated, superseded. Default is proposed.

date

ISO 8601 date string

Must parse as a valid date. Must not be in the future for accepted records.

context

string

Must contain at least 3 sentences describing the problem, constraints, and stakeholders. Must reference at least one specific config parameter by name.

decision

string

Must state the chosen action explicitly. Must include the exact default value, constraint, or design choice being documented.

alternatives_considered

array of objects

Must contain at least 2 alternatives. Each object must have 'option' (string) and 'why_not' (string) fields. No alternative may be empty.

consequences

string

Must list at least 2 positive and 1 negative consequence. Each consequence must be a complete sentence.

supersedes

string or null

If not null, must reference a valid existing ADR ID. Null allowed for new decisions.

PRACTICAL GUARDRAILS

Common Failure Modes

Config Decision Records fail in predictable ways. Here's what breaks first and how to guard against it.

01

Missing Alternatives Analysis

What to watch: The prompt produces a decision with a single rationale but skips the required alternatives-considered section. The output reads like a justification, not a trade-off analysis. Guardrail: Add a dedicated [ALTERNATIVES] section in the output schema and use an eval check that counts distinct alternatives. If fewer than two alternatives appear, flag for human review before accepting the record.

02

Consequence Blindness

What to watch: The model describes the decision and rationale but omits downstream consequences—breaking changes, migration burden, monitoring gaps, or team impact. The record looks complete but is operationally hollow. Guardrail: Require a structured [CONSEQUENCES] block with subfields for positive, negative, and neutral outcomes. Add a validator that rejects records where the negative consequences field is empty or contains only trivial entries.

03

Default Value Drift

What to watch: The prompt references a default value from source code or schema, but that default has changed since the record was drafted. The ADR becomes a source of misinformation. Guardrail: Never hardcode defaults in the prompt. Pass them as a [CURRENT_DEFAULTS] input variable sourced from the live config schema at generation time. Add a freshness check that compares the record's timestamp against the schema's last-modified date.

04

Context Window Truncation

What to watch: When multiple config parameters or prior ADRs are passed as context, the model loses earlier context and produces a decision that contradicts an existing constraint or duplicates a prior decision. Guardrail: Limit the [CONTEXT] input to the specific parameter under review plus a concise summary of related prior decisions. Use a deduplication check that searches existing ADRs for similar parameter names before accepting a new record.

05

Stakeholder Omission

What to watch: The record documents a technical decision but fails to note which team or role owns the parameter, who approved the change, or who is affected. The ADR is orphaned. Guardrail: Include mandatory [OWNER] and [STAKEHOLDERS] fields in the output schema. Add a validation rule that rejects records where the owner field is empty or contains only a generic placeholder like 'TBD'.

06

Overconfident Rationale Language

What to watch: The model uses absolute language ('must', 'always', 'never') in the rationale section, masking uncertainty about edge cases or future requirements. The record reads as settled truth rather than a reasoned choice under constraints. Guardrail: Add a [CONSTRAINTS] instruction that requires hedging language for untested assumptions. Use a post-generation scan for absolute terms and flag records where the rationale contains more than two unqualified absolutes for human softening.

IMPLEMENTATION TABLE

Evaluation Rubric

Score each ADR draft against these criteria before merging into documentation. Run the rubric as an automated eval step in your CI pipeline or as a manual review checklist.

CriterionPass StandardFailure SignalTest Method

Context Completeness

All required context fields are populated: date, status, config parameter name, stakeholders, and linked issues

Missing or 'TODO' in any required context field

Schema validation against ADR frontmatter template; parse check for placeholder strings

Decision Rationale Clarity

The 'Decision' section states exactly what was chosen and why in 1-3 sentences without hedging

Decision section is empty, exceeds 5 sentences, or uses phrases like 'might consider' or 'possibly'

LLM-as-judge with pass/fail rubric; regex check for hedge phrases

Alternatives Considered

At least 2 alternatives are named with a concrete trade-off for each (performance, cost, complexity, or compatibility)

Fewer than 2 alternatives listed or alternatives lack a stated trade-off

Count check for alternative count; keyword presence check for trade-off dimensions

Consequences Documented

Positive and negative consequences are listed separately with at least 1 item in each category

Only positive or only negative consequences documented; consequences are vague

Structure check for separate positive/negative sections; minimum item count per section

Config Parameter Specificity

The exact config key, default value, valid range, and override method are stated

Generic parameter reference without exact key path or missing default value

Regex match for config key pattern; schema check for default value and range fields

Source Grounding

Every factual claim about system behavior or constraints links to a source file, issue, or prior ADR

Unsupported claims about performance, limits, or dependencies without a citation

Citation link presence check; LLM judge flags unsupported factual assertions

Migration Impact Assessment

Breaking change status is explicit; migration steps or 'no migration required' is stated

Breaking change status is missing or ambiguous; migration steps absent for breaking changes

Boolean field check for breaking flag; conditional check for migration steps when breaking is true

Reviewer Approval Gate

At least one designated reviewer is assigned and approval status is tracked

No reviewer assigned or approval field is empty

Non-empty string check for reviewer field; status enum validation

ADAPTATION OPTIONS

Adapt This Prompt

How to adapt

Use the base prompt with a single [CONFIG_PARAMETER] and [CONTEXT] block. Skip strict schema validation and accept free-text rationale. Focus on getting one clean ADR entry per config decision.

Prompt modification

Remove the [OUTPUT_SCHEMA] constraint and replace it with: Write a structured decision record with Context, Decision, Alternatives Considered, and Consequences sections.

Watch for

  • Missing alternatives section when the model defaults to only one option
  • Overly confident language without trade-off discussion
  • Skipping the consequences section entirely
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.