核心公式:OpenSpec(规范层) + Superpowers(技能层) → Harness(编排层)
上一篇博客介绍了 Harness Suite 是什么,这篇回答一个更实际的问题:这套逻辑怎么用到你自己的开发工具里?
一、先回顾三层架构
在动手之前,先把概念理清:
| 层 | 回答的问题 | 本质 |
|---|---|---|
| OpenSpec | 系统和外部世界之间用什么语言交流? | 定规则 |
| Superpowers | 系统实际能做什么? | 出能力 |
| Harness | 这些能力怎么配合完成复杂任务? | 做指挥 |
用一句话概括:
OpenSpec 定义"做什么",Superpowers 提供"怎么做"的能力,Harness 控制"按顺序做"的流程。
二、Claude Code CLI —— 最完美适配
Harness Suite 本身就是为 Claude Code 设计的,所以这里最简单。
方式一:一键安装(推荐)
# 1. 克隆项目
git clone --branch main --depth 1 \
"https://github.com/windchargerKang/my-harness-suite" \
".harness-suite-tmp"
# 2. 安装到你的项目目录
bash ".harness-suite-tmp/install.sh" --target "$(pwd)"
rm -rf ".harness-suite-tmp"
# 3. 重启 Claude Code,执行初始化
/harness-setup
装完后你自动获得 6 阶段工作流:
Propose → Plan → Apply → Review → Archive → Knowledge
方式二:手动创建核心文件
如果你不想装完整套件,只需要三个文件就够了。
项目根目录创建 .claude/CLAUDE.md:
# 项目规则
## 工作流程
1. 先写 proposal.md(需求文档)
2. 再写 design.md + tasks.md(技术方案+任务分解)
3. 按 tasks.md 逐条执行,不越界
4. 每完成一个里程碑跑相关测试
5. 提交前经过 review
## 架构规则
- Controller 只处理请求和返回结果
- 业务逻辑必须放在 Service/Domain 层
- 禁止 Controller 直接调用 Mapper/Repository
- DTO/VO 不允许直接当作持久化实体使用
## 安全规则
- 无条件全表更新/删除必须拒绝
- 修改配置文件前必须说明影响范围
- 涉及数据库结构变更需明确影响范围
项目根目录创建 .claude/settings.json(Hooks):
{
"hooks": {
"PreToolUse": [
{
"matcher": "Edit|Write",
"hooks": [
{
"type": "command",
"command": "python3 .claude/hooks/guard_write.py"
}
]
}
],
"PostToolUse": [
{
"matcher": "Edit|Write",
"hooks": [
{
"type": "command",
"command": "bash .claude/hooks/run_checks.sh"
}
]
}
]
}
}
.claude/hooks/guard_write.py(写保护):
#!/usr/bin/env python3
"""编辑/写入文件前的检查"""
import sys, os, json
def check():
# 读取工具输入
tool_input = json.loads(sys.stdin.read()) if not sys.stdin.isatty() else {}
file_path = tool_input.get('file_path', '')
# 保护路径列表
protected = [
'package.json', 'tsconfig.json', '.env',
'application.yml', 'bootstrap.yml'
]
for p in protected:
if p in file_path:
print(f"⚠️ 受保护文件: {file_path}")
print("修改此文件需要明确的需求说明和团队确认")
sys.exit(1)
print("✅ 文件修改检查通过")
if __name__ == '__main__':
check()
Hooks 的作用:在 AI 写文件之前拦截,不是事后检查。
三、Claude 桌面版 / Web 版 —— 靠对话协议落地
桌面版和 Web 版没有 Hooks 系统,不能自动拦截。但可以通过结构化提示词实现类似的规范层。
核心方法:写进自定义指令
打开 Claude 桌面版设置 → Custom Instructions,或者在每次对话开头加上这段协议:
你正在按照 OpenSpec + Harness 工作流辅助我开发。请遵守以下规则:
## 阶段 1:需求确认(OpenSpec 层)
在我提出需求后,你必须先输出:
1. proposal.md 格式的需求摘要
2. 列出所有需要确认的边界条件
3. 等我确认后再进入下一阶段
## 阶段 2:设计(Superpowers 层)
需求确认后,输出:
1. design.md 格式的技术方案
2. tasks.md 格式的任务分解(带优先级和依赖关系)
3. 等我确认设计后再开始写代码
## 阶段 3:执行(Harness 层)
按 tasks.md 逐条执行,每完成一个里程碑:
- 输出完成状态
- 列出还剩余哪些任务
- 等待我确认下一步
## 硬性约束
- 不允许超出 tasks.md 范围自行扩展
- 涉及数据库修改必须先说明影响范围
- 写代码前先总结本次需求范围
- 不要一上来就写代码,先确认流程
实际效果
有了这段协议,Claude 不会一上来就给你写代码。它会:
你:帮我加个用户登录功能
Claude:
📋 需求确认
- 功能:用户登录
- 需要确认的问题:
1. 登录方式?(账号密码 / 手机验证码 / OAuth)
2. 是否需要记住登录?
3. 登录失败次数限制?
4. 是否需要验证码防刷?
请确认后我将输出技术方案和任务分解。
虽然没有 Hooks 拦截,但通过对话协议,Claude 会按流程走,不会跳过需求确认直接写代码。
四、Cursor —— 用规则文件替代
Cursor 有自己的一套规则系统,和 Claude Code 不完全兼容,但可以实现类似效果。
创建规则文件
.cursor/
├── rules/
│ ├── openspec.mdc # 需求规范规则
│ ├── workflow.mdc # 工作流规则
│ └── safety.mdc # 安全约束
└── settings.json
.cursor/rules/openspec.mdc:
---
description: OpenSpec 需求规范 —— 先写清楚做什么
alwaysApply: true
---
在开始编码之前,必须先明确需求。
## 需求确认流程
当用户提出新功能或修改时:
1. **总结需求范围**:用 1-2 句话概括用户想要什么
2. **列出边界条件**:哪些做,哪些不做
3. **识别风险点**:涉及哪些关键文件/数据库/配置
4. **等待确认**:用户确认后再进入设计阶段
## 禁止行为
- 不确认需求就直接写代码
- 超出用户需求范围自行添加功能
- 忽略用户明确提到的约束条件
.cursor/rules/workflow.mdc:
---
description: Harness 风格研发工作流
alwaysApply: true
---
## 核心工作流
需求确认 → 技术设计 → 任务分解 → 逐步执行 → 自查验证
### 任务分解规则
- 把需求拆成可独立完成的小步骤
- 每个步骤有明确的输入和输出
- 标注步骤之间的依赖关系
- 按顺序执行,不跳步
### 执行规则
- 每完成一个步骤后输出状态
- 列出剩余步骤
- 遇到不确定的地方主动提问,不要猜测
.cursor/rules/safety.mdc:
---
description: 开发安全约束
alwaysApply: true
---
## 数据库操作
- 拒绝无条件全表更新/删除
- 写操作必须说明影响范围(影响哪些行)
- 新增字段必须说明默认值和兼容性
## 文件操作
- 不删除文件,除非用户明确要求
- 修改关键配置文件前必须确认
- package.json / tsconfig.json / .env
- application.yml / bootstrap.yml
## 代码质量
- 新功能必须包含测试思路说明
- API 变更必须说明向后兼容性
- 修改已有函数时,说明是否影响现有调用方
Cursor 中的使用流程
步骤 1:用 Chat 模式写 proposal + design
步骤 2:用 Chat 模式生成 tasks.md
步骤 3:用 Composer 模式按 tasks.md 逐条执行
步骤 4:用 Chat 模式做 review 和总结
Cursor 的 Composer 模式特别适合分步执行 —— 它能同时编辑多个文件,但需要你控制节奏。
五、三平台对比
| 能力 | Claude Code | Claude 桌面/Web | Cursor |
|---|---|---|---|
| 自动化 Hooks | ✅ 原生支持 | ❌ 不支持 | ❌ 不支持 |
| 规则文件 | CLAUDE.md | 自定义指令 | .cursor/rules |
| 命令系统 | ✅ /harness-* | ❌ 无 | ❌ 无 |
| 工作流自动化 | ✅ 全自动 | ⚠️ 靠对话协议 | ⚠️ 靠规则+手动 |
| 安装成本 | 低(一键安装) | 极低(复制提示词) | 中(需创建规则) |
| 最佳适用 | 规范化团队开发 | 个人快速开发 | 多文件同时编辑 |
六、核心逻辑总结
不管用哪个平台,这套逻辑的本质只有一句话:
规则在前,执行在后。
OpenSpec 确保你知道自己在做什么,Superpowers 提供做事的能力,Harness 确保你按正确的顺序做事。
没有这套逻辑:AI 想到哪写到哪,代码质量靠运气。
有了这套逻辑:需求→设计→执行→评审,每一步都有检查点,质量可控。
七、快速开始清单
| 你想用... | 第一步 |
|---|---|
| Claude Code | git clone Harness Suite → /harness-setup |
| Claude 桌面/Web | 把对话协议复制进 Custom Instructions |
| Cursor | 创建 .cursor/rules/ 目录 + 三个 .mdc 文件 |
核心不是工具,是理念。 工具只是载体,关键是养成"先想清楚再动手"的习惯。
上一篇:Harness Suite 是什么? GitHub:github.com/windchargerKang/my-harness-suite
评论 ({{ comments.length }})
暂无评论,来说两句吧