This prompt is for technical decision makers and architects evaluating whether to build a capability in-house or adopt an external solution. Use it when you need a structured comparison across cost, control, maintenance burden, team capability, and strategic fit before committing engineering resources. The prompt is designed to produce a draft Architecture Decision Record section that can be reviewed, debated, and finalized by humans. It is not a replacement for vendor due diligence, security review, or legal approval.
Prompt
ADR Build vs Buy Decision Prompt

When to Use This Prompt
Understand the job-to-be-done, ideal user, required context, and when not to use the ADR Build vs Buy Decision Prompt.
Run this prompt early in the decision process, before significant procurement or prototyping effort has been spent, so the output can shape the evaluation criteria rather than justify a decision already made. The prompt requires concrete inputs: a clear description of the capability needed, known constraints (budget, timeline, compliance, team skills), and at least one build option and one buy option to compare. Without these inputs, the model will generate plausible-sounding but untethered analysis that wastes review cycles. If you haven't identified at least one credible external solution or internal approach, run the Decision Options Enumeration Prompt first to generate alternatives before invoking this comparison.
Do not use this prompt when the decision is purely about vendor selection among multiple buy options—that requires a different evaluation structure focused on feature matrices, SLAs, and procurement criteria. Do not use it when the build option is a strawman designed to make a preferred vendor look better; the prompt includes bias checks for NIH syndrome and vendor lock-in risk, but it cannot detect bad-faith inputs. Do not use it when the capability is trivial (a single library import or SaaS signup with no architectural implications) or when the decision has already been made and you're seeking post-hoc justification. The output is a draft for human review, not a final decision document. Always validate cost estimates, vendor claims, and team capacity assumptions independently before the ADR is accepted.
Use Case Fit
Where this prompt works and where it does not. Use these cards to decide if the ADR Build vs Buy Decision Prompt fits your current decision context.
Good Fit: Structured Comparison
Use when: You have a defined capability need and at least one build option and one buy option to compare. The prompt excels at producing a balanced, multi-dimensional trade-off matrix. Guardrail: Provide clear evaluation criteria (cost, control, maintenance, team capability, strategic fit) in the input context to prevent generic output.
Bad Fit: Pure Cost Analysis
Avoid when: The decision hinges entirely on a detailed financial model with vendor quotes, TCO spreadsheets, and ROI projections. The prompt can summarize cost factors but cannot perform quantitative financial analysis. Guardrail: Use this prompt for the qualitative comparison framework and feed its output into a separate financial model built by your finance team.
Required Inputs
What to watch: The prompt needs a concrete problem statement, a list of evaluation criteria, and at least a brief description of the build approach and the buy candidate(s). Without these, the output becomes generic advice. Guardrail: Prepare a short context document with the problem, constraints, timeline, team skills, and known options before running the prompt.
Operational Risk: NIH Syndrome
What to watch: The prompt may over-index on the build option if your input context emphasizes unique requirements or team capability without acknowledging viable external solutions. This mirrors real-world Not-Invented-Here bias. Guardrail: Explicitly instruct the prompt to check for NIH bias and require at least one strong counterargument for the build option before finalizing the comparison.
Operational Risk: Vendor Lock-In Blind Spot
What to watch: The prompt may underestimate long-term lock-in risks for buy options, especially if the input context focuses on near-term speed and feature completeness. Guardrail: Add a dedicated evaluation dimension for 'exit cost and migration complexity' and require the prompt to estimate switching costs at years 1, 2, and 3.
When to Escalate
What to watch: The prompt produces a recommendation but the decision involves regulatory compliance, data residency, or security certification requirements that the model cannot verify. Guardrail: Treat the prompt's output as a structured discussion document, not a final decision. Require human review by legal, security, and compliance stakeholders before committing to a build or buy path.
Copy-Ready Prompt Template
A reusable prompt template with square-bracket placeholders for generating a structured Build vs. Buy ADR.
This prompt template is the core engine for generating a Build vs. Buy Architecture Decision Record. It is designed to be copied directly into your prompt layer, whether that's a Python script, a LangChain template, or a direct API call. The template forces a structured comparison by requiring the model to evaluate options against a fixed set of criteria—cost, control, maintenance, team capability, and strategic fit—before making a recommendation. This structure prevents the model from defaulting to a superficial preference and ensures the output is a traceable, defensible document, not just a paragraph of advice.
textYou are a senior software architect producing an Architecture Decision Record (ADR) for a Build vs. Buy decision. Your task is to analyze the provided context and produce a structured ADR in Markdown. You must evaluate the decision against the following weighted criteria: Total Cost of Ownership (25%), Strategic Control and Differentiation (25%), Maintenance and Operational Burden (20%), Team Capability and Learning Curve (15%), and Integration and Security Fit (15%). Before writing the final ADR, you must perform a bias check for "Not Invented Here" (NIH) syndrome and vendor lock-in risk. Explicitly state if either bias is detected and how it was mitigated in the analysis. ## INPUTS - [CAPABILITY_DESCRIPTION] - [PROBLEM_CONTEXT] - [BUSINESS_CONSTRAINTS] - [TEAM_SKILLS_AND_CAPACITY] - [BUILD_OPTION_DETAILS] - [BUY_OPTION_DETAILS] - [VENDOR_EVIDENCE] ## OUTPUT_SCHEMA You must output a single JSON object with the following structure. Do not include any text outside the JSON object. { "title": "ADR: Build vs. Buy for [Capability Name]", "status": "proposed", "context": "A concise summary of the problem and business drivers.", "decision": "The final decision: 'Build', 'Buy', or 'Hybrid'.", "options_assessment": { "build": { "description": "A brief description of the in-house build approach.", "pros": ["string"], "cons": ["string"] }, "buy": { "description": "A brief description of the external solution.", "pros": ["string"], "cons": ["string"] }, "hybrid": { "description": "A brief description of a potential hybrid approach, if applicable.", "pros": ["string"], "cons": ["string"] } }, "weighted_evaluation": { "total_cost_of_ownership": {"weight": 25, "build_score": 0, "buy_score": 0, "rationale": "string"}, "strategic_control": {"weight": 25, "build_score": 0, "buy_score": 0, "rationale": "string"}, "maintenance_burden": {"weight": 20, "build_score": 0, "buy_score": 0, "rationale": "string"}, "team_capability": {"weight": 15, "build_score": 0, "buy_score": 0, "rationale": "string"}, "integration_security": {"weight": 15, "build_score": 0, "buy_score": 0, "rationale": "string"} }, "bias_check": { "nih_syndrome_detected": true, "nih_mitigation": "string", "vendor_lockin_risk": "low", "lockin_mitigation": "string" }, "risks": ["A list of key risks associated with the chosen decision."], "consequences": "What becomes easier and what becomes harder if this decision is accepted." } ## CONSTRAINTS - Scores must be integers from 1 to 10. - The "rationale" fields must cite specific evidence from the [VENDOR_EVIDENCE] or [TEAM_SKILLS_AND_CAPACITY] inputs. - If a "Hybrid" option is not applicable, set its description to an empty string and its pros/cons to empty arrays. - The "vendor_lockin_risk" field must be one of: "low", "medium", "high".
To adapt this template, replace each square-bracket placeholder with data from your application. The [VENDOR_EVIDENCE] field is critical for grounding; it should contain raw text from documentation, pricing pages, or security whitepapers, not just a vendor name. This allows the model to cite specific evidence in its rationale, which is essential for a defensible ADR. If you have no evidence, the prompt will still run, but the output's quality and trustworthiness will degrade significantly. For high-stakes decisions, always populate this field with real data and plan for a human review of the generated ADR before it is accepted.
Prompt Variables
Fill these placeholders before running the ADR Build vs Buy Decision Prompt. Each variable shapes the analysis scope, constraints, and output structure.
| Placeholder | Purpose | Example | Validation Notes |
|---|---|---|---|
[CAPABILITY_NAME] | The specific capability or feature being evaluated for build vs buy | Real-time user activity audit log | Must be a single, well-scoped capability; reject if scope spans multiple unrelated systems |
[PROBLEM_STATEMENT] | The business or technical problem this capability must solve | We need to track every user action across 12 microservices for SOC 2 compliance within 90 days | Must include a measurable constraint (time, cost, scale); reject if purely aspirational |
[CONSTRAINTS] | Non-negotiable requirements that any solution must satisfy | Must support 10K events/sec; must run in AWS us-east-1; must integrate with existing OIDC auth | Parse as list; each constraint must be verifiable as true/false; reject vague constraints like 'must be fast' |
[TEAM_CAPABILITY] | Current team skills, capacity, and experience relevant to building this capability | 3 backend engineers (Go, Postgres); no prior event-sourcing experience; 20% capacity available for Q3 | Must include headcount, tech stack familiarity, and available capacity; null allowed if unknown |
[BUILD_ESTIMATE] | Estimated effort, timeline, and cost to build in-house | 6 months, 2 engineers full-time, $240K loaded cost | Must include time, people, and cost dimensions; mark as 'rough estimate' if not based on detailed scoping |
[CANDIDATE_SOLUTIONS] | External products, vendors, or open-source options under consideration | Datadog Audit Trail, Segment Protocols, custom Kafka-based pipeline | Must list at least 1 external option; include version or tier if pricing differs; null allowed only if buy option is theoretical |
[BUY_ESTIMATE] | Estimated cost, integration effort, and timeline for each candidate solution | Datadog: $4K/month, 4-week integration, 0.5 FTE ongoing; Segment: $6K/month, 6-week integration, 0.25 FTE ongoing | Must map to each candidate in [CANDIDATE_SOLUTIONS]; include recurring cost, one-time integration effort, and ongoing maintenance FTE |
[STRATEGIC_CONTEXT] | How this decision fits into broader company strategy, roadmap, and core vs context analysis | Audit logging is compliance infrastructure, not a differentiator; we prioritize buy for non-core capabilities | Must state whether this capability is core differentiator or supporting infrastructure; reject if strategic posture is unstated |
Implementation Harness Notes
How to wire the ADR Build vs Buy Decision Prompt into an application or review workflow with validation, retries, logging, and human approval gates.
The Build vs Buy prompt is not a one-shot chatbot query. It belongs inside a structured decision workflow where inputs are gathered from multiple sources—cost estimates, team capability surveys, vendor documentation, and strategic context—before the prompt is assembled. The harness should collect these inputs into a typed object, validate that required fields are present (at minimum: [CAPABILITY_DESCRIPTION], [STRATEGIC_CONTEXT], and at least one option in each of [BUILD_OPTIONS] and [BUY_OPTIONS]), and only then render the prompt template. Missing or incomplete inputs should block execution and return a specific error to the user, not silently produce a weak ADR.
After the model returns a response, the harness must validate the output against the expected ADR schema before showing it to a reviewer. At minimum, check that the response contains the required sections (Context, Decision, Options Considered, Trade-off Analysis, Rationale, Consequences), that the Decision field selects exactly one option, and that the Trade-off Analysis includes all dimensions specified in [EVALUATION_CRITERIA]. If validation fails, retry once with the validation errors appended to the prompt as [REPAIR_INSTRUCTIONS]. If the second attempt also fails, surface the partial output with error markers and require human completion. For high-stakes decisions—those tagged with [RISK_LEVEL]='high' or involving budget above a configured threshold—the harness should route the validated ADR to a human review queue and block downstream automation until approval is recorded.
Model choice matters here. Use a model with strong reasoning and structured output capabilities (GPT-4o, Claude 3.5 Sonnet, or equivalent). Enable structured output mode or JSON mode with the ADR schema passed as the response format. Log every prompt version, input hash, raw response, validation result, and reviewer action. This audit trail is essential because build-vs-buy decisions are frequently revisited when costs change, vendors evolve, or internal capability grows. Wire the harness to store completed ADRs in a versioned repository with the decision date, author, reviewer, and expiration date if the decision should be re-evaluated periodically. Do not use this prompt inside a fully automated pipeline that acts on the decision without human review—the prompt produces a recommendation, not an authorization.
Expected Output Contract
Fields, types, and validation rules for the structured build-vs-buy comparison output. Use this contract to parse, validate, and store the model response before presenting it to decision makers.
| Field or Element | Type or Format | Required | Validation Rule |
|---|---|---|---|
decision_summary | string (max 300 chars) | Must contain a clear recommendation (Build, Buy, Hybrid, or Defer) and one-sentence rationale. Parse check: starts with recommendation keyword. | |
options_considered | array of objects | Minimum 2 options, maximum 6. Each object must have name, description, and viability fields. Schema check: array length >= 2. | |
comparison_dimensions | array of objects | Each dimension object requires name, weight (0.0-1.0), build_score (1-5), buy_score (1-5), and evidence string. Weights must sum to 1.0 ± 0.05. Parse check: weight sum tolerance. | |
cost_analysis | object | Must contain build_estimate, buy_estimate, and time_horizon_months fields. Both estimates require currency, amount, and recurring boolean. Schema check: all nested fields present. | |
team_capability_assessment | object | Must contain current_capability (Low, Medium, High), learning_curve (Low, Medium, High), and hiring_feasibility (Low, Medium, High). Enum check: values match allowed set. | |
maintenance_burden | object | Must contain build_maintenance (Low, Medium, High), buy_maintenance (Low, Medium, High), and staffing_impact string. Enum check on severity fields. | |
strategic_fit | object | Must contain core_to_business (true, false), differentiation_potential (Low, Medium, High), and long_term_alignment string. Boolean check on core_to_business. | |
risk_register | array of objects | Each risk object requires description, likelihood (Low, Medium, High), impact (Low, Medium, High), and mitigation string. Minimum 2 risks per option. Schema check: array length >= 2. | |
bias_checks | object | Must contain nih_syndrome_flag (true, false), vendor_lockin_flag (true, false), and bias_rationale string. If either flag is true, bias_rationale must be non-empty. Conditional check: flag triggers rationale requirement. | |
confidence_level | string | Must be one of High, Medium, Low. If Low, decision_summary must recommend Defer or include explicit uncertainty caveat. Enum check plus conditional logic. | |
evidence_sources | array of strings | Each entry must be a non-empty string referencing a document, meeting, prototype result, or vendor assessment. Null allowed if no external evidence was provided in [CONTEXT]. | |
human_review_required | boolean | Must be true if confidence_level is Low, or if total cost exceeds [COST_THRESHOLD], or if strategic_fit.core_to_business is true. Conditional check: auto-set validation rule. |
Common Failure Modes
Build vs. buy decisions are prone to systematic errors that can lead to costly misinvestments. These cards identify the most common failure modes and provide concrete guardrails to catch them before the decision is finalized.
NIH Syndrome Bias
What to watch: The prompt overweights in-house capability advantages while dismissing viable external solutions with superficial objections. The output reads like a justification for building rather than a balanced comparison. Guardrail: Add a constraint requiring at least two strong arguments for the non-preferred option and a dedicated 'best case for buying' section. Run a secondary review pass asking the model to argue the opposite position.
Vendor Lock-In Underestimation
What to watch: The prompt treats switching costs as negligible or omits them entirely. Migration complexity, data portability, and contract termination penalties are absent from the trade-off analysis. Guardrail: Add a mandatory 'lock-in risk' dimension to the evaluation schema with explicit sub-criteria: data export feasibility, API substitutability, contract exit terms, and estimated migration effort in engineer-weeks.
Hidden Cost Omission
What to watch: The prompt compares only visible costs (license fees vs. developer salaries) while ignoring integration, training, ongoing maintenance, compliance overhead, and opportunity cost. The build option looks artificially cheap. Guardrail: Require a total-cost-of-ownership model covering a 3-year horizon with line items for integration, onboarding, maintenance, upgrades, and decommissioning. Flag any option missing more than two cost categories.
Team Capability Overestimation
What to watch: The prompt assumes the team can build and maintain the capability without evidence. Current workload, skill gaps, and competing priorities are ignored. The output projects unrealistic velocity. Guardrail: Add a required 'team readiness assessment' section that references actual capacity data, skill inventories, and current commitments. Require the prompt to flag capability gaps with a confidence level and mitigation plan.
Requirements Instability Blindness
What to watch: The prompt evaluates options against a static requirements snapshot without considering how needs might evolve. The chosen option fails when requirements shift six months later. Guardrail: Add a 'requirements volatility' input field and require the prompt to stress-test each option against three plausible requirement-change scenarios. Output must include a flexibility score and adaptation cost estimate for each scenario.
False Equivalence in Comparison
What to watch: The prompt compares a fully scoped build estimate against a vendor's marketing claims without adjusting for implementation reality. Build estimates include buffers while vendor capabilities are taken at face value. Guardrail: Require evidence grounding for all vendor claims—documentation links, case studies, or proof-of-concept results. Add a 'confidence adjustment' factor that discounts unverified vendor claims by a stated percentage before comparison.
Evaluation Rubric
Score each dimension on a 1-4 scale. A passing output scores 3 or higher on all dimensions. Use this rubric in an LLM-as-judge harness or manual review before accepting the ADR.
| Criterion | Pass Standard | Failure Signal | Test Method |
|---|---|---|---|
Option Completeness | All plausible options are enumerated, including build, buy, hybrid, and status-quo. No obvious alternative is omitted. | Missing a known option such as an open-source fork, a managed service, or a phased hybrid approach. | Check the options list against a known reference set for the domain. Flag if fewer than 3 distinct options are presented. |
Criteria Coverage | Evaluation criteria span cost, control, maintenance burden, team capability, strategic fit, and risk. No major dimension is absent. | Criteria are limited to cost and speed only, ignoring long-term ownership cost, hiring difficulty, or vendor lock-in risk. | Parse the criteria list and verify presence of at least one entry per required dimension. Flag missing dimensions. |
Evidence Quality | Each option's score is supported by concrete evidence: documentation references, prototype results, vendor SLAs, or team skill assessments. | Scores are asserted without source grounding, or evidence is generic and could apply to any option. | For each score claim, check for a linked source, citation, or specific observation. Flag unsupported claims. |
Bias Detection | The analysis explicitly checks for NIH syndrome, vendor lock-in risk, and recency bias. Mitigation notes are present. | The build option is consistently scored higher on all criteria without justification, or the most marketed vendor is selected without scrutiny. | Run a bias detection prompt that flags one-sided scoring patterns. Check for explicit bias acknowledgment in the rationale section. |
Trade-Off Transparency | The decision rationale acknowledges what is sacrificed by the chosen option and why that sacrifice is acceptable. | The rationale presents the chosen option as superior in every dimension with no downside acknowledged. | Search the rationale for concession language such as 'at the cost of', 'we accept', or 'trade-off'. Flag if absent. |
Strategic Alignment | The decision explicitly connects to team strategy, roadmap priorities, and core vs. context assessment. | The decision is justified purely on technical merit without reference to business strategy or team capacity. | Check for references to company strategy, team charter, or roadmap items. Flag if only technical factors are cited. |
Actionability | The ADR includes concrete next steps: owner, timeline, success criteria, and a review trigger for revisiting the decision. | The ADR ends with the decision statement and no implementation or review plan. | Parse for fields such as owner, deadline, success metric, and review date. Flag if any are missing or null. |
Risk Documentation | Risks for the chosen option are documented with likelihood, impact, and mitigation. A fallback or exit plan is described. | Risks are listed as bullet points without severity, or the fallback plan is 'revisit later' with no trigger condition. | Check for a risk table or structured risk section with likelihood, impact, and mitigation columns. Flag if fewer than 2 risks are documented. |
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
Add strict JSON output schema with required fields for each option, weighted scoring, and rationale. Include retry logic for schema validation failures. Add logging for every decision output with model version, timestamp, and input hash. Wire in eval cases that check for balanced option coverage and bias detection.
Prompt snippet
codeYou are an architect producing a build vs buy ADR for [CAPABILITY]. Input: - Problem: [PROBLEM_DESCRIPTION] - Constraints: [CONSTRAINTS] - Team context: [TEAM_CAPABILITY] - Budget: [BUDGET_RANGE] - Timeline: [TIMELINE] Output schema: { "decision": "build | buy | hybrid | defer", "options": [ { "name": "string", "scores": {"cost": 1-5, "control": 1-5, "maintenance_burden": 1-5, "team_fit": 1-5, "strategic_fit": 1-5}, "rationale": "string", "risks": ["string"] } ], "trade_off_summary": "string", "bias_checks": {"nih_syndrome": "string", "vendor_lockin": "string"}, "recommendation": "string", "assumptions": ["string"] } Include at minimum: build in-house, buy off-the-shelf, and hybrid or defer options.
Watch for
- Silent format drift when model changes versions
- Missing human review gate before ADR merge
- Scores without evidence or justification
- Bias checks that are pro-forma rather than substantive

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