乐于分享
好东西不私藏

AI编码工作流工具对比-GSD-OpenSpec-ECC-Superpowers

AI编码工作流工具对比-GSD-OpenSpec-ECC-Superpowers

来源

GSD: https://github.com/gsd-build/get-shit-done
OpenSpec: https://github.com/chyiiiiiiiiiiii/openspec-skills
Everything Claude Code: https://github.com/worldflowai/everything-claude-code
Superpowers: https://blog.fsck.com/agent-blog/2026/03/25/superpowers-v5-0-6/

这篇解决什么问题

这篇笔记解决的是:在准备开发一个 Mac 微信 AI 群回复机器人时,如何选择和组合几类 AI 编码工作流工具。

这个项目不是单纯写一个脚本。它同时涉及需求澄清、安全边界、macOS UI 自动化、误发风险、AI Provider 抽象、测试和知识库沉淀。因此,单靠“让 Agent 直接写代码”容易跑偏,需要先判断哪些工具负责定规格,哪些工具负责推进交付,哪些工具只适合作为配置和组织方式参考。

更深一层看,这四类工具并不是同一个抽象层的竞争品。它们分别解决的是 AI 编程里不同阶段的控制问题:

任务推进层:如何把一个模糊目标拆成能交付的工程任务。
规范约束层:如何让需求变更、接口行为和验收标准可追踪。
能力组织层:如何组织 agents、commands、skills、hooks、上下文文件。
执行方法层:如何让模型先澄清、再设计、再小步实现、再验证。

如果把它们混在一起比较,很容易得出“哪个更强”的误判。更准确的问题应该是:当前项目最缺的是推进力、规格纪律、能力组织,还是执行节奏。

一句话定位

GSD:偏“把需求推进到交付”的整套工作流。
OpenSpec:偏规范变更管理。
Everything Claude Code:配置、代理、技能集合。
Superpowers:技能驱动的软件开发方法论。

对比表

工具
定位
适合场景
优势
短板
对本项目价值
GSD
端到端交付工作流
从需求到实现、测试、复盘的一整轮开发
强调推进、拆任务、并行执行和交付结果
如果项目很小,流程感可能偏重
适合作为总推进框架,尤其适合拆给多个子 agent
OpenSpec
规范变更管理
需求会演进、需要记录接口和行为变化的项目
能把变更写成可追踪的规格,减少实现偏差
前期需要维护 spec,短平快脚本会觉得重
适合定义机器人触发规则、配置格式、安全边界
Everything Claude Code
配置、代理、技能集合
想快速获得完整 Claude Code 工作台配置
覆盖 agents、commands、hooks、skills,资料密度高
引入面大,不适合无选择地全量套用
适合借鉴 agent 分工、命令组织和项目模板
Superpowers
技能驱动的软件开发方法论
需要先澄清、再规格、再小步执行的复杂任务
强调技能、检查点和人机协作节奏
需要遵守流程,执行速度取决于拆分质量
适合控制误发风险和把需求拆成可验收小任务

技术层面的关键差异

1. 状态管理方式不同

GSD 更像项目推进器,关心的是当前任务从需求到交付的状态流转。它会推动拆任务、分配 agent、落地代码、跑测试、整理结论。

OpenSpec 更像变更账本,关心的是“为什么改、改什么、怎么验收”。它适合维护需求、接口和行为约束的长期一致性。

Everything Claude Code 更像工作台模板,关心的是把可复用能力装进项目:有哪些 agent、有哪些 slash commands、有哪些 hooks、哪些上下文文件会被自动读入。

Superpowers 更像执行纪律,关心的是每一步有没有先澄清、有没有规格、有没有测试、有没有检查点。它不是替你决定做什么,而是约束你怎么做。

2. 产物形态不同

GSD 的产物通常是任务拆解、实现分支、测试结果、交付总结。
OpenSpec 的产物通常是 spec、proposal、tasks、design notes、acceptance criteria。
Everything Claude Code 的产物通常是 .claude/ 配置、agents、commands、skills、hooks。
Superpowers 的产物通常是按技能组织的计划、规格、实现步骤、review checklist。

这意味着它们可以组合,但不应该互相替代。比如 OpenSpec 可以定义“机器人什么时候回复”,GSD 可以安排多个 agent 并行实现,Everything Claude Code 可以提供 agent 和 command 模板,Superpowers 可以要求每一步先有验收标准。

3. 风险控制方式不同

对微信 AI 群回复机器人这种项目,最大的风险不是功能做不出来,而是误发消息、权限过大、UI 自动化不稳定、未来维护困难。

GSD 控制的是交付风险:任务是否拆完,测试是否跑完,文档是否落地。
OpenSpec 控制的是需求漂移风险:后续如果要加知识库检索、命令执行、自动发图片,需要先改 spec。
Everything Claude Code 控制的是能力组织风险:不同 agent 不要互相覆盖文件,不同命令不要职责混乱。
Superpowers 控制的是执行风险:不要跳过澄清,不要没验收就真实发送,不要让模型直接碰高危权限。

每个工具的实用案例

GSD 案例:把微信机器人从想法推到可运行 MVP

场景:用户只有一句需求,“群里有人 @机器人或者提到名字时,机器人自动回复”。这个需求听起来简单,但真正落地至少包含 UI 读取、触发判断、AI 回复、发送保护、配置、测试、文档。

用 GSD 的方式处理,不是先写代码,而是把目标拆成交付链:

1.
明确 MVP:只支持 macOS 微信客户端,只回复文本,只监听配置群列表。
2.
定安全边界:不注入微信,不读数据库,不重签微信,不调用进程内存 API。
3.
拆并行任务:UI adapter、Bot core、Provider、CLI、Review、文档。
4.
每个任务有独立产物:代码文件、测试文件、验收命令。
5.
最后统一集成:跑全量测试,修接口不一致,补安全测试。

实际产物可以是:

doc-writer: 写 Obsidian 工具对比文档
ui-agent: 实现 WeChatUIAdapter
bot-core-agent: 实现 config/trigger/bot
provider-agent: 实现 Echo/OpenAI/Ollama + CLI
review-agent: 审查误发风险和安全边界

这个案例里,GSD 的价值是把“想做一个机器人”变成“多个可并行交付的工程切片”。它最适合解决执行推进问题,尤其是当任务容易在需求、实现、测试、文档之间来回跳的时候。

OpenSpec 案例:给“什么时候回复”建立可演进规范

场景:第一版机器人只在 @小助手 或提到“小助手”时回复。过几天用户可能会要求:

支持多个别名。
忽略自己发出的消息。
只在白名单群回复。
连续多条 @ 时只回复一次。
未来接入 Obsidian 知识库检索。
未来允许执行本地命令。

如果没有规范,代码会很快变成一堆布尔开关。OpenSpec 的做法是把行为写成变更规格,而不是直接在代码里堆逻辑。

一个简化 spec 可以长这样:

## Capability: Mention-triggered replies

### Requirement: Reply only when addressed
The bot MUST generate a reply only when a message contains one of:
-`@<bot_name>`
-`@<bot_name>`
- a configured plain-text alias

### Requirement: Ignore self messages
The bot MUST NOT reply to messages where sender is in `bot.self_names`.

### Requirement: Prevent repeat replies
The bot MUST keep a bounded processed-message set keyed by group, sender, and text.

### Requirement: Dry-run by default
The bot MUST NOT send to WeChat unless the operator explicitly passes `--send`.

这个案例里,OpenSpec 的价值是让需求变更有地方落。以后如果要加“知识库检索”,不是直接改 Provider,而是先新增 capability:

## Capability: Retrieval-augmented reply

The bot SHOULD retrieve local notes before generating a reply when retrieval is enabled.
The bot MUST disclose low-confidence answers instead of inventing facts.

这样开发者、Agent、测试都能围绕同一份规格工作。OpenSpec 最适合那些会持续演进、而且不能靠口头约定维护边界的项目。

Everything Claude Code 案例:为项目建立可复用 Agent 工作台

场景:微信机器人项目不是一次性脚本。后续可能要继续加功能,比如多群轮询、知识库检索、消息摘要、错误日志、UI 适配不同微信版本。

Everything Claude Code 的价值不在于“直接拿来全量安装”,而在于它展示了一种能力组织方式:把 agent、commands、skills、hooks、上下文文件变成项目资产。

对当前项目,可以借鉴出一个轻量结构:

.claude/
  agents/
    ui-agent.md
    bot-core-agent.md
    provider-agent.md
    review-agent.md
  commands/
    test.md
    dry-run.md
    safety-check.md
  skills/
    macos-accessibility.md
    provider-integration.md
  hooks/
    before-send-check.md

这些文件不一定马上创建,但职责可以先设计清楚:

ui-agent 只碰 UI 自动化层,不改 Provider。
bot-core-agent 只碰触发、去重、冷却、主循环。
provider-agent 只碰 OpenAI/Ollama/Echo 适配。
review-agent 专门查误发风险、安全边界和测试缺口。

一个实用命令也可以这样定义:

/safety-check
Run tests and search source for forbidden APIs:
task_for_pid, mach_vm_read, mach_vm_write, codesign, sqlite3, db_storage

这个案例里,Everything Claude Code 的价值是把“怎么和 Agent 协作”变成项目内的配置,而不是每次靠临时口头分工。它适合团队或长期项目,尤其适合把高频流程沉淀成命令和技能。

Superpowers 案例:把高风险功能拆成可验收小技能

场景:真实发送微信消息是高风险动作。如果让 Agent 一步到位实现“读消息并发送”,很容易出现误发:焦点不在微信、群切错、剪贴板被覆盖、旧消息重复触发。

Superpowers 的思路是先把能力拆成可独立验证的小技能,并设置检查点:

Skill 1: 读取当前群最近消息
验收:只打印消息,不发送,不写剪贴板。

Skill 2: 判断是否触发
验收:@名字、全角@、别名能触发;普通消息不触发;自己消息不触发。

Skill 3: dry-run 回复
验收:命中后只打印将要回复的文本。

Skill 4: 真实发送
验收:必须显式 --send;发送前确认当前 app、当前群、输入框状态。

对应到代码,Superpowers 会要求先实现这样的测试,而不是先写 UI 自动化:

deftest_runner_defaults_to_dry_run():
    runner = BotRunner(config, adapter, provider)
    runner.run_once()
assert adapter.sent ==[("reply",True)]

deftest_ignores_self_messages():
assertnot should_respond(Message("我","@bot"), names=("bot",), self_names=("我",))

这个案例里,Superpowers 的价值是降低执行失控风险。它不只是“多问问题”,而是把每个危险动作变成有前置条件、有验收、有回滚余地的小步骤。对涉及本机 UI、外部账号、消息发送、文件删除、付费 API 的项目尤其有用。

怎么用于微信机器人项目

推荐组合是:OpenSpec/Superpowers 定规格,GSD 推进交付,Everything Claude Code 借鉴配置和 agent 组织方式。

具体到当前项目:

用 OpenSpec 的思路先锁定行为边界:只支持 macOS 微信客户端、只做 UI 自动化、不做代码注入、不读数据库、不自动重签微信。
用 Superpowers 的方式拆出小技能:群切换、消息读取、触发识别、Provider 调用、回复发送、dry-run 验证。
用 GSD 的方式推进交付:先写文档,再建项目,再并行实现模块,最后跑测试和人工验收。
用 Everything Claude Code 的思路组织能力集合:把 UI adapter、Bot core、Provider、Review 分成不同 agent 或模块职责。

对当前项目的取舍

不建议全量照搬任何一个体系。

这个微信机器人项目的高风险点不是代码量,而是误触发、误发送、权限过大和维护脆弱性。因此,流程应该服务于几个明确目标:

先用 dry-run 验证,不直接发消息。
先实现文本回复,不做知识库检索和本地命令执行。
先支持配置群列表,不扫描所有会话。
每个模块有清楚边界,UI 自动化层和 Bot 决策层分离。
默认使用 EchoProvider 做本地测试,再切到 OpenAI 或本地模型。

结论

当前项目最适合采用轻量组合:

GSD 负责推进节奏。
OpenSpec 负责把行为边界写清。
Everything Claude Code 负责提供 agent 和配置组织参考。
Superpowers 负责把开发拆成可检查、可验收的小技能。

这样既能利用 AI 编码工作流的优点,又不会为了流程本身拖慢开发。对微信 AI 群回复机器人来说,正确顺序是:先明确安全边界和触发规则,再做 dry-run,再做真实发送。

可复用到后续项目的判断

如果项目的主要风险是“做不完”,优先用 GSD。
如果项目的主要风险是“需求变了没人知道”,优先用 OpenSpec。
如果项目的主要风险是“Agent 能力散乱”,参考 Everything Claude Code。
如果项目的主要风险是“没澄清就开写”,优先用 Superpowers。