@rubytech/create-maxy-code 0.1.169 → 0.1.171
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/dist/__tests__/premium-mcp-discover.test.js +42 -0
- package/dist/lib/premium-mcp-discover.js +9 -2
- package/package.json +1 -1
- package/payload/platform/plugins/.claude-plugin/marketplace.json +0 -15
- package/payload/platform/plugins/docs/references/platform.md +1 -1
- package/payload/premium-plugins/writer-craft/lib/mcp-stderr-tee/dist/index.d.ts +51 -0
- package/payload/premium-plugins/writer-craft/lib/mcp-stderr-tee/dist/index.d.ts.map +1 -0
- package/payload/premium-plugins/writer-craft/lib/mcp-stderr-tee/dist/index.js +196 -0
- package/payload/premium-plugins/writer-craft/lib/mcp-stderr-tee/dist/index.js.map +1 -0
- package/payload/premium-plugins/writer-craft/lib/mcp-stderr-tee/package.json +7 -0
- package/payload/premium-plugins/writer-craft/mcp/dist/index.d.ts +3 -0
- package/payload/premium-plugins/writer-craft/mcp/dist/index.d.ts.map +1 -0
- package/payload/premium-plugins/writer-craft/mcp/dist/index.js +257 -0
- package/payload/premium-plugins/writer-craft/mcp/dist/index.js.map +1 -0
- package/payload/premium-plugins/writer-craft/mcp/dist/lib/neo4j.d.ts +14 -0
- package/payload/premium-plugins/writer-craft/mcp/dist/lib/neo4j.d.ts.map +1 -0
- package/payload/premium-plugins/writer-craft/mcp/dist/lib/neo4j.js +47 -0
- package/payload/premium-plugins/writer-craft/mcp/dist/lib/neo4j.js.map +1 -0
- package/payload/premium-plugins/writer-craft/mcp/dist/lib/voice-corpus.d.ts +42 -0
- package/payload/premium-plugins/writer-craft/mcp/dist/lib/voice-corpus.d.ts.map +1 -0
- package/payload/{platform/plugins/writer-craft/mcp/src/lib/voice-corpus.ts → premium-plugins/writer-craft/mcp/dist/lib/voice-corpus.js} +5 -5
- package/payload/premium-plugins/writer-craft/mcp/dist/lib/voice-corpus.js.map +1 -0
- package/payload/premium-plugins/writer-craft/mcp/dist/tools/voice-distil-profile.d.ts +36 -0
- package/payload/premium-plugins/writer-craft/mcp/dist/tools/voice-distil-profile.d.ts.map +1 -0
- package/payload/premium-plugins/writer-craft/mcp/dist/tools/voice-distil-profile.js +225 -0
- package/payload/premium-plugins/writer-craft/mcp/dist/tools/voice-distil-profile.js.map +1 -0
- package/payload/premium-plugins/writer-craft/mcp/dist/tools/voice-record-feedback.d.ts +26 -0
- package/payload/premium-plugins/writer-craft/mcp/dist/tools/voice-record-feedback.d.ts.map +1 -0
- package/payload/premium-plugins/writer-craft/mcp/dist/tools/voice-record-feedback.js +74 -0
- package/payload/premium-plugins/writer-craft/mcp/dist/tools/voice-record-feedback.js.map +1 -0
- package/payload/premium-plugins/writer-craft/mcp/dist/tools/voice-retrieve-conditioning.d.ts +22 -0
- package/payload/premium-plugins/writer-craft/mcp/dist/tools/voice-retrieve-conditioning.d.ts.map +1 -0
- package/payload/premium-plugins/writer-craft/mcp/dist/tools/voice-retrieve-conditioning.js +102 -0
- package/payload/premium-plugins/writer-craft/mcp/dist/tools/voice-retrieve-conditioning.js.map +1 -0
- package/payload/premium-plugins/writer-craft/mcp/dist/tools/voice-tag-content.d.ts +14 -0
- package/payload/premium-plugins/writer-craft/mcp/dist/tools/voice-tag-content.d.ts.map +1 -0
- package/payload/premium-plugins/writer-craft/mcp/dist/tools/voice-tag-content.js +84 -0
- package/payload/premium-plugins/writer-craft/mcp/dist/tools/voice-tag-content.js.map +1 -0
- package/payload/premium-plugins/writer-craft/mcp/package-lock.json +1327 -0
- package/payload/server/{chunk-3TRIXQSJ.js → chunk-L2YK2VK3.js} +17 -29
- package/payload/server/maxy-edge.js +1 -1
- package/payload/server/server.js +1 -1
- package/payload/platform/plugins/teaching/.claude-plugin/plugin.json +0 -8
- package/payload/platform/plugins/teaching/PLUGIN.md +0 -58
- package/payload/platform/plugins/teaching/skills/interactive-tutor/SKILL.md +0 -59
- package/payload/platform/plugins/teaching/skills/interactive-tutor/references/assessment.md +0 -70
- package/payload/platform/plugins/teaching/skills/interactive-tutor/references/classroom-conduct.md +0 -43
- package/payload/platform/plugins/teaching/skills/interactive-tutor/references/teaching-modes.md +0 -83
- package/payload/platform/plugins/teaching/skills/lesson-planner/SKILL.md +0 -48
- package/payload/platform/plugins/teaching/skills/lesson-planner/references/context-gathering.md +0 -41
- package/payload/platform/plugins/teaching/skills/lesson-planner/references/plan-structure.md +0 -94
- package/payload/platform/plugins/teaching/skills/study-pack-builder/SKILL.md +0 -52
- package/payload/platform/plugins/teaching/skills/study-pack-builder/references/disaggregation.md +0 -49
- package/payload/platform/plugins/teaching/skills/study-pack-builder/references/materials.md +0 -116
- package/payload/platform/plugins/venture-studio/.claude-plugin/plugin.json +0 -8
- package/payload/platform/plugins/venture-studio/PLUGIN.md +0 -119
- package/payload/platform/plugins/venture-studio/bin/scaffold.sh +0 -116
- package/payload/platform/plugins/venture-studio/skills/brand-pack/SKILL.md +0 -256
- package/payload/platform/plugins/venture-studio/skills/brand-pack/references/color-psychology.md +0 -118
- package/payload/platform/plugins/venture-studio/skills/investor-data-room/SKILL.md +0 -376
- package/payload/platform/plugins/venture-studio/skills/investor-data-room/references/business-plan-template.md +0 -64
- package/payload/platform/plugins/venture-studio/skills/investor-data-room/references/compliance-research-checklist.md +0 -53
- package/payload/platform/plugins/venture-studio/skills/investor-data-room/references/data-room-structure.md +0 -88
- package/payload/platform/plugins/venture-studio/skills/investor-data-room/references/deck-blueprint-template.md +0 -39
- package/payload/platform/plugins/venture-studio/skills/investor-data-room/references/design-tokens-application.md +0 -79
- package/payload/platform/plugins/venture-studio/skills/investor-data-room/references/html-pdf-pipeline.md +0 -236
- package/payload/platform/plugins/venture-studio/skills/investor-data-room/references/internal-workings-scrub.md +0 -33
- package/payload/platform/plugins/venture-studio/skills/investor-data-room/references/termsheet-template.md +0 -88
- package/payload/platform/plugins/venture-studio/skills/investor-data-room/templates/prospectus/index.html +0 -1565
- package/payload/platform/plugins/venture-studio/skills/investor-data-room/templates/prospectus/render-pdf.mjs +0 -91
- package/payload/platform/plugins/venture-studio/skills/investor-data-room/templates/prospectus/term_sheet.html +0 -715
- package/payload/platform/plugins/venture-studio/skills/office-hours/SKILL.md +0 -587
- package/payload/platform/plugins/venture-studio/skills/prototype-host/SKILL.md +0 -179
- package/payload/platform/plugins/venture-studio/skills/prototype-host/references/cloudflared-ingress-edit.md +0 -81
- package/payload/platform/plugins/venture-studio/skills/prototype-host/references/scaffold-frameworks.md +0 -60
- package/payload/platform/plugins/venture-studio/skills/prototype-host/references/systemd-user-service.md +0 -104
- package/payload/platform/plugins/venture-studio/skills/zero-to-prototype/SKILL.md +0 -336
- package/payload/platform/plugins/venture-studio/skills/zero-to-prototype/references/aarrr-metrics.md +0 -275
- package/payload/platform/plugins/venture-studio/skills/zero-to-prototype/references/assumption-testing.md +0 -93
- package/payload/platform/plugins/venture-studio/skills/zero-to-prototype/references/boolean-search.md +0 -308
- package/payload/platform/plugins/venture-studio/skills/zero-to-prototype/references/build-measure-learn.md +0 -262
- package/payload/platform/plugins/venture-studio/skills/zero-to-prototype/references/business-model-canvas.md +0 -171
- package/payload/platform/plugins/venture-studio/skills/zero-to-prototype/references/commitment-signals.md +0 -246
- package/payload/platform/plugins/venture-studio/skills/zero-to-prototype/references/design-thinking.md +0 -183
- package/payload/platform/plugins/venture-studio/skills/zero-to-prototype/references/earlyvangelist.md +0 -190
- package/payload/platform/plugins/venture-studio/skills/zero-to-prototype/references/first-principles.md +0 -58
- package/payload/platform/plugins/venture-studio/skills/zero-to-prototype/references/fishbone.md +0 -114
- package/payload/platform/plugins/venture-studio/skills/zero-to-prototype/references/five-whys.md +0 -43
- package/payload/platform/plugins/venture-studio/skills/zero-to-prototype/references/ice-scoring.md +0 -237
- package/payload/platform/plugins/venture-studio/skills/zero-to-prototype/references/innovation-accounting.md +0 -290
- package/payload/platform/plugins/venture-studio/skills/zero-to-prototype/references/jtbd.md +0 -105
- package/payload/platform/plugins/venture-studio/skills/zero-to-prototype/references/landing-page.md +0 -361
- package/payload/platform/plugins/venture-studio/skills/zero-to-prototype/references/market-type.md +0 -167
- package/payload/platform/plugins/venture-studio/skills/zero-to-prototype/references/mom-test.md +0 -193
- package/payload/platform/plugins/venture-studio/skills/zero-to-prototype/references/mvp-types.md +0 -200
- package/payload/platform/plugins/venture-studio/skills/zero-to-prototype/references/og-images.md +0 -239
- package/payload/platform/plugins/venture-studio/skills/zero-to-prototype/references/pareto.md +0 -103
- package/payload/platform/plugins/venture-studio/skills/zero-to-prototype/references/persona-development.md +0 -291
- package/payload/platform/plugins/venture-studio/skills/zero-to-prototype/references/pivot-types.md +0 -225
- package/payload/platform/plugins/venture-studio/skills/zero-to-prototype/references/positioning-statement.md +0 -179
- package/payload/platform/plugins/venture-studio/skills/zero-to-prototype/references/prd.md +0 -363
- package/payload/platform/plugins/venture-studio/skills/zero-to-prototype/references/pre-mortem.md +0 -74
- package/payload/platform/plugins/venture-studio/skills/zero-to-prototype/references/problem-validation.md +0 -253
- package/payload/platform/plugins/venture-studio/skills/zero-to-prototype/references/product-market-fit.md +0 -256
- package/payload/platform/plugins/venture-studio/skills/zero-to-prototype/references/research-synthesis.md +0 -276
- package/payload/platform/plugins/venture-studio/skills/zero-to-prototype/references/three-engines-of-growth.md +0 -248
- package/payload/platform/plugins/venture-studio/skills/zero-to-prototype/references/validation-tests.md +0 -89
- package/payload/platform/plugins/venture-studio/skills/zero-to-prototype/references/value-proposition-canvas.md +0 -121
- package/payload/platform/plugins/venture-studio/skills/zero-to-prototype/references/win-loss-analysis.md +0 -242
- package/payload/platform/plugins/venture-studio/skills/zero-to-prototype/references/workflow-mapping.md +0 -271
- package/payload/platform/plugins/writer-craft/.claude-plugin/plugin.json +0 -17
- package/payload/platform/plugins/writer-craft/PLUGIN.md +0 -130
- package/payload/platform/plugins/writer-craft/agents/writer-craft--manuscript-reviewer.md +0 -96
- package/payload/platform/plugins/writer-craft/mcp/package.json +0 -19
- package/payload/platform/plugins/writer-craft/mcp/scripts/smoke.mjs +0 -152
- package/payload/platform/plugins/writer-craft/mcp/src/index.ts +0 -289
- package/payload/platform/plugins/writer-craft/mcp/src/lib/neo4j.ts +0 -56
- package/payload/platform/plugins/writer-craft/mcp/src/tools/voice-distil-profile.ts +0 -303
- package/payload/platform/plugins/writer-craft/mcp/src/tools/voice-record-feedback.ts +0 -114
- package/payload/platform/plugins/writer-craft/mcp/src/tools/voice-retrieve-conditioning.ts +0 -145
- package/payload/platform/plugins/writer-craft/mcp/src/tools/voice-tag-content.ts +0 -117
- package/payload/platform/plugins/writer-craft/mcp/tsconfig.json +0 -8
- package/payload/platform/plugins/writer-craft/skills/citation-style/SKILL.md +0 -94
- package/payload/platform/plugins/writer-craft/skills/citation-style/references/book-and-chapter-models.md +0 -77
- package/payload/platform/plugins/writer-craft/skills/citation-style/references/citation-rules.md +0 -103
- package/payload/platform/plugins/writer-craft/skills/citation-style/references/journal-article-models.md +0 -74
- package/payload/platform/plugins/writer-craft/skills/citation-style/references/other-source-models.md +0 -146
- package/payload/platform/plugins/writer-craft/skills/citation-style/references/reference-list-rules.md +0 -70
- package/payload/platform/plugins/writer-craft/skills/editorial-practice/SKILL.md +0 -108
- package/payload/platform/plugins/writer-craft/skills/editorial-practice/references/copyediting.md +0 -73
- package/payload/platform/plugins/writer-craft/skills/editorial-practice/references/developmental-editing.md +0 -85
- package/payload/platform/plugins/writer-craft/skills/editorial-practice/references/genre-specific-editing.md +0 -78
- package/payload/platform/plugins/writer-craft/skills/editorial-practice/references/line-editing.md +0 -55
- package/payload/platform/plugins/writer-craft/skills/editorial-practice/references/self-editing.md +0 -89
- package/payload/platform/plugins/writer-craft/skills/persuasive-storytelling/SKILL.md +0 -114
- package/payload/platform/plugins/writer-craft/skills/persuasive-storytelling/references/audience-analysis.md +0 -73
- package/payload/platform/plugins/writer-craft/skills/persuasive-storytelling/references/crafting-persuasive-story.md +0 -76
- package/payload/platform/plugins/writer-craft/skills/persuasive-storytelling/references/persuasion-case-studies.md +0 -67
- package/payload/platform/plugins/writer-craft/skills/persuasive-storytelling/references/transformation-framework.md +0 -86
- package/payload/platform/plugins/writer-craft/skills/point-of-view/SKILL.md +0 -97
- package/payload/platform/plugins/writer-craft/skills/point-of-view/references/indirect-narration.md +0 -72
- package/payload/platform/plugins/writer-craft/skills/point-of-view/references/pov-types-and-voice.md +0 -91
- package/payload/platform/plugins/writer-craft/skills/point-of-view/references/protagonist-filter.md +0 -71
- package/payload/platform/plugins/writer-craft/skills/point-of-view/references/tense-and-person.md +0 -85
- package/payload/platform/plugins/writer-craft/skills/prose-craft/SKILL.md +0 -100
- package/payload/platform/plugins/writer-craft/skills/prose-craft/references/punctuation-and-grammar.md +0 -72
- package/payload/platform/plugins/writer-craft/skills/prose-craft/references/repetition.md +0 -71
- package/payload/platform/plugins/writer-craft/skills/prose-craft/references/sound-and-rhythm.md +0 -64
- package/payload/platform/plugins/writer-craft/skills/prose-craft/references/word-economy.md +0 -93
- package/payload/platform/plugins/writer-craft/skills/reader-engagement/SKILL.md +0 -100
- package/payload/platform/plugins/writer-craft/skills/reader-engagement/references/cause-effect-setup-payoff.md +0 -79
- package/payload/platform/plugins/writer-craft/skills/reader-engagement/references/conflict-escalation.md +0 -81
- package/payload/platform/plugins/writer-craft/skills/reader-engagement/references/hooking-readers.md +0 -67
- package/payload/platform/plugins/writer-craft/skills/reader-engagement/references/neurochemistry-of-engagement.md +0 -94
- package/payload/platform/plugins/writer-craft/skills/review-manuscript/SKILL.md +0 -111
- package/payload/platform/plugins/writer-craft/skills/review-manuscript/references/review-manuscript-checklist.md +0 -119
- package/payload/platform/plugins/writer-craft/skills/review-prose/SKILL.md +0 -99
- package/payload/platform/plugins/writer-craft/skills/review-prose/references/prose-review-checklist.md +0 -112
- package/payload/platform/plugins/writer-craft/skills/review-scene/SKILL.md +0 -99
- package/payload/platform/plugins/writer-craft/skills/review-scene/references/scene-analysis-framework.md +0 -95
- package/payload/platform/plugins/writer-craft/skills/story-architecture/SKILL.md +0 -106
- package/payload/platform/plugins/writer-craft/skills/story-architecture/references/blueprinting-and-scene-cards.md +0 -118
- package/payload/platform/plugins/writer-craft/skills/story-architecture/references/inner-issue-and-protagonist-goal.md +0 -66
- package/payload/platform/plugins/writer-craft/skills/story-architecture/references/misbelief-desire-worldview.md +0 -87
- package/payload/platform/plugins/writer-craft/skills/story-architecture/references/origin-scenes-and-escalation.md +0 -82
- package/payload/platform/plugins/writer-craft/skills/story-blueprint/SKILL.md +0 -133
- package/payload/platform/plugins/writer-craft/skills/story-blueprint/references/blueprinting-exercises.md +0 -118
- package/payload/platform/plugins/writer-craft/skills/story-blueprint/references/blueprinting-process.md +0 -128
- package/payload/platform/plugins/writer-craft/skills/voice-mirror/SKILL.md +0 -166
|
@@ -1,276 +0,0 @@
|
|
|
1
|
-
# Research Synthesis
|
|
2
|
-
|
|
3
|
-
## Purpose
|
|
4
|
-
Combine qualitative research (interviews, usability tests, feedback) with quantitative data (analytics, metrics, surveys) to extract actionable insights that neither source could provide alone.
|
|
5
|
-
|
|
6
|
-
## When to Use
|
|
7
|
-
- Have both customer interview data AND product analytics
|
|
8
|
-
- Need to understand WHY metrics are changing (not just WHAT)
|
|
9
|
-
- Connecting user behavior patterns to stated motivations
|
|
10
|
-
- Building a complete picture of the customer experience
|
|
11
|
-
- Validating qualitative findings with quantitative data (or vice versa)
|
|
12
|
-
|
|
13
|
-
## Core Principle
|
|
14
|
-
|
|
15
|
-
**Quantitative data shows WHAT is happening.**
|
|
16
|
-
**Qualitative data shows WHY it's happening.**
|
|
17
|
-
**Synthesis connects the two.**
|
|
18
|
-
|
|
19
|
-
Neither alone is sufficient:
|
|
20
|
-
- Analytics without context leads to wrong conclusions
|
|
21
|
-
- Interviews without data leads to anecdotes, not patterns
|
|
22
|
-
|
|
23
|
-
## Process
|
|
24
|
-
|
|
25
|
-
### 1. Organize Your Data Sources
|
|
26
|
-
|
|
27
|
-
**Qualitative Sources:**
|
|
28
|
-
| Source | What It Provides | Typical Location |
|
|
29
|
-
|--------|------------------|------------------|
|
|
30
|
-
| Customer interviews | Deep motivations, pain points, language | Transcripts, recordings |
|
|
31
|
-
| Usability tests | Friction points, confusion moments | Session recordings, notes |
|
|
32
|
-
| Support tickets | Real problems, customer language | Help desk system |
|
|
33
|
-
| Sales call notes | Objections, buying triggers | CRM notes |
|
|
34
|
-
| Social mentions | Unsolicited feedback, sentiment | Twitter, Reddit, forums |
|
|
35
|
-
| Churn interviews | Why they left, what's missing | Exit surveys, calls |
|
|
36
|
-
|
|
37
|
-
**Quantitative Sources:**
|
|
38
|
-
| Source | What It Provides | Typical Location |
|
|
39
|
-
|--------|------------------|------------------|
|
|
40
|
-
| Product analytics | Usage patterns, funnels, retention | Mixpanel, Amplitude, PostHog |
|
|
41
|
-
| Revenue metrics | Conversion, churn, expansion | Stripe, billing system |
|
|
42
|
-
| Survey data | NPS, CSAT, feature requests | Typeform, SurveyMonkey |
|
|
43
|
-
| A/B test results | What changes move metrics | Experiment platform |
|
|
44
|
-
| Session recordings | Where users click, scroll, struggle | Hotjar, FullStory |
|
|
45
|
-
| Cohort data | How behavior changes over time | Analytics platform |
|
|
46
|
-
|
|
47
|
-
### 2. Five Synthesis Patterns
|
|
48
|
-
|
|
49
|
-
#### Pattern 1: Revenue/Funnel Diagnostics
|
|
50
|
-
|
|
51
|
-
**Question:** Why is [metric] declining?
|
|
52
|
-
|
|
53
|
-
**Method:**
|
|
54
|
-
1. Identify the WHAT from analytics (which metric, which segment, since when)
|
|
55
|
-
2. Search qualitative data for the WHY (complaints, confusion, friction)
|
|
56
|
-
3. Cross-reference timing (deployment logs, feature changes)
|
|
57
|
-
4. Validate with additional data if needed
|
|
58
|
-
|
|
59
|
-
**Example:**
|
|
60
|
-
- **Quant:** Conversion dropped 15% starting March 1
|
|
61
|
-
- **Context:** New pricing page deployed Feb 28
|
|
62
|
-
- **Qual:** 3 support tickets mention "confusing pricing" in March
|
|
63
|
-
- **Qual:** Usability test transcript: "I can't figure out which plan I need"
|
|
64
|
-
- **Synthesis:** Pricing page redesign confused users → add comparison table
|
|
65
|
-
|
|
66
|
-
#### Pattern 2: Funnel + Friction Mapping
|
|
67
|
-
|
|
68
|
-
**Question:** Where do users drop and WHY?
|
|
69
|
-
|
|
70
|
-
**Method:**
|
|
71
|
-
1. Map the funnel stages with drop-off rates (analytics)
|
|
72
|
-
2. Overlay qualitative friction mentions at each stage
|
|
73
|
-
3. Identify stages with high drop + clear friction cause
|
|
74
|
-
4. Prioritize fixes by (drop rate × addressability)
|
|
75
|
-
|
|
76
|
-
**Synthesis Template:**
|
|
77
|
-
|
|
78
|
-
| Stage | Drop Rate | Qual Friction | Mentions | Priority |
|
|
79
|
-
|-------|-----------|---------------|----------|----------|
|
|
80
|
-
| Signup → Onboarding | 40% | "Too many steps" | 5 | High |
|
|
81
|
-
| Onboarding → Activation | 60% | "Didn't know what to do next" | 8 | Critical |
|
|
82
|
-
| Activation → Week 2 | 30% | "Forgot about it" | 3 | Medium |
|
|
83
|
-
|
|
84
|
-
#### Pattern 3: User Segmentation
|
|
85
|
-
|
|
86
|
-
**Question:** Who are our power users and why?
|
|
87
|
-
|
|
88
|
-
**Method:**
|
|
89
|
-
1. Define behavioral hypothesis (what makes power users different?)
|
|
90
|
-
2. Test against analytics (do they do X more than others?)
|
|
91
|
-
3. Find power users and interview them (why do you do X?)
|
|
92
|
-
4. Validate findings against broader cohort data
|
|
93
|
-
|
|
94
|
-
**Example:**
|
|
95
|
-
- **Hypothesis:** Power users connect integrations
|
|
96
|
-
- **Test:** Users with 3+ integrations have 2x retention
|
|
97
|
-
- **Interview:** "The integrations are what make it useful"
|
|
98
|
-
- **Synthesis:** Integrations drive retention → optimize integration setup
|
|
99
|
-
|
|
100
|
-
#### Pattern 4: Aha Moment Discovery
|
|
101
|
-
|
|
102
|
-
**Question:** What drives long-term retention?
|
|
103
|
-
|
|
104
|
-
**Method:**
|
|
105
|
-
1. Mine interview data for "clicked" moments ("That's when I realized...")
|
|
106
|
-
2. Translate to measurable behaviors
|
|
107
|
-
3. Test retention correlation (do users who do X retain better?)
|
|
108
|
-
4. Validate with cohort analysis
|
|
109
|
-
|
|
110
|
-
**Example:**
|
|
111
|
-
- **Qual:** "When I saw the agent reply to a customer, I knew I needed this"
|
|
112
|
-
- **Behavior:** First AI-handled conversation
|
|
113
|
-
- **Test:** Users who see AI conversation in day 1 retain 40% better
|
|
114
|
-
- **Synthesis:** Aha moment = seeing AI work → optimize for day-1 conversation
|
|
115
|
-
|
|
116
|
-
#### Pattern 5: Opportunity Validation
|
|
117
|
-
|
|
118
|
-
**Question:** Is [feature request] real demand or noise?
|
|
119
|
-
|
|
120
|
-
**Method:**
|
|
121
|
-
1. Count unprompted mentions in qualitative data
|
|
122
|
-
2. Check usage of related existing features
|
|
123
|
-
3. Assess segment overlap (who asks for this?)
|
|
124
|
-
4. Estimate impact (if we build this, what changes?)
|
|
125
|
-
|
|
126
|
-
**Validation Matrix:**
|
|
127
|
-
|
|
128
|
-
| Signal | Strong | Weak |
|
|
129
|
-
|--------|--------|------|
|
|
130
|
-
| Unprompted mentions | 5+ interviews | 1-2 mentions |
|
|
131
|
-
| Support tickets | Recurring theme | One-off |
|
|
132
|
-
| Workaround behavior | Users hacking around it | No workarounds |
|
|
133
|
-
| Willingness to pay | "I'd pay more for this" | "Nice to have" |
|
|
134
|
-
| Segment fit | Core users asking | Edge cases asking |
|
|
135
|
-
|
|
136
|
-
### 3. Synthesis Framework
|
|
137
|
-
|
|
138
|
-
**For each insight, document:**
|
|
139
|
-
|
|
140
|
-
| Element | Description |
|
|
141
|
-
|---------|-------------|
|
|
142
|
-
| **Finding** | What we learned (one sentence) |
|
|
143
|
-
| **Quant Evidence** | The numbers that show this |
|
|
144
|
-
| **Qual Evidence** | The quotes/observations that explain it |
|
|
145
|
-
| **Confidence** | High/Medium/Low based on evidence strength |
|
|
146
|
-
| **Implication** | What this means for the product |
|
|
147
|
-
| **Action** | Specific next step |
|
|
148
|
-
|
|
149
|
-
**Example:**
|
|
150
|
-
|
|
151
|
-
| Element | Detail |
|
|
152
|
-
|---------|--------|
|
|
153
|
-
| **Finding** | Users who see AI handle a conversation in day 1 retain 40% better |
|
|
154
|
-
| **Quant** | Day-1 AI conversation cohort: 65% week-4 retention vs. 25% baseline |
|
|
155
|
-
| **Qual** | Interview: "When I saw it actually reply to a customer, I knew I needed this" (×4 users) |
|
|
156
|
-
| **Confidence** | High (strong correlation + consistent interview theme) |
|
|
157
|
-
| **Implication** | First AI conversation is the activation moment |
|
|
158
|
-
| **Action** | Redesign onboarding to guarantee AI conversation in session 1 |
|
|
159
|
-
|
|
160
|
-
### 4. Common Pitfalls
|
|
161
|
-
|
|
162
|
-
**Cherry-picking:**
|
|
163
|
-
- Finding one quote to support a metric
|
|
164
|
-
- Fix: Require multiple qual sources for each insight
|
|
165
|
-
|
|
166
|
-
**False causation:**
|
|
167
|
-
- Assuming correlation is causation
|
|
168
|
-
- Fix: Look for mechanism (WHY would X cause Y?)
|
|
169
|
-
|
|
170
|
-
**Recency bias:**
|
|
171
|
-
- Overweighting recent interviews
|
|
172
|
-
- Fix: Track themes over time
|
|
173
|
-
|
|
174
|
-
**Loudest voice:**
|
|
175
|
-
- One emphatic user shapes perception
|
|
176
|
-
- Fix: Count mentions, don't just note them
|
|
177
|
-
|
|
178
|
-
**Metric worship:**
|
|
179
|
-
- Ignoring qual that contradicts quant
|
|
180
|
-
- Fix: Investigate contradictions—they're often the insight
|
|
181
|
-
|
|
182
|
-
### 5. Tools & Infrastructure
|
|
183
|
-
|
|
184
|
-
**Qualitative Data Management:**
|
|
185
|
-
- Tag interview transcripts by theme
|
|
186
|
-
- Create searchable repository
|
|
187
|
-
- Link quotes to customer profiles
|
|
188
|
-
|
|
189
|
-
**Quantitative + Context:**
|
|
190
|
-
- Document feature deployment dates
|
|
191
|
-
- Note seasonality patterns
|
|
192
|
-
- Maintain event/property definitions
|
|
193
|
-
|
|
194
|
-
**Integration:**
|
|
195
|
-
- Same customer ID across qual and quant
|
|
196
|
-
- Ability to pull analytics for specific interview subjects
|
|
197
|
-
- Combined dashboards showing both
|
|
198
|
-
|
|
199
|
-
### 6. Synthesis Cadence
|
|
200
|
-
|
|
201
|
-
| Frequency | Activity |
|
|
202
|
-
|-----------|----------|
|
|
203
|
-
| **Weekly** | Review new qual (tickets, interviews) against current metrics |
|
|
204
|
-
| **Monthly** | Deep synthesis of a specific question |
|
|
205
|
-
| **Quarterly** | Full customer journey synthesis |
|
|
206
|
-
| **Ad-hoc** | When metrics change unexpectedly |
|
|
207
|
-
|
|
208
|
-
### 7. Synthesis
|
|
209
|
-
|
|
210
|
-
After completing research synthesis:
|
|
211
|
-
- What do we know that we couldn't know from data OR interviews alone?
|
|
212
|
-
- What contradictions remain unresolved?
|
|
213
|
-
- What's the highest-confidence insight?
|
|
214
|
-
- What would change our understanding if we learned it was wrong?
|
|
215
|
-
- What's the next question to investigate?
|
|
216
|
-
|
|
217
|
-
## Example
|
|
218
|
-
|
|
219
|
-
**Context:** B2B SaaS product seeing declining trial-to-paid conversion
|
|
220
|
-
|
|
221
|
-
### Data Collection
|
|
222
|
-
|
|
223
|
-
**Quantitative:**
|
|
224
|
-
- Trial-to-paid dropped from 12% to 8% over 3 months
|
|
225
|
-
- Biggest drop in "team" trials (vs. individual)
|
|
226
|
-
- Day-7 engagement down 20%
|
|
227
|
-
- Pricing page bounce rate up 15%
|
|
228
|
-
|
|
229
|
-
**Qualitative:**
|
|
230
|
-
- 6 churn interviews: "Couldn't get my team to use it"
|
|
231
|
-
- 4 support tickets: "How do I add team members?"
|
|
232
|
-
- 2 sales calls: "Is there a team trial or do I need individual accounts?"
|
|
233
|
-
- Usability test: User couldn't find "invite team" button (took 4 minutes)
|
|
234
|
-
|
|
235
|
-
### Synthesis
|
|
236
|
-
|
|
237
|
-
#### Finding 1: Team onboarding is broken
|
|
238
|
-
|
|
239
|
-
| Element | Detail |
|
|
240
|
-
|---------|--------|
|
|
241
|
-
| **Finding** | Team trials fail because inviting teammates is hard |
|
|
242
|
-
| **Quant** | Team trial conversion: 5% (down from 15%). Individual: 12% (unchanged). |
|
|
243
|
-
| **Qual** | "Couldn't get my team to use it" (×6). "How do I add team members?" (×4). Usability test: 4 min to find invite. |
|
|
244
|
-
| **Confidence** | High |
|
|
245
|
-
| **Implication** | Team value requires team usage; if invites fail, value fails |
|
|
246
|
-
| **Action** | Make "invite team" step 2 of onboarding (not buried in settings) |
|
|
247
|
-
|
|
248
|
-
#### Finding 2: Pricing confusion for teams
|
|
249
|
-
|
|
250
|
-
| Element | Detail |
|
|
251
|
-
|---------|--------|
|
|
252
|
-
| **Finding** | Team buyers confused about per-seat vs. team pricing |
|
|
253
|
-
| **Quant** | Pricing page bounce +15%. Team segment most affected. |
|
|
254
|
-
| **Qual** | "Is there a team trial?" (×2 sales calls). Usability: "I don't understand which plan is for my team." |
|
|
255
|
-
| **Confidence** | Medium (fewer qual mentions) |
|
|
256
|
-
| **Implication** | Pricing page loses team buyers before they try |
|
|
257
|
-
| **Action** | Add team pricing toggle; clarify per-seat math |
|
|
258
|
-
|
|
259
|
-
#### Finding 3: Aha moment is "team collaboration"
|
|
260
|
-
|
|
261
|
-
| Element | Detail |
|
|
262
|
-
|---------|--------|
|
|
263
|
-
| **Finding** | Users who collaborate with teammate in week 1 convert 3x better |
|
|
264
|
-
| **Quant** | Collab in week 1: 24% conversion. No collab: 8% conversion. |
|
|
265
|
-
| **Qual** | "When my colleague replied in the app, I realized this could replace Slack threads" |
|
|
266
|
-
| **Confidence** | High |
|
|
267
|
-
| **Implication** | Aha moment for teams is seeing collaboration happen |
|
|
268
|
-
| **Action** | Trigger first collaboration in onboarding (suggest inviting specific person) |
|
|
269
|
-
|
|
270
|
-
### Prioritized Actions
|
|
271
|
-
|
|
272
|
-
1. **Move "invite team" to onboarding step 2** (Finding 1 + 3: High confidence, high impact)
|
|
273
|
-
2. **Add team pricing toggle with calculator** (Finding 2: Medium confidence, blocking conversion)
|
|
274
|
-
3. **A/B test "invite specific colleague" prompt** (Finding 3: Test the hypothesis)
|
|
275
|
-
|
|
276
|
-
**Insight:** Neither data source alone would have revealed that "invite team" being buried in settings was the root cause. Analytics showed team trials failing; interviews explained why. The synthesis turned a metric problem into a specific UX fix.
|
|
@@ -1,248 +0,0 @@
|
|
|
1
|
-
# Three Engines of Growth
|
|
2
|
-
|
|
3
|
-
## Purpose
|
|
4
|
-
Identify and optimize the single growth engine that will drive sustainable growth for your business, avoiding the trap of trying to optimize everything at once.
|
|
5
|
-
|
|
6
|
-
## When to Use
|
|
7
|
-
- Deciding how to invest in growth
|
|
8
|
-
- Choosing between competing growth strategies
|
|
9
|
-
- Diagnosing why growth has stalled
|
|
10
|
-
- Aligning team around growth metrics
|
|
11
|
-
- Evaluating product-market fit progress
|
|
12
|
-
|
|
13
|
-
## Process
|
|
14
|
-
|
|
15
|
-
### 1. Understand the Three Engines
|
|
16
|
-
|
|
17
|
-
Every sustainable business is powered by one primary engine:
|
|
18
|
-
|
|
19
|
-
**1. Sticky Engine (Retention)**
|
|
20
|
-
Growth from keeping customers longer
|
|
21
|
-
- Key metric: Churn rate vs. acquisition rate
|
|
22
|
-
- Formula: Growth = Acquisition Rate - Churn Rate
|
|
23
|
-
- Focus: Engagement, habit formation, switching costs
|
|
24
|
-
- Example: SaaS products, subscription services
|
|
25
|
-
|
|
26
|
-
**2. Viral Engine (Word-of-Mouth)**
|
|
27
|
-
Growth from customers bringing customers
|
|
28
|
-
- Key metric: Viral coefficient (K)
|
|
29
|
-
- Formula: If K > 1, exponential growth
|
|
30
|
-
- Focus: Product quality, shareability, referral incentives
|
|
31
|
-
- Example: Social networks, collaboration tools
|
|
32
|
-
|
|
33
|
-
**3. Paid Engine (Advertising)**
|
|
34
|
-
Growth from reinvesting revenue into acquisition
|
|
35
|
-
- Key metric: LTV > CAC (with margin)
|
|
36
|
-
- Formula: Marginal Profit = LTV - CAC
|
|
37
|
-
- Focus: Conversion optimization, channel efficiency
|
|
38
|
-
- Example: E-commerce, transactional services
|
|
39
|
-
|
|
40
|
-
### 2. Identify Your Primary Engine
|
|
41
|
-
|
|
42
|
-
**Which engine are you optimizing for?**
|
|
43
|
-
|
|
44
|
-
Most companies can grow through multiple engines, but successful companies focus on ONE primary engine and optimize everything for it.
|
|
45
|
-
|
|
46
|
-
**Diagnostic questions:**
|
|
47
|
-
|
|
48
|
-
**For Sticky Engine:**
|
|
49
|
-
- Do customers use your product daily/weekly?
|
|
50
|
-
- Is there high switching cost?
|
|
51
|
-
- Does value increase over time (data, network, customization)?
|
|
52
|
-
- Is churn rate below 5% monthly?
|
|
53
|
-
|
|
54
|
-
**For Viral Engine:**
|
|
55
|
-
- Does using the product expose others to it?
|
|
56
|
-
- Do users naturally share or invite others?
|
|
57
|
-
- Is your viral coefficient approaching or exceeding 1?
|
|
58
|
-
- Does the product improve with more users (network effects)?
|
|
59
|
-
|
|
60
|
-
**For Paid Engine:**
|
|
61
|
-
- Do you know your customer lifetime value?
|
|
62
|
-
- Can you profitably acquire customers?
|
|
63
|
-
- Is LTV > 3x CAC?
|
|
64
|
-
- Are there scalable paid channels available?
|
|
65
|
-
|
|
66
|
-
### 3. Optimize Your Engine
|
|
67
|
-
|
|
68
|
-
**Sticky Engine Optimization:**
|
|
69
|
-
|
|
70
|
-
| Metric | How to Improve |
|
|
71
|
-
|--------|----------------|
|
|
72
|
-
| Churn Rate | Better onboarding, engagement features, success programs |
|
|
73
|
-
| Engagement | Daily use cases, notifications, habit loops |
|
|
74
|
-
| Expansion Revenue | Upsells, add-ons, usage-based pricing |
|
|
75
|
-
| NPS/CSAT | Product quality, support, proactive outreach |
|
|
76
|
-
|
|
77
|
-
**Key Focus Areas:**
|
|
78
|
-
- Onboarding experience (time-to-value)
|
|
79
|
-
- Daily/weekly engagement hooks
|
|
80
|
-
- Customer success and support
|
|
81
|
-
- Feature adoption tracking
|
|
82
|
-
- Cohort retention analysis
|
|
83
|
-
|
|
84
|
-
**Viral Engine Optimization:**
|
|
85
|
-
|
|
86
|
-
| Metric | How to Improve |
|
|
87
|
-
|--------|----------------|
|
|
88
|
-
| Viral Coefficient (K) | Invitation mechanics, sharing features, referral rewards |
|
|
89
|
-
| Cycle Time | Faster onboarding, immediate value, easy invites |
|
|
90
|
-
| Conversion from Invite | Better landing pages, social proof, incentives |
|
|
91
|
-
| Network Effects | Features that improve with more users |
|
|
92
|
-
|
|
93
|
-
**Key Focus Areas:**
|
|
94
|
-
- Make sharing/inviting seamless
|
|
95
|
-
- Create value that requires others (collaboration)
|
|
96
|
-
- Referral programs with two-sided rewards
|
|
97
|
-
- Social proof and public usage
|
|
98
|
-
|
|
99
|
-
**Paid Engine Optimization:**
|
|
100
|
-
|
|
101
|
-
| Metric | How to Improve |
|
|
102
|
-
|--------|----------------|
|
|
103
|
-
| LTV | Pricing, retention, upsells |
|
|
104
|
-
| CAC | Ad creative, targeting, conversion rate |
|
|
105
|
-
| LTV:CAC Ratio | Both of the above |
|
|
106
|
-
| Payback Period | Faster time-to-value, annual prepay |
|
|
107
|
-
|
|
108
|
-
**Key Focus Areas:**
|
|
109
|
-
- Conversion rate optimization
|
|
110
|
-
- Channel diversification
|
|
111
|
-
- Pricing optimization
|
|
112
|
-
- Customer segmentation (different LTV by segment)
|
|
113
|
-
|
|
114
|
-
### 4. Measure Progress
|
|
115
|
-
|
|
116
|
-
**Sticky Engine Metrics:**
|
|
117
|
-
- Monthly churn rate (target: <5%)
|
|
118
|
-
- Daily/Weekly Active Users (DAU/WAU)
|
|
119
|
-
- Net Revenue Retention (target: >100%)
|
|
120
|
-
- Feature adoption rates
|
|
121
|
-
- NPS (target: >50)
|
|
122
|
-
|
|
123
|
-
**Viral Engine Metrics:**
|
|
124
|
-
- Viral coefficient (K)
|
|
125
|
-
- Invitation rate (% of users who invite)
|
|
126
|
-
- Invite conversion rate
|
|
127
|
-
- Viral cycle time
|
|
128
|
-
- Organic vs. paid user ratio
|
|
129
|
-
|
|
130
|
-
**Paid Engine Metrics:**
|
|
131
|
-
- Customer Acquisition Cost (CAC)
|
|
132
|
-
- Customer Lifetime Value (LTV)
|
|
133
|
-
- LTV:CAC ratio (target: >3:1)
|
|
134
|
-
- Payback period (target: <12 months)
|
|
135
|
-
- Return on Ad Spend (ROAS)
|
|
136
|
-
|
|
137
|
-
### 5. Avoid Common Mistakes
|
|
138
|
-
|
|
139
|
-
**Trying to optimize all three:**
|
|
140
|
-
- Dilutes focus and resources
|
|
141
|
-
- Different engines require different expertise
|
|
142
|
-
- "Good at all three" usually means "great at none"
|
|
143
|
-
|
|
144
|
-
**Wrong engine for your product:**
|
|
145
|
-
- Not all products can be viral (B2B enterprise rarely is)
|
|
146
|
-
- Not all products can be sticky (low-frequency use cases)
|
|
147
|
-
- Not all products can be profitably acquired (low LTV)
|
|
148
|
-
|
|
149
|
-
**Premature scaling:**
|
|
150
|
-
- Scaling paid before LTV:CAC is proven
|
|
151
|
-
- Pushing virality before product is ready
|
|
152
|
-
- Focusing on acquisition before retention
|
|
153
|
-
|
|
154
|
-
**Vanity metrics:**
|
|
155
|
-
- Total signups instead of active users (sticky)
|
|
156
|
-
- Invites sent instead of invites converted (viral)
|
|
157
|
-
- Traffic instead of conversions (paid)
|
|
158
|
-
|
|
159
|
-
### 6. Engine-Specific Product Decisions
|
|
160
|
-
|
|
161
|
-
**If Sticky is your engine:**
|
|
162
|
-
- Build features for daily use
|
|
163
|
-
- Invest heavily in onboarding
|
|
164
|
-
- Create switching costs (data, integrations, customization)
|
|
165
|
-
- Build for one persona deeply, not many shallowly
|
|
166
|
-
|
|
167
|
-
**If Viral is your engine:**
|
|
168
|
-
- Make the product inherently social
|
|
169
|
-
- Reduce friction to invite/share
|
|
170
|
-
- Make inviting benefit the inviter, not just the invitee
|
|
171
|
-
- Build for network effects
|
|
172
|
-
|
|
173
|
-
**If Paid is your engine:**
|
|
174
|
-
- Optimize conversion funnel obsessively
|
|
175
|
-
- Experiment with pricing constantly
|
|
176
|
-
- Build for high-intent purchase behavior
|
|
177
|
-
- Create clear, measurable ROI for customers
|
|
178
|
-
|
|
179
|
-
### 7. Synthesis
|
|
180
|
-
|
|
181
|
-
After identifying your engine:
|
|
182
|
-
- Is your product designed for this engine?
|
|
183
|
-
- Are you measuring the right metrics?
|
|
184
|
-
- Is your team focused on the right activities?
|
|
185
|
-
- What would improve this engine's performance by 10%?
|
|
186
|
-
- What engine-specific experiments should you run next?
|
|
187
|
-
|
|
188
|
-
## Example
|
|
189
|
-
|
|
190
|
-
**Product**: B2B sales intelligence platform
|
|
191
|
-
|
|
192
|
-
### Engine Analysis
|
|
193
|
-
|
|
194
|
-
**Could it be Sticky?**
|
|
195
|
-
- Users need data daily for prospecting ✓
|
|
196
|
-
- Data quality improves with use ✓
|
|
197
|
-
- Integrations with CRM create switching cost ✓
|
|
198
|
-
- High replacement cost ✓
|
|
199
|
-
- **Assessment: Strong fit for Sticky**
|
|
200
|
-
|
|
201
|
-
**Could it be Viral?**
|
|
202
|
-
- Using it doesn't expose others to it ✗
|
|
203
|
-
- Inviting others doesn't help the user ✗
|
|
204
|
-
- No network effects ✗
|
|
205
|
-
- **Assessment: Poor fit for Viral**
|
|
206
|
-
|
|
207
|
-
**Could it be Paid?**
|
|
208
|
-
- Clear ROI (more deals closed) ✓
|
|
209
|
-
- High LTV ($10K+ annually) ✓
|
|
210
|
-
- Identifiable buyer (Sales VP) ✓
|
|
211
|
-
- **Assessment: Good fit for Paid**
|
|
212
|
-
|
|
213
|
-
### Primary Engine Decision
|
|
214
|
-
|
|
215
|
-
**Primary: Sticky Engine** (retention drives growth)
|
|
216
|
-
**Secondary: Paid Engine** (initial acquisition)
|
|
217
|
-
|
|
218
|
-
**Rationale:**
|
|
219
|
-
- Viral doesn't work for this product type
|
|
220
|
-
- Sticky is strong because daily use + high switching cost
|
|
221
|
-
- Paid works as acquisition method, but retention is what compounds
|
|
222
|
-
|
|
223
|
-
### Optimization Plan
|
|
224
|
-
|
|
225
|
-
**Sticky Engine Focus:**
|
|
226
|
-
1. **Onboarding:** Time-to-first-valuable-insight < 24 hours
|
|
227
|
-
2. **Daily Use Hook:** Morning prospecting email with top leads
|
|
228
|
-
3. **Data Accumulation:** Custom lists, notes, activity history
|
|
229
|
-
4. **CRM Integration:** Deep Salesforce/HubSpot sync
|
|
230
|
-
|
|
231
|
-
**Key Metrics:**
|
|
232
|
-
- Daily Active Rate: 60% of paid users (target)
|
|
233
|
-
- Monthly Churn: <3%
|
|
234
|
-
- Net Revenue Retention: >110%
|
|
235
|
-
|
|
236
|
-
**Paid Engine (Secondary):**
|
|
237
|
-
- CAC Target: <$1,000
|
|
238
|
-
- LTV Target: >$10,000
|
|
239
|
-
- Channels: Google Ads, LinkedIn, SDR outreach
|
|
240
|
-
|
|
241
|
-
### Results Framework
|
|
242
|
-
|
|
243
|
-
**Month 1-3:** Establish baseline metrics
|
|
244
|
-
**Month 4-6:** Run experiments on onboarding (time-to-value)
|
|
245
|
-
**Month 7-9:** Test engagement hooks (daily email, mobile alerts)
|
|
246
|
-
**Month 10-12:** Measure retention cohorts, adjust pricing
|
|
247
|
-
|
|
248
|
-
**Insight:** By focusing on Sticky engine, every product decision is filtered through "does this increase daily use or retention?" This clarity prevents feature sprawl and keeps the team aligned on what matters.
|
|
@@ -1,89 +0,0 @@
|
|
|
1
|
-
# Validation Tests
|
|
2
|
-
|
|
3
|
-
## Purpose
|
|
4
|
-
Define concrete, pass/fail test scenarios that prove a prototype works before going live. Validation tests are the bridge between "it's built" and "it's ready" — they catch workflow gaps, edge cases, and integration failures that desk-checking misses.
|
|
5
|
-
|
|
6
|
-
## When to Use
|
|
7
|
-
- After building a prototype, before the live validation sprint
|
|
8
|
-
- When a PRD defines a multi-step workflow with cross-party coordination
|
|
9
|
-
- When the prototype involves scheduled actions (cron, timeouts, follow-ups)
|
|
10
|
-
- When there are gates/guards that must block incorrect states
|
|
11
|
-
- Before declaring a sprint build "complete"
|
|
12
|
-
|
|
13
|
-
## Process
|
|
14
|
-
|
|
15
|
-
1. **Derive scenarios from the workflow**
|
|
16
|
-
- Walk through each step of the workflow and ask: "What proves this step works?"
|
|
17
|
-
- One test per step for the happy path
|
|
18
|
-
- Additional tests for every branch, timeout, and failure mode
|
|
19
|
-
|
|
20
|
-
2. **Categorize by risk area**
|
|
21
|
-
- **Core workflow**: The happy path end-to-end. If this fails, nothing works.
|
|
22
|
-
- **Timeouts and expiry**: Scheduled actions that fire without human input. Easy to get wrong.
|
|
23
|
-
- **Escalation and enforcement**: Warning → penalty → removal progressions. Must fire in order.
|
|
24
|
-
- **Gates and guards**: Precondition checks that block invalid actions. Must be airtight.
|
|
25
|
-
- **Cross-session and scope**: Multi-party coordination where state is shared. Most technically fragile.
|
|
26
|
-
- **Information relay**: Passing data between parties while preserving constraints (e.g. anonymity).
|
|
27
|
-
- **Reputation and scoring**: Trust scores, priority tiers, blacklist thresholds. Must be deterministic.
|
|
28
|
-
- **Data compliance**: Access and erasure rights. Legal requirement — must work perfectly.
|
|
29
|
-
- **Scheduled job reliability**: Every cron/timeout type fires and the system acts on it correctly.
|
|
30
|
-
|
|
31
|
-
3. **Write each test as a numbered scenario**
|
|
32
|
-
- **ID**: Short reference (T1, T2, ... Tn)
|
|
33
|
-
- **Title**: What it tests in plain English
|
|
34
|
-
- **Steps**: Numbered sequence of actions (input → expected behaviour)
|
|
35
|
-
- **Pass criteria**: What "success" looks like — specific state changes, messages sent, records updated
|
|
36
|
-
- Keep it concrete: use example values, names, amounts. Abstract tests are hard to run.
|
|
37
|
-
|
|
38
|
-
4. **Order by dependency**
|
|
39
|
-
- Core workflow first (can't test edge cases if the happy path is broken)
|
|
40
|
-
- Gates and guards before escalation (guards prevent bad states that escalation handles)
|
|
41
|
-
- Cross-session before information relay (relay depends on scope resolution working)
|
|
42
|
-
- Data compliance last (depends on all other data being created correctly first)
|
|
43
|
-
|
|
44
|
-
5. **Define the test environment**
|
|
45
|
-
- What test accounts/phones are needed?
|
|
46
|
-
- What seed data must exist before testing? (e.g. pre-created profiles, records)
|
|
47
|
-
- How are cron jobs accelerated for testing? (Shortened timers or manual trigger)
|
|
48
|
-
- How do you verify state after each step? (Check memory files, customer records, session history)
|
|
49
|
-
|
|
50
|
-
6. **Run and record results**
|
|
51
|
-
- Run each test in order
|
|
52
|
-
- Record: pass/fail, actual behaviour, any deviations from expected
|
|
53
|
-
- If a test fails, fix the issue and re-run from the start of that test (not just the failing step)
|
|
54
|
-
- All tests must pass before declaring the build ready for live use
|
|
55
|
-
|
|
56
|
-
## Test Count Guidelines
|
|
57
|
-
|
|
58
|
-
| Prototype complexity | Typical test count |
|
|
59
|
-
|---|---|
|
|
60
|
-
| Simple (single-party, no scheduling) | 5–10 |
|
|
61
|
-
| Moderate (multi-party OR scheduling) | 10–20 |
|
|
62
|
-
| Complex (multi-party AND scheduling AND enforcement) | 20–30 |
|
|
63
|
-
|
|
64
|
-
More tests are not necessarily better. Each test should cover a distinct scenario — if two tests would pass or fail together, merge them.
|
|
65
|
-
|
|
66
|
-
## Example
|
|
67
|
-
|
|
68
|
-
**Prototype**: AI booking agent that connects customers with service providers via WhatsApp.
|
|
69
|
-
|
|
70
|
-
**Test categories and counts:**
|
|
71
|
-
- Core workflow (happy path, extension round, both rounds fail): 3 tests
|
|
72
|
-
- Quote expiry and timeouts (no response, 2nd expiry warning, 3rd expiry blacklist): 3 tests
|
|
73
|
-
- Fee collection escalation (on time, late, full escalation to blacklist, reinstatement): 4 tests
|
|
74
|
-
- Gates and guards (outstanding fee blocks booking, location filter, concurrent cap, opt-out, opt-in): 5 tests
|
|
75
|
-
- Cross-session and scope (virtual group write access, access revocation, late response): 3 tests
|
|
76
|
-
- Information relay (provider requests more info, photo forwarding, anonymity preserved): 1 test
|
|
77
|
-
- Trust scores (shared during anonymous phase, hidden after reveal, score updates): 3 tests
|
|
78
|
-
- Data compliance (export, deletion): 2 tests
|
|
79
|
-
- Cron reliability (all scheduled job types fire correctly): 1 test
|
|
80
|
-
|
|
81
|
-
**Total: 25 tests** — appropriate for a complex multi-party, scheduled, enforced workflow.
|
|
82
|
-
|
|
83
|
-
## Common Pitfalls
|
|
84
|
-
|
|
85
|
-
- **Testing only the happy path.** The happy path is the least likely to break. Timeouts, escalations, and edge cases are where prototypes fail.
|
|
86
|
-
- **Not testing cron jobs end-to-end.** Scheduling a cron is easy; verifying the agent acts correctly when it fires is where bugs hide.
|
|
87
|
-
- **Assuming cross-session state is visible.** If Party A writes data in their session, verify Party B can actually read it in theirs.
|
|
88
|
-
- **Skipping gate tests.** A missing precondition check (e.g. outstanding payment) can let invalid state propagate through the entire workflow.
|
|
89
|
-
- **Not re-running after fixes.** A fix to one test can break another. Re-run from the top of the category, not just the failing test.
|