create-harness-vibe-coding 0.8.3 → 0.8.4

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 (55) hide show
  1. package/README-CN.md +2 -2
  2. package/README.md +2 -3
  3. package/package.json +1 -2
  4. package/src/generator.js +4 -5
  5. package/templates/common/.claude/agents/context-master.md +3 -2
  6. package/templates/common/.claude/agents/memory-master.md +3 -2
  7. package/templates/common/.claude/agents/tdd-guide.md +45 -19
  8. package/templates/common/.claude/agents/test-writer.md +52 -38
  9. package/templates/common/.claude/commands/wf-help.md +21 -0
  10. package/templates/common/.claude/rules/ecc/common.md +1 -1
  11. package/templates/common/.claude/settings.json +33 -90
  12. package/templates/common/.claude/skills/tdd/SKILL.md +18 -11
  13. package/templates/common/.claude/skills/wf-auto/SKILL.md +1 -1
  14. package/templates/common/.codex/config.toml +0 -2
  15. package/templates/common/.harness-version +55 -37
  16. package/templates/common/AGENTS.md +7 -6
  17. package/templates/common/CLAUDE.md +3 -4
  18. package/templates/common/Harness/ACCEPTANCE_PROTOCOL.md +170 -0
  19. package/templates/common/Harness/AGENT_ISOLATION.md +73 -0
  20. package/templates/common/Harness/DEBUG_PROTOCOL.md +64 -0
  21. package/templates/common/Harness/ECC-GUIDE.md +4 -4
  22. package/templates/common/Harness/HARNESS_BRIDGE.md +128 -0
  23. package/templates/common/Harness/MEMORY_PROTOCOL.md +114 -0
  24. package/templates/common/Harness/README.md +31 -16
  25. package/templates/common/Harness/TDD-GUIDE.md +138 -56
  26. package/templates/common/Harness/WF-AUTO.md +77 -16
  27. package/templates/common/Harness/WF-MAX.md +81 -22
  28. package/templates/common/Harness/WF.md +38 -18
  29. package/templates/common/Harness/agent-workflow.md +47 -22
  30. package/templates/common/Harness/context-loading.md +33 -32
  31. package/templates/common/Harness/dispatch.md +10 -4
  32. package/templates/common/Harness/extension.md +3 -3
  33. package/templates/common/Harness/lifecycle.md +19 -13
  34. package/templates/common/Harness/research/PRD.md +18 -9
  35. package/templates/common/Harness/subagents.md +41 -14
  36. package/templates/common/Harness/tasks/_template/NAMING.md +2 -2
  37. package/templates/common/Harness/tasks/_template/PLAN.md +53 -11
  38. package/templates/common/Harness/templates/ACCEPTANCE.template.md +20 -0
  39. package/templates/common/Harness/templates/API_CONTRACT.template.md +40 -0
  40. package/templates/common/Harness/templates/PLAYWRIGHT_SPEC.template.ts +21 -0
  41. package/templates/common/Harness/templates/PRD.template.md +45 -0
  42. package/templates/common/Harness/templates/TEST_PLAN.template.md +14 -0
  43. package/templates/common/Harness/templates/UI_CONTRACT.template.md +11 -0
  44. package/templates/common/Harness/templates/VALIDATION_REPORT.template.md +20 -0
  45. package/templates/common/MEMORY.md +14 -3
  46. package/templates/common/README.md +1 -1
  47. package/templates/common/SETUP.md +24 -20
  48. package/templates/common/scripts/validate-harness.mjs +134 -41
  49. package/templates/common/scripts/wf-remove.mjs +6 -2
  50. package/templates/optional/skills/browser-e2e/Harness/workflows/browser-e2e.md +11 -3
  51. package/templates/optional/skills/ts-react-frontend/Harness/workflows/ts-react-frontend.md +1 -1
  52. package/templates/common/.codex/hooks.json +0 -59
  53. package/templates/common/scripts/wf-mode-hook.mjs +0 -642
  54. package/templates/common/scripts/wf-statusline.ps1 +0 -62
  55. package/templates/common/scripts/wf-statusline.sh +0 -67
@@ -1,12 +1,12 @@
1
1
  {
2
- "generator": "0.8.3",
3
- "generated": "2026-07-02T04:50:02.856Z",
2
+ "generator": "0.8.4",
3
+ "generated": "2026-07-02T09:50:07.142Z",
4
4
  "options": [],
5
5
  "autoCheck": true,
6
6
  "source": "https://raw.githubusercontent.com/zingspark/create-harness-vibe-coding/main/templates/common/",
7
7
  "checksums": {
8
8
  ".agents/skills/subagent-orchestrator/SKILL.md": "sha256-d17b1e49aa8e3125b17621242f620ac89c10692fac853bf0a682a87f660d86da",
9
- ".agents/skills/tdd/SKILL.md": "sha256-2a86f45b3685670f5f214fdcc8d21ecc3d04f42af4f7cae2a38e994ab24bfb1e",
9
+ ".agents/skills/tdd/SKILL.md": "sha256-1e2ec0b54a5cf5b071800b0f2e5672a128a42471e16f70f00bb4c0a07a3617cb",
10
10
  ".agents/skills/wf-auto-spark/SKILL.md": "sha256-b07a3570e232cf47b179b9774daed4c00d7756ccce9e2339556d3544f92cf02b",
11
11
  ".agents/skills/wf-auto/SKILL.md": "sha256-ac3177dc7c5f40f99017b79dbb71722325f75c2e608f20aca780fd874c9755ee",
12
12
  ".agents/skills/wf-learn/SKILL.md": "sha256-7f3e1ee0aa83cbb76707698d0c26b703ad5c74b2df95a7dc4d751939a4ba05b2",
@@ -18,24 +18,25 @@
18
18
  ".agents/skills/wf/SKILL.md": "sha256-70766bd2cb02bc489b5cc021797af62596a005d444a026abb511054a1a820a67",
19
19
  ".claude/agents/architect-manager.md": "sha256-d98c3a2d044d5216d9bcde217b4359b1c33f5be152416e242807652ddcd2868b",
20
20
  ".claude/agents/architect.md": "sha256-61cea40c8c3e01bd53f3ad642ef734850fdb931497e7ee20552ea7a8b4e7b70c",
21
- ".claude/agents/context-master.md": "sha256-e94c921565d979fef5651aeaad190b531b407075ce94c72dfa4412c1282e250a",
21
+ ".claude/agents/context-master.md": "sha256-32746ef283ab1b98574f302c5ed0429743aa77a0558fa78a4183cadf16a82469",
22
22
  ".claude/agents/debugger.md": "sha256-c0d322ca971c6be38c99f0e20b6d5feec26d4f62b84aeffecc4279c1cce59480",
23
23
  ".claude/agents/docs-researcher.md": "sha256-f8a34420ec10c185c4457d2e5e9ab584b676615ec471a9e671420d36e4e604f6",
24
24
  ".claude/agents/explore-manager.md": "sha256-64c7d1bdf8b490339b5a3487229fcb3e28d0d84983d9a4fa93060c2cf47b1dfc",
25
25
  ".claude/agents/implement-manager.md": "sha256-7387ee0e12ba189aa35fea453f93a1bd14549556754e002590b1af4de0ebb209",
26
26
  ".claude/agents/implementer.md": "sha256-86a32182798480b09bcc87e47605a1247f15d5ab91b58dfedb6496e3b0335618",
27
- ".claude/agents/memory-master.md": "sha256-a8a2e3c8c53f54e63f11cc7543204d99f8be11fd974c8aefc66cdaa6957ef551",
27
+ ".claude/agents/memory-master.md": "sha256-443bd69895ce6ed8ab449876bbf91b2c536d7a21c6d72dcccbb227964355ac92",
28
28
  ".claude/agents/planner.md": "sha256-7d1911adbd3a4a6b82713fb0e2358bf01d3f7f3b8aeccd38bd51cb445b1fb7a9",
29
29
  ".claude/agents/researcher.md": "sha256-402fef14dee8f495dc9ddfad5af3ad233d254326b49b831f604014a8cb6d0beb",
30
30
  ".claude/agents/review-manager.md": "sha256-fb8fbd6c6624279cc97aa3dbd50ec20c150ff4a2d195788bc8537d98699cc41b",
31
31
  ".claude/agents/reviewer.md": "sha256-2913b7799fcd8e162f01ae0de09a41ec7083de5f0cae3abcd4ecc62acc675a6b",
32
- ".claude/agents/tdd-guide.md": "sha256-c1663ffba6e48c7c19b0de1bb3eae674b3e85386fc959b15dd30d696aef6433c",
33
- ".claude/agents/test-writer.md": "sha256-9018a9f65f1861a9bade999790e945d258781c1d846eb30a9de23ec3ce5f1d82",
32
+ ".claude/agents/tdd-guide.md": "sha256-d7c7ad3f61f6a6dc73cfa54ffe7e215ded0421a3058654a01731d1a5d5f4c336",
33
+ ".claude/agents/test-writer.md": "sha256-724866d627f193caaf060ec6af97b1d54c2df2d5c5f937e78fc3c53c7f798b16",
34
34
  ".claude/agents/verifier.md": "sha256-6d8ca8bd13d7bb7680423875269e407c06aca60334df44d9230a015aabd0a8d0",
35
- ".claude/rules/ecc/common.md": "sha256-157c300e3b47049998d1bca867da6f9b54efb5de6efbabbb64a22af4cb2b84e8",
36
- ".claude/settings.json": "sha256-4a2bdeb15d9911c8fa624e90ef977e857790981017ff10f44de36a343249ce25",
35
+ ".claude/commands/wf-help.md": "sha256-a11a0ecfb524ad51eff0237980ecdbc3e77ba260d5348a1a19c58232137769fa",
36
+ ".claude/rules/ecc/common.md": "sha256-52818d2a2e10bdafc059844f1e9e7d5f7bc2c9113c5ed0b890142c2e179e8b72",
37
+ ".claude/settings.json": "sha256-16a8631502d609ee9164e83537421d5f4c35de5cbc99b0be638f545daa785357",
37
38
  ".claude/skills/subagent-orchestrator/SKILL.md": "sha256-d17b1e49aa8e3125b17621242f620ac89c10692fac853bf0a682a87f660d86da",
38
- ".claude/skills/tdd/SKILL.md": "sha256-2a86f45b3685670f5f214fdcc8d21ecc3d04f42af4f7cae2a38e994ab24bfb1e",
39
+ ".claude/skills/tdd/SKILL.md": "sha256-1e2ec0b54a5cf5b071800b0f2e5672a128a42471e16f70f00bb4c0a07a3617cb",
39
40
  ".claude/skills/wf-auto-spark/SKILL.md": "sha256-b07a3570e232cf47b179b9774daed4c00d7756ccce9e2339556d3544f92cf02b",
40
41
  ".claude/skills/wf-auto/SKILL.md": "sha256-ac3177dc7c5f40f99017b79dbb71722325f75c2e608f20aca780fd874c9755ee",
41
42
  ".claude/skills/wf-learn/SKILL.md": "sha256-7f3e1ee0aa83cbb76707698d0c26b703ad5c74b2df95a7dc4d751939a4ba05b2",
@@ -45,33 +46,41 @@
45
46
  ".claude/skills/wf-review/SKILL.md": "sha256-cc6d536ec6de25546a0ba96e686f195da50ed11bc03763a76ef46d77243d3537",
46
47
  ".claude/skills/wf-update/SKILL.md": "sha256-d57cd89e271b2af63b6a1264af552a30f8d44959cf4782b42f0ab082a90be9cf",
47
48
  ".claude/skills/wf/SKILL.md": "sha256-70766bd2cb02bc489b5cc021797af62596a005d444a026abb511054a1a820a67",
48
- ".codex/config.toml": "sha256-d37497c3278121598a663564ab38b53f658969717f78decb661ddd11c66551ea",
49
- ".codex/hooks.json": "sha256-ec2322e080b96b1c0cb86161476ff75a4ed00312b57eed979d7d4a379365d0b7",
50
- "AGENTS.md": "sha256-c6e6f08195c41b49b682291c7b83f55acd9750767a7eef3811bf5bbdaa66f76a",
51
- "CLAUDE.md": "sha256-b62a1bc5410280ed17f87ba591f571a0917f438589627fc50e9a53b9e9d0bb75",
52
- "Harness/ECC-GUIDE.md": "sha256-48924c4c0e17dc47be53d616a6690415307688f971ec872d8860c5bbe64c90d7",
53
- "Harness/MEMORY.md": "sha256-6e01795e787eb809f856cce8d90a15a118f8fac1ebbb71dd746a868f207a9457",
54
- "Harness/README.md": "sha256-3f33274b01d100f20694efdf6c4633a01a79dcef9c9b8974ad5e8796ef928dc6",
55
- "Harness/SETUP.md": "sha256-2a59db4e5053faf5f82ceb402491df016fee93bd59449202d4c9e1e7388df977",
56
- "Harness/TDD-GUIDE.md": "sha256-a038f0aea67c72220684d6854536ad7b2d59ab52342374d4710f2c94828f88c4",
49
+ ".codex/config.toml": "sha256-e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
50
+ "AGENTS.md": "sha256-d5604c83b9d8f51a5e65d764e15523324259cc3cb26a85799907821eee9d0e93",
51
+ "CLAUDE.md": "sha256-b494721cf31c5afcb64bf4e1fc9f1172266d138b9f75557049665ba3442a9ad6",
52
+ "Harness/ACCEPTANCE_PROTOCOL.md": "sha256-2bd51e1c65eadaa1c8ef6c46ba8bb6ee3cadc4510b9e1277a1831dc3b9fea4ad",
53
+ "Harness/AGENT_ISOLATION.md": "sha256-54abcd4fdaf8810ab42da8a7f2ab5b5f5305f105f93e8764081b10edce053506",
54
+ "Harness/DEBUG_PROTOCOL.md": "sha256-ed80de0e3e1a40dbb9fd0bdead9174f1650e1833027f3d7fb4bb5884142e03f7",
55
+ "Harness/ECC-GUIDE.md": "sha256-136e60327813609516c6c10e2a5254d7d300e1631ba80d33fb375fdf3800ca7e",
56
+ "Harness/HARNESS_BRIDGE.md": "sha256-681dbeca9a590bbeb3a0c01b044e40e642e6d640632d8611064eb897ada8a48d",
57
+ "Harness/MEMORY.md": "sha256-038217c5407a526dca3bd186ec4880f266fa6a8a31d52ebcd27d55aa11f32bb0",
58
+ "Harness/MEMORY_PROTOCOL.md": "sha256-c24c232442a50f1dc7183480fc3b51c6171e32d3ba6648c056797ccd69fea717",
59
+ "Harness/README.md": "sha256-f646e1b02cd3344e4b379aa150af914758376fc576f6ed6e648d00b87a837405",
60
+ "Harness/SETUP.md": "sha256-33e05d9bc99449b7942db3a8c70160dab1c3ecfec0510afccd459790088118e8",
61
+ "Harness/TDD-GUIDE.md": "sha256-602084530fd0dea7499a023ce75738351e5d97a0c222b64d405f36da6b59a162",
57
62
  "Harness/WF-AUTO-SPARK.md": "sha256-48cc08e1a78cd4abb2ae9c2807ef1ac9a09544eb954220b9087b2032fabbd690",
58
- "Harness/WF-AUTO.md": "sha256-ac0ab13e11ca658cd2c5b6ce73f3d267bea6391a04e850c9f9a24d642f1ad350",
59
- "Harness/WF-MAX.md": "sha256-98a4a918eb8e97c40422c7e133a0bc33184faf7771ca9645f4161d82a5cac8cb",
60
- "Harness/WF.md": "sha256-7cce2568444295cb387fa958cd4ef9711a19697b60ce9cba0e142484e0a165ae",
61
- "Harness/agent-workflow.md": "sha256-1aff5e7dc1e082c559cb0a9086c4f93f6702905aff00ebb957300f463ea80b31",
62
- "Harness/context-loading.md": "sha256-a2e71435e127c2ff5b70ebfddb1a8bbaa64dfd584505fbd6e14dc059e18cc6a1",
63
- "Harness/dispatch.md": "sha256-e823b905bbdcae396d759f281bbd413693904c80b6c18f7993718e63a961b2a6",
64
- "Harness/extension.md": "sha256-686f76d83e91750c20d4f5aa8e614f5003baeb5a703d0451f469ca7eeab75e37",
65
- "Harness/lifecycle.md": "sha256-5979c37e66e35940cb707f8cd71e97d53bb05399c3281c714f69499abdee59a4",
63
+ "Harness/WF-AUTO.md": "sha256-d31b545249588a69c73e5e0ad8b1286ece1a53d9cd0e93b8ba0ae6dac6fdd119",
64
+ "Harness/WF-MAX.md": "sha256-aab1f168c00a5fb54b0eb75843218f722374d02b98e8fb14658f9f8d41cda348",
65
+ "Harness/WF.md": "sha256-b24d969e867927a004c92923ed4cbbcfb173a17ccd095166077e6cb5232c644d",
66
+ "Harness/agent-workflow.md": "sha256-fb602865cef26c63d60cecc390f02b34831924059ef9fa5e31c7920a9fac33b6",
67
+ "Harness/context-loading.md": "sha256-eff7f332045e02636ab1466eb9a663b7bb183eb23f90f02d18e020d6e0ed58d5",
68
+ "Harness/dispatch.md": "sha256-a9293dcc3c44cc16b5cfc717e460db98a5bc0bcfd3805c0f614de0e6e7c33c4f",
69
+ "Harness/extension.md": "sha256-ff93616aaa5ad232b6a32ac6c98bb1a3a08ee5da2ddad92eb9090f5b8e9e3e47",
70
+ "Harness/lifecycle.md": "sha256-a2d025e52f3b4412d8439083aca0d2cf7a4458ad0e30de4fc6465f990379190f",
66
71
  "Harness/research/README.md": "sha256-956c154df01cb9376972eb8b88bb3be0fe4e2dda802a72457c0126e3476fa755",
67
72
  "Harness/scripts/scan-clean.mjs": "sha256-7f693faf762c9c8e7657143d651f7c8369ed4823f18babe21daec58a55025593",
68
- "Harness/scripts/validate-harness.mjs": "sha256-fd904202f99cd30ad7ce69f5343c4adca94ab30b7a5f8eab37004d748e0779ab",
69
- "Harness/scripts/wf-mode-hook.mjs": "sha256-be0669a539cd1f67706b1105fd474a4377bd133def9556a1b9e855288c49ccb7",
70
- "Harness/scripts/wf-remove.mjs": "sha256-ae941d34d7d263f2b65751d177673a3c4fb11c326885ca413245e3f93e99a006",
71
- "Harness/scripts/wf-statusline.ps1": "sha256-49effdea8b0980e762a9440f4be9011543ede3533f6df1b2008368d78c427fcc",
72
- "Harness/scripts/wf-statusline.sh": "sha256-6fa034fab9abe9361daae14cdb802f69825ce20d4bf6a9c18f58c04e971693ac",
73
+ "Harness/scripts/validate-harness.mjs": "sha256-e584959476265d53408484ec3653dd652a0f64922c785db97f0638c26f19e04c",
74
+ "Harness/scripts/wf-remove.mjs": "sha256-4eb136ab26a9e20a949835e8cc6ff716b4beb3496c81ae3a4c03c049db60895c",
73
75
  "Harness/scripts/wf-update-check.mjs": "sha256-d14ce08f4c05ba118362a56a4b7d5965b114bc2b15a023c08e21d57f32b2cf93",
74
- "Harness/subagents.md": "sha256-31818b96f4e834087d8ce8887758f303114b3fd67fb9819fd661f78170fb39d3"
76
+ "Harness/subagents.md": "sha256-16255092bab9011bb67359b4399d27ab292c14a717e67123e8a76e40e8669661",
77
+ "Harness/templates/ACCEPTANCE.template.md": "sha256-394a6c08b155b1d121f1d51da774f7988bdb891224c6d5f2ca2c131e8c95ffb3",
78
+ "Harness/templates/API_CONTRACT.template.md": "sha256-e11ec9866576624982f35e77359e3f4ef3aea3e3f6b5895f6cc5419d29699fc5",
79
+ "Harness/templates/PLAYWRIGHT_SPEC.template.ts": "sha256-bef5f3bbae833b31eeb8cab04fc5a5ff355e9eda4ba6909db70f83b403607115",
80
+ "Harness/templates/PRD.template.md": "sha256-033c746daec3eacbf69b0ca91a6f09997a9852d30467681260f3dbdde391d841",
81
+ "Harness/templates/TEST_PLAN.template.md": "sha256-f7e9a701b0922a405bcde7c168791fe6406530ce7e644a3a736cc3fa1e74c928",
82
+ "Harness/templates/UI_CONTRACT.template.md": "sha256-87c9bc47452c53caca9333130aef567cf9b16ffc5e82a8f6592bbd4f715875ef",
83
+ "Harness/templates/VALIDATION_REPORT.template.md": "sha256-feb1f7b9bba18f1ce028954b48775730f7dd8b7c2afd0ef44cda54bfe13c1875"
75
84
  },
76
85
  "sources": {
77
86
  ".agents/skills/subagent-orchestrator/SKILL.md": ".claude/skills/subagent-orchestrator/SKILL.md",
@@ -101,6 +110,7 @@
101
110
  ".claude/agents/tdd-guide.md": ".claude/agents/tdd-guide.md",
102
111
  ".claude/agents/test-writer.md": ".claude/agents/test-writer.md",
103
112
  ".claude/agents/verifier.md": ".claude/agents/verifier.md",
113
+ ".claude/commands/wf-help.md": ".claude/commands/wf-help.md",
104
114
  ".claude/rules/ecc/common.md": ".claude/rules/ecc/common.md",
105
115
  ".claude/settings.json": ".claude/settings.json",
106
116
  ".claude/skills/subagent-orchestrator/SKILL.md": ".claude/skills/subagent-orchestrator/SKILL.md",
@@ -115,13 +125,17 @@
115
125
  ".claude/skills/wf-update/SKILL.md": ".claude/skills/wf-update/SKILL.md",
116
126
  ".claude/skills/wf/SKILL.md": ".claude/skills/wf/SKILL.md",
117
127
  ".codex/config.toml": ".codex/config.toml",
118
- ".codex/hooks.json": ".codex/hooks.json",
119
128
  ".gitignore": ".gitignore",
120
129
  "AGENTS.md": "AGENTS.md",
121
130
  "CLAUDE.md": "CLAUDE.md",
122
131
  "Harness/.harness-version": ".harness-version",
132
+ "Harness/ACCEPTANCE_PROTOCOL.md": "Harness/ACCEPTANCE_PROTOCOL.md",
133
+ "Harness/AGENT_ISOLATION.md": "Harness/AGENT_ISOLATION.md",
134
+ "Harness/DEBUG_PROTOCOL.md": "Harness/DEBUG_PROTOCOL.md",
123
135
  "Harness/ECC-GUIDE.md": "Harness/ECC-GUIDE.md",
136
+ "Harness/HARNESS_BRIDGE.md": "Harness/HARNESS_BRIDGE.md",
124
137
  "Harness/MEMORY.md": "MEMORY.md",
138
+ "Harness/MEMORY_PROTOCOL.md": "Harness/MEMORY_PROTOCOL.md",
125
139
  "Harness/PROGRESS.md": "Harness/PROGRESS.md",
126
140
  "Harness/README.md": "Harness/README.md",
127
141
  "Harness/SETUP.md": "SETUP.md",
@@ -144,10 +158,7 @@
144
158
  "Harness/research/research-results.md": "Harness/research/research-results.md",
145
159
  "Harness/scripts/scan-clean.mjs": "scripts/scan-clean.mjs",
146
160
  "Harness/scripts/validate-harness.mjs": "scripts/validate-harness.mjs",
147
- "Harness/scripts/wf-mode-hook.mjs": "scripts/wf-mode-hook.mjs",
148
161
  "Harness/scripts/wf-remove.mjs": "scripts/wf-remove.mjs",
149
- "Harness/scripts/wf-statusline.ps1": "scripts/wf-statusline.ps1",
150
- "Harness/scripts/wf-statusline.sh": "scripts/wf-statusline.sh",
151
162
  "Harness/scripts/wf-update-check.mjs": "scripts/wf-update-check.mjs",
152
163
  "Harness/subagents.md": "Harness/subagents.md",
153
164
  "Harness/tasks/_template/ARTIFACTS.md": "Harness/tasks/_template/ARTIFACTS.md",
@@ -155,6 +166,13 @@
155
166
  "Harness/tasks/_template/NOTES.md": "Harness/tasks/_template/NOTES.md",
156
167
  "Harness/tasks/_template/PLAN.md": "Harness/tasks/_template/PLAN.md",
157
168
  "Harness/tasks/_template/PROGRESS.md": "Harness/tasks/_template/PROGRESS.md",
169
+ "Harness/templates/ACCEPTANCE.template.md": "Harness/templates/ACCEPTANCE.template.md",
170
+ "Harness/templates/API_CONTRACT.template.md": "Harness/templates/API_CONTRACT.template.md",
171
+ "Harness/templates/PLAYWRIGHT_SPEC.template.ts": "Harness/templates/PLAYWRIGHT_SPEC.template.ts",
172
+ "Harness/templates/PRD.template.md": "Harness/templates/PRD.template.md",
173
+ "Harness/templates/TEST_PLAN.template.md": "Harness/templates/TEST_PLAN.template.md",
174
+ "Harness/templates/UI_CONTRACT.template.md": "Harness/templates/UI_CONTRACT.template.md",
175
+ "Harness/templates/VALIDATION_REPORT.template.md": "Harness/templates/VALIDATION_REPORT.template.md",
158
176
  "README.md": "README.md"
159
177
  }
160
178
  }
@@ -22,9 +22,10 @@ Do not bulk-read `Harness/`. Let `Harness/README.md#Load By Task` route you.
22
22
 
23
23
  ## Key Commands
24
24
 
25
- | Command | Purpose |
26
- |---------|---------|
27
- | `/wf-max [task]` | Maximum parallelism: CEO→Manager→Worker hierarchy (three-layer architecture: mode / agent role / dispatch permission) |
28
- | `/wf-review [focus]` | Cross-model peer review (use OTHER CLI) |
29
- | `/wf <task>` | Standard workflow mode |
30
- | `/wf-auto` | Perpetual auto-optimization |
25
+ | Command | Purpose |
26
+ |---------|---------|
27
+ | `/wf-help` | Direct help table for all Harness WF commands |
28
+ | `/wf-max [task]` | Maximum parallelism: CEO→Manager→Worker hierarchy (three-layer architecture: mode / agent role / dispatch permission) |
29
+ | `/wf-review [focus]` | Cross-model peer review (use OTHER CLI) |
30
+ | `/wf <task>` | Standard workflow mode |
31
+ | `/wf-auto` | Perpetual auto-optimization |
@@ -10,7 +10,7 @@ This repository dogfoods the generated Harness scaffold. Scaffold source files l
10
10
 
11
11
  ### 1a. WF-MAX Role Contract (ACTIVE ONLY when /wf-max invoked)
12
12
 
13
- `/wf-max` active top-level orchestrator is **CEO**. Delegated Workers follow dispatch packet, edit only assigned writeSet. **Global mode every agent is CEO.** (Enforced by hooks + `.runtime/current-mode.json`.)
13
+ `/wf-max` active -> top-level orchestrator is **CEO**. Delegated Workers follow dispatch packet, edit only assigned writeSet. **Global mode != every agent is CEO.** There is no runtime hook enforcement; role/writeSet compliance is enforced by dispatch packets, review, validation, and durable task evidence.
14
14
 
15
15
  | ALLOWED (W0 CEO) | FORBIDDEN (always on source) |
16
16
  |---|---|
@@ -84,6 +84,5 @@ This repository dogfoods the generated Harness scaffold. Scaffold source files l
84
84
 
85
85
  - Never call `EnterPlanMode` — delegate planning to `planner` subagents (see `Harness/WF.md`).
86
86
  - Never write code directly in `/wf` or `/wf-max` CEO mode — delegate all implementation to Workers via dispatch packets with explicit writeSet.
87
- - **WF-MAX three-layer architecture**: global mode (`wf-max`) agent role (`ceo|manager|worker|reviewer`). Workers follow dispatch packet (writeSet, forbidden, verification). Missing role/writeSet source edits denied by default.
88
- - **Enforcement**: `.claude/settings.json` denies `EnterPlanMode` via the `deny` list. Role contract is in [Section 1a](#1a-wf-max-role-contract-read-before-any-tool-use) read it first.
89
- - WF-MAX hooks in `.claude/settings.json` enforce per-agentRole + writeSet. `Harness/.runtime/current-mode.json` persists mode state; stale modes (>30 min) auto-clear.
87
+ - **WF-MAX three-layer architecture**: global mode (`wf-max`) != agent role (`ceo|manager|worker|reviewer`). Workers follow dispatch packet (writeSet, forbidden, verification). Missing role/writeSet means the controller must not proceed with source edits.
88
+ - **Enforcement**: `.claude/settings.json` denies `EnterPlanMode` via the `deny` list. WF-MAX role/writeSet compliance is not hook-enforced; it is maintained through dispatch packets, independent review, validation evidence, and the task capsule. Role contract is in [Section 1a](#1a-wf-max-role-contract-active-only-when-wf-max-invoked) - read it first.
@@ -0,0 +1,170 @@
1
+ # Acceptance Protocol
2
+
3
+ Purpose: make the Harness workflow acceptance-driven instead of implementation-driven.
4
+
5
+ The source of truth is not the implementation, not the tests, and not the agent's summary. The source of truth is the PRD-derived Acceptance Criteria. Implementation, tests, reviews, validation, debugging, and memory must all trace back to Acceptance Criteria IDs.
6
+
7
+ ## Mother Flow
8
+
9
+ All Harness modes use the same product-to-proof flow:
10
+
11
+ ```text
12
+ Context Load
13
+ -> Mini PRD
14
+ -> Acceptance Criteria
15
+ -> UI/API Contracts
16
+ -> Test Plan
17
+ -> Implementation Dispatch
18
+ -> Independent Validation
19
+ -> Review
20
+ -> Debug
21
+ -> Memory
22
+ ```
23
+
24
+ Mode differences are organizational only:
25
+
26
+ | Mode | Organization | Same Acceptance Flow |
27
+ | --- | --- | --- |
28
+ | `/wf` / `$wf` | Small team, mostly serial | yes |
29
+ | `/wf-max` / `$wf-max` | CEO -> Manager -> Worker hierarchy | yes |
30
+ | `/wf-auto` / `$wf-auto` | Repeating optimization loop | yes, per cycle |
31
+
32
+ ## Gates
33
+
34
+ These gates apply before implementation unless the user explicitly asks for a small fast lane. A fast lane may compress artifacts into one task PLAN, but it must not skip the substance.
35
+
36
+ | Gate | Rule | Required Durable Artifact |
37
+ | --- | --- | --- |
38
+ | PRD-GATE | No PRD, no implementation. | `Harness/research/PRD.md` or task PLAN Mini PRD |
39
+ | AC-GATE | No acceptance criteria, no tests, no code. | `ACCEPTANCE.md` section or task PLAN AC table |
40
+ | CONTRACT-GATE | No UI/API contract, no UI/API integration. | `UI_CONTRACT.md`, `API_CONTRACT.md`, or task PLAN contract tables |
41
+ | TEST-GATE | Tests must trace to AC IDs before implementation. | `TEST_PLAN.md` section or task PLAN verification matrix |
42
+ | IMPLEMENT-GATE | Implementer may not modify acceptance truth files except through Change Request. | dispatch write set and forbidden set |
43
+ | VALIDATION-GATE | Validator must be independent and must validate AC IDs against running behavior. | validation report with evidence matrix |
44
+ | REVIEW-GATE | Reviewer reads PRD, AC, diff, and run evidence directly. | findings with AC IDs |
45
+
46
+ Truth files are:
47
+
48
+ - PRD or Mini PRD
49
+ - Acceptance Criteria
50
+ - UI Contract
51
+ - API Contract
52
+ - Test Plan
53
+ - Validation Report
54
+
55
+ ## Mini PRD Minimum
56
+
57
+ Every task that changes behavior needs a Mini PRD. It can live in `Harness/research/PRD.md`, a feature doc, or `Harness/tasks/<task-id>/PLAN.md`.
58
+
59
+ Minimum fields:
60
+
61
+ - Goal
62
+ - Scope
63
+ - Non-scope
64
+ - User flow
65
+ - UI elements, if any
66
+ - API behavior, if any
67
+ - State changes
68
+ - Acceptance criteria
69
+ - Verification commands
70
+
71
+ ## Acceptance Criteria Format
72
+
73
+ Each AC must be independently testable and use a stable ID:
74
+
75
+ ```markdown
76
+ ## AC-001: Empty phone number cannot request verification code
77
+ Given the user opens the login page
78
+ When the user clicks "Get code" without entering a phone number
79
+ Then the page shows "Please enter phone number"
80
+ And no `/api/auth/send-code` request is sent
81
+
82
+ Verification:
83
+ - UI: Playwright clicks `[data-testid=get-code-button]`
84
+ - DOM: expect `[data-testid=phone-error]` visible
85
+ - Network: CDP trace has no `/api/auth/send-code` request
86
+ ```
87
+
88
+ Required fields:
89
+
90
+ | Field | Description |
91
+ | --- | --- |
92
+ | AC ID | Stable unique ID, e.g. `AC-001` |
93
+ | Scenario | Given / When / Then user behavior |
94
+ | UI elements | Required `data-testid` values or accessible roles |
95
+ | API behavior | Method, URL, payload, response, and whether a request must or must not happen |
96
+ | State change | URL, DOM, store, localStorage, database, or side effect |
97
+ | Verification method | Unit, integration, API, Playwright, CDP, visual, or manual |
98
+ | Evidence | Screenshot, trace, video, log, or command output path |
99
+
100
+ ## Role Ownership
101
+
102
+ | Role | Owns | Must Not Do |
103
+ | --- | --- | --- |
104
+ | Planner | Mini PRD, scope, non-scope, risks | write implementation |
105
+ | Acceptance Agent | AC IDs from PRD and user scenarios | read implementation code to reverse-engineer tests |
106
+ | Contract Agent | UI/API/state contracts | loosen contracts to match existing code |
107
+ | Test Writer | executable tests from AC/contracts | write tests from implementation behavior |
108
+ | Implementer | code/docs inside dispatch write set | modify truth files to make code pass |
109
+ | Reviewer | diff review against PRD/AC/contracts/evidence | rely only on implementer summary |
110
+ | Validator | running app/API evidence matrix | validate own implementation |
111
+ | Debugger | root cause and smallest fix for reproduced failures | blind-edit without locating the failing layer |
112
+ | Memory Master | durable lessons keyed to AC/failure patterns | store secrets or noisy transcript summaries |
113
+
114
+ See `AGENT_ISOLATION.md` for context and permission isolation.
115
+
116
+ ## Test Strategy
117
+
118
+ Tests must be chosen by risk and user-visible behavior:
119
+
120
+ Syntax-only checks, import tests, shallow renders, typecheck, lint, and build success are never sufficient acceptance evidence for browser-visible behavior. A browser-visible AC requires a real user path through Playwright/CDP, Browser Use, or documented manual browser validation.
121
+
122
+ | Behavior | Default Verification |
123
+ | --- | --- |
124
+ | Pure logic | unit test with AC ID in test name/comment |
125
+ | API behavior | API/integration test against contract |
126
+ | UI interaction | Playwright real-browser test |
127
+ | Frontend-backend side effect | Playwright plus CDP/network trace |
128
+ | Visual layout risk | screenshot or visual regression evidence |
129
+ | Third-party dependency | seeded/mocked test data plus fallback-path check |
130
+
131
+ Frontend default verification, when available:
132
+
133
+ ```bash
134
+ npm run test
135
+ npm run typecheck
136
+ npm run lint
137
+ npx playwright test
138
+ ```
139
+
140
+ For complex frontend-backend flows:
141
+
142
+ ```bash
143
+ npx playwright test --trace on
144
+ ```
145
+
146
+ ## Acceptance Result Matrix
147
+
148
+ Validation must end with a matrix, not a generic "all tests passed" claim:
149
+
150
+ ```markdown
151
+ # Acceptance Result
152
+
153
+ | AC ID | Result | Evidence | Notes |
154
+ | --- | --- | --- | --- |
155
+ | AC-001 | PASS | `test-results/login-empty-phone/trace.zip` | no API request observed |
156
+ | AC-002 | FAIL | `test-results/login-bad-phone/screenshot.png` | error message missing |
157
+ ```
158
+
159
+ Result values: `PASS`, `FAIL`, `BLOCKED`, `NOT RUN`, `N/A`.
160
+
161
+ ## Change Request
162
+
163
+ If implementation shows an AC or contract is wrong:
164
+
165
+ 1. Stop implementation.
166
+ 2. Record the mismatch in task `PROGRESS.md`.
167
+ 3. Update PRD/AC/contract through Planner or Acceptance role.
168
+ 4. Re-run TEST-GATE before implementation resumes.
169
+
170
+ The implementer may propose a Change Request, but may not directly rewrite truth files inside the implementation write set.
@@ -0,0 +1,73 @@
1
+ # Agent Isolation
2
+
3
+ Purpose: prevent self-review, test backfilling, and context leakage in acceptance-driven work.
4
+
5
+ ## Hard Rules
6
+
7
+ - The agent that implements code must not be the agent that accepts the code.
8
+ - The agent that writes tests must not derive tests from the implementation.
9
+ - The reviewer must read PRD, acceptance criteria, contracts, diff, and run evidence directly.
10
+ - The validator validates against PRD-derived AC IDs and running behavior, not the implementer's summary.
11
+ - The debugger must locate a root cause from failure evidence before editing.
12
+
13
+ ## Context Isolation Matrix
14
+
15
+ | Role | May Read | Must Not Read / Trust |
16
+ | --- | --- | --- |
17
+ | Planner | user request, project background, memory, research | implementation files as a reason to skip PRD |
18
+ | Acceptance Agent | PRD, user scenarios, UI requirements, business rules | implementation code for reverse-engineering AC |
19
+ | Contract Agent | PRD, AC, API/schema docs, UI requirements | implementation shortcuts as contract truth |
20
+ | Test Writer | AC, UI contract, API contract, test utilities | production implementation as the source of expected behavior |
21
+ | Implementer | PRD, AC, contracts, tests, relevant code | permission to change AC/contracts without Change Request |
22
+ | Reviewer | PRD, AC, contracts, diff, test result, trace, screenshot | implementer summary as sole evidence |
23
+ | E2E Validator | PRD, AC checklist, contracts, running app URL, test command | implementation plan or private rationale |
24
+ | Debugger | failing logs, traces, screenshots, diff, narrow relevant files | broad source areas without a failure hypothesis |
25
+ | Memory Master | final result, repeated failure patterns, verified lessons | secrets, credentials, raw noisy transcript |
26
+
27
+ ## Permission Isolation
28
+
29
+ Dispatch packets must declare `Read set`, `Write set`, and `Forbidden`.
30
+
31
+ | Role Type | Default Write Permission |
32
+ | --- | --- |
33
+ | Planner / Acceptance / Contract | truth docs only, when explicitly assigned |
34
+ | Test Writer | tests and test fixtures only |
35
+ | Implementer | assigned implementation files only |
36
+ | Reviewer / Validator | none |
37
+ | Debugger | smallest assigned fix set after reproduced failure |
38
+ | Memory Master | memory files only |
39
+
40
+ Implementer forbidden set must include truth files unless a Change Request has been approved:
41
+
42
+ - PRD
43
+ - Acceptance Criteria
44
+ - UI Contract
45
+ - API Contract
46
+ - Test Plan
47
+ - Validation Report
48
+
49
+ ## Reviewer Evidence Rule
50
+
51
+ Reviewer must inspect:
52
+
53
+ - PRD or Mini PRD
54
+ - Acceptance Criteria IDs
55
+ - UI/API contracts relevant to the diff
56
+ - actual diff
57
+ - test/validation command output
58
+ - browser/API evidence when user-visible behavior is affected
59
+
60
+ Reviewer output must classify findings by severity and cite AC IDs when applicable.
61
+
62
+ ## Validator Evidence Rule
63
+
64
+ Validator receives only:
65
+
66
+ - PRD or Mini PRD
67
+ - Acceptance Criteria
68
+ - UI/API contracts
69
+ - running app URL or API endpoint
70
+ - verification commands
71
+ - expected evidence locations
72
+
73
+ Validator does not need implementation intent. If validation fails, the handoff goes to Debugger with evidence, not to Implementer for blind edits.
@@ -0,0 +1,64 @@
1
+ # Debug Protocol
2
+
3
+ Purpose: make debug work evidence-led and AC-traceable.
4
+
5
+ Debugging starts only after a reproduced failure or a concrete validation gap exists.
6
+
7
+ ## Inputs
8
+
9
+ Debugger receives:
10
+
11
+ - failed AC ID
12
+ - failing command
13
+ - console output or stack trace
14
+ - screenshot, video, trace, or network capture when available
15
+ - relevant diff
16
+ - smallest relevant files or contracts
17
+
18
+ Debugger does not start from "try a fix." Debugger starts from "which layer failed?"
19
+
20
+ ## Layer Classification
21
+
22
+ Classify the failure before editing:
23
+
24
+ | Layer | Evidence |
25
+ | --- | --- |
26
+ | UI | DOM missing, selector absent, wrong text, visual state wrong |
27
+ | API | request absent, wrong method/URL/payload, bad response handling |
28
+ | State | route/store/localStorage/session mismatch |
29
+ | Data | seed missing, fixture wrong, database not reset |
30
+ | Environment | server not running, port conflict, dependency missing |
31
+ | Test | selector wrong, race/flake, assertion not tied to AC |
32
+ | Contract | PRD/AC/API/UI contract conflict |
33
+
34
+ ## Debug Loop
35
+
36
+ 1. Reproduce or confirm the existing reproduction evidence.
37
+ 2. Identify the failing layer and root cause hypothesis.
38
+ 3. Edit only the smallest write set needed for that root cause.
39
+ 4. Re-run the failed check.
40
+ 5. Re-run adjacent checks that could regress.
41
+ 6. Update the acceptance result matrix.
42
+
43
+ If the same class of failure repeats three times, stop blind fixes and run architecture review.
44
+
45
+ ## Debug Handoff
46
+
47
+ ```markdown
48
+ ## Debug Handoff
49
+
50
+ - Failed AC: AC-002
51
+ - Failing command: `npx playwright test login.spec.ts --trace on`
52
+ - Layer: API
53
+ - Root cause: request payload sends `phoneNumber`; contract requires `phone`
54
+ - Fix set: `src/features/login/api.ts`
55
+ - Verification: command passed, trace path recorded
56
+ - Residual risk: none
57
+ ```
58
+
59
+ ## Forbidden
60
+
61
+ - Do not weaken or delete ACs to make tests pass.
62
+ - Do not rewrite tests from implementation behavior.
63
+ - Do not broadly refactor while fixing one reproduced failure.
64
+ - Do not claim browser/API success without browser/API evidence.
@@ -43,9 +43,9 @@ Based on answer, install matching rules.
43
43
 
44
44
  | Rule Set | What It Covers | Files |
45
45
  |----------|---------------|-------|
46
- | `common/` | **Required for all projects.** Immutability, error handling, file organization, git workflow, testing, security, agents, hooks, patterns. | `coding-style.md`, `git-workflow.md`, `testing.md`, `security.md`, `patterns.md`, `agents.md`, `hooks.md`, `performance.md`, `development-workflow.md` |
47
- | `typescript/` | TS/JS types, interfaces, immutability patterns, error handling with try-catch, Zod validation, React props, custom hooks, repository pattern. | `coding-style.md`, `testing.md`, `security.md`, `patterns.md`, `hooks.md` |
48
- | `web/` | Frontend: CSS custom properties, animation-only properties, semantic HTML, component composition, state management, image optimization, CSP, XSS, Core Web Vitals, bundle budgets. | `coding-style.md`, `design-quality.md`, `testing.md`, `security.md`, `patterns.md`, `performance.md`, `hooks.md` |
46
+ | `common/` | **Required for all projects.** Immutability, error handling, file organization, git workflow, testing, security, agents, patterns, performance, development workflow. | `coding-style.md`, `git-workflow.md`, `testing.md`, `security.md`, `patterns.md`, `agents.md`, `performance.md`, `development-workflow.md` |
47
+ | `typescript/` | TS/JS types, interfaces, immutability patterns, error handling with try-catch, Zod validation, React props, reusable React hooks, repository pattern. | `coding-style.md`, `testing.md`, `security.md`, `patterns.md` |
48
+ | `web/` | Frontend: CSS custom properties, animation-only properties, semantic HTML, component composition, state management, image optimization, CSP, XSS, Core Web Vitals, bundle budgets. | `coding-style.md`, `design-quality.md`, `testing.md`, `security.md`, `patterns.md`, `performance.md` |
49
49
  | `python/` | PEP 8, type hints, immutability, async patterns, pytest, input validation. | `coding-style.md`, `testing.md`, `security.md`, `patterns.md` |
50
50
  | `golang/` | Idiomatic Go, error handling, concurrency patterns, table-driven tests, security. | `coding-style.md`, `testing.md`, `security.md`, `patterns.md` |
51
51
  | `rust/` | Ownership, lifetimes, error handling, unsafe usage, cargo-llvm-cov. | `coding-style.md`, `testing.md`, `security.md`, `patterns.md` |
@@ -96,7 +96,7 @@ These are NOT in Harness by default — the agent should consult them when filli
96
96
  | `web/performance.md` | Core Web Vitals targets, bundle budgets, loading strategy, image optimization, font loading, animation performance | Before production build |
97
97
  | `web/security.md` | CSP (nonce-based), XSS prevention, third-party script SRI, HTTPS headers, CSRF protection | Before any user-facing deploy |
98
98
  | `web/testing.md` | Visual regression (320/768/1024/1440), a11y, Lighthouse, cross-browser, responsive | Before launch |
99
- | `web/hooks.md` | PostToolUse format/lint/type-check, PreToolUse file size guard, Stop build verification | CI setup |
99
+ | `web/testing.md` | format/lint/type-check, file size guard, build verification | CI setup |
100
100
  | `typescript/patterns.md` | API response envelope, custom hooks, Repository pattern | Backend-frontend contract |
101
101
 
102
102
  ### Backend Design (python/ + golang/ + rust/)