Inferensys

Prompt

ADR Technology Selection Prompt

A practical prompt playbook for generating scored technology evaluation matrices with weighted criteria, evidence-backed scores, and explicit trade-off rationale.
Developer doing prompt engineering on laptop, prompt variations visible on screen, casual coding session.
PROMPT PLAYBOOK

When to Use This Prompt

Defines the job-to-be-done, ideal user, required context, and boundaries for the ADR Technology Selection Prompt.

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.

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.

PRACTICAL GUARDRAILS

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.

01

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.

02

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.

03

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.

04

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.

05

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).

06

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.

PROMPT PLAYBOOK

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.

text
You 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.

IMPLEMENTATION TABLE

Prompt Variables

Inputs the ADR Technology Selection Prompt needs to work reliably. Validate each before sending to prevent garbage-in-garbage-out evaluations.

PlaceholderPurposeExampleValidation 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.

PROMPT PLAYBOOK

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.

IMPLEMENTATION TABLE

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 ElementType or FormatRequiredValidation 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.

PRACTICAL GUARDRAILS

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.

01

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.

02

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.

03

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.

04

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.

05

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.

06

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.

IMPLEMENTATION TABLE

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.

CriterionPass StandardFailure SignalTest 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

ADAPTATION OPTIONS

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_justification field requirement initially.
  • Allow free-text evidence instead of requiring evidence_source and evidence_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.
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.