From jira-sprint-workflow
Execute a Jira Story that's been designed with jira-story-design — autonomously walks the 15-subtask chain (Setup → Implement ∥ Test Cases → Code Review → Fix → UI Test → Fix → Local Smoke → Architect Review → Fix → Sandbox Deploy → Sandbox Manual Test [human
How this skill is triggered — by the user, by Claude, or both
Slash command
/jira-sprint-workflow:jira-story-executeThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
This skill autonomously walks a designed Jira Story through its 15-subtask chain to Done. It pauses at the two human checkpoints (subtask 10 — Sandbox Manual Testing; subtask 12 — Merge to Sandbox Branch) and escalates if any sub-agent reports a blocker.
This skill autonomously walks a designed Jira Story through its 15-subtask chain to Done. It pauses at the two human checkpoints (subtask 10 — Sandbox Manual Testing; subtask 12 — Merge to Sandbox Branch) and escalates if any sub-agent reports a blocker.
Companion to jira-story-design, which creates the Story + subtasks. This skill consumes them.
0 Setup Branch & Worktree
1 Implement ┐ (parallel)
1b Plan Test Cases ┘
2 Code Review ┐
3 Fix Code Review ┘ (loop, cap 3)
4 UI Test ┐
5 Fix UI Test ┘ (loop, cap 3)
6 Deploy to Local Docker (automated smoke — no human)
7 Architect Review ┐
8 Fix Architect Review ┘ (loop, cap 3)
9 Deploy to Sandbox
10 Sandbox Manual Test ✋ ┐ (HUMAN gate #1)
11 Fix Sandbox Issues ┘ (loop, cap 3 cycling 11→9→10)
12 Merge to Sandbox Branch ✋ (HUMAN gate #2)
13 Push to Prod (sandbox → main PR)
14 Prod Sanity Test
Every sub-agent this skill dispatches MUST:
In Progress when it startsStarted comment immediately with a short "here's what I'm about to do" noteCompleted or Failed comment with a PASS/FAIL/BLOCKED verdictDone (on PASS) or leave In Progress (on FAIL/BLOCKED)Why: if a sub-agent crashes, times out, or the session ends mid-chain, the next invocation of this skill reads the Jira state + comments and resumes from where the last sub-agent left off. Without these updates, resumption is impossible.
This rule is non-negotiable. The sub-agent dispatch contract (in references/subagent-dispatch-contract.md) enforces it.
Read ~/.claude/settings.json and verify pluginConfigs["jira-sprint-workflow@jira-sprint-workflow"].options has non-empty values for all eight fields: jira_url, jira_username, jira_api_token, project_key, default_owner_account_id, components, plans_directory, specs_directory. If any are missing:
jira-setup skill.<KEY>" prompt.Single-user, single-worktree. The user who invokes this skill is the only person working in the worktree that subtask 0 created. All sub-agents this skill dispatches inherit that worktree — they chdir into it before doing anything.
If a second person needs to work on the same Story in parallel (e.g., to unblock a stuck run), they create their own worktree from the same branch. Do not race two orchestrators on one worktree.
On invocation:
1. Determine Story key (from user prompt or ask)
2. Fetch Story + all 15 subtasks + their statuses + recent comments
3. Read subtask 0's completion comment for worktree path + branch name
4. Determine next eligible subtask:
- First in chain where status IS NOT Done
- All its "is blocked by" predecessors ARE Done
- Honor fix-loop dynamics (skip 8 if 7 PASSED; skip 11 if 10 PASSED — see fix-loop rules)
5. Dispatch sub-agent for that subtask (see dispatch contract below)
6. Wait for sub-agent completion
7. Read subtask's latest Jira state + sub-agent's return message
8. Advance, loop, or escalate per the rules below
9. Go to step 4 until Story reaches Done or a pause condition fires
| Condition | Action |
|---|---|
| Next subtask is #10 (Sandbox Manual Testing) | Verify subtask 9 posted a sandbox URL. Transition #10 to In Progress, ensure it's assigned to the parent Story's assignee, embed the manual test cases (substituting <sandbox-url> with the URL from #9), tell the user: "Subtask #10 is ready on the sandbox URL <url>. Walk through the Manual Test Cases in its description. When done, transition it to Done in Jira (or say 'continue') and I'll resume — or comment Issue: ... per failing case to trigger subtask 11." Exit. |
| Next subtask is #12 (Merge to Sandbox Branch) | Transition #12 to In Progress, ensure it's assigned to the parent Story's assignee, tell the user: "Subtask #12 is the release-train gate. Review #10's pass log and #7's architect summary, then comment Approved — merge to sandbox branch on #12. I'll then open the PR feature → sandbox and merge it." Exit. (After the user comments approval and returns, the skill resumes and dispatches the sub-agent for the PR + merge.) |
| Sub-agent reports BLOCKED | Post comment on the subtask describing the block, tell the user with enough context to triage. Exit. |
| A fix loop exceeds 3 cycles (7↔8, 4↔5, 2↔3, or 9→10→11) | Post comment "Fix loop exhausted after 3 cycles; escalating to human" on the affected subtasks. Exit. |
| Atlassian MCP / Jira API errors for >2 consecutive attempts | Report the error to the user. Exit. |
| Story reaches Done (subtask 14 complete) | Transition parent Story to Done. Post summary comment on parent. Exit with success message. |
For each subtask, dispatch a general-purpose sub-agent (via the Agent tool) with:
references/subagent-dispatch-contract.md)The dispatch uses superpowers:subagent-driven-development conventions but with Jira state tracking layered on.
Full contract: references/subagent-dispatch-contract.md.
Four subtasks can loop with their "fix" siblings:
| Main subtask | Fix subtask | Loop trigger |
|---|---|---|
| 2 (Code Review) | 3 (Fix Code Review) | #2's comment has unresolved BLOCKER or MAJOR findings after #3 completes → rerun #2 on the updated diff |
| 4 (UI Testing) | 5 (Fix UI Testing) | #4's comparison table has any FAIL row after #5 completes → rerun #4 |
| 7 (Architect Review) | 8 (Fix Architect Review) | #7's comment has unresolved BLOCKER or MAJOR findings after #8 completes → rerun #7 on the updated diff |
| 9 → 10 (Sandbox Deploy → Sandbox Manual Test) | 11 (Fix Sandbox Issues) | #10 has Issue: ... comments from the human reviewer after #11 completes → re-run #9 (re-deploy fixed branch) → re-run #10 (human re-tests) |
Loop cap: 3 cycles per pair. After the 3rd failed cycle, escalate to the user. This prevents infinite loops if a sub-agent can't actually fix what the review/test found.
When looping, the skill re-dispatches the main subtask (not the fix) — the fix subtask's Done state is preserved as a historical record. The re-dispatched main subtask picks up the new diff, finds what (if anything) still fails, and posts a new comment.
Special case for the sandbox loop (9 → 10 → 11): because #10 is a human gate, the skill detects loop trigger from Issue: ... comments the human reviewer posts. After #11 fixes them, the skill re-runs #9 (sandbox redeploy), then pauses again at #10 for the human to re-test. Each full pass through 9 → 10 (regardless of #11's involvement) counts as one cycle.
When the chain reaches subtask 10:
In Progress<sandbox-url> placeholder, edits the description to substitute the actual sandbox URL from #9's comment into every Manual Test CaseReady for manual testing on the sandbox URL <url>. @<owner>, please walk through every Manual Test Case below. Check the pass-criteria boxes and transition to Done when all pass, or comment 'Issue: ...' per failing case to trigger subtask 11 (Fix Sandbox Issues).<url>. Once you've walked the cases and transitioned to Done in Jira — or come back here and say 'continue WFR-X' — I'll resume with subtask 12 (Merge approval)."When the user resumes:
Issue: ... comments → dispatch #11 to fix, then loop back through #9 → #10 (cycle cap 3)When the chain reaches subtask 12:
In ProgressReady for release-train approval. @<owner>, review subtask 10's pass log and subtask 7's architect summary. When ready, comment 'Approved — merge to sandbox branch' on THIS subtask. I'll then open PR feature → sandbox and merge it.When the user resumes:
Approved — merge to sandbox branch → dispatch the sub-agent to open the PR feature → sandbox, wait for merge, post merge commit, transition #12 to Done, and proceed to #13 (Push to Prod = PR sandbox → main).OVERRIDE — ship hot to main → skip #12's sandbox-merge step, advance directly to #13 with a comment noting the override.Any time this skill is invoked, it's idempotent-ish:
Comments left by prior runs are not re-written. Sub-agents use their incremental comments as context ("I can see the previous run got to chunk 3; I'll continue from chunk 4").
If a subtask is currently In Progress with a Started comment but no Completed comment:
Resuming after previous run. Last checkpoint: <summary>.Selected for Development to In Progress (find transition via getTransitionsForJiraIssue).Done. Post a summary comment on the parent with commit range + production URL + link to prod sanity test results + sandbox merge commit + prod merge commit.If either transition fails (permission, invalid status), skip it and warn the user — execution continues regardless.
When the skill exits (for any reason), it produces a concise summary:
Story: WFR-5 "Agent list for Shae (Export Framework + Agents export)"
Exit reason: <paused-at-human-checkpoint-10 | paused-at-human-checkpoint-12 | completed | blocked | error>
Progress:
✅ Subtask 0 (Setup Branch & Worktree) — Done
✅ Subtask 1 (Implement Feature) — Done
✅ Subtask 1b (Plan Functional Test Cases) — Done
✅ Subtask 2 (Code Review) — Done
✅ Subtask 3 (Fix Code Review Issues) — Done
✅ Subtask 4 (UI Testing) — Done (2 cycles)
✅ Subtask 5 (Fix UI Testing Issues) — Done
✅ Subtask 6 (Deploy to Local Docker) — Done
✅ Subtask 7 (Senior Architect Review) — Done
⏭️ Subtask 8 (Fix Architect Review) — Skipped (no blockers in #7)
✅ Subtask 9 (Deploy to Sandbox) — Done — sandbox URL: https://...
🚶 Subtask 10 (Sandbox Manual Testing) — Waiting for human reviewer
⏳ Subtask 11 (Fix Sandbox Issues) — Conditional on #10
⏳ Subtask 12 (Merge to Sandbox Branch) — Blocked by 10
⏳ Subtask 13 (Push to Prod) — Blocked by 12
⏳ Subtask 14 (Prod Sanity Test) — Blocked by 13
Next action: [what the user needs to do — e.g., open sandbox URL, walk manual cases, transition #10]
Reinvoke: "continue WFR-5"
Reads the same user config as jira-story-design:
jira_url, jira_username, jira_api_tokenproject_keydefault_owner_account_id (used for comment @-mentions)components (for validation only; execution doesn't create new subtasks)plans_directory (sub-agents may need to read plan/test-plan files; path reference)In Progress — that means the sub-agent didn't complete. Re-dispatch or escalate instead.Approved — merge to sandbox branch comment from the human owner (or OVERRIDE — ship hot to main override).main. Subtask 13 must open a PR sandbox → main and wait for human merge — never bypass.terraform apply against the prod AWS account from subtask 9 — that's the sandbox deploy. Prod terraform happens in subtask 13's deploy phase after the human merges the PR.Failed comment on the subtask with the sub-agent's error output, and escalate.jira-story-design — creates the Story + 15 subtasks (prerequisite for this skill to have anything to execute)jira-architect-review — used by subtask 7; right-sizes the review to 3 / 5 / 7 / 10 angles based on diff sizesuperpowers:subagent-driven-development — pattern this skill uses to dispatch per-subtask sub-agentssuperpowers:using-git-worktrees — referenced by subtask 0 (already done by the time this skill runs)superpowers:code-reviewer — used by subtask 2 (Code Review) and as a fallback for subtask 7references/subagent-dispatch-contract.md — exact instructions and return format for sub-agentsreferences/failure-handling.md — retry patterns, resumption rules, escalation triggersRead these when you reach the relevant step. Don't load up-front.
npx claudepluginhub harsh1210/jira-sprint-workflow --plugin jira-sprint-workflowGuides creation, editing, and verification of skills for AI coding agents using test-driven development with subagent scenarios. Use when authoring or debugging skills.