From Dev10x
Write a JTBD Job Story and apply it to a target (PR description, GitHub issue, Linear ticket, or JIRA ticket). Delegates drafting to the Dev10x:jtbd base skill, then handles the side-effecting write. TRIGGER when: a ticket or PR needs a Job Story written or updated. DO NOT TRIGGER when: JTBD is already present in the target, or user is writing commit messages (use Dev10x:git-commit for that).
npx claudepluginhub dev10x-guru/dev10x-claude --plugin Dev10xThis skill is limited to using the following tools:
This skill follows `references/task-orchestration.md` patterns.
Creates isolated Git worktrees for feature branches with prioritized directory selection, gitignore safety checks, auto project setup for Node/Python/Rust/Go, and baseline verification.
Executes implementation plans in current session by dispatching fresh subagents per independent task, with two-stage reviews: spec compliance then code quality.
Dispatches parallel agents to independently tackle 2+ tasks like separate test failures or subsystems without shared state or dependencies.
This skill follows references/task-orchestration.md patterns.
Create a task at invocation, mark completed when done:
REQUIRED: Create a task at invocation. Execute at startup:
TaskCreate(subject="Write JTBD Job Story", activeForm="Writing Job Story")Mark completed when done: TaskUpdate(taskId, status="completed")
This skill drafts a JTBD Job Story using the Dev10x:jtbd base skill and
then writes the approved story to a target: PR description, GitHub
issue, Linear ticket description, or JIRA ticket.
pr:monitor in Phase 0 when a PR is missing its Job StoryAccepts one or both of:
1167 or https://github.com/example-org/app-pos/pull/1167PAY-519 or https://linear.app/example/issue/PAY-519/...GH-15If only one is provided, infer the other:
Determine the write target from the arguments:
| Argument | Target |
|---|---|
| PR number or URL | PR description |
| GitHub issue ID (GH-xxx) | GitHub issue (posted as comment) |
| Linear ticket ID (PAY-xxx) | Linear ticket description |
| JIRA ticket ID (JIRA-xxxx) | JIRA ticket description |
| Both PR + ticket | PR description (primary), ticket as context source |
Extract all available identifiers for context:
# If PR provided, extract ticket ID from branch
gh pr view {PR_NUMBER} --json headRefName -q '.headRefName' | cut -d'/' -f2
# If ticket provided, find linked PR
gh pr list --search "{TICKET_ID}" --state open --json number --limit 1
Invoke the Dev10x:jtbd skill in attended mode with all available context:
ticket_id: extracted ticket IDpr_number: extracted PR numbermode: attendedThe Dev10x:jtbd skill handles all context gathering, situation
identification, and draft presentation. It returns the approved
story string (or empty if user rejects).
If the user approved the story (non-empty return):
PR description target:
Write the updated body to a temp file (include PR# to avoid clashes),
then use --body-file:
/tmp/Dev10x/pr-body-{PR_NUMBER}.md
with the Job Story prepended to the existing bodygh pr edit {PR_NUMBER} --repo {REPO} --body-file /tmp/Dev10x/pr-body-{PR_NUMBER}.mdThe story goes at the top of the description so it's the first thing visible in PR lists and Slack previews.
GitHub issue target: Post the Job Story as a comment on the GitHub issue:
mcp__plugin_Dev10x_cli__detect_tracker(ticket_id="$TICKET_ID")gh issue comment "$TICKET_NUMBER" --repo "$REPO" --body "$JOB_STORY"Linear ticket target: Prepend the Job Story to the existing ticket description:
mcp__claude_ai_Linear__update_issue(
id: "{TICKET_ID}",
description: "{job_story}\n\n{existing_description}"
)
JIRA ticket target:
Delegate to the Dev10x:jira skill for JIRA updates.
/tmp/Dev10x/jira-payload-{TICKET_ID}.json
with the JIRA REST API v3 ADF document formatSkill(skill="Dev10x:jira") to apply the payload to the ticketUpdated {target_type} with Job Story.
{target_url}
| Caller | Dev10x:jtbd Mode | Write Target |
|---|---|---|
Standalone /Dev10x:ticket-jtbd 1167 | attended | PR description |
Standalone /Dev10x:ticket-jtbd PAY-519 | attended | Linear ticket |
Standalone /Dev10x:ticket-jtbd GH-15 | attended | GitHub issue (comment) |
pr:monitor Phase 0 | attended | PR description |
Input: /Dev10x:ticket-jtbd 1167
PAY-519Dev10x:jtbd (attended) → user approves draftUpdated PR #1167 with Job Story.Input: /Dev10x:ticket-jtbd PAY-519
Dev10x:jtbd (attended) → user approves draftUpdated PAY-519 with Job Story.Input: /Dev10x:ticket-jtbd 1167 PAY-519
Dev10x:jtbd (attended) with both identifiersUpdated PR #1167 with Job Story.Input: /Dev10x:ticket-jtbd GH-15
GH- prefix → target is GitHub issueDev10x:jtbd (attended) → user approves draftUpdated GH-15 with Job Story.Dev10x:ticket-jtbd
├── Delegates to: Dev10x:jtbd (pure base — context gathering + drafting)
├── Called by: pr:monitor Phase 0 (when JTBD missing from PR)
└── Replaces: job-story (former monolithic skill)