周五下午5点,产品经理在群里扔下一句话:”能不能下周一给个收藏管理工具的Demo?”
以前我会骂娘。7个工程师的团队,一个需求评审会开2小时,再拆分任务到Jira,等前端和后端扯皮完接口规范,
下周一?
做梦。
但这次不一样。
周日晚上11点,我在终端里敲下最后一个命令:
1 | git push origin feature/bookmark-system |
三个Claude Code会话同时返回:
- Agent-Backend: “数据层测试覆盖率94.2%,已推送”
- Agent-Frontend: “搜索组件E2E测试全部通过,已推送”
- Agent-Test: “集成测试套件运行完毕,无失败用例”
我花了2天时间。准确说,是我花了4小时做决策,Agent们干了44小时的活。
周一早上9点,Demo准时上线。PO看完沉默了10秒,问了一句:”你周末加班了?”
我说:”没有,我带了三个新同事。”
这不是吹牛。这是2026年真实发生的事。关键是,我用的方法你也能复制。
(字数统计:约8200字,阅读时间:约18分钟)
产品的原始需求问题:找不到自己收藏的资料
说实话,这个工具最开始是为我自己做的。
作为一个重度AI用户,我收藏了大量好东西:
- 网上看到的各种优秀提示词模板
- 自己写的Claude Code Skills
- 技术文档的书签
- GitHub上看到的优秀项目
时间长了问题来了:
- 有些提示词在Notion笔记里
- 有些Skills装在本地
.claude/skills/文件夹 - 有些是Chrome书签
- 有些是散落的markdown文件
- 我完全不记得自己装过哪些Skills
最痛苦的是:如果要重装系统,我根本不知道会漏掉什么。
所以我需要一个工具:
- 自动扫描本地的Skills和文档
- 用LLM自动打标签分类
- 支持模糊搜索快速定位
- 能导出清单方便迁移
MVP阶段先做本地版本,云同步以后再说。
选工具:OpenSpec、SpecKit、Superpowers到底选哪个?
在开始前,我面临一个选择:用什么AI 框架来组织这个项目?
市面上主流的有三种SDD工具,它们的设计哲学完全不同:
OpenSpec:任务清单式管理
目录结构:
1 | project/ |
核心思想:像看板一样管理任务。Agent只看changes/active/,完成后归档到archive/。
优势:
- 极轻量,纯markdown
- 变更与长期规格分离
- 适合快速迭代的小项目
劣势:
- 缺少强制性约束
- 多人协作时容易混乱
SpecKit:宪法式规范管理
目录结构:
1 | project/ |
核心思想:先定”宪法”,再干活。所有决策必须符合constitution.md的约束。
优势:
- 有强制性规范(constitution)
- 适合需要合规性的企业项目
- 阶段严格:specify → plan → implement
劣势:
- 需要Python环境,安装稍复杂
- 过于严格,不适合探索性开发
Superpowers:技能包式增强
目录结构:
1 | project/ |
核心思想:不是给Agent写文档,而是给它装”技能包”。每个技能是一套完整工作流。
优势:
- 强调工作流:brainstorm → design → plan → implement
- 技能可复用,全局共享
- 注重TDD和代码质量
劣势:
- 学习曲线陡峭
- 需要理解Skills的加载机制
- 初期配置较繁琐
我的选择:OpenSpec
为什么?
- 需求会变:这是个探索性项目,我不确定最终功能会长成什么样
- 一个人开发:不需要SpecKit那种多人协作的严格流程
- 快速验证:我要2天内出Demo,OpenSpec的轻量级最合适
安装超简单:
1 | npm install -g @fission-ai/openspec |
选择Claude Code工具,目录自动生成好。
Day 1上午:写需求规格,Agent一行代码都别碰
定义产品愿景
在openspec/specs/Product_Brief.md写下:
1 | # SkillHub - 提示词与技能管理工具 |
设计技术架构
在openspec/specs/Architecture.md写下:
1 | # 技术架构 |
拆解用户故事
在openspec/specs/User_Stories.md写下:
1 | # 用户故事 |
到这里,上午10点。我一行代码都没写,但整个项目的”骨架”已经立起来了。
Day 1下午:让三个Agent各自打开”平行时空”
现在关键来了:如何让三个Agent同时干活,互不干扰?
传统方式的问题是什么?就像你在客厅写作业,突然被叫去厨房帮忙,回来发现作业本被弟弟画花了。
我需要给每个Agent一个独立的”房间”。
Claude Code官方推荐的方案是:Git Worktrees(工作树)。
简单理解:
- 你有一个主项目文件夹(主卧室)
- 用worktree可以创建多个”镜像房间”
- 每个房间都是完整的项目副本
- 但它们共享同一套Git记录(就像共享一个仓库)
最关键的是:这些镜像房间不会互相污染。
Backend Agent在房间A改数据结构,Frontend Agent在房间B写界面,完全不会冲突。等大家都干完了,再统一合并。
我的操作:
给Backend创建专属房间: 项目主目录 → 创建skillhub-backend文件夹 → 对应backend分支
给Frontend创建专属房间: 项目主目录 → 创建skillhub-frontend文件夹 → 对应frontend分支
给Test创建专属房间: 项目主目录 → 创建skillhub-test文件夹 → 对应test分支
现在我的电脑上有四个文件夹:
- skillhub/ (主房间,main分支)
- skillhub-backend/ (Backend专属)
- skillhub-frontend/ (Frontend专属)
- skillhub-test/ (Test专属)
这四个文件夹共享同一套Git历史记录,但文件内容完全独立。
就像你有四套衣服放在四个衣柜里,但洗衣记录都记在同一本账本上。
Agent分配任务:关键是写清楚”工作手册”
Backend Agent的工作手册
我在Backend的专属文件夹里创建了一个CLAUDE.md文件,这就是它的”工作手册”:
你负责什么:文件扫描、数据存储、API接口
技术约束:
- 只用Node.js + SQLite,不要搞复杂的ORM
- API必须返回标准格式
- 禁止过度设计
当前任务:实现文件扫描和AI自动打标签功能
完成标准:
- 测试全部通过
- 覆盖率超过90%
- 在主项目的协作文档里记录你暴露的API接口
启动Backend Agent后,它就开始按照这个手册干活了。
Frontend Agent的工作手册
Frontend的手册稍有不同:
你负责什么:搜索界面,调用Backend的API
技术约束:
- React + TypeScript
- 只用TailwindCSS做样式
- 用Zustand管理状态
依赖关系:Backend暴露的API接口在主项目的协作文档里,先去读
完成标准:
- 前端能成功构建
- E2E测试通过
- 搜索响应快(200毫秒内)
Test Agent的工作手册
Test Agent最简单:
你负责什么:写集成测试,确保Backend和Frontend能协同工作
测试场景: 用户打开应用 → 点扫描按钮 → 等待完成 → 搜索”docx” → 验证结果 → 点击查看详情
完成标准:所有测试通过,生成测试报告
Day 1晚上:三个Agent的”异步早会”和“看板”
传统的Scrum Daily Standup是这样的:
早上9点,团队站在一起:
- “小王,你昨天做了什么?”
- “小李,你遇到什么阻塞吗?”
- “大家今天的计划是?”
现在的”早会”是这样的:
晚上8点,我打开主项目的INTEGRATION.md:
1 | # 集成状态 - 2026年2月8日 20:15 |
看到Frontend被阻塞了。我在Backend的terminal执行:
1 | # 检查Backend进度 |
Backend Agent回复:
1 | API接口已完成,正在写单元测试。预计10分钟后推送到feature/backend-api分支。 |
10分钟后,我在Frontend的terminal:
1 | cd ~/skillhub-frontend |
Frontend Agent立即开始工作。
这就是新时代的”异步早会”:不是人说给人听,而是Agent把状态写到共享文档,人类只需要协调阻塞点。
Day 2上午:让Agent写”工作日记”
第二天早上,我想知道三个Agent昨晚到底干了什么。
传统方式:打开每个分支,看代码diff,累死。
更聪明的方式:看Agent的Git commit记录。
关键是让Agent写有意义的commit message。
我给每个Agent的工作手册里加了一条规则:
每次提交代码时,commit message必须说明:
- 做了什么(标题)
- 为什么这么做(详细说明)
比如Backend Agent的一次提交:
1 | 集成Claude API自动打标签 |
这样我只需要看commit记录,就知道Agent为什么这么写代码。
比看代码本身还清楚。
防止Agent”偷懒”
我还配置了一个自动检查:
每次Agent要提交代码时,系统会自动检查:
- commit message格式对不对
- 如果是新功能,有没有写测试
不符合规范,拒绝提交。
这样Agent就不能随便写个”fix bug”这种没营养的message了。
Day 2下午:三个分支合并,像拼拼图一样简单
下午3点,三个Agent都完成了各自的任务。
现在要把它们的工作合并到主分支。
传统合并的噩梦
以前合并代码是这样的:
- 把Backend分支合并进来 → 冲突了
- 手动解决冲突 → 改坏了
- 再合并Frontend分支 → 又冲突
- 再手动解决 → 又改坏了
- 最后跑测试 → 全挂了
一个字:崩溃。
现在的做法:让Integration Manager来干
我创建了第四个Agent:Integration Manager(集成经理)。
它的工作手册很简单:
职责:负责合并三个feature分支
流程:
- 先合并Backend分支
- 跑Backend的测试,确保通过
- 再合并Frontend分支
- 跑前端构建,确保无错
- 最后合并Test分支
- 跑完整E2E测试
如果某个阶段失败:
- 立即停止
- 在协作文档记录失败原因
- 通知对应的Agent修复
成功标准:
- 所有测试通过
- 代码覆盖率>85%
- 无TypeScript错误
- 无语法警告
我启动Integration Manager后,它开始自动工作:
1 | [下午3:05] 正在合并Backend分支... |
整个过程全自动。我只是喝着咖啡看着。
Definition of Done也自动化了
以前的DoD(完成定义)是这样的:
1 | 完成标准: |
现在DoD变成了可执行的检查清单:
Integration Manager会逐条检查:
- 测试全部通过?
- 覆盖率达标?
- 类型检查通过?
- 语法无警告?
- API文档更新了?
- commit记录规范?
全部通过才算Done。
不是人说了算,是系统说了算。
九、回到Scrum:本质没变,工具变了
很多人说”AI时代Agile过时了”。
错。
Scrum的核心是什么?
- 小步迭代:我们用2天完成一个MVP,就是迭代
- 持续反馈:Agent每次commit都有message,Integration Manager实时反馈
- 透明可见:INTEGRATION.md就是看板,所有人(Agent)都能看到当前状态
- 自组织团队:三个Agent各司其职,阻塞了自己在INTEGRATION.md标记
这些原则一点都没变。
变的是什么?
以前:人人协作
- Daily Standup:每天早上开会
- Sprint Planning:团队一起拆任务
- Sprint Review:演示给stakeholder
- Sprint Retrospective:回顾哪里做得好
沟通成本极高。
现在:人机协作
- Daily Sync:Agent更新INTEGRATION.md,人类看一眼
- Planning:人类写specs,Agent自己拆subtasks
- Review:直接看git log和测试报告
- Retro:分析CLAUDE.md哪里写得不清楚,导致Agent理解错了
沟通成本接近零,但决策质量提高了。
Scrum Master还有必要吗?
我现在的角色不再是”写代码的人”,而是:
1. 架构设计师
在openspec/specs/Architecture.md定义技术选型:
- 用什么数据库
- API返回什么格式
- 前端用什么状态管理
这些Agent自己决定不了,需要人类做决策。
2. 规格审查员
每天Review三个文件:
Product_Brief.md:需求有没有跑偏INTEGRATION.md:Agent之间有没有理解偏差Definition_of_Done.md:质量标准够不够严格
代码我基本不看。Agent写的代码质量比我高。
3. 阻塞点协调员
当Frontend被Backend阻塞,我要:
- 看Backend的git log,了解进度
- 在Backend的terminal问:”还要多久?”
- 告诉Frontend:”等10分钟”
就像项目经理协调两个团队的依赖关系。
4. 质量把关人
Integration Manager合并后,我要:
- 跑一遍Demo,看交互是否流畅
- 检查边界条件(比如扫描空目录会不会报错)
- 看E2E测试覆盖了哪些场景,有没有遗漏
不是检查代码语法,而是检查业务逻辑。
三种SDD工具的选择建议
回到最开始的问题:OpenSpec、SpecKit、Superpowers到底选哪个?
选择矩阵
1 | 你的情况 推荐工具 理由 |
组合使用
实际上这三者可以混用:
1 | 主框架: OpenSpec (管理变更提案) |
例如在我的项目:
1 | openspec/ |
工具是为人服务的,不是教条。
你可以做什么
如果你想复制我的工作流,这是最快的路径:
Week 1:熟悉基础
Day 1-2:安装OpenSpec,写第一个Product_Brief.md
1 | npm install -g @fission-ai/openspec |
在openspec/specs/Product_Brief.md写一个超简单的需求,比如”做一个TODO列表”。
Day 3-4:让一个Agent基于spec开发
1 | claude "读取openspec/specs/,实现一个基本的TODO列表" |
观察它生成的代码,调整你的spec描述。
Day 5-7:练习Git Worktree
1 | git worktree add ../my-project-feature-a -b feature-a |
Week 2:多Agent协作
Day 8-10:用Worktree运行两个Agent
- 一个做Backend
- 一个做Frontend
- 手动协调它们的依赖(在INTEGRATION.md记录接口)
Day 11-14:配置CLAUDE.md和commit规范
给每个Agent写专属的CLAUDE.md,定义它的职责和代码规范。
配置.gitmessage模板,要求Agent写有意义的commit。
Week 3:自动化质量
Day 15-17:写第一个Git Hook
在.claude/hooks/pre-commit检查commit message格式。
Day 18-21:创建Integration Manager Agent
让它负责合并分支和运行测试。
Week 4:应用到实际项目
选一个真实需求,完整走一遍流程:
- 写specs (Product Brief + Architecture + User Stories)
- 创建worktrees
- 启动多个Agent
- 协调依赖
- 自动化集成
用2周时间,你就能掌握这套工作流。
然后你会发现:一个人 + 三个Agent = 一个7人团队的产出。
最后想说的话
三个月前,我还在担心AI会不会取代工程师。
现在我明白了:真正的问题不是”AI会不会取代人”,而是”不会用AI的人会不会被会用的人取代”。
我现在花在”写代码”上的时间不到10%。
90%的时间在:
- 设计架构(什么技术选型,什么数据结构)
- 写清晰的规格(让Agent理解我要什么)
- 协调依赖(Backend和Frontend的接口怎么对齐)
- 把关质量(业务逻辑对不对,边界条件考虑了吗)
这才是2026年一个优秀工程师的核心竞争力。
Scrum没有过时。 Agile没有过时。
过时的是那种”坐在椅子上敲8小时代码”的工作方式。
现在是:
- 2小时写specs
- 启动3个Agent,去喝咖啡
- 回来看git log和测试报告
- 调整specs,再启动下一轮迭代
效率提升的不是10倍,是100倍。
周一早上,PM看完Demo,问我:”这是你一个人做的?”
我说:”不,是我和三个同事一起做的。只不过,它们不需要工资,不会请假,24小时随时待命。”
PM沉默了一会儿,问:”我们公司什么时候能推广这种工作方式?”
我笑着说:”现在。只要你愿意,每个团队都可以这么做。”
好了,现在打开你的终端,输入:
1 | npm install -g @fission-ai/openspec |
创建你的第一个Product_Brief.md。
写下你想做的东西。
然后启动你的第一个Agent。
新时代的Scrum,从这一刻开始。
附录:三种工具的目录结构完整对比
OpenSpec
1 | project/ |
哲学:像看板,任务流动(TODO → DOING → DONE)
Agent交互点:主要读openspec/specs/,有新功能时读对应的changes/xxx/
历史管理:物理移动文件夹到archive/
SpecKit
1 | project/ |
哲学:像蓝图,分阶段严格推进(specify → plan → implement)
Agent交互点:先读constitution.md(不可违反的约束),再读具体的specs/xxx/
历史管理:通过文件内部的YAML状态字段(status: proposed/approved/implemented)
Superpowers
1 | project/ |
哲学:像大脑插件,给Agent装”能力包”
Agent交互点:自动加载全局的~/.claude/skills/,再加载项目的skills/
历史管理:记录在docs/thoughts/(Agent的思考过程)
如何选择?看你的痛点
痛点:需求经常变,改来改去→ 用OpenSpec,它的changes/机制支持频繁迭代
痛点:团队成员水平参差不齐,需要强制规范→ 用SpecKit,constitution.md是所有人必须遵守的
痛点:重复性工作太多,每个项目都要写相似的代码→ 用Superpowers,把通用流程封装成Skills复用
痛点:想要三者的优点→ 组合使用,用OpenSpec做任务管理,SpecKit定义约束,Superpowers增强能力
关于作者
申导,一个在AI时代重新定义”工程师”角色的实践者和敏捷教练。
曾经每天写代码12小时,现在每天写规格2小时,效率提升50倍。
如果这篇文章对你有帮助,点个在看,让更多人看到AI时代真正的工作方式。