.claude/skills/prd-v05-technical-stack-selection/SKILL.md
Determine technologies needed to build the product, making build/buy/integrate decisions during PRD v0.5 Red Team Review. Handles both greenfield and brownfield contexts. Triggers on requests to select tech stack, evaluate technologies, make build vs. buy decisions, discover existing assets, or when user asks "what technologies?", "select tech stack", "build or buy?", "what do we reuse?", "existing stack", "technical decisions", "what tools do we need?", "evaluate solutions". Consumes FEA- (features), SCR- (screens), RISK- (constraints). Outputs TECH- entries with decisions, rationale, and trade-offs. Feeds v0.6 Architecture Design.
npx skillsauth add mattgierhart/PRD-driven-context-engineering prd-v05-technical-stack-selectionInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Make technology decisions for every capability your product needs — starting with what you already have, then evaluating what fits, then deciding what to build.
Position in workflow: v0.5 Risk Discovery Interview → v0.5 Technical Stack Selection → v0.6 Architecture Design
This skill requires prior work from v0.3-v0.5:
This skill assumes v0.5 Risk Discovery Interview is complete and FEA-/SCR-/RISK- entries provide the constraint foundation.
This skill creates/updates:
All TECH- entries should include:
Example TECH- entry (Buy decision with RISK constraint):
TECH-003: Authentication & Authorization
Decision Category: Buy (managed service)
Features Served: FEA-010 (user auth), FEA-020 (role-based access control) — both in MVP-SCOPE
Risk Constraints: RISK-005 (security: we have no in-house security expertise), RISK-008 (compliance: need SOC2 certification path)
Choice: Clerk (platform auth)
Rationale:
- Reduces security surface (RISK-005 mitigation: no password storage, no token handling)
- Provides SOC2 compliance path (RISK-008 mitigation)
- Includes MFA, passwordless, social login; UI handles all FEA-010 requirements without build
- 30 day free tier; $25–$500/mo at growth stage (acceptable for MVP runway)
Trade-offs:
- Plus: Zero auth code to maintain; future-proofs as compliance requirements evolve
- Minus: Vendor lock-in; customer data in Clerk's tables (acceptable for SMB stage)
Cost:
- MVP stage (0–10k users): ~$50–200/mo (free tier covers launch)
- 10x scale (100k users): ~$500–2000/mo (still cheaper than building in-house team)
Product Family Notes: If sibling products exist, Clerk can SSO across them using shared realm config (document in shared infrastructure EPIC)
Alternatives Considered:
- Firebase Auth: Similar, but tighter Google lock-in and slightly higher cost at scale
- Auth0: Too expensive for MVP stage; better for enterprise products
- Build custom: Rejected — RISK-005 says we lack in-house security expertise; not a differentiator
Next Step: If TECH-005 (Research: custom data encryption) decides to build, reconsider Auth0 for compliance sync
Example TECH- entry (Reuse decision from brownfield):
TECH-001: Frontend Framework
Decision Category: Reuse
Features Served: FEA-006 (dashboard), FEA-007 (reports), all screen components — every UI in MVP-SCOPE
Risk Constraints: None (no frontend risk identified)
Existing Asset: React + Next.js (running in sibling product since 2023)
Rationale:
- Already deployed, proven stable at 50k users
- Team expertise established; no learning curve
- Incremental cost: just new feature builds, no framework evaluation/migration risk
- Shared component library available (DES-001–005 can import existing primitives)
Cost: $0 incremental (infrastructure already paid)
Product Family Notes: Share component library and auth context across products using monorepo structure (document in shared infrastructure EPIC)
| Category | Definition | When to Choose | | --- | --- | --- | | Reuse | Existing asset covers this need as-is | Sibling product or prior work already solves this | | Extend | Existing asset needs augmentation | Asset exists but needs new capabilities for this product | | New | No existing asset, greenfield decision | No prior work; need full evaluation | | Replace | Existing asset doesn't fit, needs new solution | Current tool/service is wrong for this product's requirements | | Build | Create custom solution | Core differentiator, no good alternatives, full control needed | | Buy | Use paid service or managed product | Commodity capability, proven solutions exist, not a differentiator | | Integrate | Connect to external platform or API | Ecosystem play, user expects it, data lives elsewhere | | Research | Need POC before deciding | High uncertainty, multiple viable options, significant commitment |
Evaluation order: Reuse → Vendor-fit → Non-vendor alternatives → Build custom. Default to Buy for everything that isn't a core differentiator.
| Factor | Favors Reuse/Extend | Favors Buy (Vendor) | Favors Buy (Non-Vendor) | Favors Build | | --- | --- | --- | --- | --- | | Existing asset | Already deployed and working | Vendor has a product | Non-vendor product fits better | Nothing fits | | Differentiation | Not relevant | Commodity capability | Commodity capability | Core to value prop | | Vendor alignment | Already committed | Vendor product fits | Vendor has gap or poor fit | No vendor option | | Compliance | Already compliant | Vendor product is compliant | Non-vendor has compliance cert | Must control compliance | | Team expertise | Team already operates it | Managed service, less expertise needed | Team knows this tool | Team has deep knowledge | | Cost | Sunk cost, incremental only | Reasonable vendor pricing | Better price/fit ratio | Long-term cost lower |
Strong Reuse signals:
Strong Build signals:
Strong Buy signals:
Adaptive approach: Check SOT first, then fill gaps with user interview.
If TECH- entries exist in SoT.TECHNICAL_DECISIONS.md:
Read existing entries. Present a summary to the user: "I found these existing technology decisions: [list]. Are these still current? Any changes since these were documented?"
If SOT is empty (first time running this skill): Interview the user with these discovery questions:
"Does an existing product family exist with established technology choices?"
references/brownfield.md for asset discovery workflow"What is the current tech stack?" (ask per area)
"Are there vendor constraints (e.g., must use AWS, Azure, or another preferred platform)?"
"Is this a regulated industry (healthcare, finance, government)?"
Create a summary table:
| Capability Area | Existing Asset | Status | | --- | --- | --- | | [derived from FEA-/RISK-] | [what exists or "None"] | [Reuse / Extend / New / Replace] |
For each capability required by FEA- and RISK- entries, categorize:
| Category | Criteria | Action |
| --- | --- | --- |
| Reuse | Existing asset covers the need as-is | Create lightweight TECH- entry (use assets/tech-reuse.md) |
| Extend | Existing asset needs augmentation | Create TECH- entry documenting what changes are needed |
| New | No existing asset, greenfield decision | Proceed to Steps 3-4 for full evaluation |
| Replace | Existing asset is wrong for this product | Proceed to Steps 3-4; document what's being replaced and why |
Derive capability areas from upstream IDs, not a fixed list. Read FEA- entries and ask: "What technical capability does this feature require?" Read RISK- entries and ask: "Does this risk constrain or require a specific technology?"
Do not walk a generic layer checklist. Every capability area should trace to at least one FEA- or RISK- entry.
For context, here are common technology layers in modern products:
| Layer | Questions to Answer | Common Options | | --- | --- | --- | | Frontend | Framework? Hosting? Mobile/Web? | React, Vue, Next.js, Vercel | | Backend | Language? Framework? Serverless? | Node, Python, Go, AWS Lambda | | Database | SQL/NoSQL? Managed? | PostgreSQL, MongoDB, Supabase | | Auth | Build or buy? SSO? | Auth0, Clerk, Firebase Auth | | Payments | If monetized, processor? | Stripe, Paddle, LemonSqueezy | | Infrastructure | Cloud? Edge? CDN? | AWS, GCP, Vercel, Cloudflare | | Integrations | External services? APIs? | Depends on product | | AI/ML | Models? Services? | OpenAI, Anthropic, local models | | Analytics | Product analytics? Error tracking? | Mixpanel, PostHog, Sentry | | DevOps | CI/CD? Monitoring? | GitHub Actions, Datadog |
For each "New" or "Replace" layer from Step 2:
Evaluation criteria for vendor products (or any Buy option):
| Criterion | Questions | | --- | --- | | Fit | Does the vendor product solve our specific need? Feature gaps? | | Compliance | Does it meet our regulatory requirements (from RISK- entries)? | | Cost | What's the pricing at your current stage? Can you afford it until you reach product-market fit? (Cost optimization comes later, not MVP.) | | Maturity | Production-ready? Documentation quality? Active development? | | Integration | How hard to integrate? Does it work with our existing stack? |
If your team has vendor constraints: Create or load a vendor catalog reference that maps capability areas to vendor products and notes compliance certifications (e.g., HIPAA, SOC2, FedRAMP). Use assets/evaluation-scorecard.md for structured comparison when multiple options exist.
For layers where vendor options don't exist or have poor fit:
For Research items, define:
Use assets/evaluation-scorecard.md for structured scoring when comparing options.
Only if sibling products were discovered in Step 1. Skip for solo/greenfield products.
Lightweight checklist:
Document answers in relevant TECH- entries under "Product Family Notes."
For each technology decision, create a TECH- entry using the appropriate template:
assets/tech-reuse.md (lighter template)assets/tech.md (standard template)Mandatory fields for every TECH- entry:
All TECH- entries are written to SoT.TECHNICAL_DECISIONS.md. The skill produces entries; the SoT stores them.
See references/examples.md for 3 filled examples (Reuse, Buy, Research).
Cross-reference every TECH- entry with RISK- constraints:
| Risk | Score | Technology Response | | --- | --- | --- | | RISK-XXX | [score] | TECH-XXX addresses this by [how] |
If a RISK- entry has no corresponding TECH- response, flag it as an unmitigated risk requiring attention before proceeding to v0.6.
Before proceeding to v0.6 Architecture Design:
| Pattern | Signal | Fix | | --- | --- | --- | | Resume-driven development | "Let's use [hot new tech]" | Choose boring technology for non-differentiators | | Evaluate everything | Scoring auth when Keycloak already works | Categorize Reuse/Extend/New/Replace first | | Greenfield assumption | "Pick a frontend framework" when React exists | Discover existing assets before evaluating | | Build everything | No Buy/Integrate decisions | Challenge: is this really a differentiator? | | Buy everything | No Build decisions | Some things must be custom for your moat | | Analysis paralysis | Research everything | Time-box research; decide with 70% confidence | | Ignoring constraints | Tech choice conflicts with RISK- | Review RISK- entries before finalizing | | Premature cost optimization | "We must use the cheapest database" for MVP | Optimize for speed-to-market and quality first. Reduce costs after product-market fit. | | Cost blindness | No cost estimates on Buy decisions | Every TECH- needs realistic cost for your stage | | Over-engineering for scale | "We need Kubernetes for scale" | Design for 10x current needs, not 1000x unknown scale | | Orphan TECH- entry | TECH-003 references no FEA- or RISK- | Mandatory cross-reference in template | | SoT contamination | Decision rationale essays in SoT template | Methodology in skill; structure in SoT |
references/brownfield.md — Existing product family discovery workflow.
Load when user confirms existing products share infrastructure.
references/examples.md — Completed TECH- entry examples (Reuse, Buy, Research).
Load when producing TECH- entries to match format and depth.
assets/tech.md — Standard TECH- entry template for Replace/Build/Buy/Integrate/Research.
assets/tech-reuse.md — Lighter TECH- entry template for Reuse/Extend decisions.
assets/evaluation-scorecard.md — Weighted scorecard for comparing Buy/Integrate options.
| Consumer | What It Uses | Example | | --- | --- | --- | | v0.6 Architecture Design | TECH- selections define the system | TECH-001 → ARC-001 frontend architecture | | v0.6 Technical Specification | TECH- informs API design | TECH-003 → API-XXX data model constraints | | v0.7 Build Execution | TECH- Research items become spikes | TECH-005 (Research) → EPIC task | | Hiring/Resourcing | TECH- Build items define skills needed | TECH-010 (custom ML) → need ML engineer |
TECH- entries are complete when all quality gates pass. Next stage: v0.6 Architecture Design (downstream ownership). The downstream consumer should be able to start architecture work using only TECH- entries + upstream SoT files — no re-research needed.
tools
Make technology decisions for every product capability by discovering existing assets, evaluating vendor-aligned options, and categorizing as Reuse/Extend/Build/Buy/Integrate/Research during PRD v0.5 Red Team Review. Handles both greenfield and brownfield contexts. Triggers on "tech stack", "build or buy?", "what technologies?", "technical decisions", "what do we reuse?", "existing stack", "vendor constraint", "IBM-first", "what tools do we need?", "evaluate solutions", "select tech stack". Consumes FEA- (features), SCR- (screens), RISK- (constraints). Outputs TECH- entries with decisions, rationale, and cross-references. Feeds v0.6 Architecture Design.
development
Define success criteria and tracking setup for launch during PRD v0.9 Go-to-Market. Triggers on requests to define launch metrics, set up tracking, or when user asks "how do we measure launch success?", "launch KPIs", "tracking setup", "success criteria", "analytics", "launch goals". Outputs KPI- entries specialized for launch measurement.
development
Define go-to-market strategy including launch plan, messaging, channels, and timing during PRD v0.9 Go-to-Market. Triggers on requests to plan launch, define GTM strategy, or when user asks "how do we launch?", "go-to-market", "launch plan", "marketing strategy", "messaging", "launch channels", "GTM". Outputs GTM- entries with launch plan components.
development
Establish channels and processes for capturing and processing post-launch feedback during PRD v0.9 Go-to-Market. Triggers on requests to set up feedback systems, capture user input, or when user asks "how do we collect feedback?", "feedback loop", "user research", "post-launch feedback", "customer feedback", "NPS", "voice of customer". Outputs CFD- entries specialized for post-launch feedback capture.