用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
直接命令不会经过审查 Prompt;运行前请先检查来源。
npx skills add https://github.com/deathrashed/agents --skill job-stories命令会保持在同一行。复制前请横向滚动并检查完整内容。
想先保存到本地?可下载 SkillsMP 当前能够提供的文件。
基于 SOC 职业分类
正在显示 SKILL.md
| name | job-stories |
| description | Jobs-to-Be-Done story writing that focuses on user situations and motivations rather than personas. |
| license | MIT + Commons Clause |
| metadata | {"version":"1.0.0","author":"borghei","category":"project-management","domain":"pm-execution","updated":"2026-03-04T00:00:00.000Z","tech-stack":"jtbd, jobs-to-be-done, invest-criteria"} |
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.
wwas/ instead.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.
Functional Jobs:
Social Jobs:
Emotional Jobs:
Challenges:
Costliness:
Common Mistakes:
Unresolved Problems:
Expectations:
Savings:
Adoption Factors:
Life Improvement:
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:
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? |
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:
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.
Good situations are:
| 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 |
Good motivations are:
| 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) |
Good outcomes are:
| 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 |
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 | Can you write acceptance criteria that verify the outcome? | Outcome is subjective ("so I feel confident") |
For each job story, produce a card with the following structure:
### [Title]
**Job Story:**
When [situation], I want to [motivation], so I can [outcome].
**Design:** [Link to design file or "TBD"]
**Acceptance Criteria:**
1. [ ] [Observable outcome that verifies the story is complete]
2. [ ] [Observable outcome]
3. [ ] [Observable outcome]
4. [ ] [Observable outcome]
5. [ ] [Observable outcome]
6. [ ] [Observable outcome]
Good acceptance criteria examples:
Bad acceptance criteria examples (avoid):
Context: A budgeting application for personal finance.
Job Story: When I am preparing my weekly budget on Sunday evening, I want to see how much I have spent so far this month by category, so I can decide where to cut back before the month ends.
Design: [Link to Figma mock]
Acceptance Criteria:
summarize-meeting/ to capture the discovery conversations that inform job stories.wwas/ when you need to add strategic business context (the "Why") to backlog items.../jira-expert/ for ticket creation.brainstorm-okrs/ to connect job stories back to team objectives.references/jtbd-guide.md for Jobs-to-Be-Done theory, comparison with user stories, and story splitting techniques.assets/job_story_template.md for ready-to-use templates.| Problem | Likely Cause | Resolution |
|---|---|---|
| Team writes situations that are too vague ("When I use the app...") | Insufficient user research; situations invented at desk rather than observed | Require each situation to reference a specific interview quote, support ticket, or analytics event; use the "could you video this?" test |
| Motivations prescribe a specific solution ("I want a dropdown...") | Team conflates solution with capability; negotiability criterion failing | Rewrite using "I want to [verb] [object]" pattern without naming UI elements; apply the INVEST-N check before acceptance |
| Outcomes are not measurable ("So I can be productive") | Outcome too abstract; not grounded in observable behavior | Ask "How would you know the user achieved this?" -- if you cannot describe an observable signal, the outcome needs rewriting |
| Job stories are too large for a single sprint | Multiple situations or motivations packed into one story | Split by situation (different contexts become separate stories) or by outcome (different success criteria become separate stories) |
| Team defaults to user story format despite training | Habit and muscle memory; Jira templates still use "As a..." format | Update Jira issue templates to use JTBD format; run a conversion workshop with 5 real user stories rewritten as job stories |
| Acceptance criteria describe implementation steps instead of outcomes | Engineering team writing criteria from their perspective rather than the user's perspective | Apply the "would the user care about this?" filter; replace API/database criteria with observable behavior statements |
| Job stories lack connection to strategic objectives | JTBD format focuses on user context but does not inherently include business "why" | Pair each job story with a WWAS "Why" statement from wwas/; or add an optional "Supports:" field linking to an OKR |
In Scope: Writing job stories using JTBD "When/Want/So" format, applying INVEST quality criteria, writing outcome-focused acceptance criteria, converting existing user stories to job stories, facilitating story-writing workshops, integrating job stories with Jira backlog items.
Out of Scope: Strategic backlog items with business context (hand off to wwas/), product ideation and opportunity discovery (hand off to discovery/brainstorm-ideas/), detailed technical specifications, UX research and user interviewing methodology.
Limitations: Job stories work best when the team has access to real user research (interviews, observation, support data). Without user context, teams will invent situations that may not reflect reality. The format is less natural for purely technical or infrastructure work where there is no direct user situation. Job stories and user stories are complementary -- some teams use both formats for different types of work.
| Integration | Direction | What Flows |
|---|---|---|
wwas/ | Complementary | WWAS adds strategic "Why" context; job stories add situational "When" context. Use both when needed |
summarize-meeting/ | Meetings -> Stories | Discovery conversations and refinement sessions produce the situations that inform job stories |
../jira-expert/ | Stories -> Jira | Completed job stories become Jira tickets with structured descriptions |
discovery/brainstorm-ideas/ | Ideas -> Stories | Validated product ideas decompose into job stories for the backlog |
execution/brainstorm-okrs/ | OKRs -> Stories | Team objectives define the outcomes that job stories should connect to |
execution/prioritization-frameworks/ | Stories -> Prioritization | Job stories scored via RICE or other frameworks for sprint planning |