微信分享缩略图
  • {{ post.title }}

    {{ post.excerpt }}

    {{ post.author_name || settings.site_author || 'Admin' }} {{ formatDate(post.published_at || post.created_at) }} {{ post.view_count }} {{ post.comment_count }}

OpenSpec + Harness 工作流落地指南:如何把规范层、技能层、编排层应用到 Claude Code / Cursor


核心公式: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

{{ currentPost.title }}

评论 ({{ comments.length }})

正在回复 @{{ replyTo.author_name }} 取消回复

暂无评论,来说两句吧

{{ settings.about_title || '个人简介' }}

搜索中...
没有找到相关文章
{{ r.title }}
{{ r.category_name }} {{ formatDate(r.published_at || r.created_at) }} {{ r.view_count }} 次阅读

{{ r.excerpt }}

评论通过

评论未通过

等待审核

{{ aiModalData.review || aiModalData.message }}

{{ toast.message }}