mcpField
A
architect

architect

github.com/hachej开发160 次安装3 天前更新
代码仓库

关于 architect

architect 是先设计软件结构、再按综合设计草图实现的技能。它要求结合现有系统确立设计依据,并在实现反复暴露结构问题时重新设计。

主要功能

  1. 01结合现有系统建立设计依据
  2. 02先绘制类型与模块边界草图
  3. 03综合结构不同的设计方案
  4. 04依据选定草图实现
  5. 05发现反复受阻时重新设计

适用场景

  1. 01规划涉及现有子系统的改动
  2. 02比较不同模块与接口设计
  3. 03重做反复妨碍实现的设计草图

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/hachej/boring-stack --skill architect

安装后在 Claude Code 中输入/architect确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

LICENSE
references/
design-red-flags.md
rationale-template.md
runner-prompt.md

详细介绍

Architect

先设计,再实现。使用 not implemented 函数体和伪代码,勾勒类型、函数签名、类结构和模块边界。综合多个模型视角,然后依据选定的草图补全代码。如果实现证明草图有误,就舍弃草图并重新设计。

开始

开始前,创建一个待办列表,每个阶段对应一项。

  1. Ground
  2. Sketch
  3. Agree
  4. Implement
  5. Scrap

阶段 A:摸清问题

针对新代码涉及的每个系统,建立准确的心智模型。对相关子系统运行 how 技能。

仅仅说出文件名不算摸清情况。产出 how 规定的追踪模型。如果设计会重新定义所有权或分层,还要对现有结构运行 why 技能,让设计依据成为约束,而不是猜测。

只有当工作确实是全新开发,且无需集成到周边系统时,才跳过阶段 A。

阶段 B:草拟设计

使用设计草图任务和阶段 A 的摸底材料运行 arena 技能。将 references/runner-prompt.md 作为每个执行器的提示词。每个候选方案都应按照 references/rationale-template.md 的结构生成设计包。

使用 pstack-models.mdc 规则中 architect runners 行列出的执行器,替代 arena runners 行。如果规则或该行缺失,则使用 claude-opus-5-5-max、gpt-5.6-sol-max、grok-4.7-xhigh-fast。别名和被拒绝的条目遵循 arena 技能阶段 A 中的执行器规则。

设计两次。综合之前,至少要有两个结构上彼此不同的候选方案,即使第一个看起来已经足够。这是将 exhaust-the-design-space 原则技能具体落实。应提出整体结构不同的替代方案,而不是只在同一结构内做局部修补。

综合前,使用 references/design-red-flags.md 检查每个候选方案。对浅层模块、信息泄漏、按时间分解和透传方法予以拒绝或修订。

比较可行候选方案的接口深度。优先选择能以更小、更简单的公共接口隐藏更多复杂性的设计。丰富的接口可以集中能力,而不是将能力分散到多个层中,从而缩短调用链。

Arena 会返回一个综合后的设计包。综合决策应填写到 rationale 的 “Synthesis decision” 部分。

阶段 C:达成一致(可选)

默认情况下,直接使用综合后的设计进入实现阶段,无需人工检查点。

仅当调用者明确提出要求时,才启用检查点,例如:“/architect with checkpoint”、“stop and show me before implementing” 或类似表述。然后展示综合后的设计并暂停,等待确认。

无论如何,综合成果都可以单独作为一个提交,采用 foundational-thinking 原则技能中的“先搭脚手架”模式。根据 outcome-oriented-execution 原则技能,在补全过程中有计划且范围明确的破坏性变更是可以接受的。若要在实现前对设计施加对抗性压力,可对综合后的草图运行 interrogate 技能。

如果用户在检查点期间或事后对设计结构提出异议,应将其视为阶段 A 的证据。重新摸清情况并重新运行阶段 B,然后再编写更多代码。

阶段 D:依据草图实现

将 not implemented 函数体替换为代码,将伪代码替换为实际逻辑。综合后的草图就是契约。

偏离草图的情况是值得提出的信号,而不是可以悄悄消化的阻力。如果某个函数需要草图未预料到的参数,应询问:是草图有误、遗漏了需求,还是实现范围越界?

阶段 E:架构错误时推倒重来

如果实现过程中不断出现草图无法消化的阻力,就推倒草图重来。不要在错误的设计上不断打补丁,遵循从第一性原理重新设计和修复根本原因原则技能。

信号在于模式,而非个别情况。迹象包括:

  • 在互不相关的代码中反复出现相同形式的变通方案。
  • 多个互不相关的边缘情况都需要特殊分支。
  • 类型必须借助逃生通道(any、类型转换、实际上总是设置的可选字段)才能通过编译。
  • 草图明明说状态并非共享,却下意识觉得“我们需要一把锁”。
  • 调用方必须了解抽象的内部规则才能使用它。
  • 实现中出现两个或更多形态相同的独立阶段 D 偏差。

酌情判断。少数边缘情况并不能说明架构有问题。有些问题确实很复杂。数据复杂,不等于设计复杂。

推倒重来时:

  1. 针对已构建的内容,重新运行how技能。
  2. 按照从第一性原理重新设计的原则,假设新约束从第一天起就已确定,然后重新设计。
  3. 遵循先删减,再添加原则技能,先删减,再添加。新草图在扩展之前应比旧草图更精简。
  4. 返回阶段 B,重新运行 arena。

产出

先写出调用方的用法,再据此推导类型草图。小改动只需一个包含新类型和签名的文件。较大的改动则需要模块映射和类型定义。随附的设计依据应按照 references/rationale-template.md 编写,其中包括用法草图和综合决策。

评论

支持 Markdown