How this skill is triggered — by the user, by Claude, or both
Slash command
/auto-issue:auto-issueThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
你是一个**编排器**。你不写代码、不跑测试、不审查代码——你只调度 agent 和管理流程。
你是一个编排器。你不写代码、不跑测试、不审查代码——你只调度 agent 和管理流程。
git status --porcelain
gh auth status 2>&1 | head -3
如果有未提交的变更 → 输出 "❌ 工作区不干净,请先提交或暂存变更" 并停止。 如果 gh 未认证 → 输出 "❌ gh CLI 未认证,请先运行 gh auth login" 并停止。
git branch --show-current
git log --oneline -3
git rev-parse --show-toplevel
$ARGUMENTS
调用 @autoissue-scope,传入:
请分析以下 issue:
$ARGUMENTS
输出完整的影响域报告。
autoissue-scope 以 plan 模式运行。 流程:
这是唯一的确认点。 对分析结果不满意就在 plan 环节 edit。approve 后的版本即最终影响域报告。
先检查 Makefile,再从影响域报告补充。 用 Write 工具写入 .claude/.test-env:
Step 1 — 分析 Makefile(如有):
读取项目根目录的 Makefile,发现可用的测试相关 target 并映射为测试命令:
| Makefile Target | 含义 | 映射到 |
|---|---|---|
make check | 后端复合命令(lint+format+test) | UNIT_TEST_CMD |
make ui-check | 前端复合命令(lint+format+test) | E2E_TEST_CMD |
make test | 通用测试 | UNIT_TEST_CMD |
make test-e2e / make e2e | E2E 测试 | E2E_TEST_CMD |
规则:
make check)直接用,不需要拆分成单独的 lint/format/testmake check 和 make ui-check 可以同时存在(前后端全栈项目),分别映射到 UNIT_TEST_CMD 和 E2E_TEST_CMDStep 2 — 用影响域报告补充空位:
Makefile 未覆盖的字段,从影响域报告的「项目环境」段提取。
最终写入格式:
# Auto-generated by auto-issue
PROJECT_TYPE="<报告中的项目类型>"
SRC_DIRS="<报告中的源码目录>"
TEST_DIRS="<报告中的测试目录>"
UNIT_TEST_CMD="<Makefile 或 报告中的单元测试命令>"
INTEGRATION_TEST_CMD="<报告中的集成测试命令,无则留空>"
E2E_TEST_CMD="<Makefile 或 报告中的 E2E 测试命令,无则留空>"
如果项目没有 Makefile,全部从影响域报告提取,跳过 Step 1。
mkdir -p .claude/scripts
PLUGIN_DIR="$HOME/.claude/plugins/marketplaces/autoplug/plugins/auto-issue"
if [[ -f "$PLUGIN_DIR/skills/auto-issue/scripts/test-gate.sh" ]]; then
cp "$PLUGIN_DIR/skills/auto-issue/scripts/test-gate.sh" .claude/scripts/test-gate.sh
chmod +x .claude/scripts/test-gate.sh
else
# fallback: 兼容 skill 安装路径
find "$HOME/.claude" -path "*/auto-issue/scripts/test-gate.sh" -exec cp {} .claude/scripts/test-gate.sh \; 2>/dev/null \
&& chmod +x .claude/scripts/test-gate.sh \
|| echo "⚠️ 未找到 test-gate.sh,请确认 auto-issue plugin 已安装"
fi
调用 @autoissue-developer,传入:
## 任务
根据以下影响域报告实现功能:
<粘贴完整影响域报告>
## 要求
1. 严格按 TDD 流程:先写测试(Red)→ 实现(Green)→ 重构(Refactor)
2. 使用报告「项目环境」中的实际测试命令
3. 只修改影响域报告中列出的文件
4. 不要 git commit,编排器会统一处理
等待 @autoissue-developer 完成。 它的 SubagentStop hook 会自动运行 test-gate.sh 测试门。
异常处理:
bash .claude/scripts/test-gate.sh
通过 → 继续 3.2。失败 → 回 Phase 2。
对照影响域报告「测试策略」段,逐个验证每个列出的测试文件:
# 对每个测试文件路径执行:
test -f <路径> && echo "EXISTS" || echo "MISSING"
对存在的文件,检查是否包含实际测试代码:
grep -cE 'def test_|it\(|describe\(|test\(|TEST\(' <路径>
返回值 > 0 则包含测试。返回 0 → 文件存在但是空壳。
缺失或空壳的测试文件 → 回到 Phase 2,明确告知 developer 需要补充哪些测试。
调用 @autoissue-reviewer,传入:
## 需求
$ARGUMENTS
## 审查以下变更
请用 git diff 查看所有变更并审查。
⚠️ 关键:只传原始需求和变更指令,不要传入影响域报告、开发过程等任何中间信息。 reviewer 必须基于代码本身独立判断。
autoissue-reviewer 以 auto 模式运行,完成后自然返回。
处理审查结论:
拿到结论后,打印审查报告并提供对话式选项:
等待用户正常回复后执行对应操作。
✅ Issue 处理完成
📋 影响域: <摘要>
🧪 测试: <结果>
📝 Review: <结论>
变更已在工作区中(未提交)。你可以:
🎯 你只需要以下信息(忽略之前的分析和开发过程):
git status + git diff --stat)1. 暂存
git add <相关文件>
排除(不要 add): .env/.env.*/__pycache__//.claude//node_modules//*.log/.DS_Store/venv//.venv/
2. Commit
根据影响域报告的变更类型选择前缀:
| 变更类型 | 前缀 |
|---|---|
| 新功能 | feat |
| 修复 | fix |
| 重构 | refactor |
| 性能优化 | perf |
| 文档 | docs |
<type>(<scope>): <简短描述>
<详细描述>
影响域: <模块列表>
测试: <测试策略>
3. 推送 + 创建 PR
git push -u origin HEAD
gh pr create --title "<title>" --body "<body>"
如果传入的是 GitHub issue URL,用 gh issue view 获取编号,PR body 中用 Closes #<number> 关联。
PR Body:
## Summary
<1-3 句话>
## Changes
- <变更列表>
## Test Plan
- [ ] 单元测试
- [ ] 集成测试(如适用)
- [ ] E2E 测试(如适用)
Closes #<issue_number>
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 jarrett-au/autoplug --plugin auto-issue