kid0317/crewai_mas_demo/software-dev-sop

Claude Code and agent skill by kid0317/crewai_mas_demo

Trust tier 3
  • community
Source check pending

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-sop

SKILL.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每个接口:路径/方法/请求体/响应体/错误码
CMock + 单测骨架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(串行):

role: "Architecture Designer"
tools: FileWriterTool
context: requirements.md 的完整内容(直接传内容,不传路径)
task: 1. 写 workspace/design/architecture.md(模块、技术栈、目录结构)
2. 写 workspace/design/api_spec.md(RESTful:路径/方法/请求/响应/错误码)
output: workspace/design/architecture.md(主产物路径;api_spec 必须在同目录一并写出)

验收:主 Agent 用 FileReadTool 分别读取 architecture.md 与 api_spec.md, 确认与需求一致后再进入阶段 2。


阶段 2:测试基础设施

当 A 和 B 均完成后,开 1 个子 Agent(串行):

role: "Mock Engineer and Test Skeleton Writer"
tools: FileWriterTool
context: api_spec.md 的完整内容(直接传内容,不传路径)
task: 1. 创建接口 mock server
2. 为每个接口写至少 1 条单测骨架(happy path)
output: workspace/mock/ 和 workspace/tests/

等这个子 Agent 完成后再进入阶段 3(前后端都依赖 mock)。


阶段 3:前后端开发

当 C 完成后,前端和后端互相独立 → spawn_sub_agents_parallel,同时开 2 个子 Agent:

子 Agent 1:
role: "Frontend Developer"
tools: FileWriterTool
context: architecture.md 内容 + api_spec.md 内容 + mock 目录路径
task: 实现前端页面,调用 mock 接口,支持需求中的所有操作
output: workspace/frontend/
子 Agent 2:
role: "Backend Developer"
tools: FileWriterTool, BashTool
context: architecture.md 内容 + api_spec.md 内容
task: 实现后端接口,与 api_spec 完全对应
output: workspace/backend/

并发前提:输出目录不重叠,不互相依赖对方的运行结果。 如果前端需要直接连接后端运行(而非 mock),则必须串行(先后端后前端)。


阶段 4:验收

当 D 和 E 均完成后,代码审查与测试执行互相独立 → spawn_sub_agents_parallel,同时开 2 个子 Agent:

子 Agent 1:
role: "Code Reviewer"
tools: FileReadTool
context: architecture.md + api_spec.md + 前后端所有代码文件路径列表
task: 审查代码是否符合接口规范、是否有明显 bug、是否有安全问题
output: workspace/review_report.md(问题列表,注明 [阻塞] / [建议])
子 Agent 2:
role: "QA Engineer"
tools: BashTool, FileReadTool
context: 测试文件路径 + 后端代码路径 + 启动命令
task: 运行所有单测,输出结果(若测试依赖 HTTP,须先起服务或用 TestClient,见上文「测试若访问本机 HTTP 端口」)
output: workspace/test_report.md(通过/失败/跳过数量 + 失败原因)

阶段 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:

role: "Delivery Writer"
tools: FileWriterTool
context: 主 Agent 提供的:需求摘要 + 各中间产物路径列表 + 验收结论(通过/未通过项)
task: 写 delivery_report.md,仅文件路径引用,不复制代码
output: 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

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
vskill VERIFIED badge
[![vskill VERIFIED](https://verified-skill.com/api/v1/skills/kid0317/crewai_mas_demo/software-dev-sop/badge)](https://verified-skill.com/skills/kid0317/crewai_mas_demo/software-dev-sop)

Something wrong with this skill or its page? Tell us.