Identify Assumptions — Structured Risk Analysis
Purpose
Surface risky assumptions that could undermine a feature if left unvalidated. Outputs in a structured, actionable format that integrates directly into requirements documents and meeting summaries.
Domain-agnostic. Works for any feature, any industry, any platform.
Step 1: Gather context
Read all available inputs:
- Feature description, PRD, or requirements document
- Scenario matrix (if available from a prior pipeline stage)
- User flows (if available)
- Meeting transcripts or summaries (if available)
- Any constraints, variables, or rules already identified
If running as part of the requirements-pipeline, these inputs are passed from Stage 4 (Scenario Matrix).
Step 2: Multi-perspective analysis
Think through the feature from three perspectives, specifically looking for what could go wrong:
Product Manager perspective
- Does this solve a real problem? Is the problem validated?
- Will the target users actually use this? Is there adoption risk?
- Does this align with business strategy? Could priorities shift?
- Are the success metrics realistic? Can we actually measure them?
- Are there regulatory, legal, or compliance assumptions?
Designer perspective
- Will users understand how to use this without training?
- Are there accessibility barriers?
- Does the flow handle all states (empty, error, loading, edge cases)?
- Are there assumptions about user behavior that haven't been validated?
- Is the cognitive load reasonable for the target user?
Engineer perspective
- Can this be built with existing infrastructure, or does it require new systems?
- Are there performance assumptions (response time, data volume, concurrency)?
- Are there integration dependencies that could delay or block delivery?
- Are there assumptions about data availability, format, or quality?
- Are there assumptions about third-party system behavior or SLAs?
Step 3: Categorize by risk area
Group assumptions into four risk areas:
| Risk Area |
What It Covers |
Key Question |
| Value |
Will it create value? Does it solve a real problem? |
"If this assumption is wrong, does anyone want this feature?" |
| Usability |
Will users figure out how to use it? |
"If this assumption is wrong, will users fail or abandon the flow?" |
| Viability |
Can the business support it? (Legal, ops, finance, marketing) |
"If this assumption is wrong, can we ship or sustain this?" |
| Feasibility |
Can it be built? (Tech, integrations, data, performance) |
"If this assumption is wrong, can we build this on time and budget?" |
Step 4: Structure each assumption
Every assumption MUST use this format:
### ASSUMPTION: [Clear, falsifiable statement]
- **SOURCE:** [Where this assumption originated — e.g., "March 11 transcript, Decision 3", "FigJam flow, Screen 2", "PRD v0.1, Section 4", "Engineer brainstorm", or "Implicit — not stated in any input"]
- **STATUS:** [Not confirmed / Partially confirmed / Confirmed / Contradicted]
- **RISK AREA:** [Value / Usability / Viability / Feasibility]
- **EVIDENCE:** [What supports this assumption — cite source document and section, or "None — untested"]
- **VALIDATE WITH:** [Specific person, role, or team] | **BY WHEN:** [Date, milestone, or "Before [stage]"]
- **RISK IF WRONG:** [Concrete consequence — what changes in the design, what gets blocked, what breaks]
- **SUGGESTED TEST:** [How to validate — question to ask, data to check, experiment to run]
Rules for good assumptions:
- Falsifiable. "Users will like this" is not falsifiable. "Officers will complete the attestation in under 10 seconds" is.
- Specific. "The system works" is not specific. "WFM API returns penalty pay records within 3 seconds" is.
- One assumption per block. Don't combine multiple assumptions into one.
- Traceable. Every assumption must have a SOURCE. If it came from a meeting, cite the meeting date and decision number. If it came from a design, cite the screen or flow. If it was surfaced during analysis (not in any input), say "Implicit" — this flags it for extra validation.
Step 5: Prioritize assumptions
After identifying all assumptions, sort them by risk level:
| Priority |
Criteria |
Action |
| HIGH |
If wrong, blocks the feature or creates legal/compliance/financial exposure |
Must validate before design begins |
| MEDIUM |
If wrong, degrades quality or requires significant rework |
Should validate before development begins |
| LOW |
If wrong, minor impact — can be corrected post-launch |
Track and validate opportunistically |
Present assumptions grouped by priority, then by risk area within each priority group.
Step 6: Cross-reference with scenario matrix (if available)
If a scenario matrix exists from a prior pipeline stage:
| Check |
What to look for |
| Uncovered scenarios |
Are there scenarios in the matrix that depend on an unvalidated assumption? Flag them. |
| Boundary assumptions |
Are the threshold values in the matrix assumed or confirmed? (e.g., "3.5 hours" — is this validated?) |
| Missing actor assumptions |
Does the matrix assume an actor will behave a certain way without validation? |
Step 7: Present for review
Present the full assumptions list to the user:
## Assumptions Analysis: [Feature Name]
**Total assumptions identified:** [N]
**By priority:** [X] HIGH, [Y] MEDIUM, [Z] LOW
**By risk area:** [N] Value, [N] Usability, [N] Viability, [N] Feasibility
---
### HIGH — Must validate before design
[Assumption blocks in structured format]
### MEDIUM — Should validate before development
[Assumption blocks]
### LOW — Track and validate opportunistically
[Assumption blocks]
Save the output as: [Feature]-Assumptions.md
Step 8: Integration with requirements document
When assumptions are incorporated into a requirements document:
- Assumptions table — Add each assumption as a numbered row in the document's assumptions section, preserving the SOURCE / STATUS / VALIDATE WITH / BY WHEN fields. The SOURCE column links the assumption back to its origin (transcript, design, stakeholder, or "Implicit").
- Inline references — Where an assumption affects a specific requirement or flow, add
(See Assumption [N]) inline.
- Dependencies — HIGH-priority unvalidated assumptions should also appear in the Dependencies & Blockers section with an owner and impact statement.
- Source traceability — Every requirement, decision, and assumption in the final document should be traceable to its origin input. Use the format
(Source: [input name, section/decision]) — e.g., (Source: March 11 transcript, Decision 3) or (Source: FigJam flow, Screen 2). Assumptions surfaced during analysis that were not in any input should be tagged (Source: Implicit — surfaced during assumption analysis).
Critical Rules
- Never fabricate evidence. If an assumption has no supporting evidence, say "None — untested." Don't invent sources.
- Be constructive. The goal is to strengthen the feature, not kill it. Every assumption should have a suggested test.
- Falsifiable statements only. If you can't imagine evidence that would disprove the assumption, it's not specific enough.
- Domain-agnostic. Don't assume a specific industry, tech stack, or regulatory environment unless the inputs specify one.
- Consistent format. Every assumption uses the exact template from Step 4. No exceptions. This ensures downstream skills (document-audit, requirements generation) can parse and cross-reference them.
1---2name: identify-assumptions3description: Identify and structure risky assumptions for a feature using multi-perspective analysis (PM, Designer, Engineer) across four risk areas (Value, Usability, Viability, Feasibility). Outputs assumptions in structured format with STATUS, VALIDATE WITH, BY WHEN, and RISK IF WRONG — consistent with the transcript-to-meeting-notes assumption format. Use when stress-testing a feature idea, preparing for stakeholder review, or running assumptions analysis as part of a requirements pipeline.4---56# Identify Assumptions — Structured Risk Analysis78## Purpose910Surface risky assumptions that could undermine a feature if left unvalidated. Outputs in a structured, actionable format that integrates directly into requirements documents and meeting summaries.1112**Domain-agnostic.** Works for any feature, any industry, any platform.1314---1516## Step 1: Gather context1718Read all available inputs:19- Feature description, PRD, or requirements document20- Scenario matrix (if available from a prior pipeline stage)21- User flows (if available)22- Meeting transcripts or summaries (if available)23- Any constraints, variables, or rules already identified2425If running as part of the `requirements-pipeline`, these inputs are passed from Stage 4 (Scenario Matrix).2627---2829## Step 2: Multi-perspective analysis3031Think through the feature from three perspectives, specifically looking for what could go wrong:3233### Product Manager perspective34- Does this solve a real problem? Is the problem validated?35- Will the target users actually use this? Is there adoption risk?36- Does this align with business strategy? Could priorities shift?37- Are the success metrics realistic? Can we actually measure them?38- Are there regulatory, legal, or compliance assumptions?3940### Designer perspective41- Will users understand how to use this without training?42- Are there accessibility barriers?43- Does the flow handle all states (empty, error, loading, edge cases)?44- Are there assumptions about user behavior that haven't been validated?45- Is the cognitive load reasonable for the target user?4647### Engineer perspective48- Can this be built with existing infrastructure, or does it require new systems?49- Are there performance assumptions (response time, data volume, concurrency)?50- Are there integration dependencies that could delay or block delivery?51- Are there assumptions about data availability, format, or quality?52- Are there assumptions about third-party system behavior or SLAs?5354---5556## Step 3: Categorize by risk area5758Group assumptions into four risk areas:5960| Risk Area | What It Covers | Key Question |61|---|---|---|62| **Value** | Will it create value? Does it solve a real problem? | "If this assumption is wrong, does anyone want this feature?" |63| **Usability** | Will users figure out how to use it? | "If this assumption is wrong, will users fail or abandon the flow?" |64| **Viability** | Can the business support it? (Legal, ops, finance, marketing) | "If this assumption is wrong, can we ship or sustain this?" |65| **Feasibility** | Can it be built? (Tech, integrations, data, performance) | "If this assumption is wrong, can we build this on time and budget?" |6667---6869## Step 4: Structure each assumption7071**Every assumption MUST use this format:**7273```markdown74### ASSUMPTION: [Clear, falsifiable statement]75- **SOURCE:** [Where this assumption originated — e.g., "March 11 transcript, Decision 3", "FigJam flow, Screen 2", "PRD v0.1, Section 4", "Engineer brainstorm", or "Implicit — not stated in any input"]76- **STATUS:** [Not confirmed / Partially confirmed / Confirmed / Contradicted]77- **RISK AREA:** [Value / Usability / Viability / Feasibility]78- **EVIDENCE:** [What supports this assumption — cite source document and section, or "None — untested"]79- **VALIDATE WITH:** [Specific person, role, or team] | **BY WHEN:** [Date, milestone, or "Before [stage]"]80- **RISK IF WRONG:** [Concrete consequence — what changes in the design, what gets blocked, what breaks]81- **SUGGESTED TEST:** [How to validate — question to ask, data to check, experiment to run]82```8384### Rules for good assumptions:85- **Falsifiable.** "Users will like this" is not falsifiable. "Officers will complete the attestation in under 10 seconds" is.86- **Specific.** "The system works" is not specific. "WFM API returns penalty pay records within 3 seconds" is.87- **One assumption per block.** Don't combine multiple assumptions into one.88- **Traceable.** Every assumption must have a SOURCE. If it came from a meeting, cite the meeting date and decision number. If it came from a design, cite the screen or flow. If it was surfaced during analysis (not in any input), say "Implicit" — this flags it for extra validation.8990---9192## Step 5: Prioritize assumptions9394After identifying all assumptions, sort them by risk level:9596| Priority | Criteria | Action |97|---|---|---|98| **HIGH** | If wrong, blocks the feature or creates legal/compliance/financial exposure | Must validate before design begins |99| **MEDIUM** | If wrong, degrades quality or requires significant rework | Should validate before development begins |100| **LOW** | If wrong, minor impact — can be corrected post-launch | Track and validate opportunistically |101102Present assumptions grouped by priority, then by risk area within each priority group.103104---105106## Step 6: Cross-reference with scenario matrix (if available)107108If a scenario matrix exists from a prior pipeline stage:109110| Check | What to look for |111|---|---|112| **Uncovered scenarios** | Are there scenarios in the matrix that depend on an unvalidated assumption? Flag them. |113| **Boundary assumptions** | Are the threshold values in the matrix assumed or confirmed? (e.g., "3.5 hours" — is this validated?) |114| **Missing actor assumptions** | Does the matrix assume an actor will behave a certain way without validation? |115116---117118## Step 7: Present for review119120Present the full assumptions list to the user:121122```markdown123## Assumptions Analysis: [Feature Name]124125**Total assumptions identified:** [N]126**By priority:** [X] HIGH, [Y] MEDIUM, [Z] LOW127**By risk area:** [N] Value, [N] Usability, [N] Viability, [N] Feasibility128129---130131### HIGH — Must validate before design132133[Assumption blocks in structured format]134135### MEDIUM — Should validate before development136137[Assumption blocks]138139### LOW — Track and validate opportunistically140141[Assumption blocks]142```143144**Save the output as:** `[Feature]-Assumptions.md`145146---147148## Step 8: Integration with requirements document149150When assumptions are incorporated into a requirements document:1511521. **Assumptions table** — Add each assumption as a numbered row in the document's assumptions section, preserving the SOURCE / STATUS / VALIDATE WITH / BY WHEN fields. The SOURCE column links the assumption back to its origin (transcript, design, stakeholder, or "Implicit").1532. **Inline references** — Where an assumption affects a specific requirement or flow, add `(See Assumption [N])` inline.1543. **Dependencies** — HIGH-priority unvalidated assumptions should also appear in the Dependencies & Blockers section with an owner and impact statement.1554. **Source traceability** — Every requirement, decision, and assumption in the final document should be traceable to its origin input. Use the format `(Source: [input name, section/decision])` — e.g., `(Source: March 11 transcript, Decision 3)` or `(Source: FigJam flow, Screen 2)`. Assumptions surfaced during analysis that were not in any input should be tagged `(Source: Implicit — surfaced during assumption analysis)`.156157---158159## Critical Rules1601611. **Never fabricate evidence.** If an assumption has no supporting evidence, say "None — untested." Don't invent sources.1622. **Be constructive.** The goal is to strengthen the feature, not kill it. Every assumption should have a suggested test.1633. **Falsifiable statements only.** If you can't imagine evidence that would disprove the assumption, it's not specific enough.1644. **Domain-agnostic.** Don't assume a specific industry, tech stack, or regulatory environment unless the inputs specify one.1655. **Consistent format.** Every assumption uses the exact template from Step 4. No exceptions. This ensures downstream skills (document-audit, requirements generation) can parse and cross-reference them.