codymaster 4.4.4 → 4.5.1

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.
Files changed (190) hide show
  1. package/CHANGELOG.md +33 -0
  2. package/README.md +29 -14
  3. package/commands/demo.md +1 -1
  4. package/dist/context-bus.js +70 -0
  5. package/dist/context-db.js +265 -0
  6. package/dist/continuity.js +12 -0
  7. package/dist/file-watcher.js +79 -0
  8. package/dist/index.js +152 -1
  9. package/dist/l0-indexer.js +158 -0
  10. package/dist/mcp-context-server.js +400 -0
  11. package/dist/migrate-json-to-sqlite.js +126 -0
  12. package/dist/skill-chain.js +19 -3
  13. package/dist/token-budget.js +108 -0
  14. package/dist/uri-resolver.js +203 -0
  15. package/package.json +7 -1
  16. package/skills/_shared/helpers.md +50 -14
  17. package/skills/cm-autopilot/SKILL.md +29 -0
  18. package/skills/cm-autopilot/scripts/autopilot.py +190 -0
  19. package/skills/cm-continuity/SKILL.md +90 -28
  20. package/skills/cm-quality-gate/SKILL.md +11 -1
  21. package/skills/cm-safe-deploy/SKILL.md +38 -2
  22. package/skills/cm-security-gate/SKILL.md +158 -34
  23. package/skills/cm-skill-chain/SKILL.md +47 -1
  24. package/skills/cm-start/SKILL.md +11 -2
  25. package/skills/cm-test-gate/SKILL.md +3 -0
  26. package/skills/boxme-git-config/SKILL.md +0 -56
  27. package/skills/boxme-local-dev/SKILL.md +0 -66
  28. package/skills/jobs-to-be-done/SKILL.md +0 -266
  29. package/skills/jobs-to-be-done/references/case-studies.md +0 -154
  30. package/skills/jobs-to-be-done/references/competitive-strategy.md +0 -280
  31. package/skills/jobs-to-be-done/references/diagnostics.md +0 -158
  32. package/skills/jobs-to-be-done/references/innovation-process.md +0 -392
  33. package/skills/jobs-to-be-done/references/organizational-change.md +0 -328
  34. package/skills/marketplace-report-crawler/SKILL.md +0 -176
  35. package/skills/marketplace-report-crawler/config/accounts.json +0 -41
  36. package/skills/marketplace-report-crawler/config/report-types.json +0 -422
  37. package/skills/marketplace-report-crawler/config/sessions.json +0 -3
  38. package/skills/marketplace-report-crawler/scripts/ab-wrapper.sh +0 -102
  39. package/skills/marketplace-report-crawler/scripts/browser-actions/lazada/lazada-actions.js +0 -114
  40. package/skills/marketplace-report-crawler/scripts/browser-actions/shopee/shopee-actions.js +0 -94
  41. package/skills/marketplace-report-crawler/scripts/browser-actions/tiktok/tiktok-actions.js +0 -272
  42. package/skills/marketplace-report-crawler/scripts/crawl-runner.js +0 -281
  43. package/skills/marketplace-report-crawler/scripts/session-check.sh +0 -72
  44. package/skills/marketplace-report-crawler/scripts/session-manager.sh +0 -349
  45. package/skills/marketplace-report-crawler/scripts/setup-folders.sh +0 -83
  46. package/skills/medical-research/SKILL.md +0 -194
  47. package/skills/medical-research/scripts/evidence_checker.py +0 -288
  48. package/skills/mom-test/SKILL.md +0 -267
  49. package/skills/mom-test/references/avoiding-bad-data.md +0 -221
  50. package/skills/mom-test/references/case-studies.md +0 -306
  51. package/skills/mom-test/references/commitment-advancement.md +0 -219
  52. package/skills/mom-test/references/finding-conversations.md +0 -251
  53. package/skills/mom-test/references/processing-learning.md +0 -256
  54. package/skills/mom-test/references/question-patterns.md +0 -198
  55. package/skills/pandasai-analytics/SKILL.md +0 -251
  56. package/skills/release-it/SKILL.md +0 -235
  57. package/skills/release-it/references/anti-patterns.md +0 -279
  58. package/skills/release-it/references/capacity-planning.md +0 -285
  59. package/skills/release-it/references/chaos-engineering.md +0 -325
  60. package/skills/release-it/references/deployment-strategies.md +0 -331
  61. package/skills/release-it/references/observability.md +0 -301
  62. package/skills/release-it/references/stability-patterns.md +0 -355
  63. package/skills/skill-creator-ultra/.agents/workflows/skill-audit.md +0 -37
  64. package/skills/skill-creator-ultra/.agents/workflows/skill-compare.md +0 -34
  65. package/skills/skill-creator-ultra/.agents/workflows/skill-export.md +0 -51
  66. package/skills/skill-creator-ultra/.agents/workflows/skill-generate.md +0 -39
  67. package/skills/skill-creator-ultra/.agents/workflows/skill-scaffold.md +0 -52
  68. package/skills/skill-creator-ultra/.agents/workflows/skill-simulate.md +0 -25
  69. package/skills/skill-creator-ultra/.agents/workflows/skill-stats.md +0 -31
  70. package/skills/skill-creator-ultra/.agents/workflows/skill-validate.md +0 -25
  71. package/skills/skill-creator-ultra/README.md +0 -1242
  72. package/skills/skill-creator-ultra/SKILL.md +0 -388
  73. package/skills/skill-creator-ultra/agents/analyzer.md +0 -274
  74. package/skills/skill-creator-ultra/agents/comparator.md +0 -202
  75. package/skills/skill-creator-ultra/agents/grader.md +0 -223
  76. package/skills/skill-creator-ultra/assets/eval_review.html +0 -146
  77. package/skills/skill-creator-ultra/eval-viewer/generate_review.py +0 -471
  78. package/skills/skill-creator-ultra/eval-viewer/viewer.html +0 -1325
  79. package/skills/skill-creator-ultra/examples/example_anthropic_frontend.md +0 -109
  80. package/skills/skill-creator-ultra/examples/example_anthropic_pdf.md +0 -116
  81. package/skills/skill-creator-ultra/examples/example_api_docs.md +0 -189
  82. package/skills/skill-creator-ultra/examples/example_db_migration.md +0 -253
  83. package/skills/skill-creator-ultra/examples/example_git_commit.md +0 -111
  84. package/skills/skill-creator-ultra/install.ps1 +0 -289
  85. package/skills/skill-creator-ultra/install.sh +0 -313
  86. package/skills/skill-creator-ultra/phases/phase1_interview.md +0 -202
  87. package/skills/skill-creator-ultra/phases/phase2_extract.md +0 -55
  88. package/skills/skill-creator-ultra/phases/phase3_detect.md +0 -57
  89. package/skills/skill-creator-ultra/phases/phase4_generate.md +0 -543
  90. package/skills/skill-creator-ultra/phases/phase5_test.md +0 -319
  91. package/skills/skill-creator-ultra/phases/phase6_eval.md +0 -301
  92. package/skills/skill-creator-ultra/phases/phase7_iterate.md +0 -103
  93. package/skills/skill-creator-ultra/phases/phase8_optimize.md +0 -113
  94. package/skills/skill-creator-ultra/resources/advanced_patterns.md +0 -499
  95. package/skills/skill-creator-ultra/resources/anti_patterns.md +0 -376
  96. package/skills/skill-creator-ultra/resources/blueprints.md +0 -498
  97. package/skills/skill-creator-ultra/resources/checklist.md +0 -243
  98. package/skills/skill-creator-ultra/resources/composition_cookbook.md +0 -291
  99. package/skills/skill-creator-ultra/resources/description_optimization.md +0 -90
  100. package/skills/skill-creator-ultra/resources/eval_guide.md +0 -133
  101. package/skills/skill-creator-ultra/resources/industry_questions.md +0 -189
  102. package/skills/skill-creator-ultra/resources/interview_questions.md +0 -200
  103. package/skills/skill-creator-ultra/resources/pattern_detection.md +0 -200
  104. package/skills/skill-creator-ultra/resources/prompt_engineering.md +0 -531
  105. package/skills/skill-creator-ultra/resources/schemas.md +0 -430
  106. package/skills/skill-creator-ultra/resources/script_integration.md +0 -593
  107. package/skills/skill-creator-ultra/resources/scripts_guide.md +0 -339
  108. package/skills/skill-creator-ultra/resources/skill_template.md +0 -124
  109. package/skills/skill-creator-ultra/resources/skill_writing_guide.md +0 -634
  110. package/skills/skill-creator-ultra/resources/versioning_guide.md +0 -193
  111. package/skills/skill-creator-ultra/scripts/ci_eval.py +0 -200
  112. package/skills/skill-creator-ultra/scripts/package_skill.py +0 -165
  113. package/skills/skill-creator-ultra/scripts/simulate_skill.py +0 -398
  114. package/skills/skill-creator-ultra/scripts/skill_audit.py +0 -611
  115. package/skills/skill-creator-ultra/scripts/skill_compare.py +0 -265
  116. package/skills/skill-creator-ultra/scripts/skill_export.py +0 -334
  117. package/skills/skill-creator-ultra/scripts/skill_scaffold.py +0 -403
  118. package/skills/skill-creator-ultra/scripts/skill_stats.py +0 -339
  119. package/skills/skill-creator-ultra/scripts/validate_skill.py +0 -411
  120. package/skills/tailwind-mastery/SKILL.md +0 -229
  121. package/skills/vercel-react-best-practices/AGENTS.md +0 -3373
  122. package/skills/vercel-react-best-practices/README.md +0 -123
  123. package/skills/vercel-react-best-practices/SKILL.md +0 -143
  124. package/skills/vercel-react-best-practices/rules/_sections.md +0 -46
  125. package/skills/vercel-react-best-practices/rules/_template.md +0 -28
  126. package/skills/vercel-react-best-practices/rules/advanced-event-handler-refs.md +0 -55
  127. package/skills/vercel-react-best-practices/rules/advanced-init-once.md +0 -42
  128. package/skills/vercel-react-best-practices/rules/advanced-use-latest.md +0 -39
  129. package/skills/vercel-react-best-practices/rules/async-api-routes.md +0 -38
  130. package/skills/vercel-react-best-practices/rules/async-defer-await.md +0 -80
  131. package/skills/vercel-react-best-practices/rules/async-dependencies.md +0 -51
  132. package/skills/vercel-react-best-practices/rules/async-parallel.md +0 -28
  133. package/skills/vercel-react-best-practices/rules/async-suspense-boundaries.md +0 -99
  134. package/skills/vercel-react-best-practices/rules/bundle-barrel-imports.md +0 -59
  135. package/skills/vercel-react-best-practices/rules/bundle-conditional.md +0 -31
  136. package/skills/vercel-react-best-practices/rules/bundle-defer-third-party.md +0 -49
  137. package/skills/vercel-react-best-practices/rules/bundle-dynamic-imports.md +0 -35
  138. package/skills/vercel-react-best-practices/rules/bundle-preload.md +0 -50
  139. package/skills/vercel-react-best-practices/rules/client-event-listeners.md +0 -74
  140. package/skills/vercel-react-best-practices/rules/client-localstorage-schema.md +0 -71
  141. package/skills/vercel-react-best-practices/rules/client-passive-event-listeners.md +0 -48
  142. package/skills/vercel-react-best-practices/rules/client-swr-dedup.md +0 -56
  143. package/skills/vercel-react-best-practices/rules/js-batch-dom-css.md +0 -107
  144. package/skills/vercel-react-best-practices/rules/js-cache-function-results.md +0 -80
  145. package/skills/vercel-react-best-practices/rules/js-cache-property-access.md +0 -28
  146. package/skills/vercel-react-best-practices/rules/js-cache-storage.md +0 -70
  147. package/skills/vercel-react-best-practices/rules/js-combine-iterations.md +0 -32
  148. package/skills/vercel-react-best-practices/rules/js-early-exit.md +0 -50
  149. package/skills/vercel-react-best-practices/rules/js-flatmap-filter.md +0 -60
  150. package/skills/vercel-react-best-practices/rules/js-hoist-regexp.md +0 -45
  151. package/skills/vercel-react-best-practices/rules/js-index-maps.md +0 -37
  152. package/skills/vercel-react-best-practices/rules/js-length-check-first.md +0 -49
  153. package/skills/vercel-react-best-practices/rules/js-min-max-loop.md +0 -82
  154. package/skills/vercel-react-best-practices/rules/js-set-map-lookups.md +0 -24
  155. package/skills/vercel-react-best-practices/rules/js-tosorted-immutable.md +0 -57
  156. package/skills/vercel-react-best-practices/rules/rendering-activity.md +0 -26
  157. package/skills/vercel-react-best-practices/rules/rendering-animate-svg-wrapper.md +0 -47
  158. package/skills/vercel-react-best-practices/rules/rendering-conditional-render.md +0 -40
  159. package/skills/vercel-react-best-practices/rules/rendering-content-visibility.md +0 -38
  160. package/skills/vercel-react-best-practices/rules/rendering-hoist-jsx.md +0 -46
  161. package/skills/vercel-react-best-practices/rules/rendering-hydration-no-flicker.md +0 -82
  162. package/skills/vercel-react-best-practices/rules/rendering-hydration-suppress-warning.md +0 -30
  163. package/skills/vercel-react-best-practices/rules/rendering-resource-hints.md +0 -85
  164. package/skills/vercel-react-best-practices/rules/rendering-script-defer-async.md +0 -68
  165. package/skills/vercel-react-best-practices/rules/rendering-svg-precision.md +0 -28
  166. package/skills/vercel-react-best-practices/rules/rendering-usetransition-loading.md +0 -75
  167. package/skills/vercel-react-best-practices/rules/rerender-defer-reads.md +0 -39
  168. package/skills/vercel-react-best-practices/rules/rerender-dependencies.md +0 -45
  169. package/skills/vercel-react-best-practices/rules/rerender-derived-state-no-effect.md +0 -40
  170. package/skills/vercel-react-best-practices/rules/rerender-derived-state.md +0 -29
  171. package/skills/vercel-react-best-practices/rules/rerender-functional-setstate.md +0 -74
  172. package/skills/vercel-react-best-practices/rules/rerender-lazy-state-init.md +0 -58
  173. package/skills/vercel-react-best-practices/rules/rerender-memo-with-default-value.md +0 -38
  174. package/skills/vercel-react-best-practices/rules/rerender-memo.md +0 -44
  175. package/skills/vercel-react-best-practices/rules/rerender-move-effect-to-event.md +0 -45
  176. package/skills/vercel-react-best-practices/rules/rerender-no-inline-components.md +0 -82
  177. package/skills/vercel-react-best-practices/rules/rerender-simple-expression-in-memo.md +0 -35
  178. package/skills/vercel-react-best-practices/rules/rerender-split-combined-hooks.md +0 -64
  179. package/skills/vercel-react-best-practices/rules/rerender-transitions.md +0 -40
  180. package/skills/vercel-react-best-practices/rules/rerender-use-deferred-value.md +0 -59
  181. package/skills/vercel-react-best-practices/rules/rerender-use-ref-transient-values.md +0 -73
  182. package/skills/vercel-react-best-practices/rules/server-after-nonblocking.md +0 -73
  183. package/skills/vercel-react-best-practices/rules/server-auth-actions.md +0 -96
  184. package/skills/vercel-react-best-practices/rules/server-cache-lru.md +0 -41
  185. package/skills/vercel-react-best-practices/rules/server-cache-react.md +0 -76
  186. package/skills/vercel-react-best-practices/rules/server-dedup-props.md +0 -65
  187. package/skills/vercel-react-best-practices/rules/server-hoist-static-io.md +0 -142
  188. package/skills/vercel-react-best-practices/rules/server-parallel-fetching.md +0 -83
  189. package/skills/vercel-react-best-practices/rules/server-serialization.md +0 -38
  190. package/skills/web-design-guidelines/SKILL.md +0 -39
@@ -1,280 +0,0 @@
1
- # JTBD Competitive Strategy
2
-
3
- Analyzing competition through the jobs lens and building differentiated positioning.
4
-
5
- ## Rethinking Competition
6
-
7
- ### The Traditional View (Wrong)
8
-
9
- "Our competitors are companies that sell similar products in our category."
10
-
11
- ### The JTBD View (Right)
12
-
13
- "Our competitors are anything a customer might hire to get their job done."
14
-
15
- This fundamental shift reveals:
16
- - Non-obvious competitors you're losing to
17
- - Opportunities in adjacent spaces
18
- - Why customers choose seemingly inferior solutions
19
-
20
- ---
21
-
22
- ## Non-Obvious Competition
23
-
24
- ### Finding Hidden Competitors
25
-
26
- Ask: "What else do customers hire for this job?"
27
-
28
- | Job | Obvious Competitor | Non-Obvious Competitors |
29
- |-----|-------------------|------------------------|
30
- | Commute entertainment | Other podcasts | Music, audiobooks, silence, phone calls |
31
- | Evening relaxation | Other streaming services | Video games, reading, wine, sleep |
32
- | Learn new skills | Other courses | Books, YouTube, mentors, trial and error |
33
- | Stay informed | Other news apps | Twitter, newsletters, colleagues, podcasts |
34
- | Celebrate achievement | Other restaurants | Home cooking, vacation, gifts, party |
35
-
36
- ### The Milkshake Discovery
37
-
38
- The famous milkshake study revealed:
39
- - **Assumed competitors:** Other fast food beverages, breakfast items
40
- - **Actual competitors:** Bananas, bagels, donuts, boredom itself
41
-
42
- The job wasn't "consume breakfast"—it was "make my commute tolerable and keep me full until lunch."
43
-
44
- ### Mapping Your Competition
45
-
46
- **Step 1:** Define the job (not the product category)
47
-
48
- **Step 2:** List everything customers currently hire:
49
- - Direct competitors (same category)
50
- - Indirect competitors (different category, same job)
51
- - Non-consumption (doing nothing)
52
- - DIY/workarounds (cobbling solutions together)
53
-
54
- **Step 3:** Understand why each gets hired:
55
- - What's the circumstance?
56
- - What dimension does it serve best? (Functional/Emotional/Social)
57
- - What trade-offs do customers accept?
58
-
59
- **Example: Project Management Software**
60
-
61
- Job: "Keep my team aligned and projects on track so nothing falls through cracks"
62
-
63
- | Alternative | Why Hired | Dimension Served |
64
- |-------------|-----------|------------------|
65
- | Asana/Monday | Full visibility, accountability | Functional |
66
- | Spreadsheets | Flexibility, no learning curve | Functional |
67
- | Email threads | Everyone has it, simple | Functional |
68
- | Slack channels | Real-time, casual | Social |
69
- | Regular meetings | Face-to-face accountability | Emotional/Social |
70
- | One person remembers everything | No tool adoption needed | Functional |
71
- | Nothing (hope for the best) | Zero effort | - |
72
-
73
- ---
74
-
75
- ## Jobs-Based Positioning
76
-
77
- ### The Positioning Formula
78
-
79
- ```
80
- For [customers in these circumstances]
81
- who [have this job to do]
82
- our [product/service]
83
- is the [frame of reference]
84
- that [does the job better because]
85
- unlike [alternative]
86
- we [key differentiator].
87
- ```
88
-
89
- ### Example Positioning Statements
90
-
91
- **Traditional (weak):**
92
- "Monday.com is a work operating system that helps teams manage projects and workflows."
93
-
94
- **Jobs-based (strong):**
95
- "For growing teams who feel like projects keep slipping through cracks, Monday.com is the work management platform that gives everyone visibility into what's happening without adding overhead, unlike spreadsheets that get outdated or meetings that waste time."
96
-
97
- **More examples:**
98
-
99
- Slack:
100
- "For remote teams who feel disconnected and out of the loop, Slack is the communication hub that makes you feel like you're in the same room, unlike email that buries important messages or video calls that require scheduling."
101
-
102
- Duolingo:
103
- "For busy people who want to learn a language but have always given up, Duolingo is the learning app that fits language practice into small daily moments, unlike courses that require big time commitments or tutors that require scheduling and money."
104
-
105
- ---
106
-
107
- ## Competing Against Non-Consumption
108
-
109
- ### Why Non-Consumption Matters
110
-
111
- The biggest competitor is often "doing nothing." People who:
112
- - Haven't realized they have the problem
113
- - Don't think solutions exist
114
- - Think solutions are too expensive/complicated
115
- - Tried before and gave up
116
-
117
- ### Non-Consumption Opportunities
118
-
119
- | Category | Non-Consumer | Why They Don't Consume | Opportunity |
120
- |----------|--------------|----------------------|-------------|
121
- | Financial planning | Young professionals | Think it's for wealthy people | Simplified, low-cost planning |
122
- | Higher education | Working adults | Can't attend campus | Online, flexible degrees |
123
- | Video editing | Small business owners | Too complicated | Simplified, template-based tools |
124
- | Home improvement | Renters, beginners | Feels overwhelming | Step-by-step guidance |
125
- | Mental health | Most adults | Stigma, cost, access | Anonymous, affordable apps |
126
-
127
- ### Winning Non-Consumers
128
-
129
- To convert non-consumers:
130
-
131
- 1. **Lower the barrier to entry**
132
- - Reduce price
133
- - Simplify the experience
134
- - Remove expertise requirements
135
-
136
- 2. **Reduce anxiety**
137
- - Eliminate commitment
138
- - Provide strong guarantees
139
- - Show "people like me" success stories
140
-
141
- 3. **Reframe the job**
142
- - Make it about a job they already care about
143
- - Connect to existing behaviors
144
- - Show quick wins possible
145
-
146
- **SNHU Example:**
147
- - Traditional barrier: Campus attendance required
148
- - SNHU reframe: "Get a degree without putting life on hold"
149
- - Job focus: Career advancement, not "being a student"
150
-
151
- ---
152
-
153
- ## Price Strategy Through JTBD
154
-
155
- ### Price Based on Job Value, Not Cost
156
-
157
- Traditional pricing: Cost + margin = price
158
- JTBD pricing: Job value to customer = pricing ceiling
159
-
160
- **Questions to determine job value:**
161
- - What does getting this job done save/earn the customer?
162
- - What are they currently paying to get it done (including time)?
163
- - How important is this job relative to other spending?
164
- - What's the cost of the job NOT getting done?
165
-
166
- ### Premium Pricing Justification
167
-
168
- Charge more when:
169
- - You serve job dimensions competitors ignore (especially emotional/social)
170
- - You reduce anxiety in high-stakes situations
171
- - You save significant time for time-strapped customers
172
- - You eliminate effort for effort-averse customers
173
-
174
- ### Price Relative to Alternatives
175
-
176
- | Alternative | Price | Job Performance |
177
- |-------------|-------|-----------------|
178
- | Your product | $100/mo | Excellent |
179
- | Direct competitor | $80/mo | Good |
180
- | DIY solution | $0 (but hours/week) | Adequate |
181
- | Doing nothing | $0 | Job not done |
182
-
183
- **Frame your price against the cost of alternatives, including their hidden costs (time, frustration, opportunity cost).**
184
-
185
- ---
186
-
187
- ## Differentiation Strategy
188
-
189
- ### Differentiate on the Underserved Dimension
190
-
191
- Most competitors fight on functional dimensions. Differentiate on:
192
-
193
- **Emotional dimension:**
194
- - How customers feel while using the product
195
- - Confidence, peace of mind, delight
196
- - Reduced anxiety, eliminated frustration
197
-
198
- **Social dimension:**
199
- - How customers appear to others
200
- - Status, belonging, identity
201
- - What others think of their choice
202
-
203
- ### Differentiation Examples
204
-
205
- | Product | Functional (table stakes) | Real Differentiation |
206
- |---------|---------------------------|---------------------|
207
- | Mailchimp | Sends emails | Makes small business owners feel like legitimate marketers |
208
- | Slack | Team messaging | Makes teams feel connected and in sync |
209
- | Notion | Documentation | Makes users feel organized and in control |
210
- | Tesla | Electric car | Makes owners feel innovative and responsible |
211
-
212
- ### The Differentiation Test
213
-
214
- Ask current customers:
215
- - "Why did you choose us over [alternative]?"
216
- - "What would you tell a friend about why they should use us?"
217
- - "What would you miss most if you couldn't use us anymore?"
218
-
219
- **If answers are only functional, you have a differentiation problem.**
220
-
221
- ---
222
-
223
- ## Competitive Response Framework
224
-
225
- ### When a Competitor Launches a Feature
226
-
227
- **Don't automatically copy.** Instead ask:
228
- 1. What job does this feature serve?
229
- 2. Is that job a priority for OUR customers?
230
- 3. Do we serve that job differently/better already?
231
- 4. Should we compete or differentiate?
232
-
233
- ### When Losing Deals to Competitors
234
-
235
- Interview lost customers:
236
- 1. "What job were you trying to get done?"
237
- 2. "What did [competitor] do better for that job?"
238
- 3. "Was there anything we did better that wasn't enough?"
239
- 4. "What almost made you choose us?"
240
-
241
- **Pattern recognition:** If you consistently lose on price, you're not communicating job value. If you consistently lose on features, you might be targeting the wrong customers.
242
-
243
- ### When Entering an Established Market
244
-
245
- Don't compete head-to-head. Instead:
246
- 1. Find underserved customer segments (different circumstances)
247
- 2. Find underserved job dimensions (emotional/social)
248
- 3. Find simpler jobs that incumbents over-serve
249
- 4. Find more demanding jobs that incumbents can't serve
250
-
251
- ---
252
-
253
- ## Strategic Decision Framework
254
-
255
- ### Should We Build This Feature?
256
-
257
- | Question | If Yes | If No |
258
- |----------|--------|-------|
259
- | Does it help customers do the job better? | Consider building | Don't build |
260
- | Do customers currently struggle with this part of the job? | Higher priority | Lower priority |
261
- | Will competitors match it easily? | Temporary advantage | Sustainable advantage |
262
- | Does it serve our target customer's priority jobs? | Aligned | Misaligned |
263
-
264
- ### Should We Enter This Market?
265
-
266
- | Question | If Yes | If No |
267
- |----------|--------|-------|
268
- | Is there an important job being poorly served? | Opportunity | Crowded market |
269
- | Can we serve it better than alternatives? | Competitive advantage | Why would customers switch? |
270
- | Are the customers we'd serve aligned with our strengths? | Good fit | Resource stretch |
271
- | Is the job stable or growing? | Sustainable | Declining opportunity |
272
-
273
- ### Should We Worry About This Competitor?
274
-
275
- | Question | If Yes | If No |
276
- |----------|--------|-------|
277
- | Are they serving the same job? | Direct threat | Different jobs |
278
- | Are they serving our customers' priority dimensions? | Serious threat | Parallel play |
279
- | Are they better on dimensions that matter? | Urgent response needed | Monitor |
280
- | Can they take our customers? | Defensive action needed | Offensive opportunity |
@@ -1,158 +0,0 @@
1
- # Product Diagnostics Through JTBD Lens
2
-
3
- ## Checklist: Do You Know Your Product's Job?
4
-
5
- ### Level 1: Basic Understanding
6
-
7
- - [ ] You can describe the job in one sentence without using the product name
8
- - [ ] You know the circumstances in which the job arises
9
- - [ ] You know what customer did BEFORE using your product
10
- - [ ] You understand the functional, emotional, AND social dimensions
11
-
12
- ### Level 2: Deep Understanding
13
-
14
- - [ ] You know what you really compete with (not just "direct competitors")
15
- - [ ] You understand push/pull and habit/anxiety forces for your customer
16
- - [ ] You can distinguish Big Hire from Little Hire
17
- - [ ] You know why customers "fire" your product
18
-
19
- ### Level 3: Organizational Implementation
20
-
21
- - [ ] Product decisions are filtered through the job lens
22
- - [ ] Metrics measure job completion, not just usage
23
- - [ ] Roadmap is oriented toward better job execution
24
- - [ ] Team can articulate the customer's job
25
-
26
- ## Red Flags - Signs You Don't Know the Job
27
-
28
- 1. **You describe product through features** - "it's a tool for X with Y feature"
29
- 2. **Competition is only "similar products"** - you don't see non-obvious competitors
30
- 3. **You segment by demographics** - "target is men 25-35"
31
- 4. **High acquisition, low retention** - you win Big Hire, lose Little Hire
32
- 5. **Customers use product "wrong"** - they create workarounds
33
-
34
- ## Diagnostic Framework
35
-
36
- ### Why Aren't Customers Buying?
37
-
38
- | Symptom | Probable Cause | Action |
39
- |---------|----------------|--------|
40
- | They don't know we exist | Job is poorly articulated in messaging | Rewrite messaging around the job |
41
- | They know but don't try | Anxiety about new > Pull | Reduce friction, offer guarantees |
42
- | They try but don't buy | Product doesn't do the job | Investigate gap between promise and reality |
43
- | They buy but don't use | Little Hire lost | Redesign the moment of use |
44
- | They use but churn | Job changed or better "employee" appeared | Investigate "firing" reasons |
45
-
46
- ### "Firing" Interview (Churn Interview)
47
-
48
- Questions for customers who left:
49
-
50
- 1. "What did you do before us? Why did you come to us?"
51
- 2. "What changed that made you start looking for alternatives?"
52
- 3. "What ultimately convinced you to leave?"
53
- 4. "What do you do now instead of us? Does it do the job better?"
54
- 5. "If we could change one thing, what would it be?"
55
-
56
- ### "Hiring" Interview (New Customer Interview)
57
-
58
- Questions for new customers (within 2 weeks):
59
-
60
- 1. "When did you first think about looking for a solution?"
61
- 2. "What was the trigger - what was happening then?"
62
- 3. "What alternatives did you look for? What disqualified them?"
63
- 4. "What ultimately convinced you to choose us?"
64
- 5. "What were you afraid of before buying?"
65
- 6. "Is the product doing what you expected?"
66
-
67
- ## JTBD Metrics
68
-
69
- ### Instead of Traditional Metrics:
70
-
71
- | Traditional Metric | Problem | JTBD Metric |
72
- |-------------------|---------|-------------|
73
- | DAU/MAU | Doesn't tell if job is being done | % of completed "jobs" |
74
- | Time in app | More ≠ better | Time to job completion |
75
- | Feature adoption | Features ≠ value | Does feature help with job? |
76
- | NPS | General satisfaction | Would you hire us again for this job? |
77
- | Churn rate | Retrospective | Leading indicators of "searching for alternatives" |
78
-
79
- ### Job Completion Rate
80
-
81
- Define what "job done" means and measure:
82
- - % of sessions where job was completed
83
- - Time to first success (Time to Value)
84
- - Repeatability of "hiring" (hire frequency)
85
-
86
- ---
87
-
88
- ## Post-Launch Iteration
89
-
90
- ### Continuous Job Discovery
91
-
92
- After launch, keep learning:
93
-
94
- **Usage data signals:**
95
- - Features used ≠ Features valued (may use out of necessity)
96
- - Time spent ≠ Job done (frustration can increase time)
97
- - Feature requests often describe solutions, not jobs
98
-
99
- **Ongoing research:**
100
- - Interview new customers within 2 weeks of purchase
101
- - Interview churned customers within 1 week of leaving
102
- - Observe actual usage (session recordings, support tickets)
103
- - Track "aha moments" that predict retention
104
-
105
- ### Iteration Framework
106
-
107
- | Signal | What It Means | Action |
108
- |--------|---------------|--------|
109
- | High acquisition, low retention | Win Big Hire, lose Little Hire | Investigate moment of use |
110
- | Feature used but low satisfaction | Functional works, emotional doesn't | Research emotional dimension |
111
- | Unexpected use patterns | Hidden jobs emerging | Interview these users |
112
- | Power users vs. casual users | Different jobs being done | May need segmentation |
113
-
114
- ---
115
-
116
- ## Churn Analysis Through JTBD Lens
117
-
118
- ### Why "Firing" Happens
119
-
120
- Customers fire products when:
121
- 1. **Job changed** - Circumstances evolved (company grew, life changed)
122
- 2. **Better "employee" appeared** - Competitor does job better
123
- 3. **Job wasn't being done** - Product never delivered on promise
124
- 4. **Friction accumulated** - Too hard to use, not worth the effort
125
- 5. **Priorities shifted** - Other jobs became more important
126
-
127
- ### Churn Interview Framework
128
-
129
- **Timing:** Within 1 week of cancellation (memory fresh)
130
-
131
- **Questions:**
132
-
133
- | Phase | Questions |
134
- |-------|-----------|
135
- | Original hiring | "When you first signed up, what were you hoping to accomplish?" |
136
- | Experience | "How well did we help you with that?" |
137
- | The turn | "When did you start thinking about leaving?" |
138
- | Alternatives | "What will you do instead? How did you find it?" |
139
- | The switch | "What ultimately convinced you to leave?" |
140
- | Retrospective | "If we could change one thing, what would make you stay?" |
141
-
142
- ### Churn Patterns to Watch
143
-
144
- | Pattern | Probable Cause | Investigation |
145
- |---------|----------------|---------------|
146
- | Early churn (<30 days) | Never got job done | Onboarding + activation issues |
147
- | Churn after initial success | Job completed, no ongoing need | Is this a one-time job? |
148
- | Churn after competitor mention | Better employee exists | Competitive analysis |
149
- | Churn with "too complicated" | Friction > value | UX and simplification |
150
- | Churn without replacement | Job deprioritized | Were we targeting right customers? |
151
-
152
- ### Acting on Churn Insights
153
-
154
- **If job changed:** Consider segments, expansion products, or accepting churn as natural
155
- **If competitor wins:** Investigate which dimension they're serving better
156
- **If job wasn't done:** Product or onboarding needs improvement
157
- **If friction accumulated:** UX improvements, training, simplification
158
- **If priorities shifted:** May be targeting wrong customer profile