@polderlabs/bizar 10.7.0 → 10.7.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 (148) hide show
  1. package/.claude/agents/_shared/AGENT_BASELINE.md +266 -0
  2. package/.claude/agents/_shared/CLAUDE_TOOLS.md +412 -0
  3. package/.claude/agents/_shared/SKILLS.md +109 -0
  4. package/.claude/agents/brand-designer.md +55 -0
  5. package/.claude/agents/exec-assistant.md +34 -0
  6. package/.claude/agents/help-desk.md +44 -0
  7. package/.claude/agents/it-lead.md +53 -0
  8. package/.claude/agents/knowledge-manager.md +49 -0
  9. package/.claude/agents/office-coordinator.md +39 -0
  10. package/.claude/agents/office-greeter.md +53 -0
  11. package/.claude/agents/office-manager.md +287 -0
  12. package/.claude/agents/principal-engineer.md +58 -0
  13. package/.claude/agents/qa-reviewer.md +51 -0
  14. package/.claude/agents/research-analyst.md +53 -0
  15. package/.claude/agents/senior-engineer.md +55 -0
  16. package/.claude/agents/support-tech.md +87 -0
  17. package/.claude/agents/vp-engineering.md +54 -0
  18. package/.claude/commands/audit.md +48 -0
  19. package/.claude/commands/bizar.md +22 -0
  20. package/.claude/commands/cron.md +36 -0
  21. package/.claude/commands/explain.md +17 -0
  22. package/.claude/commands/goal.md +99 -0
  23. package/.claude/commands/init.md +15 -0
  24. package/.claude/commands/learn.md +46 -0
  25. package/.claude/commands/plan.md +35 -0
  26. package/.claude/commands/plow-through.md +50 -0
  27. package/.claude/commands/pr-review.md +49 -0
  28. package/.claude/commands/setup-provider.md +96 -0
  29. package/.claude/commands/spec.md +47 -0
  30. package/.claude/commands/sprint.md +43 -0
  31. package/.claude/commands/tailscale-serve.md +100 -0
  32. package/.claude/commands/team.md +132 -0
  33. package/.claude/commands/test.md +62 -0
  34. package/.claude/commands/validate.md +68 -0
  35. package/.claude/commands/visual-plan.md +24 -0
  36. package/.claude/hooks/README.md +108 -0
  37. package/.claude/hooks/__tests__/pretooluse-editwrite.test.mjs +146 -0
  38. package/.claude/hooks/__tests__/sessionend-recall.test.mjs +256 -0
  39. package/.claude/hooks/__tests__/sessionstart-prime.test.mjs +325 -0
  40. package/.claude/hooks/__tests__/thinking-route.test.mjs +319 -0
  41. package/.claude/hooks/auto-instinct.sh +81 -0
  42. package/.claude/hooks/learning-extract.mjs +92 -0
  43. package/.claude/hooks/post-merge-audit.sh +93 -0
  44. package/.claude/hooks/posttooluse-editwrite.mjs +91 -0
  45. package/.claude/hooks/pretooluse-bash.mjs +87 -0
  46. package/.claude/hooks/pretooluse-editwrite.mjs +117 -0
  47. package/.claude/hooks/sessionend-recall.mjs +384 -0
  48. package/.claude/hooks/sessionstart-prime.mjs +278 -0
  49. package/.claude/hooks/thinking-route.mjs +314 -0
  50. package/.claude/hooks/worker-suggest.mjs +110 -0
  51. package/.claude/settings.json +167 -0
  52. package/.claude/skills/9router/SKILL.md +80 -0
  53. package/.claude/skills/9router-chat/SKILL.md +73 -0
  54. package/.claude/skills/9router-embeddings/SKILL.md +69 -0
  55. package/.claude/skills/9router-image/SKILL.md +86 -0
  56. package/.claude/skills/9router-stt/SKILL.md +79 -0
  57. package/.claude/skills/9router-tts/SKILL.md +80 -0
  58. package/.claude/skills/9router-web-fetch/SKILL.md +99 -0
  59. package/.claude/skills/9router-web-search/SKILL.md +91 -0
  60. package/.claude/skills/agent-browser/SKILL.md +64 -0
  61. package/.claude/skills/bizar/README.md +9 -0
  62. package/.claude/skills/bizar/SKILL.md +447 -0
  63. package/.claude/skills/cpp-coding-standards/README.md +28 -0
  64. package/.claude/skills/cpp-coding-standards/SKILL.md +634 -0
  65. package/.claude/skills/cpp-coding-standards/references/concurrency.md +320 -0
  66. package/.claude/skills/cpp-coding-standards/references/error-handling.md +229 -0
  67. package/.claude/skills/cpp-coding-standards/references/memory-safety.md +216 -0
  68. package/.claude/skills/cpp-coding-standards/references/modern-idioms.md +282 -0
  69. package/.claude/skills/cpp-coding-standards/references/review-checklist.md +96 -0
  70. package/.claude/skills/cpp-testing/README.md +28 -0
  71. package/.claude/skills/cpp-testing/SKILL.md +304 -0
  72. package/.claude/skills/cpp-testing/references/coverage.md +370 -0
  73. package/.claude/skills/cpp-testing/references/framework-compare.md +175 -0
  74. package/.claude/skills/cpp-testing/references/host-test-for-embedded.md +499 -0
  75. package/.claude/skills/cpp-testing/references/mocking.md +364 -0
  76. package/.claude/skills/cpp-testing/references/tdd-workflow.md +308 -0
  77. package/.claude/skills/cubesandbox/SKILL.md +148 -0
  78. package/.claude/skills/de-sloppify/SKILL.md +38 -0
  79. package/.claude/skills/de-sloppify/cleanup.mjs +253 -0
  80. package/.claude/skills/de-sloppify/cleanup.test.mjs +189 -0
  81. package/.claude/skills/embedded-esp-idf/README.md +41 -0
  82. package/.claude/skills/embedded-esp-idf/SKILL.md +439 -0
  83. package/.claude/skills/embedded-esp-idf/references/freertos-patterns.md +214 -0
  84. package/.claude/skills/embedded-esp-idf/references/host-tests.md +164 -0
  85. package/.claude/skills/embedded-esp-idf/references/idf-py-commands.md +157 -0
  86. package/.claude/skills/embedded-esp-idf/references/kconfig.md +159 -0
  87. package/.claude/skills/embedded-esp-idf/references/logging-discipline.md +118 -0
  88. package/.claude/skills/embedded-esp-idf/references/memory-and-iram.md +137 -0
  89. package/.claude/skills/embedded-esp-idf/references/nvs.md +121 -0
  90. package/.claude/skills/embedded-esp-idf/references/packed-structs.md +192 -0
  91. package/.claude/skills/embedded-esp-idf/scripts/idf_env.sh +47 -0
  92. package/.claude/skills/embedded-esp-idf/scripts/size_check.sh +77 -0
  93. package/.claude/skills/glyph/SKILL.md +163 -0
  94. package/.claude/skills/harness-engineering/SKILL.md +142 -0
  95. package/.claude/skills/lightrag/SKILL.md +81 -0
  96. package/.claude/skills/memory-protocol/SKILL.md +105 -0
  97. package/.claude/skills/obsidian/SKILL.md +306 -0
  98. package/.claude/skills/read-the-damn-docs/SKILL.md +113 -0
  99. package/.claude/skills/self-improvement/SKILL.md +64 -0
  100. package/.claude/skills/skillopt/SKILL.md +129 -0
  101. package/.claude/skills/thinking-archetypes/SKILL.md +90 -0
  102. package/.claude/skills/thinking-bayesian/SKILL.md +267 -0
  103. package/.claude/skills/thinking-bounded-rationality/SKILL.md +406 -0
  104. package/.claude/skills/thinking-circle-of-competence/SKILL.md +216 -0
  105. package/.claude/skills/thinking-cynefin/SKILL.md +70 -0
  106. package/.claude/skills/thinking-debiasing/SKILL.md +192 -0
  107. package/.claude/skills/thinking-dual-process/SKILL.md +282 -0
  108. package/.claude/skills/thinking-effectuation/SKILL.md +366 -0
  109. package/.claude/skills/thinking-feedback-loops/SKILL.md +464 -0
  110. package/.claude/skills/thinking-fermi-estimation/SKILL.md +263 -0
  111. package/.claude/skills/thinking-first-principles/SKILL.md +167 -0
  112. package/.claude/skills/thinking-five-whys-plus/SKILL.md +139 -0
  113. package/.claude/skills/thinking-inversion/SKILL.md +195 -0
  114. package/.claude/skills/thinking-jobs-to-be-done/SKILL.md +363 -0
  115. package/.claude/skills/thinking-kepner-tregoe/SKILL.md +154 -0
  116. package/.claude/skills/thinking-leverage-points/SKILL.md +390 -0
  117. package/.claude/skills/thinking-lindy-effect/SKILL.md +331 -0
  118. package/.claude/skills/thinking-map-territory/SKILL.md +111 -0
  119. package/.claude/skills/thinking-margin-of-safety/SKILL.md +330 -0
  120. package/.claude/skills/thinking-model-combination/SKILL.md +406 -0
  121. package/.claude/skills/thinking-model-router/SKILL.md +360 -0
  122. package/.claude/skills/thinking-model-selection/SKILL.md +341 -0
  123. package/.claude/skills/thinking-occams-razor/SKILL.md +129 -0
  124. package/.claude/skills/thinking-ooda/SKILL.md +127 -0
  125. package/.claude/skills/thinking-opportunity-cost/SKILL.md +360 -0
  126. package/.claude/skills/thinking-pre-mortem/SKILL.md +170 -0
  127. package/.claude/skills/thinking-probabilistic/SKILL.md +324 -0
  128. package/.claude/skills/thinking-red-team/SKILL.md +142 -0
  129. package/.claude/skills/thinking-regret-minimization/SKILL.md +335 -0
  130. package/.claude/skills/thinking-reversibility/SKILL.md +326 -0
  131. package/.claude/skills/thinking-scientific-method/SKILL.md +162 -0
  132. package/.claude/skills/thinking-second-order/SKILL.md +184 -0
  133. package/.claude/skills/thinking-socratic/SKILL.md +198 -0
  134. package/.claude/skills/thinking-steel-manning/SKILL.md +332 -0
  135. package/.claude/skills/thinking-systems/SKILL.md +238 -0
  136. package/.claude/skills/thinking-theory-of-constraints/SKILL.md +338 -0
  137. package/.claude/skills/thinking-thought-experiment/SKILL.md +354 -0
  138. package/.claude/skills/thinking-triz/SKILL.md +171 -0
  139. package/.claude/skills/thinking-via-negativa/SKILL.md +358 -0
  140. package/bizar-dash/skills/publishing/SKILL.md +2 -1
  141. package/cli/install/postinstall.mjs +54 -28
  142. package/cli/install/postinstall.test.mjs +98 -0
  143. package/cli/provision.mjs +29 -0
  144. package/install.sh +7 -0
  145. package/package.json +7 -2
  146. package/scripts/git-hooks/__tests__/commit-msg.test.mjs +61 -0
  147. package/scripts/git-hooks/commit-msg +38 -0
  148. package/scripts/install-hooks.sh +9 -0
@@ -0,0 +1,195 @@
1
+ ---
2
+ name: thinking-inversion
3
+ description: When planning work where optimism may be hiding risks, ask "how would I guarantee this fails?" — enumerate failure paths, then turn the top ones into explicit requirements to avoid.
4
+ ---
5
+
6
+ # Inversion Thinking
7
+
8
+ > **Redirect:** For most risk-anticipation work, prefer `thinking-pre-mortem` — it produces a narrative prospective-hindsight pass that surfaces richer, more specific failure causes than a generic checklist. Use inversion only as a pam failure-mode enumeration on a scoped feature/design; for full plans, launches, or strategic decisions, pre-mortem is the stronger tool.
9
+
10
+ ## Trigger Card
11
+
12
+ When planning a scoped feature or design where optimism may be hiding risks:
13
+
14
+ 1. **State the goal clearly.**
15
+ 2. **Ask: "How would I guarantee this fails?"** — list 10+ concrete failure paths.
16
+ 3. **Convert the top 3-5 into explicit avoidance requirements.** (e.g., "No plaintext passwords" → "Use bcrypt with work factor ≥ 12")
17
+ 4. **Verify the plan addresses each.**
18
+
19
+ Skip if the task is small/reversible or if failure modes are already well-covered by existing checks. For full plans or launches, use `thinking-pre-mortem` instead.
20
+
21
+ ## Overview
22
+ Inversion thinking, championed by Charlie Munger and rooted in mathematician Carl Jacobi's principle "Invert, always invert," approaches problems by considering their opposite. Instead of asking "How do I succeed?", ask "How would I guarantee failure?" then avoid those paths.
23
+
24
+ **Core Principle:** "All I want to know is where I'm going to die, so I'll never go there." — Charlie Munger
25
+
26
+ ## When to Use
27
+ - Planning a new project, feature, or initiative
28
+ - Evaluating a decision before committing
29
+ - Identifying risks that optimistic thinking obscures
30
+ - Stuck on how to achieve a positive outcome
31
+ - Need to challenge assumptions in a plan
32
+ - Writing requirements or acceptance criteria
33
+
34
+ Decision flow:
35
+ ```
36
+ Have a goal? → yes → Can you list ways to achieve it? → maybe → INVERT FIRST
37
+ ↘ no → Definitely invert
38
+ ↘ no → Define goal, then invert
39
+ ```
40
+
41
+ ## When NOT to Use
42
+
43
+ - **You're planning a full launch, project, or strategic decision.** Use `thinking-pre-mortem` instead — it produces a narrative prospective-hindsight pass that surfaces richer, more specific failure causes than a checklist enumeration. Inversion is the lighter, faster tool; pre-mortem is the deeper one.
44
+ - The task is small/reversible and failure is cheap — just do it and fix forward.
45
+ - You'd only produce generic boilerplate failure modes ("no tests", "poor naming") that don't apply here; skip if nothing specific surfaces.
46
+ - The failure modes are already well-covered by existing checks (CI, lint, type system); don't re-enumerate what's enforced.
47
+
48
+ ## The Process
49
+
50
+ ### Step 1: Define the Goal Clearly
51
+ State what success looks like:
52
+ ```
53
+ Goal: "Ship a reliable authentication system by Q2"
54
+ Goal: "Build a high-performing engineering team"
55
+ Goal: "Launch product with strong user retention"
56
+ ```
57
+
58
+ ### Step 2: Invert — Ask "How Would I Fail?"
59
+ List all ways to guarantee failure, ruin, or the opposite of your goal:
60
+
61
+ ```
62
+ Goal: Ship reliable auth system
63
+ Inversions (How to guarantee failure):
64
+ - Skip security review and pen testing
65
+ - No rate limiting or brute force protection
66
+ - Store passwords in plaintext
67
+ - No monitoring or alerting
68
+ - Skip edge cases in testing
69
+ - No documentation for on-call
70
+ - Single point of failure, no redundancy
71
+ - Ignore compliance requirements
72
+ - No rollback plan
73
+ - Deploy on Friday before vacation
74
+ ```
75
+
76
+ ### Step 3: Categorize the Failure Modes
77
+ Group by type and severity:
78
+
79
+ | Category | Failure Mode | Severity |
80
+ |----------|--------------|----------|
81
+ | Security | Plaintext passwords | Critical |
82
+ | Security | No rate limiting | High |
83
+ | Operations | No monitoring | High |
84
+ | Operations | No rollback plan | High |
85
+ | Process | Skip security review | Critical |
86
+ | Process | No documentation | Medium |
87
+ | Reliability | Single point of failure | High |
88
+
89
+ ### Step 4: Convert to Avoidance Checklist
90
+ Transform each failure mode into a requirement:
91
+
92
+ ```
93
+ Anti-goal: Store passwords in plaintext
94
+ → Requirement: Use bcrypt/argon2 with appropriate work factor
95
+
96
+ Anti-goal: No rate limiting
97
+ → Requirement: Implement rate limiting with exponential backoff
98
+
99
+ Anti-goal: Deploy Friday before vacation
100
+ → Requirement: No deploys within 48h of team unavailability
101
+ ```
102
+
103
+ ### Step 5: Prioritize by Impact
104
+ Focus on avoiding the failures that would be:
105
+ - Most damaging if they occurred
106
+ - Most likely to occur without explicit prevention
107
+ - Hardest to recover from
108
+
109
+ ## Application Patterns
110
+
111
+ ### For Technical Design
112
+ ```
113
+ Goal: Build scalable API
114
+ Invert: How to make it fail under load?
115
+ - No caching → Add caching layer
116
+ - Synchronous everything → Add async where appropriate
117
+ - No connection pooling → Implement pooling
118
+ - N+1 queries → Eager loading, query optimization
119
+ - No circuit breakers → Add circuit breakers
120
+ ```
121
+
122
+ ### For Code Review
123
+ ```
124
+ Goal: Merge high-quality code
125
+ Invert: What would make this PR problematic?
126
+ - Introduces security vulnerability
127
+ - Breaks existing functionality
128
+ - No tests for new behavior
129
+ - Unclear intent/poor naming
130
+ - Performance regression
131
+ - Missing error handling
132
+ ```
133
+
134
+ ### For Career/Team Building
135
+ ```
136
+ Goal: Build successful engineering career
137
+ Invert (Munger's list of what to avoid):
138
+ - Be unreliable
139
+ - Learn only from your own mistakes (ignore others')
140
+ - Give up after first failure
141
+ - Be resentful and envious
142
+ - Stay within comfort zone
143
+ - Avoid difficult conversations
144
+ - Don't learn continuously
145
+ ```
146
+
147
+ ### For Project Planning
148
+ ```
149
+ Goal: Successful product launch
150
+ Invert: How to guarantee launch failure?
151
+ - No user research → Validate with users
152
+ - No load testing → Load test before launch
153
+ - No rollback capability → Build rollback
154
+ - No success metrics defined → Define metrics upfront
155
+ - Team burnout → Sustainable pace
156
+ - No communication plan → Prepare stakeholder comms
157
+ ```
158
+
159
+ ## Combining with Pre-Mortem
160
+ Inversion + Pre-Mortem creates powerful risk identification:
161
+
162
+ 1. **Inversion**: List ways the project could fail (theoretical)
163
+ 2. **Pre-Mortem**: Imagine it DID fail, explain why (narrative)
164
+ 3. **Synthesize**: Combine both lists, prioritize, mitigate
165
+
166
+ ## Common Inversions for Software
167
+
168
+ | Domain | Goal | Key Inversions to Avoid |
169
+ |--------|------|------------------------|
170
+ | Security | Secure system | Trusting user input, weak auth, exposed secrets |
171
+ | Performance | Fast system | No caching, blocking calls, no indexes |
172
+ | Reliability | Stable system | No monitoring, no redundancy, no graceful degradation |
173
+ | Maintainability | Clean code | No tests, cryptic names, tight coupling |
174
+ | Team | High performance | Poor communication, no psychological safety, unclear goals |
175
+
176
+ ## Verification Checklist
177
+ - [ ] Goal clearly defined
178
+ - [ ] Listed 10+ ways to fail/achieve opposite
179
+ - [ ] Categorized failures by type and severity
180
+ - [ ] Converted top failures to explicit requirements
181
+ - [ ] Verified plan addresses the most critical inversions
182
+ - [ ] Re-checked the top inversions against the actual design for blind spots
183
+
184
+ ## Key Questions
185
+ - "What would guarantee failure here?"
186
+ - "What mistakes do others commonly make?"
187
+ - "What am I most likely to overlook?"
188
+ - "If this fails spectacularly, what will the postmortem say?"
189
+ - "What would I tell someone else to avoid?"
190
+ - "What would the opposite of success look like, specifically?"
191
+
192
+ ## Munger's Warning
193
+ "It is remarkable how much long-term advantage people like us have gotten by trying to be consistently not stupid, instead of trying to be very intelligent."
194
+
195
+ The power of inversion is in avoiding obvious errors that optimism blinds us to. Simple avoidance often beats clever optimization.
@@ -0,0 +1,363 @@
1
+ ---
2
+ name: thinking-jobs-to-be-done
3
+ description: Deciding what to build or why a feature isn't adopted. Reframe from features to the "job" users hire the product for — the progress they seek — to prioritize and position.
4
+ ---
5
+
6
+ # Jobs to Be Done
7
+
8
+ ## Overview
9
+
10
+ Jobs to Be Done (JTBD), developed by Clayton Christensen, reframes product thinking around the progress customers are trying to make in their lives. People don't buy products; they "hire" products to do a job. Understanding the job reveals what you're really competing against and what success looks like.
11
+
12
+ **Core Principle:** People don't want a quarter-inch drill. They don't even want a quarter-inch hole. They want to hang a picture of their family.
13
+
14
+ ## When to Use
15
+
16
+ - Product development and roadmapping
17
+ - Feature prioritization
18
+ - User research and interviews
19
+ - Competitive analysis
20
+ - Market positioning
21
+ - Understanding "surprising" competitors
22
+ - Debugging low adoption of features
23
+
24
+ Decision flow:
25
+
26
+ ```
27
+ Building/improving a product?
28
+ → Do you understand the job users hire it for? → no → DISCOVER THE JOB
29
+ → Are features not being adopted? → yes → CHECK JOB ALIGNMENT
30
+ → Surprising competitors winning? → yes → IDENTIFY THEIR JOB
31
+ ```
32
+
33
+ ## When NOT to Use
34
+
35
+ - **Skip for execution and infrastructure problems.** If the task is "fix this bug," "make this query faster," "design this schema," "wire up CI" — the job is already known and the work is technical. JTBD adds nothing; route to debugging, theory-of-constraints, or architecture skills instead.
36
+ - **Skip when the job is already well-established** and the open question is purely *how* to build it, not *whether/why*.
37
+ - **Don't use it to retro-justify** a feature decision already made — that's framework theater. Use it before prioritization, to change the decision.
38
+
39
+ ## Trigger Card
40
+
41
+ When deciding what to build or why a feature isn't adopted:
42
+
43
+ 1. **Identify the job** — what progress is the user trying to make in a specific situation? Frame it as "When [situation], I want to [progress]."
44
+ 2. **Map competing solutions** — what do users currently hire to get this job done? Include non-software alternatives.
45
+ 3. **Find the underserved job dimension** — where do current solutions fall short? Build for that gap.
46
+
47
+ Skip if the job is already well-established and the question is purely how to build it. Don't use to retro-justify a decision already made.
48
+
49
+ ## Understanding Jobs
50
+
51
+ ### The Job Formula
52
+
53
+ ```
54
+ When I [situation/trigger]
55
+ I want to [motivation/progress]
56
+ So I can [desired outcome/better state]
57
+ ```
58
+
59
+ **Example:**
60
+ ```
61
+ When I [finish a project milestone]
62
+ I want to [notify my team without disrupting their focus]
63
+ So I can [maintain team awareness while respecting their time]
64
+
65
+ Job: "Keep team informed asynchronously"
66
+ Not: "Use Slack" (that's a solution, not the job)
67
+ ```
68
+
69
+ ### Job Dimensions
70
+
71
+ Every job has multiple dimensions:
72
+
73
+ | Dimension | Question | Example (Project Management Tool) |
74
+ |-----------|----------|-----------------------------------|
75
+ | Functional | What task needs doing? | Track tasks, assign work, see progress |
76
+ | Emotional | How do I want to feel? | In control, not overwhelmed, confident |
77
+ | Social | How do I want to appear? | Organized, reliable, professional |
78
+
79
+ ### Job Context
80
+
81
+ Jobs are situation-specific:
82
+
83
+ ```
84
+ Same person, different jobs:
85
+
86
+ Morning: "Help me triage what needs attention today"
87
+ → Simple dashboard, prioritized list
88
+
89
+ Deep work: "Get out of my way, let me focus"
90
+ → Minimal notifications, distraction-free
91
+
92
+ End of day: "Help me hand off cleanly so I can disconnect"
93
+ → Status summary, async update capabilities
94
+ ```
95
+
96
+ ## The JTBD Discovery Process
97
+
98
+ ### Step 1: Identify Job Performers
99
+
100
+ Who is "hiring" your product?
101
+
102
+ ```markdown
103
+ ## Job Performers
104
+
105
+ Primary: Engineering managers
106
+ - Hire product for: tracking team delivery
107
+ - Frequency: daily
108
+ - Stakes: team performance visible to leadership
109
+
110
+ Secondary: Individual engineers
111
+ - Hire product for: knowing what to work on next
112
+ - Frequency: multiple times daily
113
+ - Stakes: personal productivity and recognition
114
+ ```
115
+
116
+ ### Step 2: Derive the Job From Available Artifacts
117
+
118
+ You usually can't run live user interviews. Instead, **reconstruct the job from the evidence already in front of you** — the PRD, tickets, support transcripts, analytics, and the code itself. Read these and answer the interview questions *from the artifacts*:
119
+
120
+ ```markdown
121
+ ## JTBD Evidence Sources (in priority order)
122
+
123
+ 1. PRD / spec / design doc
124
+ - What problem statement and "success" definition does it state?
125
+ - What user motivation is asserted (and is it backed by evidence)?
126
+
127
+ 2. Tickets / issues / support threads / sales notes
128
+ - What trigger made the user reach for this? ("When I…")
129
+ - What did they try before / complain about? (the switch + the pain)
130
+ - Recurring phrasings = the real job, in the user's words
131
+
132
+ 3. Usage / analytics / logs
133
+ - Where do users actually go, and where do they drop off?
134
+ - Which flows get repeated (real job) vs. abandoned (stated but not real)?
135
+
136
+ 4. The code / config itself
137
+ - What does the feature actually let a user accomplish today?
138
+
139
+ Then answer, from that evidence — NOT from a hypothetical interview:
140
+ - Trigger: what situation makes them reach for this?
141
+ - Progress sought: what better state are they after?
142
+ - Switch: what were they using before, and what was wrong with it?
143
+ - Done signal: how do they know the job is finished?
144
+
145
+ If the artifacts genuinely don't answer these, name the gap explicitly and
146
+ flag that user research is needed — do NOT invent quotes or fabricate a
147
+ persona to fill it.
148
+ ```
149
+
150
+ ### Step 3: Analyze Competing Solutions
151
+
152
+ What else could do this job?
153
+
154
+ ```markdown
155
+ ## Competition for "Keep team informed on project status"
156
+
157
+ Direct competitors:
158
+ - Other project management tools (Asana, Monday.com)
159
+
160
+ Indirect competitors (same job, different solution):
161
+ - Email updates
162
+ - Slack messages
163
+ - Weekly standup meetings
164
+ - Walking over to someone's desk
165
+ - Spreadsheets
166
+
167
+ Non-consumption:
168
+ - Just hope everyone knows
169
+ - Let things fall through cracks
170
+
171
+ Insight: We're not competing with other tools—we're competing
172
+ with "just send an email" and "bring it up in standup"
173
+ ```
174
+
175
+ ### Step 4: Map Job Steps
176
+
177
+ Break the job into stages:
178
+
179
+ ```markdown
180
+ ## Job Map: "Deliver working software on time"
181
+
182
+ 1. Define: Understand what needs to be built
183
+ - Sub-jobs: Clarify requirements, estimate scope, identify risks
184
+
185
+ 2. Plan: Organize how to build it
186
+ - Sub-jobs: Break into tasks, sequence work, allocate resources
187
+
188
+ 3. Execute: Build the thing
189
+ - Sub-jobs: Track progress, remove blockers, adjust course
190
+
191
+ 4. Validate: Confirm it works
192
+ - Sub-jobs: Test, get feedback, verify acceptance criteria
193
+
194
+ 5. Deliver: Get it to users
195
+ - Sub-jobs: Deploy, communicate, monitor
196
+
197
+ Pain points cluster around: #2 (scope conflicts) and #3 (blocker visibility)
198
+ ```
199
+
200
+ ### Step 5: Identify Outcome Metrics
201
+
202
+ What does success look like for the job?
203
+
204
+ ```markdown
205
+ ## Desired Outcomes: "Deliver working software on time"
206
+
207
+ Minimize:
208
+ - Time spent on status reporting
209
+ - Surprises in sprint reviews
210
+ - Blocked time waiting for others
211
+ - Rework from misunderstood requirements
212
+
213
+ Maximize:
214
+ - Confidence in delivery timeline
215
+ - Clarity on priorities
216
+ - Team awareness of blockers
217
+ - Early warning of issues
218
+ ```
219
+
220
+ ## JTBD Application Patterns
221
+
222
+ ### Feature Prioritization
223
+
224
+ ```markdown
225
+ ## Feature Evaluation: Job Lens
226
+
227
+ Feature: Advanced reporting dashboard
228
+
229
+ Job it serves: "Demonstrate team value to leadership"
230
+ Job performers: ~10% of users (managers reporting up)
231
+ Job frequency: Monthly
232
+ Alternative solutions: Screenshots + slides (works fine)
233
+
234
+ Verdict: Low priority - job is infrequent, alternatives adequate
235
+
236
+ ---
237
+
238
+ Feature: Blocker visibility alerts
239
+
240
+ Job it serves: "Remove obstacles before they delay delivery"
241
+ Job performers: ~60% of users (anyone managing work)
242
+ Job frequency: Daily
243
+ Alternative solutions: Manual check-ins (time-consuming, often missed)
244
+
245
+ Verdict: High priority - frequent job, poor alternatives
246
+ ```
247
+
248
+ ### Competitive Analysis
249
+
250
+ ```markdown
251
+ ## Competitive Analysis via JTBD
252
+
253
+ Our product: Developer documentation tool
254
+
255
+ Traditional competitive frame:
256
+ - Competitors: ReadMe, GitBook, Docusaurus
257
+ - Differentiation: Features, pricing, integrations
258
+
259
+ JTBD competitive frame:
260
+ Job: "Help developers integrate our API successfully"
261
+
262
+ Competitors for this job:
263
+ - Our own code examples (strongest competitor!)
264
+ - Stack Overflow answers
265
+ - Competitor's documentation
266
+ - Direct support from our team
267
+ - Just trying stuff until it works
268
+
269
+ Insight: Improving code examples in docs might beat any feature work
270
+ ```
271
+
272
+ ### Low Adoption Debugging
273
+
274
+ ```markdown
275
+ ## Why isn't Feature X being used?
276
+
277
+ Feature: Automated weekly report generation
278
+ Usage: 3% of target users
279
+
280
+ JTBD analysis:
281
+ Expected job: "Create status reports efficiently"
282
+ Actual job: "Demonstrate my judgment and insight to leadership"
283
+
284
+ Problem: Automated reports don't show judgment
285
+ The PROCESS of creating reports is part of the job
286
+ They want to curate, not automate
287
+
288
+ Solution: Change from "generate report" to "draft report for review"
289
+ Support the curation job, don't replace it
290
+ ```
291
+
292
+ ## JTBD Template
293
+
294
+ ```markdown
295
+ # Jobs to Be Done Analysis: [Product/Feature]
296
+
297
+ ## Job Performers
298
+ | Performer | Hire For | Frequency | Stakes |
299
+ |-----------|----------|-----------|--------|
300
+ | | | | |
301
+
302
+ ## Primary Job
303
+
304
+ When I [situation/trigger]
305
+ I want to [motivation/progress]
306
+ So I can [desired outcome]
307
+
308
+ ### Job Dimensions
309
+ - Functional: [What task]
310
+ - Emotional: [How feel]
311
+ - Social: [How appear]
312
+
313
+ ## Job Map
314
+ 1. [Stage]: [Sub-jobs]
315
+ 2. [Stage]: [Sub-jobs]
316
+ ...
317
+
318
+ ## Competing Solutions
319
+ | Competitor | How it does the job | Where it falls short |
320
+ |------------|---------------------|---------------------|
321
+ | | | |
322
+
323
+ ## Desired Outcomes
324
+ Minimize:
325
+ - [Negative outcome]
326
+
327
+ Maximize:
328
+ - [Positive outcome]
329
+
330
+ ## Implications
331
+ - Feature should: [Insight]
332
+ - Feature shouldn't: [Insight]
333
+ - Position against: [True competitor]
334
+ ```
335
+
336
+ ## Verification Checklist
337
+
338
+ - [ ] Identified job performers (who hires the product)
339
+ - [ ] Articulated job in When/Want/So format
340
+ - [ ] Considered functional, emotional, and social dimensions
341
+ - [ ] Mapped job steps
342
+ - [ ] Identified all competing solutions (including non-consumption)
343
+ - [ ] Defined measurable desired outcomes
344
+ - [ ] Features traced to specific jobs
345
+
346
+ ## Key Questions
347
+
348
+ - "What job is the user hiring this product to do?"
349
+ - "What progress are they trying to make?"
350
+ - "What are they switching from? (Including 'nothing')"
351
+ - "What are they giving up by using this?"
352
+ - "What does success look like for this job?"
353
+ - "What surprising competitors exist for this job?"
354
+
355
+ ## Christensen's Wisdom
356
+
357
+ "People don't want a quarter-inch drill bit. They want a quarter-inch hole."
358
+
359
+ Actually: They want to hang a picture. Actually: They want to enjoy their family photos. The deeper you go, the more insight you get into what "better" really means.
360
+
361
+ "The jobs that arise in people's lives are the fundamental causal driver behind everything."
362
+
363
+ Products don't fail because of features. They fail because they don't help people make progress on jobs they care about. Understand the job, and the features become obvious.