Przejdź do treści
Biblioteka skilli
Zarządzanie i produkt · Pisanie

dev10x:ticket-jtbd

/dev10x:ticket-jtbd

Pisze historię JTBD dla zgłoszenia lub PR i zapisuje ją w celu, czyli w opisie PR, GitHub Issues, Linear lub JIRA.

Repozytorium
dev10x-claude ↗
Licencja
MIT
Ostatnia zmiana repozytorium
12.10.2026

Ocena i bezpieczeństwo

90/ 100Klasa: dobry
Format15 / 25
Frontmatter z nazwą i opisem, poprawna nazwa, opis do 1024 znaków, nazwa zgodna z folderem.
Odkrywalność25 / 25
Opis mówi, kiedy użyć skilla, ma sensowną długość i jest w 3. osobie.
Treść35 / 35
Co najmniej 150 słów i do 500 linii, nagłówki, listy kroków, przykłady albo kod.
Higiena15 / 15
Bez zaślepek typu TODO, bez ścieżek Windows, z licencją.
Ryzykobrak sygnałów w skanie
Pliki w paczce
1
Skrypty
0
Komentarze HTML
0
Adresy URL w SKILL.md
2
Przestarzałość

Brak sygnałów. Repozytorium zmienione 12.10.2026, bez odwołań do wycofanych modeli i API.

Licencja

MIT, otwarta: można używać i zmieniać, z zachowaniem informacji o autorze.

Co robi i kiedy

Pisze historię JTBD dla zgłoszenia lub PR i zapisuje ją w celu, czyli w opisie PR, GitHub Issues, Linear lub JIRA.

Oryginalny opis (EN)

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).

Jak działa

  1. Orchestration
  2. Overview
  3. When to Use This Skill
  4. Input
  5. Workflow
  6. Usage Modes
  7. Examples
  8. Integration with Other Skills
Sekcje z nagłówków SKILL.md, w oryginale · 191 linii, 902 słów
Podgląd SKILL.md
---
name: dev10x:ticket-jtbd
description: >
  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).
user-invocable: true
invocation-name: dev10x:ticket-jtbd
allowed-tools:
  - Skill(dev10x:jira)
  - Bash(gh pr view:*)
  - Bash(gh pr diff:*)
  - Bash(gh pr edit:*)
  - Bash(gh pr list:*)
  - Bash(git log:*)
  - Bash(git diff:*)
  - Bash(${CLAUDE_PLUGIN_ROOT}/skills/gh-context/scripts/:*)
  - mcp__claude_ai_Linear__get_issue
  - mcp__claude_ai_Linear__list_issues
  - mcp__claude_ai_Linear__list_comments
  - mcp__claude_ai_Linear__create_comment
  - mcp__claude_ai_Linear__update_issue
  - Bash(secret-tool lookup:*)
  - Bash(curl:*atlassian.net*)
  - Bash(gh issue comment:*)
  - mcp__plugin_dev10x_cli__detect_tracker
---

# Write JTBD Story to Target

## Orchestration

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:

1. `TaskCreate(subject="Write JTBD Job Story", activeForm="Writing Job Story")`

Mark completed when done: `TaskUpdate(taskId, status="completed")`

## Overview

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.

## When to Use This Skill

- After creating a PR, to add business context before requesting review
- When preparing PRs for release notes collection
- When a PR or ticket description needs a user-facing summary
- Called by `pr:monitor` in Phase 0 when a PR is missing its Job Story

## Input

Accepts one or both of:
- **PR URL or number** — e.g., `1167` or `https://github.com/example-org/app-pos/pull/1167`
- **Linear ticket URL or ID** — e.g., `PAY-519` or `https://linear.app/example/issue/PAY-519/...`
- **GitHub issue ID** — e.g., `GH-15`

If only one is provided, infer the other:
- PR → extract ticket ID from branch name
- Ticket → find linked PR from ticket attachments

## Workflow

### Step 1: Auto-Detect Target

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 |

### Step 2: Gather Identifiers

Extract all available identifiers for context.

**If a PR was provided**, read its branch through the MCP wrapper and
take the ticket ID from the second `/`-delimited segment:

```
mcp__plugin_dev10x_cli__pr_detect(arg="{PR_NUMBER}")
```

It returns `BRANCH` fetched from GitHub rather than local git, which
is what makes it correct in a multi-worktree checkout.

**If a ticket was provided**, find the linked PR. No MCP wrapper
covers PR search, so this is the one raw call in this skill:

```bash
gh pr list --search "{TICKET_ID}" --state open --json number --limit 1  # cli-friction: allow raw-gh-pr — no MCP wrapper covers PR search
```

### Step 3: Delegate to dev10x:jtbd Base Skill

Invoke the `dev10x:jtbd` skill in **attended mode** with all available context:

- `ticket_id`: extracted ticket ID
- `pr_number`: extracted PR number
- `mode`: attended

The `dev10x:jtbd` skill handles all context gathering, situation
identification, and draft presentation. It returns the approved
story string (or empty if user rejects).

### Step 4: Write to Target

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`:

1. Use the Write tool to create `/tmp/Dev10x/pr-body-{PR_NUMBER}.md`
   with the Job Story prepended to the existing body
2. Run: `gh pr edit {PR_NUMBER} --repo {REPO} --body-file /tmp/Dev10x/pr-body-{PR_NUMBER}.md`

The 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:

1. Call the MCP tool to get the repo and number:
   `mcp__plugin_dev10x_cli__detect_tracker(ticket_id="$TICKET_ID")`
2. Post the comment:
   `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.

1. Use the Write tool to create `/tmp/Dev10x/jira-payload-{TICKET_ID}.json`
   with the JIRA REST API v3 ADF document format
2. Invoke `Skill(skill="dev10x:jira")` to apply the payload to the ticket

### Step 5: Confirm

```
Updated {target_type} with Job Story.
{target_url}
```

## Usage Modes

| 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 |

## Examples

### Example 1: Write to PR

**Input:** `/dev10x:ticket-jtbd 1167`

1. Auto-detect: PR number → target is PR description
2. Extract ticket ID from branch: `PAY-519`
3. Delegate to `dev10x:jtbd` (attended) → user approves draft
4. Prepend story to PR #1167 description
5. Confirm: `Updated PR #1167 with Job Story.`

### Example 2: Write to Linear ticket

**Input:** `/dev10x:ticket-jtbd PAY-519`

1. Auto-detect: Linear ticket ID → target is Linear ticket
2. Find linked PR (if any) for additional context
3. Delegate to `dev10x:jtbd` (attended) → user approves draft
4. Prepend story to PAY-519 description
5. Confirm: `Updated PAY-519 with Job Story.`

### Example 3: Both PR and ticket

**Input:** `/dev10x:ticket-jtbd 1167 PAY-519`

1. Auto-detect: PR + ticket → primary target is PR description
2. Delegate to `dev10x:jtbd` (attended) with both identifiers
3. Prepend story to PR #1167 description
4. Confirm: `Updated PR #1167 with Job Story.`

### Example 4: Write to GitHub issue

**Input:** `/dev10x:ticket-jtbd GH-15`

1. Auto-detect: `GH-` prefix → target is GitHub issue
2. Fetch issue body and comments for context
3. Delegate to `dev10x:jtbd` (attended) → user approves draft
4. Post story as comment on GH-15
5. Confirm: `Updated GH-15 with Job Story.`

## Integration with Other Skills

```
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)
```

Wersje

W bazie nie ma innych skilli o nazwie dev10x:ticket-jtbd.

Migawka bazy z 28.10.2026 · wersja paczki da978b53b51b (skrót SHA-256 całej paczki)

Pobrania w ostatnich 30 dniach: 0 · ranking

Zgłoś problem z tym skillem: szkodliwa treść, błędny opis albo prośba autora o usunięcie.

Podobne skille

  • 90dev10x:jtbd
    Pisze historię JTBD w formie sytuacji i zadania, z jawnym aktorem i beneficjentem, na podstawie zgłoszeń i diffów.
  • 100writing-tickets
    Pisze lub przepisuje zgłoszenia w trackerze (Linear, GitHub Issues, Jira) dla osoby lub agenta kodującego: cel, dowody, podjęte decyzje, twarde reguły i kryteria ukończenia.
  • 90dev10x:ticket-create
    Zakłada zgłoszenie w GitHub Issues, Linear lub JIRA z opisem: przyczyna, rozwiązanie i lista zmienionych plików.
  • 100write-ticket
    Pisze i porządkuje zgłoszenia, historyjki i raporty błędów w Jirze, Linearze, GitHub Issues, GitLab lub Asanie, z notatek lub surowego pomysłu.
  • 100ticket-authoring
    Pisze kompletne zgłoszenia do trackera: błędy, zadania, historyjki, spiki i epiki, z polami, załącznikami i testem ukończenia, w Jira, Linear lub GitHub Issues.
  • 100jira-ticket-generator
    Prawdopodobnie generuje zgłoszenia Jira i wspiera korporacyjne przepływy pracy.

Uwagi i zgłoszenia

Wiadomość trafi do Bartosza Sokolińskiego. Adres e-mail jest potrzebny tylko do odpowiedzi. Szczegóły w polityce prywatności.