From sbox-bugfix-pipeline
Use when receiving a bug report or feature request from external sources (email, Slack, verbal) that needs to be triaged against a ClickUp sprint, optionally tracked as a new task, investigated in the codebase, fixed, and delivered as a pull request
How this skill is triggered — by the user, by Claude, or both
Slash command
/sbox-bugfix-pipeline:issue-to-prThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Complete lifecycle from external issue report to deliverable PR: analyze report → triage against ClickUp sprint → create task if missing → investigate root cause → fix → branch & PR → update task status. Bridges the gap between informal bug reports and tracked, code-reviewed fixes.
Complete lifecycle from external issue report to deliverable PR: analyze report → triage against ClickUp sprint → create task if missing → investigate root cause → fix → branch & PR → update task status. Bridges the gap between informal bug reports and tracked, code-reviewed fixes.
Required MCP servers:
Required CLI tools:
gh (GitHub CLI) — authenticated for PR creationgit — with remotes configuredRequired skills:
superpowers:systematic-debugging — for root cause investigationdigraph issue_to_pr {
rankdir=TB;
node [shape=box, style=rounded];
analyze [label="1. Analyze\nIssue Report"];
triage [label="2. Triage Against\nClickUp Sprint"];
exists [label="Task exists?", shape=diamond];
create [label="3a. Create\nClickUp Task"];
use_existing [label="3b. Use Existing\nTask"];
investigate [label="4. Investigate\nRoot Cause"];
confirm [label="Confirm with Dev", shape=diamond];
fix [label="5. Fix the Bug"];
verify [label="6. Build & Verify"];
pr [label="7. Branch, Commit\n& Create PR"];
update [label="8. Update ClickUp\nStatus"];
done [label="Done", shape=doublecircle];
analyze -> triage;
triage -> exists;
exists -> use_existing [label="yes"];
exists -> create [label="no"];
create -> investigate;
use_existing -> investigate;
investigate -> confirm;
confirm -> fix [label="approved"];
fix -> verify;
verify -> pr [label="build passes"];
verify -> fix [label="build fails"];
pr -> update;
update -> done;
}
Input: Issue description from email, Slack, verbal report, or any external source
AskUserQuestion to clarify before proceedingInput required from user: Sprint list URL or list ID.
Extract the list ID from the URL. For example:
https://spiderbox.clickup.com/6958790/v/l/6-901816565652-1?pr=7809207 → list ID: 901816565652Search for existing tasks:
mcp__clickup__get_tasks with list_id from the sprintPresent findings to user:
Use mcp__clickup__create_task with:
[Feature Area] <Bug description> (e.g. [Medical Staff] Hide Onsite Details After 1 Week)2 (high) unless user specifies otherwiseSave the task ID, custom ID (e.g. CMS-2747), and task URL for later steps.
in progress via mcp__clickup__update_taskInvoke superpowers:systematic-debugging skill and follow its four phases:
Phase 1 — Root Cause Investigation:
Agent with subagent_type: Explore to search the codebase thoroughly:
Phase 2 — Pattern Analysis:
Phase 3 — Hypothesis:
Pause — Present root cause analysis and proposed fix to the developer for confirmation.
This step is mandatory — no skipping.
# Backend fix
cd src && dotnet build CMS.WebApi/CMS.WebApi.csproj --no-restore
# Frontend fix
cd src/CMS.WebApi/ClientApp && npm run build:prod
git diff to review the change — confirm it's minimal and correctBranch naming: bugfix/<CustomID>-<short-kebab-description>
Steps:
git checkout master && git pullgit checkout -b bugfix/<CustomID>-<description>git add -A)[b] [<CustomID>] <Short description of the fix>
<Root cause explanation in 1-2 sentences>
Co-Authored-By: Claude Opus 4.6 <[email protected]>
-u flaggh pr create:PR title: [b] [<CustomID>] <Short description>
PR body:
## Summary
- <What was fixed and why>
- <Root cause explanation>
- <What was changed>
## ClickUp
<clickup-task-url>
## Test plan
- [ ] <Steps to verify the fix>
- [ ] <Edge cases to check>
Generated with [Claude Code](https://claude.com/claude-code)
upstream remote and use --repo flagAfter PR is created:
pr - in review via mcp__clickup__update_taskCommon status names in CMS space:
| Status | Value |
|---|---|
| Open | Open |
| In Progress | in progress |
| PR In Review | pr - in review |
| Finished | finished |
| Staging | staging |
| Production | production |
| Mistake | Fix |
|---|---|
| Skipping sprint triage | Always check for existing tasks first — avoid duplicates |
| Assuming sprint/list ID | Always ask user for the sprint link or ID |
| Creating duplicate tasks | Search task names AND descriptions before creating |
| Fixing symptoms, not root cause | Always trace the full data flow before coding |
| Skipping dev confirmation | Always pause after root cause analysis |
| Not updating ClickUp status | Update to in progress when starting, pr - in review after PR |
Using git add -A | Stage specific files to avoid committing secrets or unrelated changes |
| Building from wrong directory | Backend: src/, Frontend: src/CMS.WebApi/ClientApp/ |
| Item | Format |
|---|---|
| Branch | bugfix/<CustomID>-<kebab-description> |
| Commit prefix | [b] [<CustomID>] |
| PR title | [b] [<CustomID>] <Description> |
| PR target | master |
| ClickUp status flow | Open → in progress → pr - in review |
in progressgit diff reviewed — change is correct and minimalbugfix/<CustomID>-<desc> convention[b] [<CustomID>] prefix and Co-Authored-By[b] [<CustomID>] Description formatpr - in reviewnpx claudepluginhub quynhlx/sbox-bugfix-pipeline --plugin sbox-bugfix-pipelineResolves GitHub issues via triage, root cause analysis, TDD implementation, branch management, testing, and CI/CD-compliant pull requests. Takes issue ID/URL.
Generates structured GitHub issues with TDD plans, acceptance criteria, and agent instructions for autonomous PR lifecycle management.
Fixes GitHub issues by number. Fetches details via gh CLI, classifies type/severity/complexity, tracks state in SQLite DB, and implements fixes autonomously.