From claude-apd
Use when the project has GitHub Projects configured (GITHUB_PROJECTS_URL in CLAUDE.md) and APD pipeline tasks need to sync with the board. Creates issues for specs, moves cards through columns (todo → in-progress → review → done), closes on commit. Triggers on "GitHub Projects", "issue", "board", "card", "sync", "kanban", "project board", any APD pipeline phase transition when a board URL is configured.
How this skill is triggered — by the user, by Claude, or both
Slash command
/claude-apd:apd-githubThis skill is limited to the following tools:
The summary Claude sees in its skill listing — used to decide when to auto-load this skill
Maps APD pipeline phases to GitHub Projects v2 columns. Each task becomes an issue with the spec-card.md content embedded, and pipeline progress is reflected on the board.
Maps APD pipeline phases to GitHub Projects v2 columns. Each task becomes an issue with the spec-card.md content embedded, and pipeline progress is reflected on the board.
Use when:
GITHUB_PROJECTS_URL in CLAUDE.md)Skip when:
gh CLI is not authenticated — escalate, don't silently skipInstead of manually calling gh issue create and gh issue close, use the gh-sync wrapper:
# Instead of manually:
bash ${CLAUDE_PLUGIN_ROOT}/plugins/apd/bin/core/gh-sync spec "User login" # creates issue + starts pipeline spec
bash ${CLAUDE_PLUGIN_ROOT}/plugins/apd/bin/core/gh-sync builder # comments on issue + starts pipeline builder
bash ${CLAUDE_PLUGIN_ROOT}/plugins/apd/bin/core/gh-sync reviewer # comments + starts reviewer
bash ${CLAUDE_PLUGIN_ROOT}/plugins/apd/bin/core/gh-sync verifier # comments + starts verifier
bash ${CLAUDE_PLUGIN_ROOT}/plugins/apd/bin/core/gh-sync done 42 abc1234 # closes issue with commit reference
bash ${CLAUDE_PLUGIN_ROOT}/plugins/apd/bin/core/gh-sync skip 42 "Hotfix" # closes with apd-skip label
bash ${CLAUDE_PLUGIN_ROOT}/plugins/apd/bin/core/gh-sync status # shows active issue
gh-sync automatically tracks the issue number for the current pipeline — you don't need to pass it at every step.
.mcp.jsongh CLI authenticated (gh auth login)| APD step | GitHub Projects column | Action |
|---|---|---|
pipeline-advance spec "Task" | Spec | Create issue with spec-card.md content, add to board |
pipeline-advance builder | In Progress | Move issue to In Progress |
pipeline-advance reviewer | Review | Move issue to Review |
pipeline-advance verifier | Testing | Move issue to Testing |
| Commit (successful) | Done | Close issue, link commit, move to Done |
pipeline-advance skip | Done | Close issue with skip label |
When the orchestrator writes spec-card.md, also create a GitHub issue:
gh issue create \
--title "[APD] Task name" \
--body "$(cat <<'EOF'
## Spec card
**Goal:** One sentence.
**Effort:** max | high
**Out of scope:** What we are NOT doing.
**Acceptance criteria:**
- [ ] Criterion 1
- [ ] Criterion 2
**Affected modules:** files/layers
**Risks:** what can go wrong
**Rollback:** how to revert
---
_APD Pipeline Task — do not close manually_
EOF
)" \
--label "apd-pipeline" \
--project "{PROJECT_NAME}"
Use the GitHub MCP server to move items on the board:
Orchestrator: Move issue #42 to the "In Progress" column on the GitHub Projects board.
The GitHub MCP server supports update_project_item for changing status.
After a successful commit:
gh issue close ISSUE_NUMBER --comment "Completed through APD pipeline. Commit: COMMIT_HASH"
If the pipeline was skipped (hotfix):
gh issue close ISSUE_NUMBER --comment "Pipeline skipped (hotfix): REASON"
gh issue edit ISSUE_NUMBER --add-label "apd-skip"
The orchestrator can automate the entire flow:
pipeline-advance step → move issue to the corresponding columnUser: Implement user login
Orchestrator:
1. Writes spec-card.md
2. → gh issue create --title "[APD] User login" --project "MyProject"
3. → pipeline-advance spec "User login"
4. Dispatches backend-builder
5. → moves issue #42 to "In Progress"
6. → pipeline-advance builder
7. Starts reviewer
8. → moves issue #42 to "Review"
9. → pipeline-advance reviewer
10. Starts verifier
11. → moves issue #42 to "Testing"
12. → pipeline-advance verifier
13. Commits
14. → gh issue close 42 --comment "Commit: abc1234"
15. → issue moves to "Done"
GitHub Projects stores card movement history. This enables:
This data is complementary to pipeline-advance metrics — GitHub provides a board-level view, pipeline provides per-step timing.
Create a GitHub Projects v2 board with the following columns:
| Column | Description |
|---|---|
| Backlog | Planned tasks (not in the pipeline) |
| Spec | Spec card created, awaiting approval |
| In Progress | Builder working |
| Review | Reviewer examining |
| Testing | Verifier testing |
| Done | Committed and pushed |
Labels:
apd-pipeline — all APD tasksapd-skip — tasks with skipped pipelinehuman-gate — tasks requiring approvalgh issue create directly when gh-sync spec is available → Do use gh-sync so the issue number is tracked through the pipelinegh auth failures → Do escalate with gh auth login instructionsExample 1 — Full happy-path lifecycle.
Input: User asks to implement "User login". No active issue; pipeline starts at spec phase.
Output: On each pipeline-advance, run the matching gh-sync step:
spec → gh-sync spec "User login" → opens #42, board column = Spec
builder → gh-sync builder → moves #42 to In Progress
reviewer → gh-sync reviewer → moves #42 to Review
verifier → gh-sync verifier → moves #42 to Testing
commit → gh-sync done 42 abc1234 → closes #42 with "Commit: abc1234"
board column = Done
The orchestrator never passes the issue number — gh-sync reads it from .apd/pipeline/gh-issue.
Example 2 — Hotfix bypasses the pipeline.
Input: Production incident — pipeline is skipped via pipeline-advance skip. Issue #57 is open in the Spec column but the work is going straight to commit.
Output: Close with skip label, do not move through the in-progress columns:
gh-sync skip 57 "Hotfix: payment processor 5xx"
→ #57 closed with comment "Pipeline skipped (hotfix): Hotfix: payment processor 5xx"
→ label `apd-skip` added
→ board column = Done
Cycle-time metrics still capture the skip — the board reflects reality, not the pipeline.
Example 3 — Drift detected → escalate, don't auto-correct.
Input: Orchestrator runs gh-sync status after a builder dispatch. Output reports issue #42 in column "Done" while the pipeline is in builder phase.
Output: Stop and escalate to the user:
GitHub Projects board out of sync:
- Pipeline phase: builder
- Issue #42 column: Done
Likely cause: someone closed the issue manually.
Action: confirm with user whether to reopen #42 or open a fresh issue —
do NOT silently move the card back.
You're done when:
apd-skip label and the skip reason[APD] issue maps to a real pipeline task or has been triagedpipeline-advance step (workflow), not by humans directlygh-sync reports an inconsistency (issue out of sync with pipeline state) → escalate to user; don't auto-correctProvides behavioral guidelines to reduce common LLM coding mistakes, focusing on simplicity, surgical changes, assumption surfacing, and verifiable success criteria.
Searches, retrieves, and installs Agent Skills from prompts.chat registry using MCP tools like search_skills and get_skill. Activates for finding skills, browsing catalogs, or extending Claude.
Creates, edits, and optimizes skills for Claude Code, including drafting, evaluating with test prompts, iterating on performance, and improving skill descriptions for better triggering accuracy.
npx claudepluginhub zstevovich/claude-apd --plugin claude-apd