jtbd-analysis
Jobs-to-be-Done analysis for a product, feature, market, or user segment. Produces a formal main job statement, related/emotional/social jobs, Ulwick-style desired outcome statements, forces-of-progress analysis (push/pull/anxiety/habit), competitive alternatives (including non-consumption), and underserved-outcome opportunity signals. Two modes — synthesis (from supplied research) and autonomous (from product context with labeled assumptions). Mermaid diagrams with optional PNG export.
What this skill does
# JTBD Analysis
You perform Jobs-to-be-Done analysis. The core idea: users don't buy products, they "hire" solutions to get a job done in a specific situation. Your output makes that job explicit, structured, and actionable for product, strategy, and ideation work.
## Core rules
- **Formal structure**: main job uses `When [situation], I want to [motivation], so I can [outcome]`
- **Functional, not solutional**: the job is what the user is trying to accomplish — never a product feature
- **Situation-anchored**: the job lives in a concrete moment/context, not a vague state
- **Non-consumption is always an alternative**: "doing nothing" / manual workaround is a valid competitor
- **Evidence or `[Assumed]`**: every claim traces to supplied research, or is labeled `[Assumed]` with rationale and confidence
- **No fabrication**: do not invent quotes, statistics, interview findings, or competitor facts not in the input
## Input handling
Follow shared foundation §7 — interview mode. Gather at minimum:
| Dimension | Required | Default |
|---|---|---|
| **Target** (product / market / feature / segment) | Yes | — |
| **Mode** (`synthesis` / `autonomous`) | No | `synthesis` if research supplied, else `autonomous` |
| **Research input** (transcripts, quotes, surveys, reviews) | Required in synthesis mode | — |
| **Target user segment** | No | Inferred from target |
| **Known alternatives / competitors** | No | Researched from context |
| **Job level** (`main` / `related` / `both`) | No | `both` |
**Exit interview when**: target is clear and (synthesis mode) research input is available.
## Phase 1 — Setup
### 1. Collect input
Accept:
- A product / feature / market / segment (string, business case, or document reference)
- Research input: interview transcripts, quotes, survey open-text, reviews, observation notes
- No / vague input → interview mode (§7)
### 2. Detect scope
- **Target**: the thing being "hired"
- **Mode**: synthesis (from research) or autonomous (from product context + `[Assumed]` inferences)
- **Research input**: list and identify per-source IDs (e.g., `R-01` = interview with Alex, `R-02` = review excerpt)
- **Target user segment**
- **Job level**
### 3. Confirm scope
Present:
```
**Target**: [product / market / feature]
**Mode**: [synthesis / autonomous]
**Research input**: [N items from K sources, or "none"]
**Target segment**: [segment]
**Job level**: [main / related / both]
```
Ask for confirmation. Ask render mode (per `diagram-rendering` mixin) and output path (default: `/documentation/[case]/jtbd-analysis/`).
## Phase 2 — Context analysis
Identify:
- **Situational triggers**: what moment/event kicks off the job
- **User state before**: emotional, physical, task state at the trigger
- **Environment**: where, with what, with whom
- **Constraints**: time pressure, tools available, stakes
This context feeds the `When [situation]` clause of the main job.
## Phase 3 — Main job identification
Single formal statement:
```
When [situation],
I want to [motivation],
so I can [outcome].
```
Rules:
- **Situation**: concrete moment, not "in general"
- **Motivation**: a verb + functional objective, never a product feature
- **Outcome**: observable or measurable success condition
Examples:
- ✅ "When I'm about to buy something expensive online, I want to compare options quickly, so I can feel confident I'm making the right choice."
- ❌ "I want a comparison tool." (solution, not job)
- ❌ "When shopping, I want a good experience." (too vague)
## Phase 4 — Related jobs
3–6 jobs that surround the main job:
| Relationship | Example |
|---|---|
| **Prerequisite** | Needs to be done before the main job is possible |
| **Parallel** | Happens alongside and contributes |
| **Follow-on** | Happens after and locks in the outcome |
Format each with the same formal structure.
## Phase 5 — Emotional and social jobs
These sit alongside the functional main job:
- **Emotional jobs** — how the user wants to *feel* during / after (e.g., "Feel in control, not overwhelmed")
- **Social jobs** — how the user wants to *be perceived* (e.g., "Be seen as a savvy shopper by peers")
Rules:
- Must be distinct from the functional job, not restatements
- Must trace to evidence (research quotes) or be labeled `[Assumed]`
- Social jobs may not apply to every context — honest "none evident" is acceptable
## Phase 6 — Desired outcome statements (Ulwick)
Produce 5–15 outcome statements in this format:
```
[Direction: minimize | maximize | increase speed of | decrease likelihood of] the [metric] of [object] when [context]
```
Examples:
- "Minimize the time it takes to identify the best option when comparing across 3+ products."
- "Increase the confidence I feel in my choice when committing to a purchase over €200."
- "Decrease the likelihood of missing a better alternative when a deadline is approaching."
Rules:
- Direction is always explicit
- Metric is specific (time, count, likelihood, error rate, ease-of, confidence-level)
- Object is concrete
- Context ties back to the `When [situation]` of the main job
## Phase 7 — Forces of progress
Four forces operating on any switch/hire decision:
| Force | Description | What to capture |
|---|---|---|
| **Push** | Pain / dissatisfaction with status quo | Specific pains from evidence |
| **Pull** | Attraction of the new solution | Benefits users seek |
| **Anxiety** | Fear of the new solution (risk, uncertainty) | Concerns about switching |
| **Habit** | Inertia of the current solution | Reasons to stay with status quo |
For each force:
- **Strength**: `strong` / `moderate` / `weak`
- **Evidence**: ≥1 reference to research input OR `[Assumed]` with rationale
- **Specific items**: list of pushes/pulls/anxieties/habits
## Phase 8 — Competitive alternatives
What else gets hired for the same job:
| Alternative | Category | Why it's hired | Strengths | Gaps |
|---|---|---|---|---|
| ... | Direct / Indirect / Non-consumption | ... | ... | ... |
Rules:
- ≥1 direct competitor (another product in the same category)
- ≥1 indirect competitor (different product category, same job)
- ≥1 non-consumption option (doing nothing, manual workaround, delaying) — mandatory
- Non-consumption label rationale: "Most users are actually 'hiring' [X] (e.g., an Excel sheet, a colleague, procrastination)"
## Phase 9 — Underserved outcomes
From Phase 6 outcomes, identify opportunity signals:
| Outcome | Importance | Current satisfaction | Opportunity signal |
|---|---|---|---|
| ... | high / medium / low | high / medium / low | high importance + low satisfaction = high opportunity |
Rules:
- Importance and satisfaction estimates are qualitative (or quantitative if research supports)
- In synthesis mode: anchor in evidence
- In autonomous mode: label estimates `[Assumed]` with rationale
- Opportunity signal = importance − satisfaction (higher gap = higher opportunity)
## Phase 10 — Recommendations
One or two paragraphs:
- Which outcomes have the biggest opportunity signal?
- Where should this analysis feed next? (e.g., `opportunity-scoring`, `brainstorming`, `hmw-framing`)
- What additional research would sharpen low-confidence claims?
## Phase 11 — Diagrams
### 1. Job hierarchy (flowchart)
```mermaid
flowchart TD
M["MAIN JOB:<br/>[situation → motivation → outcome]"]
M --> P["Prerequisite:<br/>[job]"]
M --> PAR["Parallel:<br/>[job]"]
M --> F["Follow-on:<br/>[job]"]
M --> E["Emotional:<br/>[how they want to feel]"]
M --> S["Social:<br/>[how they want to be seen]"]
```
### 2. Forces of progress
```mermaid
flowchart LR
SQ["Status Quo"]
NEW["New Solution"]
SQ -- "PUSH<br/>[strong/moderate/weak]" --> NEW
NEW -- "PULL<br/>[strong/moderate/weak]" --> SQ
NEW -. "ANXIETY<br/>[strong/moderate/weak]" .-> SQ
SQ -. "HABIT<br/>[strong/moderate/weak]" .-> NEW
```
### 3. Outcome opportunity quadrant
```mermaid
quadrantChart
title Desired Outcome Opportunities — [Target]
x-axis Low SatisRelated in General
modeling-omnistudio-epc-catalog
IncludedSalesforce Industries CME EPC product-modeling skill for Product2-based catalog creation. Use when creating EPC products, configuring product attributes, building offer bundles with Product Child Items, or reviewing EPC DataPack JSON metadata for product catalog changes. TRIGGER when: user creates or updates Product2 EPC records, AttributeAssignment payloads, AttributeMetadata/AttributeDefaultValues, Offer bundles, or ProductChildItem relationships. DO NOT TRIGGER when: designing OmniScripts/FlexCards/Integration Procedures (use building-omnistudio-omniscript, building-omnistudio-flexcard, or building-omnistudio-integration-procedure), implementing Apex business logic (use generating-apex), or troubleshooting deployment pipelines (use deploying-metadata).
relationship-science-coach
IncludedUse this skill for direct, practical adult relationship coaching: couples conflict, repair, trust, marriage, dating, flirting, attachment patterns, emotional connection, sex, desire differences, eroticism, kink negotiation, affection, love languages, breakups, and long-term passion. Draw on Gottman, EFT and Hold Me Tight, attachment science, modern sex research, Perel, Nagoski, Kerner, Schnarch, Love and Stosny, and flexible love-language tools. Be concrete and low-hedge. Redirect only for imminent danger, abuse, coercive control, minors, non-consent, self-harm, stalking, or medical/legal/psychiatric decisions.
building-sf-integrations
IncludedSalesforce integration architecture and runtime plumbing with 120-point scoring. Use this skill to set up Named Credentials, External Credentials, External Services, REST/SOAP callout patterns, Platform Events, and Change Data Capture. TRIGGER when: user sets up Named Credentials, External Services, REST/SOAP callouts, Platform Events, CDC, or touches .namedCredential-meta.xml files. DO NOT TRIGGER when: Connected App/OAuth config (use configuring-connected-apps), Apex-only logic (use generating-apex), or data import/export (use handling-sf-data).
venue-templates
IncludedAccess comprehensive LaTeX templates, formatting requirements, and submission guidelines for major scientific publication venues (Nature, Science, PLOS, IEEE, ACM), academic conferences (NeurIPS, ICML, CVPR, CHI), research posters, and grant proposals (NSF, NIH, DOE, DARPA). This skill should be used when preparing manuscripts for journal submission, conference papers, research posters, or grant proposals and need venue-specific formatting requirements and templates.
let-fate-decide
IncludedDraws the 12 Houses of the Zodiac Tarot spread to inject entropy into planning when prompts are vague, ambiguous, or casually delegated. Interprets the spread to guide next steps. Use when the user says 'let fate decide', 'YOLO', 'whatever', 'idk', or other nonchalant phrases, makes Yu-Gi-Oh references, or when you are about to arbitrarily pick between multiple reasonable approaches. Prefer over ask-questions-if-underspecified when the user's tone is casual or playful rather than precision-seeking.
net-ops
IncludedCross-platform network troubleshooting (Windows, macOS, Linux) via local or remote shell. Use for: DNS broken, can't resolve hostnames, nslookup/dig works but apps fail, NRPT, WFP, scutil, /etc/resolver, systemd-resolved, /etc/resolv.conf, NetworkManager, VPN DNS leak residue (ProtonVPN/Mullvad/WireGuard/AnyConnect), AV/firewall blocking DNS or DoH, Tailscale DNS interaction, intermittent connectivity, remote diagnostics over SSH.