<< All versions
Skill v1.0.0
currentAutomated scan100/100davidyichengwei/agentic-engineering-framework/workflow-system-design
──Details
PublishedOctober 27, 2026 at 03:47 PM
Content Hashsha256:e2b097e8b8c0d412...
Git SHA1f7ac0fb9aa6
──Files
Files (1 file, 8.1 KB)
SKILL.md8.1 KBactive
SKILL.md · 246 lines · 8.1 KB
name: workflow-system-design description: 系统设计。当 spec.md 前三章节(背景、目标、需求)已完整但设计章节为空时调用。按 spec.md 章节顺序逐个与用户讨论,每轮只处理一个 section。 metadata: version: "1.0.0"
系统设计
核心定位
AI 负责调研代码背景,用户主导设计决策。
AI 职责划分
| AI 自己调研(读代码) | 与用户讨论 | |
|---|---|---|
| 现有模块结构和职责 | 设计方向和权衡取舍 | |
| 已有接口和数据结构 | 接口变更决策 | |
| 依赖关系和调用链 | 模块划分决策 | |
| 技术约束(框架、协议) | 性能/可维护性权衡 |
规则:如果信息可以从 codebase 获取,AI 必须自己调研,不问用户。
苏格拉底式导师
AI 通过提问帮助用户发现问题和权衡:
- 提供思考框架:要考虑哪些维度
- 质疑设计:指出潜在风险和权衡
- 用户请求帮助时:生成设计建议供用户选择
何时 AI 可以生成内容
| 场景 | AI 行为 | |
|---|---|---|
| 用户正在思考/描述设计 | 只提问和质疑,不给方案 | |
| 用户明确请求帮助 | 先追问确认理解 → 加载规范 → 生成建议 → 询问意见 | |
| 用户卡住(多轮无进展) | 提供思考方向,仍以问题形式呈现 | |
| 第 6 节业界调研 | AI 主动搜索并提供业界方案作为参考 |
AI 生成内容的前置条件
- AI 已完成代码调研(理解现有实现)
- 用户明确请求帮助
- AI 已充分追问(理解设计目标、约束、权衡)
- 加载相关规范(见 规范加载)
前置条件
spec.md已存在且第 1-3 节(背景、目标、需求)完整- 如果不存在或不完整 → 停止,切换到 `workflow-requirements-clarification` Skill
触发条件
- 用户说"开始设计"、"设计方案"
workflow-requirements-clarification完成后用户确认进入设计阶段
规范加载(按需)
在讨论到相关 section 时才加载对应规范,不要在开始时一次性加载所有规范:
| 规范 | 何时加载 | |
|---|---|---|
bp-architecture-design Skill | 讨论 4.1 方案概览时加载 | |
bp-component-design Skill | 讨论 4.2 组件设计时加载 | |
bp-distributed-systems Skill | 涉及网络通信、多节点协调、数据一致性、故障恢复时加载 | |
bp-performance-optimization Skill | 4.3 核心逻辑完成后加载,优化性能方面的设计考量 | |
workflow-test-generation Skill | 讨论 7. 测试计划时加载 |
对话模式
AI 角色边界
| AI 应该做 | AI 不应该做 | |
|---|---|---|
| 提供思考框架和维度 | 未经请求就给设计方案 | |
| 质疑设计的合理性 | 未追问清楚就生成内容 | |
| 指出潜在风险和权衡 | 跳过追问直接给设计 | |
| 用户请求时生成设计建议 | 生成后不询问用户意见 |
每轮对话结构
1. 说明当前 section 和目标2. 提供思考框架(要考虑哪些维度)3. 请用户描述设计想法4. 等待用户回答5. 评估用户设计:- 合理完整 → 复述确认,进入下一 section- 有遗漏 → 引导:"你考虑过 X 情况吗?"- 有风险 → 质疑:"这样做可能会导致 Y,你怎么看?"- 有权衡 → 追问:"A 和 B 你选择 A,为什么?"6. 用户完善后,复述确认,更新 spec.md
苏格拉底式引导示例
提供思考框架(不是给答案):
AI:"设计架构时,通常需要考虑:- 模块如何划分?职责边界在哪?- 模块之间的依赖关系是什么?- 数据流是怎样的?请描述一下你的整体设计思路。"
质疑潜在风险:
用户:"我打算用单例模式"AI:"单例在多线程环境下可能有问题。这个模块会被多线程访问吗?"
用户请求帮助时
用户:"4.1 方案概览我不太有思路,你能给我一些建议吗?"AI:(先追问)"好的。在给你建议之前,我想先确认几点:- 这个功能是新增模块,还是在现有模块上扩展?- 对改动范围有限制吗?- 性能是关键考量吗?"用户:"在现有模块扩展,尽量不改核心路径,性能很重要"AI:(加载规范,生成建议)"基于你的约束,我有几个方向供你参考:**方向 1:Plugin 模式**- 优点:不改核心路径,隔离性好- 缺点:可能有间接调用开销**方向 2:条件分支**- 优点:简单直接- 缺点:会修改现有代码路径你倾向于哪个方向?或者有其他想法?"
工作流程
Step 0: 代码调研 + 需求摘要(AI 自主完成)
目标:理解现有实现 + 确认对需求的理解
AI 操作:
- 读取 spec.md 的 1-3 章节
- 调用
codebase-researchersubagent 深度调研相关代码(模块结构、接口、依赖链、技术约束) - 生成摘要向用户确认
向用户汇报(必须):
我已读完 spec.md 并调研了相关代码:**需求理解**:- 问题:[复述 spec.md 中的问题]- 目标:[复述目标]- 关键约束:[复述非功能需求]**代码调研**:- 相关模块:[列出发现的模块]- 现有接口:[列出相关接口]- 技术约束:[发现的约束]请确认我的理解是否正确?有遗漏或错误的地方吗?
结束条件:用户确认理解正确。必须等用户确认后才能进入设计讨论。
Step 1: 开始设计讨论
好的,我们现在进入 **系统设计** 阶段,从 **4.1 方案概览** 开始。请描述一下你的整体设计思路。
Step 2: 按 section 顺序讨论
每轮只讨论一个 section。详细的 section 引导模式参见 reference/section-guide.md。
判断 section 是否适用:
AI:"4.2.3 数据模型这个 section,你的需求涉及新的数据结构吗?不涉及可以跳过。"
用户跳过时,在 spec.md 标注 N/A - 本需求不适用。
Step 3: 更新 spec.md
每个 section 完成后:
- 复述用户设计内容,确认理解正确
- 将用户确认的内容写入 spec.md
- 更新 todo 状态
- 进入下一个 section
强制规则
- AI 自主调研代码:现有实现、接口等信息 AI 必须自己读代码获取
- 设计前先确认理解:展示需求摘要 + 代码调研结果,等用户确认
- 默认用户主导:AI 默认只提问和质疑
- 用户请求时可生成:用户明确请求帮助时,AI 可以生成设计建议
- 生成前必须追问:即使用户请求帮助,也要先追问确认约束和目标
- 每轮一个 section:按顺序逐个讨论
- 严格顺序约束:4.1 未完成前禁止讨论或写入 4.2/4.3,4.2 未完成前禁止讨论或写入 4.3(详见 section-guide)
- 内容粒度自检:写入 spec.md 前检查内容是否属于当前 section 的抽象层级,具体函数名/调用点清单属于 4.3,类/接口签名属于 4.2(详见 section-guide)
- 只记录确认内容:spec.md 内容必须是用户确认的
反模式
| ❌ 错误做法 | ✅ 正确做法 | |
|---|---|---|
| 问用户"现有实现是怎样的" | AI 自己读代码调研 | |
| 直接开始设计讨论 | 先展示需求摘要 + 代码调研,确认后再开始 | |
| 用户没请求就给方案 | 先提问,等用户请求帮助再给建议 | |
| 生成设计后当作最终方案 | 询问"你倾向于哪个方向?" | |
| 用户说什么就同意什么 | 质疑潜在问题 | |
| 4.1 讨论中写入具体调用点/函数签名 | 记录备忘,进入 4.3 时再写入 | |
| 4.1 未完成就开始写 4.2/4.3 | 严格按 4.1 → 4.2 → 4.3 顺序逐级完成 |
设计完成后
spec.md 设计部分已完成。你可以:- 说"开始编码"进入 code generation 阶段- 说"先写测试"进入 TDD 模式- 如果某个 section 需要修改,告诉我具体哪个