create-harness-vibe-coding 0.8.5 → 0.8.7
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.md +20 -4
- package/package.json +1 -1
- package/src/generator.js +30 -11
- package/src/index.js +129 -5
- package/templates/common/.claude/agents/reflector.md +35 -0
- package/templates/common/.claude/agents/verifier.md +5 -3
- package/templates/common/.claude/commands/wf-help.md +1 -2
- package/templates/common/.claude/skills/subagent-orchestrator/SKILL.md +10 -4
- package/templates/common/.claude/skills/wf/SKILL.md +7 -3
- package/templates/common/.claude/skills/wf-auto/SKILL.md +59 -107
- package/templates/common/.claude/skills/wf-auto-spark/SKILL.md +19 -17
- package/templates/common/.claude/skills/wf-max/SKILL.md +40 -21
- package/templates/common/.claude/skills/wf-update/SKILL.md +9 -4
- package/templates/common/.codex/config.toml +5 -0
- package/templates/common/.harness-version +36 -34
- package/templates/common/AGENTS.md +26 -25
- package/templates/common/CLAUDE.md +10 -9
- package/templates/common/Harness/ACCEPTANCE_PROTOCOL.md +12 -4
- package/templates/common/Harness/README.md +12 -13
- package/templates/common/Harness/WF-AUTO-SPARK.md +18 -1
- package/templates/common/Harness/WF-AUTO.md +518 -492
- package/templates/common/Harness/WF-MAX.md +284 -232
- package/templates/common/Harness/WF.md +47 -29
- package/templates/common/Harness/agent-workflow.md +108 -76
- package/templates/common/Harness/dispatch.md +96 -95
- package/templates/common/Harness/extension.md +1 -1
- package/templates/common/Harness/subagents.md +78 -56
- package/templates/common/Harness/tasks/_template/ARTIFACTS.md +1 -1
- package/templates/common/Harness/tasks/_template/NOTES.md +1 -1
- package/templates/common/Harness/tasks/_template/PLAN.md +53 -60
- package/templates/common/Harness/tasks/_template/PROGRESS.md +26 -29
- package/templates/common/MEMORY.md +26 -29
- package/templates/common/SETUP.md +29 -22
- package/templates/common/scripts/scan-clean.mjs +80 -41
- package/templates/common/scripts/validate-harness.mjs +101 -31
- package/templates/common/scripts/wf-remove.mjs +279 -278
- package/templates/common/scripts/wf-update-check.mjs +395 -195
- package/templates/optional/skills/browser-e2e/.claude/skills/wf-browser/SKILL.md +1 -1
- package/templates/optional/skills/browser-e2e/Harness/workflows/browser-e2e.md +57 -21
|
@@ -1,15 +1,15 @@
|
|
|
1
|
-
# Subagent Orchestration
|
|
1
|
+
# Subagent Orchestration
|
|
2
2
|
|
|
3
3
|
Purpose: coordinate subagents for speed without losing control of scope, evidence, or integration.
|
|
4
4
|
|
|
5
5
|
Use this file when work needs multiple roles, parallel reading, independent review, broad context, repeated failures, or `/wf`.
|
|
6
6
|
|
|
7
|
-
project files are the only durable communication channel; chat/subagent transcript state is non-authoritative. Important assumptions, decisions, blockers, evidence, and handoffs must be written to `Harness/tasks/<task-id>/PROGRESS.md` and `Harness/tasks/<task-id>/PLAN.md`, the current feature doc, `Harness/MEMORY.md`, or `Harness/memory/*` as appropriate.
|
|
8
|
-
|
|
9
|
-
Subagent work is acceptance-driven. Use [AGENT_ISOLATION.md](AGENT_ISOLATION.md)
|
|
10
|
-
for role/context isolation and [ACCEPTANCE_PROTOCOL.md](ACCEPTANCE_PROTOCOL.md)
|
|
11
|
-
for PRD-GATE, AC-GATE, CONTRACT-GATE, TEST-GATE, VALIDATION-GATE, and
|
|
12
|
-
REVIEW-GATE.
|
|
7
|
+
project files are the only durable communication channel; chat/subagent transcript state is non-authoritative. Important assumptions, decisions, blockers, evidence, and handoffs must be written to `Harness/tasks/<task-id>/PROGRESS.md` and `Harness/tasks/<task-id>/PLAN.md`, the current feature doc, `Harness/MEMORY.md`, or `Harness/memory/*` as appropriate.
|
|
8
|
+
|
|
9
|
+
Subagent work is acceptance-driven. Use [AGENT_ISOLATION.md](AGENT_ISOLATION.md)
|
|
10
|
+
for role/context isolation and [ACCEPTANCE_PROTOCOL.md](ACCEPTANCE_PROTOCOL.md)
|
|
11
|
+
for PRD-GATE, AC-GATE, CONTRACT-GATE, TEST-GATE, VALIDATION-GATE, and
|
|
12
|
+
REVIEW-GATE.
|
|
13
13
|
|
|
14
14
|
## Source Attribution
|
|
15
15
|
|
|
@@ -54,30 +54,36 @@ Use the installed roster under `.claude/agents/` before inventing ad hoc roles.
|
|
|
54
54
|
| `reviewer` | spec compliance, code quality, maintainability, security, missing tests |
|
|
55
55
|
| `debugger` | reproduced failures, root cause isolation, smallest safe fix |
|
|
56
56
|
| `verifier` | command execution, real browser/API checks, final evidence |
|
|
57
|
-
| `
|
|
58
|
-
| `
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
|
68
|
-
|
|
|
69
|
-
|
|
|
70
|
-
|
|
|
71
|
-
|
|
|
72
|
-
|
|
|
73
|
-
|
|
|
74
|
-
|
|
|
75
|
-
|
|
76
|
-
|
|
57
|
+
| `reflector` | closeout synthesis, unresolved-risk check, acceptance gate verdict |
|
|
58
|
+
| `memory-master` | write/consolidate memory entries, dedup, cross-project extraction; dispatched on repeated failures, user corrections, and WF closeout |
|
|
59
|
+
| `context-master` | analyze context usage, recommend compression at ~85% window, extract durable session knowledge during closeout |
|
|
60
|
+
|
|
61
|
+
## Acceptance Role Passes
|
|
62
|
+
|
|
63
|
+
These are role passes that may be handled by the built-in roster above or by
|
|
64
|
+
project-specific agents. They define context boundaries even when no dedicated
|
|
65
|
+
agent file exists.
|
|
66
|
+
|
|
67
|
+
| Role Pass | Default Agent | Reads | Writes |
|
|
68
|
+
| --- | --- | --- | --- |
|
|
69
|
+
| PRD Planner | `planner` | user request, memory, research | Mini PRD/task PLAN only |
|
|
70
|
+
| Acceptance Agent | `planner` or `test-writer` | PRD, user scenarios, UI requirements | AC section only |
|
|
71
|
+
| Contract Agent | `architect` or `test-writer` | PRD, AC, API/schema/UI requirements | UI/API/state contract section only |
|
|
72
|
+
| Test Architect | `test-writer` | AC, contracts, test utilities | tests or test plan only |
|
|
73
|
+
| Implementer | `implementer` | PRD, AC, contracts, tests, relevant code | assigned implementation write set only |
|
|
74
|
+
| Independent Validator | `verifier` | PRD, AC, contracts, running app/API, commands | validation report/evidence only |
|
|
75
|
+
| Cross Review | `reviewer` | PRD, AC, contracts, diff, tests, validation evidence | spec/AC and code/architecture/test findings only |
|
|
76
|
+
| Reflector | `reflector` | validation evidence, reviewer findings, risks, decisions | final PASS/RETURN_TO_DEBUG/BLOCKED verdict only |
|
|
77
|
+
| Debugger | `debugger` | failed AC, logs, trace, screenshot, diff | smallest assigned fix set |
|
|
78
|
+
|
|
79
|
+
Hard rule: implementer may not be the independent validator for the same AC ID.
|
|
77
80
|
|
|
78
81
|
## WF Default Fan-Out
|
|
79
82
|
|
|
80
|
-
Explicit `/wf`, `wf mode`, `workflow mode`, or `wk mode` requires
|
|
83
|
+
Explicit `/wf`, `wf mode`, `workflow mode`, or `wk mode` requires complete
|
|
84
|
+
role-chain coverage from `.claude/agents/` before closeout: plan,
|
|
85
|
+
research/docs research as needed, architecture, test, implement, independent
|
|
86
|
+
validation, cross-review, reflector, and accept.
|
|
81
87
|
|
|
82
88
|
Default starter set:
|
|
83
89
|
|
|
@@ -89,13 +95,14 @@ Then add phase-specific agents:
|
|
|
89
95
|
|
|
90
96
|
- `test-writer` before implementation
|
|
91
97
|
- `implementer` for the serial write lane
|
|
92
|
-
- `reviewer` for spec and code
|
|
98
|
+
- `reviewer` for independent spec/AC and code/architecture/test gates
|
|
93
99
|
- `debugger` after a reproduced verification failure
|
|
94
|
-
- `verifier` for
|
|
100
|
+
- `verifier` for command/browser/API evidence and AC matrix
|
|
101
|
+
- `reflector` after cross-review to decide whether final acceptance may proceed
|
|
95
102
|
- `context-master` before closeout for knowledge extraction
|
|
96
103
|
- `memory-master` after repeated failures and during closeout for consolidation
|
|
97
104
|
|
|
98
|
-
Collaboration mode is determined by concrete conditions, not a fixed ratio. See `Harness/WF.md#
|
|
105
|
+
Collaboration mode is determined by concrete conditions, not a fixed ratio. See `Harness/WF.md#Complete Role Chain Requirement` for the full decision tree. Summary: explicit WF/WK mode always uses the complete role chain. 3+ files or cross-layer work uses multi-agent orchestration. 1-2 local files, well-understood, not in WF mode can be solo. Repeated failure stops solo work and switches to multi-agent.
|
|
99
106
|
|
|
100
107
|
## Efficiency Ladder
|
|
101
108
|
|
|
@@ -106,11 +113,24 @@ Choose the cheapest coordination level that is safe.
|
|
|
106
113
|
| Solo pass | one file, low risk, clear intent | no subagent |
|
|
107
114
|
| Single reviewer | small change with meaningful risk | implement, then reviewer |
|
|
108
115
|
| Parallel read-only | broad reading, research, architecture, multiple independent failures | 2-3 read-only agents |
|
|
109
|
-
| Serial build lane | normal feature or fix | acceptance/contract -> test-writer -> implementer ->
|
|
110
|
-
| Isolated lanes | disjoint write sets or competing approaches | separate worktrees, then review and merge |
|
|
111
|
-
| Max parallelism | 5+ disjoint files, fan-out benefit > coordination cost | /wf max: write-set coloring -> wave dispatch -> parallel review |
|
|
112
|
-
|
|
113
|
-
|
|
116
|
+
| Serial build lane | normal feature or fix | acceptance/contract -> test-writer -> implementer -> verifier evidence -> cross-review -> reflector -> acceptance |
|
|
117
|
+
| Isolated lanes | disjoint write sets or competing approaches | separate worktrees, then review and merge |
|
|
118
|
+
| Max parallelism | 5+ disjoint files, fan-out benefit > coordination cost | /wf max: write-set coloring -> wave dispatch -> parallel review |
|
|
119
|
+
|
|
120
|
+
Max parallelism removes the Harness default cap, not the runtime's physical or
|
|
121
|
+
account cap. For WF-MAX, record the current runtime budget, use native
|
|
122
|
+
subagents first, close completed agents before declaring the pool exhausted,
|
|
123
|
+
then overflow to the other CLI (`claude -p` or `codex exec`) with explicit
|
|
124
|
+
dispatch packets. Generated Harness Codex config defaults to
|
|
125
|
+
`agents.max_threads = 12` and `agents.max_depth = 1`; if that becomes the
|
|
126
|
+
bottleneck, ask the user before raising `agents.max_threads` and keep
|
|
127
|
+
`max_depth = 1` unless recursive delegation is explicitly approved. Do not rely
|
|
128
|
+
on undocumented fork/derive bypasses as stable capacity.
|
|
129
|
+
|
|
130
|
+
Default for automatic WF triggers: 3-5 active read-only agents before second
|
|
131
|
+
planning. For explicit WF/WK mode, never use the solo pass; schedule the
|
|
132
|
+
complete role chain and use bounded role passes as the recorded fallback when
|
|
133
|
+
subagents are unavailable.
|
|
114
134
|
|
|
115
135
|
## WF Orchestration Shape
|
|
116
136
|
|
|
@@ -119,12 +139,12 @@ controller intake
|
|
|
119
139
|
-> parallel planner/researcher/docs-researcher/architect subagents
|
|
120
140
|
-> controller synthesis
|
|
121
141
|
-> second plan with dependencies and write sets
|
|
122
|
-
-> acceptance/contract/test-writer
|
|
123
|
-
-> implementer
|
|
124
|
-
-> independent validator
|
|
125
|
-
-> spec reviewer
|
|
126
|
-
->
|
|
127
|
-
-> if failed: debugger/fixer -> review ->
|
|
142
|
+
-> acceptance/contract/test-writer
|
|
143
|
+
-> implementer
|
|
144
|
+
-> independent validator
|
|
145
|
+
-> cross-review: spec/AC reviewer + code/architecture/test reviewer
|
|
146
|
+
-> reflector
|
|
147
|
+
-> if failed: debugger/fixer -> verify -> cross-review -> reflector -> loop
|
|
128
148
|
-> close with evidence
|
|
129
149
|
```
|
|
130
150
|
|
|
@@ -134,19 +154,20 @@ Use this shape for `/wf`, long tasks, multi-file changes, architecture work, mig
|
|
|
134
154
|
/wf max orchestration shape:
|
|
135
155
|
controller intake
|
|
136
156
|
-> wave 0: max-parallel exploration (4-14 read-only agents)
|
|
137
|
-
-> E-GATE: Exploration Gate
|
|
138
|
-
-> wave 1: architecture
|
|
139
|
-
-> D-GATE: Write Decomposition Gate
|
|
157
|
+
-> E-GATE: Exploration Gate - all questions answered, findings synthesized (per WF-MAX.md)
|
|
158
|
+
-> wave 1: architecture - 3 parallel architects -> boundary decisions + interface contract
|
|
159
|
+
-> D-GATE: Write Decomposition Gate - Dispatch Table + Self-Audit for write-set (MANDATORY, per WF-MAX.md)
|
|
140
160
|
-> wave 2: N parallel implementers (disjoint file claims, ALL spawned in ONE message)
|
|
141
161
|
-> wave 2 review: parallel spec/code/security reviewers
|
|
142
162
|
-> wave 3+: dependent implementers (if any; re-run D-GATE if write-set changed)
|
|
143
163
|
-> integration verifier
|
|
164
|
+
-> reflector after cross-review
|
|
144
165
|
-> closeout with evidence
|
|
145
166
|
```
|
|
146
167
|
|
|
147
168
|
## Dispatch Pack
|
|
148
169
|
|
|
149
|
-
Use the canonical dispatch input and handoff format in `Harness/dispatch.md`. Every subagent dispatch must be self-contained
|
|
170
|
+
Use the canonical dispatch input and handoff format in `Harness/dispatch.md`. Every subagent dispatch must be self-contained - inject only the docs selected by `Harness/README.md` and `Harness/context-loading.md`.
|
|
150
171
|
|
|
151
172
|
## Parallelism Rules
|
|
152
173
|
|
|
@@ -159,15 +180,16 @@ Use the canonical dispatch input and handoff format in `Harness/dispatch.md`. Ev
|
|
|
159
180
|
|
|
160
181
|
## Review Gates
|
|
161
182
|
|
|
162
|
-
Implementation is not complete until
|
|
183
|
+
Implementation is not complete until cross-review and reflection pass:
|
|
163
184
|
|
|
164
|
-
1. **Spec review**: confirms the result matches the user request, PRD, feature doc, acceptance criteria, contracts, and non-goals. Extra features are failures.
|
|
165
|
-
2. **Code-quality review**: checks correctness, maintainability, architecture, tests, security, and integration risk.
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
185
|
+
1. **Spec review**: confirms the result matches the user request, PRD, feature doc, acceptance criteria, contracts, and non-goals. Extra features are failures.
|
|
186
|
+
2. **Code-quality review**: checks correctness, maintainability, architecture, tests, security, and integration risk.
|
|
187
|
+
3. **Reflector gate**: checks reviewer findings, verifier evidence, unresolved risks, and contradictions; returns PASS, RETURN_TO_DEBUG, or BLOCKED.
|
|
188
|
+
|
|
189
|
+
Validation is separate from review. Validator must produce an AC-by-AC result
|
|
190
|
+
matrix from running behavior and evidence, not from the implementer's summary.
|
|
169
191
|
|
|
170
|
-
If either reviewer finds issues, the implementer or debugger fixes them and the same gate runs again. Do not move to
|
|
192
|
+
If either reviewer finds issues, the implementer or debugger fixes them and the same gate runs again. Do not move to final acceptance with open critical/high findings or without reflector PASS.
|
|
171
193
|
|
|
172
194
|
## Subagent Status Handling
|
|
173
195
|
|
|
@@ -199,9 +221,9 @@ Findings rejected:
|
|
|
199
221
|
Conflicts:
|
|
200
222
|
Decisions:
|
|
201
223
|
Next write set:
|
|
202
|
-
Verification path:
|
|
203
|
-
Acceptance/contract traceability:
|
|
204
|
-
Residual risk:
|
|
224
|
+
Verification path:
|
|
225
|
+
Acceptance/contract traceability:
|
|
226
|
+
Residual risk:
|
|
205
227
|
```
|
|
206
228
|
|
|
207
229
|
Only the synthesis and named files enter main context. Do not replay full subagent conversations.
|
|
@@ -1,82 +1,75 @@
|
|
|
1
|
-
# {{TASK_ID}}
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
1
|
+
# {{TASK_ID}} - PLAN
|
|
2
|
+
|
|
3
|
+
Compact task record. Keep only facts needed to resume, review, and verify.
|
|
4
|
+
Link files or command names instead of pasting logs or subagent transcripts.
|
|
5
|
+
|
|
6
|
+
> Task ID: kebab-case, under 60 chars. Directory name = task ID.
|
|
7
|
+
|
|
5
8
|
## Goal
|
|
6
9
|
|
|
7
|
-
|
|
10
|
+
- Outcome:
|
|
11
|
+
- Non-goals:
|
|
8
12
|
|
|
9
|
-
|
|
10
|
-
-
|
|
13
|
+
## Decisions
|
|
11
14
|
|
|
12
|
-
|
|
13
|
-
-
|
|
15
|
+
-
|
|
14
16
|
|
|
15
|
-
|
|
16
|
-
1.
|
|
17
|
+
## Acceptance
|
|
17
18
|
|
|
18
|
-
UI
|
|
19
|
-
-
|
|
19
|
+
Default: keep 1-3 concise ACs. Expand only for UI/API/security/data-loss,
|
|
20
|
+
cross-module, or other high-risk behavior.
|
|
20
21
|
|
|
21
|
-
|
|
22
|
-
-
|
|
22
|
+
- AC-001:
|
|
23
23
|
|
|
24
|
-
|
|
24
|
+
Expanded evidence required when triggered:
|
|
25
|
+
- UI/browser-visible: add selector contract and real browser evidence.
|
|
26
|
+
- API/integration: add endpoint/payload/response contract.
|
|
27
|
+
- High-risk behavior: add AC-by-AC validation matrix.
|
|
25
28
|
|
|
26
|
-
|
|
27
|
-
|-------|----------------------|--------------|----------|
|
|
28
|
-
| AC-001 | | | |
|
|
29
|
+
## Scope
|
|
29
30
|
|
|
30
|
-
|
|
31
|
+
Allowed write set:
|
|
32
|
+
-
|
|
31
33
|
|
|
32
|
-
|
|
33
|
-
|
|
34
|
+
Forbidden:
|
|
35
|
+
-
|
|
36
|
+
- Truth files (PRD, ACs, UI/API contracts, test plan, validation report) unless a Change Request is recorded.
|
|
34
37
|
|
|
35
|
-
##
|
|
38
|
+
## Context
|
|
36
39
|
|
|
37
|
-
|
|
38
|
-
|
|
40
|
+
- Loaded:
|
|
41
|
+
- Assumptions:
|
|
39
42
|
|
|
40
|
-
##
|
|
43
|
+
## Agents
|
|
41
44
|
|
|
42
|
-
|
|
45
|
+
Only record agents or bounded passes that materially changed the decision.
|
|
46
|
+
|
|
47
|
+
| Role | Read / Write Set | Result |
|
|
48
|
+
|------|------------------|--------|
|
|
43
49
|
|
|
44
|
-
| AC ID | Test Level | User Action / API Request | Command / File | Evidence | Status |
|
|
45
|
-
|-------|------------|---------------------------|----------------|----------|--------|
|
|
46
|
-
|
|
47
|
-
## Scope
|
|
48
|
-
|
|
49
|
-
Allowed write set:
|
|
50
|
-
-
|
|
51
|
-
|
|
52
|
-
Forbidden:
|
|
53
|
-
-
|
|
54
|
-
- PRD / acceptance criteria / UI contract / API contract / test plan / validation report unless Change Request is recorded
|
|
55
|
-
|
|
56
|
-
## Loaded Context
|
|
57
|
-
|
|
58
|
-
-
|
|
59
|
-
|
|
60
|
-
## Subagent Dispatch
|
|
61
|
-
|
|
62
|
-
| Agent | Mode | Read Set | Write Set | Status |
|
|
63
|
-
|-------|------|----------|-----------|--------|
|
|
64
|
-
|
|
65
|
-
## Subagent Synthesis
|
|
66
|
-
|
|
67
|
-
Agents used:
|
|
68
|
-
Findings accepted:
|
|
69
|
-
Findings rejected:
|
|
70
|
-
Conflicts:
|
|
71
|
-
Decisions:
|
|
72
|
-
Residual risk:
|
|
73
|
-
|
|
74
50
|
## Verification
|
|
75
51
|
|
|
76
|
-
|
|
77
|
-
|
|
52
|
+
- [ ]
|
|
53
|
+
|
|
54
|
+
## Risks
|
|
55
|
+
|
|
56
|
+
-
|
|
57
|
+
|
|
58
|
+
## Expanded Contracts
|
|
59
|
+
|
|
60
|
+
Use this section only when the Acceptance triggers above apply.
|
|
61
|
+
|
|
62
|
+
### UI Contract
|
|
63
|
+
|
|
64
|
+
| Element | Selector / Role | States | AC IDs |
|
|
65
|
+
|---------|-----------------|--------|--------|
|
|
66
|
+
|
|
67
|
+
### API Contract
|
|
68
|
+
|
|
69
|
+
| Endpoint | Method | Payload / Response | AC IDs |
|
|
70
|
+
|----------|--------|--------------------|--------|
|
|
78
71
|
|
|
79
|
-
|
|
72
|
+
### Validation Matrix
|
|
80
73
|
|
|
81
74
|
| AC ID | Result | Evidence | Notes |
|
|
82
75
|
|-------|--------|----------|-------|
|
|
@@ -1,29 +1,26 @@
|
|
|
1
|
-
# {{TASK_ID}}
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
##
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
| Agent | Role | Context Pack | Result |
|
|
29
|
-
|-------|------|-------------|--------|
|
|
1
|
+
# {{TASK_ID}} - PROGRESS
|
|
2
|
+
|
|
3
|
+
Compact heartbeat. Update on phase changes, blockers, failures, and closeout.
|
|
4
|
+
Do not paste logs; record the command/file that proves the state.
|
|
5
|
+
|
|
6
|
+
## Status
|
|
7
|
+
|
|
8
|
+
- Phase: Intake
|
|
9
|
+
- Next:
|
|
10
|
+
- Blocker: none
|
|
11
|
+
|
|
12
|
+
## Tasks
|
|
13
|
+
|
|
14
|
+
- [ ] Define goal and scope
|
|
15
|
+
|
|
16
|
+
## Changes
|
|
17
|
+
|
|
18
|
+
-
|
|
19
|
+
|
|
20
|
+
## Verification
|
|
21
|
+
|
|
22
|
+
-
|
|
23
|
+
|
|
24
|
+
## Notes
|
|
25
|
+
|
|
26
|
+
-
|
|
@@ -5,37 +5,38 @@
|
|
|
5
5
|
|
|
6
6
|
## Agents (Sub-agents)
|
|
7
7
|
|
|
8
|
-
- [researcher](../.claude/agents/researcher.md)
|
|
9
|
-
- [docs-researcher](../.claude/agents/docs-researcher.md)
|
|
10
|
-
- [planner](../.claude/agents/planner.md)
|
|
11
|
-
- [architect](../.claude/agents/architect.md)
|
|
12
|
-
- [test-writer](../.claude/agents/test-writer.md)
|
|
8
|
+
- [researcher](../.claude/agents/researcher.md) - product, market, open-source, dependency, pricing, policy, and ecosystem research.
|
|
9
|
+
- [docs-researcher](../.claude/agents/docs-researcher.md) - official docs, API, SDK, config, limits, errors, and examples verification.
|
|
10
|
+
- [planner](../.claude/agents/planner.md) - task split, dependencies, write sets, and dispatch table.
|
|
11
|
+
- [architect](../.claude/agents/architect.md) - boundaries, ports, data-flow, and state impact.
|
|
12
|
+
- [test-writer](../.claude/agents/test-writer.md) - failing tests or manual verification before implementation.
|
|
13
13
|
- [tdd-guide](../.claude/agents/tdd-guide.md) - AC-linked RED tests, browser UI acceptance, and Playwright/CDP evidence before implementation.
|
|
14
|
-
- [implementer](../.claude/agents/implementer.md)
|
|
15
|
-
- [debugger](../.claude/agents/debugger.md)
|
|
16
|
-
- [reviewer](../.claude/agents/reviewer.md)
|
|
17
|
-
- [verifier](../.claude/agents/verifier.md)
|
|
18
|
-
- [
|
|
19
|
-
- [
|
|
20
|
-
- [
|
|
21
|
-
- [
|
|
22
|
-
- [
|
|
23
|
-
- [
|
|
14
|
+
- [implementer](../.claude/agents/implementer.md) - bounded implementation inside declared write set.
|
|
15
|
+
- [debugger](../.claude/agents/debugger.md) - smallest fix for a reproduced failure.
|
|
16
|
+
- [reviewer](../.claude/agents/reviewer.md) - read-only spec/AC and code/architecture/test review.
|
|
17
|
+
- [verifier](../.claude/agents/verifier.md) - verification commands and AC evidence matrix.
|
|
18
|
+
- [reflector](../.claude/agents/reflector.md) - closeout synthesis, contradiction check, and final acceptance gate verdict.
|
|
19
|
+
- [memory-master](../.claude/agents/memory-master.md) - memory writing, dedup, consolidation, and cross-project knowledge extraction.
|
|
20
|
+
- [context-master](../.claude/agents/context-master.md) - context analysis, compression alerts, and session knowledge extraction for memory-master.
|
|
21
|
+
- [explore-manager](../.claude/agents/explore-manager.md) - WF-MAX W0 exploration: spawn 5-10 read-only researchers, synthesize, report to CEO.
|
|
22
|
+
- [architect-manager](../.claude/agents/architect-manager.md) - WF-MAX W1 architecture: spawn 3 architects, synthesize interface contracts, report to CEO.
|
|
23
|
+
- [implement-manager](../.claude/agents/implement-manager.md) - WF-MAX W2 implementation: spawn 5-7 implementers (one file_claim each), merge, report to CEO.
|
|
24
|
+
- [review-manager](../.claude/agents/review-manager.md) - WF-MAX W2R review: spawn 3-4 reviewers (spec/code/security/perf), deduplicate, classify severity, report to CEO.
|
|
24
25
|
|
|
25
26
|
Stack-specific agents can be added after the product shape is known.
|
|
26
27
|
|
|
27
28
|
## Skills (Workflows)
|
|
28
29
|
|
|
29
|
-
- [WF Mode](WF.md)
|
|
30
|
-
- [wf](../.claude/skills/wf/SKILL.md)
|
|
31
|
-
- [subagent-orchestrator](../.claude/skills/subagent-orchestrator/SKILL.md)
|
|
32
|
-
- [wf-readme](../.claude/skills/wf-readme/SKILL.md)
|
|
33
|
-
- [wf-review](../.claude/skills/wf-review/SKILL.md)
|
|
34
|
-
- [wf-update](../.claude/skills/wf-update/SKILL.md)
|
|
35
|
-
- [wf-learn](../.claude/skills/wf-learn/SKILL.md)
|
|
36
|
-
- [wf-max](../.claude/skills/wf-max/SKILL.md)
|
|
30
|
+
- [WF Mode](WF.md) - complete role chain: plan, research/docs, architecture, test, implement, validation, cross-review, reflector, acceptance.
|
|
31
|
+
- [wf](../.claude/skills/wf/SKILL.md) - Claude Code WF skill command; mirrored for Codex at `../.agents/skills/wf/SKILL.md`.
|
|
32
|
+
- [subagent-orchestrator](../.claude/skills/subagent-orchestrator/SKILL.md) - controller-led subagent orchestration, parallel read-only passes, review gates, and recovery handoffs.
|
|
33
|
+
- [wf-readme](../.claude/skills/wf-readme/SKILL.md) - README preservation, append-only development sections, structured tables, and approved architecture diagrams.
|
|
34
|
+
- [wf-review](../.claude/skills/wf-review/SKILL.md) - cross-model peer review: invoke the other agent CLI (Codex/Claude) for independent review.
|
|
35
|
+
- [wf-update](../.claude/skills/wf-update/SKILL.md) - GitHub-based incremental harness update, checksum comparison, and safe in-place updates.
|
|
36
|
+
- [wf-learn](../.claude/skills/wf-learn/SKILL.md) - force memory learning cycle: context-master -> memory-master -> project + global memory.
|
|
37
|
+
- [wf-max](../.claude/skills/wf-max/SKILL.md) - WF strict superset: complete role chain plus maximum parallelism, current runtime subagents first, cross-CLI overflow when available.
|
|
37
38
|
- [wf-auto](../.claude/skills/wf-auto/SKILL.md) - perpetual auto-optimization: bounded ticks, 8-angle internal scan, intent checkpoints, evidence ledger.
|
|
38
|
-
- [wf-auto-spark](../.claude/skills/wf-auto-spark/SKILL.md)
|
|
39
|
+
- [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.
|
|
39
40
|
- [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.
|
|
40
41
|
- [wf-remove](../.claude/skills/wf-remove/SKILL.md) - safely remove Harness framework files (SAFE/MODIFIED/USER classes), auto-prune empty directories, backup option.
|
|
41
42
|
|
|
@@ -47,15 +48,11 @@ Codex repo-skill mirrors live under `../.agents/skills/` with the same skill nam
|
|
|
47
48
|
|
|
48
49
|
Stack-specific skills can be added after the product shape is known.
|
|
49
50
|
|
|
50
|
-
- [browser-e2e](workflows/browser-e2e.md)
|
|
51
|
-
|
|
52
|
-
Stack-specific skills can be added after the product shape is known.
|
|
53
|
-
|
|
54
51
|
## Rules (Harness Constraints)
|
|
55
52
|
|
|
56
53
|
Located under `.claude/rules/ecc/`, auto-loaded by the CC engine:
|
|
57
54
|
|
|
58
|
-
- [common.md](../.claude/rules/ecc/common.md)
|
|
55
|
+
- [common.md](../.claude/rules/ecc/common.md) - universal harness constraints for context loading, verification, subagents, and security (alwaysApply: true)
|
|
59
56
|
- Language-specific rules pending Claude Code initialization (e.g. python.md, typescript.md, etc.)
|
|
60
57
|
|
|
61
58
|
## Harness (Runtime)
|
|
@@ -31,7 +31,7 @@ First clarify the idea, then create Mini PRD, acceptance criteria, UI/API contra
|
|
|
31
31
|
|
|
32
32
|
## Required Bootstrap Sequence
|
|
33
33
|
|
|
34
|
-
Claude must follow this order
|
|
34
|
+
Claude or Codex must follow this order during bootstrap. This sequence is broader than installation; if the user only asked to install/configure the harness in an existing project, follow the "Existing Project Fast Path" below and stop after the non-strict validator passes.
|
|
35
35
|
|
|
36
36
|
0. **ECC Stack Configuration** — Detect the project's tech stack. If the repo is empty or has no stack markers (`package.json`, `go.mod`, `pyproject.toml`, `Cargo.toml`, `Gemfile`, `composer.json`, `build.gradle`, etc.), ask the user: "What's your tech stack? (language/framework)" Then install the matching ECC rule sets from `~/.claude/rules/ecc/`. See `Harness/ECC-GUIDE.md` for the stack→rules mapping. Minimum: always install `common/`. Verify with `ls .claude/rules/ecc/`.
|
|
37
37
|
1. Read `CLAUDE.md`, `Harness/MEMORY.md`, `Harness/README.md`, `Harness/lifecycle.md`, and `Harness/ACCEPTANCE_PROTOCOL.md`. Load `Harness/memory/*` only when the router or memory trigger applies.
|
|
@@ -45,8 +45,8 @@ Claude must follow this order:
|
|
|
45
45
|
9. Implement only after PRD-GATE, AC-GATE, CONTRACT-GATE, and TEST-GATE pass.
|
|
46
46
|
10. Independently validate with an AC-by-AC result matrix; use `Harness/HARNESS_BRIDGE.md` for browser/API/CDP flows.
|
|
47
47
|
11. For `/wf-auto` or memory scenario hints, read `Harness/WF-AUTO.md` and `Harness/MEMORY_PROTOCOL.md`; do not enable a background runner by default. The only allowed runtime hook is the optional `/wf-auto` bounded tick hook.
|
|
48
|
-
|
|
49
|
-
|
|
48
|
+
12. Run `node Harness/scripts/validate-harness.mjs --strict` after project-fact placeholders are resolved.
|
|
49
|
+
13. Record final verification and next feedback step in `Harness/tasks/<task-id>/PROGRESS.md`. If repeated tool failures, repeated user corrections, or reusable review/debug lessons appeared, record the concise reflection in the relevant `Harness/memory/` file.
|
|
50
50
|
|
|
51
51
|
## Install or Upgrade Path
|
|
52
52
|
|
|
@@ -59,20 +59,25 @@ Before writing, identify the project state:
|
|
|
59
59
|
| Legacy architecture or older project docs | Treat existing code/docs as source of truth, dry-run first, then fill PRD, research, architecture, and task plans from observed facts |
|
|
60
60
|
| Existing `Harness/` | Do not use `npx` as an updater; ask whether to run `/wf-update`, `$wf-update`, `node Harness/scripts/wf-update-check.mjs`, keep untouched, or remove/reinstall after approval |
|
|
61
61
|
|
|
62
|
-
When adding this harness to a project that already has source code, docs, CI, or tool configuration, treat the existing project as the source of truth before filling harness docs.
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
62
|
+
When adding this harness to a project that already has source code, docs, CI, or tool configuration, treat the existing project as the source of truth before filling harness docs.
|
|
63
|
+
|
|
64
|
+
### Existing Project Fast Path
|
|
65
|
+
|
|
66
|
+
Use this path when the user asks only to install or configure the harness in an existing project. Do not bootstrap PRD, research, architecture, or task capsules unless the user explicitly asks for bootstrap.
|
|
67
|
+
|
|
68
|
+
1. Get the machine-readable install report first with `npx create-harness-vibe-coding@latest <project-name> <target-dir> -y --dry-run --on-conflict skip --json`. Use `scan.markers` and `agent.aiMergeRequired` instead of hand-written root probes for install decisions. Do manual project-fact reading only after the script has created missing Harness files.
|
|
69
|
+
2. Run the JSON `agent.safeMergeCommand` to create only missing files.
|
|
70
|
+
3. Record discovered facts in the final install summary. Create or update task capsules only when bootstrap or multi-step implementation work begins.
|
|
67
71
|
4. Existing configuration is project fact. Do not overwrite `CLAUDE.md`, `AGENTS.md`, `.claude/`, `.agents/`, `.codex/`, `.gitignore`, settings, package files, CI, docs routers, workflow docs, or installed skills/plugins/rules unless the user explicitly approves that exact overwrite.
|
|
68
|
-
5. When a harness file conflicts with an existing file, preserve the existing file and register any missing harness guidance manually using `Harness/extension.md`.
|
|
69
|
-
6. Run `node Harness/scripts/validate-harness.mjs
|
|
72
|
+
5. When a harness file conflicts with an existing file, preserve the existing file and register any missing harness guidance manually using `Harness/extension.md`.
|
|
73
|
+
6. Run `node Harness/scripts/validate-harness.mjs` as the install-complete gate.
|
|
74
|
+
7. Defer `node Harness/scripts/validate-harness.mjs --strict` until bootstrap removes project-fact placeholders. If placeholders intentionally remain, report strict validation as deferred rather than treating install as failed.
|
|
70
75
|
|
|
71
76
|
`npx create-harness-vibe-coding` is an install/safe-merge entry, not an update engine for a project that already has an installed Harness. If `Harness/` already exists, use `/wf-update`, `$wf-update`, or `node Harness/scripts/wf-update-check.mjs`; root entry files and user-modified Harness docs require agent-mediated merge decisions.
|
|
72
77
|
|
|
73
78
|
### Agent-Link Install Intake
|
|
74
79
|
|
|
75
|
-
When the user installs by pasting the GitHub link into an agent, get the JSON install report before editing or asking generic questions. Summarize `scan.markers`, then ask only questions that affect writes, architecture, security, or workflow. Ask at most three blocking questions up front, record safe defaults for the rest, and ask follow-ups only when that choice becomes active.
|
|
80
|
+
When the user installs by pasting the GitHub link into an agent, get the JSON install report before editing or asking generic questions. Do not fetch full template files or read package source until `agent.aiMergeRequired` names a file that needs semantic comparison. Summarize `scan.markers`, then ask only questions that affect writes, architecture, security, or workflow. Ask at most three blocking questions up front, record safe defaults for the rest, and ask follow-ups only when that choice becomes active.
|
|
76
81
|
|
|
77
82
|
| Topic | Ask When | Default If Unanswered |
|
|
78
83
|
| --- | --- | --- |
|
|
@@ -117,9 +122,9 @@ When `--on-conflict skip` leaves existing files untouched, the script still owns
|
|
|
117
122
|
- **[Overwrite]** — Replace with the template version. Optionally backup the original first (`--on-conflict backup`).
|
|
118
123
|
- **[Keep]** — Leave the existing file as-is. Skip this file.
|
|
119
124
|
|
|
120
|
-
4. For Merge: use
|
|
121
|
-
|
|
122
|
-
5. After all merges, run `node Harness/scripts/validate-harness.mjs --strict`
|
|
125
|
+
4. For Merge: use targeted edits, not a full-file rewrite. In Codex, use `apply_patch` or an equivalent patch operation. Only insert sections, headings, and text that are structurally required. Do not reorder or modify existing content. Do not remove custom project-specific registrations. After merging `CLAUDE.md` or `AGENTS.md`, inspect the heading outline and remove duplicate headings or repeated bullets introduced by the merge.
|
|
126
|
+
|
|
127
|
+
5. After all install merges, run `node Harness/scripts/validate-harness.mjs`. Run `node Harness/scripts/validate-harness.mjs --strict` only after project-fact placeholders are resolved during bootstrap or release preparation.
|
|
123
128
|
|
|
124
129
|
**File-specific gap checklists:**
|
|
125
130
|
|
|
@@ -131,12 +136,12 @@ The harness validator checks for specific structural invariants. When comparing
|
|
|
131
136
|
| `AGENTS.md` | Root agent entry points to `CLAUDE.md` and `Harness/README.md`; for existing projects, merge only after explicit user consent |
|
|
132
137
|
| `README.md` | Existing README is project-owned. Preserve by default; ask whether to append only Development notes or run `wf-readme` for a structure pass with tables/diagrams before broad edits |
|
|
133
138
|
| `Harness/MEMORY.md` | All common agents registered under `## Agents`; all common harness skills registered under `## Skills`; all 3 `Harness/memory/` files registered under `## Memory Folder`; `Harness/memory/` folder usage guidance; `Project Resource Index` in title |
|
|
134
|
-
| `.claude/rules/ecc/common.md` | `## Context`
|
|
139
|
+
| `.claude/rules/ecc/common.md` | Required project-local universal rules. Keep it even when global `~/.claude/rules/ecc/common/` exists; that directory and this file have different scopes. Required sections: `## Context` with the durable communication invariant (`project files are the only durable communication channel`); `## Memory` with three reflection file entries; `## Security` |
|
|
135
140
|
| `Harness/README.md` | `## Keyword Routing` heading; `## Load By Task` table with at minimum the rows: "Need WF mode", "Adding harness to existing project", "Need implementation plan", "Need parallel agents", "Need subagents", "Need durable memory or reflection"; WF routing keywords include `/wf`, `wf mode`, `workflow mode`, and `wk mode`; explicit WF/WK output says subagent docs load immediately; `## Doc Map` with `memory/` and `subagents.md` entries; the durable communication invariant text; `Harness/README.md is the primary router` |
|
|
136
|
-
| `Harness/WF.md` | `WF mode requires
|
|
141
|
+
| `Harness/WF.md` | `WF mode requires the complete role chain by default`; explicit `/wf`, `$wf`, `wf mode`, `workflow mode`, or `wk mode` requires plan, research/docs, architecture, test, implement, validation, cross-review, reflector, and acceptance before closeout; `collaboration decision tree`; `Heartbeat Protocol` |
|
|
137
142
|
| `Harness/extension.md` | `## Non-Invasive Extension Rules` section with the "Preserve existing" rule; `## Agent Contract` section; `## Registration` section |
|
|
138
|
-
| `Harness/dispatch.md` | The durable communication invariant; common agent entries
|
|
139
|
-
| `Harness/context-loading.md` | The durable communication invariant; `Harness/README.md is the primary router`; all
|
|
143
|
+
| `Harness/dispatch.md` | The durable communication invariant; registered common agent entries; `## Handoff Format` heading |
|
|
144
|
+
| `Harness/context-loading.md` | The durable communication invariant; `Harness/README.md is the primary router`; all 12 subagent context packs (Explorer Pass, Planner, Researcher, Docs Researcher, Architect, Test Writer, Implementer, Reviewer, Debugger, Verifier, Memory Master, Context Master) |
|
|
140
145
|
| `Harness/subagents.md` | `## Source Attribution`; `## Built-in Agent Roster`; `## WF Default Fan-Out`; `Controller Role`; `Efficiency Ladder`; `Review Gates`; `collaboration decision tree`; source markers for `npx skills find`, `dispatching-parallel-agents`, and `subagent-driven-development` |
|
|
141
146
|
| `Harness/architecture.md` | `## 2. Interface Decoupling`; `## 3. State Design`; `Avoid speculative abstraction`; layer constraints derived from actual project facts |
|
|
142
147
|
| `Harness/PROGRESS.md` | global task index with Active Task and task history; cross-task decisions |
|
|
@@ -146,12 +151,14 @@ The harness validator checks for specific structural invariants. When comparing
|
|
|
146
151
|
| `Harness/workflows/browser-e2e.md` (if installed as optional) | `data-testid`, `accessible labels/roles`, and `inputs, buttons, filters, rows, empty/error/loading states` requirement |
|
|
147
152
|
| `Harness/workflows/ts-react-frontend.md` (if installed as optional) | Same UI selector contract as above |
|
|
148
153
|
|
|
149
|
-
**Files that do NOT need manual merge when the path does not already exist (auto-created by harness):**
|
|
154
|
+
**Files that do NOT need manual merge when the path does not already exist (auto-created by harness):**
|
|
155
|
+
|
|
156
|
+
The generated file list is authoritative by path, not by stale count labels. Current common scaffolds include WF-MAX manager agents and `tdd-guide`; keep every file created by the scaffold unless a removal workflow explicitly classifies it as safe to remove.
|
|
150
157
|
|
|
151
158
|
- `Harness/memory/tool-usage-reflections.md`, `Harness/memory/user-corrections-preferences.md`, `Harness/memory/agent-lessons-patterns.md` — these are new empty files
|
|
152
|
-
- `.claude/agents/*.md`
|
|
159
|
+
- `.claude/agents/*.md` - all built-in common agent files, including WF-MAX managers and `tdd-guide`
|
|
153
160
|
- `.claude/skills/*.md` and mirrored `.agents/skills/*.md` — Claude Code and Codex skill adapters over the same Harness docs
|
|
154
|
-
- `.claude/rules/ecc/common.md`
|
|
161
|
+
- `.claude/rules/ecc/common.md` - required project-local universal rules. Do not delete this file as a duplicate of a global `~/.claude/rules/ecc/common/` directory; they are different scopes.
|
|
155
162
|
- `.claude/settings.json` — harness settings
|
|
156
163
|
- `Harness/WF.md`, `Harness/lifecycle.md`, `Harness/subagents.md`, `Harness/agent-workflow.md`, `Harness/architecture.md` — harness runtime docs
|
|
157
164
|
- `Harness/research/*.md` — research protocol and templates
|
|
@@ -314,5 +321,5 @@ After scaffolding, use the JSON output first. Files in `plan.create[]` were hand
|
|
|
314
321
|
|
|
315
322
|
1. Read `CLAUDE.md`, `Harness/MEMORY.md`, and `Harness/README.md`.
|
|
316
323
|
2. Follow the Required Bootstrap Sequence above.
|
|
317
|
-
3. Run `node Harness/scripts/validate-harness.mjs --strict`
|
|
324
|
+
3. Run `node Harness/scripts/validate-harness.mjs` after install. Run `node Harness/scripts/validate-harness.mjs --strict` after bootstrap resolves project-fact placeholders.
|
|
318
325
|
4. Delete `Harness/SETUP.md`.
|