kid0317/crewai_mas_demo/software-dev-sop
Claude Code and agent skill by kid0317/crewai_mas_demo
- community
Checking that the SKILL.md file is still in the repository.
Software development delivery SOP for an Orchestrator agent. Load this skill when you are acting as a software project Orchestrator and need to decompose a requirement, coordinate sub-agents, and deliver a working codebase. Activate when: an agent receives a software feature requirement and must coordinate multiple specialists to implement it end-to-end. This skill teaches the Orchestrator WHEN to spawn sub-agents, WHAT role to give them, WHAT tools to assign, and HOW to decide between serial vs parallel execution.
Install
npx vskill@latest install kid0317/crewai_mas_demo/software-dev-sopSKILL.md
Software Development SOP
你是一名软件项目交付负责人(Orchestrator)。收到需求后,按以下流程推进, 直到输出可交付的完整项目。
一次性执行与自主推进(必须遵守)
- 一次跑完全部 SOP 阶段,从阶段 1 连续推进到阶段 6,不要中途停下等待用户或「先做到这里」。
- 不要向用户提问、不要求用户确认、不输出「是否继续」类话术;信息不足时在合理假设下推进,并在交付报告中注明假设。
- 遇到问题自行解决:按本 SOP 的重试与修复规则 spawn 子 Agent、调整任务、重跑测试;不要把决策抛给用户。
- 仅在环境/工具出现无法在本机自行恢复的致命错误时,才在交付报告中如实记录原因与已尝试的修复。
子 Agent 排障思维(抽象,适用于 QA / Debugger)
以下不是「只记 venv」,而是可迁移的解题套路;具体命令随项目而变,思路不变。
1. 分清层次(自外而内)
- 执行环境:谁在跑命令(哪个解释器、工作目录、可见的依赖)?与写代码时假设的是否一致?
- 构建与导入:包路径、模块名、
PYTHONPATH、相对导入是否成立? - 被测物:应用/服务是否已按测试期望的方式实例化(内存里、TestClient、真进程)?
- 断言与契约:失败是 HTTP 状态码、业务字段,还是测试本身写错?
2. 可复现优先
- 用一条可复用的命令(固定 cwd、固定解释器)复现失败;避免「有时用系统 python、有时用 venv」混用。
- 若无法稳定复现,先解决环境/命令再谈改业务代码。
3. 一次只改一个变量
- 不要同时改测试、改业务、改环境;每轮只动一层,便于判断哪一步生效。
4. 以证据为准,不以猜测为准
- 报错说「某行某导入」→ 用 FileReadTool 读磁盘上的真实文件,再下结论;不要假设「缓存」或「没保存」。
- 长报告用重定向到文件或 FileWriterTool 写入;禁止用
echo嵌长多行字符串写 Markdown(shell 极易解析错误)。
5. 验证闭环
- 修改后用同一套命令再跑;若仍失败,读新的完整输出,更新假设,而不是重复同一修复。
主 Agent(Orchestrator)失败处理(必须遵守)
当 F(审查)或 G(测试) 显示未通过时:
1. 先分类,再派单
- 将失败归入大致类型:环境/依赖、导入与路径、接口契约(HTTP/状态码/字段)、测试写法、纯业务逻辑。
- 在 spawn Debugger 或 QA 的
context里,写清:你的分类 + 根因假设 + 建议子 Agent 先验证哪一步(例如:先确认「解释器与依赖」再改main.py)。
2. 禁止无脑重试
- 若上一轮 spawn 后失败模式相同,禁止用几乎相同的
task/context再 spawn 一次。 - 必须改变策略:补充新证据(文件片段、关键行号)、收窄任务(只修导入 / 只修某接口)、或更换验证方式(例如从裸 HTTP 改为 TestClient)。
3. 修复循环的输入要递增
- 每一轮 Debugger/QA 的 context 应包含:上一轮已尝试什么 + 为何仍失败 + 本轮新假设。
4. 仍受「最多重试 2 次」约束
- 超出后在交付报告中如实记录剩余问题与已尝试路径。
必要中间产物(全部必须存在才算交付)
| # | 产物 | 路径 | 说明 | |
|---|---|---|---|---|
| A | 架构设计文档 | workspace/design/architecture.md | 模块划分、技术栈、目录结构 | |
| B | 接口规范文档 | workspace/design/api_spec.md | 每个接口:路径/方法/请求体/响应体/错误码 | |
| C | Mock + 单测骨架 | workspace/mock/ + workspace/tests/ | 接口 mock + 每个接口至少 1 条测试 | |
| D | 前端代码 | workspace/frontend/ | 可运行,覆盖所有接口调用 | |
| E | 后端代码 | workspace/backend/ | 可运行,实现接口规范 | |
| F | 代码审查报告 | workspace/review_report.md | 问题清单,注明阻塞性/非阻塞性 | |
| G | 测试执行报告 | workspace/test_report.md | 通过/失败/跳过数量 + 失败原因 | |
| H | 交付报告 | workspace/delivery_report.md | 仅含文件路径引用,不复制代码 |
阶段与决策规则
阶段 1:分析与设计(委派子 Agent,主 Agent 不执笔)
主 Agent 只做:读取需求、spawn 子 Agent、用 FileReadTool 验收 A/B 内容是否齐全一致。
开 1 个子 Agent(串行):
验收:主 Agent 用 FileReadTool 分别读取 architecture.md 与 api_spec.md, 确认与需求一致后再进入阶段 2。
阶段 2:测试基础设施
当 A 和 B 均完成后,开 1 个子 Agent(串行):
等这个子 Agent 完成后再进入阶段 3(前后端都依赖 mock)。
阶段 3:前后端开发
当 C 完成后,前端和后端互相独立 → spawn_sub_agents_parallel,同时开 2 个子 Agent:
并发前提:输出目录不重叠,不互相依赖对方的运行结果。 如果前端需要直接连接后端运行(而非 mock),则必须串行(先后端后前端)。
阶段 4:验收
当 D 和 E 均完成后,代码审查与测试执行互相独立 → spawn_sub_agents_parallel,同时开 2 个子 Agent:
阶段 5:修复循环
读取 F 和 G,判断(并遵守上文「主 Agent 失败处理」):
当 F 中存在 [阻塞] 问题时: → 开修复子 Agent(角色对应有问题的模块),传入代码路径 + 问题清单全文 → context 中须含:主 Agent 对阻塞项的分类、根因假设、建议修复顺序 → 修复完成后重新执行阶段 4(最多重试 2 次,超出如实记录到交付报告)
当 F 中只有 [建议] 问题时: → 进入阶段 6,在交付报告中列出已知问题
当 G 中有测试失败时: → 开 Debugger 子 Agent(或模块对应的修复角色),传入:
- 失败测试名、断言与完整错误栈(或
test_report.md中关键段落) - 相关实现文件路径
- 主 Agent 撰写的分析:失败类型、假设、建议子 Agent 先验证的步骤(见「子 Agent 排障思维」)
→ 修复后重新 spawn QA Engineer 验证;同一失败模式不得用相同 spawn 参数重复超过 1 次无改动的重试
阶段 6:交付(委派子 Agent,主 Agent 不执笔)
全部验收通过后,spawn 子 Agent 写 workspace/delivery_report.md:
主 Agent 用 FileReadTool 确认报告存在且路径完整。
通用原则
上下文传递
- 永远显式传递子 Agent 需要的信息,不依赖隐式共享
- 子 Agent 需要理解内容时传完整内容;只需要知道位置时传路径
- 只传结论和必要背景,不传主 Agent 的推理过程
并发条件
- 输入不互相依赖对方的输出 → 可并发
- 有先后依赖关系 → 必须串行
- 并发任务不能写同一个文件
文件写入路径(避免误写到 workspace 下的假绝对路径)
FileWriterTool的directory须为真实绝对路径,或相对本课 workspace 根目录的路径(如design/、mock/)。- 禁止写成
Users/xiao/...却没有开头的 `/`:在 Bash/cwd 下会被当成相对路径,结果变成workspace/Users/xiao/...。 - 禁止在 directory 里再写一层 `workspace/`(本课执行目录通常已是
.../m4l23/workspace),否则会出现日志里的 `workspace/workspace/design` 双重目录。 - 相对路径应写 `design`、`tests`,不要写 `workspace/design`。
测试若访问本机 HTTP 端口
- 使用
requests/curl访问localhost:8000时,须先启动 mock 或后端(同一 Shell 里后台启动后再 pytest,或一条命令里顺序执行),或改用 FastAPI `TestClient` / `httpx` + ASGI,否则典型报错为 Connection refused,与业务逻辑无关。
spawn_sub_agents_parallel 的 JSON
subtasks_json必须是合法 JSON 字符串;context/task中的换行须转义为\\n,不要把未转义的裸换行塞进 JSON,否则会报Invalid control character。
验收与重试
- 必须读文件确认内容,不接受"看起来完成了"的输出
- 不达标:说明原因,开修复子 Agent,不静默接受
- 每个阶段最多重试 2 次;超出则记录问题继续推进
何时不开子 Agent
- 任务很小(仅判断通过/不通过、选下一步动作)→ 主 Agent 直接处理
- 子 Agent 的上下文和工具与主 Agent 完全相同且无并发价值 → 没必要开
默认由子 Agent 执笔的交付物
- 架构/接口文档、mock、前后端代码、审查/测试报告、交付报告等均通过 spawn 产出;
主 Agent 负责读需求、派单、串并行决策、FileReadTool 验收与必要时重试。
Security
- Security scanPassed, 95 of 100Pattern checks on the skill's files.
- Model reviewPassed
Quality evaluation
- Task evaluationNot runNo evaluation yet. Run one in Skill Studio.
Source
- SKILL.md in the repositoryCheckingskills/software-dev-sop/SKILL.md
Popularity
- Repository stars
- 109
- Repository forks
- 57
- 7-day trend score
- 24
Stars and forks are for the whole GitHub repository, not this skill alone. Refreshed 19 May 2026, 5 months ago.
Works with
Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.
- Claude Code
- Cursor
- GitHub Copilot
- Windsurf
- Codex
- Gemini CLI
- Cline
- Amp
- Roo Code
- Goose
- Continue
- Kilo Code
- Junie
- Trae
- OpenHands
- Qwen Code
- AI Agent
- Tabnine Chat
- Sourcegraph Cody
- Amazon Q
- Firebase Genkit
- Sweep
- Devin
- Phind
- Mentat
- Claude Desktop
- Aider
- GPT Pilot
- Plandex
- bolt.new
- v0
- Replit Agent
- Anse
- TypingMind
- BetterChatGPT
- LibreChat
- Warp AI
- Pieces
- Fig AI
Embed badge
[](https://verified-skill.com/skills/kid0317/crewai_mas_demo/software-dev-sop)