用途
该技能用于从功能需求出发,设计模块化的高层架构,并为每个模块产出完整的设计文档。它适用于设计新系统、创建模块化架构等场景。所有架构决策均应用 Balanced Coupling(平衡耦合)模型,该模型从 balanced-coupling 技能预加载。
主要能力
- 读取功能需求文件,将需求重新表述并组织为内聚的功能领域。
- 通过交互式提问澄清需求中影响耦合决策的模糊点,包括领域分类、组织约束、战略方向和集成需求。
- 使用 DDD 子域(核心 / 支撑 / 通用)对领域区域进行分类,以确定波动性和设计投入方向。
- 识别高层模块、职责及模块间集成,并从集成强度、距离、波动性三个维度评估耦合。
- 应用平衡规则:BALANCE = (STRENGTH XOR DISTANCE) OR NOT VOLATILITY。
- 标记不平衡耦合,如高强度 + 高距离(分布式单体风险)或低强度 + 低距离(低内聚 / 大泥球风险),并给出重新平衡的具体建议。
- 为每个模块编写设计文档、测试规格,并编写整体架构文档。
- 进行模块化评审,识别关键、重大和次要问题,并在用户批准后更新受影响的设计文档。
使用方式
技能通过 6 个步骤执行,每步都需要用户明确批准后才能进入下一步:
- 理解需求:读取功能需求文件,重新表述需求,发现耦合感知设计所需的缺失信息,通过 AskUserQuestion 逐个提问。对领域区域进行 DDD 子域分类并以表格呈现,请用户验证。最后呈现完整理解供用户确认。
- 设计模块化架构:识别高层模块、职责和集成,分类波动性,评估三个维度的耦合,应用平衡规则,标记不平衡耦合并给出重新平衡建议。以表格呈现耦合评估,请用户批准。
- 编写模块设计文档:为每个模块创建
docs/design/!date +%Y-%m-%d/{module-name}/design.md,包含功能职责、封装知识、子域分类、集成契约、变更向量。全部写完后请用户审阅。 - 编写模块测试规格:为每个模块创建
docs/design/!date +%Y-%m-%d/{module-name}/tests.md,包含单元测试、集成契约测试、边界测试、行为测试,每个测试包含测试名称、场景和预期行为。 - 编写架构文档:创建
docs/design/!date +%Y-%m-%d/architecture.md,包含功能需求摘要、模块地图、模块协作方式、耦合评估、设计决策与权衡、未解决风险。 - 模块化评审:映射每个集成,评估三个维度,应用平衡规则,标记不平衡且波动性高的集成,按严重程度分类(关键 / 重大 / 次要)。若存在关键或重大问题,呈现给用户并提出具体修改,用户批准后更新受影响文档,重复评审直到无关键或重大问题。次要问题记录在架构文档的“未解决风险”部分。
交互规则:始终使用 AskUserQuestion 获取用户输入;一次只问一个问题;优先提供 2-4 个具体选项的多选题;使用不超过 12 字符的短标题;工具自动提供“Other”自由文本选项。
适用场景
- 设计新系统的高层架构。
- 创建模块化架构并需要为每个模块产出设计文档。
- 需要基于 Balanced Coupling 模型评估和优化模块间耦合。
- 需要为模块编写测试规格和整体架构文档。
限制
- 需要提供功能需求文件的路径,否则无法继续。
- 每个步骤都需要用户明确批准,不能自动跳过。
- 遇到任何不明确之处必须停止并询问用户,不得假设。
- 不得仅从单一维度评估耦合,必须同时考虑强度、距离和波动性。
- 不得建议“全部解耦”,这会忽略强度与距离之间的平衡。
- 需区分本质波动性与偶然波动性;高提交频率可能表示设计不佳而非领域波动。
- 需考虑距离的组织维度:相同代码结构 + 不同团队 = 更高的有效距离。
- 每条建议都必须基于模型,引用具体维度和原则。
- 关于收费、价格、平台支持等信息暂未提供。