adr
Write an Architecture Decision Record (ADR) for a feature — Context / Decision / Status / Consequences / Alternatives, filed as…
Jira integration — view issues, generate branches, create tickets, transition status. Use when: user mentions Jira ticket key (XX-123), says /jira, wants to create branch from ticket, create a new ticket, or update Jira status. Not for: GitHub issues (use issue-analyze).
$ npx -y skills add sd0xdev/sd0x-dev-flow --skill jira --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/jiraContext preview
The summary Claude sees to decide when to auto-load this skill.
Jira integration — view issues, generate branches, create tickets, transition status. Use when: user mentions Jira ticket key (XX-123), says /jira, wants to create branch from ticket, create a new ticket, or update Jira status. Not for: GitHub issues (use issue-analyze).
name: jira description: "Jira integration — view issues, generate branches, create tickets, transition status. Use when: user mentions Jira ticket key (XX-123), says /jira, wants to create branch from ticket, create a new ticket, or update Jira status. Not for: GitHub issues (use issue-analyze)." allowed-tools: mcp__claude_ai_Atlassian__getAccessibleAtlassianResources, mcp__claude_ai_Atlassian__getJiraIssue, mcp__claude_ai_Atlassian__getTransitionsForJiraIssue, mcp__claude_ai_Atlassian__transitionJiraIssue, mcp__claude_ai_Atlassian__addCommentToJiraIssue, mcp__claude_ai_Atlassian__searchJiraIssuesUsingJql, mcp__claude_ai_Atlassian__createJiraIssue, mcp__claude_ai_Atlassian__getJiraProjectIssueTypesMetadata, Bash(git:*), AskUserQuestion
View Jira issues, generate branch names from tickets, transition issue status — all via Atlassian MCP.
Extract `issueKey` and optional `host` from user input:
| Input Format | Example | Extraction | |-------------|---------|------------| | Bare key | `OK-51513` | key=`OK-51513` | | Full URL | `https://foo.atlassian.net/browse/OK-51513` | key=`OK-51513`, host=`foo.atlassian.net` | | Software URL | `https://foo.atlassian.net/jira/software/.../OK-51513` | key=`OK-51513`, host=`foo.atlassian.net` | | Branch context | (auto from `git branch --show-current`) | key via `{TICKET_PATTERN}` regex |
**Regex**:
1. Call getAccessibleAtlassianResources()
2. 0 results → error: "Atlassian MCP not configured or unauthorized"
3. 1 result → use its cloudId automatically
4. N results →
Host provided and matches? → use matching cloudId
Host provided but no match? → warn: "Host '<host>' not found. Available: ..." → AskUserQuestion to select or abort
No host? → AskUserQuestion to choose instanceDo NOT persist cloudId. Resolve at runtime each time; Claude context naturally caches within a session.
| Step | Action | |------|--------| | 1 | Parse input → issueKey (+ host if URL) | | 2 | Resolve cloudId | | 3 | `getJiraIssue(cloudId, issueKey)` | | 4 | Format output |
**Output format**:
## KEY: Summary | Field | Value | |-------|-------| | Status | ... | | Assignee | ... | | Priority | ... | | Type | ... | | Created | ... | ### Description (first 500 chars, truncated if longer)
| Step | Action | |------|--------| | 1 | Parse input → issueKey | | 2 | Resolve cloudId | | 3 | `getJiraIssue` → get summary + issuetype | | 4 | Map issue type → branch prefix (see `references/branch-policy.md`) | | 5 | Apply `--type` override if provided | | 6 | Generate slug from summary | | 7 | Assemble branch name: `${prefix}/${issueKey}-${slug}` | | 8 | Check collision (local + remote) | | 9 | Plan mode: output branch name + command. Execute mode: run `git checkout -b` |
See `references/branch-policy.md` for full mapping table, slug algorithm, and collision detection.
**Plan output** (default):
Branch: feat/OK-51513-add-user-profile-page From: OK-51513 "Add user profile page" (Story) To create: git checkout -b feat/OK-51513-add-user-profile-page
**Execute mode** (`--execute`): run `git checkout -b <branch>` directly.
| Step | Action | |------|--------| | 1 | Parse input → issueKey + `--event` value | | 2 | Resolve cloudId | | 3 | `getJiraIssue` → current status | | 4 | `getTransitionsForJiraIssue` → available transitions | | 5 | Match event → target transition (see `references/transition-mapping.md`) | | 6 | Plan mode: show plan. Execute mode: AskUserQuestion → `transitionJiraIssue` |
See `references/transition-mapping.md` for event vocabulary, regex patterns, and resolution algorithm.
**Plan output** (default):
## Transition Plan - Issue: OK-51513 "Add user profile page" - Current: To Do - Event: start_work - Target: In Progress (transition id: 21) Execute? /jira transition OK-51513 --event start_work --execute
| Step | Action | |------|--------| | 1 | Extract project key from input (bare key like `OK`, or from issue key prefix) | | 2 | Resolve cloudId | | 3 | `getJiraProjectIssueTypesMetadata(cloudId, projectKey)` → list available types | | 4 | Validate issue type against available types (case-insensitive match) | | 5 | Format description as markdown (see `references/create-policy.md`) | | 6 | Plan mode: display creation plan. Execute mode: AskUserQuestion → `createJiraIssue` |
**Input sources** (both supported):
**MCP call** (`createJiraIssue`):
| Parameter | Source | |-----------|--------| | `cloudId` | Resolved via step 2 | | `projectKey` | From input | | `issueTypeName` | Validated against available types | | `summary` | From `--summary` or context | | `description` | Formatted markdown from `--description` or context | | `contentFormat` | Always `"markdown"` |
**Plan output** (default):
## Create Issue Plan - Project: OK - Type: Task - Summary: P1 Hardening — Quote state machine + Recovery Worker - Description: (preview first 200 chars...) Execute? /jira create OK --summary "..." --type Task --execute
**Execute output**:
✅ Created: OK-51514 https://yourorg.atlassian.net/browse/OK-51514
See `references/create-policy.md` for description format guidelines, project key extraction, and issue type validation.
| Failure | Mess
Language: English | 繁體中文 | 简体中文 | 日本語 | 한국어 | Español The harness layer for Claude Code. Let the model choose the path. Keep "done" verifiable. Full control plane on Claude Code. Skills-only distribution for Codex CLI and other compatible agents.
Repo: sd0xdev/sd0x-dev-flow
Write an Architecture Decision Record (ADR) for a feature — Context / Decision / Status / Consequences / Alternatives, filed as…
Architecture design and documentation. Produces 3-architecture.md with component diagrams, data flow, integration points, and architecture decisions. Reads…
Context-aware Q&A with auto context gathering. Use when: user has a quick question about codebase, git history, rules, docs, or skills during development. Not…
Industry best practices conformance audit with mandatory adversarial debate. Produces audit artifact: verdict (OK/WARN/FAIL) + gap roadmap + debate proof. Use…
Bug fix workflow. Use when: fixing bugs, resolving issues, regression fixes. Not for: new features (use feature-dev), understanding code (use code-explore).…
Bump package and plugin version in sync. Updates package.json, .claude-plugin/plugin.json, and install-state manifest to the same version. Use when: user says…