Install
openclaw skills install openclaw-harness-engineeringHarness Engineering — Generator/Evaluator 双 Agent 编码工作流。用于任何需要规划、编码、评审、质量门禁的编程任务。将做事的 Agent 和评判的 Agent 分开,每个阶段通过质量门禁才能进入下一阶段。
openclaw skills install openclaw-harness-engineering"如果它不能被机械化地执行,Agent 就会偏离。"
Harness Engineering 是一套项目约束体系,用于规范化 AI 辅助编程流程。核心原则:
每个使用 Harness 的项目,根目录下有 .harness/ 目录:
project/
├── .harness/
│ ├── rules/ # 编码规范、工作流、质量门禁(始终加载)
│ │ ├── quality-gates.md # 各阶段门禁标准
│ │ └── <project>-rules.md # 项目特定规则
│ ├── skills/ # 可复用 SOP(如 evaluator.md 独立评审)
│ ├── wiki/ # 项目知识库(按需查询)
│ ├── changes/ # 变更审计链(每次需求自动创建)
│ │ └── {type}-{name}-{date}/
│ │ ├── planning/
│ │ │ ├── spec.md # 需求规格
│ │ │ └── tasks.md # 任务拆分清单
│ │ ├── review/
│ │ │ ├── code_review_v1.md # Evaluator 评审报告
│ │ │ └── revision_report.md # Generator 修复报告
│ │ └── summary.md # 变更摘要(SSOT)
│ └── agents/
│ └── project-agent.md # Agent Index & Map(启动必读)
└── ...
.harness/changes/{type}-{简述}-{日期}/
type: feat | fix | refactor | chore | docs简述: 短横线分隔的英文描述日期: YYYYMMDD 格式规划 → 评审 → 编码 → 自审 → 独立评审 → 修复 → 交付
Generator Agent 负责:
planning/spec.md)
planning/tasks.md)
summary.md)
质量门禁:
Generator Agent 按 tasks.md 逐条实现:
coding_report.mdself_review.md 自查质量门禁:
关键:必须用不同的 Agent(Evaluator)评审 Generator 的产出。
Evaluator Agent 负责:
review/code_review_v1.md,问题分级:| 级别 | 含义 | 处理 |
|---|---|---|
| MUST FIX | 安全漏洞、功能缺陷、数据损坏 | 必须修复,否则不能交付 |
| SHOULD FIX | 边界情况、可维护性问题 | 强烈建议修复 |
| LOW | 代码风格、小优化 | 建议修复 |
| INFO | 观察、建议、未来改进 | 记录即可 |
质量门禁:
Generator Agent 根据评审报告修复:
review/revision_report.md,说明每个问题的修复方案质量门禁:
summary.md 为 DELIVERED 状态根据任务复杂度选择不同流程:
| 级别 | 判断标准 | 流程 |
|---|---|---|
| SIMPLE | <10 行代码,单文件 | 直接 spawn 执行 |
| MEDIUM | 多文件,方案明确 | gstack-lite(规划 + 自审) |
| HEAVY | 需要特定方法论 | 运行对应 gstack skill |
| FULL | 完整功能,多日工作量 | 双 Agent(Generator + Evaluator) |
| PLAN | 先规划后实现 | 只产出计划,不写代码 |
<10 行代码? → SIMPLE
多文件但方案明显? → MEDIUM
用户指定了 skill(/qa, /review)? → HEAVY
功能/项目/目标(不是任务)? → FULL
用户只想规划不想实现? → PLAN
注入到所有编码 Agent 的基础纪律:
# gstack-lite Planning Discipline
1. Read every file you will modify. Understand existing patterns first.
2. Before writing code, state your plan: what, why, which files, test case, risk.
3. When ambiguous, prefer:
- completeness over shortcuts
- existing patterns over new ones
- reversible choices over irreversible ones
- safe defaults over clever ones
4. Self-review your changes before reporting done.
Check for: missed files, broken imports, untested paths, style inconsistencies.
5. Report when done: what shipped, what decisions you made, anything uncertain.
# 需求规格:{功能名}
## 目标
{一句话描述要实现什么}
## 范围
### 包含
- {功能点 1}
- {功能点 2}
### 不包含
- {明确排除的内容}
## 验收标准
1. {可验证的标准 1}
2. {可验证的标准 2}
## 非目标
- {不在此范围内的内容}
# 任务拆分清单
## Task 1: {任务名}
- **描述**: {具体做什么}
- **输入**: {依赖什么}
- **输出**: {产出什么文件/功能}
- **验收标准**:
- {可验证的检查点 1}
- {可验证的检查点 2}
# {type}-{name} — 变更摘要
> Single Source of Truth for this change.
> 创建时间: YYYY-MM-DD
> 状态: PLANNING | CODING | IN_REVIEW | FIXED | DELIVERED
## 基本信息
| 字段 | 值 |
|------|-----|
| 类型 | feat/fix/refactor/chore/docs |
| 需求描述 | {一句话} |
| 负责人 | Generator Agent + Evaluator Agent |
| 创建时间 | {时间} |
| 最后更新 | {时间} |
## 阶段状态
| 阶段 | 状态 | 完成时间 | 备注 |
|------|------|---------|------|
| 1. 规划 | ⏳ 进行中 | — | — |
| 2. 评审 | ⏸ 待开始 | — | — |
| 3. 编码 | ⏸ 待开始 | — | — |
| 4. 自审 | ⏸ 待开始 | — | — |
| 5. 独立评审 | ⏸ 待开始 | — | — |
| 6. 修复 | ⏸ 待开始 | — | — |
| 7. 交付 | ⏸ 待开始 | — | — |
# 代码评审报告 v1
**评审对象**: {功能名}
**评审时间**: YYYY-MM-DD
**评审 Agent**: 独立 Code Reviewer
## 评审结论
**状态**: APPROVED | REVISION_REQUIRED
## 发现的问题
### 问题 N: {问题标题}
- **严重程度**: MUST FIX / SHOULD FIX / LOW / INFO
- **位置**: `文件路径` — 描述
- **描述**: {问题说明}
- **当前代码**:
```{language}
{当前代码}
{建议代码}
### revision_report.md 模板
```markdown
# Revision Report v2
**日期**: YYYY-MM-DD
**作者**: Generator Agent
**评审版本**: code_review_v1.md
## 修复摘要
根据 Evaluator Agent 的评审报告,共修复 **N 个问题**。
## 🔴 MUST FIX 修复
### 1. {问题标题}
**影响文件**:
- `path/to/file1`
- `path/to/file2`
**修复方案**: {说明}
**为什么选择这个方案**: {理由}
每个阶段必须满足门禁标准才能进入下一阶段。不允许跳过门禁。
每次需求都创建 .harness/changes/{type}-{name}-{date}/ 目录,包含:
"每发现一个错误,就工程化地消除它再次发生的可能性。"
当用户要求执行编程任务时:
直接执行,不需要创建变更目录和走完整流程。
对于单文件 HTML 网站等简单项目,使用轻量流程:
规划(3 个问题)→ 实施+自审 → 交付(git commit + 报告)
详见 .harness/rules/website-workflow.md。
正确做法:spawn 新的 Agent 作为 Evaluator
正确做法:MEDIUM 及以上任务必须先写 spec.md
正确做法:必须按 MUST FIX / SHOULD FIX / LOW / INFO 分级
正确做法:修复后必须重新运行健康检查
正确做法:每个阶段完成后更新 summary.md 的阶段状态表
Harness Engineering 是工作流编排层,gstack 是方法论层:
| gstack 技能 | 用途 | 在 Harness 中的位置 |
|---|---|---|
gstack-openclaw-office-hours | 产品思考、需求分析 | 阶段 1(规划)前可选 |
gstack-openclaw-ceo-review | 战略挑战、范围审查 | 阶段 1 完成后可选 |
| gstack-lite/full | 规划纪律、编码流程 | 嵌入阶段 2-3 |
gstack-openclaw-investigate | 系统化调试 | 阶段 4 发现问题时使用 |
gstack-openclaw-retro | 工程回顾 | 交付后复盘 |