create-harness-vibe-coding 0.8.2 → 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.
- package/README-CN.md +2 -2
- package/README.md +2 -3
- package/package.json +1 -2
- package/src/generator.js +4 -5
- package/templates/common/.claude/agents/context-master.md +3 -2
- package/templates/common/.claude/agents/memory-master.md +3 -2
- package/templates/common/.claude/agents/tdd-guide.md +45 -19
- package/templates/common/.claude/agents/test-writer.md +52 -38
- package/templates/common/.claude/commands/wf-help.md +21 -0
- package/templates/common/.claude/rules/ecc/common.md +1 -1
- package/templates/common/.claude/settings.json +33 -90
- package/templates/common/.claude/skills/tdd/SKILL.md +18 -11
- package/templates/common/.claude/skills/wf-auto/SKILL.md +1 -1
- package/templates/common/.codex/config.toml +0 -2
- package/templates/common/.harness-version +55 -37
- package/templates/common/AGENTS.md +7 -6
- package/templates/common/CLAUDE.md +3 -4
- package/templates/common/Harness/ACCEPTANCE_PROTOCOL.md +170 -0
- package/templates/common/Harness/AGENT_ISOLATION.md +73 -0
- package/templates/common/Harness/DEBUG_PROTOCOL.md +64 -0
- package/templates/common/Harness/ECC-GUIDE.md +4 -4
- package/templates/common/Harness/HARNESS_BRIDGE.md +128 -0
- package/templates/common/Harness/MEMORY_PROTOCOL.md +114 -0
- package/templates/common/Harness/README.md +31 -16
- package/templates/common/Harness/TDD-GUIDE.md +138 -56
- package/templates/common/Harness/WF-AUTO.md +77 -16
- package/templates/common/Harness/WF-MAX.md +81 -22
- package/templates/common/Harness/WF.md +38 -18
- package/templates/common/Harness/agent-workflow.md +47 -22
- package/templates/common/Harness/context-loading.md +33 -32
- package/templates/common/Harness/dispatch.md +10 -4
- package/templates/common/Harness/extension.md +3 -3
- package/templates/common/Harness/lifecycle.md +19 -13
- package/templates/common/Harness/research/PRD.md +18 -9
- package/templates/common/Harness/subagents.md +41 -14
- package/templates/common/Harness/tasks/_template/NAMING.md +2 -2
- package/templates/common/Harness/tasks/_template/PLAN.md +53 -11
- package/templates/common/Harness/templates/ACCEPTANCE.template.md +20 -0
- package/templates/common/Harness/templates/API_CONTRACT.template.md +40 -0
- package/templates/common/Harness/templates/PLAYWRIGHT_SPEC.template.ts +21 -0
- package/templates/common/Harness/templates/PRD.template.md +45 -0
- package/templates/common/Harness/templates/TEST_PLAN.template.md +14 -0
- package/templates/common/Harness/templates/UI_CONTRACT.template.md +11 -0
- package/templates/common/Harness/templates/VALIDATION_REPORT.template.md +20 -0
- package/templates/common/MEMORY.md +14 -3
- package/templates/common/README.md +1 -1
- package/templates/common/SETUP.md +24 -20
- package/templates/common/scripts/validate-harness.mjs +134 -41
- package/templates/common/scripts/wf-remove.mjs +6 -2
- package/templates/optional/skills/browser-e2e/Harness/workflows/browser-e2e.md +11 -3
- package/templates/optional/skills/ts-react-frontend/Harness/workflows/ts-react-frontend.md +1 -1
- package/templates/common/.codex/hooks.json +0 -59
- package/templates/common/scripts/wf-mode-hook.mjs +0 -895
- package/templates/common/scripts/wf-statusline.ps1 +0 -62
- package/templates/common/scripts/wf-statusline.sh +0 -67
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
|
-
"generator": "0.8.
|
|
3
|
-
"generated": "2026-07-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
33
|
-
".claude/agents/test-writer.md": "sha256-
|
|
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/
|
|
36
|
-
".claude/
|
|
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-
|
|
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-
|
|
49
|
-
".
|
|
50
|
-
"
|
|
51
|
-
"
|
|
52
|
-
"Harness/
|
|
53
|
-
"Harness/
|
|
54
|
-
"Harness/
|
|
55
|
-
"Harness/
|
|
56
|
-
"Harness/
|
|
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-
|
|
59
|
-
"Harness/WF-MAX.md": "sha256-
|
|
60
|
-
"Harness/WF.md": "sha256-
|
|
61
|
-
"Harness/agent-workflow.md": "sha256-
|
|
62
|
-
"Harness/context-loading.md": "sha256-
|
|
63
|
-
"Harness/dispatch.md": "sha256-
|
|
64
|
-
"Harness/extension.md": "sha256-
|
|
65
|
-
"Harness/lifecycle.md": "sha256-
|
|
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-
|
|
69
|
-
"Harness/scripts/wf-
|
|
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-
|
|
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-
|
|
28
|
-
| `/wf-
|
|
29
|
-
| `/wf
|
|
30
|
-
| `/wf
|
|
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
|
|
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`)
|
|
88
|
-
- **Enforcement**: `.claude/settings.json` denies `EnterPlanMode` via the `deny` list. Role contract is in [Section 1a](#1a-wf-max-role-contract-
|
|
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,
|
|
47
|
-
| `typescript/` | TS/JS types, interfaces, immutability patterns, error handling with try-catch, Zod validation, React props,
|
|
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
|
|
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/
|
|
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/)
|