ultra-builder-pro-cli 0.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.ultra-template/delivery-report.json +9 -0
- package/.ultra-template/docs/research/README.md +53 -0
- package/.ultra-template/specs/architecture.md +250 -0
- package/.ultra-template/specs/discovery.md +248 -0
- package/.ultra-template/specs/product.md +223 -0
- package/.ultra-template/tasks/contexts/TEMPLATE.md +57 -0
- package/.ultra-template/tasks/tasks.json +33 -0
- package/.ultra-template/test-report.json +8 -0
- package/CHANGELOG.md +194 -0
- package/LICENSE +21 -0
- package/README.md +187 -0
- package/adapters/_shared/codex-assets.cjs +1128 -0
- package/adapters/_shared/codex-ultra-tools-entry.cjs +11 -0
- package/adapters/_shared/file-ops.cjs +115 -0
- package/adapters/_shared/frontmatter.cjs +52 -0
- package/adapters/_shared/handbook.cjs +144 -0
- package/adapters/_shared/md-to-toml.cjs +54 -0
- package/adapters/_shared/path-rewrite.cjs +79 -0
- package/adapters/_shared/rtk-detect.cjs +86 -0
- package/adapters/_shared/runtime-assets.cjs +70 -0
- package/adapters/_shared/settings-merge.cjs +76 -0
- package/adapters/_shared/tests/file-ops.test.cjs +54 -0
- package/adapters/_shared/tests/frontmatter.test.cjs +47 -0
- package/adapters/_shared/tests/handbook.test.cjs +86 -0
- package/adapters/_shared/tests/md-to-toml.test.cjs +48 -0
- package/adapters/_shared/tests/path-rewrite.test.cjs +60 -0
- package/adapters/_shared/tests/resolve-target.test.cjs +85 -0
- package/adapters/_shared/tests/rtk-detect.test.cjs +116 -0
- package/adapters/_shared/tests/runtime-assets.test.cjs +107 -0
- package/adapters/_shared/tests/settings-merge.test.cjs +85 -0
- package/adapters/_shared/tests/validate.test.cjs +30 -0
- package/adapters/_shared/validate.cjs +24 -0
- package/adapters/claude.js +182 -0
- package/adapters/codex.js +385 -0
- package/adapters/gemini.js +204 -0
- package/adapters/opencode.js +506 -0
- package/adapters/tests/claude.test.cjs +117 -0
- package/adapters/tests/codex-hook.test.cjs +90 -0
- package/adapters/tests/codex.test.cjs +356 -0
- package/adapters/tests/gemini.test.cjs +112 -0
- package/adapters/tests/opencode.test.cjs +246 -0
- package/agents/code-reviewer.md +102 -0
- package/agents/debugger.md +127 -0
- package/agents/review-code.md +125 -0
- package/agents/review-comments.md +98 -0
- package/agents/review-coordinator.md +146 -0
- package/agents/review-design.md +133 -0
- package/agents/review-errors.md +87 -0
- package/agents/review-tests.md +93 -0
- package/agents/tdd-runner.md +92 -0
- package/bin/handbook.js +54 -0
- package/bin/install.js +254 -0
- package/bin/orchestrator.js +214 -0
- package/commands/learn.md +41 -0
- package/commands/ultra-deliver.md +45 -0
- package/commands/ultra-dev.md +50 -0
- package/commands/ultra-init.md +51 -0
- package/commands/ultra-plan.md +49 -0
- package/commands/ultra-research.md +59 -0
- package/commands/ultra-status.md +46 -0
- package/commands/ultra-test.md +48 -0
- package/commands/ultra-think.md +45 -0
- package/docs/AGENT-CONTEXT.md +143 -0
- package/docs/ARCHITECTURE.md +197 -0
- package/docs/COMMIT-HASH-BACKFILL.md +101 -0
- package/docs/LEGACY-HERMES.md +1175 -0
- package/docs/PLAN.zh-CN.md +1683 -0
- package/docs/ROADMAP.md +102 -0
- package/docs/RUNTIME-COMPAT-MATRIX.md +98 -0
- package/docs/STATE-DB-ACCESS-POLICY.md +109 -0
- package/docs/USER-HANDBOOK-CONTRACT.md +61 -0
- package/hooks/README.md +24 -0
- package/hooks/active_task_context.py +44 -0
- package/hooks/adapters/codex.py +302 -0
- package/hooks/health_check.py +61 -0
- package/hooks/pre_stop_check.py +56 -0
- package/hooks/subagent_tracker.py +116 -0
- package/hooks/workflow_checkpoint.py +56 -0
- package/hooks/workflow_context.py +63 -0
- package/hooks/workflow_resume.py +50 -0
- package/mcp-server/lib/init-project.cjs +162 -0
- package/mcp-server/lib/llm-client.cjs +157 -0
- package/mcp-server/lib/llm-client.test.cjs +156 -0
- package/mcp-server/lib/plan-store.cjs +96 -0
- package/mcp-server/lib/plan-store.test.cjs +132 -0
- package/mcp-server/lib/prd-parser.cjs +110 -0
- package/mcp-server/lib/prd-parser.test.cjs +171 -0
- package/mcp-server/lib/pricing.cjs +53 -0
- package/mcp-server/lib/projector.cjs +158 -0
- package/mcp-server/lib/state-db.cjs +113 -0
- package/mcp-server/lib/state-db.test.cjs +116 -0
- package/mcp-server/lib/state-ops.cjs +725 -0
- package/mcp-server/lib/task-expander.cjs +123 -0
- package/mcp-server/lib/task-expander.test.cjs +253 -0
- package/mcp-server/lib/telemetry.cjs +72 -0
- package/mcp-server/lib/topo.cjs +131 -0
- package/mcp-server/lib/topo.test.cjs +158 -0
- package/mcp-server/server.cjs +482 -0
- package/mcp-server/tests/circuit-breaker.test.cjs +125 -0
- package/mcp-server/tests/commit-hash-flow.test.cjs +117 -0
- package/mcp-server/tests/concurrency-update.test.cjs +96 -0
- package/mcp-server/tests/concurrency.test.cjs +112 -0
- package/mcp-server/tests/db-ops.test.cjs +117 -0
- package/mcp-server/tests/init-project.test.cjs +141 -0
- package/mcp-server/tests/migrate.test.cjs +144 -0
- package/mcp-server/tests/projector.test.cjs +130 -0
- package/mcp-server/tests/server-contract.test.cjs +750 -0
- package/mcp-server/tests/staleness.test.cjs +190 -0
- package/mcp-server/tests/state-ops.test.cjs +286 -0
- package/mcp-server/tests/tagged-tasks.test.cjs +163 -0
- package/mcp-server/tests/telemetry.test.cjs +205 -0
- package/orchestrator/auto-merge.cjs +109 -0
- package/orchestrator/code-graph-watcher.cjs +121 -0
- package/orchestrator/daemon.cjs +112 -0
- package/orchestrator/dispatch-rules.cjs +93 -0
- package/orchestrator/parallel-orchestrator.cjs +195 -0
- package/orchestrator/planner/expand-prompt.cjs +62 -0
- package/orchestrator/planner/expand-prompt.test.cjs +52 -0
- package/orchestrator/planner/plan-builder.cjs +116 -0
- package/orchestrator/planner/plan-builder.test.cjs +165 -0
- package/orchestrator/planner/prd-prompt.cjs +44 -0
- package/orchestrator/planner/prd-prompt.test.cjs +30 -0
- package/orchestrator/recovery.cjs +70 -0
- package/orchestrator/session-runner.cjs +224 -0
- package/orchestrator/skill-miner.cjs +133 -0
- package/orchestrator/tests/auto-merge.test.cjs +216 -0
- package/orchestrator/tests/code-graph-watcher.test.cjs +183 -0
- package/orchestrator/tests/daemon.test.cjs +260 -0
- package/orchestrator/tests/dispatch-rules.test.cjs +122 -0
- package/orchestrator/tests/parallel-orchestrator.test.cjs +233 -0
- package/orchestrator/tests/phase-8b-gate.test.cjs +183 -0
- package/orchestrator/tests/recovery.test.cjs +190 -0
- package/orchestrator/tests/session-runner.test.cjs +314 -0
- package/orchestrator/tests/skill-miner.test.cjs +147 -0
- package/orchestrator/tests/worktree-manager.test.cjs +148 -0
- package/orchestrator/worktree-manager.cjs +131 -0
- package/output-styles/coding-vibes.md +67 -0
- package/output-styles/structural-thinking.md +61 -0
- package/package.json +109 -0
- package/settings.json +8 -0
- package/skills/cc-collab/SKILL.md +41 -0
- package/skills/code-review-expert/SKILL.md +118 -0
- package/skills/code-review-expert/references/code-quality-checklist.md +112 -0
- package/skills/code-review-expert/references/integration-checklist.md +46 -0
- package/skills/code-review-expert/references/removal-plan.md +52 -0
- package/skills/code-review-expert/references/security-checklist.md +100 -0
- package/skills/code-review-expert/references/solid-checklist.md +65 -0
- package/skills/codex-collab/SKILL.md +52 -0
- package/skills/codex-collab/evals/evals.json +40 -0
- package/skills/gemini-collab/SKILL.md +51 -0
- package/skills/gemini-collab/evals/evals.json +42 -0
- package/skills/integration-rules/SKILL.md +71 -0
- package/skills/learn/SKILL.md +117 -0
- package/skills/security-rules/SKILL.md +60 -0
- package/skills/testing-rules/SKILL.md +56 -0
- package/skills/ultra-deliver/SKILL.md +171 -0
- package/skills/ultra-dev/SKILL.md +324 -0
- package/skills/ultra-init/SKILL.md +148 -0
- package/skills/ultra-plan/SKILL.md +314 -0
- package/skills/ultra-research/SKILL.md +156 -0
- package/skills/ultra-research/steps/step-00-problem-validation.md +154 -0
- package/skills/ultra-research/steps/step-01-opportunity-discovery.md +172 -0
- package/skills/ultra-research/steps/step-02-market-assessment.md +195 -0
- package/skills/ultra-research/steps/step-03-competitive-landscape.md +197 -0
- package/skills/ultra-research/steps/step-04-product-strategy.md +196 -0
- package/skills/ultra-research/steps/step-05-assumptions-validation.md +234 -0
- package/skills/ultra-research/steps/step-10-user-personas.md +169 -0
- package/skills/ultra-research/steps/step-11-user-scenarios.md +181 -0
- package/skills/ultra-research/steps/step-20-user-stories.md +156 -0
- package/skills/ultra-research/steps/step-21-features-scope.md +157 -0
- package/skills/ultra-research/steps/step-22-success-metrics.md +195 -0
- package/skills/ultra-research/steps/step-30-architecture-context.md +154 -0
- package/skills/ultra-research/steps/step-31-solution-strategy.md +172 -0
- package/skills/ultra-research/steps/step-32-building-blocks.md +188 -0
- package/skills/ultra-research/steps/step-40-deployment.md +123 -0
- package/skills/ultra-research/steps/step-41-quality-risks.md +135 -0
- package/skills/ultra-research/steps/step-99-synthesis.md +188 -0
- package/skills/ultra-review/SKILL.md +437 -0
- package/skills/ultra-review/references/unified-schema.md +127 -0
- package/skills/ultra-review/scripts/review_verdict_update.py +99 -0
- package/skills/ultra-review/scripts/review_wait.py +120 -0
- package/skills/ultra-status/SKILL.md +162 -0
- package/skills/ultra-test/SKILL.md +195 -0
- package/skills/ultra-think/SKILL.md +109 -0
- package/skills/ultra-verify/SKILL.md +111 -0
- package/skills/ultra-verify/evals/evals.json +51 -0
- package/skills/ultra-verify/references/confidence-system.md +38 -0
- package/skills/ultra-verify/references/cross-verify-modes.md +73 -0
- package/skills/ultra-verify/scripts/verify_wait.py +131 -0
- package/spec/cli-protocol.md +118 -0
- package/spec/mcp-tools.yaml +658 -0
- package/spec/schemas/command-manifest.schema.json +47 -0
- package/spec/schemas/context-file.v4.5.schema.json +54 -0
- package/spec/schemas/mcp-tools.schema.json +136 -0
- package/spec/schemas/skill-manifest.schema.json +94 -0
- package/spec/schemas/state-db.sql +154 -0
- package/spec/schemas/tasks.v4.5.schema.json +66 -0
- package/ultra-tools/cli.cjs +121 -0
- package/ultra-tools/commands/db.cjs +175 -0
- package/ultra-tools/commands/legacy-memory.cjs +159 -0
- package/ultra-tools/commands/migrate.cjs +354 -0
- package/ultra-tools/commands/session.cjs +180 -0
- package/ultra-tools/commands/status.cjs +158 -0
- package/ultra-tools/commands/task.cjs +95 -0
- package/ultra-tools/legacy-memory.test.cjs +80 -0
- package/ultra-tools/status-command.test.cjs +132 -0
|
@@ -0,0 +1,197 @@
|
|
|
1
|
+
# Step 03: Competitive Landscape
|
|
2
|
+
|
|
3
|
+
## MANDATORY EXECUTION RULES
|
|
4
|
+
|
|
5
|
+
- WEB SEARCH REQUIRED — identify real competitors, not imagined ones
|
|
6
|
+
- INCLUDE "DO NOTHING" — the biggest competitor is often the status quo
|
|
7
|
+
- ANALYZE 2-5 DIRECT competitors + 1-2 indirect alternatives
|
|
8
|
+
- BE HONEST about where competitors are stronger
|
|
9
|
+
- WRITE output to spec file BEFORE presenting to user
|
|
10
|
+
- ALL output in English (spec files); conversation in Chinese
|
|
11
|
+
|
|
12
|
+
## PREREQUISITES
|
|
13
|
+
|
|
14
|
+
- Step 02 (Market Assessment) completed with [C]
|
|
15
|
+
- `.ultra/specs/discovery.md` §0-2 exist
|
|
16
|
+
|
|
17
|
+
## CONTEXT BOUNDARIES
|
|
18
|
+
|
|
19
|
+
- Focus: Who else is solving this problem? How do we differentiate?
|
|
20
|
+
- Use the prioritized opportunities from step-01 to frame competitive analysis
|
|
21
|
+
- Analyze CURRENT competitors, not hypothetical future ones
|
|
22
|
+
- Include indirect competitors and the "do nothing" alternative
|
|
23
|
+
|
|
24
|
+
## SEARCH STRATEGY (MANDATORY)
|
|
25
|
+
|
|
26
|
+
Execute these web searches in parallel:
|
|
27
|
+
|
|
28
|
+
```
|
|
29
|
+
Search: "{{product_domain}} competitors comparison review"
|
|
30
|
+
Search: "{{product_domain}} alternatives tools software"
|
|
31
|
+
Search: "{{product_domain}} market leaders market share"
|
|
32
|
+
Search: "{{product_domain}} startup funding competitors"
|
|
33
|
+
Search: "{{product_domain}} vs [known competitor if any]"
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
For each identified competitor, execute:
|
|
37
|
+
```
|
|
38
|
+
Search: "[competitor name] pricing features review"
|
|
39
|
+
Search: "[competitor name] weaknesses complaints"
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
## EXECUTION SEQUENCE
|
|
43
|
+
|
|
44
|
+
### 1. Identify Competitive Players
|
|
45
|
+
|
|
46
|
+
Categorize all competitors found:
|
|
47
|
+
|
|
48
|
+
**Direct Competitors**: Products solving the same problem for the same segment
|
|
49
|
+
- Search for 2-5 direct competitors
|
|
50
|
+
- Include their funding, team size, and traction if available
|
|
51
|
+
|
|
52
|
+
**Indirect Competitors / Alternatives**: What customers use today instead
|
|
53
|
+
- Spreadsheets, manual processes, general-purpose tools
|
|
54
|
+
- Adjacent products that partially solve the problem
|
|
55
|
+
|
|
56
|
+
**"Do Nothing" Alternative**: What happens if the customer ignores the problem?
|
|
57
|
+
- What does inaction cost? (Reference step-00 status quo analysis)
|
|
58
|
+
- Why do some users choose to live with the pain?
|
|
59
|
+
|
|
60
|
+
### 2. Deep-Dive Each Competitor
|
|
61
|
+
|
|
62
|
+
For each direct competitor (2-5), research:
|
|
63
|
+
|
|
64
|
+
| Dimension | What to find |
|
|
65
|
+
|-----------|-------------|
|
|
66
|
+
| Core value prop | What do they promise? |
|
|
67
|
+
| Target segment | Who do they serve? |
|
|
68
|
+
| Pricing model | How do they charge? |
|
|
69
|
+
| Key strengths | What are they genuinely good at? |
|
|
70
|
+
| Key weaknesses | Where do users complain? (check reviews, forums) |
|
|
71
|
+
| Traction signals | Users, revenue, funding, growth |
|
|
72
|
+
| Defensibility | What makes them hard to beat? |
|
|
73
|
+
|
|
74
|
+
### 3. Porter's Five Forces (Brief)
|
|
75
|
+
|
|
76
|
+
Assess competitive intensity:
|
|
77
|
+
|
|
78
|
+
| Force | Rating (1-5) | Assessment |
|
|
79
|
+
|-------|-------------|-----------|
|
|
80
|
+
| Supplier power | | [Who controls key inputs?] |
|
|
81
|
+
| Buyer power | | [Can customers easily switch?] |
|
|
82
|
+
| New entrant threat | | [How easy to enter this market?] |
|
|
83
|
+
| Substitute threat | | [What alternatives exist?] |
|
|
84
|
+
| Rivalry intensity | | [How fierce is current competition?] |
|
|
85
|
+
|
|
86
|
+
### 4. Identify Our Competitive Edge
|
|
87
|
+
|
|
88
|
+
Based on the analysis, answer:
|
|
89
|
+
- Where can we win? (specific dimensions where we have an advantage)
|
|
90
|
+
- Where can we NOT win? (be honest — avoid head-to-head on competitor strengths)
|
|
91
|
+
- What is the gap that no one is filling?
|
|
92
|
+
|
|
93
|
+
### 5. Write Output
|
|
94
|
+
|
|
95
|
+
**WRITE IMMEDIATELY** to `.ultra/specs/discovery.md` §3:
|
|
96
|
+
|
|
97
|
+
```markdown
|
|
98
|
+
## §3 Competitive Landscape
|
|
99
|
+
|
|
100
|
+
### Competitive Overview
|
|
101
|
+
|
|
102
|
+
| Dimension | Us | [Competitor A] | [Competitor B] | [Competitor C] | Do Nothing |
|
|
103
|
+
|-----------|-----|---------------|---------------|---------------|------------|
|
|
104
|
+
| Core value prop | [ours] | [theirs] | [theirs] | [theirs] | [status quo] |
|
|
105
|
+
| Target segment | [ours] | [theirs] | [theirs] | [theirs] | [everyone] |
|
|
106
|
+
| Pricing | [ours] | [theirs] | [theirs] | [theirs] | Free |
|
|
107
|
+
| Key strength | [ours] | [theirs] | [theirs] | [theirs] | Familiar |
|
|
108
|
+
| Key weakness | [ours] | [theirs] | [theirs] | [theirs] | Inefficient |
|
|
109
|
+
| Traction | [ours] | [theirs] | [theirs] | [theirs] | N/A |
|
|
110
|
+
|
|
111
|
+
### Direct Competitors
|
|
112
|
+
|
|
113
|
+
#### [Competitor A]
|
|
114
|
+
- **What they do**: [Description]
|
|
115
|
+
- **Strengths**: [What they're genuinely good at]
|
|
116
|
+
- **Weaknesses**: [Where users complain] — Source: [URL]
|
|
117
|
+
- **Pricing**: [Model and price points] — Source: [URL]
|
|
118
|
+
- **Traction**: [Users/revenue/funding] — Source: [URL]
|
|
119
|
+
- **Threat level**: [High / Medium / Low] — [Why]
|
|
120
|
+
|
|
121
|
+
#### [Competitor B]
|
|
122
|
+
[Same structure]
|
|
123
|
+
|
|
124
|
+
#### [Competitor C]
|
|
125
|
+
[Same structure]
|
|
126
|
+
|
|
127
|
+
### Indirect Competitors & Alternatives
|
|
128
|
+
- **[Tool/Process A]**: [How it partially solves the problem]
|
|
129
|
+
- **[Tool/Process B]**: [How it partially solves the problem]
|
|
130
|
+
- **Do Nothing**: [Cost of inaction from step-00]
|
|
131
|
+
|
|
132
|
+
### Porter's Five Forces Summary
|
|
133
|
+
|
|
134
|
+
| Force | Rating | Assessment |
|
|
135
|
+
|-------|--------|-----------|
|
|
136
|
+
| Supplier power | [1-5] | [Brief assessment] |
|
|
137
|
+
| Buyer power | [1-5] | [Brief assessment] |
|
|
138
|
+
| New entrant threat | [1-5] | [Brief assessment] |
|
|
139
|
+
| Substitute threat | [1-5] | [Brief assessment] |
|
|
140
|
+
| Rivalry intensity | [1-5] | [Brief assessment] |
|
|
141
|
+
| **Overall competitive intensity** | **[1-5]** | **[Summary]** |
|
|
142
|
+
|
|
143
|
+
### Our Competitive Edge
|
|
144
|
+
- **Where we can win**: [Specific dimensions with reasoning]
|
|
145
|
+
- **Where we cannot win**: [Honest assessment of competitor strengths]
|
|
146
|
+
- **Unfilled gap**: [What no one is doing that we can do]
|
|
147
|
+
- **Timing advantage**: [Why now is the right time]
|
|
148
|
+
|
|
149
|
+
### Competitive Confidence
|
|
150
|
+
- **Overall confidence**: [X]%
|
|
151
|
+
- **Best-researched competitor**: [Name] — [depth of analysis]
|
|
152
|
+
- **Blind spot**: [What we might be missing]
|
|
153
|
+
```
|
|
154
|
+
|
|
155
|
+
### 6. Present to User and Gate
|
|
156
|
+
|
|
157
|
+
Show the Competitive Landscape summary. Highlight:
|
|
158
|
+
- The most dangerous competitor and why
|
|
159
|
+
- The clearest gap in the market
|
|
160
|
+
- Any surprising findings (e.g., a competitor we didn't expect)
|
|
161
|
+
|
|
162
|
+
```
|
|
163
|
+
[C] Continue — Competitive landscape mapped, proceed to Product Strategy
|
|
164
|
+
[R] Revise — Adjust competitor analysis or add missing competitors
|
|
165
|
+
[S] Search more — Deep-dive a specific competitor
|
|
166
|
+
```
|
|
167
|
+
|
|
168
|
+
**HALT — wait for user response before proceeding.**
|
|
169
|
+
|
|
170
|
+
### 7. Handle Response
|
|
171
|
+
|
|
172
|
+
- **[C]**: Load next step: `./step-04-product-strategy.md`
|
|
173
|
+
- **[R]**: Revise analysis, update discovery.md §3, re-present
|
|
174
|
+
- **[S]**: Execute targeted searches on specific competitor, update, re-present
|
|
175
|
+
|
|
176
|
+
## SUCCESS METRICS
|
|
177
|
+
|
|
178
|
+
- 2-5 direct competitors identified with evidence
|
|
179
|
+
- "Do nothing" alternative analyzed
|
|
180
|
+
- Comparison matrix completed for all competitors
|
|
181
|
+
- Porter's Five Forces assessed
|
|
182
|
+
- Honest assessment of where we can/cannot win
|
|
183
|
+
- All claims have source citations
|
|
184
|
+
- Output written to discovery.md §3
|
|
185
|
+
|
|
186
|
+
## FAILURE MODES
|
|
187
|
+
|
|
188
|
+
- "No competitors exist" (there are ALWAYS competitors, even if indirect)
|
|
189
|
+
- Only analyzing competitor strengths, ignoring weaknesses
|
|
190
|
+
- Only analyzing competitor weaknesses, ignoring strengths (cheerleading)
|
|
191
|
+
- Missing the "do nothing" alternative
|
|
192
|
+
- No source citations for competitor data
|
|
193
|
+
- Not writing output before presenting to user
|
|
194
|
+
|
|
195
|
+
## NEXT STEP
|
|
196
|
+
|
|
197
|
+
After user selects [C], read and follow: `./step-04-product-strategy.md`
|
|
@@ -0,0 +1,196 @@
|
|
|
1
|
+
# Step 04: Product Strategy
|
|
2
|
+
|
|
3
|
+
## MANDATORY EXECUTION RULES
|
|
4
|
+
|
|
5
|
+
- STRATEGY IS ABOUT TRADE-OFFS — what we choose NOT to do matters more
|
|
6
|
+
- REFERENCE previous steps — strategy must be grounded in validated problem + market + competition
|
|
7
|
+
- WEB SEARCH for comparable strategies in the domain
|
|
8
|
+
- WRITE output to spec file BEFORE presenting to user
|
|
9
|
+
- ALL output in English (spec files); conversation in Chinese
|
|
10
|
+
|
|
11
|
+
## PREREQUISITES
|
|
12
|
+
|
|
13
|
+
- Steps 00-03 completed with [C]
|
|
14
|
+
- `.ultra/specs/discovery.md` §0-3 exist
|
|
15
|
+
|
|
16
|
+
## CONTEXT BOUNDARIES
|
|
17
|
+
|
|
18
|
+
- Focus: Define strategic direction — vision, segments, value prop, trade-offs, defensibility
|
|
19
|
+
- This is a CONDENSED strategy canvas, not a full business plan
|
|
20
|
+
- Must be grounded in evidence from previous steps
|
|
21
|
+
- Strategy should be opinionated — "we serve everyone" is not a strategy
|
|
22
|
+
|
|
23
|
+
## SEARCH STRATEGY (MANDATORY)
|
|
24
|
+
|
|
25
|
+
Execute these web searches:
|
|
26
|
+
|
|
27
|
+
```
|
|
28
|
+
Search: "{{product_domain}} product strategy examples successful"
|
|
29
|
+
Search: "{{product_domain}} go-to-market strategy startup"
|
|
30
|
+
Search: "{{product_domain}} defensibility moat competitive advantage"
|
|
31
|
+
Search: "{{product_domain}} pricing strategy models"
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
## EXECUTION SEQUENCE
|
|
35
|
+
|
|
36
|
+
### 1. Vision Statement
|
|
37
|
+
|
|
38
|
+
Collaborate with user to craft a 2-3 sentence vision that:
|
|
39
|
+
- Inspires people (emotional, memorable)
|
|
40
|
+
- Is specific enough to guide decisions
|
|
41
|
+
- Is ambitious enough to attract talent and investment
|
|
42
|
+
|
|
43
|
+
**Test**: Would someone quit their job to work on this? If not, it's too boring.
|
|
44
|
+
|
|
45
|
+
Ask user via AskUserQuestion: "In 2-3 sentences, how can we inspire people? What are we aspiring to achieve?"
|
|
46
|
+
|
|
47
|
+
### 2. Target Segments
|
|
48
|
+
|
|
49
|
+
Define WHO we serve and WHO we explicitly do NOT serve.
|
|
50
|
+
|
|
51
|
+
Using personas from step-00 (Q3: Desperate Specificity):
|
|
52
|
+
|
|
53
|
+
**Serve** (defined by problems/JTBD, not demographics):
|
|
54
|
+
- Segment 1: [Description] — [Why they need us most]
|
|
55
|
+
- Segment 2: [Description] — [Why they need us]
|
|
56
|
+
|
|
57
|
+
**Do NOT serve** (equally important):
|
|
58
|
+
- Anti-segment 1: [Description] — [Why not]
|
|
59
|
+
- Anti-segment 2: [Description] — [Why not]
|
|
60
|
+
|
|
61
|
+
### 3. Value Proposition
|
|
62
|
+
|
|
63
|
+
For each target segment, use the JTBD format:
|
|
64
|
+
|
|
65
|
+
```
|
|
66
|
+
When [situation], they want [motivation], so they can [outcome]
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
This must connect directly to the top opportunities from step-01.
|
|
70
|
+
|
|
71
|
+
### 4. Strategic Trade-offs
|
|
72
|
+
|
|
73
|
+
**This is the most important section.** A strategy without trade-offs is a wish list.
|
|
74
|
+
|
|
75
|
+
Identify 3-5 strategic trade-offs:
|
|
76
|
+
|
|
77
|
+
| We Choose | Over | Because |
|
|
78
|
+
|-----------|------|---------|
|
|
79
|
+
| [Focus A] | [Alternative A] | [Reasoning grounded in evidence] |
|
|
80
|
+
| [Focus B] | [Alternative B] | [Reasoning grounded in evidence] |
|
|
81
|
+
| [Focus C] | [Alternative C] | [Reasoning grounded in evidence] |
|
|
82
|
+
|
|
83
|
+
Each trade-off should reference competitive analysis from step-03 — we avoid competing head-to-head on competitor strengths.
|
|
84
|
+
|
|
85
|
+
### 5. Defensibility Analysis
|
|
86
|
+
|
|
87
|
+
What makes this hard to copy? Evaluate each:
|
|
88
|
+
|
|
89
|
+
| Moat Type | Applicability | Strength | Timeline to Build |
|
|
90
|
+
|-----------|-------------|----------|-------------------|
|
|
91
|
+
| Network effects | [Yes/No] | [Assessment] | [Time] |
|
|
92
|
+
| Data advantage | [Yes/No] | [Assessment] | [Time] |
|
|
93
|
+
| Switching costs | [Yes/No] | [Assessment] | [Time] |
|
|
94
|
+
| Brand / trust | [Yes/No] | [Assessment] | [Time] |
|
|
95
|
+
| Technical IP | [Yes/No] | [Assessment] | [Time] |
|
|
96
|
+
| Speed / execution | [Yes/No] | [Assessment] | [Time] |
|
|
97
|
+
|
|
98
|
+
Be honest — most startups have weak defensibility early. That's okay if the execution advantage is strong.
|
|
99
|
+
|
|
100
|
+
### 6. Write Output
|
|
101
|
+
|
|
102
|
+
**WRITE IMMEDIATELY** to `.ultra/specs/discovery.md` §4:
|
|
103
|
+
|
|
104
|
+
```markdown
|
|
105
|
+
## §4 Product Strategy
|
|
106
|
+
|
|
107
|
+
### Vision
|
|
108
|
+
[2-3 sentences — inspiring, specific, ambitious]
|
|
109
|
+
|
|
110
|
+
### Target Segments
|
|
111
|
+
|
|
112
|
+
#### Primary: [Segment Name]
|
|
113
|
+
- **Description**: [Who they are, defined by problem/JTBD]
|
|
114
|
+
- **Why them**: [Why they need us most urgently]
|
|
115
|
+
- **Value Proposition**: When [situation], they want [motivation], so they can [outcome]
|
|
116
|
+
|
|
117
|
+
#### Secondary: [Segment Name]
|
|
118
|
+
- **Description**: [Who they are]
|
|
119
|
+
- **Why them**: [Why they need us]
|
|
120
|
+
- **Value Proposition**: When [situation], they want [motivation], so they can [outcome]
|
|
121
|
+
|
|
122
|
+
#### Explicitly NOT Serving
|
|
123
|
+
- **[Anti-segment 1]**: [Why not — e.g., "Too enterprise for our current capabilities"]
|
|
124
|
+
- **[Anti-segment 2]**: [Why not — e.g., "Their problem is different enough to require a different product"]
|
|
125
|
+
|
|
126
|
+
### Strategic Trade-offs
|
|
127
|
+
|
|
128
|
+
| # | We Choose | Over | Because |
|
|
129
|
+
|---|-----------|------|---------|
|
|
130
|
+
| 1 | [Focus] | [Alternative] | [Evidence-based reasoning] |
|
|
131
|
+
| 2 | [Focus] | [Alternative] | [Evidence-based reasoning] |
|
|
132
|
+
| 3 | [Focus] | [Alternative] | [Evidence-based reasoning] |
|
|
133
|
+
| 4 | [Focus] | [Alternative] | [Evidence-based reasoning] |
|
|
134
|
+
|
|
135
|
+
### Defensibility
|
|
136
|
+
|
|
137
|
+
| Moat Type | Applicable | Strength (1-5) | Timeline |
|
|
138
|
+
|-----------|-----------|----------------|----------|
|
|
139
|
+
| Network effects | [Yes/No] | [X] | [Time] |
|
|
140
|
+
| Data advantage | [Yes/No] | [X] | [Time] |
|
|
141
|
+
| Switching costs | [Yes/No] | [X] | [Time] |
|
|
142
|
+
| Brand / trust | [Yes/No] | [X] | [Time] |
|
|
143
|
+
| Technical IP | [Yes/No] | [X] | [Time] |
|
|
144
|
+
| Speed / execution | [Yes/No] | [X] | [Time] |
|
|
145
|
+
|
|
146
|
+
**Primary moat**: [Which moat type is strongest and why]
|
|
147
|
+
**Moat timeline**: [When defensibility becomes meaningful]
|
|
148
|
+
|
|
149
|
+
### Strategy Confidence
|
|
150
|
+
- **Overall confidence**: [X]%
|
|
151
|
+
- **Strongest element**: [What part of strategy is most grounded]
|
|
152
|
+
- **Riskiest bet**: [What strategic choice is most uncertain]
|
|
153
|
+
```
|
|
154
|
+
|
|
155
|
+
### 7. Present to User and Gate
|
|
156
|
+
|
|
157
|
+
Show the Product Strategy summary. Highlight:
|
|
158
|
+
- Whether the trade-offs feel right
|
|
159
|
+
- The defensibility assessment
|
|
160
|
+
- Any concerns about the strategic direction
|
|
161
|
+
|
|
162
|
+
```
|
|
163
|
+
[C] Continue — Strategy defined, proceed to Assumptions Validation
|
|
164
|
+
[R] Revise — Adjust strategy elements
|
|
165
|
+
[D] Discuss — Explore specific trade-offs in more depth
|
|
166
|
+
```
|
|
167
|
+
|
|
168
|
+
**HALT — wait for user response before proceeding.**
|
|
169
|
+
|
|
170
|
+
### 8. Handle Response
|
|
171
|
+
|
|
172
|
+
- **[C]**: Load next step: `./step-05-assumptions-validation.md`
|
|
173
|
+
- **[R]**: Revise strategy, update discovery.md §4, re-present
|
|
174
|
+
- **[D]**: Deep-dive specific trade-offs, then re-present gate
|
|
175
|
+
|
|
176
|
+
## SUCCESS METRICS
|
|
177
|
+
|
|
178
|
+
- Vision is inspiring and specific (not generic)
|
|
179
|
+
- Target segments defined by problems, not demographics
|
|
180
|
+
- Anti-segments explicitly stated
|
|
181
|
+
- At least 3 strategic trade-offs with evidence-based reasoning
|
|
182
|
+
- Defensibility honestly assessed
|
|
183
|
+
- Output written to discovery.md §4
|
|
184
|
+
|
|
185
|
+
## FAILURE MODES
|
|
186
|
+
|
|
187
|
+
- Generic vision ("We make the world better with AI")
|
|
188
|
+
- "We serve everyone" (no segment focus)
|
|
189
|
+
- No trade-offs stated (strategy without trade-offs is not strategy)
|
|
190
|
+
- Defensibility assessment is all 5/5 (unrealistic)
|
|
191
|
+
- Strategy not grounded in evidence from steps 00-03
|
|
192
|
+
- Not writing output before presenting to user
|
|
193
|
+
|
|
194
|
+
## NEXT STEP
|
|
195
|
+
|
|
196
|
+
After user selects [C], read and follow: `./step-05-assumptions-validation.md`
|
|
@@ -0,0 +1,234 @@
|
|
|
1
|
+
# Step 05: Assumptions & Validation Plan
|
|
2
|
+
|
|
3
|
+
## MANDATORY EXECUTION RULES
|
|
4
|
+
|
|
5
|
+
- EXTRACT assumptions from ALL previous steps (00-04) — not just the obvious ones
|
|
6
|
+
- PRIORITIZE by Impact × Uncertainty — focus on "leap of faith" assumptions
|
|
7
|
+
- DESIGN cheap, fast experiments — not "build it and see"
|
|
8
|
+
- WRITE output to spec file BEFORE presenting to user
|
|
9
|
+
- ALL output in English (spec files); conversation in Chinese
|
|
10
|
+
|
|
11
|
+
## PREREQUISITES
|
|
12
|
+
|
|
13
|
+
- Steps 00-04 completed with [C]
|
|
14
|
+
- `.ultra/specs/discovery.md` §0-4 exist
|
|
15
|
+
|
|
16
|
+
## CONTEXT BOUNDARIES
|
|
17
|
+
|
|
18
|
+
- Focus: What are we assuming? What's riskiest? How do we validate cheaply?
|
|
19
|
+
- This is the LAST step of Round 0 — it synthesizes everything discovered so far
|
|
20
|
+
- After this step, user decides: proceed to Round 1 or investigate further
|
|
21
|
+
- Based on Alberto Savoia (Pretotyping) and Marty Cagan methodologies
|
|
22
|
+
|
|
23
|
+
## SEARCH STRATEGY (MANDATORY)
|
|
24
|
+
|
|
25
|
+
Execute these web searches:
|
|
26
|
+
|
|
27
|
+
```
|
|
28
|
+
Search: "{{product_domain}} validation methods pretotype MVP"
|
|
29
|
+
Search: "{{product_domain}} common startup mistakes failed assumptions"
|
|
30
|
+
Search: "landing page test fake door validation {{product_domain}}"
|
|
31
|
+
Search: "{{product_domain}} customer interview validation techniques"
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
## EXECUTION SEQUENCE
|
|
35
|
+
|
|
36
|
+
### 1. Extract Assumptions from Previous Steps
|
|
37
|
+
|
|
38
|
+
Review §0-4 and extract assumptions across 5 categories:
|
|
39
|
+
|
|
40
|
+
| Category | Source | What to look for |
|
|
41
|
+
|----------|--------|-----------------|
|
|
42
|
+
| **Value** | §0, §1 | Will users actually want this? |
|
|
43
|
+
| **Usability** | §1 | Can users figure it out without help? |
|
|
44
|
+
| **Feasibility** | §1 (solutions) | Can we build it with current technology? |
|
|
45
|
+
| **Viability** | §2 | Does the business case work at these numbers? |
|
|
46
|
+
| **Go-to-Market** | §3, §4 | Can we reach and convert our target users? |
|
|
47
|
+
|
|
48
|
+
### 2. Prioritize Assumptions
|
|
49
|
+
|
|
50
|
+
Map each assumption on Impact × Uncertainty:
|
|
51
|
+
|
|
52
|
+
```
|
|
53
|
+
High Impact
|
|
54
|
+
│
|
|
55
|
+
VALIDATE FIRST ─────┼───── MONITOR
|
|
56
|
+
(Leap of Faith) │ (Important but clear)
|
|
57
|
+
│
|
|
58
|
+
Low Uncertainty ─────┼───── High Uncertainty
|
|
59
|
+
│
|
|
60
|
+
IGNORE ─────────────┼───── INVESTIGATE
|
|
61
|
+
(Low stakes) │ (Uncertain but low impact)
|
|
62
|
+
│
|
|
63
|
+
Low Impact
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
Focus on "Leap of Faith" quadrant: **High Impact + High Uncertainty**
|
|
67
|
+
|
|
68
|
+
### 3. Design Validation Experiments
|
|
69
|
+
|
|
70
|
+
For top 3-5 leap-of-faith assumptions, design cheap, fast experiments:
|
|
71
|
+
|
|
72
|
+
**Experiment Design Framework:**
|
|
73
|
+
|
|
74
|
+
| Element | Description |
|
|
75
|
+
|---------|-------------|
|
|
76
|
+
| Assumption | What exactly are we assuming? |
|
|
77
|
+
| Category | Value / Usability / Feasibility / Viability / GTM |
|
|
78
|
+
| Method | How will we test this? |
|
|
79
|
+
| Success criteria | What result validates the assumption? |
|
|
80
|
+
| Failure criteria | What result invalidates it? |
|
|
81
|
+
| Effort | Hours/days to execute |
|
|
82
|
+
| Timeline | When can we have results? |
|
|
83
|
+
|
|
84
|
+
**Preferred Methods** (cheapest first):
|
|
85
|
+
1. **Data analysis**: Existing data that proves/disproves the assumption
|
|
86
|
+
2. **Customer interviews**: 5-10 targeted conversations
|
|
87
|
+
3. **Fake door test**: Landing page with sign-up / "notify me" button
|
|
88
|
+
4. **Concierge MVP**: Manually deliver the value to 3-5 users
|
|
89
|
+
5. **Pretotype**: Mechanical Turk version of the product
|
|
90
|
+
6. **Prototype**: Clickable mockup tested with real users
|
|
91
|
+
7. **MVP**: Minimum viable version with real functionality
|
|
92
|
+
|
|
93
|
+
### 4. Define Decision Framework
|
|
94
|
+
|
|
95
|
+
For each experiment:
|
|
96
|
+
|
|
97
|
+
```
|
|
98
|
+
If experiment SUCCEEDS → [Next action]
|
|
99
|
+
If experiment FAILS → [Pivot / Investigate / Kill]
|
|
100
|
+
If results are AMBIGUOUS → [How to get clarity]
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
### 5. Write Output
|
|
104
|
+
|
|
105
|
+
**WRITE IMMEDIATELY** to `.ultra/specs/discovery.md` §5:
|
|
106
|
+
|
|
107
|
+
```markdown
|
|
108
|
+
## §5 Key Assumptions & Validation Plan
|
|
109
|
+
|
|
110
|
+
### Assumption Inventory
|
|
111
|
+
|
|
112
|
+
| # | Assumption | Category | Impact | Uncertainty | Priority |
|
|
113
|
+
|---|-----------|----------|--------|-------------|----------|
|
|
114
|
+
| A1 | [Statement] | Value | High | High | **Validate First** |
|
|
115
|
+
| A2 | [Statement] | Viability | High | High | **Validate First** |
|
|
116
|
+
| A3 | [Statement] | GTM | High | Medium | **Validate First** |
|
|
117
|
+
| A4 | [Statement] | Feasibility | Medium | High | Investigate |
|
|
118
|
+
| A5 | [Statement] | Usability | Medium | Medium | Monitor |
|
|
119
|
+
| A6 | [Statement] | Value | Low | Low | Ignore |
|
|
120
|
+
|
|
121
|
+
### Leap-of-Faith Assumptions (Top 3-5)
|
|
122
|
+
|
|
123
|
+
#### A1: [Assumption Statement]
|
|
124
|
+
- **Category**: [Value / Viability / GTM / Feasibility / Usability]
|
|
125
|
+
- **Why it matters**: [What happens if this is wrong]
|
|
126
|
+
- **Current evidence**: [What we know from steps 00-04]
|
|
127
|
+
- **Evidence gap**: [What we don't know]
|
|
128
|
+
|
|
129
|
+
**Validation Experiment:**
|
|
130
|
+
- **Method**: [Specific method]
|
|
131
|
+
- **Success criteria**: [Measurable outcome that validates]
|
|
132
|
+
- **Failure criteria**: [Measurable outcome that invalidates]
|
|
133
|
+
- **Effort**: [Hours/days]
|
|
134
|
+
- **Timeline**: [When results expected]
|
|
135
|
+
|
|
136
|
+
**Decision Framework:**
|
|
137
|
+
- ✅ If validated → [Proceed to Round 1]
|
|
138
|
+
- ❌ If invalidated → [Pivot to X / Investigate Y / Kill]
|
|
139
|
+
- ⚠️ If ambiguous → [Additional experiment Z]
|
|
140
|
+
|
|
141
|
+
#### A2: [Assumption Statement]
|
|
142
|
+
[Same structure]
|
|
143
|
+
|
|
144
|
+
#### A3: [Assumption Statement]
|
|
145
|
+
[Same structure]
|
|
146
|
+
|
|
147
|
+
### Validation Roadmap
|
|
148
|
+
|
|
149
|
+
| Week | Experiment | Assumption | Expected Result |
|
|
150
|
+
|------|-----------|-----------|----------------|
|
|
151
|
+
| 1 | [Experiment 1] | A1 | [What we'll learn] |
|
|
152
|
+
| 1-2 | [Experiment 2] | A2 | [What we'll learn] |
|
|
153
|
+
| 2-3 | [Experiment 3] | A3 | [What we'll learn] |
|
|
154
|
+
|
|
155
|
+
### Round 0 Summary
|
|
156
|
+
|
|
157
|
+
**Product Discovery Confidence**:
|
|
158
|
+
- **Problem validation**: [X]% — [One-line summary]
|
|
159
|
+
- **Opportunity space**: [X]% — [One-line summary]
|
|
160
|
+
- **Market size**: [X]% — [One-line summary]
|
|
161
|
+
- **Competitive position**: [X]% — [One-line summary]
|
|
162
|
+
- **Strategy clarity**: [X]% — [One-line summary]
|
|
163
|
+
- **Overall R0 confidence**: [X]%
|
|
164
|
+
|
|
165
|
+
**Recommendation**: [Proceed to Round 1 / Validate assumptions first / Pivot]
|
|
166
|
+
```
|
|
167
|
+
|
|
168
|
+
### 6. Write Round 0 Research Report
|
|
169
|
+
|
|
170
|
+
**WRITE** to `.ultra/docs/research/product-discovery-{date}.md`:
|
|
171
|
+
|
|
172
|
+
```markdown
|
|
173
|
+
# Round 0: Product Discovery & Strategy
|
|
174
|
+
|
|
175
|
+
> **Confidence**: [X]%
|
|
176
|
+
> **Steps completed**: 00-05
|
|
177
|
+
> **Completed**: [date]
|
|
178
|
+
|
|
179
|
+
## Key Findings
|
|
180
|
+
[3-5 bullet points of most important discoveries]
|
|
181
|
+
|
|
182
|
+
## Decisions Made
|
|
183
|
+
[Strategic choices and their rationale]
|
|
184
|
+
|
|
185
|
+
## Open Questions
|
|
186
|
+
[What remains uncertain]
|
|
187
|
+
|
|
188
|
+
## Assumptions to Validate
|
|
189
|
+
[Top 3 from §5]
|
|
190
|
+
```
|
|
191
|
+
|
|
192
|
+
### 7. Present to User and Gate
|
|
193
|
+
|
|
194
|
+
Show the complete Round 0 summary. Highlight:
|
|
195
|
+
- The top 3 leap-of-faith assumptions
|
|
196
|
+
- Overall confidence level
|
|
197
|
+
- Recommendation (proceed / validate / pivot)
|
|
198
|
+
|
|
199
|
+
```
|
|
200
|
+
[C] Continue — Proceed to Round 1 (User & Scenario Discovery)
|
|
201
|
+
[V] Validate — Pause to run validation experiments before continuing
|
|
202
|
+
[P] Pivot — Rethink the product direction based on findings
|
|
203
|
+
```
|
|
204
|
+
|
|
205
|
+
**HALT — wait for user response before proceeding.**
|
|
206
|
+
|
|
207
|
+
### 8. Handle Response
|
|
208
|
+
|
|
209
|
+
- **[C]**: Load next step: `./step-10-user-personas.md`
|
|
210
|
+
- **[V]**: Help design validation experiments in detail, then re-present gate when done
|
|
211
|
+
- **[P]**: Restart from step-00 with revised direction
|
|
212
|
+
|
|
213
|
+
## SUCCESS METRICS
|
|
214
|
+
|
|
215
|
+
- Assumptions extracted from ALL previous steps (not just surface-level)
|
|
216
|
+
- Each assumption categorized and prioritized
|
|
217
|
+
- Top 3-5 have detailed validation experiments
|
|
218
|
+
- Each experiment has clear success/failure criteria
|
|
219
|
+
- Decision framework defined for each outcome
|
|
220
|
+
- Round 0 research report written
|
|
221
|
+
- Output written to discovery.md §5
|
|
222
|
+
|
|
223
|
+
## FAILURE MODES
|
|
224
|
+
|
|
225
|
+
- Only extracting obvious assumptions (missing viability, GTM)
|
|
226
|
+
- Designing expensive experiments ("build an MVP") when cheaper options exist
|
|
227
|
+
- No clear success/failure criteria for experiments
|
|
228
|
+
- Missing the decision framework (what do we DO with the results?)
|
|
229
|
+
- Overly optimistic confidence assessment
|
|
230
|
+
- Not writing both spec file AND research report
|
|
231
|
+
|
|
232
|
+
## NEXT STEP
|
|
233
|
+
|
|
234
|
+
After user selects [C], read and follow: `./step-10-user-personas.md`
|