create-harness-vibe-coding 0.3.3 → 0.4.0

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 CHANGED
@@ -1,95 +1,212 @@
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">
3
+ <img src="https://img.shields.io/badge/node-%3E%3D18-brightgreen" alt="node">
4
+ <img src="https://img.shields.io/npm/l/create-harness-vibe-coding" alt="license">
5
+ <img src="https://img.shields.io/github/stars/zingspark/create-harness-vibe-coding?style=social" alt="stars">
6
+ </p>
2
7
 
3
- 0-1 产品 Harness 脚手架,AI 辅助工程全流程。English: [README.md](README.md)
8
+ <h1 align="center">create-harness-vibe-coding</h1>
9
+ <p align="center">
10
+ <b>给你的 AI Agent 一个脚手架。一条命令,告别漂移。</b>
11
+ </p>
4
12
 
5
- ## 一条命令
13
+ ## 一条命令。搞定。
6
14
 
7
15
  ```bash
8
16
  npx create-harness-vibe-coding@latest my-project
9
17
  ```
10
18
 
11
- ---
19
+ ## 一句话交给你的 Agent
12
20
 
13
- ## 一句话交给 Agent
21
+ 已有项目?**不用读文档**。把这句话贴给它。Agent 知道该做什么。
14
22
 
15
23
  ```text
16
24
  请按照 https://github.com/zingspark/create-harness-vibe-coding 的 README 为当前项目配置 create-harness-vibe-coding;编辑前先询问 Agent-link 安装前置问题;新项目走 0-1 bootstrap,老项目或老架构升级先 dry-run,保留现有文件,只合并缺失的 Harness 规范,然后遵循 Harness/SETUP.md。
17
25
  ```
18
26
 
19
- ## 两种安装方式
27
+ 就两条路:
28
+ - **你来**:敲上面那行 `npx`
29
+ - **交给 Agent**:贴上面那句话
30
+
31
+ [English README](README.md)
32
+
33
+ ---
20
34
 
21
- ### npx 安装
22
- 适合确定性写入、明确冲突策略、可重复 dry-run 的场景。
35
+ ## 你能得到什么
23
36
 
24
- ### 直接把链接丢给 Agent
25
- 适合老项目升级。Agent 会读取仓库 README,理解当前项目结构,执行或模拟 dry-run,给出最小迁移方案。如果已有 `CLAUDE.md`,Agent 必须先请求用户确认再合并。
37
+ | 得到 | 效果 |
38
+ |------|------|
39
+ | `CLAUDE.md` + `Harness/README.md` | Agent 从路由器开始,不是读长篇大论 |
40
+ | `Harness/tasks/` + `Harness/PROGRESS.md` | 跨会话追踪任务进度 |
41
+ | `/wf` 工作流 + 心跳 | 长任务不迷路,失败自动恢复 |
42
+ | `/wf update` | 从 GitHub 拉取脚手架最新改进 |
43
+ | `subagent-orchestrator` | 并行 Agent 不打架 |
44
+ | `memory-master` + `context-master` | 从失败中学习,上下文快满时压缩 |
45
+ | PRD + 调研模板 | 先问"做什么""为什么",再写代码 |
46
+ | 11 个内置 Agent | 调研、规划、架构、测试、构建、审查、调试、验证 |
47
+ | 架构文档 | 知道边界在哪里 |
48
+ | 上下文加载协议 | 每个子 Agent 只读它需要的文档 |
49
+ | `.claude/` 骨架 | Agent、Skill、命令、钩子——开箱即用 |
50
+
51
+ ---
26
52
 
27
- ## Harness 工作流
53
+ ## 为什么需要它
54
+
55
+ 太多 AI 编程项目在代码写烂之前就死了。Agent 跳过思考直接写代码,忘记昨天的决策,上下文塞满整个仓库。
56
+
57
+ | 没有脚手架 | 有了它 |
58
+ |------------|--------|
59
+ | 想法 → 代码。赌一把。 | 想法 → 调研 → PRD → 架构 → 构建 → 验证 |
60
+ | Agent 读完整个仓库 | 路由器只加载需要的那份文档 |
61
+ | 子 Agent 收到一句模糊的"修一下" | 上下文包:角色、边界、返回格式 |
62
+ | 漂移只到演示时才暴露 | 验证器标记缺失项 |
63
+ | 长任务卡死,上下文爆炸 | `/wf` 心跳 + 恢复循环 |
64
+ | 脚手架腐烂 | `/wf update` 从 GitHub 拉最新版 |
65
+
66
+ ---
67
+
68
+ ## 怎么工作的
69
+
70
+ ```text
71
+ npx create-harness-vibe-coding@latest my-project
72
+
73
+ Agent 读 Harness/SETUP.md
74
+
75
+ 路由器只加载任务需要的文档
76
+
77
+ PRD → 调研 → 架构 → 第一个任务胶囊
78
+
79
+ 构建 → 测试 → 审查 → 验证 → 反馈
80
+
81
+ /wf update 保持脚手架最新
82
+ ```
28
83
 
29
84
  ```mermaid
30
85
  graph TD
31
- A[ /wf 进入工作流 ] --> B[ 探索: 3个并行subagent ]
86
+ A[ /wf 进入 ] --> B[ 探索: 3+ 并行 Agent ]
32
87
  B --> C[ 二阶段计划 ]
33
- C --> D[ 构建: test write加implement ]
88
+ C --> D[ 构建: 测试 实现 ]
34
89
  D --> E[ 双门禁审查 ]
35
90
  E --> F{ 通过? }
36
- F -->| 否 | G[ debugger 修复 循环 ]
91
+ F -->| 否 | G[ 调试 修复 循环 ]
37
92
  G --> E
38
- F -->| 是 | H[ 收尾: context加memory ]
39
- H --> I[ wf update 增量更新 ]
93
+ F -->| 是 | H[ 收尾: 记忆 + 上下文 ]
94
+ H --> I[ /wf update ]
40
95
  ```
41
96
 
42
- ## 核心文件
97
+ ---
43
98
 
44
- | 文件 | 用途 |
45
- |------|------|
46
- | `CLAUDE.md` | Claude Code 根入口,保持短小 |
47
- | `Harness/README.md` | 文档路由器——按任务关键词加载最少文档 |
48
- | `Harness/WF.md` | 长任务工作流:摄入 → 探索 → 计划 → 构建 → 审查 → 验证 → 恢复 |
49
- | `Harness/PROGRESS.md` | 全局任务索引 |
50
- | `Harness/tasks/<id>/` | 每任务胶囊:PROGRESS.md(进度+心跳)+ PLAN.md(实施+证据) |
51
- | `.claude/agents/` | 11 个通用 Agent:planner, researcher, architect, implementer, reviewer, debugger, verifier, memory-master, context-master... |
52
- | `.claude/skills/` | wf-mode, subagent-orchestrator, wf-update, harness-router... |
99
+ ## 怎么用
100
+
101
+ ### 新项目
53
102
 
54
- ## WF 模式
103
+ ```bash
104
+ npx create-harness-vibe-coding@latest my-project
105
+ cd my-project
106
+ # Agent 读 Harness/SETUP.md。搞定。
107
+ ```
55
108
 
56
- 输入 `/wf`、`wf mode`、`workflow mode` 或 `wk mode` 进入长任务工作流。默认启动 3 个并行只读 subagent 做探索,然后二阶段计划 → 实现 → 双门禁审查 → 验证。失败时自动进入恢复循环(debugger → review → verify)。收尾时 context-master 提取知识,memory-master 写入记忆。
109
+ ### 已有项目——安全合并
57
110
 
58
111
  ```bash
59
- # 进入 WF 模式
60
- "用 /wf 处理这个长任务迁移。"
61
- "wf mode — 帮我重构认证层。"
112
+ # 先预览。永远先预览。
113
+ npx create-harness-vibe-coding@latest my-app . -y --dry-run
114
+
115
+ # 只补缺失。绝不覆盖已有文件。
116
+ npx create-harness-vibe-coding@latest my-app . -y --on-conflict skip
62
117
  ```
63
118
 
64
- ## WF Update
119
+ | 参数 | 作用 |
120
+ |------|------|
121
+ | `-y` | 跳过所有提示 |
122
+ | `--dry-run` | 预览——不写任何文件 |
123
+ | `--on-conflict skip` | 保留你的文件,只创建新的 |
124
+ | `--on-conflict backup` | 备份已有 → 写入新的 |
125
+ | `--on-conflict overwrite` | 直接覆盖(谨慎) |
126
+ | `--list-options` | 列出可选工作流 |
127
+ | `--with <ids>` | 按 id 添加工作流 |
128
+ | `--preset <name>` | 添加 `web-app` 或 `fullstack` 预设 |
65
129
 
66
- GitHub 增量更新脚手架,校验和安全。
130
+ ### 可选工作流
67
131
 
68
132
  ```bash
69
- /wf update --check # 只检查
70
- /wf update # 完整更新
133
+ npx create-harness-vibe-coding@latest my-app -y --with browser-e2e
134
+ npx create-harness-vibe-coding@latest my-app -y --preset web-app
71
135
  ```
72
136
 
73
- ## 已有项目安装
137
+ | 工作流 | 场景 |
138
+ |--------|------|
139
+ | `browser-e2e` | 截图、链路追踪、冒烟测试 |
140
+ | `ui-ux-review` | 响应式、无障碍、视觉润色 |
141
+ | `ts-react-frontend` | TypeScript + React + Vite |
142
+ | `python-backend` | FastAPI、pytest |
143
+ | `github-pr-review` | PR diff 审查 + CI 证据 |
74
144
 
75
- ```bash
76
- # 先预览
77
- npx create-harness-vibe-coding@latest my-app . -y --dry-run
145
+ ### Agent 安装前置问题
78
146
 
79
- # 保留现有文件,只补缺失
80
- npx create-harness-vibe-coding@latest my-app . -y --on-conflict skip
81
- ```
147
+ 当你的 Agent 读到上面那句"一句话"后,它会在动文件前**最多问 3 个问题**:
148
+
149
+ - 已经有 `CLAUDE.md` 或 `AGENTS.md`?→ 只合并,不替换
150
+ - `docs/` 已被产品文档占用?→ 把脚手架放 `Harness/` 目录
151
+ - 什么技术栈?→ 安装匹配的可选工作流
82
152
 
83
- | 冲突模式 | 含义 |
84
- |----------|------|
85
- | `fail`(默认) | 目标文件已存在则停止 |
86
- | `skip` | 保留现有文件,只创建缺失 |
87
- | `backup` | 备份 → 写入新文件 |
88
- | `overwrite` | 直接覆盖 |
153
+ 文件已存在就**先问再动**。默认永远**保留已有**。
89
154
 
90
- ## 验证
155
+ ### 脚手架完成后
156
+
157
+ ```text
158
+ "读 Harness/SETUP.md。把这个项目引导起来。"
159
+ "用 /wf 处理这个长迁移。"
160
+ "/wf update — 拉取最新脚手架改进。"
161
+ ```
162
+
163
+ ### 验证
91
164
 
92
165
  ```bash
93
166
  npm test
94
167
  node Harness/scripts/validate-harness.mjs
95
168
  ```
169
+
170
+ ---
171
+
172
+ ## 文件结构
173
+
174
+ ```
175
+ my-project/
176
+ ├── CLAUDE.md ← Agent 入口
177
+ ├── AGENTS.md ← Agent 注册表
178
+ ├── .gitignore
179
+ ├── Harness/
180
+ │ ├── README.md ← 文档路由器
181
+ │ ├── SETUP.md ← 引导指南(初始化后可删除)
182
+ │ ├── MEMORY.md ← 资源索引
183
+ │ ├── PROGRESS.md ← 任务追踪
184
+ │ ├── WF.md / WF-MAX.md ← 工作流模式
185
+ │ ├── tasks/ ← 每任务胶囊
186
+ │ ├── research/ ← PRD + 调研模板
187
+ │ ├── memory/ ← 持久自学习
188
+ │ └── scripts/ ← 验证器
189
+ ├── .claude/
190
+ │ ├── agents/ ← 11 个通用 Agent
191
+ │ ├── skills/ ← Harness 加载器
192
+ │ ├── commands/ ← /wf、/wf update
193
+ │ └── rules/ ← 通用编码规则
194
+ └── tests/
195
+ ```
196
+
197
+ `Harness/` 放所有脚手架文档。`.claude/` 留在根目录——Claude Code 在这里发现 Agent、Skill 和命令。
198
+
199
+ ---
200
+
201
+ ## 足迹
202
+
203
+ | | |
204
+ |---|---|
205
+ | 运行时 | 无 |
206
+ | 依赖 | 2(`@clack/prompts`、`picocolors`) |
207
+ | Node | ≥ 18 |
208
+ | 生成代码 | 无——直到你选定技术栈 |
209
+
210
+ ---
211
+
212
+ MIT © [zingspark](https://github.com/zingspark)
package/README.md CHANGED
@@ -1,5 +1,5 @@
1
1
  <p align="center">
2
- <img src="https://img.shields.io/npm/v/create-harness-vibe-coding?color=blue" alt="npm version">
2
+ <img src="https://img.shields.io/npm/v/create-harness-vibe-coding?color=blue" alt="npm">
3
3
  <img src="https://img.shields.io/badge/node-%3E%3D18-brightgreen" alt="node">
4
4
  <img src="https://img.shields.io/npm/l/create-harness-vibe-coding" alt="license">
5
5
  <img src="https://img.shields.io/github/stars/zingspark/create-harness-vibe-coding?style=social" alt="stars">
@@ -7,410 +7,204 @@
7
7
 
8
8
  <h1 align="center">create-harness-vibe-coding</h1>
9
9
  <p align="center">
10
- <b>0-1 product harness scaffold for AI-assisted engineering.</b><br>
11
- <sub>Idea -> Research -> PRD -> Architecture -> Plan -> Build -> Verify -> Feedback.</sub>
10
+ <b>A harness for your AI agent. One scaffold. Zero drift.</b><br>
12
11
  </p>
13
12
 
14
- ## One Command
13
+ ## One Command. Done.
15
14
 
16
15
  ```bash
17
16
  npx create-harness-vibe-coding@latest my-project
18
17
  ```
19
18
 
20
- Chinese README: [README-CN.md](README-CN.md)
19
+ ## Your Agent Knows What to Do
21
20
 
22
- ---
23
-
24
- | What You Get | Purpose |
25
- |-------------|---------|
26
- | `CLAUDE.md` + `Harness/README.md` | Thin root entry and dynamic doc router |
27
- | `Harness/PROGRESS.md` + `Harness/tasks/` | Global task index and per-task progress capsules |
28
- | `Harness/WF.md` + `/wf` | Long-task workflow: parallel explore, second-plan, build, review, verify, recover |
29
- | `/wf update` | GitHub-based incremental scaffold update with checksum safety |
30
- | `Harness/subagents.md` + `subagent-orchestrator` | Controller-led multi-agent orchestration with source-attributed methods |
31
- | `memory-master` + `context-master` | Auto-triggered memory writing on repeated failures, and non-blocking context compression alerts |
32
- | Research + PRD templates | Clarify idea, scope, non-goals, acceptance criteria |
33
- | Research protocol | Route research agents, source search, and fallback tools |
34
- | Built-in common agents | 11 agents: research, planning, architecture, testing, implementation, debugging, review, verification, memory, context |
35
- | Harness architecture docs | Boundaries, ports, data flow, state machines |
36
- | Dispatch protocol | Lightweight parallel-agent coordination without a scheduler |
37
- | Extension contract | Keep stack-specific agents and skills compatible |
38
- | Context-loading protocol | Inject only the right docs into each subagent |
39
- | README optimizer skill | Optional README preservation, tables, and approved architecture diagrams |
40
- | Skill-style loaders | `.claude/skills/*` route lifecycle, context, and build loops |
41
- | Harness validator | Checks required files, agent/skill registrations, invariants |
42
- | `.claude/` skeleton | Root runtime integration for Claude Code agents, skills, commands, and rules |
43
-
44
- ---
45
-
46
- ## Why This Exists
47
-
48
- Most 0-1 AI coding projects fail before code quality matters:
49
-
50
- | Without Harness | With This Scaffold |
51
- |---|---|
52
- | Idea jumps straight to code | Lifecycle forces research, PRD, and scope |
53
- | Agent reads too much context | Docs router loads only the needed harness file |
54
- | Subagents get vague prompts | Context-loading packs define role, boundaries, and return format |
55
- | Process drift is invisible | Validator checks core harness readiness |
56
- | Architecture drifts silently | Ports, data-flow, and state docs mark boundary changes |
57
- | Tests come after implementation | Workflow requires failing test or manual check first |
58
- | Long tasks stall after failures | `/wf` adds heartbeat, recovery loop, auto memory-master at 3 failures |
59
- | Context bloats over long sessions | `context-master` gives non-blocking compression alerts at ~85% window |
60
- | Scaffold rots after generation | `/wf update` pulls latest improvements from GitHub with checksum safety |
61
-
62
- ---
63
-
64
- ## How It Works
21
+ Already have a project? **Don't read the docs**. Paste this sentence. Your agent handles the rest.
65
22
 
66
23
  ```text
67
- npx scaffold
68
- -> Claude reads Harness/SETUP.md
69
- -> Harness router selects only needed harness docs
70
- -> PRD/research/architecture are filled
71
- -> First task capsule created at Harness/tasks/<id>/
72
- -> First vertical slice is built, tested, reviewed, verified, and fed back
73
- -> Validator catches missing project facts before release
74
- -> /wf update pulls latest scaffold improvements from GitHub
24
+ Follow the README at https://github.com/zingspark/create-harness-vibe-coding to configure this project with create-harness-vibe-coding; before editing, ask the Agent-link install intake questions; for a new project run the 0-1 bootstrap, and for an existing project or legacy architecture run a dry-run first, preserve existing files, merge only missing Harness guidance, then follow Harness/SETUP.md.
75
25
  ```
76
26
 
77
- ### Harness idea
27
+ That's it. Two paths into the harness — you type `npx`, or your agent reads the sentence.
78
28
 
79
- The scaffold does not prebuild business code. It gives agents a compact process for turning an idea into a verified product slice.
29
+ [README-CN.md](README-CN.md) (中文)
80
30
 
81
31
  ---
82
32
 
83
- ## What's Inside
84
-
85
- ```
86
- my-project/
87
- ├── CLAUDE.md Short startup rules + context discipline
88
- ├── AGENTS.md Coding agent entry
89
- ├── README.md ← Project build/test/git/run notes
90
- ├── .gitignore
91
- ├── Harness/
92
- │ ├── README.md ← Dynamic doc router
93
- │ ├── SETUP.md ← Temporary init guide (delete after setup)
94
- │ ├── MEMORY.md ← Cross-session resource index
95
- │ ├── PROGRESS.md ← Global task index and cross-task decisions
96
- │ ├── PLAN.md ← Deprecated stub see PROGRESS.md + tasks/
97
- │ ├── .harness-version ← Scaffold version + file checksums
98
- │ ├── WF.md ← Long-task workflow and recovery loop
99
- │ ├── lifecycle.md ← 0-1 product flow
100
- │ ├── subagents.md ← Controller-led subagent orchestration
101
- │ ├── context-loading.md ← Subagent context packs
102
- │ ├── dispatch.md ← Lightweight parallel-agent protocol
103
- │ ├── extension.md ← Stack-specific agent/skill contract
104
- │ ├── architecture.md ← Layer rules, components, ADRs
105
- │ ├── agent-workflow.md ← TDD loop, subagent roles, write sets
106
- │ ├── data-flow.md ← Event lifecycle: normal + failure paths
107
- │ ├── state-machines.md ← State enums, transition tables, guards
108
- │ ├── domain/
109
- │ │ └── ports.md ← Port contracts: pre/postconditions, errors
110
- │ ├── features/
111
- │ │ └── _template.md ← Feature doc template
112
- │ ├── tasks/
113
- │ │ ├── _template/ ← Task capsule template (copy for new tasks)
114
- │ │ └── <task-id>/ ← Per-task PROGRESS.md + PLAN.md + artifacts
115
- │ ├── research/
116
- │ │ ├── README.md
117
- │ │ ├── PRD.md
118
- │ │ └── research-results.md
119
- │ ├── memory/
120
- │ │ ├── tool-usage-reflections.md
121
- │ │ ├── user-corrections-preferences.md
122
- │ │ └── agent-lessons-patterns.md
123
- │ ├── workflows/ ← Optional workflow docs
124
- │ └── scripts/
125
- │ └── validate-harness.mjs
126
- ├── .claude/
127
- │ ├── settings.json ← Base permissions
128
- │ ├── agents/ ← 11 common agents + stack-specific
129
- │ ├── skills/ ← Harness skills + wf-update + stack-specific
130
- │ ├── commands/
131
- │ │ ├── wf.md ← /wf — enter workflow mode
132
- │ │ └── update.md ← /wf update — GitHub-based scaffold update
133
- │ ├── hooks/ ← Configure automation after stack choice
134
- │ └── rules/ecc/
135
- │ └── common.md ← Universal coding rules
136
- └── tests/ ← Your test suite goes here
137
- ```
138
-
139
- `Harness/` is the default home for harness-owned docs, state, memory, workflows, and validation. The root `.claude/` directory remains at the project root because Claude Code discovers agents, skills, commands, settings, hooks, and rules there.
33
+ ## What You Get
34
+
35
+ | You get | So your agent |
36
+ |---------|---------------|
37
+ | `CLAUDE.md` + `Harness/README.md` | Starts with a router, not a novel |
38
+ | `Harness/tasks/` + `Harness/PROGRESS.md` | Tracks work across sessions |
39
+ | `/wf` workflow + heartbeat | Finishes long tasks without getting lost |
40
+ | `/wf update` | Pulls scaffold fixes from GitHub |
41
+ | `subagent-orchestrator` | Runs parallel agents without collision |
42
+ | `memory-master` + `context-master` | Learns from failures, compresses when full |
43
+ | PRD + Research templates | Asks "what" and "why" before coding |
44
+ | 11 built-in agents | Research, plan, architect, test, build, review, debug, verify |
45
+ | Architecture docs | Knows where boundaries live |
46
+ | Context-loading protocol | Loads only the docs each agent needs |
47
+ | `.claude/` skeleton | Agents, skills, commands, hooks — ready to go |
140
48
 
141
49
  ---
142
50
 
143
- ## Ecosystem Compatibility
51
+ ## Why This Exists
144
52
 
145
- | Platform | Fit |
146
- |----------|-----|
147
- | Claude Code | Native `CLAUDE.md`, `.claude/settings.json`, agents, skills, hooks |
148
- | Codex / Cursor / Gemini CLI | Works as docs-first process scaffold |
149
- | ECC / Superpowers / toolboxes | Optional source for stack-specific agents, skills, and rules |
53
+ Most AI coding projects fail before anyone writes a line of bad code. The agent jumps straight to implementation, drifts from intent, forgets yesterday's decisions, and bloats its context with the whole repo.
150
54
 
151
- ---
55
+ | Without harness | With harness |
56
+ |-----------------|--------------|
57
+ | Idea → code. Hope. | Idea → Research → PRD → Architecture → Build → Verify |
58
+ | Agent reads everything | Router loads the one doc it needs |
59
+ | Subagent gets a vague "fix it" | Context pack: role, boundary, return format |
60
+ | Drift invisible until demo | Validator flags missing pieces |
61
+ | Long task stalls, context explodes | `/wf` heartbeat + recovery loop |
62
+ | Scaffold rots | `/wf update` pulls latest from GitHub |
152
63
 
153
- ## Usage
64
+ ---
154
65
 
155
- ### Human
66
+ ## How It Works
156
67
 
157
- ```bash
158
- # Interactive mode — prompts for project name and directory
159
- npx create-harness-vibe-coding@latest
68
+ ```text
69
+ npx create-harness-vibe-coding@latest my-project
70
+
71
+ Agent reads Harness/SETUP.md
72
+
73
+ Router loads only what the task needs
74
+
75
+ PRD → Research → Architecture → first task capsule
76
+
77
+ Build → Test → Review → Verify → Feedback
78
+
79
+ /wf update keeps the harness current
160
80
  ```
161
81
 
162
- ### Existing Project
163
-
164
- The scaffold is designed to be added to an existing repository without silently replacing project files.
165
-
166
- Chinese README: [README-CN.md](README-CN.md)
167
-
168
- One-sentence agent prompt: `Follow the README at https://github.com/zingspark/create-harness-vibe-coding to configure this project with create-harness-vibe-coding; before editing, ask the Agent-link install intake questions; for a new project run the 0-1 bootstrap, and for an existing project or legacy architecture run a dry-run first, preserve existing files, merge only missing Harness guidance, then follow Harness/SETUP.md.`
169
-
170
- There are two installation paths:
171
-
172
- - **npx install**: deterministic scaffold writes with explicit conflict policy. Use this when you want predictable files and a clear dry-run plan.
173
- - **Agent-link install**: paste the one-sentence prompt above into Claude Code, Codex, Cursor, Gemini CLI, or another coding agent. This path is more flexible: the agent should read this README, inspect the existing project, run or emulate a dry-run, and propose a minimal migration plan before editing.
174
-
175
- Agent-link install intake, asked before editing:
176
-
177
- Ask only questions that affect writes, architecture, security, or workflow. Ask at most three blocking questions up front, record safe defaults for the rest, and ask follow-ups only when that choice becomes active.
178
-
179
- | Topic | Ask When | Default If Unanswered |
180
- | --- | --- | --- |
181
- | Root agent entry | `CLAUDE.md`, `AGENTS.md`, `.claude/`, or other agent entry files already exist | Preserve files; ask before merging the Harness entry contract |
182
- | Harness location | `docs/` is already used for GitHub Pages, product docs, or generated docs | Use root `Harness/`; do not write harness docs into `docs/` |
183
- | README ownership | root `README.md` is a public product page, package docs, or heavily customized | Preserve existing README and propose a minimal Development section |
184
- | README optimization | existing README is stale, sparse, missing command tables, or the user asks for diagrams/polished docs | Offer `readme-optimizer`; default to append-only Development notes until the user approves a structure pass or full rewrite |
185
- | Extensions | ECC, Superpowers, custom rules, or stack-specific skills may be useful | Recommend first; install only after user approval |
186
- | Skills | stack is known and optional skills could improve testing, frontend, backend, review, or browser evidence | Install 1-2 relevant skills only after user approval |
187
- | CI/CD | CI config exists or the project lacks a test/build gate | Document existing commands first; add CI/CD only after user approval |
188
- | Verification depth | browser-visible, API, database, auth, payment, or deployment behavior is affected | Require real command evidence; require browser/API evidence when relevant |
189
- | Memory/privacy | repo contains sensitive domain data, customer data, secrets, or private workflows | Enable memory index only; never record secrets or private data |
190
- | Branch/worktree | project has uncommitted changes, risky migration, or parallel implementation lanes | Preserve current worktree; propose branch/worktree before broad edits |
191
- | Package manager/stack | multiple package managers, monorepo apps, or unclear stack boundaries exist | Ask which workspace/app is in scope before writing |
192
-
193
- If `CLAUDE.md` already exists, the agent must tell the user it is the root agent entry contract and ask for confirmation before refactoring, merging, backing up, or replacing it. The correct outcome is a user-approved merge that preserves project-specific rules while adding the Harness startup, memory, router, workflow, and subagent orchestration contract.
194
-
195
- ```bash
196
- # Preview the write plan first. No files or directories are created.
197
- npx create-harness-vibe-coding@latest my-app . -y --dry-run
198
-
199
- # Preserve existing files and add only missing harness files.
200
- npx create-harness-vibe-coding@latest my-app . -y --on-conflict skip
82
+ ```mermaid
83
+ graph TD
84
+ A[ /wf Enter ] --> B[ Explore: 3+ parallel agents ]
85
+ B --> C[ Second Plan ]
86
+ C --> D[ Build: test → implement ]
87
+ D --> E[ Dual-Gate Review ]
88
+ E --> F{ Pass? }
89
+ F -->| No | G[ Debug → Fix → Loop ]
90
+ G --> E
91
+ F -->| Yes | H[ Closeout: memory + context ]
92
+ H --> I[ /wf update ]
201
93
  ```
202
94
 
203
- By default, conflicts fail before writing. This protects existing `CLAUDE.md`, `AGENTS.md`, `README.md`, `.claude/`, `.gitignore`, project docs, and scripts from accidental replacement.
95
+ ---
204
96
 
205
- | Conflict mode | Meaning | Risk |
206
- |---------------|---------|------|
207
- | `fail` | Default. Stop if a target file already exists. | Safest for existing projects; requires a follow-up decision. |
208
- | `skip` | Keep existing files and create only missing files. | Existing root entries may need manual links to new `Harness/` docs or workflows. |
209
- | `backup` | Rename the existing file to `<name>.harness-backup`, then write the scaffold file. | Review backups before deleting; repeated runs may need cleanup. |
210
- | `overwrite` | Replace existing files with scaffold versions. | Destructive. Use only after reviewing `--dry-run` output or with explicit approval. |
97
+ ## Usage
211
98
 
212
- Recommended bootstrap for agents:
99
+ ### New project
213
100
 
214
101
  ```bash
215
- node bin/create-harness-vibe-coding.js my-app . -y --dry-run
216
- node bin/create-harness-vibe-coding.js my-app . -y --on-conflict skip
217
- node Harness/scripts/validate-harness.mjs
102
+ npx create-harness-vibe-coding@latest my-project
103
+ cd my-project
104
+ # Your agent reads Harness/SETUP.md. Done.
218
105
  ```
219
106
 
220
- After files are installed, agents must follow `Harness/SETUP.md` before normal project work. `CLAUDE.md` only points to the required Harness routers; setup details belong in `Harness/SETUP.md`.
221
-
222
- If `AGENTS.md` already exists, the agent must ask for user consent before merging or replacing it. `AGENTS.md` is part of the root agent entry contract, just like `CLAUDE.md`.
223
-
224
- Development commands, build scripts, git conventions, and release process belong in root `README.md`. Code architecture belongs in `Harness/architecture.md` or feature docs, not in `CLAUDE.md`.
225
-
226
- ### Agent / CI/CD
227
-
228
- Agents and automation can skip all prompts with `-y`:
107
+ ### Existing project safe merge
229
108
 
230
109
  ```bash
231
- # One-liner with defaults (project name = my-vibe-project)
232
- npx create-harness-vibe-coding@latest -y
233
-
234
- # Named project, auto directory
235
- npx create-harness-vibe-coding@latest my-app -y
236
-
237
- # Named project, explicit directory
238
- npx create-harness-vibe-coding@latest my-app ./dist/my-app -y
239
-
240
- # CI-safe existing-project preview
110
+ # Preview first. Always.
241
111
  npx create-harness-vibe-coding@latest my-app . -y --dry-run
242
112
 
243
- # CI-safe existing-project add without replacing files
113
+ # Add only what's missing. Never overwrite.
244
114
  npx create-harness-vibe-coding@latest my-app . -y --on-conflict skip
245
115
  ```
246
116
 
247
- | Flag | Purpose |
248
- |------|---------|
249
- | `-y`, `--yes` | Skip all prompts. Uses positional args or defaults. |
250
- | `--dry-run` | Print the planned creates, skips, backups, overwrites, and conflicts without writing. |
251
- | `--on-conflict <mode>` | Choose `fail`, `skip`, `backup`, or `overwrite` when files already exist. |
252
- | `--list-options` | Print the optional workflow catalog and presets. |
253
- | `--with <ids>` | Add optional workflows by comma-separated id. |
254
- | `--without <ids>` | Remove optional workflows selected by `--preset` or `--with`. |
255
- | `--preset <name>` | Add a named workflow preset such as `web-app` or `fullstack`. |
256
- | `-h`, `--help` | Print usage and exit. |
117
+ | Flag | Does |
118
+ |------|------|
119
+ | `-y` | Skip prompts |
120
+ | `--dry-run` | Preview no writes |
121
+ | `--on-conflict skip` | Keep your files, add only new ones |
122
+ | `--on-conflict backup` | Rename existing write new |
123
+ | `--on-conflict overwrite` | Replace (destructive) |
124
+ | `--list-options` | Show optional workflows |
125
+ | `--with <ids>` | Add workflow by id |
126
+ | `--preset <name>` | Add `web-app` or `fullstack` preset |
257
127
 
258
- > [!TIP]
259
- > Agents should always pass `-y` to avoid hanging on interactive prompts.
260
- > If the agent needs to discover the CLI surface first, run with `--help` and `--list-options`.
261
-
262
- ### Optional Workflows
263
-
264
- Optional workflows are local template assets selected explicitly at generation time. They do not install package dependencies or fetch a remote marketplace.
128
+ ### Optional workflows
265
129
 
266
130
  ```bash
267
- # Show available optional workflow ids and presets
268
- npx create-harness-vibe-coding@latest --list-options
269
-
270
- # Add individual workflows
271
- npx create-harness-vibe-coding@latest my-app -y --with browser-e2e,ts-react-frontend
272
-
273
- # Add a preset for common web app work
131
+ npx create-harness-vibe-coding@latest my-app -y --with browser-e2e
274
132
  npx create-harness-vibe-coding@latest my-app -y --preset web-app
275
-
276
- # Add a broader frontend/backend/PR-review preset
277
- npx create-harness-vibe-coding@latest my-app -y --preset fullstack
278
-
279
- # Trim a preset without restating every selected workflow
280
- npx create-harness-vibe-coding@latest my-app -y --preset fullstack --without github-pr-review
281
133
  ```
282
134
 
283
- Built-in optional workflow ids:
135
+ | Workflow | For |
136
+ |----------|-----|
137
+ | `browser-e2e` | Screenshots, traces, smoke tests |
138
+ | `ui-ux-review` | Responsive, a11y, polish |
139
+ | `ts-react-frontend` | TypeScript + React + Vite |
140
+ | `python-backend` | FastAPI, pytest |
141
+ | `github-pr-review` | PR diff review + CI evidence |
284
142
 
285
- | Workflow | Use when |
286
- |----------|----------|
287
- | `browser-e2e` | Browser smoke tests, screenshots, traces, and UI evidence. |
288
- | `ui-ux-review` | Screenshot-driven responsive, accessibility, and polish review. |
289
- | `github-pr-review` | PR diff, checks, review findings, and CI evidence. |
290
- | `python-backend` | Python API/backend work with unittest or pytest verification. |
291
- | `ts-react-frontend` | TypeScript React work with typecheck, component tests, build, and browser smoke. |
143
+ ### Agent-link intake
292
144
 
293
- Presets:
145
+ When your agent reads the one-sentence prompt above, it asks **at most 3 questions** before touching files:
294
146
 
295
- | Preset | Includes |
296
- |--------|----------|
297
- | `web-app` | `ts-react-frontend`, `browser-e2e`, `ui-ux-review` |
298
- | `fullstack` | `ts-react-frontend`, `python-backend`, `browser-e2e`, `github-pr-review` |
147
+ - Is `CLAUDE.md` or `AGENTS.md` already there? → merge, don't replace
148
+ - Is `docs/` used for product docs? → puts harness in `Harness/`, not `docs/`
149
+ - What stack? installs matching optional workflows
299
150
 
300
- ### WF Mode
151
+ If a file already exists, the agent asks first. The default is always **preserve**.
301
152
 
302
- For long, difficult, multi-file, multi-agent, or repeated-failure tasks. Enter by typing `/wf`, `wf mode`, `workflow mode`, or `wk mode`.
153
+ ### After scaffolding
303
154
 
304
155
  ```text
305
- /wf triggers the full Ralph-style harness loop:
306
- Intake (95% confidence gate)
307
- -> 3+ parallel read-only subagents (planner + architect + researcher)
308
- -> Synthesis + second plan → writes to Harness/tasks/<id>/PLAN.md
309
- -> test-writer → implementer → reviewers → verifier
310
- -> Failed? debugger → review → verify → loop
311
- -> Closeout: context-master + memory-master consolidate knowledge
312
- ```
313
-
314
- | Phase | What happens | Heartbeat |
315
- |-------|-------------|-----------|
316
- | Intake | State goal, confidence, risks, write boundaries | Update before dispatching |
317
- | Explore | 3-5 parallel read-only subagents | After each subagent return |
318
- | Second Plan | Synthesize findings into `tasks/<id>/PLAN.md` | After plan written |
319
- | Build | `test-writer` → `implementer` serial lane | Before/after long commands |
320
- | Review | Spec review, then code-quality review | After each review gate |
321
- | Verify | Run declared checks, record evidence | After each verification |
322
- | Recover | `debugger` → fix → review → verify → loop | After each failure |
323
- | Close | `context-master` extraction → `memory-master` consolidation → archive | Final heartbeat |
324
-
325
- WF mode also auto-dispatches:
326
- - **`memory-master`** at 3 same-class failures (records pattern before asking user)
327
- - **`context-master`** at ~85% context window (non-blocking compression suggestion)
328
- - **`context-master` + `memory-master`** at closeout (extract + persist session knowledge)
329
-
330
- ```bash
331
- # Tell the agent to use WF mode
156
+ "Read Harness/SETUP.md. Bootstrap this project."
332
157
  "Use /wf for this migration."
333
- "This is a long task enter wf mode."
334
- "wf mode — help me refactor the auth layer."
335
- ```
336
-
337
- ### WF Update
338
-
339
- Check for scaffold updates from GitHub and apply them incrementally with checksum safety.
340
-
341
- ```bash
342
- # Check available updates without applying
343
- /wf update --check
344
-
345
- # Full update with safe incremental apply
346
- /wf update
158
+ "/wf update pull latest harness improvements."
347
159
  ```
348
160
 
349
- **How it works:**
350
-
351
- 1. Reads `Harness/.harness-version` — gets local version + 54 file SHA-256 checksums
352
- 2. Fetches latest template files from `raw.githubusercontent.com/zingspark/create-harness-vibe-coding/main/templates/common/`
353
- 3. Compares checksums file-by-file against stored values
354
- 4. Classifies each file into three tiers:
355
-
356
- | Tier | Policy | Examples |
357
- |------|--------|----------|
358
- | **SAFE** | Overwrite if local checksum matches stored (unmodified) | `Harness/WF.md`, `.claude/agents/*.md`, all skills |
359
- | **PRESERVE** | Never touch | `Harness/PROGRESS.md`, `Harness/tasks/**`, `Harness/memory/**`, root `README.md` |
360
- | **MERGE** | Overwrite if unmodified; report and skip if user-modified | `CLAUDE.md`, `Harness/MEMORY.md`, `Harness/README.md` |
361
-
362
- 5. Reports: `updated/N, merge/N, created/N, skipped/N`
363
- 6. Updates `.harness-version` checksums after applying
364
-
365
- **Auto-check on session start:** When `Harness/.harness-version` has `autoCheck: true`, the agent runs a non-blocking `update --check` (10s timeout). If an update is available, it notifies without blocking the current task. Set `autoCheck: false` to disable.
366
-
367
- **Offline behavior:** If GitHub is unreachable, the update check exits cleanly. All other harness features work without network.
368
-
369
- ### Verification
161
+ ### Verify
370
162
 
371
163
  ```bash
372
- # Run repository tests
373
164
  npm test
374
-
375
- # Confirm optional workflow catalog output
376
- node bin/create-harness-vibe-coding.js --list-options
377
-
378
- # After generating a project, validate the harness from that project root
379
165
  node Harness/scripts/validate-harness.mjs
380
166
  ```
381
167
 
382
- The harness validator checks scaffold consistency. It is not a full React, Playwright, Chrome DevTools Protocol, or browser matrix test suite.
168
+ ---
383
169
 
384
- ### After scaffolding, tell Claude:
170
+ ## Inside
385
171
 
386
172
  ```
387
- "Read Harness/SETUP.md. Bootstrap this project from idea to first vertical slice."
388
- "Read Harness/SETUP.md. This is a React TypeScript SaaS idea. Clarify PRD first, then plan the first slice."
389
- "Read Harness/SETUP.md. This is a Python data product. Research the stack, define the MVP, then create a task capsule."
390
- "Use /wf for this long migration. Explore first, make a second plan, then implement, review, verify, and recover with heartbeat updates."
391
- "/wf update --check — check if the scaffold has been improved since last generation."
392
- "/wf update pull the latest harness improvements from GitHub safely."
173
+ my-project/
174
+ ├── CLAUDE.md Agent entry
175
+ ├── AGENTS.md Agent registry
176
+ ├── .gitignore
177
+ ├── Harness/
178
+ │ ├── README.md ← Doc router
179
+ │ ├── SETUP.md ← Bootstrap guide (delete after init)
180
+ │ ├── MEMORY.md ← Resource index
181
+ │ ├── PROGRESS.md ← Task tracker
182
+ │ ├── WF.md / WF-MAX.md ← Workflow modes
183
+ │ ├── tasks/ ← Per-task capsules
184
+ │ ├── research/ ← PRD + research templates
185
+ │ ├── memory/ ← Durable self-learning
186
+ │ └── scripts/ ← Validator
187
+ ├── .claude/
188
+ │ ├── agents/ ← 11 common agents
189
+ │ ├── skills/ ← Harness loaders
190
+ │ ├── commands/ ← /wf, /wf update
191
+ │ └── rules/ ← Universal coding rules
192
+ └── tests/
393
193
  ```
394
194
 
195
+ `Harness/` holds all harness docs. `.claude/` stays at root — that's where Claude Code discovers agents, skills, and commands.
196
+
395
197
  ---
396
198
 
397
199
  ## Footprint
398
200
 
399
- | Metric | Value |
400
- |--------|-------|
401
- | Runtime after scaffold | none |
201
+ | | |
202
+ |---|---|
203
+ | Runtime | None |
402
204
  | Dependencies | 2 (`@clack/prompts`, `picocolors`) |
403
- | Node requirement | >= 18 |
404
- | Generated code | none until the product stack is chosen |
205
+ | Node | 18 |
206
+ | Generated code | None until you pick a stack |
405
207
 
406
208
  ---
407
209
 
408
- ## Contributing
409
-
410
- PRs welcome. The template docs live in `templates/common/` — edit them to change what gets scaffolded.
411
-
412
- ---
413
-
414
- ## License
415
-
416
210
  MIT © [zingspark](https://github.com/zingspark)
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "create-harness-vibe-coding",
3
- "version": "0.3.3",
3
+ "version": "0.4.0",
4
4
  "description": "Scaffold a 0-1 product harness for AI-assisted research, PRD, planning, architecture, build, test, and feedback loops",
5
5
  "type": "module",
6
6
  "bin": {
@@ -1,6 +1,6 @@
1
- # /wf max
1
+ # /wf-max [task]
2
2
 
3
- Enter maximum-parallelism workflow mode. Splits tasks into minimal non-conflicting units and dispatches as many subagents as possible in parallel waves.
3
+ Enter maximum-parallelism workflow mode with an optional task description. Splits tasks into minimal non-conflicting units and dispatches as many subagents as possible in parallel waves.
4
4
 
5
5
  ## Required
6
6
 
@@ -1,6 +1,6 @@
1
- # /wf
1
+ # /wf <task/mission>
2
2
 
3
- Enter `wf-mode`.
3
+ Enter `wf-mode` with the given task or mission description.
4
4
 
5
5
  ## Required
6
6
 
@@ -84,9 +84,9 @@ CLOSEOUT: CEO → context-master + memory-master (direct)
84
84
  - all changes share single interface → serial
85
85
  - overhead > 30% → degrade
86
86
 
87
- ## /wf vs /wf max
87
+ ## /wf vs /wf-max
88
88
 
89
- | | /wf | /wf max |
89
+ | | /wf | /wf-max |
90
90
  |---|-----|------|
91
91
  | Organization | flat | CEO→Mgr→Worker (3-tier) |
92
92
  | Span formula | none | sqrt(files) + domain cap |
@@ -11,7 +11,7 @@ Root entry for Claude Code. Keep this file short.
11
11
  - `Harness/README.md` is the task router. For every request, check `Harness/README.md#Load By Task`; if a row matches, read and follow those docs before acting.
12
12
  - `Harness/PROGRESS.md` is the global task index. Load at session start to see active task and task history.
13
13
  - If work spans more than one step, create a task capsule from `Harness/tasks/_template/` and update `Harness/tasks/<task-id>/PROGRESS.md`.
14
- - Use `/wf`, `/wf max`, `wf-mode`, `wf mode`, `workflow mode`, `wk mode`, `Harness/WF.md`, or `Harness/WF-MAX.md` for long, difficult, uncertain, multi-file, or repeated-failure work.
14
+ - Use `/wf <task>`, `/wf-max [task]`, `wf mode`, `workflow mode`, `wk mode`, `Harness/WF.md`, or `Harness/WF-MAX.md` for long, difficult, uncertain, multi-file, or repeated-failure work.
15
15
  - Use `subagent-orchestrator` and `Harness/subagents.md` when coordinating multiple subagents.
16
16
  - Use `/wf update` to check for and apply scaffold updates from GitHub. See `.claude/skills/wf-update/SKILL.md`.
17
17
  - Subagents are readers and reporters. Only the main agent writes to `Harness/tasks/<task-id>/PROGRESS.md` and `Harness/tasks/<task-id>/PLAN.md`.
@@ -51,7 +51,7 @@ Keywords are retrieval hints, not project facts.
51
51
 
52
52
  Load the matching row only. Add adjacent docs only when the loaded doc directly names them.
53
53
 
54
- Routing priority: if a request explicitly says `/wf`, `/wf max`, `wf mode`, `workflow mode`, or `wk mode`, or is long, difficult, uncertain, repeated-failure, migration, architecture-heavy, browser-visible, or broad multi-agent implementation work, choose the WF row first. `wf-mode` MUST then delegate subagent coordination to `subagent-orchestrator`.
54
+ Routing priority: if a request explicitly says `/wf <task>`, `/wf-max [task]`, `wf mode`, `workflow mode`, or `wk mode`, or is long, difficult, uncertain, repeated-failure, migration, architecture-heavy, browser-visible, or broad multi-agent implementation work, choose the WF row first. `wf-mode` MUST then delegate subagent coordination to `subagent-orchestrator`.
55
55
 
56
56
  | When to Read | Keywords | Load | Output |
57
57
  | --- | --- | --- | --- |
@@ -60,7 +60,7 @@ Routing priority: if a request explicitly says `/wf`, `/wf max`, `wf mode`, `wor
60
60
  | Need MVP/spec | PRD, MVP, scope, requirement, acceptance, non-goal | [research/PRD.md](research/PRD.md) | one-page PRD with verifiable acceptance criteria |
61
61
  | Need architecture or boundaries | architecture, boundary, layer, domain, port, adapter, dependency | [architecture.md](architecture.md), [domain/ports.md](domain/ports.md) | layer map, ports, constraints |
62
62
  | Need WF mode | wf, /wf, wf mode, workflow mode, wk mode, long task, difficult, stuck, repeated failure | [WF.md](WF.md), [PROGRESS.md](PROGRESS.md), the current task `tasks/<id>/PROGRESS.md` and `tasks/<id>/PLAN.md` | exploration plan, second plan, heartbeat, recovery loop; explicit WF/WK loads subagent docs immediately |
63
- | Need WF Max mode | /wf max, wf max, maximum parallelism, max parallel | [WF-MAX.md](WF-MAX.md), [WF.md](WF.md), [subagents.md](subagents.md), [dispatch.md](dispatch.md) | max-parallel exploration, write-set coloring, wave dispatch |
63
+ | Need WF Max mode | /wf-max, wf max, maximum parallelism, max parallel | [WF-MAX.md](WF-MAX.md), [WF.md](WF.md), [subagents.md](subagents.md), [dispatch.md](dispatch.md) | max-parallel exploration, write-set coloring, wave dispatch |
64
64
  | Adding harness to existing project | existing project, onboarding, migrate, bootstrap, preserve, conflict | [extension.md](extension.md), [PROGRESS.md](PROGRESS.md), root `README.md` and package/CI files | discovered project facts, preserved config, manual registration plan |
65
65
  | README optimization | README, docs, quickstart, install docs, architecture diagram, command table, documentation polish | root `README.md`, `.claude/skills/readme-optimizer/SKILL.md`, [PROGRESS.md](PROGRESS.md), [architecture.md](architecture.md) as needed | approved README mode, preserved sections, proposed diff plan |
66
66
  | Need implementation plan | plan, task, write set, verify, milestone, progress | [PROGRESS.md](PROGRESS.md), the current task `tasks/<id>/PROGRESS.md` and `tasks/<id>/PLAN.md`, [agent-workflow.md](agent-workflow.md) | tasks, write set, verification commands |
@@ -79,7 +79,7 @@ Routing priority: if a request explicitly says `/wf`, `/wf max`, `wf mode`, `wor
79
79
  ## Gates
80
80
 
81
81
  - Move phases in order unless the user asks for a fast lane.
82
- - Use `/wf`, `wf mode`, `workflow mode`, or `wk mode` when a task is long, difficult, uncertain, multi-file, or repeatedly failing.
82
+ - Use `/wf <task>`, `/wf-max [task]`, `wf mode`, `workflow mode`, or `wk mode` when a task is long, difficult, uncertain, multi-file, or repeatedly failing.
83
83
  - Do not code before the PRD has MVP, non-goals, and acceptance criteria.
84
84
  - Do not cross a layer boundary without reading `domain/ports.md` and updating architecture or ports.
85
85
  - Before adding failure paths, read `data-flow.md`.
@@ -108,7 +108,7 @@ Harness/tasks/_template/ task capsule template (copy to create new tas
108
108
  Harness/WF.md long-task workflow and recovery loop
109
109
  Harness/WF-MAX.md max-parallelism workflow with wave dispatch
110
110
  .claude/skills/wf-max/SKILL.md max-parallelism skill loader
111
- .claude/commands/wf-max.md /wf max slash command bridge
111
+ .claude/commands/wf-max.md /wf-max slash command bridge
112
112
  Harness/lifecycle.md 0-1 product flow
113
113
  Harness/subagents.md controller-led subagent orchestration
114
114
  Harness/context-loading.md dynamic loading and subagent packs
@@ -2,7 +2,7 @@
2
2
 
3
3
  ## Trigger
4
4
 
5
- - Explicit: `/wf max`
5
+ - Explicit: `/wf-max [task]`
6
6
  - Auto: WF task with write-set ≥5 files AND clear disjoint boundaries
7
7
  - parallelismScore = (files × avgLines × 3 / 800) × independenceFactor
8
8
  - spawn ≥2.0 | maybe 1.0-2.0 | skip <1.0 (degrade to /wf)
@@ -113,16 +113,16 @@ overhead(depth) = 0.10 (depth≤2) | 0.20 (depth=3) | 0.35 (depth≥4)
113
113
  - overhead > 0.30 → degrade to /wf
114
114
  - independenceFactor: 1.0 (no deps) | 0.3-0.7 (shared imports)
115
115
 
116
- ## When NOT to use /wf max
116
+ ## When NOT to use /wf-max
117
117
 
118
118
  - files < 5 → use /wf
119
119
  - all changes share single interface → serial dependency
120
120
  - import/re-export refactor → global consistency required
121
121
  - communication overhead > 30% → degrade
122
122
 
123
- ## /wf vs /wf max
123
+ ## /wf vs /wf-max
124
124
 
125
- | Dimension | /wf | /wf max |
125
+ | Dimension | /wf | /wf-max |
126
126
  |------------------|------------------|----------------------------------|
127
127
  | Organization | flat | CEO → Mgr → Worker (3-tier) |
128
128
  | Exploration | 3-5 serial | Mgr → 10 parallel |
@@ -13,7 +13,7 @@ Enter WF mode when any of these are true:
13
13
  - The task needs research, architecture judgment, browser/API validation, or migration planning.
14
14
  - Confidence in intent, architecture, or implementation is below 95%.
15
15
  - The same command, test, tool, or approach fails twice.
16
- - The user explicitly says `/wf max` or `wf max` (for maximum-parallelism mode, see [WF-MAX.md](WF-MAX.md)).
16
+ - The user explicitly says `/wf-max [task]` or `wf max` (for maximum-parallelism mode, see [WF-MAX.md](WF-MAX.md)).
17
17
 
18
18
  ## Multi-Subagent Requirement
19
19
 
@@ -25,7 +25,7 @@ WF mode requires multi-subagent orchestration by default.
25
25
  - Record every dispatch or bounded-pass fallback in `Harness/tasks/<task-id>/PLAN.md#Subagent Dispatch`.
26
26
  - If subagents are unavailable, emulate the same roles as separate bounded passes and record why the fallback was used.
27
27
 
28
- For maximum-parallelism mode (write-set coloring, wave dispatch, parallel reviewers), use `/wf max` and see [WF-MAX.md](WF-MAX.md).
28
+ For maximum-parallelism mode (write-set coloring, wave dispatch, parallel reviewers), use `/wf-max [task]` and see [WF-MAX.md](WF-MAX.md).
29
29
 
30
30
  ## WF Loop
31
31
 
@@ -410,7 +410,7 @@ requireText('Harness/WF.md', 'Explicit `/wf`, `wf mode`, `workflow mode`, or `wk
410
410
  requireText('Harness/WF.md', '.claude/agents/', 'WF built-in agent roster path');
411
411
  requireText('Harness/WF.md', '7:3 collaboration bias', 'WF collaboration bias');
412
412
  requireText('Harness/WF.md', 'Harness/tasks/', 'WF task directory reference');
413
- requireText('Harness/README.md', '`/wf`, `wf mode`, `workflow mode`, or `wk mode`', 'WF/WK router aliases');
413
+ requireText('Harness/README.md', '`wf mode`, `workflow mode`, or `wk mode`', 'WF/WK router aliases');
414
414
  requireText('Harness/README.md', 'explicit WF/WK loads subagent docs immediately', 'explicit WF/WK router output');
415
415
  requireText('.claude/skills/harness-router/SKILL.md', '`/wf`, `wf mode`, `workflow mode`, `wk mode`', 'harness-router WF/WK aliases');
416
416
  requireText('.claude/skills/wf-mode/SKILL.md', 'Harness/WF.md', 'wf-mode loads WF document');
@@ -441,12 +441,12 @@ requireText('CLAUDE.md', '/wf update', 'wf update startup instruction');
441
441
  requireText('Harness/README.md', 'Need harness update', 'update routing row');
442
442
  requireText('Harness/WF-MAX.md', 'write-set coloring', 'WF-MAX coloring algorithm');
443
443
  requireText('Harness/WF-MAX.md', 'wave dispatch', 'WF-MAX wave dispatch');
444
- requireText('Harness/README.md', '/wf max', 'wf max router alias');
444
+ requireText('Harness/README.md', '/wf-max', 'wf max router alias');
445
445
  requireText('Harness/README.md', 'WF-MAX.md', 'WF-MAX router reference');
446
446
  requireText('Harness/subagents.md', 'Max parallelism', 'subagents max parallelism row');
447
447
  requireText('Harness/dispatch.md', 'Concurrency group', 'dispatch concurrency group field');
448
448
  requireText('Harness/dispatch.md', 'File claim', 'dispatch file claim field');
449
- requireText('CLAUDE.md', '/wf max', 'wf max startup instruction');
449
+ requireText('CLAUDE.md', '/wf-max', 'wf max startup instruction');
450
450
 
451
451
  if (errors.length) {
452
452
  console.error(`Harness validation failed${strict ? ' (strict)' : ''}:`);