codymaster 4.4.5 → 4.5.2

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 (197) 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 +5 -1
  16. package/scripts/gate-0-secrets.js +63 -0
  17. package/scripts/gate-1-syntax.js +53 -0
  18. package/scripts/gate-5-dist-verify.js +55 -0
  19. package/scripts/gate-6-smoke-test.js +30 -0
  20. package/scripts/index-codebase.sh +552 -0
  21. package/scripts/mcp-bridge.js +284 -0
  22. package/scripts/postinstall.js +301 -0
  23. package/scripts/security-fixer.js +143 -0
  24. package/scripts/security-scan.js +55 -0
  25. package/scripts/test-gemini.js +13 -0
  26. package/scripts/todo-bridge.js +112 -0
  27. package/skills/_shared/helpers.md +50 -14
  28. package/skills/cm-autopilot/SKILL.md +29 -0
  29. package/skills/cm-autopilot/scripts/autopilot.py +190 -0
  30. package/skills/cm-continuity/SKILL.md +90 -28
  31. package/skills/cm-skill-chain/SKILL.md +47 -1
  32. package/skills/cm-start/SKILL.md +11 -2
  33. package/skills/boxme-git-config/SKILL.md +0 -56
  34. package/skills/boxme-local-dev/SKILL.md +0 -66
  35. package/skills/jobs-to-be-done/SKILL.md +0 -266
  36. package/skills/jobs-to-be-done/references/case-studies.md +0 -154
  37. package/skills/jobs-to-be-done/references/competitive-strategy.md +0 -280
  38. package/skills/jobs-to-be-done/references/diagnostics.md +0 -158
  39. package/skills/jobs-to-be-done/references/innovation-process.md +0 -392
  40. package/skills/jobs-to-be-done/references/organizational-change.md +0 -328
  41. package/skills/marketplace-report-crawler/SKILL.md +0 -176
  42. package/skills/marketplace-report-crawler/config/accounts.json +0 -41
  43. package/skills/marketplace-report-crawler/config/report-types.json +0 -422
  44. package/skills/marketplace-report-crawler/config/sessions.json +0 -3
  45. package/skills/marketplace-report-crawler/scripts/ab-wrapper.sh +0 -102
  46. package/skills/marketplace-report-crawler/scripts/browser-actions/lazada/lazada-actions.js +0 -114
  47. package/skills/marketplace-report-crawler/scripts/browser-actions/shopee/shopee-actions.js +0 -94
  48. package/skills/marketplace-report-crawler/scripts/browser-actions/tiktok/tiktok-actions.js +0 -272
  49. package/skills/marketplace-report-crawler/scripts/crawl-runner.js +0 -281
  50. package/skills/marketplace-report-crawler/scripts/session-check.sh +0 -72
  51. package/skills/marketplace-report-crawler/scripts/session-manager.sh +0 -349
  52. package/skills/marketplace-report-crawler/scripts/setup-folders.sh +0 -83
  53. package/skills/medical-research/SKILL.md +0 -194
  54. package/skills/medical-research/scripts/evidence_checker.py +0 -288
  55. package/skills/mom-test/SKILL.md +0 -267
  56. package/skills/mom-test/references/avoiding-bad-data.md +0 -221
  57. package/skills/mom-test/references/case-studies.md +0 -306
  58. package/skills/mom-test/references/commitment-advancement.md +0 -219
  59. package/skills/mom-test/references/finding-conversations.md +0 -251
  60. package/skills/mom-test/references/processing-learning.md +0 -256
  61. package/skills/mom-test/references/question-patterns.md +0 -198
  62. package/skills/pandasai-analytics/SKILL.md +0 -251
  63. package/skills/release-it/SKILL.md +0 -235
  64. package/skills/release-it/references/anti-patterns.md +0 -279
  65. package/skills/release-it/references/capacity-planning.md +0 -285
  66. package/skills/release-it/references/chaos-engineering.md +0 -325
  67. package/skills/release-it/references/deployment-strategies.md +0 -331
  68. package/skills/release-it/references/observability.md +0 -301
  69. package/skills/release-it/references/stability-patterns.md +0 -355
  70. package/skills/skill-creator-ultra/.agents/workflows/skill-audit.md +0 -37
  71. package/skills/skill-creator-ultra/.agents/workflows/skill-compare.md +0 -34
  72. package/skills/skill-creator-ultra/.agents/workflows/skill-export.md +0 -51
  73. package/skills/skill-creator-ultra/.agents/workflows/skill-generate.md +0 -39
  74. package/skills/skill-creator-ultra/.agents/workflows/skill-scaffold.md +0 -52
  75. package/skills/skill-creator-ultra/.agents/workflows/skill-simulate.md +0 -25
  76. package/skills/skill-creator-ultra/.agents/workflows/skill-stats.md +0 -31
  77. package/skills/skill-creator-ultra/.agents/workflows/skill-validate.md +0 -25
  78. package/skills/skill-creator-ultra/README.md +0 -1242
  79. package/skills/skill-creator-ultra/SKILL.md +0 -388
  80. package/skills/skill-creator-ultra/agents/analyzer.md +0 -274
  81. package/skills/skill-creator-ultra/agents/comparator.md +0 -202
  82. package/skills/skill-creator-ultra/agents/grader.md +0 -223
  83. package/skills/skill-creator-ultra/assets/eval_review.html +0 -146
  84. package/skills/skill-creator-ultra/eval-viewer/generate_review.py +0 -471
  85. package/skills/skill-creator-ultra/eval-viewer/viewer.html +0 -1325
  86. package/skills/skill-creator-ultra/examples/example_anthropic_frontend.md +0 -109
  87. package/skills/skill-creator-ultra/examples/example_anthropic_pdf.md +0 -116
  88. package/skills/skill-creator-ultra/examples/example_api_docs.md +0 -189
  89. package/skills/skill-creator-ultra/examples/example_db_migration.md +0 -253
  90. package/skills/skill-creator-ultra/examples/example_git_commit.md +0 -111
  91. package/skills/skill-creator-ultra/install.ps1 +0 -289
  92. package/skills/skill-creator-ultra/install.sh +0 -313
  93. package/skills/skill-creator-ultra/phases/phase1_interview.md +0 -202
  94. package/skills/skill-creator-ultra/phases/phase2_extract.md +0 -55
  95. package/skills/skill-creator-ultra/phases/phase3_detect.md +0 -57
  96. package/skills/skill-creator-ultra/phases/phase4_generate.md +0 -543
  97. package/skills/skill-creator-ultra/phases/phase5_test.md +0 -319
  98. package/skills/skill-creator-ultra/phases/phase6_eval.md +0 -301
  99. package/skills/skill-creator-ultra/phases/phase7_iterate.md +0 -103
  100. package/skills/skill-creator-ultra/phases/phase8_optimize.md +0 -113
  101. package/skills/skill-creator-ultra/resources/advanced_patterns.md +0 -499
  102. package/skills/skill-creator-ultra/resources/anti_patterns.md +0 -376
  103. package/skills/skill-creator-ultra/resources/blueprints.md +0 -498
  104. package/skills/skill-creator-ultra/resources/checklist.md +0 -243
  105. package/skills/skill-creator-ultra/resources/composition_cookbook.md +0 -291
  106. package/skills/skill-creator-ultra/resources/description_optimization.md +0 -90
  107. package/skills/skill-creator-ultra/resources/eval_guide.md +0 -133
  108. package/skills/skill-creator-ultra/resources/industry_questions.md +0 -189
  109. package/skills/skill-creator-ultra/resources/interview_questions.md +0 -200
  110. package/skills/skill-creator-ultra/resources/pattern_detection.md +0 -200
  111. package/skills/skill-creator-ultra/resources/prompt_engineering.md +0 -531
  112. package/skills/skill-creator-ultra/resources/schemas.md +0 -430
  113. package/skills/skill-creator-ultra/resources/script_integration.md +0 -593
  114. package/skills/skill-creator-ultra/resources/scripts_guide.md +0 -339
  115. package/skills/skill-creator-ultra/resources/skill_template.md +0 -124
  116. package/skills/skill-creator-ultra/resources/skill_writing_guide.md +0 -634
  117. package/skills/skill-creator-ultra/resources/versioning_guide.md +0 -193
  118. package/skills/skill-creator-ultra/scripts/ci_eval.py +0 -200
  119. package/skills/skill-creator-ultra/scripts/package_skill.py +0 -165
  120. package/skills/skill-creator-ultra/scripts/simulate_skill.py +0 -398
  121. package/skills/skill-creator-ultra/scripts/skill_audit.py +0 -611
  122. package/skills/skill-creator-ultra/scripts/skill_compare.py +0 -265
  123. package/skills/skill-creator-ultra/scripts/skill_export.py +0 -334
  124. package/skills/skill-creator-ultra/scripts/skill_scaffold.py +0 -403
  125. package/skills/skill-creator-ultra/scripts/skill_stats.py +0 -339
  126. package/skills/skill-creator-ultra/scripts/validate_skill.py +0 -411
  127. package/skills/tailwind-mastery/SKILL.md +0 -229
  128. package/skills/vercel-react-best-practices/AGENTS.md +0 -3373
  129. package/skills/vercel-react-best-practices/README.md +0 -123
  130. package/skills/vercel-react-best-practices/SKILL.md +0 -143
  131. package/skills/vercel-react-best-practices/rules/_sections.md +0 -46
  132. package/skills/vercel-react-best-practices/rules/_template.md +0 -28
  133. package/skills/vercel-react-best-practices/rules/advanced-event-handler-refs.md +0 -55
  134. package/skills/vercel-react-best-practices/rules/advanced-init-once.md +0 -42
  135. package/skills/vercel-react-best-practices/rules/advanced-use-latest.md +0 -39
  136. package/skills/vercel-react-best-practices/rules/async-api-routes.md +0 -38
  137. package/skills/vercel-react-best-practices/rules/async-defer-await.md +0 -80
  138. package/skills/vercel-react-best-practices/rules/async-dependencies.md +0 -51
  139. package/skills/vercel-react-best-practices/rules/async-parallel.md +0 -28
  140. package/skills/vercel-react-best-practices/rules/async-suspense-boundaries.md +0 -99
  141. package/skills/vercel-react-best-practices/rules/bundle-barrel-imports.md +0 -59
  142. package/skills/vercel-react-best-practices/rules/bundle-conditional.md +0 -31
  143. package/skills/vercel-react-best-practices/rules/bundle-defer-third-party.md +0 -49
  144. package/skills/vercel-react-best-practices/rules/bundle-dynamic-imports.md +0 -35
  145. package/skills/vercel-react-best-practices/rules/bundle-preload.md +0 -50
  146. package/skills/vercel-react-best-practices/rules/client-event-listeners.md +0 -74
  147. package/skills/vercel-react-best-practices/rules/client-localstorage-schema.md +0 -71
  148. package/skills/vercel-react-best-practices/rules/client-passive-event-listeners.md +0 -48
  149. package/skills/vercel-react-best-practices/rules/client-swr-dedup.md +0 -56
  150. package/skills/vercel-react-best-practices/rules/js-batch-dom-css.md +0 -107
  151. package/skills/vercel-react-best-practices/rules/js-cache-function-results.md +0 -80
  152. package/skills/vercel-react-best-practices/rules/js-cache-property-access.md +0 -28
  153. package/skills/vercel-react-best-practices/rules/js-cache-storage.md +0 -70
  154. package/skills/vercel-react-best-practices/rules/js-combine-iterations.md +0 -32
  155. package/skills/vercel-react-best-practices/rules/js-early-exit.md +0 -50
  156. package/skills/vercel-react-best-practices/rules/js-flatmap-filter.md +0 -60
  157. package/skills/vercel-react-best-practices/rules/js-hoist-regexp.md +0 -45
  158. package/skills/vercel-react-best-practices/rules/js-index-maps.md +0 -37
  159. package/skills/vercel-react-best-practices/rules/js-length-check-first.md +0 -49
  160. package/skills/vercel-react-best-practices/rules/js-min-max-loop.md +0 -82
  161. package/skills/vercel-react-best-practices/rules/js-set-map-lookups.md +0 -24
  162. package/skills/vercel-react-best-practices/rules/js-tosorted-immutable.md +0 -57
  163. package/skills/vercel-react-best-practices/rules/rendering-activity.md +0 -26
  164. package/skills/vercel-react-best-practices/rules/rendering-animate-svg-wrapper.md +0 -47
  165. package/skills/vercel-react-best-practices/rules/rendering-conditional-render.md +0 -40
  166. package/skills/vercel-react-best-practices/rules/rendering-content-visibility.md +0 -38
  167. package/skills/vercel-react-best-practices/rules/rendering-hoist-jsx.md +0 -46
  168. package/skills/vercel-react-best-practices/rules/rendering-hydration-no-flicker.md +0 -82
  169. package/skills/vercel-react-best-practices/rules/rendering-hydration-suppress-warning.md +0 -30
  170. package/skills/vercel-react-best-practices/rules/rendering-resource-hints.md +0 -85
  171. package/skills/vercel-react-best-practices/rules/rendering-script-defer-async.md +0 -68
  172. package/skills/vercel-react-best-practices/rules/rendering-svg-precision.md +0 -28
  173. package/skills/vercel-react-best-practices/rules/rendering-usetransition-loading.md +0 -75
  174. package/skills/vercel-react-best-practices/rules/rerender-defer-reads.md +0 -39
  175. package/skills/vercel-react-best-practices/rules/rerender-dependencies.md +0 -45
  176. package/skills/vercel-react-best-practices/rules/rerender-derived-state-no-effect.md +0 -40
  177. package/skills/vercel-react-best-practices/rules/rerender-derived-state.md +0 -29
  178. package/skills/vercel-react-best-practices/rules/rerender-functional-setstate.md +0 -74
  179. package/skills/vercel-react-best-practices/rules/rerender-lazy-state-init.md +0 -58
  180. package/skills/vercel-react-best-practices/rules/rerender-memo-with-default-value.md +0 -38
  181. package/skills/vercel-react-best-practices/rules/rerender-memo.md +0 -44
  182. package/skills/vercel-react-best-practices/rules/rerender-move-effect-to-event.md +0 -45
  183. package/skills/vercel-react-best-practices/rules/rerender-no-inline-components.md +0 -82
  184. package/skills/vercel-react-best-practices/rules/rerender-simple-expression-in-memo.md +0 -35
  185. package/skills/vercel-react-best-practices/rules/rerender-split-combined-hooks.md +0 -64
  186. package/skills/vercel-react-best-practices/rules/rerender-transitions.md +0 -40
  187. package/skills/vercel-react-best-practices/rules/rerender-use-deferred-value.md +0 -59
  188. package/skills/vercel-react-best-practices/rules/rerender-use-ref-transient-values.md +0 -73
  189. package/skills/vercel-react-best-practices/rules/server-after-nonblocking.md +0 -73
  190. package/skills/vercel-react-best-practices/rules/server-auth-actions.md +0 -96
  191. package/skills/vercel-react-best-practices/rules/server-cache-lru.md +0 -41
  192. package/skills/vercel-react-best-practices/rules/server-cache-react.md +0 -76
  193. package/skills/vercel-react-best-practices/rules/server-dedup-props.md +0 -65
  194. package/skills/vercel-react-best-practices/rules/server-hoist-static-io.md +0 -142
  195. package/skills/vercel-react-best-practices/rules/server-parallel-fetching.md +0 -83
  196. package/skills/vercel-react-best-practices/rules/server-serialization.md +0 -38
  197. package/skills/web-design-guidelines/SKILL.md +0 -39
@@ -29,8 +29,25 @@ cm continuity init
29
29
  # Check current state
30
30
  cm continuity status
31
31
 
32
- # View captured learnings
32
+ # View captured learnings / decisions
33
33
  cm continuity learnings
34
+ cm continuity decisions
35
+
36
+ # ── Smart Spine v5 commands ──────────────────────────────
37
+ # Regenerate L0 compact indexes (learnings-index.md, skeleton-index.md)
38
+ cm continuity index
39
+
40
+ # Show token budget allocation + usage per category
41
+ cm continuity budget
42
+
43
+ # Pretty-print current context bus state (active skill chain)
44
+ cm continuity bus
45
+
46
+ # Print Claude Desktop MCP config snippet for cm-context server
47
+ cm continuity mcp
48
+
49
+ # Migrate learnings.json + decisions.json → SQLite (one-time)
50
+ cm continuity migrate
34
51
  ```
35
52
 
36
53
  ## The Protocol
@@ -130,45 +147,84 @@ Project: [project name]
130
147
  - [file path]: [what we're changing]
131
148
  ```
132
149
 
133
- ## 4-Tier Memory System (Brain-Inspired)
150
+ ## Memory Architecture (v5 — Smart Spine)
134
151
 
135
152
  ```
136
153
  Tier 1: SENSORY MEMORY (seconds — within current tool call)
137
154
  → Internal variables, intermediate results
138
155
  → NEVER written to file — discarded when action completes
139
- → Example: "File X has 200 lines" — no need to remember next session
140
156
 
141
157
  Tier 2: WORKING MEMORY (current session → 7 days)
142
- → CONTINUITY.md — the active scratchpad
158
+ → CONTINUITY.md — the active scratchpad (max 500 words / ~400 tokens)
143
159
  → Auto-rotates: entries > 7 days promote to Tier 3 or decay
144
- Max 500 words (~400 tokens)
145
-
146
- Tier 3: LONG-TERM MEMORY (30+ days, only if reinforced)
147
- .cm/learnings.json error patterns with TTL + scope
148
- → .cm/decisions.json — architecture decisions with supersedence
149
- → Entries MUST be reinforced (same pattern ≥ 2x) to survive
150
- → Decay: auto-archive if not relevant after TTL expires
160
+ Context bus (.cm/context-bus.json) — live skill chain state
161
+ · initBus() on chain start, updateBusStep() on each advance
162
+ · cm://pipeline/current resolves to bus JSON
163
+ · Read via: cm continuity bus | cm_bus_read MCP tool
151
164
 
152
- Tier 4: EXTERNAL SEMANTIC MEMORY (optional for large projects)
165
+ Tier 3: LONG-TERM MEMORY (30+ days, only if reinforced)
166
+ → Primary: .cm/context.db (SQLite + FTS5) ← v5 default
167
+ · learnings table + learnings_fts (BM25 keyword search)
168
+ · decisions table + decisions_fts
169
+ · skill_outputs per session/chain
170
+ · indexes table (cached L0/L1 content + staleness hash)
171
+ → Fallback: .cm/memory/learnings.json + decisions.json (kept for compat)
172
+ → L0 indexes: .cm/learnings-index.md (~100 tok), .cm/skeleton-index.md (~500 tok)
173
+ · Auto-regenerated on addLearning() + on demand via cm continuity index
174
+ · File watcher auto-refreshes learnings L0 on JSON change (300ms debounce)
175
+ → Token budget: .cm/token-budget.json — 200k window, per-category soft limits
176
+ · Enforced at load time: checkBudget() → allowed/remaining/suggestion
177
+ · View: cm continuity budget
178
+
179
+ Tier 4: EXTERNAL SEMANTIC MEMORY (optional — large projects)
153
180
  → tobi/qmd — BM25 + Vector + LLM re-ranking, 100% local
154
- Indexes entire docs/, src/, meeting notes folders
155
- → AI queries via MCP: qmd query "keyword" → relevant snippets
156
- → See cm-deep-search skill for setup & detection thresholds
157
- → ONLY suggested when project >50 docs or >200 source files
181
+ See cm-deep-search skill — ONLY when >50 docs or >200 source files
158
182
 
159
- Tier 5: STRUCTURAL CODE MEMORY (optional — for code-heavy projects)
183
+ Tier 5: STRUCTURAL CODE MEMORY (optional — code-heavy projects)
160
184
  → CodeGraph — tree-sitter AST → SQLite graph → MCP server
161
- Indexes symbols, call graphs, imports, class hierarchies
162
- → AI queries: codegraph_context, codegraph_impact, codegraph_callers
163
- → See cm-codeintell skill for setup & integration
164
- → ONLY suggested when project >50 source files
185
+ See cm-codeintell skill ONLY when >50 source files
165
186
  ```
166
187
 
167
- **CONTINUITY.md = "what am I doing NOW?"**
168
- **learnings.json = "what mistakes should I avoid?"**
169
- **decisions.json = "what architecture rules apply?"**
188
+ **CONTINUITY.md = "what am I doing NOW?"**
189
+ **context bus = "what did upstream skills produce in this chain?"**
190
+ **L0 indexes = "cheapest possible memory load (~600 tokens)"**
191
+ **context.db = "keyword search across all learnings + decisions"**
170
192
  **qmd (optional) = "find what was written across hundreds of docs"**
171
193
 
194
+ ### MCP Context Server (Claude Desktop integration)
195
+
196
+ Seven tools exposed over stdio to Claude Desktop and MCP-compatible clients:
197
+
198
+ | Tool | Purpose |
199
+ |---|---|
200
+ | `cm_query` | FTS5 keyword search — learnings, decisions, or both |
201
+ | `cm_resolve` | Load any `cm://` URI at L0/L1/L2 depth |
202
+ | `cm_bus_read` | Read live context bus state |
203
+ | `cm_bus_write` | Publish skill output to the bus |
204
+ | `cm_budget_check` | Pre-flight token check by category |
205
+ | `cm_memory_decay` | Archive expired learnings (supports dry_run) |
206
+ | `cm_index_refresh` | Regenerate L0 indexes on demand |
207
+
208
+ ```bash
209
+ # Get install snippet for Claude Desktop config
210
+ cm continuity mcp
211
+ ```
212
+
213
+ ### cm:// URI Scheme
214
+
215
+ Reference any memory resource by URI — resolver handles depth + caching:
216
+
217
+ ```
218
+ cm://memory/working → CONTINUITY.md
219
+ cm://memory/learnings → learnings-index.md (L0) or SQLite (L1/L2)
220
+ cm://memory/learnings/{id} → specific learning by ID
221
+ cm://memory/decisions → decisions index
222
+ cm://skills/{name} → SKILL.md at depth
223
+ cm://skills/{name}/L0 → front matter + description only (~50 tokens)
224
+ cm://resources/skeleton → skeleton-index.md (L0) or full
225
+ cm://pipeline/current → live context bus state
226
+ ```
227
+
172
228
  ---
173
229
 
174
230
  ## Memory Audit Protocol (Auto — Every Session Start)
@@ -383,22 +439,28 @@ WHY: Smaller scope = less noise = AI only reads what's relevant.
383
439
 
384
440
  ```
385
441
  ✅ DO:
386
- - Read CONTINUITY.md at session start (ALWAYS)
442
+ - Check context bus FIRST at session start (free, ~50 tokens)
443
+ - Load L0 indexes BEFORE full files (learnings-index + skeleton-index)
444
+ - Use cm_query for keyword search — don't scan JSON manually
445
+ - Read CONTINUITY.md after L0 indexes (not before)
387
446
  - Run Memory Audit at session start (decay + conflicts + scope filter)
388
447
  - Update CONTINUITY.md at session end (ALWAYS)
389
448
  - Tag EVERY learning/decision with scope (global/module/file)
390
449
  - Reinforce existing learnings instead of creating duplicates
391
450
  - Keep CONTINUITY.md under 500 words (rotate to Tier 3)
392
451
  - Be specific: "Fixed auth bug in login.ts:42" not "Fixed stuff"
452
+ - Run cm continuity index after bulk learning additions
393
453
 
394
454
  ❌ DON'T:
455
+ - Load full learnings.json or skeleton.md as first action (use L0 first)
456
+ - Skip context bus check when inside a skill chain
395
457
  - Skip Memory Audit ("I'll read everything, it's fine")
396
458
  - Write learnings without scope ("it applies everywhere" = almost never true)
397
459
  - Create duplicate learnings (reinforce existing ones instead)
398
- - Let learnings.json grow unbounded (TTL + decay handles this)
399
- - Read ALL learnings regardless of current module (use scope filter)
460
+ - Let learnings.json grow unbounded (TTL + decay + cm_memory_decay handles this)
461
+ - Read ALL learnings regardless of current module (use scope filter / cm_query)
400
462
  - Ignore superseded decisions (they cause conflicting code)
401
- - Keep stale context that no longer applies to current architecture
463
+ - Inject skeleton.md (20KB) when skeleton-index.md (~2KB) is sufficient
402
464
  ```
403
465
 
404
466
  ## The Bottom Line
@@ -65,6 +65,47 @@ Full skill names: `cm-brainstorm-idea`, `cm-planning`, `cm-tdd`, `cm-execution`,
65
65
  - **cm-continuity**: Chain progress persists across sessions via CONTINUITY.md working memory
66
66
  - **cm-execution**: Each chain step delegates to cm-execution for actual implementation
67
67
  - **cm-quality-gate**: Automatically runs at end of each development chain
68
+ - **Context Bus (v5)**: Every chain automatically maintains `.cm/context-bus.json` — shared state across all steps
69
+
70
+ ## Context Bus — Inter-Skill Coordination (v5)
71
+
72
+ When `chain start` runs, the context bus is initialized automatically:
73
+
74
+ ```
75
+ chain start feature-development "add payment flow"
76
+ → Creates .cm/context-bus.json with:
77
+ pipeline: "feature-development"
78
+ session_id: "<uuid>"
79
+ current_step: "brainstorm-idea"
80
+ shared_context: {}
81
+ resource_state: { skeleton_generated: null, learnings_indexed: null, ... }
82
+ ```
83
+
84
+ When `chain advance` runs after each skill completes:
85
+
86
+ ```
87
+ chain advance <exec-id> "summary of what was done"
88
+ → Updates context-bus.json:
89
+ current_step: "planning" ← moved forward
90
+ shared_context.brainstorm-idea: { summary, affected_files, output_path }
91
+ ```
92
+
93
+ **What downstream skills gain:**
94
+ - `cm-planning` can read brainstorm output path → no re-read of full filesystem
95
+ - `cm-tdd` can see which files planning created → targeted test generation
96
+ - `cm-quality-gate` knows exactly which files changed → focused review
97
+
98
+ **Reading the bus:**
99
+ ```bash
100
+ cm continuity bus # terminal pretty-print
101
+ cm_bus_read # MCP tool (Claude Desktop)
102
+ cm://pipeline/current # URI resolver (in skill prompts)
103
+ ```
104
+
105
+ **Publishing to the bus (inside a skill):**
106
+ ```bash
107
+ cm_bus_write skill=cm-planning summary="tasks.md created" output_path=openspec/...
108
+ ```
68
109
 
69
110
  ## For AI Agents
70
111
 
@@ -74,5 +115,10 @@ When dispatching tasks that match a chain pattern:
74
115
  1. Check if task matches a chain: suggestChain(taskTitle)
75
116
  2. If match found, suggest to user: "This task matches the X chain pipeline"
76
117
  3. If user agrees, start the chain and invoke skills in order
77
- 4. After completing each skill, advance the chain
118
+ 4. At the START of each skill step:
119
+ → Read cm://pipeline/current to see upstream skill outputs
120
+ → Check shared_context to avoid re-doing work
121
+ 5. After completing each skill, advance the chain:
122
+ → chain advance <id> "summary"
123
+ → This updates context bus + CONTINUITY.md simultaneously
78
124
  ```
@@ -10,8 +10,15 @@ description: Start the CM Workflow to execute your objective from idea to produc
10
10
  When this workflow is called, the AI Assistant should execute the following action sequence in the spirit of the **CodyMaster Kit**:
11
11
 
12
12
  0. **Load Working Memory:**
13
- Per `_shared/helpers.md#Load-Working-Memory`
14
- - Update `CONTINUITY.md` → set Active Goal to the new objective
13
+ Per `_shared/helpers.md#Load-Working-Memory` — **use Smart Spine order:**
14
+ 1. Check `.cm/context-bus.json` → any active pipeline? any prior skill output to reuse?
15
+ 2. Load L0 indexes: `learnings-index.md` (~100 tok) + `skeleton-index.md` (~500 tok)
16
+ 3. Scope-filter learnings via `cm_query` — only load what matches current objective
17
+ 4. Read `CONTINUITY.md` → set Active Goal to the new objective
18
+ 5. Run token budget check: `cm continuity budget` → confirm no category is over soft limit
19
+
20
+ > ⚡ Total context load: ~700 tokens. Full load used to be ~3,200.
21
+ > Only escalate to L2 (full files) if L0 index explicitly flags a match.
15
22
 
16
23
  0.5. **Skill Coverage Check (Adaptive Discovery):**
17
24
  - Scan the objective for technologies, frameworks, or patterns mentioned
@@ -73,5 +80,7 @@ When this workflow is called, the AI Assistant should execute the following acti
73
80
  4. **Complete:**
74
81
  Per `_shared/helpers.md#Update-Continuity`
75
82
  - Record any new learnings or decisions made during this workflow
83
+ - If inside a skill chain: `cm continuity bus` → verify context bus reflects completed step
84
+ - Refresh L0 indexes: `cm continuity index` (auto-runs on `addLearning`, manual refresh here)
76
85
 
77
86
  > **Note for AI:** If this is a brand new project, suggest running `cm-project-bootstrap` first. If the working environment has a risk of accidentally switching accounts/projects, remind about `cm-identity-guard` (Per `_shared/helpers.md#Identity-Check`).
@@ -1,56 +0,0 @@
1
- ---
2
- description: Verify and fix git configuration to ensure all pushes go to omisocial GitHub account
3
- ---
4
-
5
- # Git Account Verification
6
-
7
- Use this skill when: "check git", "verify git", "git account", "fix remote", "push fails", or before any deploy/push operation.
8
-
9
- ## Expected Configuration
10
-
11
- | Setting | Expected Value |
12
- |---------|---------------|
13
- | `gh auth status` | `omisocial` |
14
- | `git remote origin` | `https://github.com/omisocial/boxme_levelling.git` |
15
- | `git config user.name` | `omisocial` |
16
- | `git config user.email` | `omisocial@users.noreply.github.com` |
17
-
18
- ## Quick Check
19
-
20
- Run this one-liner to verify everything:
21
-
22
- ```bash
23
- echo "=== GitHub CLI ===" && gh auth status 2>&1 | head -3 && echo "=== Git Remote ===" && git remote get-url origin && echo "=== Git User ===" && git config user.name && git config user.email
24
- ```
25
-
26
- ## Fix if Wrong
27
-
28
- ### GitHub CLI (gh) logged into wrong account
29
- ```bash
30
- gh auth logout
31
- gh auth login
32
- # Select: Login with web browser → omisocial
33
- ```
34
-
35
- ### Git remote pointing to wrong repo
36
- ```bash
37
- git remote set-url origin https://github.com/omisocial/boxme_levelling.git
38
- ```
39
-
40
- ### Git user config wrong
41
- ```bash
42
- git config user.name "omisocial"
43
- git config user.email "omisocial@users.noreply.github.com"
44
- ```
45
-
46
- ## Project Root
47
- ```
48
- /Users/todyle/Library/Mobile Documents/com~apple~CloudDocs/Code/Boxme_Projects/boxme_levelling-main
49
- ```
50
-
51
- ## Account History
52
-
53
- | Account | Purpose | Status |
54
- |---------|---------|--------|
55
- | `omisocial` | Current active GitHub account | ✅ Active |
56
- | `boxmevibe` | Previous GitHub account | ⚠️ Archived as `old-boxmevibe` remote |
@@ -1,66 +0,0 @@
1
- ---
2
- description: Start all Boxme Scoring System local development modules (PRMS, Seller SOS, Docs Site)
3
- ---
4
-
5
- # Boxme Local Dev — Start All Modules
6
-
7
- Use this skill when the user says any of: "start local", "run local", "dev local", "start dev", or asks to run the Boxme project locally.
8
-
9
- ## Project Root
10
-
11
- ```
12
- /Users/todyle/Library/Mobile Documents/com~apple~CloudDocs/Code/Boxme_Projects/boxme_levelling-main
13
- ```
14
-
15
- ## Modules
16
-
17
- | Module | Directory | Command | URL |
18
- |--------|-----------|---------|-----|
19
- | **PRMS** (Performance Review) | project root | `npm run dev` | http://localhost:5173 |
20
- | **Seller SOS** | `seller-sos/` | `npm run dev` | http://localhost:5174 |
21
- | **Docs Site** (Docusaurus) | `docs-site/` | `npm start` | http://localhost:3000 |
22
-
23
- ## Instructions
24
-
25
- ### Step 1 – Start PRMS
26
-
27
- Open terminal and run:
28
-
29
- ```bash
30
- cd "/Users/todyle/Library/Mobile Documents/com~apple~CloudDocs/Code/Boxme_Projects/boxme_levelling-main"
31
- npm run dev
32
- ```
33
-
34
- ### Step 2 – Start Seller SOS
35
-
36
- Open a **new terminal** and run:
37
-
38
- ```bash
39
- cd "/Users/todyle/Library/Mobile Documents/com~apple~CloudDocs/Code/Boxme_Projects/boxme_levelling-main/seller-sos"
40
- npm run dev
41
- ```
42
-
43
- ### Step 3 – Start Docs Site
44
-
45
- Open another **new terminal** and run:
46
-
47
- ```bash
48
- cd "/Users/todyle/Library/Mobile Documents/com~apple~CloudDocs/Code/Boxme_Projects/boxme_levelling-main/docs-site"
49
- npm start
50
- ```
51
-
52
- ## Notes
53
-
54
- - PRMS uses **Vite + Hono** (Cloudflare Workers backend), served via `@hono/vite-dev-server`
55
- - Seller SOS also uses **Vite + Hono**, port 5174
56
- - Docs Site is **Docusaurus 3.x**, starts on port 3000
57
- - All modules use their own `node_modules` — run `npm install` in each directory if fresh clone
58
- - If a port is busy, kill it: `lsof -ti:5173 | xargs kill -9`
59
-
60
- ## Ports Quick Reference
61
-
62
- ```
63
- http://localhost:5173 → PRMS
64
- http://localhost:5174 → Seller SOS
65
- http://localhost:3000 → Docs Site
66
- ```
@@ -1,266 +0,0 @@
1
- ---
2
- name: jobs-to-be-done
3
- description: 'Discover what customers truly need by analyzing the "job" they hire your product to do. Use when the user mentions "customer discovery", "why customers churn", "what job does this solve", "competing against luck", or "product-market fit". Covers JTBD interviews, competition analysis, and jobs-oriented roadmaps. For product positioning, see obviously-awesome. For rapid validation, see design-sprint.'
4
- license: MIT
5
- metadata:
6
- author: wondelai
7
- version: "1.1.1"
8
- ---
9
-
10
- # Jobs to Be Done Framework
11
-
12
- Framework for discovering innovation based on a fundamental truth: customers don't buy products - they "hire" them to do a specific job in their lives.
13
-
14
- ## Core Principle
15
-
16
- **Job to Be Done** = the progress a customer wants to make in specific circumstances.
17
-
18
- Key elements of the definition:
19
- - **Progress** (not goal, not solution) - customer wants to move from current state to a better one
20
- - **Circumstances** - context determines the job, not customer attributes (demographics are useless)
21
- - **Hiring/Firing** - customer actively chooses a product for the "job"
22
-
23
- ## Scoring
24
-
25
- **Goal: 10/10.** When reviewing or creating product strategy or positioning, rate it 0-10 based on adherence to the principles below. A 10/10 means full alignment with all guidelines; lower scores indicate gaps to address. Always provide the current score and specific improvements needed to reach 10/10.
26
-
27
- ## Three Dimensions of Every Job
28
-
29
- Every job has three inseparable dimensions - omitting any means failure:
30
-
31
- | Dimension | Question | Example (milkshake) |
32
- |-----------|----------|---------------------|
33
- | **Functional** | What does the customer need to do? | Occupy myself during boring commute |
34
- | **Emotional** | How do they want to feel? | Have a small treat for myself |
35
- | **Social** | How do they want to be perceived? | As a sensible parent (not buying donuts) |
36
-
37
- ## Framework
38
-
39
- ### 1. The Job Statement
40
-
41
- **Core concept:** A job statement captures the progress a customer seeks in a specific circumstance, expressed in a structured format that separates context, desired progress, and expected outcome.
42
-
43
- **Why it works:** By forcing teams to articulate the job in the customer's language and circumstances, it prevents solution-first thinking and keeps innovation grounded in real human progress.
44
-
45
- **Key insights:**
46
- - The format is: "When [circumstances], I want to [progress], so I can [outcome]"
47
- - Circumstances matter more than customer demographics - the same person has different jobs in different situations
48
- - A well-written job statement never mentions your product or any specific solution
49
- - Jobs are stable over time; solutions change but the underlying job persists
50
-
51
- **Product applications:**
52
-
53
- | Context | Application | Example |
54
- |---------|-------------|---------|
55
- | New product ideation | Define the job before brainstorming features | "When I'm commuting alone, I want something to occupy me and satisfy hunger, so I'm not hungry until lunch" |
56
- | Feature prioritization | Evaluate whether a feature serves the core job | Prioritize features that help accomplish the stated job over nice-to-have additions |
57
- | Positioning & messaging | Use the job statement language in marketing copy | Lead with the circumstance and desired progress, not product specs |
58
-
59
- **Copy patterns:**
60
- - "When you're [circumstance], you need [progress] -- that's exactly what [product] does"
61
- - Lead with the situation the customer recognizes, not the product category
62
- - Mirror the emotional and social dimensions alongside the functional one
63
-
64
- **Ethical boundary:** Never fabricate or exaggerate circumstances to manufacture urgency. The job must reflect genuine customer progress, not artificially created anxiety.
65
-
66
- See: [references/innovation-process.md](references/innovation-process.md)
67
-
68
- ### 2. Forces of Progress (Push, Pull, Anxiety, Habit)
69
-
70
- **Core concept:** The decision to "hire" a new product results from the interplay of four forces: Push (frustration with current situation), Pull (attraction of new solution), Anxiety (fear of the new), and Habit (comfort with current behavior). Change only happens when Push + Pull > Habit + Anxiety.
71
-
72
- **Why it works:** Most innovation efforts focus only on making the product better (increasing Pull), but ignore the equally powerful anti-change forces. Understanding all four forces reveals why great products still fail to gain adoption.
73
-
74
- **Key insights:**
75
- - Push is frustration with the current situation ("this annoys me")
76
- - Pull is the attraction of a new solution ("I want this")
77
- - Habit is attachment to current behavior ("I've always done it this way")
78
- - Anxiety is fear of the new ("what if it doesn't work?")
79
- - Often it's more effective to reduce anxiety and habit than to increase push and pull
80
- - Passive seekers (vaguely aware of a problem) are easier to influence than active seekers who already have criteria
81
-
82
- **Product applications:**
83
-
84
- | Context | Application | Example |
85
- |---------|-------------|---------|
86
- | Onboarding design | Reduce anxiety with free trials, guarantees, and social proof | Money-back guarantee addresses "what if it doesn't work?" anxiety |
87
- | Switching campaigns | Address habit directly by making migration effortless | One-click data import from competitor reduces habit friction |
88
- | Content marketing | Awaken push in passive seekers by naming their frustration | Blog post: "5 signs your current tool is costing you hours every week" |
89
-
90
- **Copy patterns:**
91
- - Address anxiety directly: "No lock-in, cancel anytime, your data is always yours"
92
- - Name the push: "Tired of [frustration]? There's a better way"
93
- - Reduce habit friction: "Switch in 5 minutes -- we import everything automatically"
94
-
95
- **Ethical boundary:** Never manufacture artificial push by exaggerating pain or creating fear. Reducing real anxiety is ethical; creating new anxiety to drive sales is manipulation.
96
-
97
- See: [references/competitive-strategy.md](references/competitive-strategy.md)
98
-
99
- ### 3. The Big Hire & Little Hire
100
-
101
- **Core concept:** There are two distinct decision moments: the Big Hire (purchase/signup decision, happens once) and the Little Hire (decision to use in the moment, happens repeatedly). Winning the Big Hire does not guarantee the Little Hire.
102
-
103
- **Why it works:** Many products win the sale but lose the customer because they optimize only for the purchase decision and neglect the repeated usage decision. Understanding both moments reveals where retention problems truly originate.
104
-
105
- **Key insights:**
106
- - Big Hire is driven by marketing, onboarding, and first impressions
107
- - Little Hire is driven by product quality, UX, and ongoing value delivery
108
- - Many products lose at the Little Hire stage -- purchased but never used
109
- - The forces of progress operate differently at each stage: Big Hire anxiety is about the purchase risk; Little Hire anxiety is about effort and learning curves
110
- - Retention problems are almost always Little Hire failures, not Big Hire failures
111
-
112
- **Product applications:**
113
-
114
- | Context | Application | Example |
115
- |---------|-------------|---------|
116
- | Retention analysis | Distinguish Big Hire metrics from Little Hire metrics | Track "first use after signup" and "weekly active usage" separately from signup conversion |
117
- | Product design | Optimize the repeated usage experience, not just first impression | Reduce friction in daily workflows even if onboarding is already smooth |
118
- | Customer success | Monitor Little Hire signals to predict churn | Declining usage frequency is a Little Hire failure signaling upcoming churn |
119
-
120
- **Copy patterns:**
121
- - Big Hire copy focuses on the promise: "Transform how you [job]"
122
- - Little Hire copy focuses on ease: "One click and you're done"
123
- - Re-engagement copy addresses Little Hire failure: "We've made [specific friction] easier"
124
-
125
- **Ethical boundary:** Never design dark patterns that win the Big Hire (e.g., hidden fees, misleading trials) while failing the Little Hire. Both decisions must deliver genuine progress.
126
-
127
- See: [references/case-studies.md](references/case-studies.md)
128
-
129
- ### 4. Competitive Landscape (Non-Obvious Competition)
130
-
131
- **Core concept:** True competition is everything a customer can "hire" for the same job, often from completely different product categories. Competitors are defined by the job, not by industry classification.
132
-
133
- **Why it works:** Analyzing competition through product categories creates blind spots. A milkshake competes with bananas, bagels, boredom, and podcasts. Netflix competes with TikTok, sleep, family conversation, and games. By mapping the full competitive landscape around the job, teams spot threats and opportunities invisible to traditional analysis.
134
-
135
- **Key insights:**
136
- - Non-consumption (doing nothing) is often the biggest competitor
137
- - Workarounds and compensating behaviors reveal unserved jobs: people hack, combine, and improvise solutions
138
- - Online courses compete with books, YouTube, mentoring, and doing nothing
139
- - Integration is needed when performance is "not good enough" for the job; modularization when it's "good enough"
140
- - The best competitive positioning answers "what job are we the best hire for?" not "how do we compare to similar products?"
141
-
142
- **Product applications:**
143
-
144
- | Context | Application | Example |
145
- |---------|-------------|---------|
146
- | Competitive analysis | Map all hires for the same job across categories | A project management tool competes with spreadsheets, sticky notes, email threads, and memory |
147
- | Positioning strategy | Position against the real alternative, not the obvious one | Position against "doing it manually" rather than against a named competitor |
148
- | Pricing strategy | Price relative to the job's value, not competitor pricing | If the job saves 10 hours per week, price against the value of that time, not against similar SaaS products |
149
-
150
- **Copy patterns:**
151
- - "Stop using [workaround] for [job] -- there's a purpose-built solution"
152
- - "You wouldn't hire a [bad fit] to [job] -- so why are you using [current hack]?"
153
- - Position around the job outcome, not feature comparison charts
154
-
155
- **Ethical boundary:** Never misrepresent competitors or create false equivalences. Honest competitive framing based on the job is powerful; distorting alternatives is deceptive.
156
-
157
- See: [references/competitive-strategy.md](references/competitive-strategy.md)
158
-
159
- ### 5. Customer Discovery Interviews
160
-
161
- **Core concept:** Don't ask customers directly "what do you need" -- they don't know. Instead, investigate the purchase timeline by reconstructing the moments of first thought, search, purchase, and usage to uncover the real job.
162
-
163
- **Why it works:** Customers rationalize decisions after the fact and can't articulate latent needs. By walking backward through the concrete events of their decision journey, you uncover the true circumstances, forces, and tradeoffs that drove their behavior.
164
-
165
- **Key insights:**
166
- - First thought questions: "When did you first think about looking for a solution?", "What was happening in your life then?", "What was frustrating you?"
167
- - Search questions: "What alternatives did you look for?", "What eliminated options?", "Who did you talk to about this decision?"
168
- - Purchase moment questions: "Where were you?", "What ultimately convinced you?", "What were you afraid of?"
169
- - Usage questions: "Is the product doing what you expected?", "What surprised you?", "What's still missing?"
170
- - Signals of undiscovered jobs: workarounds, non-consumption, compensating behaviors, negative emotions with current solutions
171
-
172
- **Product applications:**
173
-
174
- | Context | Application | Example |
175
- |---------|-------------|---------|
176
- | New market entry | Interview people who recently switched to or from a competitor | Reconstruct the timeline to find what pushed them away and pulled them toward the new solution |
177
- | Churn reduction | Interview churned customers about their decision timeline | Discover whether the failure was Big Hire (wrong expectations) or Little Hire (poor daily experience) |
178
- | Feature discovery | Interview customers using workarounds | A customer using spreadsheets alongside your product reveals an unmet job dimension |
179
-
180
- **Copy patterns:**
181
- - Use exact customer language from interviews in marketing copy
182
- - "We heard you say [verbatim quote] -- so we built [feature]"
183
- - Frame benefits using the circumstances and emotions customers actually described
184
-
185
- **Ethical boundary:** Never lead interview subjects toward predetermined conclusions. The goal is genuine discovery, not confirmation of existing assumptions.
186
-
187
- See: [references/innovation-process.md](references/innovation-process.md)
188
-
189
- ### 6. Designing for the Job
190
-
191
- **Core concept:** Build the entire product experience -- features, metrics, and organization -- around helping the customer accomplish their job, not around internal capabilities or competitive feature parity.
192
-
193
- **Why it works:** When every product decision answers "will this help the customer better accomplish their job?", teams avoid feature bloat, build coherent experiences, and create products that customers genuinely value. If you can't answer the question, you don't understand the job yet.
194
-
195
- **Key insights:**
196
- - Replace customer satisfaction metrics with "did the job get done?" metrics
197
- - Replace NPS with "reasons for hiring and firing"
198
- - Replace feature usage metrics with "progress on the job"
199
- - When the job is poorly understood, integrate (control entire experience); when well understood, modularize (specialize components)
200
- - Integrate where performance is "not good enough" for the job; modularize where it's "good enough"
201
- - Every product decision should answer: "Will this help the customer better accomplish their job?"
202
-
203
- **Product applications:**
204
-
205
- | Context | Application | Example |
206
- |---------|-------------|---------|
207
- | Metrics design | Define success metrics around job completion | Track "time from problem to resolution" instead of "features used per session" |
208
- | Product roadmap | Prioritize based on job dimensions (functional, emotional, social) | A functional improvement that ignores the emotional dimension may not move the needle |
209
- | Organizational alignment | Structure teams around jobs, not product components | A "morning commute job" team owns everything from content to packaging to distribution |
210
-
211
- **Copy patterns:**
212
- - "Built for [the job], not for [the category]"
213
- - Emphasize outcome and progress, not features and specifications
214
- - "Everything you need to [job] -- nothing you don't"
215
-
216
- **Ethical boundary:** Never design addictive patterns that serve engagement metrics rather than genuine customer progress. The job framework demands that the customer's progress is the true north, not your retention numbers.
217
-
218
- See: [references/organizational-change.md](references/organizational-change.md)
219
-
220
- ## Common Mistakes
221
-
222
- | Mistake | Why It Fails | Fix |
223
- |---------|-------------|-----|
224
- | Defining jobs too narrowly around your product | You miss the real competitive landscape and build features no one needs | Define the job from the customer's perspective, never mentioning your product |
225
- | Ignoring the emotional and social dimensions | Functional-only jobs miss why customers actually choose (and stay with) products | Always complete all three dimensions: functional, emotional, and social |
226
- | Confusing jobs with goals or tasks | Goals are too abstract ("be healthy") and tasks are too specific ("click button") to drive strategy | Jobs describe progress in specific circumstances -- more concrete than goals, more strategic than tasks |
227
- | Only increasing Pull while ignoring Anxiety and Habit | A great product still fails if switching costs and fear are too high | Map all four forces and design interventions for each, especially reducing anti-change forces |
228
- | Winning the Big Hire but ignoring the Little Hire | High acquisition with high churn -- purchased but never used | Track and optimize the repeated usage decision separately from the purchase decision |
229
- | Asking customers "what do you want?" | Customers rationalize and can't articulate latent needs; you get incremental feature requests | Use timeline-based discovery interviews that reconstruct actual behavior and decisions |
230
- | Defining competition by product category | You miss the real threats and opportunities from adjacent categories and non-consumption | Map every alternative the customer could "hire" for the same job, including doing nothing |
231
-
232
- ## Quick Diagnostic
233
-
234
- | Question | If No | Action |
235
- |----------|-------|--------|
236
- | Can you state the job in one sentence without mentioning your product? | You're product-focused, not job-focused | Write a job statement: "When [circumstances], I want to [progress], so I can [outcome]" |
237
- | Have you mapped all four forces (Push, Pull, Anxiety, Habit)? | You're likely over-investing in Pull and ignoring barriers | Map each force and design specific interventions for Anxiety and Habit |
238
- | Do you know the emotional and social dimensions of the job? | Your product may win functionally but lose on experience | Conduct discovery interviews focused on feelings and social context around the decision |
239
- | Have you identified non-obvious competitors from other categories? | You have blind spots in your competitive landscape | List everything a customer could "hire" for the same job, including non-consumption |
240
- | Are you tracking Little Hire separately from Big Hire? | You can't distinguish acquisition problems from retention problems | Create separate metrics for purchase conversion and repeated usage engagement |
241
- | Can your team explain how a feature helps accomplish the job? | You're building features without strategic grounding | Require every feature proposal to reference the specific job dimension it serves |
242
- | Have you interviewed customers about their purchase timeline? | Your understanding of the job is based on assumptions, not evidence | Conduct 10+ discovery interviews reconstructing the first-thought-to-usage journey |
243
-
244
- See: [references/diagnostics.md](references/diagnostics.md) for the full diagnostic checklist.
245
-
246
- ## Examples and Case Studies
247
-
248
- See: [references/case-studies.md](references/case-studies.md) for detailed analyses (SNHU, American Girl, Intuit).
249
-
250
- ## Reference Files
251
-
252
- - [innovation-process.md](references/innovation-process.md): Job hunting methodology, job atlas, prototype testing, job statements
253
- - [competitive-strategy.md](references/competitive-strategy.md): Non-obvious competition, jobs-based positioning, pricing strategy
254
- - [organizational-change.md](references/organizational-change.md): Overcoming objections, feature-factory trap, executive buy-in, change management
255
- - [diagnostics.md](references/diagnostics.md): Diagnostic checklist for evaluating products through the jobs lens
256
- - [case-studies.md](references/case-studies.md): Detailed analyses of SNHU, American Girl, Intuit, and more
257
-
258
- ## About the Author
259
-
260
- Clayton M. Christensen (1952-2020) was the Kim B. Clark Professor of Business Administration at Harvard Business School and one of the most influential management thinkers of the modern era. He is best known for introducing the theory of disruptive innovation in his landmark book *The Innovator's Dilemma* (1997), which fundamentally changed how business leaders think about competition and market evolution. Christensen developed the Jobs to Be Done framework as a practical methodology for understanding customer motivation and driving successful innovation, detailed in *Competing Against Luck* (2016). He co-founded the innovation consulting firm Innosight and the Clayton Christensen Institute for Disruptive Innovation. Christensen was ranked the #1 management thinker in the world by Thinkers50 and received the award multiple times. His body of work, spanning nine books including *The Innovator's Solution* and *How Will You Measure Your Life?*, continues to shape product strategy, corporate innovation, and entrepreneurial thinking worldwide.
261
-
262
- ## Further Reading
263
-
264
- This skill is based on the Jobs to Be Done framework developed by Clayton M. Christensen. For the complete methodology, case studies, and deeper insights, read the original book:
265
-
266
- - [*"Competing Against Luck: The Story of Innovation and Customer Choice"*](https://www.amazon.com/Competing-Against-Luck-Innovation-Customer/dp/0062435612?tag=wondelai00-20) by Clayton M. Christensen, Taddy Hall, Karen Dillon, and David S. Duncan