This prompt is for architects and engineering leads who need to choose between specific technologies, frameworks, or platforms for a defined need. Use it when you have a clear problem statement, a shortlist of candidate technologies, and you need a structured, defensible evaluation before writing an Architecture Decision Record. The prompt produces a scored evaluation matrix with weighted criteria, evidence from documentation or prototypes, and explicit trade-off rationale. It is designed to move teams from advocacy-driven debates to evidence-weighted comparison, producing output that can be directly adapted into the 'Options Considered' and 'Decision Rationale' sections of a formal ADR.
Prompt
ADR Technology Selection Prompt

When to Use This Prompt
Defines the job-to-be-done, ideal user, required context, and boundaries for the ADR Technology Selection Prompt.
The ideal input state includes a concrete problem statement with measurable constraints (latency budgets, throughput requirements, operational SLAs, team skill profiles), a shortlist of 2–5 candidate technologies, and access to documentation, benchmarks, or prototype results for each candidate. The prompt works best when criteria are grounded in observable properties—API surface area, community activity, security advisory history, performance under load—rather than subjective preference. If your criteria are purely subjective or your candidates are not yet identified, this prompt will produce weak, rationalization-heavy output that undermines the decision record rather than strengthening it.
Do not use this prompt for early-stage exploration where you have not yet identified candidates, or for decisions where the criteria cannot be grounded in documentation or measurable properties. It is also inappropriate for decisions that are purely architectural pattern choices (e.g., monolith vs. microservices) without specific technology candidates, or for build-vs-buy decisions where the evaluation dimensions differ substantially. For those cases, use the sibling ADR Build vs Buy Decision Prompt or the Trade-Off Analysis prompt instead. After running this prompt, validate the output by checking that every score has an evidence citation, that weights reflect actual stakeholder priorities rather than equal defaults, and that the recommended option's weaknesses are explicitly acknowledged before you commit the decision to your ADR repository.
Use Case Fit
Where this prompt works and where it does not. Use these cards to decide if the ADR Technology Selection Prompt fits your current decision context.
Good Fit: Defined Options
Use when: you have 2-5 specific technologies, frameworks, or platforms to compare against a concrete set of requirements. Guardrail: the prompt works best when options are named and scoped. Avoid open-ended 'what should we use?' questions without candidate options.
Good Fit: Weighted Criteria
Use when: you need a scored evaluation matrix with explicit criteria weights, evidence from documentation or prototypes, and trade-off rationale. Guardrail: provide your criteria and weights as input. The prompt evaluates against them; it does not invent your priorities.
Bad Fit: Single Option Advocacy
Avoid when: the decision is already made and you only need justification for one option. Risk: the prompt may fabricate balanced trade-offs or invent weaknesses to appear objective. Guardrail: use the ADR Generation Prompt instead for documenting a decided path.
Bad Fit: Immature Requirements
Avoid when: requirements are vague, conflicting, or unvalidated. Risk: the evaluation matrix will appear rigorous but rest on unstable foundations. Guardrail: run the Context Extraction Prompt first to stabilize constraints before technology selection.
Required Inputs
What to watch: missing or incomplete inputs produce plausible but unreliable scores. Guardrail: you must provide candidate technologies, weighted evaluation criteria, functional and non-functional requirements, and any known constraints (budget, team skill, timeline, compliance).
Operational Risk: Score Justification Quality
What to watch: the model may assign scores without adequate evidence or fabricate documentation references. Guardrail: require explicit evidence citations for each score above a threshold. Run the ADR Review Prompt on the output before sharing with stakeholders.
Copy-Ready Prompt Template
A reusable prompt template with square-bracket placeholders for generating a scored technology evaluation matrix.
This template produces a structured technology selection ADR. It forces the model to act as a dispassionate architect, evaluating up to [NUMBER_OF_OPTIONS] candidates against weighted criteria derived from your specific context. The output is a scored matrix with explicit trade-off rationale, not a persuasive essay for a single option. Replace every square-bracket placeholder with concrete values before sending. The more specific your [CONTEXT] and [CONSTRAINTS], the less the model will rely on generic internet sentiment.
textYou are an experienced software architect producing a technology selection Architecture Decision Record (ADR). Your analysis must be evidence-based, dispassionate, and explicit about uncertainty. Do not advocate. Compare. ## CONTEXT [CONTEXT] ## DECISION DRIVERS - Functional requirements: [FUNCTIONAL_REQUIREMENTS] - Non-functional requirements: [NON_FUNCTIONAL_REQUIREMENTS] - Constraints: [CONSTRAINTS] - Stakeholder concerns: [STAKEHOLDER_CONCERNS] ## CANDIDATE TECHNOLOGIES [CANDIDATE_1_NAME]: [CANDIDATE_1_DESCRIPTION] [CANDIDATE_2_NAME]: [CANDIDATE_2_DESCRIPTION] [ADD_MORE_CANDIDATES_AS_NEEDED] ## EVALUATION CRITERIA [CRITERION_1_NAME]: [CRITERION_1_WEIGHT]% — [CRITERION_1_DEFINITION] [CRITERION_2_NAME]: [CRITERION_2_WEIGHT]% — [CRITERION_2_DEFINITION] [ADD_MORE_CRITERIA_AS_NEEDED] ## INSTRUCTIONS 1. For each candidate, assign a score of 1-5 for every criterion. 1 = poor fit, 5 = excellent fit. 2. Multiply each score by the criterion weight. Sum to produce a weighted total. 3. For every score of 4 or 5, cite specific evidence: documentation features, benchmark data, community activity, or prototype results. If evidence is unavailable, cap the score at 3 and note the evidence gap. 4. Identify the top two candidates and write a trade-off section comparing them directly. State what each sacrifices relative to the other. 5. Flag any criterion where all candidates score 3 or below as a risk that may require revisiting the problem framing. 6. If any candidate introduces a new constraint not in the original list, call it out explicitly. ## OUTPUT SCHEMA Return valid JSON matching this structure: { "decision_title": "string", "context_summary": "string", "evaluation_matrix": [ { "candidate": "string", "scores": { "[CRITERION_NAME]": number }, "weighted_total": number, "evidence_citations": ["string"] } ], "trade_off_analysis": { "top_candidates": ["string"], "comparison": "string", "sacrifice_summary": "string" }, "risks_and_gaps": ["string"], "new_constraints_introduced": ["string"], "recommendation": "string", "confidence_level": "high|medium|low", "confidence_rationale": "string" } ## CONSTRAINTS - Do not invent benchmark numbers. If you lack data, state that explicitly. - Do not recommend a technology because it is popular. Popularity is only relevant if it directly affects hiring, community support, or ecosystem maturity for this specific context. - If the evidence is insufficient to distinguish the top candidates, say so. A forced recommendation is worse than an honest tie.
Before wiring this into an application, validate the output JSON against the schema. Common failures include missing evidence_citations for high scores, confidence_level values outside the enum, and trade_off_analysis that reads like advocacy for one candidate. Run a second pass with a review prompt if the confidence level is low or if any criterion shows all candidates scoring 3 or below. For high-stakes selections, route the output to a human architect for sign-off before the ADR is committed to the repository.
Prompt Variables
Inputs the ADR Technology Selection Prompt needs to work reliably. Validate each before sending to prevent garbage-in-garbage-out evaluations.
| Placeholder | Purpose | Example | Validation Notes |
|---|---|---|---|
[PROBLEM_STATEMENT] | Defines the architectural need the technology must solve | We need a message broker for async job processing with at-least-once delivery across 3 regions | Check length > 50 chars. Must contain a functional requirement, not just a technology name. Reject if it prescribes the answer. |
[CANDIDATE_TECHNOLOGIES] | List of specific technologies, frameworks, or platforms to evaluate | Kafka, RabbitMQ, NATS JetStream, AWS SQS | Minimum 2 entries. Each entry must be a named, identifiable technology. Reject generic entries like 'a queue'. Validate against known technology registries if available. |
[EVALUATION_CRITERIA] | Weighted dimensions for scoring each candidate | Operational overhead (30%), Latency at p99 (25%), Community support (15%), Cost at scale (20%), Team familiarity (10%) | Weights must sum to 100. Minimum 4 criteria. Each criterion must have a clear definition. Reject vague criteria like 'quality' or 'good'. |
[CONSTRAINTS] | Non-negotiable requirements that act as hard filters | Must support TLS 1.3, Must run on AWS, Max 5ms p99 latency, SOC 2 compliant | Each constraint must be testable as true/false. Reject aspirational constraints like 'should be fast'. Constraints that eliminate all candidates trigger a re-prompt. |
[EVIDENCE_SOURCES] | Documents, benchmarks, or prototypes providing data for scoring | Kafka Jepsen report, NATS benchmark from our staging cluster, AWS SQS SLA | At least 1 source per candidate. Sources must be accessible or summarized inline. Flag if all evidence is vendor-provided marketing material. |
[CONTEXT] | Organizational and system context that shapes the decision | Team of 4 backend engineers, no dedicated SRE, existing Kafka expertise, $50k annual budget | Must include team size, budget, and existing expertise. Missing context fields trigger a warning. Reject if context contradicts constraints. |
[OUTPUT_FORMAT] | Desired structure for the evaluation output | Scored matrix with rationale per criterion, trade-off summary, and recommendation | Must specify whether JSON schema, markdown table, or narrative format is expected. Default to structured JSON with explicit field definitions if unspecified. |
Implementation Harness Notes
How to wire the ADR Technology Selection Prompt into an application or review workflow with validation, retries, and human approval gates.
The ADR Technology Selection Prompt is designed to operate as a structured evaluation step within a larger architecture review pipeline, not as a standalone chatbot interaction. In a typical implementation, the prompt receives a technology comparison request from an architect or engineering lead, processes it against the provided criteria and evidence, and returns a scored evaluation matrix. The output should be treated as a draft recommendation that requires human review before it becomes an accepted ADR. Wire this prompt into your workflow after the problem context has been defined and the candidate technologies have been enumerated, but before the final decision is documented and committed to the ADR repository.
Input assembly is the first integration concern. The prompt requires several structured inputs that should be collected through your application's UI or API before invocation: [PROBLEM_STATEMENT] describing the architectural need, [CANDIDATE_TECHNOLOGIES] as a list of options to evaluate, [EVALUATION_CRITERIA] with explicit weights (e.g., performance, team expertise, licensing, community health, operational complexity), and [EVIDENCE_SOURCES] such as documentation links, prototype results, or benchmark data. If your system supports RAG, retrieve relevant internal ADRs, incident reports, or engineering standards and inject them as [CONTEXT] to ground the evaluation in organizational constraints. Model choice matters: use a model with strong reasoning capabilities (GPT-4o, Claude 3.5 Sonnet, or equivalent) because the task requires multi-dimensional comparison and explicit trade-off articulation. Lighter models tend to produce shallow matrices or skip criteria.
Output validation is critical before the result enters your ADR pipeline. Parse the model's response against the expected [OUTPUT_SCHEMA]: a JSON object containing a scored_matrix array (each row a technology, each column a criterion with a numeric score and textual justification), a weighted_totals summary, a trade_off_analysis section identifying where the top-scoring option still carries risk, and a recommendation field with explicit confidence level. Implement a validator that checks: (1) all input criteria appear as columns, (2) all candidate technologies appear as rows, (3) every score cell has a non-empty justification, (4) the weighted totals are arithmetically consistent with the stated weights and scores, and (5) the trade-off analysis addresses at least the top two candidates. If validation fails, retry with error feedback: append the validation errors to the prompt as [PREVIOUS_ERRORS] and re-invoke, up to a maximum of two retries before escalating for human completion.
Human review and approval is the final gate. Even when validation passes, the scored matrix is a draft. Present the output in a review interface that highlights: the top recommendation, the closest competitor, criteria where scores are within one point (indicating weak differentiation), and any trade-off flags. Require an architect or tech lead to approve, adjust scores with documented rationale, or reject the evaluation before it becomes an ADR. Log the full prompt, response, validation results, and reviewer actions for audit traceability. This is especially important in regulated environments where technology selection decisions must be defensible. Avoid wiring this prompt directly into automated decision-making without human-in-the-loop approval; the model can surface patterns and structure comparisons, but it cannot own the organizational consequences of choosing a framework or platform that your team will live with for years.
Expected Output Contract
Validate the model response against this contract before accepting the ADR technology selection output. Each field must pass the specified validation rule or trigger a retry or repair workflow.
| Field or Element | Type or Format | Required | Validation Rule |
|---|---|---|---|
decision_title | string | Non-empty string. Must match pattern: 'ADR-[0-9]{4}: .+'. Reject if missing or malformed. | |
context_summary | string | Minimum 50 characters. Must contain at least one explicit constraint from [CONSTRAINTS] input. Reject if too short or no constraint reference found. | |
evaluation_matrix | array of objects | Array length must equal number of options in [CANDIDATE_TECHNOLOGIES]. Each object must contain 'option_name', 'criteria_scores' (object), and 'total_weighted_score' (number). Reject if option count mismatch. | |
evaluation_matrix[].criteria_scores | object | Keys must exactly match criteria names from [EVALUATION_CRITERIA]. Each value must be a number between 1 and 5. Reject if missing criteria or out-of-range score. | |
evaluation_matrix[].total_weighted_score | number | Must equal sum of (criteria_score * weight) for all criteria using weights from [CRITERIA_WEIGHTS]. Reject if computed value differs by more than 0.01 from declared total. | |
trade_off_rationale | string | Minimum 100 characters. Must reference at least two options from the evaluation matrix by name. Reject if no comparative language detected. | |
evidence_sources | array of strings | Each entry must be a non-empty string. At least one entry must reference a specific document, benchmark, or prototype result. Reject if all entries are generic or empty. | |
recommendation | string | Must exactly match one 'option_name' from evaluation_matrix. Reject if recommendation does not correspond to any evaluated option. |
Common Failure Modes
Technology selection prompts fail in predictable ways. These are the most common failure modes when using an LLM to evaluate frameworks, platforms, or tools, along with concrete guardrails to prevent them.
Halo-Effect Scoring
What to watch: The model inflates scores for a well-known technology because its training data is saturated with positive sentiment, while penalizing an equally capable but less-discussed alternative. This produces a biased matrix that reflects popularity, not fitness. Guardrail: Require the model to cite a specific documentation source, benchmark, or prototype result for every score above a threshold. Flag scores with no evidence as 'unsubstantiated' and exclude them from the final ranking.
Criteria Omission
What to watch: The model evaluates technologies against a generic or incomplete set of criteria, missing constraints that are critical to your context—such as compliance requirements, team skill profile, or operational cost ceilings. The output looks thorough but ignores what actually matters. Guardrail: Provide a mandatory criteria checklist as part of the input. Instruct the model to explicitly mark any criterion it cannot evaluate due to missing information, and block final output if required criteria are unscored.
False Equivalence in Trade-Offs
What to watch: The model presents trade-offs as equally weighted when one side carries dramatically higher risk. For example, it may treat 'slightly faster time-to-market' and 'vendor lock-in with no exit strategy' as comparable concerns. Guardrail: Require a risk severity classification for each trade-off item. Add a post-generation step that flags any trade-off where the risk differential exceeds a defined threshold, and prompt the model to re-evaluate with explicit weighting.
Rationalization Instead of Reasoning
What to watch: The model picks a winner early—often the first option listed or the one with the most training data—and then generates post-hoc justifications that sound plausible but don't follow from the evidence. The decision looks reasoned but is actually backward. Guardrail: Randomize option order in the prompt. Require the model to score all options independently before comparing them. Add an eval check that verifies the final ranking is consistent with the individual scores.
Missing Status Quo Baseline
What to watch: The model evaluates new technologies against each other but omits the option of changing nothing—upgrading the current stack, fixing the existing system, or deferring the decision. This forces a false choice between adoption options. Guardrail: Always include 'Do Nothing / Improve Current' as a mandatory option in the evaluation matrix. Require the model to score it against the same criteria and explain the cost of change versus the cost of inaction.
Overconfidence in Incomplete Data
What to watch: The model assigns high-confidence scores to technologies based on outdated documentation, hallucinated features, or benchmarks it cannot actually cite. The output reads as authoritative but contains fabricated evidence. Guardrail: Require every factual claim about a technology to include a verifiable source reference. Add a validation step that checks whether cited sources are real and current. If a claim cannot be sourced, downgrade the confidence and flag it for human review.
Evaluation Rubric
Score each dimension on a pass/fail or 1-5 scale before shipping the ADR Technology Selection Prompt. Use this rubric in an eval harness to gate prompt changes.
| Criterion | Pass Standard | Failure Signal | Test Method |
|---|---|---|---|
Criteria Completeness | All mandatory selection dimensions (cost, performance, operability, team skill, ecosystem) are present with non-empty scores | Missing dimension; dimension scored without evidence; placeholder text in score cell | Schema check for required dimension keys; non-null assertion on score values |
Score Justification Quality | Every score above 3 or below 2 includes a concrete justification citing documentation, benchmark, or prototype result | High or low score with generic justification like 'best option' or 'not good'; justification references hallucinated benchmarks | LLM-as-judge check: extract justification per score, verify it contains a specific claim traceable to the input evidence |
Weight Rationale | Each criterion weight is explained with a one-sentence rationale tied to the stated use case or constraints | Equal weights applied to all criteria without explanation; weight rationale contradicts the problem context | Parse weight field; assert non-empty rationale string; keyword match against use case description |
Evidence Grounding | At least 80% of factual claims about technology capabilities are traceable to provided documentation or prototype notes | Claim about latency, throughput, or feature support with no source reference; invented version numbers or pricing | Citation extraction: count claims with source references vs. unsupported claims; fail if unsupported ratio exceeds 20% |
Trade-Off Acknowledgment | The output explicitly states what is sacrificed by choosing the top-ranked option | Winner declared with no downside mentioned; all options presented as positive with no trade-off language | String match for trade-off indicators ('sacrifice', 'trade-off', 'cost of', 'gives up'); fail if absent |
Option Coverage | At least three distinct technology options are evaluated, including a 'do nothing' or status-quo baseline | Only two options compared; status-quo option missing; options are minor variants of the same technology | Count unique option entries; assert count >= 3; check for status-quo or 'no change' label |
Output Schema Validity | Output parses cleanly against the expected JSON schema with all required fields present and correctly typed | Missing required field; wrong type (string instead of number for score); extra fields that break downstream parsing | JSON Schema validation in test harness; fail on any validation error |
Bias Detection | No option receives uniformly maximum scores across all criteria; language is neutral across options | One option scored 5 on every criterion; competitor options described with negative adjectives while preferred option uses positive adjectives | Sentiment analysis per option description; score variance check per option; fail if variance is zero or sentiment skew exceeds threshold |
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 lighter validation. Remove the strict output schema requirement and let the model produce a narrative comparison first. Focus on getting the evaluation dimensions right before locking down the matrix format.
- Replace
[OUTPUT_SCHEMA]with a looser instruction: "Produce a comparison table with scores and a narrative rationale section." - Drop the
score_justificationfield requirement initially. - Allow free-text evidence instead of requiring
evidence_sourceandevidence_excerpt.
Watch for
- Missing criteria weighting that leads to flat, unhelpful scores.
- Overly broad instructions producing generic pros/cons lists instead of a decision matrix.
- Score inflation where every option gets 4/5 without differentiation.

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