Multi-Agent Init Skill
Initialize a multi-agent development system for the current project. Auto-detects project info, lets user choose agents, fills in placeholders, creates all files.
Supports two modes:
- 全新初始化:项目首次使用,生成全部所需文件
- 增量添加:已有部分 Agent,只生成新增的,不覆盖已有文件
Activation
User says any of:
- "初始化多智能体系统"
- "初始化多智能体"
- "添加智能体"
- "/multi-agent-init"
- "/multi-agent-init dev tester"(带参数,直接指定要生成的 Agent)
参数解析
Skill 支持命令行参数,格式:/multi-agent-init [agent1] [agent2] ...
支持的参数值(不区分大小写):
| 参数 | 对应 Agent |
|------|-----------|
| dev | 核心开发 |
| tester | 质量测试 |
| frontend | 前端开发 |
| pm | 产品经理 |
| designer | UI设计师 |
有参数时:直接使用参数指定的 Agent 列表,跳过 AskUserQuestion 选择步骤(Step 2 跳过)。
无参数时:走交互式选择流程(Step 2)。
示例:
/multi-agent-init dev tester → 只生成 dev + tester
/multi-agent-init pm designer → 只生成 pm + designer(增量添加到已有系统)
/multi-agent-init → 弹出交互选择界面
Step 0:检测已有状态
在探测项目信息之前,先扫描是否已有智能体文件:
ls .claude/agents/*.md 2>/dev/null
ls .claude/主智能体提示词.md 2>/dev/null
ls doc/plan.md 2>/dev/null
从已有文件名推断项目代号:提取任意 {代号}-xxx.md 中 - 前的部分(如 tuner-dev.md → 代号 tuner)。
根据扫描结果判断模式:
| 已有文件 | 模式 | 说明 | |---------|------|------| | 无任何 agent 文件 | 全新初始化 | 执行完整流程 Step 1-7 | | 有部分 agent 文件 | 增量添加 | 只生成新增 Agent + 更新 orchestrator 和 CLAUDE.md | | 已有全部所选 agent | 提示已存在 | 告知用户无需重复生成 |
Step 1:探测项目信息
前置检查
先确认项目目录中是否存在源代码文件:
ls {检查是否有源码文件,如 lib/ src/ app/ pages/ 目录,或 *.ts *.py *.java *.dart *.go *.rs 等源文件}
- 有源码 → 继续、探测项目信息
- 无源码(空项目) → 停止,告知用户:
当前项目目录中未检测到源代码,本 skill 适用于已有代码的项目。请先创建项目骨架(如 npm init / flutter create / mvn archetype:generate)后再运行 /multi-agent-init。
探测逻辑
自己读文件判断,不问用户:
| 信息 | 探测方式 |
|------|----------|
| 项目名称 | 读 pubspec.yaml / package.json / pom.xml / setup.py / Cargo.toml 的 name 字段,取不到则用目录名 |
| 语言 | 从源文件后缀判断(.dart→Dart, .ts/.tsx→TypeScript, .js→JavaScript, .java→Java, .py→Python, .go→Go, .rs→Rust) |
| 框架 | 从依赖判断(flutter→Flutter, react→React, vue→Vue, spring-boot→Spring Boot, django→Django, next→Next.js, nuxt→Nuxt) |
| 源代码目录 | ls 根目录找 lib/ src/ app/ pages/ 等 |
| 构建命令 | Flutter→~/flutter/bin/flutter analyze, npm→npm run build, mvn→mvn compile, 其他→根据框架推断 |
| 测试命令 | Flutter→~/flutter/bin/flutter test, npm→npm test, mvn→mvn test, 其他→根据框架推断 |
| 依赖安装命令 | Flutter→~/flutter/bin/flutter pub get, npm→npm install, pip→pip install -r requirements.txt, 其他→根据框架推断 |
| 项目路径 | pwd |
| 项目代号 | 增量模式从已有文件名推断;全新模式从项目名称取简短英文代号(小写),如 guitar-tuner→tuner, my-shop→shop, blog-api→blog |
确认与补充(必须执行)
探测完成后,必须用 AskUserQuestion 展示探测结果供用户确认:
{
"AskUserQuestion": {
"questions": [{
"question": "项目信息探测结果:\n- 项目名称:{结果}\n- 语言:{结果}\n- 框架:{结果 / ⚠️ 未检测到}\n- 源代码目录:{结果}\n- 构建命令:{结果 / ⚠️ 未检测到}\n- 测试命令:{结果 / ⚠️ 未检测到}\n- 依赖安装命令:{结果 / ⚠️ 未检测到}\n- 项目代号:{结果}\n\n以上信息是否正确?",
"header": "确认信息",
"multiSelect": false,
"options": [
{"label": "确认无误", "description": "使用以上探测结果继续"},
{"label": "需要补充或修改", "description": "手动修正部分字段"}
]
}]
}
}
- 用户选择 "确认无误" → 直接使用探测结果,继续 Step 2
- 用户选择 "需要补充或修改" → 追问用户要修改哪些字段及新值,更新探测结果后继续
- 有字段显示 ⚠️ 未检测到 → 提示用户通过"其他"手动输入该字段的值
Step 2:确定要生成的智能体
有命令行参数时
如果用户通过 /multi-agent-init dev tester 传了参数,直接解析参数为 Agent 列表,跳过下面的交互选择,直接进入 Step 3。
无参数时:交互选择
增量模式
已有 Agent 不出现在选项中(或标记为 ✅ 不可选),只让用户选缺少的角色。
执行逻辑:
- 扫描
.claude/agents/得到已有 Agent 列表 - 从 5 个角色中减去已有的,得到可新增列表
- 如果可新增列表为空 → 告知用户"所有 Agent 已存在,无需重复生成",结束
- 如果可新增列表 ≤4 个 → 一个 AskUserQuestion 搞定
- 如果可新增列表 = 5 个 → 拆成两个问题(同全新模式的写法)
示例(已有 dev + tester,可新增 frontend / pm / designer):
{
"AskUserQuestion": {
"questions": [{
"question": "已检测到已有 Agent:tuner-dev ✅ / tuner-tester ✅\n请选择要新增的智能体(可多选):",
"header": "新增Agent",
"multiSelect": true,
"options": [
{"label": "frontend 前端开发", "description": "页面、组件、动画、主题等 UI 层开发"},
{"label": "pm 产品经理", "description": "需求分析、任务拆解、输出 PRD 文档"},
{"label": "designer UI设计师", "description": "界面设计方案、交互规范、视觉标准"}
]
}]
}
}
全新模式或选项展示
拆分为两个问题(AskUserQuestion 最多 4 个选项):
问题1:开发测试类
{
"AskUserQuestion": {
"questions": [{
"question": "请选择开发测试类智能体(可多选):",
"header": "开发类",
"multiSelect": true,
"options": [
{"label": "dev 核心开发(推荐)", "description": "算法、业务逻辑、数据处理等核心代码开发"},
{"label": "tester 质量测试(推荐)", "description": "代码审查 + 静态分析 + PASS/FAIL 测试报告"},
{"label": "frontend 前端开发", "description": "页面、组件、动画、主题等 UI 层开发"}
]
}]
}
}
问题2:规划设计类
{
"AskUserQuestion": {
"questions": [{
"question": "请选择规划设计类智能体(可多选,不选则跳过):",
"header": "规划类",
"multiSelect": true,
"options": [
{"label": "pm 产品经理", "description": "需求分析、任务拆解、输出 PRD 文档"},
{"label": "designer UI设计师", "description": "界面设计方案、交互规范、视觉标准"}
]
}]
}
}
如果用户一个都没选,提示至少选一个。
Step 3:创建目录
mkdir -p .claude/agents
mkdir -p doc/test-reports
如果用户选了 designer,额外创建:
mkdir -p doc/design
增量模式下,如果目录已存在则跳过(mkdir -p 天然幂等)。
Step 4:读取模板并替换占位符
根据用户选择,只读取和生成对应的模板文件。
增量模式关键规则
- 已有文件不覆盖:如果
{代号}-dev.md已存在,即使选了 dev 也跳过,提示"已存在,跳过" - 只生成新增的:只读取和写入缺少的模板文件
- 始终更新:
主智能体提示词.md(因为 Agent 组合变了,编排逻辑需要同步)
可用模板映射
| 用户选择 | 模板文件 | 输出路径 |
|----------|---------|---------|
| dev 核心开发 | templates/dev-agent.md | .claude/agents/{代号}-dev.md |
| tester 质量测试 | templates/tester-agent.md | .claude/agents/{代号}-tester.md |
| frontend 前端开发 | templates/frontend-agent.md | .claude/agents/{代号}-frontend.md |
| pm 产品经理 | templates/pm-agent.md | .claude/agents/{代号}-pm.md |
| designer UI设计师 | templates/designer-agent.md | .claude/agents/{代号}-designer.md |
| (始终生成/更新) | templates/orchestrator.md | .claude/主智能体提示词.md |
| (始终生成/更新) | templates/orchestrator-teams.md | .claude/主智能体提示词-teams.md |
占位符替换表
| 占位符 | 替换为 |
|--------|--------|
| {项目名称} | 探测到的项目名称 |
| {代号} | 项目代号 |
| {源代码目录} | 探测到的源码目录(如 lib/ src/) |
| {构建命令} | 探测到的构建命令 |
| {依赖安装命令} | 探测到的依赖安装命令 |
| {项目路径} | pwd 结果 |
orchestrator 模板动态裁剪
生成 orchestrator 时,根据所有已有 Agent + 新选 Agent 的合集来调整内容:
- 读取
templates/orchestrator.md模板 - 替换所有基础占位符
- 在"任务执行循环"部分,根据完整 Agent 列表调整:
- 如果有 dev → 保留 Step 1-4 的 dev 调度逻辑
- 如果有 frontend → 在 Step 1 增加 frontend 调度选项
- 如果有 tester → 保留测试步骤和修正循环
- 如果没有 tester → 去掉测试步骤,开发完成后直接标记完成
- 如果有 pm → 在任务循环前增加"可选:PM 规划"步骤
- 如果有 designer → 在开发前增加"可选:Designer 出方案"步骤
Step 5:创建配置和文档
读取 references/file-formats.md,按其中的格式规范创建以下文件:
.claude/settings.local.json— 权限配置doc/plan.md— 空模板(仅 Task 0)doc/lessons-learned.md— 空文件doc/main-log.md— 启动日志
增量模式
settings.local.json:合并 permissions.allow 数组(不覆盖已有条目)doc/plan.md:不覆盖(已有任务进度)doc/lessons-learned.md:不覆盖(已有经验记录)doc/main-log.md:追加一行日志,如- {yymmdd hhmm} 增量添加 Agent: {新增列表}
Step 6:更新 CLAUDE.md
读取 references/claude-md-rules.md,按其中的规则将「多智能体工作流」章节追加或替换到目标项目的 CLAUDE.md。
增量模式
找到 CLAUDE.md 中的 ## 多智能体工作流 章节,替换为包含所有 Agent(已有 + 新增)的新版本。
全新模式
在 CLAUDE.md 末尾追加。
Step 7:验证环境
运行构建命令,确认零错误。
完成后输出
全新模式
多智能体系统已初始化完成:
项目:{名称} ({语言} + {框架})
已选Agent:{列出用户选择的Agent,如 tuner-dev / tuner-tester}
执行模式:Subagent 串行(默认) / Agent Teams 并行(见 .claude/主智能体提示词-teams.md)
任务数:待定(提需求后写入 doc/plan.md)
说"走编排流程"即可启动开发。
说"走编排流程"即可启动开发。
增量模式
智能体已增量更新:
新增:{新增的Agent列表,如 tuner-pm / tuner-designer}
已有(未变动):{已有的Agent列表,如 tuner-dev / tuner-tester}
已更新:主智能体提示词.md / CLAUDE.md
说"走编排流程"即可启动开发。
微信扫一扫