job-stories
Jobs-to-Be-Done story writing that focuses on user situations and motivations rather than personas.
What this skill does
# Job Stories Expert
## Overview
Write job stories using the Jobs-to-Be-Done (JTBD) framework. Unlike traditional user stories that focus on roles ("As a user..."), job stories focus on the situation, motivation, and desired outcome. This shift produces requirements that are more grounded in real user context and less likely to encode assumptions about who the user is.
### When to Use
- **Feature definition** -- When you need to articulate what to build and why, grounded in user context.
- **Backlog creation** -- When populating a backlog with work items that stay focused on user outcomes.
- **Requirement workshops** -- When collaborating with stakeholders to define what "done" looks like.
- **Design briefs** -- When giving designers context about the situation and motivation behind a feature.
### When NOT to Use
- When you need strategic backlog items with business context -- use `wwas/` instead.
- When you need lightweight stories for a team already fluent in user story format.
- When the work is purely technical with no direct user-facing situation.
## JTBD Discovery Canvas
Before writing job stories, run a Jobs-to-Be-Done discovery canvas to understand what customers are trying to achieve, where they struggle, and what outcomes they value most. This canvas produces the situational context that feeds directly into job story writing.
### When to Run Discovery First
- Starting a new product area with no existing user research.
- Entering a new market segment or persona.
- Backlog items feel disconnected from real user needs.
- Team debates "what to build" without grounding in customer jobs.
### Discovery Canvas Template
#### 1. Customer Jobs
**Functional Jobs:**
- [Tasks customers need to perform — keep each bullet 4-8 words]
**Social Jobs:**
- [Ways customers want to be perceived socially]
**Emotional Jobs:**
- [Emotional states customers seek to achieve or avoid]
#### 2. Pains
**Challenges:**
- [Obstacles customers face when performing their jobs]
**Costliness:**
- [What customers find too costly in time, money, or effort]
**Common Mistakes:**
- [Frequent errors customers make that could be prevented]
**Unresolved Problems:**
- [Problems not solved by current solutions]
#### 3. Gains
**Expectations:**
- [Ways current solutions fail to meet expectations]
**Savings:**
- [Ways savings in time, money, or effort would delight customers]
**Adoption Factors:**
- [Factors that would increase the likelihood of adoption]
**Life Improvement:**
- [Ways a solution could make customers' lives easier or more enjoyable]
#### 4. Assumptions to Validate
- [Assumption 1]
- [Assumption 2]
- [Assumption 3]
### From Canvas to Job Stories
Each row in the discovery canvas maps to job story components:
| Canvas Section | Maps To | Example |
|---|---|---|
| Customer Jobs (Functional) | **Motivation** (I want to...) | "I want to reconcile my accounts" |
| Pains (Challenges) | **Situation** (When...) | "When I discover a discrepancy during month-end close" |
| Gains (Expectations) | **Outcome** (So I can...) | "So I can submit accurate reports before the deadline" |
**Process:**
1. Run the discovery canvas with stakeholders or from research data.
2. Identify the highest-impact job-pain-gain clusters.
3. Write one job story per cluster using the When/Want/So format below.
4. Validate assumptions before committing to build.
### Next Steps After Discovery
1. Generate prioritized opportunity statements from the canvas (Recommended)
2. Convert the canvas into a value proposition draft
3. Generate interview questions to validate top assumptions
4. Generate a hypothesis backlog for rapid experiments
---
## The Job Story Format
```
When [situation], I want to [motivation], so I can [outcome].
```
| Component | Focus | Question It Answers |
|-----------|-------|-------------------|
| **When [situation]** | The context or trigger | What is happening when the user needs this? |
| **I want to [motivation]** | The action or capability desired | What does the user want to do in this moment? |
| **So I can [outcome]** | The expected result or benefit | What does success look like for the user? |
### Key Principle: Focus on the Job, Not the Role
User stories say "As a [role]..." which anchors the requirement to a persona. Job stories remove the role and instead describe the *situation* -- the real-world context that creates the need. This matters because:
- The same person may have different needs in different situations.
- Different people in the same situation often have the same need.
- Situations are observable and testable; roles are abstract labels.
**Example comparison:**
| User Story | Job Story |
|-----------|-----------|
| As a budget manager, I want to see a spending report so I can track expenses. | When I am preparing my weekly budget, I want to see spending so far this period, so I can adjust before overspending. |
| As an admin, I want to export user data so I can comply with data requests. | When I receive a data subject access request, I want to export all data associated with that person, so I can respond within the 30-day legal deadline. |
The job story version is more specific, more testable, and provides better design guidance.
## Writing Good Job Stories
### Situations (When...)
Good situations are:
- **Specific and observable** -- You could watch someone be in this situation.
- **Contextual** -- They describe what is happening, not who the person is.
- **Triggering** -- They explain what creates the need right now.
| Weak Situation | Strong Situation |
|---------------|-----------------|
| When I use the app | When I open the app for the first time after signing up |
| When I need data | When I am in a client meeting and need to reference last quarter's results |
| When I manage my team | When a team member submits a time-off request that overlaps with a project deadline |
### Motivations (I want to...)
Good motivations are:
- **Action-oriented** -- They describe doing something, not having something.
- **Solution-agnostic** -- They describe the capability, not the implementation.
- **Singular** -- One motivation per story.
| Weak Motivation | Strong Motivation |
|----------------|-------------------|
| I want a dashboard | I want to see my team's progress at a glance |
| I want better notifications | I want to be alerted only when something requires my action |
| I want to manage users and permissions | I want to grant a new team member access to the project (split into two if needed) |
### Outcomes (So I can...)
Good outcomes are:
- **Benefit-focused** -- They describe the end result, not the means.
- **Measurable or observable** -- You can tell if the outcome was achieved.
- **Meaningful** -- They connect to something the user genuinely cares about.
| Weak Outcome | Strong Outcome |
|-------------|----------------|
| So I can use the feature | So I can complete my weekly report in under 10 minutes |
| So I can be productive | So I can identify which tasks are blocked before standup |
| So I can do my job | So I can respond to the customer within our 4-hour SLA |
## INVEST Quality Criteria
Apply INVEST to every job story before it enters the backlog:
| Criterion | Question | Red Flag |
|-----------|----------|----------|
| **Independent** | Can this story be delivered without depending on another story? | "This only works after story X is done" |
| **Negotiable** | Is the implementation open to discussion, or is it prescribing a solution? | Motivation says "I want a dropdown menu" instead of "I want to select from available options" |
| **Valuable** | Does the outcome deliver clear value to the user? | Outcome is vague ("so I can use it") or internal ("so the database is normalized") |
| **Estimable** | Can the team estimate the effort? | Situation is too vague to understand scope |
| **Small** | Can this be completed in one sprint? | Story covers multiple distinct situations or motivations |
| **Testable**Related in Writing & Docs
jax-development
IncludedUse this skill when the user is writing, debugging, profiling, refactoring, reviewing, benchmarking, parallelising, exporting, or explaining JAX code, or when they mention JAX, jax.numpy, jit, grad, value_and_grad, vmap, scan, lax, random keys, pytrees, jax.Array, sharding, Mesh, PartitionSpec, NamedSharding, pmap, shard_map, Pallas, XLA, StableHLO, checkify, profiler, or the JAX repo. It helps turn NumPy or PyTorch-style code into pure functional JAX, fix tracer/control-flow/shape/PRNG bugs, remove recompiles and host-device syncs, choose transforms and sharding strategies, inspect jaxpr/lowering/IR, and benchmark compiled code correctly.
nature-article-writer
IncludedDrafts, rewrites, diagnostically critiques, and style-calibrates primary research manuscripts for Nature and Nature Portfolio journals. Use when the user wants a Nature-style title, summary paragraph or abstract, introduction, results, discussion, methods, figure legends, presubmission enquiry, cover letter, reviewer response, or when a scientific draft sounds generic, jargon-heavy, structurally weak, or AI-ish and needs precise, broad-reader-friendly prose without inventing data, analyses, or references. Best for primary research articles and letters rather than reviews or press releases unless explicitly adapting one.
deckrd
IncludedDocument-driven framework that derives requirements, specifications, implementation plans, and executable tasks from goals through structured AI dialogue. Use when user says "write requirements", "create spec", "plan implementation", "derive tasks", "structure this feature", "break down into tasks", or "document this module". Also use for reverse engineering existing code into docs (/deckrd rev). Do NOT use for direct code writing — use /deckrd-coder after tasks are generated. Do NOT use when the user only wants to run or fix existing code without planning.
clinical-decision-support
IncludedGenerate professional clinical decision support (CDS) documents for pharmaceutical and clinical research settings, including patient cohort analyses (biomarker-stratified with outcomes) and treatment recommendation reports (evidence-based guidelines with decision algorithms). Supports GRADE evidence grading, statistical analysis (hazard ratios, survival curves, waterfall plots), biomarker integration, and regulatory compliance. Outputs publication-ready LaTeX/PDF format optimized for drug development, clinical research, and evidence synthesis.
handling-sf-data
IncludedSalesforce data operations with 130-point scoring. Use this skill to create, update, delete, bulk import/export, generate test data, and clean up org records using sf CLI and anonymous Apex. TRIGGER when: user creates test data, performs bulk import/export, uses sf data CLI commands, needs data factory patterns for Apex tests, or needs to seed/clean records in a Salesforce org. DO NOT TRIGGER when: SOQL query writing only (use querying-soql), Apex test execution (use running-apex-tests), or metadata deployment (use deploying-metadata).
accelint-ac-to-playwright
IncludedConvert and validate acceptance criteria for Playwright test automation. Use when user asks to (1) review/evaluate/check if AC are ready for automation, (2) assess if AC can be converted as-is, (3) validate AC quality for Playwright, (4) turn AC into tests, (5) generate tests from acceptance criteria, (6) convert .md bullets or .feature Gherkin files to Playwright specs, (7) create test automation from requirements. Handles both bullet-style markdown and Gherkin syntax with JSON test plan generation and validation.