create-harness-vibe-coding 0.8.7 → 0.8.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README-CN.md +163 -105
- package/README.md +179 -244
- package/bin/create-harness-vibe-coding.js +2 -2
- package/docs/images/harness-architecture-light.png +0 -0
- package/docs/images/harness-architecture.drawio +164 -0
- package/docs/images/harness-icon.png +0 -0
- package/package.json +47 -44
- package/src/generator.js +41 -5
- package/src/index.js +86 -13
- package/src/prompts.js +37 -37
- package/templates/common/.claude/agents/architect-manager.md +45 -45
- package/templates/common/.claude/agents/architect.md +31 -31
- package/templates/common/.claude/agents/codebase-explorer.md +45 -0
- package/templates/common/.claude/agents/context-master.md +75 -75
- package/templates/common/.claude/agents/debugger.md +41 -41
- package/templates/common/.claude/agents/docs-researcher.md +41 -41
- package/templates/common/.claude/agents/explore-manager.md +41 -41
- package/templates/common/.claude/agents/implement-manager.md +49 -49
- package/templates/common/.claude/agents/implementer.md +40 -40
- package/templates/common/.claude/agents/memory-master.md +82 -64
- package/templates/common/.claude/agents/planner.md +34 -34
- package/templates/common/.claude/agents/researcher.md +41 -41
- package/templates/common/.claude/agents/review-manager.md +56 -56
- package/templates/common/.claude/agents/reviewer.md +34 -34
- package/templates/common/.claude/agents/task-scribe.md +70 -0
- package/templates/common/.claude/agents/verifier.md +29 -29
- package/templates/common/.claude/commands/wf-help.md +9 -5
- package/templates/common/.claude/commands/wf-update.md +24 -0
- package/templates/common/.claude/rules/ecc/common.md +57 -44
- package/templates/common/.claude/settings.json +13 -0
- package/templates/common/.claude/skills/subagent-orchestrator/SKILL.md +8 -4
- package/templates/common/.claude/skills/wf/SKILL.md +15 -8
- package/templates/common/.claude/skills/wf-auto/SKILL.md +10 -7
- package/templates/common/.claude/skills/wf-learn/SKILL.md +9 -2
- package/templates/common/.claude/skills/wf-max/SKILL.md +23 -5
- package/templates/common/.claude/skills/wf-readme/SKILL.md +49 -49
- package/templates/common/.claude/skills/wf-remove/SKILL.md +7 -7
- package/templates/common/.claude/skills/wf-update/SKILL.md +15 -2
- package/templates/common/.codex/hooks.json +17 -0
- package/templates/common/.harness-version +130 -45
- package/templates/common/.opencode/agents/architect-manager.md +52 -0
- package/templates/common/.opencode/agents/architect.md +35 -0
- package/templates/common/.opencode/agents/codebase-explorer.md +45 -0
- package/templates/common/.opencode/agents/context-master.md +81 -0
- package/templates/common/.opencode/agents/debugger.md +43 -0
- package/templates/common/.opencode/agents/docs-researcher.md +42 -0
- package/templates/common/.opencode/agents/explore-manager.md +49 -0
- package/templates/common/.opencode/agents/implement-manager.md +56 -0
- package/templates/common/.opencode/agents/implementer.md +42 -0
- package/templates/common/.opencode/agents/memory-master.md +88 -0
- package/templates/common/.opencode/agents/planner.md +38 -0
- package/templates/common/.opencode/agents/reflector.md +39 -0
- package/templates/common/.opencode/agents/researcher.md +42 -0
- package/templates/common/.opencode/agents/review-manager.md +63 -0
- package/templates/common/.opencode/agents/reviewer.md +37 -0
- package/templates/common/.opencode/agents/task-scribe.md +70 -0
- package/templates/common/.opencode/agents/tdd-guide.md +83 -0
- package/templates/common/.opencode/agents/test-writer.md +54 -0
- package/templates/common/.opencode/agents/verifier.md +37 -0
- package/templates/common/.opencode/commands/wf-auto-spark.md +15 -0
- package/templates/common/.opencode/commands/wf-auto.md +15 -0
- package/templates/common/.opencode/commands/wf-help.md +27 -0
- package/templates/common/.opencode/commands/wf-learn.md +15 -0
- package/templates/common/.opencode/commands/wf-max.md +15 -0
- package/templates/common/.opencode/commands/wf-readme.md +15 -0
- package/templates/common/.opencode/commands/wf-remove.md +15 -0
- package/templates/common/.opencode/commands/wf-review.md +15 -0
- package/templates/common/.opencode/commands/wf-update.md +24 -0
- package/templates/common/.opencode/commands/wf.md +15 -0
- package/templates/common/.opencode/plugins/harness-wf-status.mjs +135 -0
- package/templates/common/AGENTS.md +2 -29
- package/templates/common/CLAUDE.md +114 -88
- package/templates/common/Harness/ACCEPTANCE_PROTOCOL.md +2 -2
- package/templates/common/{MEMORY.md → Harness/MEMORY.md} +17 -4
- package/templates/common/Harness/MEMORY_PROTOCOL.md +80 -30
- package/templates/common/Harness/PROGRESS.md +17 -17
- package/templates/common/Harness/README.md +58 -19
- package/templates/common/{SETUP.md → Harness/SETUP.md} +278 -276
- package/templates/common/Harness/TASK_ARCHIVE.md +56 -0
- package/templates/common/Harness/WF-AUTO-ANGLES.md +170 -0
- package/templates/common/Harness/WF-AUTO-SPARK.md +10 -19
- package/templates/common/Harness/WF-AUTO.md +93 -167
- package/templates/common/Harness/WF-KERNEL.md +189 -0
- package/templates/common/Harness/WF-MAX.md +60 -328
- package/templates/common/Harness/WF-STATE.md +83 -0
- package/templates/common/Harness/WF.md +117 -237
- package/templates/common/Harness/agent-workflow.md +2 -2
- package/templates/common/Harness/architecture.md +124 -124
- package/templates/common/Harness/context-loading.md +111 -111
- package/templates/common/Harness/dispatch.md +43 -35
- package/templates/common/Harness/extension.md +66 -66
- package/templates/common/Harness/lifecycle.md +20 -20
- package/templates/common/Harness/research/PRD.md +56 -56
- package/templates/common/Harness/research/README.md +169 -169
- package/templates/common/Harness/research/research-results.md +66 -66
- package/templates/common/Harness/scripts/archive-tasks.mjs +239 -0
- package/templates/common/{scripts → Harness/scripts}/scan-clean.mjs +443 -416
- package/templates/common/{scripts → Harness/scripts}/validate-harness.mjs +691 -452
- package/templates/common/Harness/scripts/wf-auto-update-prompt.mjs +258 -0
- package/templates/common/{scripts → Harness/scripts}/wf-remove.mjs +56 -39
- package/templates/common/{scripts → Harness/scripts}/wf-update-check.mjs +632 -599
- package/templates/common/Harness/subagents.md +215 -214
- package/templates/common/Harness/tasks/_template/ARTIFACTS.md +2 -2
- package/templates/common/Harness/tasks/_template/NOTES.md +2 -2
- package/templates/common/Harness/tasks/_template/PLAN.md +5 -0
- package/templates/common/Harness/tasks/_template/STATE.json +23 -0
- package/templates/common/README.md +37 -37
- package/templates/common/memory/agent-lessons-patterns.md +22 -21
- package/templates/common/memory/routes.md +43 -0
- package/templates/common/memory/startup-hints.md +32 -0
- package/templates/common/memory/tool-usage-reflections.md +22 -21
- package/templates/common/memory/user-corrections-preferences.md +23 -21
- package/templates/common/opencode.json +19 -0
- package/templates/optional/catalog.json +49 -33
- package/templates/optional/skills/browser-e2e/.claude/skills/browser-e2e/SKILL.md +42 -42
- package/templates/optional/skills/browser-e2e/.claude/skills/wf-browser/SKILL.md +193 -193
- package/templates/optional/skills/browser-e2e/.opencode/commands/wf-browser.md +15 -0
- package/templates/optional/skills/browser-e2e/Harness/workflows/browser-e2e.md +48 -48
- package/templates/optional/skills/github-pr-review/.claude/skills/github-pr-review/SKILL.md +40 -40
- package/templates/optional/skills/github-pr-review/Harness/workflows/github-pr-review.md +28 -28
- package/templates/optional/skills/python-backend/.claude/skills/python-backend/SKILL.md +40 -40
- package/templates/optional/skills/python-backend/Harness/workflows/python-backend.md +34 -34
- package/templates/optional/skills/ts-react-frontend/.claude/skills/ts-react-frontend/SKILL.md +43 -43
- package/templates/optional/skills/ts-react-frontend/Harness/workflows/ts-react-frontend.md +34 -34
- package/templates/optional/skills/ui-ux-review/.claude/skills/ui-ux-review/SKILL.md +40 -40
- package/templates/optional/skills/ui-ux-review/Harness/workflows/ui-ux-review.md +26 -26
package/README-CN.md
CHANGED
|
@@ -1,129 +1,184 @@
|
|
|
1
|
-
|
|
1
|
+
<p align="center">
|
|
2
|
+
<img src="https://img.shields.io/npm/v/create-harness-vibe-coding?color=blue" alt="npm version">
|
|
3
|
+
<img src="https://img.shields.io/badge/node-%3E%3D18-brightgreen" alt="Node.js >= 18">
|
|
4
|
+
<img src="https://img.shields.io/npm/l/create-harness-vibe-coding" alt="MIT license">
|
|
5
|
+
<img src="https://img.shields.io/github/stars/zingspark/create-harness-vibe-coding?style=social" alt="GitHub stars">
|
|
6
|
+
</p>
|
|
2
7
|
|
|
3
|
-
|
|
8
|
+
<p align="center">
|
|
9
|
+
<img src="docs/images/harness-icon.png" alt="Harness 图标" width="112">
|
|
10
|
+
</p>
|
|
4
11
|
|
|
5
|
-
|
|
12
|
+
<h1 align="center">create-harness-vibe-coding</h1>
|
|
13
|
+
<p align="center">
|
|
14
|
+
<b>让 AI agent 在真实仓库里先理解,再执行,最后验证。</b><br>
|
|
15
|
+
<sub>面向 Claude Code、Codex 和 OpenCode 的 AI 编程工作流脚手架</sub>
|
|
16
|
+
</p>
|
|
6
17
|
|
|
7
|
-
|
|
18
|
+
<p align="center">
|
|
19
|
+
<a href="README.md">English</a> ·
|
|
20
|
+
<a href="https://github.com/zingspark/create-harness-vibe-coding">GitHub</a> ·
|
|
21
|
+
<a href="https://www.npmjs.com/package/create-harness-vibe-coding">npm</a>
|
|
22
|
+
</p>
|
|
8
23
|
|
|
9
|
-
|
|
10
|
-
npx create-harness-vibe-coding@latest my-project
|
|
11
|
-
```
|
|
24
|
+
---
|
|
12
25
|
|
|
13
|
-
##
|
|
26
|
+
## 这是什么?
|
|
14
27
|
|
|
15
|
-
|
|
28
|
+
`create-harness-vibe-coding` 是一个 Node.js CLI。它为 AI 编程 agent 生成一套放在仓库里的工作契约,让 agent 在长任务中保持目标、上下文、边界、验证和记忆的一致。
|
|
16
29
|
|
|
17
|
-
|
|
18
|
-
请完整阅读并严格遵循 https://github.com/zingspark/create-harness-vibe-coding,为当前项目配置 create-harness-vibe-coding。
|
|
19
|
-
```
|
|
30
|
+
它不是 prompt 集合,也不是模型本身。它解决的是另一个问题:同一个 agent 为什么第一轮看起来很好,第二轮却开始忘记决策、扩大修改范围、跳过验证?
|
|
20
31
|
|
|
21
|
-
|
|
32
|
+
## 一句话安装(已有项目推荐)
|
|
22
33
|
|
|
23
|
-
|
|
34
|
+
把下面这句话原样丢给正在使用的 Agent:
|
|
35
|
+
|
|
36
|
+
> 请根据 https://github.com/zingspark/create-harness-vibe-coding/blob/main/README-CN.md 安装 Harness 框架。
|
|
37
|
+
|
|
38
|
+
## 安装说明(Agent instruction)
|
|
39
|
+
|
|
40
|
+
Agent 读取本 README 后,按项目状态选择安装路径:
|
|
24
41
|
|
|
25
|
-
|
|
|
42
|
+
| 项目状态 | Agent 执行 |
|
|
26
43
|
|---|---|
|
|
27
|
-
|
|
|
28
|
-
| `
|
|
29
|
-
| `Harness
|
|
30
|
-
|
|
|
31
|
-
|
|
|
32
|
-
| `.codex/` | Codex config |
|
|
33
|
-
| `/wf` / `$wf` | 长任务 workflow |
|
|
34
|
-
| `/wf-max` / `$wf-max` | 最大并行 workflow |
|
|
35
|
-
| `/wf-review` / `$wf-review` | 交叉审查 workflow |
|
|
36
|
-
| `Harness/scripts/validate-harness.mjs` | 结构校验 |
|
|
44
|
+
| 新项目 | `npx create-harness-vibe-coding@latest my-project -y` |
|
|
45
|
+
| 已有项目 | `npx create-harness-vibe-coding@latest my-project . -y --on-conflict skip --json` |
|
|
46
|
+
| 已有 `Harness/` 且存在 `Harness/scripts/wf-update-check.mjs` | `node Harness/scripts/wf-update-check.mjs --json`,走更新流程,不要重复安装 |
|
|
47
|
+
| 已有 `Harness/` 但缺少 `Harness/scripts/wf-update-check.mjs` | `npx create-harness-vibe-coding@latest my-project . -y --on-conflict skip --json`。然后执行 `node Harness/scripts/wf-update-check.mjs --json` |
|
|
48
|
+
| 安装或更新完成 | `node Harness/scripts/validate-harness.mjs --strict` |
|
|
37
49
|
|
|
38
|
-
|
|
50
|
+
安装后的 instruction:先读取 `CLAUDE.md`、`AGENTS.md`、`Harness/SETUP.md` 和 `Harness/README.md`;遵守项目已有边界;先研究和计划,再修改代码;完成后运行测试、校验和审查,未验证不要声称完成。
|
|
39
51
|
|
|
40
|
-
|
|
52
|
+
用户不需要手动执行命令。把上面一句话交给 Agent,Agent 负责安装、冲突处理、校验和汇报。
|
|
41
53
|
|
|
42
|
-
|
|
43
|
-
- Codex:`.agents/skills/<name>/SKILL.md`,通常用 `$wf` 或 `/skills` 调用。
|
|
44
|
-
- `.codex/` 只放 Codex 配置;runtime hooks 默认不存在,只有 `/wf-auto` 可以显式使用 bounded tick hook 辅助长链路运行。不要再使用根目录 `commands/*.toml` 伪装 Codex slash command。
|
|
54
|
+
## WF 命令怎么选
|
|
45
55
|
|
|
46
|
-
|
|
56
|
+
不确定时,直接用 `/wf-help`。它会返回完整命令表;复杂任务优先用 `/wf`,需要多人并行时用 `/wf-max`。
|
|
47
57
|
|
|
48
|
-
|
|
58
|
+
| 命令 | 什么时候用 | 它会做什么 | 示例 |
|
|
59
|
+
|---|---|---|---|
|
|
60
|
+
| `/wf <任务>` | 多文件、架构、迁移、风险较高或反复失败 | 研究 → 计划 → 实现 → 测试 → 审查 → 验证 → 复盘 | `/wf 重构支付模块并补齐测试` |
|
|
61
|
+
| `/wf-max <任务>` | 任务可拆成多个互不冲突的部分,需要最大并行度 | 在完整 WF 链路上增加 CEO → Manager → Worker 分工和并行波次 | `/wf-max 并行升级前端、后端和文档` |
|
|
62
|
+
| `/wf-auto` | 希望 Agent 持续自我优化,通过自适应探测选择 | 持续执行优化循环,每轮保留计划、证据和反馈 | `/wf-auto 优化这个项目的稳定性` |
|
|
63
|
+
| `/wf-auto-spark` | 需要外部灵感、竞品方向或长期路线图 | 搜索外部 spark,绑定 North Star 和里程碑,限制偏离范围 | `/wf-auto-spark 探索产品增长方向` |
|
|
64
|
+
| `/wf-review [重点]` | 需要第二意见、跨模型审查或上线前复核 | 调用其他 Agent 做独立审查,并按严重程度反馈 | `/wf-review 重点检查安全和数据丢失` |
|
|
65
|
+
| `/wf-learn` | 同类错误反复出现,或一次任务结束后要沉淀经验 | 汇总上下文、记忆和项目经验,形成下一次可复用规则 | `/wf-learn 总结这次返修原因` |
|
|
66
|
+
| `/wf-browser <任务>` | 浏览器冒烟、E2E、截图、表单或页面验证 | 使用真实浏览器完成操作并提供截图、追踪和验证证据 | `/wf-browser 验证登录和支付流程` |
|
|
67
|
+
| `/wf-readme <任务>` | README、安装文档、架构图或项目说明需要重写 | 保留事实,整理结构,补充安装和使用说明 | `/wf-readme 优化中文 README` |
|
|
68
|
+
| `/wf-update` | 已经安装 Harness,需要检查和应用框架更新 | 比较版本,自动处理安全变更,把语义冲突留给 Agent | `/wf-update` |
|
|
69
|
+
| `/wf-remove` | 需要卸载 Harness | 自动清理安全文件,保留用户数据,冲突文件先确认 | `/wf-remove` |
|
|
70
|
+
| `/wf-help` | 不知道该用哪个命令 | 只返回命令、用途和用法,不启动工作流 | `/wf-help` |
|
|
49
71
|
|
|
50
|
-
|
|
51
|
-
|---|---|
|
|
52
|
-
| 空项目或新项目 | 运行脚手架,然后遵循 `Harness/SETUP.md` 做 0-1 bootstrap |
|
|
53
|
-
| 已有项目,没有 `Harness/` | 先扫描项目事实,先 `--dry-run`,保留现有文件,只合并缺失的 Harness 指南 |
|
|
54
|
-
| 老项目或老架构迁移 | 现有代码和文档是事实来源,先 dry-run,再用 `Harness/SETUP.md` 从事实中补 PRD、研究、架构和任务计划 |
|
|
55
|
-
| 已经有 `Harness/` | 不要把 `npx` 当更新器;先问用户是运行 `/wf-update` / `$wf-update` / `node Harness/scripts/wf-update-check.mjs`,保持不动,还是批准后移除重装 |
|
|
72
|
+
Claude Code 使用 `/wf-*`;Codex 使用对应的 `$wf-*`;OpenCode 使用已注册的命令或 Agent instruction。`/wf-auto` 和 `/wf-auto-spark` 是持续模式,启动前要给 Agent 清晰的目标、范围和验收标准。
|
|
56
73
|
|
|
57
|
-
|
|
74
|
+
常见场景可以这样起步:Web/API 先看正确性、安全、可靠性和验证;CLI/SDK 先看契约、兼容性、错误体验和文档;AI Agent 先看上下文质量、工具安全、评测和恢复;数据任务先看幂等性、失败恢复和可观测性。完整的自适应选择规则见 [WF-AUTO-ANGLES.md](Harness/WF-AUTO-ANGLES.md)。
|
|
58
75
|
|
|
59
|
-
##
|
|
76
|
+
## 它改变了什么?
|
|
60
77
|
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
78
|
+
| 没有工作契约 | 使用 Harness |
|
|
79
|
+
|---|---|
|
|
80
|
+
| 想到哪写到哪,靠 prompt 维持方向 | 目标 → 约束 → 验收条件,先定义完成边界 |
|
|
81
|
+
| Agent 读取整个仓库,关键信息被噪声淹没 | 路由按任务加载最小必要上下文 |
|
|
82
|
+
| 长任务中断后重新发现项目事实 | `PROGRESS.md`、任务胶囊和 Memory 保存接力信息 |
|
|
83
|
+
| 文件冲突靠人工临场判断 | 脚本先分类 create / skip / backup / overwrite / conflict |
|
|
84
|
+
| “看起来完成了”就结束 | 测试、校验器、审查和人工证据共同决定完成 |
|
|
64
85
|
|
|
65
|
-
|
|
66
|
-
npx create-harness-vibe-coding@latest my-app . -y --on-conflict skip --json
|
|
67
|
-
```
|
|
86
|
+
模型不是唯一变量。给它一个有边界、有记忆、会自检的工作台,普通模型也能少忘事、少跑偏、少让你回来救火。
|
|
68
87
|
|
|
69
|
-
|
|
88
|
+
## 工作方式
|
|
70
89
|
|
|
71
|
-
|
|
90
|
+
Harness 把一次模糊请求变成一条可以追踪的路径:
|
|
72
91
|
|
|
73
|
-
```
|
|
74
|
-
|
|
92
|
+
```text
|
|
93
|
+
需求
|
|
94
|
+
↓
|
|
95
|
+
研究 → PRD → 架构 → 验收条件
|
|
96
|
+
↓
|
|
97
|
+
任务拆分 → 实现 → 测试 → 审查
|
|
98
|
+
↓
|
|
99
|
+
验证 → 学习 → 更新下一次任务
|
|
75
100
|
```
|
|
76
101
|
|
|
77
|
-
|
|
102
|
+
### 三个核心支柱
|
|
78
103
|
|
|
79
|
-
|
|
104
|
+
1. **目标与约束**:明确要解决什么、不能改什么、怎样算完成。
|
|
105
|
+
2. **上下文与记忆**:通过路由、按需加载和持久记忆,把正确的信息交给正确的 agent。
|
|
106
|
+
3. **分解与反馈**:把长任务切成有边界的小任务,每一步都留下验证和恢复入口。
|
|
80
107
|
|
|
81
|
-
|
|
82
|
-
npx create-harness-vibe-coding@latest my-app -y --with browser-e2e
|
|
83
|
-
npx create-harness-vibe-coding@latest my-app -y --preset web-app
|
|
84
|
-
npx create-harness-vibe-coding@latest my-app -y --recommend superpowers,codegraph
|
|
85
|
-
```
|
|
108
|
+
## 架构图
|
|
86
109
|
|
|
87
|
-
|
|
110
|
+
<p align="center">
|
|
111
|
+
<a href="docs/images/harness-architecture-light.png">
|
|
112
|
+
<img src="docs/images/harness-architecture-light.png" alt="Harness Light 架构图:开发者请求经过目标与约束、优质上下文、分解与反馈,进入执行、验证、学习、更新闭环" width="100%">
|
|
113
|
+
</a>
|
|
114
|
+
<br>
|
|
115
|
+
<sub>
|
|
116
|
+
Light 风格架构图 · <a href="docs/images/harness-architecture.drawio">下载可编辑 Drawio 源文件</a>
|
|
117
|
+
</sub>
|
|
118
|
+
</p>
|
|
119
|
+
|
|
120
|
+
## 你会得到什么
|
|
121
|
+
|
|
122
|
+
| 目录或文件 | 作用 |
|
|
88
123
|
|---|---|
|
|
89
|
-
|
|
|
90
|
-
|
|
|
91
|
-
|
|
|
92
|
-
|
|
|
93
|
-
|
|
|
124
|
+
| `CLAUDE.md`、`AGENTS.md` | agent 启动入口和角色注册 |
|
|
125
|
+
| `Harness/README.md`、`Harness/MEMORY.md` | 按任务路由文档和资源 |
|
|
126
|
+
| `Harness/tasks/`、`Harness/PROGRESS.md` | 跨会话保存任务状态和接力信息 |
|
|
127
|
+
| `.claude/`、`.agents/`、`.codex/`、`.opencode/` | 不同 coding agent 的发现入口和配置 |
|
|
128
|
+
| `templates/common/`、`templates/optional/` | 可生成脚手架的声明式源文件 |
|
|
129
|
+
| `Harness/scripts/validate-harness.mjs` | 检查脚手架结构和 bootstrap 完整度 |
|
|
94
130
|
|
|
95
|
-
|
|
131
|
+
生成项目不会替你选择业务技术栈,也不会生成业务代码。你可以在 bootstrap 后自由选择 React、FastAPI 或其他技术栈。
|
|
96
132
|
|
|
97
|
-
|
|
133
|
+
## 稳定性、返修率与人工纠偏:别让 Agent 靠运气交付
|
|
98
134
|
|
|
99
|
-
|
|
100
|
-
|---|---|---|
|
|
101
|
-
| `superpowers` | 社区 skill registry 和 agent workflow | <https://github.com/obra/Superpowers> |
|
|
102
|
-
| `caveman` | 简洁低 token 的 agent 行为和记忆压缩 | <https://github.com/JuliusBrussee/caveman> |
|
|
103
|
-
| `agent-research` | 文献、产品、依赖和生态研究类 agent skills | <https://github.com/lingzhi227/agent-research-skills> |
|
|
104
|
-
| `codegraph` | 代码图谱或仓库地图工具 | <https://github.com/colbymchenry/codegraph> |
|
|
135
|
+
先把话说满:Harness 不是更花哨的 prompt,而是给 Agent 装上刹车、仪表盘和黑匣子。没有工作契约,任务能不能收尾往往靠运气;有了 Harness,目标、边界、验证和返修都会留下证据。
|
|
105
136
|
|
|
106
|
-
|
|
137
|
+
数字也必须说清楚:当前仓库还没有发布受控 A/B 实验,因此不能把“稳定性提升 50%”冒充成真实结果。真正能对外说的数字,只有用同一个模型、同一个仓库、同一个任务、同一个预算跑出来的结果。基准对比使用 `bare-agent`、`harness-wf`、`harness-wf-max` 三种模式。
|
|
107
138
|
|
|
108
|
-
|
|
139
|
+
| 你真正关心的结果 | 没有 Harness | 使用 Harness | 可复现实测口径 |
|
|
140
|
+
|---|---|---|---|
|
|
141
|
+
| 稳定性 | 能跑就算完成,覆盖文件和漏验证常常事后才发现 | 写入前分类冲突,完成后必须经过测试、校验和审查 | 验证通过率、未授权覆盖次数、安全事故数 |
|
|
142
|
+
| 返修率 | 返工藏在下一轮 prompt 里,没人知道到底重做了多少 | 任务胶囊、验收条件和验证闭环把返修显性化 | 后续纠偏运行次数 ÷ 已完成任务数 |
|
|
143
|
+
| 人工纠偏 | 人类不断补上下文、盯进度、救火 | 人类只处理语义冲突和关键决策 | 每个任务的 `humanInterventions` |
|
|
144
|
+
| 中断恢复 | Agent 重新扫描仓库,决策和背景再来一遍 | `PROGRESS.md`、任务状态和持久记忆直接接力 | 恢复时间、重复发现时间 |
|
|
145
|
+
| 成本 | 前期省几分钟,后期可能付出几小时返工 | 有明确初始化成本,但时间、token 和验证开销可记录 | duration、tokenEstimate、验证命令 |
|
|
109
146
|
|
|
110
|
-
|
|
147
|
+
当前仓库能直接验证的是工程底座:冲突策略、写入边界、验证器、任务记录和 `humanInterventions` 指标已经存在;收益百分比要由 HarnessBench 实测产生。详见 [HarnessBench v0.1 评分设计](Harness/tasks/task-framework-metrics-and-entry-contract/PLAN.md#5-metrics-and-scoring)。
|
|
111
148
|
|
|
112
|
-
|
|
149
|
+
## 为什么人们会需要它
|
|
113
150
|
|
|
114
|
-
|
|
115
|
-
npx create-harness-vibe-coding@latest my-app . -y --dry-run --json
|
|
116
|
-
```
|
|
151
|
+
用三个真实顾虑来理解它:
|
|
117
152
|
|
|
118
|
-
|
|
153
|
+
| 顾虑 | 你担心什么 | Harness 怎么回答 |
|
|
154
|
+
|---|---|---|
|
|
155
|
+
| **嗔:损失厌恶** | 文件被覆盖、上下文漂移、任务返工 | 安全合并、冲突分类、写入边界、验证器 |
|
|
156
|
+
| **贪:效率杠杆** | 同一个 agent 反复解释,长任务总要重来 | 路由、任务胶囊、并行角色、持久记忆 |
|
|
157
|
+
| **痴:流程盲点** | 以为更好的 prompt 就能解决所有问题 | 把目标、约束、测试、审查和反馈变成可检查的流程 |
|
|
119
158
|
|
|
120
|
-
|
|
159
|
+
## 可选工作流
|
|
121
160
|
|
|
122
|
-
|
|
123
|
-
- 已有 `Harness/`:走 `/wf-update` / `$wf-update`、dry-run 补缺、保持不动,还是批准后移除重装?
|
|
124
|
-
- 排除已安装能力后,还要启用哪些本地 workflow,或只记录哪些外部 GitHub 推荐链接?
|
|
161
|
+
把需求直接交给 Agent:
|
|
125
162
|
|
|
126
|
-
|
|
163
|
+
> 请为当前 Harness 项目加入 `browser-e2e` 和 `ui-ux-review`,保留已有文件,完成后运行严格校验,并准确汇报发生了什么变化。
|
|
164
|
+
|
|
165
|
+
| 工作流 | 适合场景 |
|
|
166
|
+
|---|---|
|
|
167
|
+
| `browser-e2e` | 浏览器截图、追踪、冒烟测试 |
|
|
168
|
+
| `ui-ux-review` | 响应式、无障碍和界面打磨 |
|
|
169
|
+
| `ts-react-frontend` | TypeScript、React、Vite 项目 |
|
|
170
|
+
| `python-backend` | FastAPI、pytest 项目 |
|
|
171
|
+
| `github-pr-review` | PR diff 审查和 CI 证据 |
|
|
172
|
+
|
|
173
|
+
外部推荐只会记录到 `Harness/SETUP.md`,不会自动安装:
|
|
174
|
+
|
|
175
|
+
| 推荐 | 用途 | 来源 |
|
|
176
|
+
|---|---|---|
|
|
177
|
+
| `superpowers` | 社区 agent skills 和开发工作流 | [Superpowers](https://github.com/obra/Superpowers) |
|
|
178
|
+
| `caveman` | 简洁、低 token 的 agent 行为 | [Caveman](https://github.com/JuliusBrussee/caveman) |
|
|
179
|
+
| `agent-research` | 文献、产品、依赖和生态研究 | [agent-research-skills](https://github.com/lingzhi227/agent-research-skills) |
|
|
180
|
+
| `codegraph` | 代码图谱和仓库地图 | [Codegraph](https://github.com/colbymchenry/codegraph) |
|
|
181
|
+
| `grill-me` | 实现前对计划或设计做高压追问 | [Grill Me](https://github.com/mattpocock/skills/tree/main/skills/productivity/grill-me) |
|
|
127
182
|
|
|
128
183
|
## 验证
|
|
129
184
|
|
|
@@ -131,34 +186,37 @@ npx create-harness-vibe-coding@latest my-app . -y --dry-run --json
|
|
|
131
186
|
# 当前脚手架仓库
|
|
132
187
|
npm test
|
|
133
188
|
|
|
134
|
-
#
|
|
189
|
+
# 生成项目安全合并后
|
|
190
|
+
node Harness/scripts/validate-harness.mjs
|
|
191
|
+
|
|
192
|
+
# bootstrap 完成后或发布前
|
|
135
193
|
node Harness/scripts/validate-harness.mjs --strict
|
|
136
194
|
```
|
|
137
195
|
|
|
196
|
+
## 适配范围与体积
|
|
197
|
+
|
|
198
|
+
- 支持 Claude Code、Codex 和 OpenCode 的共享 Harness 工作流。
|
|
199
|
+
- Node.js ≥ 18。
|
|
200
|
+
- 运行时无额外依赖;CLI 依赖 `@clack/prompts` 和 `picocolors`。
|
|
201
|
+
- 生成的是工作基础设施,不是业务应用代码。
|
|
202
|
+
|
|
138
203
|
## 项目结构
|
|
139
204
|
|
|
140
205
|
```text
|
|
141
206
|
my-project/
|
|
142
|
-
├── CLAUDE.md
|
|
143
|
-
├── AGENTS.md
|
|
207
|
+
├── CLAUDE.md / AGENTS.md ← agent 入口
|
|
144
208
|
├── Harness/
|
|
145
|
-
│ ├── README.md
|
|
146
|
-
│ ├── SETUP.md
|
|
147
|
-
│ ├── MEMORY.md
|
|
148
|
-
│ ├── PROGRESS.md
|
|
149
|
-
│ ├──
|
|
150
|
-
│ ├──
|
|
151
|
-
│
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
├── .
|
|
155
|
-
|
|
156
|
-
│ ├── skills/
|
|
157
|
-
│ └── rules/
|
|
158
|
-
├── .agents/
|
|
159
|
-
│ └── skills/
|
|
160
|
-
├── .codex/
|
|
161
|
-
└── tests/
|
|
209
|
+
│ ├── README.md ← 文档路由器
|
|
210
|
+
│ ├── SETUP.md ← bootstrap 指南
|
|
211
|
+
│ ├── MEMORY.md ← 资源索引
|
|
212
|
+
│ ├── PROGRESS.md ← 任务追踪器
|
|
213
|
+
│ ├── tasks/ ← 任务胶囊
|
|
214
|
+
│ ├── research/ ← PRD 与研究模板
|
|
215
|
+
│ └── scripts/ ← 校验器
|
|
216
|
+
├── .claude/ ← Claude Code 配置
|
|
217
|
+
├── .agents/skills/ ← Codex repo skills
|
|
218
|
+
├── .codex/ ← Codex 配置
|
|
219
|
+
└── .opencode/ ← OpenCode 配置
|
|
162
220
|
```
|
|
163
221
|
|
|
164
|
-
MIT
|
|
222
|
+
MIT © [zingspark](https://github.com/zingspark)
|