create-harness-vibe-coding 0.8.16 → 0.8.17

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 (52) hide show
  1. package/CHANGELOG.md +9 -0
  2. package/README-CN.md +98 -127
  3. package/README.md +61 -42
  4. package/package.json +1 -1
  5. package/src/generator.js +15 -24
  6. package/src/index.js +1 -1
  7. package/templates/common/.claude/commands/wf-auto-spark.md +16 -0
  8. package/templates/common/.claude/commands/wf-auto.md +16 -0
  9. package/templates/{optional/skills/browser-e2e/.opencode → common/.claude}/commands/wf-browser.md +1 -1
  10. package/templates/common/.claude/commands/wf-help.md +9 -6
  11. package/templates/common/.claude/commands/wf-learn.md +16 -0
  12. package/templates/common/.claude/commands/wf-max.md +20 -0
  13. package/templates/common/.claude/commands/wf-readme.md +16 -0
  14. package/templates/common/.claude/commands/wf-remove.md +16 -0
  15. package/templates/common/.claude/commands/wf-review.md +16 -0
  16. package/templates/common/.claude/commands/wf.md +16 -0
  17. package/templates/common/.claude/rules/ecc/common.md +1 -1
  18. package/templates/common/.claude/skills/wf-browser/SKILL.md +176 -0
  19. package/templates/common/.claude/skills/wf-help/SKILL.md +30 -0
  20. package/templates/common/.claude/skills/wf-max/SKILL.md +21 -7
  21. package/templates/common/.codex/config.toml +3 -5
  22. package/templates/common/.harness-version +69 -36
  23. package/templates/common/.opencode/agents/architect-manager.md +7 -1
  24. package/templates/common/.opencode/agents/explore-manager.md +10 -1
  25. package/templates/common/.opencode/agents/implement-manager.md +5 -3
  26. package/templates/common/.opencode/agents/review-manager.md +5 -2
  27. package/templates/common/.opencode/commands/wf-browser.md +16 -0
  28. package/templates/common/.opencode/commands/wf-help.md +9 -6
  29. package/templates/common/.opencode/commands/wf-max.md +12 -7
  30. package/templates/common/CLAUDE.md +2 -2
  31. package/templates/common/Harness/MEMORY.md +3 -3
  32. package/templates/common/Harness/README.md +12 -11
  33. package/templates/common/Harness/ownership.manifest.json +77 -14
  34. package/templates/common/Harness/scripts/archive-tasks.mjs +12 -220
  35. package/templates/common/Harness/scripts/scan-clean.mjs +3 -9
  36. package/templates/common/Harness/scripts/task-state.mjs +889 -0
  37. package/templates/common/Harness/scripts/validate-harness.mjs +233 -28
  38. package/templates/common/Harness/scripts/wf-remove.mjs +3 -3
  39. package/templates/common/Harness/scripts/wf-update-check.mjs +3 -0
  40. package/templates/common/Harness/specs/guides/SETUP.md +2 -2
  41. package/templates/common/Harness/specs/protocols/TASK_ARCHIVE.md +43 -23
  42. package/templates/common/Harness/specs/runtime/dispatch.md +2 -2
  43. package/templates/common/Harness/specs/runtime/subagents.md +9 -5
  44. package/templates/common/Harness/specs/workflows/WF-AUTO.md +6 -6
  45. package/templates/common/Harness/specs/workflows/WF-KERNEL.md +1 -1
  46. package/templates/common/Harness/specs/workflows/WF-MAX.md +30 -2
  47. package/templates/common/Harness/specs/workflows/WF-STATE.md +89 -36
  48. package/templates/common/opencode.json +1 -0
  49. package/templates/optional/catalog.json +2 -9
  50. package/templates/optional/skills/browser-e2e/.claude/skills/browser-e2e/SKILL.md +0 -42
  51. package/templates/optional/skills/browser-e2e/.claude/skills/wf-browser/SKILL.md +0 -201
  52. package/templates/optional/skills/browser-e2e/Harness/workflows/browser-e2e.md +0 -119
@@ -1,16 +1,19 @@
1
1
  {
2
- "generator": "0.8.16",
3
- "generated": "2026-07-23T11:33:41.125Z",
2
+ "generator": "0.8.17",
3
+ "generated": "2026-07-26T09:26:35.146Z",
4
4
  "options": [],
5
5
  "autoCheck": true,
6
6
  "source": "https://raw.githubusercontent.com/LiWeny16/create-harness-vibe-coding/main/templates/common/",
7
7
  "releaseNotes": {
8
- "version": "0.8.16",
9
- "date": "2026-07-23",
8
+ "version": "0.8.17",
9
+ "date": "2026-07-26",
10
10
  "highlights": [
11
- "Fix `scan-clean` default source selection so it honors the installed `Harness/.harness-version.source` before falling back to npm/GitHub, preventing false dead-file reports before npm publish catches up.",
12
- "Register `/wf-update` in `Harness/MEMORY.md` as a direct command and add validator coverage for the route.",
13
- "Clean `wf-remove.mjs` human-readable output to remove replacement characters and add a validator guard against future encoding pollution."
11
+ "Add HarnessBench v0.2 as an external-only lifecycle proof: 15 runs per mode, direct file writes safe in 3/15 runs, Harness safe path safe in 15/15 runs.",
12
+ "Keep benchmark fixtures, raw results, and scorer scripts out of generated installs and npm package files while publishing the summary in README and README-CN.",
13
+ "Make `wf-browser` the built-in browser automation entry and retire `browser-e2e` as a warning no-op optional id.",
14
+ "Add `wf-help` compatibility surfaces for Claude, Codex, and OpenCode with guards against nonexistent OpenCode skill paths.",
15
+ "Harden WF-MAX fan-out docs and OpenCode manager allowlists while preserving the Codex config guard against unsupported scalar subagent caps.",
16
+ "Add deterministic task-state/archive reconciliation tooling and validators for active task consistency."
14
17
  ]
15
18
  },
16
19
  "moves": [
@@ -159,8 +162,10 @@
159
162
  ".agents/skills/wf-agents-docs/SKILL.md": "sha256-e0fe333aebae12a3e2cc6355e69237186a410f5d7a650ff5948ec132d9c630c4",
160
163
  ".agents/skills/wf-auto-spark/SKILL.md": "sha256-0afd699c52a45a4071bcecf09ee487adb6002be6c608fdf653fba1c0a00e4ec4",
161
164
  ".agents/skills/wf-auto/SKILL.md": "sha256-e62077d3c54d946f549c781fdf3f765c9a0ced41d0bedc96915b7167c3332987",
165
+ ".agents/skills/wf-browser/SKILL.md": "sha256-0914538f7ae624b66cede82593f8063716c96c0f7b36adebbcf413c9e2a1d836",
166
+ ".agents/skills/wf-help/SKILL.md": "sha256-418564cbe5e2df1e63fccdc9cd1cc12b05df9589836c6ff39ff43610eddf4e56",
162
167
  ".agents/skills/wf-learn/SKILL.md": "sha256-39e4bbe2da1261c02e37aa03ade0f9faaf6bc1f89568af1bb70f1af45d5f5bda",
163
- ".agents/skills/wf-max/SKILL.md": "sha256-c32bd4b139bafb0cab78e90d86c2b89508a8265b244f471a146bac665fc4544a",
168
+ ".agents/skills/wf-max/SKILL.md": "sha256-7db71b3356cc442540e96b7931a6cf5c23d71fedfc53eabde8e99dbe4afe2c50",
164
169
  ".agents/skills/wf-readme/SKILL.md": "sha256-32256ab8e87fc1c2606fd102d85b59fa0b406d88d5639c2f9ff2f02e83f7d81f",
165
170
  ".agents/skills/wf-remove/SKILL.md": "sha256-2de3d7b5cba2456a83aaa86487492a627d836526dbd2da1225cec9d7634b625c",
166
171
  ".agents/skills/wf-review/SKILL.md": "sha256-513ac34d7c6025f40f5457ffacf24df95ec248158660f1cd21225e00eda1800c",
@@ -185,38 +190,49 @@
185
190
  ".claude/agents/tdd-guide.md": "sha256-5d97c223b20d8c076839c0c5812e3a188a4ff703dcbcd0d13627e335827d8768",
186
191
  ".claude/agents/test-writer.md": "sha256-a1b8b8dd6bf804391e68940265a989864d47fe78fb4c42eb3eaa37f7fbf5c67e",
187
192
  ".claude/agents/verifier.md": "sha256-30f3e49fae9464d58de50196089316d913aa545bd5c97cc84e05725ca49bdd24",
188
- ".claude/commands/wf-help.md": "sha256-3176b33c6c8de6a4b8322f21a1dca8448894b1d57c11dd94f45056f95c0a3db2",
193
+ ".claude/commands/wf-auto-spark.md": "sha256-503c88eba452f20ca04c32db734eed1c666a381bd6948c3ffe18f5c4a4255729",
194
+ ".claude/commands/wf-auto.md": "sha256-06196a633eb0464ff152e7bfffabd76c09ab32a2aef9d84b82bbb4c204503226",
195
+ ".claude/commands/wf-browser.md": "sha256-1cd46b259cb509af2d0bb1d105912889068611875c008e002598d0e7ed42cf52",
196
+ ".claude/commands/wf-help.md": "sha256-282aa6162b736466847b82996b2c754afee5a3eaa827d234674315e4acbe6f1c",
197
+ ".claude/commands/wf-learn.md": "sha256-02606f2a91e03056676aa022a060cd4a05a4d3123f8cb6f5e27bc50d90c6448a",
198
+ ".claude/commands/wf-max.md": "sha256-88cdfb4ef8a205483045302b56dec268bdf010debd9c4473b665f5720e4c5697",
199
+ ".claude/commands/wf-readme.md": "sha256-3eee1a6b3f62c22ed46440ed38ecb02999c9a3128d7660e91e7f0a94c59fa463",
200
+ ".claude/commands/wf-remove.md": "sha256-80fe1849412028c9a91120143eeb10e153e6d7c32ec502c0d7ef3599d13fa337",
201
+ ".claude/commands/wf-review.md": "sha256-bb031ffc8e392af2c1b2bb97b2f7605af1dcfa70514c6068312eca01f170e6d9",
189
202
  ".claude/commands/wf-update.md": "sha256-f6aa497209ad6c430771b5621720bca50bb06cf5ae3f40dfe1086f0372c232d7",
190
- ".claude/rules/ecc/common.md": "sha256-138c7237c7ae9448a72dd70a0cbb7c27b4471dec9372e16975d0f580b260f755",
203
+ ".claude/commands/wf.md": "sha256-bef81f0404230ff0de64727d46aa947d7434d06fde8ad03c55db9ccf54870cca",
204
+ ".claude/rules/ecc/common.md": "sha256-c1229d6b3aa34551bfbb3919a5c4cbfaab4c1e9db3d913c75e3a27a2d8d345fa",
191
205
  ".claude/settings.json": "sha256-99e8552584b8e71e3e11b4b760c3bfbf8c1b18dadda7ec3f6e3c46f88d9ea513",
192
206
  ".claude/skills/subagent-orchestrator/SKILL.md": "sha256-6354018aaafd3d9f546eeecc90f943ef9a94d05747673369586a4a2f45a9464d",
193
207
  ".claude/skills/tdd/SKILL.md": "sha256-d6738eca127e0632474db67c25708c9db3feab3b55499c489518502ec8951e3a",
194
208
  ".claude/skills/wf-agents-docs/SKILL.md": "sha256-e0fe333aebae12a3e2cc6355e69237186a410f5d7a650ff5948ec132d9c630c4",
195
209
  ".claude/skills/wf-auto-spark/SKILL.md": "sha256-0afd699c52a45a4071bcecf09ee487adb6002be6c608fdf653fba1c0a00e4ec4",
196
210
  ".claude/skills/wf-auto/SKILL.md": "sha256-e62077d3c54d946f549c781fdf3f765c9a0ced41d0bedc96915b7167c3332987",
211
+ ".claude/skills/wf-browser/SKILL.md": "sha256-0914538f7ae624b66cede82593f8063716c96c0f7b36adebbcf413c9e2a1d836",
212
+ ".claude/skills/wf-help/SKILL.md": "sha256-418564cbe5e2df1e63fccdc9cd1cc12b05df9589836c6ff39ff43610eddf4e56",
197
213
  ".claude/skills/wf-learn/SKILL.md": "sha256-39e4bbe2da1261c02e37aa03ade0f9faaf6bc1f89568af1bb70f1af45d5f5bda",
198
- ".claude/skills/wf-max/SKILL.md": "sha256-c32bd4b139bafb0cab78e90d86c2b89508a8265b244f471a146bac665fc4544a",
214
+ ".claude/skills/wf-max/SKILL.md": "sha256-7db71b3356cc442540e96b7931a6cf5c23d71fedfc53eabde8e99dbe4afe2c50",
199
215
  ".claude/skills/wf-readme/SKILL.md": "sha256-32256ab8e87fc1c2606fd102d85b59fa0b406d88d5639c2f9ff2f02e83f7d81f",
200
216
  ".claude/skills/wf-remove/SKILL.md": "sha256-2de3d7b5cba2456a83aaa86487492a627d836526dbd2da1225cec9d7634b625c",
201
217
  ".claude/skills/wf-review/SKILL.md": "sha256-513ac34d7c6025f40f5457ffacf24df95ec248158660f1cd21225e00eda1800c",
202
218
  ".claude/skills/wf-update/SKILL.md": "sha256-98a762d8d13b2ad36331b97c94b0b28b3103ee091814cc2c3710861895611e14",
203
219
  ".claude/skills/wf/SKILL.md": "sha256-78cc8b5be329649508b9fa6856b50c709ae74fbc31a4c7b77a69c6552723e29b",
204
- ".codex/config.toml": "sha256-e0af046982c6dbc535c52b19610d16ce9aba08a17dd29f11b74cc8dad8371145",
220
+ ".codex/config.toml": "sha256-b561d07aaba9bb32df0c48713f6a00be95462af9fa9383efb7cee89f9b24f9ba",
205
221
  ".codex/hooks.json": "sha256-3200c42c2da434c07cd6ab1ce86f8845ab46a1ed9a25b65117b2b2b42056c725",
206
- ".opencode/agents/architect-manager.md": "sha256-504c5f26f92a0d747f6862887aa935e6d3652b52deb556a5b70714a59ec7433b",
222
+ ".opencode/agents/architect-manager.md": "sha256-66851f79d5e6ce2ddd5975c03312f6867933279a236ee1c9d4277ae568e65048",
207
223
  ".opencode/agents/architect.md": "sha256-62af1e1e63c059ea76b4bdd5c3ef997dfc0b505e6597b1f606bb932f11a73c8d",
208
224
  ".opencode/agents/codebase-explorer.md": "sha256-48623b12b6a1d8d2880861a6e202cea93be8263f625ab8ec85b7ae402d3131fe",
209
225
  ".opencode/agents/context-master.md": "sha256-5dd5f000f68f5a91f7e3c30c7c09767cf5ec61c63c78fea0b922e0f83adbc36d",
210
226
  ".opencode/agents/debugger.md": "sha256-7488bb356a21aa83195475aec246efb38c515c24d46a3cec8d4d11a705b94e1b",
211
227
  ".opencode/agents/docs-researcher.md": "sha256-dbb8fdfd0e6f8ff473df7d4c50183d4c8ec36a952bbd7d87eeb3bbbd106d346e",
212
- ".opencode/agents/explore-manager.md": "sha256-9106300e6df99e586738e02234e5bb788b7b93607cc0f380631b69012ab94d63",
213
- ".opencode/agents/implement-manager.md": "sha256-95b887d3c179d4fae4d63fc9b10f229ed28f0cca9bc760c403d28cdd49138ffa",
228
+ ".opencode/agents/explore-manager.md": "sha256-ea489eca9e973c5fe44568ccff9965eb2c63b2e08c29c395290353607a77de82",
229
+ ".opencode/agents/implement-manager.md": "sha256-5f72067efc2936edddf4274fc4ff40a07222677a65fdd6bc7cd484f27562eaf3",
214
230
  ".opencode/agents/implementer.md": "sha256-57cfdd84dee2bec3156aeb612458e46198e1fcfc62f4372d95a2a4b7e4064932",
215
231
  ".opencode/agents/memory-master.md": "sha256-6656f91ee42a7d20441820f8fc92196b7f53df56172521fd04079cf9a1b2d196",
216
232
  ".opencode/agents/planner.md": "sha256-91dca932af07670d5d96056cd69415955d5c28ef6bbbeeebd9562477e5e1a153",
217
233
  ".opencode/agents/reflector.md": "sha256-4dc51c64c8fbaf462265b9438f614e793165d39cf92b9d0838a4860a3b6d70a1",
218
234
  ".opencode/agents/researcher.md": "sha256-1a2bca8a7d115585dba300edc49beda9e3be297d9c6ff8351a6532f3a2685d13",
219
- ".opencode/agents/review-manager.md": "sha256-b0d45b0b673075fa550968be721f2b95da18cc24e095498e8ba041cddfa76305",
235
+ ".opencode/agents/review-manager.md": "sha256-70b213b213078b418fa981727b3881a80d207d86e36744965a46dc65fd37e1e3",
220
236
  ".opencode/agents/reviewer.md": "sha256-688a412ce9e63dcbfeaefb30a55c91ea53c78b38f86ba85ce4d9a19d02d917eb",
221
237
  ".opencode/agents/task-scribe.md": "sha256-d0dc8a6df15bd0ba89363ba1ee110aabd914d0e3c6d7fbfc3acf98d6f25f00e4",
222
238
  ".opencode/agents/tdd-guide.md": "sha256-bd6154b0c1be7de0e386565b46fab9028def46136fc72a9fba673f0ddde3baaa",
@@ -224,9 +240,10 @@
224
240
  ".opencode/agents/verifier.md": "sha256-1e5b12cfe62bf85470b90671cca0407d6469f02cc1cced6a57d05550fa21e8fe",
225
241
  ".opencode/commands/wf-auto-spark.md": "sha256-503c88eba452f20ca04c32db734eed1c666a381bd6948c3ffe18f5c4a4255729",
226
242
  ".opencode/commands/wf-auto.md": "sha256-06196a633eb0464ff152e7bfffabd76c09ab32a2aef9d84b82bbb4c204503226",
227
- ".opencode/commands/wf-help.md": "sha256-aece97e06d75cf5b811935d5e9d11b3a0c2f4e06746d9751d14b291d6c3774d2",
243
+ ".opencode/commands/wf-browser.md": "sha256-1cd46b259cb509af2d0bb1d105912889068611875c008e002598d0e7ed42cf52",
244
+ ".opencode/commands/wf-help.md": "sha256-2d8c841555ae64ec5be2ad4cf2e126cc8db04ece71cb05948ef029f2e704308e",
228
245
  ".opencode/commands/wf-learn.md": "sha256-02606f2a91e03056676aa022a060cd4a05a4d3123f8cb6f5e27bc50d90c6448a",
229
- ".opencode/commands/wf-max.md": "sha256-976ea9e0f4f16849cd21e242062ecaa1222a6229b9ed8605a252386d20b58f8b",
246
+ ".opencode/commands/wf-max.md": "sha256-21ddf8d4eff7ce91948a41eb68cbc9d184349ca3a422c72950fc83a5039eb663",
230
247
  ".opencode/commands/wf-readme.md": "sha256-3eee1a6b3f62c22ed46440ed38ecb02999c9a3128d7660e91e7f0a94c59fa463",
231
248
  ".opencode/commands/wf-remove.md": "sha256-80fe1849412028c9a91120143eeb10e153e6d7c32ec502c0d7ef3599d13fa337",
232
249
  ".opencode/commands/wf-review.md": "sha256-bb031ffc8e392af2c1b2bb97b2f7605af1dcfa70514c6068312eca01f170e6d9",
@@ -234,23 +251,24 @@
234
251
  ".opencode/commands/wf.md": "sha256-bef81f0404230ff0de64727d46aa947d7434d06fde8ad03c55db9ccf54870cca",
235
252
  ".opencode/plugins/harness-wf-status.mjs": "sha256-ee0987cec5530c34784c619a803562d7085ae26fe5d199fde7ce42c2bed4724e",
236
253
  "AGENTS.md": "sha256-fad176931742a5080e073d1ddba99a3eabb67e8c42bebb132df99a51ca6a184d",
237
- "CLAUDE.md": "sha256-a9aa5bb63dfc19ad22a7d6bdc0c81d06a15bba15f8d44b6f97a98b3267702266",
238
- "Harness/MEMORY.md": "sha256-70c90ded7c9bf7ed6432b639121271aa3cd109fa6177a263e28d93a082192856",
239
- "Harness/README.md": "sha256-06507439c0170531a25ba9a191cbfff84498f3b59bf4e343ef0c7c3cd2b81575",
240
- "Harness/ownership.manifest.json": "sha256-8b7cb309bb370df2a44428ed79c9b274a6a98611c8ef27cb3d0010749c564f1c",
254
+ "CLAUDE.md": "sha256-cd6b736bf14b4f526223bf15dc7ec625eb4b3a868a4d5961f26484d6bbfb4dca",
255
+ "Harness/MEMORY.md": "sha256-3acc3e8a9361765d226c8cd6967f48e3a71137aa6fdd48f20fdd4cdb8e32df68",
256
+ "Harness/README.md": "sha256-9df70490126ba229c4eb5dee6a59becbd16fb7bce8dc5a1c818a868c40908cd8",
257
+ "Harness/ownership.manifest.json": "sha256-4d7fa59b87768cd23bf2ca3c9b140cbd936da57586988bc557b0fad31d74794e",
241
258
  "Harness/project/architecture.md": "sha256-27462306667539d71aecc4a90a778222f61585ef99e8131fb38f866913cac1c4",
242
259
  "Harness/research/README.md": "sha256-b7a542c0d919cabc185b6e7a1e6ef265dc5160978d0c1dd804f2c6547d0202a4",
243
- "Harness/scripts/archive-tasks.mjs": "sha256-07bba20c2f4b3baae737b8b9a951125a48e37dd482a1f1ca122b9cf88e90e956",
260
+ "Harness/scripts/archive-tasks.mjs": "sha256-c5891c32d23f0b1bc863753d11116ab593928aa9ebedf2768b68b77e88c9909c",
244
261
  "Harness/scripts/context-budget.mjs": "sha256-079228fa11046c5e4ca7323ac09091b05a78efae03ce655fee0c608c6833c33f",
245
262
  "Harness/scripts/l2-cache-telemetry.mjs": "sha256-139b5317eb3917f2ca0acd3cb1164170cc8c1dd60e0dee35f8d1596aed28c22c",
246
- "Harness/scripts/scan-clean.mjs": "sha256-f93518802d94fec14fa0047eeb9525b1b18d7e07c7f99b126b02357c62adcfcb",
247
- "Harness/scripts/validate-harness.mjs": "sha256-4c6953f1cda8d03cee3f833a7d062a3bd4b30f0cc349c4206e7ae0f122a5877c",
263
+ "Harness/scripts/scan-clean.mjs": "sha256-6c4b2a4d15a8cd758214a360f8d3be11a835368d409c95719242c75ccf466c8a",
264
+ "Harness/scripts/task-state.mjs": "sha256-409dfac45fb153ed648081bf1a3993c070b05473344fafe524ba2a96b9576934",
265
+ "Harness/scripts/validate-harness.mjs": "sha256-7d12fcb23aeb70211f4086c6aa5c327ae48c81d4c4fd26c20dc2f16482c6e966",
248
266
  "Harness/scripts/wf-auto-update-prompt.mjs": "sha256-14210304dbd8e648b8939fc4c5d3664f943052153e689264c16b05b7b81bd39e",
249
- "Harness/scripts/wf-remove.mjs": "sha256-a5375d7d5fcea51f01545f9b61f0e80f9bbe89258367fe1788e967f45e67afe9",
250
- "Harness/scripts/wf-update-check.mjs": "sha256-3c8452b191446b8ed3d32bb73481ed21ed616186531d25bc689d70d9784b426f",
267
+ "Harness/scripts/wf-remove.mjs": "sha256-b043f84a69da54d0f137ce0c91ae7b55c0d76711680ee7bc8762a802be1ee8c8",
268
+ "Harness/scripts/wf-update-check.mjs": "sha256-32e9ed19046ac9b4910a661dae8fc13c03a605912430009cc8f830c1fdab3984",
251
269
  "Harness/settings.json": "sha256-db6a14fcaaba3d2ac9c0c11bd11273bd016bcc16c154895d4c0b2a03ef51786e",
252
270
  "Harness/specs/guides/ECC-GUIDE.md": "sha256-eba123cad02dde928317b9347efac45daf33698221d2d91768559a1f0456cc97",
253
- "Harness/specs/guides/SETUP.md": "sha256-4c6fd343f4c0b4912197f7989f90b3e3c03c436f54cd56e50cf3e1206edb0679",
271
+ "Harness/specs/guides/SETUP.md": "sha256-7747cd6ef3ef81ff15a893d3d4c428dbab9ba0ec8193aedb00d992fd268d7afb",
254
272
  "Harness/specs/guides/extension.md": "sha256-5bf5895f849b972e5bdd1afd1a6914cd743b88b05668bb72dca7cd835262e8c9",
255
273
  "Harness/specs/guides/lifecycle.md": "sha256-3bb2107af2ee569c905ca615d662ba9adfd606a595e45880cfc292779c5f1844",
256
274
  "Harness/specs/protocols/ACCEPTANCE_PROTOCOL.md": "sha256-0f7a21a1fbfdca6e5f28f3297b61c3446e3bdd552a2143c7032d6271a4e26103",
@@ -258,18 +276,18 @@
258
276
  "Harness/specs/protocols/DEBUG_PROTOCOL.md": "sha256-ed80de0e3e1a40dbb9fd0bdead9174f1650e1833027f3d7fb4bb5884142e03f7",
259
277
  "Harness/specs/protocols/HARNESS_BRIDGE.md": "sha256-681dbeca9a590bbeb3a0c01b044e40e642e6d640632d8611064eb897ada8a48d",
260
278
  "Harness/specs/protocols/MEMORY_PROTOCOL.md": "sha256-c8cda68bf25fbf7152c6049959a8bd6d39453976a651a1c4a9d3f7e349f823c4",
261
- "Harness/specs/protocols/TASK_ARCHIVE.md": "sha256-d815f2c99a7dc98b9956bb876e9ee07dfb66a283c758124d7b4eb8965dea1f6a",
279
+ "Harness/specs/protocols/TASK_ARCHIVE.md": "sha256-6ed563dfd2fea754373fea3905c5cfa9534a650c104783b9bf704d81b44864ba",
262
280
  "Harness/specs/protocols/TDD-GUIDE.md": "sha256-602084530fd0dea7499a023ce75738351e5d97a0c222b64d405f36da6b59a162",
263
281
  "Harness/specs/runtime/agent-workflow.md": "sha256-9e6390715a9c2e404923d17e12369fe5af22c9a615ab14a010a8d6da0974c987",
264
282
  "Harness/specs/runtime/context-loading.md": "sha256-323e9476486ebf60cfd9fd78834701817f882648749cd548dd7a47670fce0bd6",
265
- "Harness/specs/runtime/dispatch.md": "sha256-b9a1ec29045b26f2e12dc981770ed665f5af4c9234a54a0bce2b69add83fa28f",
266
- "Harness/specs/runtime/subagents.md": "sha256-71b7e159f57ba82d001cfc2fcd5bdfc5a3774e85aface2db8018e89778b5d6a1",
283
+ "Harness/specs/runtime/dispatch.md": "sha256-1b1c2681c2722b8d708f8cca48ec1991ee922602c4c7333704f0156f6ffa498f",
284
+ "Harness/specs/runtime/subagents.md": "sha256-6db97dd3a72c28f4ec24a56ea031de9f6ecb0eb4c72427e6409731cf45dab323",
267
285
  "Harness/specs/workflows/WF-AUTO-ANGLES.md": "sha256-b9641d871f728e8112ad0d8c7f87bcbec0a06aa572c5f3060efdd26496abdf9b",
268
286
  "Harness/specs/workflows/WF-AUTO-SPARK.md": "sha256-dfe7e31373ccc9dea2d552649ec21dff91bca723316655788e82ab37cf0d33e5",
269
- "Harness/specs/workflows/WF-AUTO.md": "sha256-10ffe555b65ae1f845dc2f7629663b071746e6df4898f5523701f19e57652815",
270
- "Harness/specs/workflows/WF-KERNEL.md": "sha256-8bbe4a19617455a4048dd433d8fcc65a5e53faf013c7ad82a0ae58747fd97f50",
271
- "Harness/specs/workflows/WF-MAX.md": "sha256-348f372544359f7cba23a59a51d3436292057f012b51ecc089c164acbc899a6a",
272
- "Harness/specs/workflows/WF-STATE.md": "sha256-3160363ee9b677a092ef3fd0492a211528bca12f096125b3d1903d8d233db0e6",
287
+ "Harness/specs/workflows/WF-AUTO.md": "sha256-742e949bf77259997d662447f5b7c5627d8459f0b7aed96748cdb2de9c3bcfa9",
288
+ "Harness/specs/workflows/WF-KERNEL.md": "sha256-70d608b12ab977c5dfb7038fb7677123bd39f29fb645b3046abbde7fa28d69a7",
289
+ "Harness/specs/workflows/WF-MAX.md": "sha256-199756c87024e62f54bc97fbcba255de18f7e2bb45eaa85b7f8658ebea0df6d7",
290
+ "Harness/specs/workflows/WF-STATE.md": "sha256-d787e61be1a708b46bd5c6dab5ecaf3a668835a1273b1ac4475a3ccc4339f62e",
273
291
  "Harness/specs/workflows/WF.md": "sha256-d33e9ff55e67a34a862a896693cb55aeae8f73dd7d0ede561943674dd3e6d212",
274
292
  "Harness/templates/ACCEPTANCE.template.md": "sha256-394a6c08b155b1d121f1d51da774f7988bdb891224c6d5f2ca2c131e8c95ffb3",
275
293
  "Harness/templates/API_CONTRACT.template.md": "sha256-e11ec9866576624982f35e77359e3f4ef3aea3e3f6b5895f6cc5419d29699fc5",
@@ -278,7 +296,7 @@
278
296
  "Harness/templates/TEST_PLAN.template.md": "sha256-f7e9a701b0922a405bcde7c168791fe6406530ce7e644a3a736cc3fa1e74c928",
279
297
  "Harness/templates/UI_CONTRACT.template.md": "sha256-87c9bc47452c53caca9333130aef567cf9b16ffc5e82a8f6592bbd4f715875ef",
280
298
  "Harness/templates/VALIDATION_REPORT.template.md": "sha256-feb1f7b9bba18f1ce028954b48775730f7dd8b7c2afd0ef44cda54bfe13c1875",
281
- "opencode.json": "sha256-a523dd084e67891ff6ca31916b20968e74234504b4e703945d3a4d8a835c6fbd"
299
+ "opencode.json": "sha256-2367af42752933a4102ccecbb49e14f5d1c4bc934d15e0785d3026efbc68e4d0"
282
300
  },
283
301
  "sources": {
284
302
  ".agents/skills/subagent-orchestrator/SKILL.md": ".claude/skills/subagent-orchestrator/SKILL.md",
@@ -286,6 +304,8 @@
286
304
  ".agents/skills/wf-agents-docs/SKILL.md": ".claude/skills/wf-agents-docs/SKILL.md",
287
305
  ".agents/skills/wf-auto-spark/SKILL.md": ".claude/skills/wf-auto-spark/SKILL.md",
288
306
  ".agents/skills/wf-auto/SKILL.md": ".claude/skills/wf-auto/SKILL.md",
307
+ ".agents/skills/wf-browser/SKILL.md": ".claude/skills/wf-browser/SKILL.md",
308
+ ".agents/skills/wf-help/SKILL.md": ".claude/skills/wf-help/SKILL.md",
289
309
  ".agents/skills/wf-learn/SKILL.md": ".claude/skills/wf-learn/SKILL.md",
290
310
  ".agents/skills/wf-max/SKILL.md": ".claude/skills/wf-max/SKILL.md",
291
311
  ".agents/skills/wf-readme/SKILL.md": ".claude/skills/wf-readme/SKILL.md",
@@ -312,8 +332,17 @@
312
332
  ".claude/agents/tdd-guide.md": ".claude/agents/tdd-guide.md",
313
333
  ".claude/agents/test-writer.md": ".claude/agents/test-writer.md",
314
334
  ".claude/agents/verifier.md": ".claude/agents/verifier.md",
335
+ ".claude/commands/wf-auto-spark.md": ".claude/commands/wf-auto-spark.md",
336
+ ".claude/commands/wf-auto.md": ".claude/commands/wf-auto.md",
337
+ ".claude/commands/wf-browser.md": ".claude/commands/wf-browser.md",
315
338
  ".claude/commands/wf-help.md": ".claude/commands/wf-help.md",
339
+ ".claude/commands/wf-learn.md": ".claude/commands/wf-learn.md",
340
+ ".claude/commands/wf-max.md": ".claude/commands/wf-max.md",
341
+ ".claude/commands/wf-readme.md": ".claude/commands/wf-readme.md",
342
+ ".claude/commands/wf-remove.md": ".claude/commands/wf-remove.md",
343
+ ".claude/commands/wf-review.md": ".claude/commands/wf-review.md",
316
344
  ".claude/commands/wf-update.md": ".claude/commands/wf-update.md",
345
+ ".claude/commands/wf.md": ".claude/commands/wf.md",
317
346
  ".claude/rules/ecc/common.md": ".claude/rules/ecc/common.md",
318
347
  ".claude/settings.json": ".claude/settings.json",
319
348
  ".claude/skills/subagent-orchestrator/SKILL.md": ".claude/skills/subagent-orchestrator/SKILL.md",
@@ -321,6 +350,8 @@
321
350
  ".claude/skills/wf-agents-docs/SKILL.md": ".claude/skills/wf-agents-docs/SKILL.md",
322
351
  ".claude/skills/wf-auto-spark/SKILL.md": ".claude/skills/wf-auto-spark/SKILL.md",
323
352
  ".claude/skills/wf-auto/SKILL.md": ".claude/skills/wf-auto/SKILL.md",
353
+ ".claude/skills/wf-browser/SKILL.md": ".claude/skills/wf-browser/SKILL.md",
354
+ ".claude/skills/wf-help/SKILL.md": ".claude/skills/wf-help/SKILL.md",
324
355
  ".claude/skills/wf-learn/SKILL.md": ".claude/skills/wf-learn/SKILL.md",
325
356
  ".claude/skills/wf-max/SKILL.md": ".claude/skills/wf-max/SKILL.md",
326
357
  ".claude/skills/wf-readme/SKILL.md": ".claude/skills/wf-readme/SKILL.md",
@@ -352,6 +383,7 @@
352
383
  ".opencode/agents/verifier.md": ".opencode/agents/verifier.md",
353
384
  ".opencode/commands/wf-auto-spark.md": ".opencode/commands/wf-auto-spark.md",
354
385
  ".opencode/commands/wf-auto.md": ".opencode/commands/wf-auto.md",
386
+ ".opencode/commands/wf-browser.md": ".opencode/commands/wf-browser.md",
355
387
  ".opencode/commands/wf-help.md": ".opencode/commands/wf-help.md",
356
388
  ".opencode/commands/wf-learn.md": ".opencode/commands/wf-learn.md",
357
389
  ".opencode/commands/wf-max.md": ".opencode/commands/wf-max.md",
@@ -381,6 +413,7 @@
381
413
  "Harness/scripts/context-budget.mjs": "Harness/scripts/context-budget.mjs",
382
414
  "Harness/scripts/l2-cache-telemetry.mjs": "Harness/scripts/l2-cache-telemetry.mjs",
383
415
  "Harness/scripts/scan-clean.mjs": "Harness/scripts/scan-clean.mjs",
416
+ "Harness/scripts/task-state.mjs": "Harness/scripts/task-state.mjs",
384
417
  "Harness/scripts/validate-harness.mjs": "Harness/scripts/validate-harness.mjs",
385
418
  "Harness/scripts/wf-auto-update-prompt.mjs": "Harness/scripts/wf-auto-update-prompt.mjs",
386
419
  "Harness/scripts/wf-remove.mjs": "Harness/scripts/wf-remove.mjs",
@@ -3,10 +3,16 @@ harness: wf-agent
3
3
  description: WF-MAX Manager for W1 architecture wave. Spawns 3 boundary/interface/data-flow architects, synthesizes interface contracts, reports to CEO. Read-only + Agent spawn; no Edit/Write.
4
4
  mode: subagent
5
5
  permission:
6
+ task:
7
+ "*": deny
8
+ "architect": allow
9
+ "codebase-explorer": allow
6
10
  edit: deny
7
11
  bash:
8
12
  "*": deny
9
- "git *": allow
13
+ "git status*": allow
14
+ "git diff*": allow
15
+ "git log*": allow
10
16
  "ls *": allow
11
17
  "dir *": allow
12
18
  websearch: deny
@@ -3,10 +3,19 @@ harness: wf-agent
3
3
  description: WF-MAX Manager for W0 exploration wave. Spawns 5-10 read-only researchers/explorers, synthesizes findings, reports to CEO. Read-only + Agent spawn; no Edit/Write.
4
4
  mode: subagent
5
5
  permission:
6
+ task:
7
+ "*": deny
8
+ "codebase-explorer": allow
9
+ "researcher": allow
10
+ "docs-researcher": allow
11
+ "explore": allow
12
+ "scout": allow
6
13
  edit: deny
7
14
  bash:
8
15
  "*": deny
9
- "git *": allow
16
+ "git status*": allow
17
+ "git diff*": allow
18
+ "git log*": allow
10
19
  "ls *": allow
11
20
  "dir *": allow
12
21
  "tree *": allow
@@ -3,12 +3,14 @@ harness: wf-agent
3
3
  description: WF-MAX Manager for W2 implementation wave. Spawns 5-7 implementers (one file_claim each), merges results, reports to CEO. Agent spawn + synthesis only; does NOT write code directly.
4
4
  mode: subagent
5
5
  permission:
6
+ task:
7
+ "*": deny
8
+ "implementer": allow
6
9
  edit: deny
7
10
  bash:
8
11
  "*": deny
9
- "git *": allow
10
- "node *": allow
11
- "npm *": allow
12
+ "git status*": allow
13
+ "git diff*": allow
12
14
  websearch: deny
13
15
  webfetch: deny
14
16
  ---
@@ -3,12 +3,15 @@ harness: wf-agent
3
3
  description: WF-MAX Manager for W2R review wave. Spawns 3-4 parallel reviewers (spec/code/security/perf), deduplicates findings, assigns severity, reports to CEO. Read-only + Agent spawn; no Edit/Write.
4
4
  mode: subagent
5
5
  permission:
6
+ task:
7
+ "*": deny
8
+ "reviewer": allow
6
9
  edit: deny
7
10
  bash:
8
11
  "*": deny
9
- "git *": allow
12
+ "git status*": allow
10
13
  "git diff *": allow
11
- "node *": allow
14
+ "git diff*": allow
12
15
  websearch: deny
13
16
  webfetch: deny
14
17
  ---
@@ -0,0 +1,16 @@
1
+ ---
2
+ description: Run AI-driven browser automation and E2E testing via the wf-browser skill
3
+ ---
4
+
5
+ # /wf-browser
6
+
7
+ This is a **workflow command**, not a direct command. Do not execute it as a
8
+ static help or script command.
9
+
10
+ 1. Load `CLAUDE.md`, `Harness/MEMORY.md` (index only per Memory Preflight), then `Harness/README.md`.
11
+ 2. Preserve cache-first order per `Harness/specs/runtime/context-loading.md#Cache-First Context Contract`.
12
+ 3. Execute per the skill adapter `.claude/skills/wf-browser/SKILL.md` (mirror: `.agents/skills/wf-browser/SKILL.md`).
13
+ 4. Do not duplicate the workflow here. The skill adapter and `Harness/specs/protocols/HARNESS_BRIDGE.md` are authoritative.
14
+
15
+ If this runtime cannot invoke the skill directly, read
16
+ `.claude/skills/wf-browser/SKILL.md` and follow it in place.
@@ -6,6 +6,9 @@ description: Show the Harness WF command table
6
6
  Return this help table directly. Do not invoke a skill, do not start WF mode,
7
7
  do not dispatch agents, and do not edit files.
8
8
 
9
+ Codex compatibility: `$wf-help` or `/skills wf-help` loads the `wf-help` shim,
10
+ which returns this same table without loading `Harness/MEMORY.md` or entering WF.
11
+
9
12
  | Command | Type | Usage | Purpose |
10
13
  | --- | --- | --- | --- |
11
14
  | `/wf-help` | direct command | `/wf-help` | Show this command table. |
@@ -15,14 +18,14 @@ do not dispatch agents, and do not edit files.
15
18
  | `/wf-auto-spark` | workflow skill | `/wf-auto-spark` | Perpetual inspiration mode with roadmap anchoring and external spark search. |
16
19
  | `/wf-review <focus>` | workflow skill | `/wf-review security and test coverage` | Peer CLI review through Claude/Codex/OpenCode, with reviewer subagent fallback. |
17
20
  | `/wf-learn` | workflow skill | `/wf-learn` | Force context-master -> memory-master learning cycle after repeated failures or closeout. |
18
- | `/wf-browser <task>` | optional workflow skill | `/wf-browser verify checkout flow` | Browser automation/E2E workflow with real UI interaction, screenshots, traces, and CDP/network evidence when installed. |
21
+ | `/wf-browser <task>` | workflow skill | `/wf-browser verify checkout flow` | Built-in browser automation/E2E workflow with real UI interaction, screenshots, traces, and CDP/network evidence. |
19
22
  | `/wf-readme <task>` | workflow skill | `/wf-readme polish quickstart` | Preserve, merge, or improve README docs without trampling existing project documentation. |
20
23
  | `/wf-update` | direct command | `/wf-update` | Check/apply Harness scaffold updates with safe file classification and conflict handling. |
21
24
  | `/wf-remove` | workflow skill | `/wf-remove` | Safely remove Harness files while preserving project/user data unless explicitly purged. |
22
25
 
23
26
  Source of truth: `Harness/README.md#Skill Commands` plus installed skills under
24
- `.claude/skills/` (Claude Code) or `.agents/skills/` (Codex). In OpenCode the
25
- same skills load from `.claude/skills/`, `.agents/skills/`, and `.opencode/skills/`.
26
- In OpenCode, every workflow command above is also visible as a thin command
27
- wrapper under `.opencode/commands/` (e.g. `/wf`, `/wf-max`); each wrapper only
28
- routes to the matching skill adapter and does not duplicate the workflow.
27
+ `.claude/skills/` (Claude Code and OpenCode adapters) or `.agents/skills/`
28
+ (Codex). In OpenCode, every workflow command above is visible as a thin command
29
+ wrapper under `.opencode/commands/` (e.g. `/wf`, `/wf-max`); each wrapper routes
30
+ to the matching `.claude/skills/<command>/SKILL.md` adapter and does not
31
+ duplicate the workflow.
@@ -1,5 +1,6 @@
1
1
  ---
2
- description: Run the WF-MAX maximum-safe-parallelism workflow via the wf-max skill
2
+ description: Run WF-MAX with mandatory subagent fan-out and recorded degradation
3
+ agent: build
3
4
  ---
4
5
 
5
6
  # /wf-max
@@ -8,9 +9,13 @@ This is a **workflow command**, not a direct command. Do not execute it as a
8
9
  static help or script command.
9
10
 
10
11
  1. Load `CLAUDE.md`, `Harness/MEMORY.md` (index only per Memory Preflight), then `Harness/README.md`.
11
- 2. Preserve cache-first order per `Harness/specs/runtime/context-loading.md#Cache-First Context Contract`.
12
- 3. Execute per the skill adapter `.claude/skills/wf-max/SKILL.md` (mirror: `.agents/skills/wf-max/SKILL.md`).
13
- 4. Do not duplicate the workflow here. The skill adapter and `Harness/specs/workflows/WF-MAX.md` are authoritative.
14
-
15
- If this runtime cannot invoke the skill directly, read
16
- `.claude/skills/wf-max/SKILL.md` and follow it in place.
12
+ 2. Load and follow `.claude/skills/wf-max/SKILL.md` (mirror: `.agents/skills/wf-max/SKILL.md`) and `Harness/specs/workflows/WF-MAX.md`.
13
+ 3. Preserve cache-first order per `Harness/specs/runtime/context-loading.md#Cache-First Context Contract`.
14
+ 4. MUST attempt native runtime subagent fan-out before planning is considered complete:
15
+ - start `task-scribe` when available for task ledger/state;
16
+ - start W0 exploration through manager/explorer/researcher roles with disjoint read sets;
17
+ - when running in OpenCode, require project `opencode.json` to have `subagent_depth >= 2` and manager agents to have `permission.task` allowlists for manager -> worker fan-out;
18
+ - if nested manager fan-out is unavailable, dispatch leaf workers directly from the primary agent with exact WF-MAX dispatch packets.
19
+ 5. In every runtime, MUST attempt native subagent fan-out before implementation planning is considered complete; never silently continue as a solo controller.
20
+ 6. If native fan-out fails, record `fanoutAttempted: true`, runtime, channel tried, agents requested, failure/degradation reason, and the fallback path in `Harness/tasks/<task-id>/PLAN.md` or `PROGRESS.md`.
21
+ 7. Continue with WF-Max-Useful by default or WF-Max-Strict only when the user explicitly requests strict mode.
@@ -14,9 +14,9 @@ In direct mode, do not load the full Harness router. Inspect only the files need
14
14
 
15
15
  Complex work may use direct planning, task capsules, tests, and subagents without entering WF. WF execution modes are explicit only: the user must type `/wf`, `$wf`, `/skills wf`, `/wf-max`, `$wf-max`, `/skills wf-max`, `/wf-auto`, `$wf-auto`, `/skills wf-auto`, `/wf-auto-spark`, `$wf-auto-spark`, or `/skills wf-auto-spark` to enter the WF kernel. No other phrasing, complexity heuristic, or inferred intent triggers WF.
16
16
 
17
- `/wf-help` and `/wf-update` are **direct commands** — do NOT load `Harness/MEMORY.md`, do NOT enter WF, do NOT invoke a skill. Execute them immediately as static help / script commands respectively.
17
+ `/wf-help`, `$wf-help`, `/skills wf-help`, `/wf-update`, `$wf-update`, and `/skills wf-update` are **direct/compat commands** — do NOT load `Harness/MEMORY.md`, do NOT enter WF. Claude Code and OpenCode execute the direct command files; Codex may invoke the matching compatibility skill shim, which returns the static help/update instructions without entering WF.
18
18
 
19
- For non-direct workflow commands (`/wf`, `/wf-max`, `/wf-auto`, `/wf-review`, `/wf-learn`, `/wf-readme`, `/wf-remove`, `/wf-browser`, `/wf-auto-spark`, and matching `$wf-*` or `/skills wf-*` forms), load `Harness/MEMORY.md` first, then `Harness/README.md`.
19
+ For non-direct workflow commands (`/wf`, `/wf-max`, `/wf-auto`, `/wf-review`, `/wf-learn`, `/wf-readme`, `/wf-remove`, `/wf-browser`, `/wf-auto-spark`, and matching `$wf-*` or `/skills wf-*` forms except the direct/compat commands above), load `Harness/MEMORY.md` first, then `Harness/README.md`.
20
20
 
21
21
  ### Active Task Resume
22
22
 
@@ -35,11 +35,13 @@ Stack-specific agents can be added after the product shape is known.
35
35
  - [wf-readme](../.claude/skills/wf-readme/SKILL.md) - README preservation, append-only development sections, structured tables, and approved architecture diagrams.
36
36
  - [wf-agents-docs](../.claude/skills/wf-agents-docs/SKILL.md) - source-backed Claude/Codex/OpenCode CLI invocation, JSON output, resume, telemetry, and automation gotchas.
37
37
  - [wf-review](../.claude/skills/wf-review/SKILL.md) - peer review: prefer another agent CLI (Claude/Codex/OpenCode); otherwise use the installed reviewer role as an independent subagent context. Controller decides.
38
+ - [wf-help](../.claude/skills/wf-help/SKILL.md) - Codex compatibility shim for `$wf-help` / `/skills wf-help`; returns the direct command table without entering WF.
38
39
  - [wf-update](../.claude/skills/wf-update/SKILL.md) - GitHub-based incremental harness update, checksum comparison, and safe in-place updates.
39
40
  - [wf-learn](../.claude/skills/wf-learn/SKILL.md) - force memory learning cycle: context-master -> memory-master -> project + global memory.
40
41
  - [wf-max](../.claude/skills/wf-max/SKILL.md) - WF kernel + maximum safe fan-out: WF-Max-Useful by default (fan out only where independent), WF-Max-Strict only on explicit strict request; current runtime subagents first, peer-CLI overflow when available.
41
42
  - [wf-auto](../.claude/skills/wf-auto/SKILL.md) - perpetual adaptive auto-optimization: evidence-selected probes, dynamic obligations, intent checkpoints, evidence ledger.
42
43
  - [wf-auto-spark](../.claude/skills/wf-auto-spark/SKILL.md) - perpetual inspiration mode: external spark search, long-term roadmap with staged milestones, <=50% deviation guard.
44
+ - [wf-browser](../.claude/skills/wf-browser/SKILL.md) - built-in browser automation/E2E workflow with controllable UI contracts, Browser Use, Playwright, CDP/network evidence, screenshots, traces, and validation matrix.
43
45
  - [tdd](../.claude/skills/tdd/SKILL.md) - acceptance-driven TDD: AC-linked RED tests, real UI clicks for browser-visible behavior, Playwright/CDP evidence, and configured coverage gate.
44
46
  - [wf-remove](../.claude/skills/wf-remove/SKILL.md) - safely remove Harness framework files (SAFE/MODIFIED/USER classes), auto-prune empty directories, backup option.
45
47
 
@@ -47,13 +49,11 @@ Codex repo-skill mirrors live under `../.agents/skills/` with the same skill nam
47
49
 
48
50
  ## Direct Commands
49
51
 
50
- - [wf-help](../.claude/commands/wf-help.md) - direct `/wf-help` command that returns a WF command table without invoking a skill.
52
+ - [wf-help](../.claude/commands/wf-help.md) - direct `/wf-help` command that returns a WF command table; Codex mirror skill supports `$wf-help` without entering WF.
51
53
  - [wf-update](../.claude/commands/wf-update.md) - direct `/wf-update` command for script-driven update checks, safe apply, conflict handling, and release highlights.
52
54
 
53
55
  Stack-specific skills can be added after the product shape is known.
54
56
 
55
- - [browser-e2e](workflows/browser-e2e.md)
56
-
57
57
  ## Rules (Harness Constraints)
58
58
 
59
59
  Located under `.claude/rules/ecc/`, auto-loaded by the CC engine:
@@ -4,7 +4,7 @@ Purpose: route humans and agents to the smallest useful context. `CLAUDE.md` is
4
4
 
5
5
  Default load: `CLAUDE.md`. For workflow commands (`/wf`, `/wf-max`, `/wf-auto`, `/wf-review`, `/wf-learn`, `/wf-readme`, `/wf-remove`, `/wf-browser`, `/wf-auto-spark`), also load `Harness/MEMORY.md` (index only per Memory Preflight), this file, and `Harness/PROGRESS.md` when work is active.
6
6
 
7
- `/wf-help` and `/wf-update` are **direct commands**: skip the router, do NOT load `Harness/MEMORY.md`, do NOT enter WF, execute immediately.
7
+ `/wf-help`, `$wf-help`, `/skills wf-help`, `/wf-update`, `$wf-update`, and `/skills wf-update` are **direct/compat commands**: skip the router, do NOT load `Harness/MEMORY.md`, do NOT enter WF. Claude Code and OpenCode execute direct command files; Codex uses the matching compatibility skill shim.
8
8
 
9
9
  Do not read the whole `Harness/` tree.
10
10
 
@@ -29,15 +29,15 @@ See `Harness/specs/workflows/WF-STATE.md` for the full state machine contract an
29
29
 
30
30
  ## Direct Mode (Degradation Path)
31
31
 
32
- When the user does NOT explicitly invoke `/wf-*`, `$wf-*`, `/skills wf`, `/skills wf-max`, or say `wf` / `wf-max`, the request is handled in **direct mode**. Skip the router entirely. Execute the task. Do not load `Harness/MEMORY.md`, `Harness/README.md`, or `Harness/PROGRESS.md`.
32
+ When the user does NOT explicitly invoke `/wf-*`, `$wf-*`, `/skills wf-*`, or say `wf` / `wf-max`, the request is handled in **direct mode**. Skip the router entirely. Execute the task. Do not load `Harness/MEMORY.md`, `Harness/README.md`, or `Harness/PROGRESS.md`.
33
33
 
34
34
  Complex work may use direct planning, task capsules, tests, and subagents without entering WF.
35
35
 
36
36
  Escalate to the router (next section) only when:
37
37
  - User explicitly invokes `/wf`, `/wf-max`, `$wf`, `$wf-max`, `/skills wf`, `/skills wf-max`, or says `wf` / `wf-max`
38
- - User invokes another workflow `/wf-*` command (NOT `/wf-help` or `/wf-update` those are direct commands)
38
+ - User invokes another workflow `/wf-*`, `$wf-*`, or `/skills wf-*` command, excluding `/wf-help`, `$wf-help`, `/skills wf-help`, `/wf-update`, `$wf-update`, and `/skills wf-update`
39
39
 
40
- `/wf-help` and `/wf-update` are direct commands executed immediately without router load.
40
+ `/wf-help`, `$wf-help`, `/skills wf-help`, `/wf-update`, `$wf-update`, and `/skills wf-update` are direct/compat commands executed immediately without router load.
41
41
 
42
42
  ## 0-1 Flow
43
43
 
@@ -99,7 +99,7 @@ Routing priority: **direct mode is the default** when no explicit WF token is pr
99
99
  | Need market/tech direction | research, market, competitor, stack, library, pricing, policy | [research/README.md](research/README.md), [research/research-results.md](research/research-results.md) | research protocol, adopted/rejected choices |
100
100
  | Need MVP/spec | PRD, MVP, scope, requirement, acceptance, non-goal | [research/PRD.md](research/PRD.md), [ACCEPTANCE_PROTOCOL.md](specs/protocols/ACCEPTANCE_PROTOCOL.md) | Mini PRD with AC IDs and verifiable acceptance criteria |
101
101
  | Need architecture or boundaries | architecture, boundary, layer, port, adapter, dependency | [architecture.md](project/architecture.md) | layer map, ports, constraints |
102
- | Need WF command help | /wf-help, wf help, command list, list wf commands | `.claude/commands/wf-help.md` | direct command table; no skill invocation |
102
+ | Need WF command help | /wf-help, $wf-help, /skills wf-help, wf help, command list, list wf commands | `.claude/commands/wf-help.md`, `.opencode/commands/wf-help.md`, `.claude/skills/wf-help/SKILL.md`, `.agents/skills/wf-help/SKILL.md` | static command table; Codex shim may invoke a minimal skill, but no WF/router load |
103
103
  | Need WF mode (explicit only) | /wf, $wf, /skills wf (explicit user token only) | [WF.md](specs/workflows/WF.md), [WF-KERNEL.md](specs/workflows/WF-KERNEL.md), [PROGRESS.md](PROGRESS.md), the current task `tasks/<id>/PROGRESS.md` and `tasks/<id>/PLAN.md` | dynamic ready-queue orchestration, tier-gated acceptance |
104
104
  | Need perpetual auto-optimization | /wf-auto, $wf-auto, /skills wf-auto (explicit user token only) | [WF-AUTO.md](specs/workflows/WF-AUTO.md), [WF-AUTO-ANGLES.md](specs/workflows/WF-AUTO-ANGLES.md), [subagents.md](specs/runtime/subagents.md), [dispatch.md](specs/runtime/dispatch.md) | perpetual loop, adaptive probe selection, dynamic risk obligations, spark search, intent checkpoint, evidence ledger; CEO never writes code |
105
105
  | Need perpetual inspiration mode | /wf-auto-spark, $wf-auto-spark, /skills wf-auto-spark (explicit user token only) | [WF-AUTO-SPARK.md](specs/workflows/WF-AUTO-SPARK.md), [WF-AUTO.md](specs/workflows/WF-AUTO.md), [subagents.md](specs/runtime/subagents.md), [dispatch.md](specs/runtime/dispatch.md) | roadmap-anchored: North Star + milestones; external spark search; <=50% deviation guard; never auto-stops |
@@ -108,7 +108,7 @@ Routing priority: **direct mode is the default** when no explicit WF token is pr
108
108
  | Adding harness to existing project | existing project, onboarding, migrate, bootstrap, preserve, conflict | [extension.md](specs/guides/extension.md), [PROGRESS.md](PROGRESS.md), root `README.md` and package/CI files | discovered project facts, preserved config, manual registration plan |
109
109
  | README optimization | README, docs, quickstart, install docs, architecture diagram, command table, documentation polish | root `README.md`, `.claude/skills/wf-readme/SKILL.md`, [PROGRESS.md](PROGRESS.md), [architecture.md](project/architecture.md) as needed | approved README mode, preserved sections, proposed diff plan |
110
110
  | 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](specs/runtime/agent-workflow.md), [ACCEPTANCE_PROTOCOL.md](specs/protocols/ACCEPTANCE_PROTOCOL.md) | tasks, AC IDs, write set, verification commands |
111
- | Browser E2E testing or automation | /wf-browser, browser, e2e, web automation, form fill, screenshot verify, page test, browser test, Playwright AI, Browser Use, CDP | browser-e2e workflow, [HARNESS_BRIDGE.md](specs/protocols/HARNESS_BRIDGE.md), wf-browser skill, Browser Use skill | UI/API contract, CLI commands, screenshots, traces, validation matrix |
111
+ | Browser E2E testing or automation | /wf-browser, $wf-browser, /skills wf-browser, browser, e2e, web automation, form fill, screenshot verify, page test, browser test, Playwright AI, Browser Use, CDP | `.claude/skills/wf-browser/SKILL.md`, `.agents/skills/wf-browser/SKILL.md`, [HARNESS_BRIDGE.md](specs/protocols/HARNESS_BRIDGE.md), Browser Use skill | controllable UI contract, Browser Use/Playwright/CDP commands, screenshots, traces, validation matrix |
112
112
  | Optional workflow installed | workflow, optional, ui-ux-review, github-pr-review, python-backend, ts-react-frontend | matching `workflows/*.md` (if installed), [extension.md](specs/guides/extension.md) | workflow-specific evidence, commands, fallback path |
113
113
  | Need durable memory or reflection | memory, remember, preference, correction, tool failure, lesson, reflection, scenario memory | [MEMORY.md](MEMORY.md), [MEMORY_PROTOCOL.md](specs/protocols/MEMORY_PROTOCOL.md), `Harness/memory/tool-usage-reflections.md`, `Harness/memory/user-corrections-preferences.md`, `Harness/memory/agent-lessons-patterns.md` | concise newest-first memory entry, scenario memory hint, or no-op rationale |
114
114
  | Need context/cache/token efficiency | cache, token, context, prompt cache, tool search, cache hit | [context-loading.md](specs/runtime/context-loading.md), [WF-KERNEL.md](specs/workflows/WF-KERNEL.md), [dispatch.md](specs/runtime/dispatch.md), `scripts/l2-cache-telemetry.mjs` | cache-first context layout, deferred skills/tools, bounded summaries, L2 telemetry plan |
@@ -127,7 +127,7 @@ Routing priority: **direct mode is the default** when no explicit WF token is pr
127
127
  - Use `/wf-auto` for perpetual self-directed optimization. It selects probes from project evidence and stops only after dynamic risk obligations and two different empty confirmation passes are recorded.
128
128
  - **WF-MAX Role Contract**: Three-layer architecture: global mode (`wf-max`), agent role (`ceo|manager|worker|verifier|reviewer|reflector`), dispatch permission (`writeSet`, `forbidden`, `verification`). CEO never writes source code. Workers edit only dispatch.writeSet. Compliance is checked through dispatch packets, independent review, validation evidence, and task capsules. See `CLAUDE.md#1a`.
129
129
  - **WF-REVIEW Independence**: Prefer a peer CLI (`claude`, `codex`, or `opencode`) that is not the current runtime. If none exists, dispatch the installed `reviewer` role as a separate subagent context. Same-runtime fallback is independent-context review, not cross-model review; the main agent owns final decisions.
130
- - WF-MAX has no runtime hook state. The durable state is the task capsule, dispatch table, review findings, and validation evidence. The only runtime hook exception in Harness is the optional `/wf-auto` bounded tick hook described in `WF-AUTO.md`.
130
+ - WF-MAX role enforcement has no runtime hook state. Durable WF state remains the task capsule, dispatch table, review findings, and validation evidence. Startup update-check hooks do not enforce roles, write sets, or agent identity. The `/wf-auto` bounded tick hook is described in `WF-AUTO.md`.
131
131
  - Do not code before PRD-GATE, AC-GATE, CONTRACT-GATE, and TEST-GATE are satisfied or explicitly compressed into a documented fast lane.
132
132
  - PRD-derived Acceptance Criteria are the source of truth. Code, tests, reviews, validation, debug, and memory must trace to AC IDs.
133
133
  - No acceptance criteria, no tests. No acceptance criteria, no code.
@@ -158,17 +158,18 @@ Routing priority: **direct mode is the default** when no explicit WF token is pr
158
158
  | **Research** | `research/README.md`, `research/PRD.md`, `research/research-results.md` |
159
159
  | **Acceptance Templates** | `templates/PRD.template.md`, `templates/ACCEPTANCE.template.md`, `templates/UI_CONTRACT.template.md`, `templates/API_CONTRACT.template.md`, `templates/TEST_PLAN.template.md`, `templates/PLAYWRIGHT_SPEC.template.ts`, `templates/VALIDATION_REPORT.template.md` |
160
160
  | **Memory** | `memory/tool-usage-reflections.md`, `memory/user-corrections-preferences.md`, `memory/agent-lessons-patterns.md` |
161
- | **Scripts** | `scripts/validate-harness.mjs`, `scripts/context-budget.mjs`, `scripts/l2-cache-telemetry.mjs`, `scripts/wf-update-check.mjs`, `scripts/wf-remove.mjs`, `scripts/archive-tasks.mjs` |
161
+ | **Scripts** | `scripts/validate-harness.mjs`, `scripts/context-budget.mjs`, `scripts/l2-cache-telemetry.mjs`, `scripts/wf-update-check.mjs`, `scripts/wf-remove.mjs`, `scripts/task-state.mjs`, `scripts/archive-tasks.mjs` |
162
162
  | **Runtime + Config** | `.harness-version`, `ownership.manifest.json`, `settings.json` |
163
163
  | **Agents + Skills** | `.claude/agents/*`, `.claude/skills/*`, `.agents/skills/*` |
164
164
  | **Direct Commands** | `.claude/commands/wf-help.md`, `.claude/commands/wf-update.md`, `.opencode/commands/wf-help.md`, `.opencode/commands/wf-update.md` |
165
+ | **Workflow Command Wrappers** | `.claude/commands/wf*.md`, `.opencode/commands/wf*.md` |
165
166
 
166
167
  ## Direct Commands
167
168
 
168
169
  | Command | Purpose |
169
170
  |---|---|
170
- | `/wf-help` | Directly returns a table of all Harness WF commands, usage, and purpose. It does not invoke a skill or start a workflow. |
171
- | `/wf-update` | Script-driven harness update: fetch + compare + apply + report release highlights. Direct command for Claude Code and OpenCode; skill path available for Codex compatibility. |
171
+ | `/wf-help`, `$wf-help` | Returns a table of all Harness WF commands, usage, and purpose. Claude Code/OpenCode use direct command files; Codex uses the minimal `wf-help` skill shim. It never starts WF. |
172
+ | `/wf-update`, `$wf-update` | Script-driven harness update: fetch + compare + apply + report release highlights. Direct command for Claude Code and OpenCode; skill path available for Codex compatibility. |
172
173
 
173
174
  ## Skill Commands
174
175
 
@@ -180,7 +181,7 @@ Routing priority: **direct mode is the default** when no explicit WF token is pr
180
181
  | `/wf-auto-spark` | `$wf-auto-spark` | Perpetual inspiration: spark search, roadmap-anchored, <=50% deviation guard, never auto-stops |
181
182
  | `/wf-review [focus]` | `$wf-review [focus]` | Peer CLI review via Claude/Codex/OpenCode, or installed reviewer subagent fallback |
182
183
  | `/wf-learn` | `$wf-learn` | Force learning cycle: context-master -> memory-master |
183
- | `/wf-browser [task]` | `$wf-browser [task]` | AI-driven browser automation for E2E testing |
184
+ | `/wf-browser [task]` | `$wf-browser [task]` | Built-in AI-driven browser automation for E2E testing |
184
185
  | `/wf-readme [task]` | `$wf-readme [task]` | README preservation, merge, and documentation improvement workflow |
185
186
  | `/wf-update` | `$wf-update` | Script-driven harness update: fetch + compare + apply + report release highlights |
186
187
  | `/wf-remove` | `$wf-remove` | Safe harness removal: auto-delete SAFE, confirm MODIFIED, preserve USER DATA |