This prompt is for architects and technical leads who are facing a significant design decision and need to generate a comprehensive, unbiased catalog of possible paths forward before any evaluation begins. The core job-to-be-done is preventing premature convergence—the common failure mode where a team anchors on the first or most obvious solution without considering alternatives that might be cheaper, simpler, or more aligned with long-term goals. The ideal user has a well-defined problem statement, a set of known constraints (e.g., latency budget, team skills, compliance requirements), and a need for structured, traceable decision documentation that will feed into a formal Architecture Decision Record (ADR).
Prompt
Decision Options Enumeration Prompt

When to Use This Prompt
Define the job, reader, and constraints for the Decision Options Enumeration Prompt.
Use this prompt when the decision space is complex enough that a single person cannot easily enumerate all options from memory, or when team dynamics risk advocacy-driven selection before alternatives are surfaced. It is particularly valuable for build-vs-buy decisions, technology selection, service decomposition boundaries, and data architecture choices. The prompt requires a clear [PROBLEM_STATEMENT] and [CONSTRAINTS] block as input. Without these, the model will generate generic options that lack practical relevance. You should also provide a [CONTEXT] block with relevant system details, existing architecture, and stakeholder concerns to ground the enumeration in reality. The output is a structured catalog of options, each with a brief description, that can be directly fed into a trade-off analysis or ADR generation workflow.
Do not use this prompt when the decision is trivial, already made, or when you are deep into implementation and need a quick tactical fix rather than a strategic options review. It is also the wrong tool when you lack a clear problem statement—garbage in, garbage out applies here with force. If you skip directly to evaluation without first enumerating options, you risk missing the status-quo option (do nothing), the partial-adoption option, or novel combinations that don't fit neatly into existing categories. After generating the options catalog, the next step is typically to feed the output into an ADR Comparison Prompt for trade-off analysis or to use the catalog as the "Options Considered" section of a full ADR. Always review the generated options for coverage gaps—the model may miss domain-specific alternatives that require your team's specialized knowledge.
Use Case Fit
Where the Decision Options Enumeration Prompt works and where it does not. Use these cards to decide if this prompt fits your architecture workflow before you invest in wiring it into a harness.
Good Fit: Early-Stage Architecture Exploration
Use when: You are in the divergent thinking phase of an architecture decision and need to generate a broad set of options before narrowing. The problem is defined but the solution space is unexplored. Guardrail: Pair this prompt with a subsequent ADR Comparison Prompt to evaluate the enumerated options against weighted criteria. Enumeration alone does not make the decision.
Bad Fit: Single Correct Answer Problems
Avoid when: The architecture decision has only one viable option due to hard constraints, regulatory mandates, or existing platform standards. Generating a list of alternatives when none exist wastes review cycles and creates false equivalence. Guardrail: Run a constraint extraction prompt first. If constraints force a single path, skip enumeration and proceed directly to ADR generation with documented rationale for the absence of alternatives.
Required Inputs: Problem Context and Constraints
Risk: Without a clear problem statement and explicit constraints, the model generates generic options that fail to address the actual architectural context. Guardrail: Provide a structured context block including system boundaries, non-functional requirements, existing technology stack, team capabilities, and any regulatory or organizational constraints. Vague inputs produce vague options.
Operational Risk: Premature Convergence
Risk: Teams may anchor on the first few plausible options and skip thorough evaluation of less obvious alternatives. This defeats the purpose of enumeration and leads to decision-by-familiarity. Guardrail: Require a coverage check that explicitly lists the status-quo option, the do-nothing option, and at least one non-obvious alternative. Review the list for missing categories before proceeding to evaluation.
Operational Risk: Analysis Paralysis
Risk: Generating too many options without a clear narrowing strategy can stall decision-making. Teams spend cycles debating options that are clearly non-viable under known constraints. Guardrail: Set a target of 4-7 distinct options. After enumeration, apply a quick-pass filter using hard constraints to eliminate non-starters before detailed trade-off analysis begins.
Harness Integration: Schema Validation Required
Risk: The model may produce options with inconsistent structure, missing descriptions, or overlapping scope, making downstream comparison unreliable. Guardrail: Define an output schema with required fields for each option: name, description, key assumptions, and distinguishing characteristics. Validate structural completeness before passing options to the next stage in the decision pipeline.
Copy-Ready Prompt Template
A reusable prompt for generating a comprehensive catalog of architectural options before narrowing, with coverage checks to prevent premature convergence.
The prompt below is designed to be dropped into your AI harness with minimal adaptation. It forces the model to enumerate options across multiple categories—including the status quo, non-obvious alternatives, and composite approaches—before any evaluation begins. This prevents the common failure mode where a team converges on the first plausible solution without considering the full solution space.
textYou are an experienced software architect helping a team enumerate architectural options before making a decision. ## CONTEXT [CONTEXT] ## PROBLEM STATEMENT [PROBLEM_STATEMENT] ## CONSTRAINTS [CONSTRAINTS] ## INSTRUCTIONS Generate a comprehensive catalog of architectural options for the problem described above. Your goal is breadth and coverage, not evaluation. Do not rank, score, or recommend any option. For each option, provide: - **Option Name**: A short, descriptive label. - **Category**: One of [Status Quo, Established Pattern, Emerging Pattern, Non-Obvious, Composite, Do Nothing]. - **Description**: 2-4 sentences explaining the approach and how it addresses the problem. - **Key Assumptions**: 2-4 assumptions this option depends on to be viable. - **Novelty**: Whether this is a standard approach the team likely considered, or a less obvious alternative. ## COVERAGE REQUIREMENTS You must include at minimum: - The "Do Nothing" or "Defer" option. - The status quo or "Continue Current Approach" option. - At least one option that changes process rather than technology. - At least one option that changes organizational boundaries or team structure. - At least one option that the team is unlikely to have considered. ## OUTPUT FORMAT Return a JSON object with this schema: { "problem_summary": "One-sentence restatement of the problem.", "options": [ { "name": "string", "category": "string", "description": "string", "key_assumptions": ["string"], "novelty": "Standard | Non-Obvious" } ], "coverage_check": { "do_nothing_included": true, "status_quo_included": true, "process_change_included": true, "org_change_included": true, "non_obvious_included": true }, "missing_categories": ["List any coverage categories not met, or empty array if all met."] } ## RISK LEVEL [RISK_LEVEL] If RISK_LEVEL is "high", add a "caution" field to each option noting what could go wrong if this option is chosen without further analysis.
To adapt this prompt, replace the square-bracket placeholders with your specific inputs. The [CONTEXT] field should include relevant system diagrams, existing ADRs, team structure, and any prior decisions that constrain the solution space. The [PROBLEM_STATEMENT] should be a crisp description of what needs to be decided, not a solution proposal in disguise. The [CONSTRAINTS] field should capture hard constraints like budget, timeline, regulatory requirements, team skills, and platform standards. Set [RISK_LEVEL] to "high" when the decision involves data integrity, security, availability, or compliance—this adds caution notes to every option. Before running this in production, validate the output JSON against the schema and check that coverage_check fields are all true. If any are false, re-prompt with explicit instructions to fill the missing categories. For high-risk domains, route the output to a human architect for review before it feeds into an ADR drafting workflow.
Prompt Variables
Inputs required for the Decision Options Enumeration Prompt to produce a reliable, non-convergent catalog of architectural alternatives.
| Placeholder | Purpose | Example | Validation Notes |
|---|---|---|---|
[PROBLEM_STATEMENT] | Defines the architectural problem or decision to be made | We need to choose a message broker for async communication between 12 microservices with at-least-once delivery guarantees | Must be a single, specific decision. Reject if it contains multiple unrelated decisions or is phrased as a solution preference |
[CONSTRAINTS] | Lists non-negotiable requirements that any valid option must satisfy | Must support Java and Go clients; Must run on AWS; Must handle 50k msg/sec peak; Budget under $5k/month | Each constraint must be verifiable. Reject vague constraints like 'must be fast' or 'must be reliable' without measurable thresholds |
[CURRENT_STATE] | Describes the existing system, current approach, or status quo baseline | Currently using RabbitMQ 3.9 on EC2, managed by the platform team. No major incidents in 18 months. Operational cost ~$800/month | Must include the status quo option explicitly. If no current solution exists, state 'No existing solution; problem is currently unaddressed' |
[STAKEHOLDER_CONCERNS] | Captures known preferences, fears, or constraints from specific teams or roles | Platform team wants managed services to reduce toil; Security team requires encryption at rest; Finance team wants predictable pricing | Each concern must be attributed to a specific stakeholder. Reject unattributed concerns like 'someone wants it cheap' |
[OPTION_CATEGORIES] | Specifies categories of options to ensure coverage breadth | Managed cloud services; Self-managed open source; Commercial self-hosted; Do-nothing; Partial adoption | Must include at least 3 categories. Must include 'status quo' or 'do-nothing' as a category. Reject if all categories are variations of the same approach |
[EXCLUSION_CRITERIA] | Defines what makes an option out of scope before enumeration begins | Options requiring on-premise hardware; Options without SOC2 compliance; Options with less than 2 years production history | Each criterion must be binary and verifiable. Reject criteria that require subjective judgment like 'mature enough' or 'good developer experience' |
[OUTPUT_SCHEMA] | Specifies the required structure for each enumerated option | Option name; Category; Brief description (2-3 sentences); Key differentiator; Obvious risk; Status quo comparison | Schema must be explicit. Reject if schema fields are ambiguous or overlap. Each field must have a clear purpose for downstream comparison |
[COVERAGE_CHECK_RULES] | Defines rules to verify the option list is not prematurely converging | Must include at least 1 option per category; Must include status quo; Must include at least 1 option that seems counterintuitive; Must include at least 1 option that defers the decision | Rules must be countable. Reject rules that cannot be mechanically verified against the output list |
Implementation Harness Notes
How to wire the Decision Options Enumeration Prompt into an application or review workflow with validation, retries, and coverage checks.
The Decision Options Enumeration Prompt is designed to be called early in an architecture decision process, before the team converges on a single path. In an application harness, this prompt should be triggered when a problem statement or decision context is submitted—typically from a design document, an ADR draft, or a structured form. The harness must supply the [PROBLEM_STATEMENT] and [CONSTRAINTS] placeholders from validated input fields. Do not call this prompt with vague one-liners; the quality of the enumeration depends directly on the specificity of the context provided. If the input is too thin, the harness should reject the request and prompt the user for more detail before invoking the model.
Wire the prompt into a pipeline that includes pre-validation, model invocation, output parsing, and coverage checks. Pre-validation should confirm that the problem statement exceeds a minimum length (e.g., 200 characters) and that constraints are explicitly listed. After the model returns the enumerated options, parse the structured output—expect a JSON array of option objects, each with name, description, category (e.g., build, buy, adopt, status-quo, hybrid), and non-obvious flag. Run a coverage validator that checks for at least one option in each relevant category and flags if the status-quo option is missing. If coverage is insufficient, trigger a single retry with a more explicit instruction to include overlooked categories. Log every invocation, the parsed option count, coverage gaps, and retry decisions for auditability.
For high-stakes architectural decisions, insert a human review gate after the enumeration is generated but before it feeds into downstream ADR drafting or comparison prompts. The review interface should display the full option catalog with category tags and allow the architect to add, remove, or reclassify options. Do not treat the model output as authoritative; it is a brainstorming accelerator. Avoid wiring this prompt directly into automated decision-making pipelines without review. The harness should also enforce a rate limit—architects should not re-run enumeration repeatedly on the same input without modifying the context, as this indicates either input quality issues or premature convergence pressure that the prompt alone cannot fix.
Expected Output Contract
Define the exact shape of the model response for the Decision Options Enumeration Prompt. Use this contract to validate outputs before they enter downstream ADR workflows.
| Field or Element | Type or Format | Required | Validation Rule |
|---|---|---|---|
options | Array of objects | Array length must be >= 3. Reject if fewer than 3 options are returned. | |
options[].name | String | Must be a unique, descriptive label. No duplicate names allowed within the array. | |
options[].description | String | Must contain 2-5 sentences explaining the approach. Reject if empty or only a single sentence. | |
options[].category | Enum: [BUILD, BUY, REFACTOR, DO_NOTHING, HYBRID, OTHER] | Must match one of the allowed enum values. Reject on unknown category. | |
options[].is_status_quo | Boolean | Exactly one option must have this set to true. Reject if zero or more than one. | |
options[].key_differentiator | String | Must be a single sentence that distinguishes this option from the others. Reject if generic or identical to another option's differentiator. | |
coverage_notes | Object | Must contain a 'missing_perspectives' array. Reject if the object is absent. | |
coverage_notes.missing_perspectives | Array of strings | If present, each string must describe a perspective not covered. Null or empty array is acceptable. |
Common Failure Modes
When enumerating architectural options, the model can prematurely converge, miss the status quo, or generate options that sound plausible but are technically incoherent. These failure modes help you catch those issues before they become a decision record.
Premature Convergence on a Single Path
What to watch: The model generates one detailed option and several shallow strawmen, effectively steering the architect toward a predetermined choice. This often happens when the input description already contains strong preference language. Guardrail: Require equal detail depth for every option. Add a coverage instruction: 'For each option, provide the same sections: description, prerequisites, risks, and when it is the wrong choice.' If any option is significantly shorter, flag it for regeneration.
Missing the Status Quo Option
What to watch: The model omits 'do nothing' or 'keep the current system' as an explicit option, treating change as the only path. This is a critical omission because the status quo is often the correct baseline for trade-off comparison. Guardrail: Add a hard constraint in the prompt: 'Always include the current-state option as Option 0. Describe what happens if no change is made, including the cost of inaction.' Validate that Option 0 appears in every output.
Technically Incoherent Options
What to watch: The model generates options that combine incompatible technologies, violate fundamental constraints, or describe architectures that cannot exist. These sound plausible in natural language but fail under technical scrutiny. Guardrail: Add a self-critique step after enumeration: 'For each option, identify one reason it might be technically infeasible or internally contradictory.' Run a second pass that filters options with unresolved feasibility issues before human review.
Option Exhaustion Without Coverage Checks
What to watch: The model stops at 3-5 obvious options and declares the list complete, missing non-obvious alternatives, hybrid approaches, or phased migration paths. Architects then choose from an artificially narrow set. Guardrail: Use a coverage prompt after initial enumeration: 'Review the options list against these categories: build, buy, adopt open-source, outsource, do nothing, hybrid, and phased. Identify any categories with zero options and generate at least one option for each empty category.'
False Equivalence in Option Framing
What to watch: The model presents options with inconsistent framing—some described by technology choice, others by business outcome, and others by implementation pattern. This makes comparison impossible and hides real trade-offs. Guardrail: Enforce a consistent option schema in the prompt: 'Describe every option using this structure: approach name, core mechanism, prerequisites, expected outcomes, and key trade-offs. Do not mix framing dimensions across options.' Validate structural consistency before presenting to decision makers.
Overlooking Team and Organizational Constraints
What to watch: The model generates technically valid options that are impossible given the team's skills, operational capacity, or organizational boundaries. Options that require hiring a new team or retraining everyone are presented as equally viable. Guardrail: Include team context in the input: 'Current team capabilities: [CAPABILITIES]. Organizational constraints: [CONSTRAINTS].' Add a filter instruction: 'For each option, assess whether it is viable given the stated team and organizational constraints. Flag options that require capability the team does not have.'
Evaluation Rubric
Use this rubric to test the quality of the Decision Options Enumeration Prompt output before integrating it into an ADR workflow. Each criterion targets a specific failure mode that causes premature convergence or missed alternatives.
| Criterion | Pass Standard | Failure Signal | Test Method |
|---|---|---|---|
Status-Quo Inclusion | Output includes the current state or do-nothing option as a distinct alternative | Status-quo option is missing or conflated with another option | Scan option list for explicit status-quo label; verify description captures current architecture |
Option Count Threshold | Output contains at least 5 distinct architectural alternatives | Output contains 3 or fewer options, indicating premature convergence | Count distinct option entries; flag if below minimum threshold |
Non-Obvious Option Coverage | At least 2 options fall outside the obvious first-choice candidates for the problem domain | All options are standard patterns with no creative or unconventional alternatives | Classify each option as standard or non-obvious using domain reference list; verify non-obvious count |
Option Distinctness | Each option differs from others in at least one architectural dimension such as data flow, deployment model, or technology family | Two or more options are near-duplicates differing only in naming or minor implementation detail | Pairwise comparison of option descriptions; flag pairs with overlapping descriptions and no architectural dimension difference |
Description Completeness | Each option includes a brief description covering mechanism, primary trade-off, and when it fits | Options listed with only a name and no description, or descriptions are single generic sentences | Check each option entry for presence of mechanism description, trade-off mention, and fit condition |
Constraint Awareness | Output references at least 2 explicit constraints from [CONSTRAINTS] input when describing option fit | No constraint from input appears in any option description or fit condition | Keyword match between [CONSTRAINTS] input and option descriptions; flag if zero matches |
Abstention Handling | Output includes a note when a known architectural pattern is intentionally excluded with brief rationale | Output silently omits a well-known pattern without explanation, or includes options that violate stated constraints | Cross-reference against domain pattern checklist; flag missing expected patterns without rationale |
Output Schema Validity | Output parses as valid JSON matching the [OUTPUT_SCHEMA] with all required fields present | Output is malformed JSON, missing required fields, or contains extra untyped fields | Automated schema validation against [OUTPUT_SCHEMA]; reject on parse failure or missing required fields |
Enabling Efficiency, Speed & Accuracy
Intelligent Analysis, Decision & Execution
We build AI systems for teams that need search across company data, workflow automation across tools, or AI features inside products and internal software.
Talk to Us
Search across company data
Give teams answers from docs, tickets, runbooks, and product data with sources and permissions.
Useful when people spend too long searching or get different answers from different systems.

Automate internal workflows
Use AI to route work, draft outputs, trigger actions, and keep approvals and logs in place.
Useful when repetitive work moves across multiple tools and teams.

Add AI to products and internal tools
Build assistants, guided actions, or decision support into the software your team or customers already use.
Useful when AI needs to be part of the product, not a separate tool.
Adapt This Prompt
How to adapt
Use the base prompt with a lightweight model and minimal validation. Drop the [OUTPUT_SCHEMA] constraint and accept free-text bullet lists. Focus on breadth of options over structured completeness.
Watch for
- Missing non-obvious options like "do nothing" or "defer decision"
- Overly brief descriptions that skip trade-off signals
- Premature convergence when the model favors familiar patterns

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.
Partnered with leading AI, data, and software stack.
How We Work
Custom AI workflows for your Business
One-fit-all AI don't work for modern businesses. At Inferensys, we aim to understand your business & custom requirements; which we use to define most efficient agentic workflows, the data, and the tools for your business.
01
Review the use case
We understand the task, the users, and where AI can actually help.
Read more02
Pick the right approach
We define what needs search, automation, or product integration.
Read more03
Build the first useful version
We implement the part that proves the value first.
Read more04
Improve from there
We add the checks and visibility needed to keep it useful.
Read moreThe first call is a practical review of your use case and the right next step.
Talk to Us