|
| 1 | +--- |
| 2 | +name: create-jtbd-canvas |
| 3 | +description: Generate a Jobs-to-be-Done canvas mapping functional, emotional, and social jobs when the user asks to define jobs, map customer needs, or create a JTBD analysis |
| 4 | +owner: chalk |
| 5 | +version: "1.0.0" |
| 6 | +metadata-version: "1" |
| 7 | +allowed-tools: Read, Glob, Grep, Write |
| 8 | +argument-hint: "[persona or problem space to analyze]" |
| 9 | +--- |
| 10 | + |
| 11 | +# Create JTBD Canvas |
| 12 | + |
| 13 | +## Overview |
| 14 | + |
| 15 | +Generate a Jobs-to-be-Done canvas that maps the full job landscape for a persona or problem space — functional jobs (what they are trying to accomplish), emotional jobs (how they want to feel), and social jobs (how they want to be perceived). Each job includes the current solution, pain points, desired outcomes, situation-based triggers, and hiring/firing criteria. This canvas is the foundation for opportunity identification and solution design. |
| 16 | + |
| 17 | +## Workflow |
| 18 | + |
| 19 | +1. **Read product context** — Load `.chalk/docs/product/0_product_profile.md`, any existing research syntheses, interview guides, and prior JTBD docs. If research synthesis docs exist, they are the primary input — JTBD canvases should be grounded in evidence, not speculation. If no product context exists, work from what the user provides and flag that the canvas is hypothesis-based. |
| 20 | + |
| 21 | +2. **Identify the persona** — Parse `$ARGUMENTS` to determine the target persona or problem space. If the user specifies a persona, use it. If they specify a problem space (e.g., "expense reporting"), identify the primary persona who experiences that problem. If neither is clear, ask: "Who is the person struggling with this? What is their role and context?" |
| 22 | + |
| 23 | +3. **Map the main job** — Identify the overarching job the persona is trying to get done. This is not a task or feature — it is the higher-order goal. Use Alan Klement's format: "When [situation], I want to [motivation], so I can [desired outcome]." The main job anchors the entire canvas. |
| 24 | + |
| 25 | +4. **Map functional jobs** — Break down the practical things the persona needs to accomplish. For each functional job: |
| 26 | + - **Job statement**: concrete action they need to perform |
| 27 | + - **Current solution**: how they solve this today (including workarounds, manual processes, competitor products) |
| 28 | + - **Pain points**: what is frustrating, slow, expensive, or broken about the current solution |
| 29 | + - **Desired outcome**: what success looks like when this job is done well |
| 30 | + - Group functional jobs by phase if a natural sequence exists (e.g., planning, executing, reviewing) |
| 31 | + |
| 32 | +5. **Map emotional jobs** — Identify how the persona wants to feel throughout the experience. Emotional jobs are often the real driver behind product switching. For each emotional job: |
| 33 | + - **Job statement**: the feeling they are seeking or the feeling they are trying to avoid |
| 34 | + - **Current reality**: how the current solution makes them feel |
| 35 | + - **Desired state**: how they want to feel instead |
| 36 | + - Common emotional jobs: feel confident, feel in control, avoid anxiety, avoid embarrassment, feel competent |
| 37 | + |
| 38 | +6. **Map social jobs** — Identify how the persona wants to be perceived by others. Social jobs drive adoption in B2B and collaborative contexts. For each social job: |
| 39 | + - **Job statement**: how they want to be seen by peers, managers, reports, or customers |
| 40 | + - **Current reality**: how the current solution affects their professional perception |
| 41 | + - **Desired perception**: how they want to be perceived when doing this job well |
| 42 | + |
| 43 | +7. **Define situation triggers ("When ___" statements)** — Map the specific situations that trigger the person to "hire" a solution. Triggers are more valuable than demographics for segmentation. Use the format: "When [specific situation], they need to [job]." Good triggers are concrete and observable, not vague states. |
| 44 | + |
| 45 | +8. **Map hiring and firing criteria** — Document what causes someone to adopt ("hire") a new solution and what causes them to abandon ("fire") their current one: |
| 46 | + - **Hiring criteria**: what pushes them toward a new solution (push forces) and what pulls them toward it (pull forces) |
| 47 | + - **Firing criteria**: what anxieties hold them back from switching and what habits keep them attached to the current solution |
| 48 | + - Use the Four Forces framework: Push (current pain), Pull (new solution appeal), Anxiety (fear of switching), Habit (comfort with status quo) |
| 49 | + |
| 50 | +9. **Identify the struggling moment** — Describe the specific moment when the gap between the current solution and the desired outcome is most painful. This is the moment a product must nail. Include: what just happened, what they are trying to do, what goes wrong, and how they feel. |
| 51 | + |
| 52 | +10. **Determine the next file number** — Read filenames in `.chalk/docs/product/` to find the highest numbered file. The next number is `highest + 1`. |
| 53 | + |
| 54 | +11. **Write the file** — Save to `.chalk/docs/product/<n>_jtbd_canvas_<persona_slug>.md`. |
| 55 | + |
| 56 | +12. **Confirm** — Tell the user the canvas was created, share the file path, and highlight the main job, the most critical struggling moment, and the strongest hiring/firing criteria. |
| 57 | + |
| 58 | +## JTBD Canvas Structure |
| 59 | + |
| 60 | +```markdown |
| 61 | +# JTBD Canvas: <Persona or Problem Space> |
| 62 | + |
| 63 | +Last updated: <YYYY-MM-DD> (Initial draft) |
| 64 | + |
| 65 | +Evidence base: <list source docs or "Hypothesis-based — needs validation"> |
| 66 | + |
| 67 | +## Main Job |
| 68 | + |
| 69 | +When [situation], I want to [motivation], so I can [desired outcome]. |
| 70 | + |
| 71 | +## The Struggling Moment |
| 72 | + |
| 73 | +<Narrative description of the specific moment when the current solution fails the persona. What happened? What were they trying to do? What went wrong? How did they feel? This is the emotional anchor for the entire canvas.> |
| 74 | + |
| 75 | +## Functional Jobs |
| 76 | + |
| 77 | +### Phase 1: <Phase Name> (if applicable) |
| 78 | + |
| 79 | +| # | Job Statement | Current Solution | Pain Points | Desired Outcome | |
| 80 | +|---|---------------|------------------|-------------|-----------------| |
| 81 | +| F1 | ... | ... | ... | ... | |
| 82 | +| F2 | ... | ... | ... | ... | |
| 83 | + |
| 84 | +### Phase 2: <Phase Name> |
| 85 | + |
| 86 | +| # | Job Statement | Current Solution | Pain Points | Desired Outcome | |
| 87 | +|---|---------------|------------------|-------------|-----------------| |
| 88 | +| F3 | ... | ... | ... | ... | |
| 89 | + |
| 90 | +## Emotional Jobs |
| 91 | + |
| 92 | +| # | Job Statement (Feel/Avoid) | Current Reality | Desired State | |
| 93 | +|---|---------------------------|-----------------|---------------| |
| 94 | +| E1 | Feel confident that ... | Currently feels uncertain because ... | Wants to feel sure that ... | |
| 95 | +| E2 | Avoid anxiety about ... | Currently worries about ... | Wants to stop worrying about ... | |
| 96 | + |
| 97 | +## Social Jobs |
| 98 | + |
| 99 | +| # | Job Statement (Be Perceived As) | Current Reality | Desired Perception | |
| 100 | +|---|--------------------------------|-----------------|-------------------| |
| 101 | +| S1 | Be seen as ... by ... | Currently perceived as ... | Wants to be perceived as ... | |
| 102 | + |
| 103 | +## Situation Triggers |
| 104 | + |
| 105 | +When [specific observable situation], they need to [job]: |
| 106 | + |
| 107 | +1. When ..., they need to ... |
| 108 | +2. When ..., they need to ... |
| 109 | +3. When ..., they need to ... |
| 110 | + |
| 111 | +## Hiring & Firing Criteria |
| 112 | + |
| 113 | +### Four Forces of Progress |
| 114 | + |
| 115 | +| Force | Description | Strength | |
| 116 | +|-------|-------------|----------| |
| 117 | +| **Push** (pain with current) | ... | low/moderate/high | |
| 118 | +| **Pull** (appeal of new) | ... | low/moderate/high | |
| 119 | +| **Anxiety** (fear of switching) | ... | low/moderate/high | |
| 120 | +| **Habit** (comfort with current) | ... | low/moderate/high | |
| 121 | + |
| 122 | +### What Makes Them Switch (Hiring Criteria) |
| 123 | +- ... |
| 124 | + |
| 125 | +### What Makes Them Leave (Firing Criteria) |
| 126 | +- ... |
| 127 | + |
| 128 | +### What Holds Them Back (Barriers to Switching) |
| 129 | +- ... |
| 130 | +``` |
| 131 | + |
| 132 | +## Output |
| 133 | + |
| 134 | +- **File**: `.chalk/docs/product/<n>_jtbd_canvas_<persona_slug>.md` |
| 135 | +- **Format**: Plain markdown, no YAML frontmatter |
| 136 | +- **First line**: `# JTBD Canvas: <Persona or Problem Space>` |
| 137 | +- **Second line**: `Last updated: <YYYY-MM-DD> (Initial draft)` |
| 138 | + |
| 139 | +## Anti-patterns |
| 140 | + |
| 141 | +- **Listing features as jobs** — "I want to use a dashboard" is a feature, not a job. "I want to understand whether my campaign is on track before my Monday standup" is a job. Jobs exist independently of any product. If deleting your product would not eliminate the job, you have found a real one. |
| 142 | +- **Confusing tasks with jobs** — "Export a CSV" is a task. "Get data into the format my finance team requires so I can get budget approved" is the job. Tasks are how people accomplish jobs with their current tools. Jobs persist even when tools change. |
| 143 | +- **Ignoring emotional and social dimensions** — Teams that map only functional jobs miss the strongest drivers of product switching. People do not switch expense tools because the new one saves 4 minutes. They switch because the old one made them feel incompetent in front of their manager. Always fill in the emotional and social sections. |
| 144 | +- **Not capturing the struggling moment** — The struggling moment is the most actionable element of the canvas. Without it, the canvas is academic. Describe a specific, concrete moment of frustration that the team can empathize with and design around. |
| 145 | +- **Vague situation triggers** — "When they need to do something" is not a trigger. "When a new team member joins and needs access to 12 different tools by their first standup" is a trigger. Triggers should be concrete enough that you could observe them in a workplace. |
| 146 | +- **Hypothesis canvases without labeling** — A JTBD canvas generated without underlying research data is a hypothesis, not a finding. Always label the evidence base. If there is no research, say so prominently. Hypotheses are valuable but must be validated. |
| 147 | +- **Forgetting the Four Forces** — Push and Pull alone do not explain switching behavior. Anxiety and Habit are the forces that prevent switching even when Push and Pull are strong. A canvas that ignores these forces will overestimate willingness to adopt. |
| 148 | +- **Generic personas ("the user")** — JTBD canvases for "the user" are useless. Specify the persona with enough context that the team can picture a real person: role, seniority, company stage, team size, and the specific situation they face. |
0 commit comments