Add issue-runner skill — autonomous sprint orchestrator#46
Conversation
There was a problem hiding this comment.
Pull request overview
Adds a new project-local Claude skill (/issue-runner) intended to autonomously orchestrate the repo’s GitHub Project #2 workflow by reading issues from the board, spawning per-issue agents, updating board statuses, and driving each issue through implementation and PR creation.
Changes:
- Introduces a new
.claude/skills/issue-runner/SKILL.mddefining board GraphQL constants, wave/complexity scheduling, dependency checks, and per-issue agent instructions. - Documents board status update mutations/queries and a local state-file format under
swarm-report/. - Specifies an end-to-end “quality loop” and PR creation convention (
Closes #N) for per-issue agents.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
- blocked → blocker (matches actual CLAUDE.md label set) - swift-engineer/swiftui-developer → developer-workflow:swiftui-developer plugin agent - code-reviewer → developer-workflow:code-reviewer plugin agent - Concrete xcodebuild build/test commands (project, scheme, destination, CODE_SIGNING_ALLOWED) - Add cargo fmt --check step before clippy (matches CI order) Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Complexity and Wave moved from labels to dedicated project fields. Epics (issueType=Feature) now tracked separately — skip during queue build. Per-issue agent prompt updated to show Complexity/Wave/Epic from fields. Model selection updated to match new field values (S/M/L, not labels). Dependencies still parsed from ## Dependencies section in issue body. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 1 out of 1 changed files in this pull request and generated 3 comments.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
GitHub Relations (blocked_by/blocking) are set via the standard Relationships field in the project board. The authoritative source is issue_dependencies_summary.blocked_by from the REST API — no need to parse ## Dependencies text in issue body. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…lugin agents - Remove disable-model-invocation: true — the explicit-only trigger is already conveyed in the description; the flag was confusing alongside the model-selection section for subagents - Add note that developer-workflow:* agents come from the globally installed plugin, not per-project .claude/agents/ Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 1 out of 1 changed files in this pull request and generated 6 comments.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
- Add labels to board GraphQL query so blocker label can be checked - Skip BLOCKED items in agent launch (not just mark them — was ambiguous) - Move cards to In Progress only for ready items; revert on agent start failure - Add refresh query for hardcoded project field IDs Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 1 out of 1 changed files in this pull request and generated 4 comments.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
- Clarify board constant label: org-level ProjectV2, not repo-scoped - Add pageInfo pagination to board items query (supports >100 items) - Add mkdir -p .worktree in Phase 0 (git worktree add needs parent dir) - Add gh/git/cargo/xcodebuild/swiftlint to settings.json permissions so issue-runner can run autonomously without per-command prompts Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
What changed
New project-local skill
.claude/skills/issue-runner/SKILL.md— an autonomous orchestrator that drives GitHub Issues through the full implementation pipeline without manual intervention.Why / motivation
The project has 30 decomposed tasks across 5 waves. Running them one by one manually is slow. This skill lets Claude work as a PM: reads the board, assigns issues to subagents, moves cards through statuses (Todo → In Progress → Review → Done), and creates PRs — all autonomously.
How it works
Board integration
Uses the project's GraphQL IDs (hardcoded for this repo):
PVT_kwDOA59kY84BUaDaHow to test
/issue-runnerin a Claude Code session in this repo🤖 Generated with Claude Code