一键导入
bp-architecture-design
提供架构设计原则,包括模块划分、依赖管理、数据架构、接口设计。在系统设计阶段讨论方案概览时使用,或在 code review 中评估架构合理性时使用。
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
提供架构设计原则,包括模块划分、依赖管理、数据架构、接口设计。在系统设计阶段讨论方案概览时使用,或在 code review 中评估架构合理性时使用。
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
代码文件修改的统一入口。当用户请求任何代码变更(新功能、优化、Bug 修复、重构)时必须首先调用此 skill。仅适用于代码文件(如 .cc/.cpp/.h/.go/.py 等),修改 .md 等非代码文件时不需要调用。它会评估复杂度、检查 spec.md、生成 tasks.md、并逐个任务执行。
测试生成。基于 spec.md 或被测代码,生成单元测试、集成测试、性能测试。当用户请求生成测试、TDD 模式、或 workflow-code-generation 完成后触发。
将纠错经验沉淀为持久化的 Rules/Skills 更新,构建反馈闭环。当被用户纠正且错误具有模式性时自动触发,或通过 /reflect 命令手动触发回顾。
问题排查。当用户遇到编译错误、运行时异常、单测失败、流水线报错、现网告警等需要定位问题时触发。
代码评审。协调 5 个专项 reviewer subagent 对代码进行并行多维度审查。可由用户直接触发,也可由主 agent 加载后作为 Judge 执行。
需求澄清。只负责明确"要解决什么问题",生成 spec.md 的前三章节(背景、目标、需求)。禁止在本阶段讨论设计方案——设计是 workflow-system-design skill 的职责。
| name | bp-architecture-design |
| description | 提供架构设计原则,包括模块划分、依赖管理、数据架构、接口设计。在系统设计阶段讨论方案概览时使用,或在 code review 中评估架构合理性时使用。 |
使用场景:
workflow-system-designskill 在讨论 spec.md 4.1 方案概览 时加载本 skill。
架构设计的本质:在约束条件下,选择最优的 trade-off 来满足业务目标。
在提出架构方案前,确保已理解:
| spec.md 章节 | 要回答的问题 |
|---|---|
| 1. 背景 | 要解决什么问题?现状是怎样的? |
| 2. 目标 & 非目标 | 成功的标准是什么?什么不做? |
| 3.1 功能性需求 | 系统需要具备哪些能力? |
| 3.2 非功能性需求 | 性能、兼容性、可维护性约束? |
如果非功能性需求可以量化,尽量量化(如 p99 延迟 < 100ms),但不强制要求所有场景都能量化。
好的划分 = 减少协调成本 + 包含变化。
| 原则 | 说明 | 检查点 |
|---|---|---|
| 按功能域划分 | 围绕业务能力而非技术层 | 相关的代码是否在一起? |
| 高内聚 | 一起变化的代码放一起 | 修改一个功能要改几个模块? |
| 低耦合 | 模块间依赖最小化 | 模块能否独立理解和测试? |
| 明确所有权 | 每个模块有明确的数据和不变量 | 谁负责维护这块数据的一致性? |
// ✅ 明确的模块边界
namespace compaction {
// 公开接口
class CompactionScheduler { ... };
// 内部实现(不暴露)
namespace internal {
class CompactionTask { ... };
}
}
层次结构(从高到低):
依赖原则:高层依赖低层,依赖抽象接口而非具体实现
| 规则 | 说明 |
|---|---|
| 单向依赖 | 只能向下依赖,禁止向上依赖 |
| 禁止循环 | A→B→C→A 必须打破 |
| 依赖抽象 | 依赖接口而非具体实现 |
数据决策决定正确性和运维复杂度。
| 决策点 | 需要明确 |
|---|---|
| 数据所有权 | 哪个模块是这份数据的 source of truth? |
| 一致性模型 | 强一致 vs 最终一致? |
| Schema 演进 | 向前/向后兼容?回滚方案? |
架构层关注接口原则,详细设计参见
bp-component-design的 4.2.2 节。
| 原则 | 说明 |
|---|---|
| 最小化 | 只暴露必要的接口 |
| 不泄露内部 | 使用专用 DTO |
| 版本兼容 | 接口变更需考虑向后兼容 |
| 场景 | 加载 Skill |
|---|---|
| 涉及网络通信、多节点、一致性、故障恢复 | bp-distributed-systems |
| 涉及类/接口详细设计 | bp-component-design(4.2 节使用) |
在 spec.md 4.1 节,确认以下内容已讨论:
| 反模式 | 改进 |
|---|---|
| 循环依赖 (A→B→C→A) | 引入接口打破循环 |
| 边界模糊(多模块修改同一份数据) | 明确数据所有权 |
| 过度抽象 | 简单优先,按需抽象 |
| Big Ball of Mud | 逐步引入边界 |