Skip to content

Technical Discovery Workflow

Move from "can we build this?" to documented decisions with a structured spike-to-ADR pipeline.


Workflow Metadata

Field Value
Workflow Technical Discovery
Command /workflow-technical-discovery
Skills spike-summary -> adr -> design-rationale
Phases Covered Develop
Estimated Duration 1-3 hours
Prerequisite Inputs A technical question, feasibility concern, or architectural decision that needs structured exploration
Final Output A documented spike with findings, formal decision records, and design rationale explaining the "why" behind technical choices

When to Use This Workflow

Use the Technical Discovery workflow when:

  • Engineering has flagged a feasibility question that blocks PRD finalization
  • You need to evaluate build vs. buy, or choose between competing technical approaches
  • A spike has been completed and the findings need to be documented before they are lost
  • You are making an architectural decision that will be hard to reverse and want a durable record
  • You need to explain why a technical choice was made (not just what was chosen) for future team members

Do NOT use this workflow when:

  • You are defining what to build, not how to build it (use Customer Discovery or Feature Kickoff instead)
  • You need a full strategic analysis including competitive and stakeholder context (use Product Strategy instead)
  • The technical question is straightforward and does not require formal documentation

Workflow Steps

Step 1: Spike Summary

Skill: spike-summary Command: /spike-summary

What you do:

Document the findings from a technical exploration (spike). This could be a proof-of-concept, a technology evaluation, a performance benchmark, or an integration feasibility assessment.

Input requirements:

  • The question the spike was designed to answer
  • Findings: what was tested, what worked, what did not, performance data, limitations discovered
  • Time spent and scope of exploration

Output: A structured spike summary with objective, approach, findings, constraints discovered, and recommendation.

Handoff to next step: The spike's recommendation and constraints feed directly into the ADR. If the spike surfaced multiple viable options, each becomes an option in the ADR's "Options Considered" section.


Step 2: Architecture Decision Record

Skill: adr Command: /adr

What you do:

Formalize the architectural decision using the Nygard ADR format. Document the context, options considered, decision made, and consequences. This creates a permanent, searchable record.

Input requirements:

  • Spike summary from Step 1
  • Options evaluated (from spike findings or team discussion)
  • Constraints: budget, timeline, team expertise, existing systems, compliance requirements

Output: An ADR with title, status, context, decision, options considered (with pros/cons), consequences, and related decisions.

Handoff to next step: The ADR documents what was decided. The design rationale explains why in a way that is accessible to a broader audience, including non-technical stakeholders and future team members who need to understand the reasoning.


Step 3: Design Rationale

Skill: design-rationale Command: /design-rationale

What you do:

Write a design rationale that explains the reasoning behind the technical choice in human-readable terms. While the ADR is a formal record, the design rationale is a narrative explanation that connects the decision to product goals, user impact, and team values.

Input requirements:

  • ADR from Step 2
  • Product context: how does this technical choice affect the user experience, performance, or future extensibility?
  • Trade-offs: what did you give up, and why was that acceptable?

Output: A design rationale document explaining the decision's context, the reasoning process, trade-offs made, and how the choice supports product and business goals.


Context Flow Diagram

Technical Question / Feasibility Concern
       |
       v
[spike-summary]
  Exploration findings, constraints, recommendation
       |
       v
[adr]
  Formal decision record (Nygard format)
       |
       v
[design-rationale]
  Human-readable "why" narrative
graph LR
    A["spike-summary"] --> B["adr"]
    B --> C["design-rationale"]

Tips and Variations

Pre-spike version: If you are planning a spike (not documenting one already completed), run the workflow in reverse order. Start with design-rationale to articulate what you need to learn, use that to scope the spike, then document findings and formalize the ADR.

Multiple ADRs: Complex spikes often surface more than one decision. Create separate ADRs for each distinct architectural choice rather than cramming multiple decisions into one document.

Lightweight version: For smaller decisions, skip Step 3 (design-rationale) and let the ADR's context section serve double duty. Reserve the full design rationale for decisions with broad impact or high reversibility cost.

Team documentation standard: Adopt this workflow as your team's standard for documenting any spike. Over time, you build a searchable library of technical decisions that prevents re-litigating past choices and accelerates onboarding.

Pairing with other workflows: - Often triggered during Feature Kickoff or Product Strategy when a technical question surfaces - Feeds back into Sprint Planning once the decision is made (the spike findings inform story sizing and edge cases) - The ADR may be referenced in the Product Strategy workflow's Step 5


Quality Checklist

Before considering this workflow complete, verify:

  • Spike summary clearly states the question it was designed to answer
  • Spike summary includes concrete findings (data, benchmarks, code samples), not just opinions
  • ADR documents ALL options considered, including the rejected ones
  • ADR explains why rejected options were rejected, not just that they were
  • ADR consequences include both positive outcomes and trade-offs/risks
  • ADR has a clear status (Proposed, Accepted, Deprecated, Superseded)
  • Design rationale connects the technical decision to product/business goals
  • Design rationale is understandable by someone who was not part of the spike
  • All three documents are stored in a discoverable location (not buried in a Slack thread)

See Also

  • Product Strategy — For broader strategic context when the technical decision has strategic implications
  • Feature Kickoff — After feasibility is confirmed, move to execution with the full problem-to-launch flow
  • Sprint Planning — To break the confirmed solution into sprint-ready stories

Part of PM-Skills — Open source Product Management skills for AI agents