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.
Files changed (126) hide show
  1. package/README-CN.md +163 -105
  2. package/README.md +179 -244
  3. package/bin/create-harness-vibe-coding.js +2 -2
  4. package/docs/images/harness-architecture-light.png +0 -0
  5. package/docs/images/harness-architecture.drawio +164 -0
  6. package/docs/images/harness-icon.png +0 -0
  7. package/package.json +47 -44
  8. package/src/generator.js +41 -5
  9. package/src/index.js +86 -13
  10. package/src/prompts.js +37 -37
  11. package/templates/common/.claude/agents/architect-manager.md +45 -45
  12. package/templates/common/.claude/agents/architect.md +31 -31
  13. package/templates/common/.claude/agents/codebase-explorer.md +45 -0
  14. package/templates/common/.claude/agents/context-master.md +75 -75
  15. package/templates/common/.claude/agents/debugger.md +41 -41
  16. package/templates/common/.claude/agents/docs-researcher.md +41 -41
  17. package/templates/common/.claude/agents/explore-manager.md +41 -41
  18. package/templates/common/.claude/agents/implement-manager.md +49 -49
  19. package/templates/common/.claude/agents/implementer.md +40 -40
  20. package/templates/common/.claude/agents/memory-master.md +82 -64
  21. package/templates/common/.claude/agents/planner.md +34 -34
  22. package/templates/common/.claude/agents/researcher.md +41 -41
  23. package/templates/common/.claude/agents/review-manager.md +56 -56
  24. package/templates/common/.claude/agents/reviewer.md +34 -34
  25. package/templates/common/.claude/agents/task-scribe.md +70 -0
  26. package/templates/common/.claude/agents/verifier.md +29 -29
  27. package/templates/common/.claude/commands/wf-help.md +9 -5
  28. package/templates/common/.claude/commands/wf-update.md +24 -0
  29. package/templates/common/.claude/rules/ecc/common.md +57 -44
  30. package/templates/common/.claude/settings.json +13 -0
  31. package/templates/common/.claude/skills/subagent-orchestrator/SKILL.md +8 -4
  32. package/templates/common/.claude/skills/wf/SKILL.md +15 -8
  33. package/templates/common/.claude/skills/wf-auto/SKILL.md +10 -7
  34. package/templates/common/.claude/skills/wf-learn/SKILL.md +9 -2
  35. package/templates/common/.claude/skills/wf-max/SKILL.md +23 -5
  36. package/templates/common/.claude/skills/wf-readme/SKILL.md +49 -49
  37. package/templates/common/.claude/skills/wf-remove/SKILL.md +7 -7
  38. package/templates/common/.claude/skills/wf-update/SKILL.md +15 -2
  39. package/templates/common/.codex/hooks.json +17 -0
  40. package/templates/common/.harness-version +130 -45
  41. package/templates/common/.opencode/agents/architect-manager.md +52 -0
  42. package/templates/common/.opencode/agents/architect.md +35 -0
  43. package/templates/common/.opencode/agents/codebase-explorer.md +45 -0
  44. package/templates/common/.opencode/agents/context-master.md +81 -0
  45. package/templates/common/.opencode/agents/debugger.md +43 -0
  46. package/templates/common/.opencode/agents/docs-researcher.md +42 -0
  47. package/templates/common/.opencode/agents/explore-manager.md +49 -0
  48. package/templates/common/.opencode/agents/implement-manager.md +56 -0
  49. package/templates/common/.opencode/agents/implementer.md +42 -0
  50. package/templates/common/.opencode/agents/memory-master.md +88 -0
  51. package/templates/common/.opencode/agents/planner.md +38 -0
  52. package/templates/common/.opencode/agents/reflector.md +39 -0
  53. package/templates/common/.opencode/agents/researcher.md +42 -0
  54. package/templates/common/.opencode/agents/review-manager.md +63 -0
  55. package/templates/common/.opencode/agents/reviewer.md +37 -0
  56. package/templates/common/.opencode/agents/task-scribe.md +70 -0
  57. package/templates/common/.opencode/agents/tdd-guide.md +83 -0
  58. package/templates/common/.opencode/agents/test-writer.md +54 -0
  59. package/templates/common/.opencode/agents/verifier.md +37 -0
  60. package/templates/common/.opencode/commands/wf-auto-spark.md +15 -0
  61. package/templates/common/.opencode/commands/wf-auto.md +15 -0
  62. package/templates/common/.opencode/commands/wf-help.md +27 -0
  63. package/templates/common/.opencode/commands/wf-learn.md +15 -0
  64. package/templates/common/.opencode/commands/wf-max.md +15 -0
  65. package/templates/common/.opencode/commands/wf-readme.md +15 -0
  66. package/templates/common/.opencode/commands/wf-remove.md +15 -0
  67. package/templates/common/.opencode/commands/wf-review.md +15 -0
  68. package/templates/common/.opencode/commands/wf-update.md +24 -0
  69. package/templates/common/.opencode/commands/wf.md +15 -0
  70. package/templates/common/.opencode/plugins/harness-wf-status.mjs +135 -0
  71. package/templates/common/AGENTS.md +2 -29
  72. package/templates/common/CLAUDE.md +114 -88
  73. package/templates/common/Harness/ACCEPTANCE_PROTOCOL.md +2 -2
  74. package/templates/common/{MEMORY.md → Harness/MEMORY.md} +17 -4
  75. package/templates/common/Harness/MEMORY_PROTOCOL.md +80 -30
  76. package/templates/common/Harness/PROGRESS.md +17 -17
  77. package/templates/common/Harness/README.md +58 -19
  78. package/templates/common/{SETUP.md → Harness/SETUP.md} +278 -276
  79. package/templates/common/Harness/TASK_ARCHIVE.md +56 -0
  80. package/templates/common/Harness/WF-AUTO-ANGLES.md +170 -0
  81. package/templates/common/Harness/WF-AUTO-SPARK.md +10 -19
  82. package/templates/common/Harness/WF-AUTO.md +93 -167
  83. package/templates/common/Harness/WF-KERNEL.md +189 -0
  84. package/templates/common/Harness/WF-MAX.md +60 -328
  85. package/templates/common/Harness/WF-STATE.md +83 -0
  86. package/templates/common/Harness/WF.md +117 -237
  87. package/templates/common/Harness/agent-workflow.md +2 -2
  88. package/templates/common/Harness/architecture.md +124 -124
  89. package/templates/common/Harness/context-loading.md +111 -111
  90. package/templates/common/Harness/dispatch.md +43 -35
  91. package/templates/common/Harness/extension.md +66 -66
  92. package/templates/common/Harness/lifecycle.md +20 -20
  93. package/templates/common/Harness/research/PRD.md +56 -56
  94. package/templates/common/Harness/research/README.md +169 -169
  95. package/templates/common/Harness/research/research-results.md +66 -66
  96. package/templates/common/Harness/scripts/archive-tasks.mjs +239 -0
  97. package/templates/common/{scripts → Harness/scripts}/scan-clean.mjs +443 -416
  98. package/templates/common/{scripts → Harness/scripts}/validate-harness.mjs +691 -452
  99. package/templates/common/Harness/scripts/wf-auto-update-prompt.mjs +258 -0
  100. package/templates/common/{scripts → Harness/scripts}/wf-remove.mjs +56 -39
  101. package/templates/common/{scripts → Harness/scripts}/wf-update-check.mjs +632 -599
  102. package/templates/common/Harness/subagents.md +215 -214
  103. package/templates/common/Harness/tasks/_template/ARTIFACTS.md +2 -2
  104. package/templates/common/Harness/tasks/_template/NOTES.md +2 -2
  105. package/templates/common/Harness/tasks/_template/PLAN.md +5 -0
  106. package/templates/common/Harness/tasks/_template/STATE.json +23 -0
  107. package/templates/common/README.md +37 -37
  108. package/templates/common/memory/agent-lessons-patterns.md +22 -21
  109. package/templates/common/memory/routes.md +43 -0
  110. package/templates/common/memory/startup-hints.md +32 -0
  111. package/templates/common/memory/tool-usage-reflections.md +22 -21
  112. package/templates/common/memory/user-corrections-preferences.md +23 -21
  113. package/templates/common/opencode.json +19 -0
  114. package/templates/optional/catalog.json +49 -33
  115. package/templates/optional/skills/browser-e2e/.claude/skills/browser-e2e/SKILL.md +42 -42
  116. package/templates/optional/skills/browser-e2e/.claude/skills/wf-browser/SKILL.md +193 -193
  117. package/templates/optional/skills/browser-e2e/.opencode/commands/wf-browser.md +15 -0
  118. package/templates/optional/skills/browser-e2e/Harness/workflows/browser-e2e.md +48 -48
  119. package/templates/optional/skills/github-pr-review/.claude/skills/github-pr-review/SKILL.md +40 -40
  120. package/templates/optional/skills/github-pr-review/Harness/workflows/github-pr-review.md +28 -28
  121. package/templates/optional/skills/python-backend/.claude/skills/python-backend/SKILL.md +40 -40
  122. package/templates/optional/skills/python-backend/Harness/workflows/python-backend.md +34 -34
  123. package/templates/optional/skills/ts-react-frontend/.claude/skills/ts-react-frontend/SKILL.md +43 -43
  124. package/templates/optional/skills/ts-react-frontend/Harness/workflows/ts-react-frontend.md +34 -34
  125. package/templates/optional/skills/ui-ux-review/.claude/skills/ui-ux-review/SKILL.md +40 -40
  126. 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
- # create-harness-vibe-coding
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
- AI coding agent 用的 0-1 产品脚手架。核心目标:让 agent 先读路由、先确认事实、再写代码。
8
+ <p align="center">
9
+ <img src="docs/images/harness-icon.png" alt="Harness 图标" width="112">
10
+ </p>
4
11
 
5
- English README: [README.md](README.md)
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
- ```bash
10
- npx create-harness-vibe-coding@latest my-project
11
- ```
24
+ ---
12
25
 
13
- ## 一句话交给 Agent
26
+ ## 这是什么?
14
27
 
15
- 已有项目时,不要让 agent 猜。把这句话贴给它:
28
+ `create-harness-vibe-coding` 是一个 Node.js CLI。它为 AI 编程 agent 生成一套放在仓库里的工作契约,让 agent 在长任务中保持目标、上下文、边界、验证和记忆的一致。
16
29
 
17
- ```text
18
- 请完整阅读并严格遵循 https://github.com/zingspark/create-harness-vibe-coding,为当前项目配置 create-harness-vibe-coding。
19
- ```
30
+ 它不是 prompt 集合,也不是模型本身。它解决的是另一个问题:同一个 agent 为什么第一轮看起来很好,第二轮却开始忘记决策、扩大修改范围、跳过验证?
20
31
 
21
- 复杂规则不塞进这句话里。README 和生成后的 `Harness/SETUP.md` 才是安装、升级、合并和可选能力选择的准则。
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
- | `CLAUDE.md` + `AGENTS.md` | 根目录 agent 入口 |
28
- | `Harness/README.md` | Harness 路由器 |
29
- | `Harness/tasks/` + `Harness/PROGRESS.md` | 跨会话任务状态 |
30
- | `.claude/skills/` | Claude Code workflow skill 入口 |
31
- | `.agents/skills/` | Codex repo skill 入口 |
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
- `Harness/` 承载所有 Harness 文档。不要把 Harness 文件放进 `docs/`。
50
+ 安装后的 instruction:先读取 `CLAUDE.md`、`AGENTS.md`、`Harness/SETUP.md` `Harness/README.md`;遵守项目已有边界;先研究和计划,再修改代码;完成后运行测试、校验和审查,未验证不要声称完成。
39
51
 
40
- Claude Code 和 Codex 共用同一套核心 Harness 文档,但发现入口不同:
52
+ 用户不需要手动执行命令。把上面一句话交给 Agent,Agent 负责安装、冲突处理、校验和汇报。
41
53
 
42
- - Claude Code:`.claude/skills/<name>/SKILL.md`,通常用 `/wf` 调用。
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
- 写文件前,agent 必须先判断当前项目属于哪一种:
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
- 根目录扫描必须包括:顶层文件、`CLAUDE.md`、`AGENTS.md`、`.claude/`、`.agents/`、`.codex/`、`Harness/`、package 文件、CI 文件、应用入口、测试/构建命令、已有文档、已经安装的 skills/plugins/rules。推荐可选能力前,必须先排除已经安装的能力,避免重复推荐。
74
+ 常见场景可以这样起步:Web/API 先看正确性、安全、可靠性和验证;CLI/SDK 先看契约、兼容性、错误体验和文档;AI Agent 先看上下文质量、工具安全、评测和恢复;数据任务先看幂等性、失败恢复和可观测性。完整的自适应选择规则见 [WF-AUTO-ANGLES.md](Harness/WF-AUTO-ANGLES.md)。
58
75
 
59
- ## 已有项目安全合并
76
+ ## 它改变了什么?
60
77
 
61
- ```bash
62
- # 先用机器可读预览,不写文件
63
- npx create-harness-vibe-coding@latest my-app . -y --dry-run --json
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
- JSON 输出就是 agent 的安装报告:`scan` 代替手写根目录探测,`plan.create` 交给脚本处理,只有 `agent.aiMergeRequired` 里的文件需要 AI 语义比较和用户监督合并。除非这个列表里出现冲突文件,否则不要读取包源码或模板。
88
+ ## 工作方式
70
89
 
71
- `npx` 是安装和安全补缺入口,不是已安装 Harness 的同步更新器。项目里已经有 `Harness/` 后,Claude Code 用 `/wf-update`,Codex 用 `$wf-update`,或者直接运行:
90
+ Harness 把一次模糊请求变成一条可以追踪的路径:
72
91
 
73
- ```bash
74
- node Harness/scripts/wf-update-check.mjs
92
+ ```text
93
+ 需求
94
+
95
+ 研究 → PRD → 架构 → 验收条件
96
+
97
+ 任务拆分 → 实现 → 测试 → 审查
98
+
99
+ 验证 → 学习 → 更新下一次任务
75
100
  ```
76
101
 
77
- 原因很直接:`CLAUDE.md`、`AGENTS.md`、`.claude/`、`.agents/`、`.codex/` 和用户改过的 Harness 文档都需要 agent 带着上下文做合并决策。
102
+ ### 三个核心支柱
78
103
 
79
- ## 可选能力
104
+ 1. **目标与约束**:明确要解决什么、不能改什么、怎样算完成。
105
+ 2. **上下文与记忆**:通过路由、按需加载和持久记忆,把正确的信息交给正确的 agent。
106
+ 3. **分解与反馈**:把长任务切成有边界的小任务,每一步都留下验证和恢复入口。
80
107
 
81
- ```bash
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
- | `--with <ids>` | 安装本地 workflow |
90
- | `--preset <name>` | 安装预设,如 `web-app`、`fullstack` |
91
- | `--without <ids>` | 从预设中排除 workflow |
92
- | `--recommend <ids>` | 记录外部能力建议,不自动安装 |
93
- | `--list-options` | 查看本地 workflow 和外部建议 |
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
- 本地 workflow:`browser-e2e`、`ui-ux-review`、`ts-react-frontend`、`python-backend`、`github-pr-review`。
131
+ 生成项目不会替你选择业务技术栈,也不会生成业务代码。你可以在 bootstrap 后自由选择 React、FastAPI 或其他技术栈。
96
132
 
97
- 外部建议只写入 `Harness/SETUP.md`,不会自动安装第三方技能:
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
- 这些只是给用户 agent 自行评估的 GitHub 链接。脚手架不维护第三方安装步骤,只在确认项目尚未安装同类能力后记录用户选择。
137
+ 数字也必须说清楚:当前仓库还没有发布受控 A/B 实验,因此不能把“稳定性提升 50%”冒充成真实结果。真正能对外说的数字,只有用同一个模型、同一个仓库、同一个任务、同一个预算跑出来的结果。基准对比使用 `bare-agent`、`harness-wf`、`harness-wf-max` 三种模式。
107
138
 
108
- 不加 `-y` 时,CLI 会提供 checkbox/multiselect 选择。
139
+ | 你真正关心的结果 | 没有 Harness | 使用 Harness | 可复现实测口径 |
140
+ |---|---|---|---|
141
+ | 稳定性 | 能跑就算完成,覆盖文件和漏验证常常事后才发现 | 写入前分类冲突,完成后必须经过测试、校验和审查 | 验证通过率、未授权覆盖次数、安全事故数 |
142
+ | 返修率 | 返工藏在下一轮 prompt 里,没人知道到底重做了多少 | 任务胶囊、验收条件和验证闭环把返修显性化 | 后续纠偏运行次数 ÷ 已完成任务数 |
143
+ | 人工纠偏 | 人类不断补上下文、盯进度、救火 | 人类只处理语义冲突和关键决策 | 每个任务的 `humanInterventions` |
144
+ | 中断恢复 | Agent 重新扫描仓库,决策和背景再来一遍 | `PROGRESS.md`、任务状态和持久记忆直接接力 | 恢复时间、重复发现时间 |
145
+ | 成本 | 前期省几分钟,后期可能付出几小时返工 | 有明确初始化成本,但时间、token 和验证开销可记录 | duration、tokenEstimate、验证命令 |
109
146
 
110
- ## Agent-link 安装前置问题
147
+ 当前仓库能直接验证的是工程底座:冲突策略、写入边界、验证器、任务记录和 `humanInterventions` 指标已经存在;收益百分比要由 HarnessBench 实测产生。详见 [HarnessBench v0.1 评分设计](Harness/tasks/task-framework-metrics-and-entry-contract/PLAN.md#5-metrics-and-scoring)。
111
148
 
112
- Agent 应先拿机器可读安装报告,再最多问 3 个阻塞问题:
149
+ ## 为什么人们会需要它
113
150
 
114
- ```bash
115
- npx create-harness-vibe-coding@latest my-app . -y --dry-run --json
116
- ```
151
+ 用三个真实顾虑来理解它:
117
152
 
118
- 使用 `scan.markers`,不要手写一串根目录探测命令。`plan.create` 由脚本处理;只有 `agent.aiMergeRequired` 里的文件需要 AI 比较并由用户监督合并。
153
+ | 顾虑 | 你担心什么 | Harness 怎么回答 |
154
+ |---|---|---|
155
+ | **嗔:损失厌恶** | 文件被覆盖、上下文漂移、任务返工 | 安全合并、冲突分类、写入边界、验证器 |
156
+ | **贪:效率杠杆** | 同一个 agent 反复解释,长任务总要重来 | 路由、任务胶囊、并行角色、持久记忆 |
157
+ | **痴:流程盲点** | 以为更好的 prompt 就能解决所有问题 | 把目标、约束、测试、审查和反馈变成可检查的流程 |
119
158
 
120
- 只在影响写入时提问:
159
+ ## 可选工作流
121
160
 
122
- - 已有 `CLAUDE.md` 或 `AGENTS.md`:合并缺失 Harness 指南、保持不动,还是跳过?
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
- # 生成后的项目完成 bootstrap 后
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
- │ ├── WF.md
150
- │ ├── tasks/
151
- ├── research/
152
- ├── workflows/
153
- │ └── scripts/
154
- ├── .claude/
155
- │ ├── agents/
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 - [zingspark](https://github.com/zingspark)
222
+ MIT © [zingspark](https://github.com/zingspark)