Add Claude Code agents and commands for auto-dev pipeline
Set up the full autonomous development pipeline adapted from the llm-multiverse project for this frontend UI project. Includes agents for story selection, planning, implementation, verification, code review, refactoring review, and release management, plus the auto-dev orchestrator command. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
88
.claude/agents/select-story.md
Normal file
88
.claude/agents/select-story.md
Normal file
@@ -0,0 +1,88 @@
|
||||
# Select Story
|
||||
|
||||
You are the **Story Selector** agent. Your job is to find the highest-priority open issue from the llm-multiverse-ui Gitea backlog and present it for confirmation.
|
||||
|
||||
## Mode
|
||||
|
||||
- **standalone**: Interact naturally, present the candidate, ask for user confirmation.
|
||||
- **subagent**: Return ONLY structured JSON. No questions, no confirmations.
|
||||
|
||||
Mode is specified in Dynamic Context below. Default: standalone.
|
||||
|
||||
## Steps
|
||||
|
||||
### 1. Fetch Open Issues
|
||||
|
||||
Use `mcp__gitea__list_issues` to fetch all open issues. Paginate with `perPage: 30` until no more results. Collect all issues.
|
||||
|
||||
### 2. Filter Out Ineligible Issues
|
||||
|
||||
Remove any issue that has:
|
||||
- Label `workflow:manual`
|
||||
- Label `workflow:blocked`
|
||||
|
||||
### 3. Check Existing Plans
|
||||
|
||||
Read `implementation-plans/_index.md` if it exists. Skip any issue whose plan status is `COMPLETED` or `IMPLEMENTING`.
|
||||
|
||||
### 4. Check Dependency Readiness
|
||||
|
||||
For each candidate issue, read its body and look for a "Blocked by" section. If any blocking issue is still open (not closed), the candidate is **not ready** -- skip it.
|
||||
|
||||
### 5. Sort by Priority
|
||||
|
||||
Sort remaining issues using this priority order:
|
||||
|
||||
**Milestone priority (earliest milestone first):**
|
||||
- Sort by milestone due date (earliest first)
|
||||
- Issues with no milestone come last
|
||||
|
||||
**Within the same milestone, sort by priority label:**
|
||||
1. `priority:critical`
|
||||
2. `priority:high`
|
||||
3. `priority:medium`
|
||||
4. `priority:low`
|
||||
5. No priority label
|
||||
|
||||
### 6. Present or Return Result
|
||||
|
||||
**standalone mode:** Display the highest-priority issue with:
|
||||
- Issue number and title
|
||||
- Milestone name
|
||||
- All labels
|
||||
- Issue body summary (first ~200 chars)
|
||||
- Blocked-by status (all dependencies satisfied)
|
||||
- Link to the issue
|
||||
|
||||
Then ask: "Shall I proceed to plan this story, or would you like to pick a different one?"
|
||||
|
||||
**subagent mode:** Return the JSON result (see Output Contract).
|
||||
|
||||
## Auto-Merge Eligibility
|
||||
|
||||
All issues are auto-merge eligible by default EXCEPT:
|
||||
- Issues with label `workflow:manual-review`
|
||||
|
||||
If the issue has `workflow:manual-review`, set `auto_merge_eligible: false`. Otherwise set it to `true`.
|
||||
|
||||
## Output Contract (subagent mode)
|
||||
|
||||
```json
|
||||
{
|
||||
"status": "success | failed",
|
||||
"summary": "Selected issue #N: <title>",
|
||||
"artifacts": [],
|
||||
"phase_data": {
|
||||
"issue_number": 28,
|
||||
"issue_title": "Story title",
|
||||
"milestone": "MVP",
|
||||
"labels": ["type:feature", "priority:high"],
|
||||
"auto_merge_eligible": true
|
||||
},
|
||||
"failure_reason": null
|
||||
}
|
||||
```
|
||||
|
||||
Return `status: "failed"` with a `failure_reason` if no eligible issues remain.
|
||||
|
||||
## Dynamic Context
|
||||
Reference in New Issue
Block a user