create-harness-vibe-coding 0.8.8 → 0.8.9

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 (80) hide show
  1. package/README-CN.md +7 -1
  2. package/README.md +21 -2
  3. package/docs/images/harness-icon.png +0 -0
  4. package/package.json +2 -1
  5. package/src/generator.js +36 -0
  6. package/src/index.js +72 -4
  7. package/templates/common/.claude/agents/architect.md +31 -31
  8. package/templates/common/.claude/agents/codebase-explorer.md +45 -0
  9. package/templates/common/.claude/agents/docs-researcher.md +41 -41
  10. package/templates/common/.claude/agents/memory-master.md +26 -8
  11. package/templates/common/.claude/agents/reviewer.md +34 -34
  12. package/templates/common/.claude/agents/task-scribe.md +70 -0
  13. package/templates/common/.claude/commands/wf-help.md +8 -4
  14. package/templates/common/.claude/commands/wf-update.md +24 -0
  15. package/templates/common/.claude/rules/ecc/common.md +15 -2
  16. package/templates/common/.claude/settings.json +13 -0
  17. package/templates/common/.claude/skills/subagent-orchestrator/SKILL.md +8 -4
  18. package/templates/common/.claude/skills/wf/SKILL.md +15 -8
  19. package/templates/common/.claude/skills/wf-auto/SKILL.md +3 -2
  20. package/templates/common/.claude/skills/wf-learn/SKILL.md +9 -2
  21. package/templates/common/.claude/skills/wf-max/SKILL.md +23 -5
  22. package/templates/common/.claude/skills/wf-update/SKILL.md +15 -2
  23. package/templates/common/.codex/hooks.json +17 -0
  24. package/templates/common/.harness-version +89 -44
  25. package/templates/common/.opencode/agents/architect.md +24 -24
  26. package/templates/common/.opencode/agents/codebase-explorer.md +45 -0
  27. package/templates/common/.opencode/agents/docs-researcher.md +34 -34
  28. package/templates/common/.opencode/agents/memory-master.md +26 -8
  29. package/templates/common/.opencode/agents/reviewer.md +27 -27
  30. package/templates/common/.opencode/agents/task-scribe.md +70 -0
  31. package/templates/common/.opencode/commands/wf-auto-spark.md +15 -0
  32. package/templates/common/.opencode/commands/wf-auto.md +15 -0
  33. package/templates/common/.opencode/commands/wf-help.md +8 -4
  34. package/templates/common/.opencode/commands/wf-learn.md +15 -0
  35. package/templates/common/.opencode/commands/wf-max.md +15 -0
  36. package/templates/common/.opencode/commands/wf-readme.md +15 -0
  37. package/templates/common/.opencode/commands/wf-remove.md +15 -0
  38. package/templates/common/.opencode/commands/wf-review.md +15 -0
  39. package/templates/common/.opencode/commands/wf-update.md +24 -0
  40. package/templates/common/.opencode/commands/wf.md +15 -0
  41. package/templates/common/.opencode/plugins/harness-wf-status.mjs +135 -0
  42. package/templates/common/AGENTS.md +2 -29
  43. package/templates/common/CLAUDE.md +35 -6
  44. package/templates/common/Harness/ACCEPTANCE_PROTOCOL.md +2 -2
  45. package/templates/common/{MEMORY.md → Harness/MEMORY.md} +16 -3
  46. package/templates/common/Harness/MEMORY_PROTOCOL.md +80 -30
  47. package/templates/common/Harness/README.md +50 -22
  48. package/templates/common/{SETUP.md → Harness/SETUP.md} +278 -276
  49. package/templates/common/Harness/TASK_ARCHIVE.md +56 -0
  50. package/templates/common/Harness/WF-AUTO-SPARK.md +5 -14
  51. package/templates/common/Harness/WF-AUTO.md +13 -76
  52. package/templates/common/Harness/WF-KERNEL.md +189 -0
  53. package/templates/common/Harness/WF-MAX.md +60 -328
  54. package/templates/common/Harness/WF-STATE.md +83 -0
  55. package/templates/common/Harness/WF.md +117 -237
  56. package/templates/common/Harness/agent-workflow.md +2 -2
  57. package/templates/common/Harness/context-loading.md +3 -3
  58. package/templates/common/Harness/dispatch.md +43 -35
  59. package/templates/common/Harness/scripts/archive-tasks.mjs +239 -0
  60. package/templates/common/{scripts → Harness/scripts}/scan-clean.mjs +28 -1
  61. package/templates/common/{scripts → Harness/scripts}/validate-harness.mjs +909 -699
  62. package/templates/common/Harness/scripts/wf-auto-update-prompt.mjs +258 -0
  63. package/templates/common/{scripts → Harness/scripts}/wf-update-check.mjs +40 -7
  64. package/templates/common/Harness/subagents.md +28 -27
  65. package/templates/common/Harness/tasks/_template/PLAN.md +5 -0
  66. package/templates/common/Harness/tasks/_template/STATE.json +23 -0
  67. package/templates/common/README.md +1 -1
  68. package/templates/common/memory/agent-lessons-patterns.md +9 -8
  69. package/templates/common/memory/routes.md +43 -0
  70. package/templates/common/memory/startup-hints.md +32 -0
  71. package/templates/common/memory/tool-usage-reflections.md +9 -8
  72. package/templates/common/memory/user-corrections-preferences.md +11 -9
  73. package/templates/optional/catalog.json +8 -0
  74. package/templates/optional/skills/browser-e2e/.claude/skills/browser-e2e/SKILL.md +42 -42
  75. package/templates/optional/skills/browser-e2e/.opencode/commands/wf-browser.md +15 -0
  76. package/templates/optional/skills/github-pr-review/.claude/skills/github-pr-review/SKILL.md +40 -40
  77. package/templates/optional/skills/python-backend/.claude/skills/python-backend/SKILL.md +40 -40
  78. package/templates/optional/skills/ts-react-frontend/.claude/skills/ts-react-frontend/SKILL.md +43 -43
  79. package/templates/optional/skills/ui-ux-review/.claude/skills/ui-ux-review/SKILL.md +40 -40
  80. /package/templates/common/{scripts → Harness/scripts}/wf-remove.mjs +0 -0
@@ -4,27 +4,35 @@ Purpose: record durable lessons from acceptance, validation, and debug work with
4
4
 
5
5
  Memory is downstream of evidence. It records reusable patterns, not raw transcripts.
6
6
 
7
+ ## L1/L2/L3 Memory Architecture
8
+
9
+ - **L1 = File/Project Facts**: CLAUDE.md, Harness/README.md, PROGRESS/task capsules. Always loaded when relevant.
10
+ - **L2 = Startup Digest**: `Harness/memory/startup-hints.md`. Lightweight hints loaded at session start. Not a replacement for full router.
11
+ - **L3 = Detailed Durable Memory**: `Harness/memory/*.md` files. Loaded only when scenario matches via `routes.md`.
12
+
7
13
  ## When To Write Memory
8
14
 
9
15
  Write memory when any condition applies:
10
16
 
11
- - the same tool or command pattern fails 3+ times
12
- - the user corrects the same assumption or preference 2+ times
13
- - a review/debug loop reveals a reusable lesson
14
- - WF closeout extracts durable acceptance, validation, or debug knowledge
17
+ - **Explicit user preference**: 用户显式说 remember/next time/never/always/记住/下次/不要再 时,清晰、安全、场景明确可立即写入 L3 (explicit user preference can be written immediately when safe and scoped)
18
+ - **Repeated implicit correction**: 同一假设/模式被纠正 2+ 次 — user corrects the same assumption or preference 2+ times
19
+ - **Tool/command pattern fails 3+ times**: 同类工具/命令失败 3+ 次 — same tool or command pattern fails 3+ times
20
+ - **Review/debug/validation lesson**: 只有可复用、能防回归时才写
21
+ - **WF closeout**: context-master 提取 durable knowledge 后写入
15
22
 
16
23
  ## What To Record
17
24
 
18
- Memory entries should be short, newest-first, and AC-aware when possible:
25
+ Memory entries should be short and AC-aware when possible. Use **compact format** (default no date):
19
26
 
20
27
  ```markdown
21
- ## 2026-07-02 - Playwright login validation needs network trace
22
-
23
- - Context: AC-003 passed visually but failed API payload validation.
24
- - Lesson: For login flows, require CDP/Playwright request assertions in addition to DOM checks.
25
- - Applies to: `ACCEPTANCE_PROTOCOL.md`, `HARNESS_BRIDGE.md`
28
+ - When <scenario>: <rule>. Avoid <over-application>. Signals: <signals>.
26
29
  ```
27
30
 
31
+ Only use date/timestamp headings when:
32
+ - Entry supersedes prior conflicting guidance
33
+ - Time-sensitive context (version, deprecation)
34
+ - Conflict resolution needed
35
+
28
36
  Good memory:
29
37
 
30
38
  - failure mode
@@ -39,38 +47,61 @@ Bad memory:
39
47
  - full logs when a summary is enough
40
48
  - transient speculation
41
49
  - implementation summaries with no reusable lesson
50
+ - task logs, process summaries, one-time emotions
42
51
 
43
- ## Closeout Flow
52
+ ## Memory Candidate Detection
44
53
 
45
- For WF closeout:
54
+ **Explicit trigger phrases** (中英文):
55
+ - 英文: remember, next time, don't, do not, never, always, I prefer, I want you to
56
+ - 中文: 记住, 下次, 以后, 不要再, 总是, 永远不要, 我偏好, 我希望你以后
46
57
 
47
- ```text
48
- context-master
49
- -> extract durable acceptance/debug/validation lessons
50
- -> memory-master
51
- -> deduplicate
52
- -> write concise memory entry
58
+ **Decision flow**:
59
+ ```
60
+ detect candidate -> classify target file -> safety filter -> dedup -> write/update -> return concise summary
53
61
  ```
54
62
 
55
- Memory Master writes to:
63
+ - **Explicit user preference**: can be written immediately when safe and scoped
64
+ - **Repeated implicit correction**: still requires 2+ occurrences
65
+ - **Tool failure**: 3+ same failures required
66
+ - **Review/debug lesson**: only when reusable and regression-preventing
56
67
 
57
- - `Harness/memory/tool-usage-reflections.md`
58
- - `Harness/memory/user-corrections-preferences.md`
59
- - `Harness/memory/agent-lessons-patterns.md`
60
- - `Harness/MEMORY.md` only for routing/index updates
68
+ ## Memory Routing (L3)
61
69
 
62
- ## Scenario Memory Hints
70
+ Routes are defined in `Harness/memory/routes.md`. Not detailed memory, but hit-rules index.
71
+
72
+ **Scenario pack**: intent / files / commands / signals / risk
73
+
74
+ **Scoring**:
75
+ - +4 exact file/path match
76
+ - +3 explicit trigger phrase match
77
+ - +3 command/error signature match
78
+ - +2 workflow/mode match
79
+ - +1 keyword overlap
80
+ - -4 avoid match
81
+
82
+ **Thresholds**:
83
+ - score >= 5: load matching entry/file section
84
+ - score 3-4: load route summary only
85
+ - score < 3: load nothing
86
+
87
+ **Hard triggers** (bypass scoring):
88
+ - Explicit user memory statement → user-corrections-preferences.md
89
+ - Same command fails 3x → tool-usage-reflections.md
90
+ - Review/debug/validation reusable lesson → agent-lessons-patterns.md
91
+ - Modifying hook-related files → load only-wf-auto hook lesson
92
+ - /wf-learn → full learning cycle
63
93
 
64
- Controllers, context-master, or memory-master may load a compact memory hint
65
- when the current task matches a known scenario. Hints must be scenario-specific
66
- and must not dump full memory files into context.
94
+ **Load logging**: always state `memory hints loaded: <id> because <signal>`
67
95
 
68
- Scenario hints are allowed when they help the current task avoid a known failure
69
- mode:
96
+ No embedding; keep stable, explainable, token-efficient.
97
+
98
+ ## Scenario Memory Hints
99
+
100
+ Controllers, context-master, or memory-master may load a compact memory hint when the current task matches a known scenario.
70
101
 
71
102
  | Scenario | Load Or Hint |
72
103
  | --- | --- |
73
- | new session / startup | `Harness/MEMORY.md` index only |
104
+ | new session / startup | `Harness/memory/startup-hints.md` (L2 digest) |
74
105
  | same tool or command error repeats | matching entries from `memory/tool-usage-reflections.md` |
75
106
  | user repeats a correction or preference | matching entries from `memory/user-corrections-preferences.md` |
76
107
  | review/debug/validation failure | matching entries from `memory/agent-lessons-patterns.md` |
@@ -87,6 +118,25 @@ Hint rules:
87
118
  - never inject secrets, credentials, tokens, private data, or raw transcripts
88
119
  - memory-master owns writes; controller/context-master route context
89
120
 
121
+ ## Closeout Flow
122
+
123
+ For WF closeout:
124
+
125
+ ```text
126
+ context-master
127
+ -> extract durable acceptance/debug/validation lessons
128
+ -> memory-master
129
+ -> deduplicate
130
+ -> write concise entry
131
+ ```
132
+
133
+ Memory Master writes to:
134
+
135
+ - `Harness/memory/tool-usage-reflections.md`
136
+ - `Harness/memory/user-corrections-preferences.md`
137
+ - `Harness/memory/agent-lessons-patterns.md`
138
+ - `Harness/MEMORY.md` only for routing/index updates
139
+
90
140
  ## Memory Write Flow
91
141
 
92
142
  Memory write triggers must never append raw logs directly to memory files.
@@ -1,18 +1,43 @@
1
1
  # create-harness-vibe-coding - Harness Router
2
2
 
3
- Purpose: route humans and agents to the smallest useful context. `Harness/README.md` is the primary router.
3
+ Purpose: route humans and agents to the smallest useful context. `CLAUDE.md` is the session entry router; `Harness/README.md` is the primary Harness documentation router.
4
4
 
5
- Default load: `CLAUDE.md`. When the task is complex or a `/wf-*` command is invoked, also load `Harness/MEMORY.md`, this file, and `Harness/PROGRESS.md` when work is active. Do not read the whole `Harness/` tree.
5
+ Default load: `CLAUDE.md`. For workflow commands (`/wf`, `/wf-max`, `/wf-auto`, `/wf-review`, `/wf-learn`, `/wf-readme`, `/wf-remove`, `/wf-browser`, `/wf-auto-spark`), also load `Harness/MEMORY.md` (index only per Memory Preflight), this file, and `Harness/PROGRESS.md` when work is active.
6
+
7
+ `/wf-help` and `/wf-update` are **direct commands**: skip the router, do NOT load `Harness/MEMORY.md`, do NOT enter WF, execute immediately.
8
+
9
+ Do not read the whole `Harness/` tree.
10
+
11
+ ## Resume Routing / Active Task Resume
12
+
13
+ `Harness/PROGRESS.md` is the global active pointer. `Harness/tasks/<task-id>/STATE.json` is the machine-readable resume entry.
14
+
15
+ On session start (new window, reopen, resume):
16
+ 1. If the user says "continue", "resume", "last task", "current task", "status", or the work is not a simple direct task, read `Harness/PROGRESS.md`.
17
+ 2. Find the Active Task, then read `Harness/tasks/<active-task>/STATE.json` first.
18
+ 3. From STATE.json, determine:
19
+ - Current phase — what was in progress
20
+ - activeQuestion — is a user answer needed before proceeding?
21
+ - ready queue — can work be dispatched immediately?
22
+ - running items — need result confirmation?
23
+ - blocked — what's blocking?
24
+ - nextAction — what to do next
25
+ 4. Do NOT discover context by reading all task directories. Use the active pointer.
26
+ 5. Direct simple tasks may skip STATE/PLAN/PROGRESS unless the user says "continue"/"resume".
27
+
28
+ See `Harness/WF-STATE.md` for the full state machine contract and enums.
6
29
 
7
30
  ## Direct Mode (Degradation Path)
8
31
 
9
- When the user does NOT invoke `/wf-*` and the request is simple, single-step, and low-risk commit, push, one-line fix, read file, code question, git log, status check — operate in **direct mode**. Skip the router entirely. Execute the task. Do not load `Harness/MEMORY.md`, `Harness/README.md`, or `Harness/PROGRESS.md`.
32
+ When the user does NOT explicitly invoke `/wf-*`, `$wf-*`, `/skills wf`, `/skills wf-max`, or say `wf` / `wf-max`, the request is handled in **direct mode**. Skip the router entirely. Execute the task. Do not load `Harness/MEMORY.md`, `Harness/README.md`, or `Harness/PROGRESS.md`.
33
+
34
+ Complex work may use direct planning, task capsules, tests, and subagents without entering WF.
10
35
 
11
36
  Escalate to the router (next section) only when:
12
- - User explicitly invokes `/wf-*`, `$wf-*`, `wf mode`, `workflow mode`, or `wk mode`
13
- - Task is multi-step, ambiguous, high-risk, or touches many files
14
- - Task involves subagent orchestration, architecture changes, or cross-cutting concerns
15
- - You've failed the same operation twice and need structured recovery
37
+ - User explicitly invokes `/wf`, `/wf-max`, `$wf`, `$wf-max`, `/skills wf`, `/skills wf-max`, or says `wf` / `wf-max`
38
+ - User invokes another workflow `/wf-*` command (NOT `/wf-help` or `/wf-update` those are direct commands)
39
+
40
+ `/wf-help` and `/wf-update` are direct commands executed immediately without router load.
16
41
 
17
42
  ## 0-1 Flow
18
43
 
@@ -65,7 +90,7 @@ Keywords are retrieval hints, not project facts.
65
90
 
66
91
  Load the matching row only. Add adjacent docs only when the loaded doc directly names them.
67
92
 
68
- Routing priority: **direct mode is the default** when no `/wf-*` command is present and the task is simple. If a request explicitly says `/wf <task>`, `$wf`, `wf mode`, `workflow mode`, or `wk mode`, or is long, difficult, uncertain, repeated-failure, migration, architecture-heavy, browser-visible, or broad multi-agent implementation work, choose the WF row first. Load `Harness/WF.md` directly, then delegate subagent coordination to `subagent-orchestrator`. If the request says `/wf-auto`, `$wf-auto`, `wf auto`, or `auto mode`, choose the WF-AUTO row and load `Harness/WF-AUTO.md`.
93
+ Routing priority: **direct mode is the default** when no explicit WF token is present. Complex tasks may still plan, test, and use subagents without entering WF. If a request contains an explicit WF token (`/wf`, `$wf`, `/skills wf`, `/wf-max`, `$wf-max`, `/skills wf-max`), follow the WF contract. WF mode has three tiers: **WF-Light** (low-risk, explicit `/wf` — planner/test/verifier; no mandatory research/architecture/cross-review/reflector), **WF-Standard** (multi-file or behavior change compact ACs, one implementer, one independent validation/review), **WF-Full** (high-risk, cross-layer, security/data-loss, browser/API, ambiguous architecture, or user asks for full role chain). `/wf-max` has two modes: **WF-Max-Useful** (default fan-out only where write sets or review lenses are meaningfully independent) and **WF-Max-Strict** (explicit strict override preserving unconditional fan-out).
69
94
 
70
95
  | When to Read | Keywords | Load | Output |
71
96
  | --- | --- | --- | --- |
@@ -75,27 +100,28 @@ Routing priority: **direct mode is the default** when no `/wf-*` command is pres
75
100
  | Need MVP/spec | PRD, MVP, scope, requirement, acceptance, non-goal | [research/PRD.md](research/PRD.md), [ACCEPTANCE_PROTOCOL.md](ACCEPTANCE_PROTOCOL.md) | Mini PRD with AC IDs and verifiable acceptance criteria |
76
101
  | Need architecture or boundaries | architecture, boundary, layer, port, adapter, dependency | [architecture.md](architecture.md) | layer map, ports, constraints |
77
102
  | Need WF command help | /wf-help, wf help, command list, list wf commands | `.claude/commands/wf-help.md` | direct command table; no skill invocation |
78
- | Need WF mode | wf, /wf, $wf, wf mode, workflow mode, wk mode, long task, difficult, stuck, repeated failure | [WF.md](WF.md), [PROGRESS.md](PROGRESS.md), the current task `tasks/<id>/PROGRESS.md` and `tasks/<id>/PLAN.md` | complete role chain, heartbeat, recovery loop; explicit WF/WK loads subagent docs immediately |
79
- | Need perpetual auto-optimization | /wf-auto, $wf-auto, wf auto, auto mode, never stop, self-improve, continuous optimize | [WF-AUTO.md](WF-AUTO.md), [WF-AUTO-ANGLES.md](WF-AUTO-ANGLES.md), [subagents.md](subagents.md), [dispatch.md](dispatch.md) | perpetual loop, adaptive probe selection, dynamic risk obligations, spark search, intent checkpoint, evidence ledger; CEO never writes code |
80
- | Need perpetual inspiration mode | /wf-auto-spark, $wf-auto-spark, wf auto spark, spark mode, external inspiration, discover mode, never stop | [WF-AUTO-SPARK.md](WF-AUTO-SPARK.md), [WF-AUTO.md](WF-AUTO.md), [subagents.md](subagents.md), [dispatch.md](dispatch.md) | roadmap-anchored: North Star + milestones; external spark search; <=50% deviation guard; never auto-stops |
81
- | Need WF-MAX mode | /wf-max, $wf-max, wf max, maximum parallelism, CEO, Manager, Worker, fan-out | [WF-MAX.md](WF-MAX.md), [subagents.md](subagents.md), [dispatch.md](dispatch.md) | WF strict superset: complete role chain plus maximum fan-out, current runtime subagents first, cross-CLI overflow when available |
103
+ | Need WF mode (explicit only) | /wf, $wf, /skills wf (explicit user token only) | [WF.md](WF.md), [WF-KERNEL.md](WF-KERNEL.md), [PROGRESS.md](PROGRESS.md), the current task `tasks/<id>/PROGRESS.md` and `tasks/<id>/PLAN.md` | dynamic ready-queue orchestration, tier-gated acceptance |
104
+ | Need perpetual auto-optimization | /wf-auto, $wf-auto, /skills wf-auto (explicit user token only) | [WF-AUTO.md](WF-AUTO.md), [WF-AUTO-ANGLES.md](WF-AUTO-ANGLES.md), [subagents.md](subagents.md), [dispatch.md](dispatch.md) | perpetual loop, adaptive probe selection, dynamic risk obligations, spark search, intent checkpoint, evidence ledger; CEO never writes code |
105
+ | Need perpetual inspiration mode | /wf-auto-spark, $wf-auto-spark, /skills wf-auto-spark (explicit user token only) | [WF-AUTO-SPARK.md](WF-AUTO-SPARK.md), [WF-AUTO.md](WF-AUTO.md), [subagents.md](subagents.md), [dispatch.md](dispatch.md) | roadmap-anchored: North Star + milestones; external spark search; <=50% deviation guard; never auto-stops |
106
+ | Need WF-MAX mode (explicit only) | /wf-max, $wf-max, /skills wf-max (explicit user token only) | [WF-MAX.md](WF-MAX.md), [WF-KERNEL.md](WF-KERNEL.md), [subagents.md](subagents.md), [dispatch.md](dispatch.md) | /wf kernel + max safe fan-out (WF-Max-Useful default, WF-Max-Strict override) |
82
107
  | Need peer review | /wf-review, $wf-review, peer review, second opinion, cross-check, stuck | `.claude/skills/wf-review/SKILL.md`, `.agents/skills/wf-review/SKILL.md`, `Harness/README.md` | cross-model multi-dimension review with severity classification |
83
108
  | Adding harness to existing project | existing project, onboarding, migrate, bootstrap, preserve, conflict | [extension.md](extension.md), [PROGRESS.md](PROGRESS.md), root `README.md` and package/CI files | discovered project facts, preserved config, manual registration plan |
84
109
  | README optimization | README, docs, quickstart, install docs, architecture diagram, command table, documentation polish | root `README.md`, `.claude/skills/wf-readme/SKILL.md`, [PROGRESS.md](PROGRESS.md), [architecture.md](architecture.md) as needed | approved README mode, preserved sections, proposed diff plan |
85
110
  | Need implementation plan | plan, task, write set, verify, milestone, progress | [PROGRESS.md](PROGRESS.md), the current task `tasks/<id>/PROGRESS.md` and `tasks/<id>/PLAN.md`, [agent-workflow.md](agent-workflow.md), [ACCEPTANCE_PROTOCOL.md](ACCEPTANCE_PROTOCOL.md) | tasks, AC IDs, write set, verification commands |
111
+ | Browser E2E testing or automation | /wf-browser, browser, e2e, web automation, form fill, screenshot verify, page test, browser test, Playwright AI, Browser Use, CDP | browser-e2e workflow, [HARNESS_BRIDGE.md](HARNESS_BRIDGE.md), wf-browser skill, Browser Use skill | UI/API contract, CLI commands, screenshots, traces, validation matrix |
86
112
  | Optional workflow installed | workflow, optional, ui-ux-review, github-pr-review, python-backend, ts-react-frontend | matching `workflows/*.md` (if installed), [extension.md](extension.md) | workflow-specific evidence, commands, fallback path |
87
113
  | Need durable memory or reflection | memory, remember, preference, correction, tool failure, lesson, reflection, scenario memory | [MEMORY.md](MEMORY.md), [MEMORY_PROTOCOL.md](MEMORY_PROTOCOL.md), `Harness/memory/tool-usage-reflections.md`, `Harness/memory/user-corrections-preferences.md`, `Harness/memory/agent-lessons-patterns.md` | concise newest-first memory entry, scenario memory hint, or no-op rationale |
88
114
  | Need subagents | subagent, role pack, context, inject, return format, orchestrator, isolation | [subagents.md](subagents.md), [context-loading.md](context-loading.md), [dispatch.md](dispatch.md), [AGENT_ISOLATION.md](AGENT_ISOLATION.md) | controller plan, role-specific context pack, isolation-aware dispatch pack |
89
115
  | Need feature work | feature, implementation, TDD, test, review, closeout | [tasks/_template/PLAN.md](tasks/_template/PLAN.md), [agent-workflow.md](agent-workflow.md), [TDD-GUIDE.md](TDD-GUIDE.md), [ACCEPTANCE_PROTOCOL.md](ACCEPTANCE_PROTOCOL.md) | task plan, AC-linked RED tests, implementation loop |
90
116
  | Review or release check | review, release, finding, risk, evidence, verification | [agent-workflow.md](agent-workflow.md), current feature doc | findings, verification evidence |
91
117
  | Harness readiness check | validate, readiness, placeholder, missing file, release gate | `Harness/scripts/validate-harness.mjs`, `Harness/scripts/validate-harness.mjs --strict` | structural install check; strict bootstrap/release placeholder check |
92
- | Need harness update | /wf-update, $wf-update, update, check for updates, harness version | `.claude/skills/wf-update/SKILL.md`, `.agents/skills/wf-update/SKILL.md`, `Harness/.harness-version`, `Harness/scripts/wf-update-check.mjs` | script-driven comparison, SAFE/CONFLICT/PRESERVE classification, user decides conflicts |
118
+ | Need harness update | /wf-update, $wf-update, update, check for updates, harness version | `.claude/commands/wf-update.md`, `.opencode/commands/wf-update.md`, `Harness/.harness-version`, `Harness/scripts/wf-update-check.mjs`; Codex fallback: `.claude/skills/wf-update/SKILL.md` | script-driven comparison, SAFE/CONFLICT/PRESERVE classification, user decides conflicts |
93
119
  | Need harness removal | /wf-remove, $wf-remove, wf remove, remove harness, uninstall harness | `.claude/skills/wf-remove/SKILL.md`, `.agents/skills/wf-remove/SKILL.md`, `Harness/scripts/wf-remove.mjs` | safe removal plan: auto-remove SAFE, confirm MODIFIED, never touch USER DATA |
94
120
 
95
121
  ## Gates
96
122
 
97
123
  - Move phases in order unless the user asks for a fast lane.
98
- - Use `/wf <task>` in Claude Code, `$wf` in Codex, `/wf-max [task]` or `$wf-max`, `wf mode`, `workflow mode`, or `wk mode` when a task is long, difficult, uncertain, multi-file, or repeatedly failing.
124
+ - Use `/wf <task>` in Claude Code or `$wf` in Codex, or `/wf-max [task]` / `$wf-max` for maximum-parallelism mode. WF mode is explicit only. WF-Light for low-risk, WF-Standard for multi-file, WF-Full for high-risk/cross-layer. `/wf-max` defaults to useful-fanout (WF-Max-Useful); use explicit `--strict` or "strict wf-max" for unconditional fan-out (WF-Max-Strict).
99
125
  - Use `/wf-auto` for perpetual self-directed optimization. It selects probes from project evidence and stops only after dynamic risk obligations and two different empty confirmation passes are recorded.
100
126
  - **WF-MAX Role Contract**: Three-layer architecture: global mode (`wf-max`), agent role (`ceo|manager|worker|verifier|reviewer|reflector`), dispatch permission (`writeSet`, `forbidden`, `verification`). CEO never writes source code. Workers edit only dispatch.writeSet. Compliance is checked through dispatch packets, independent review, validation evidence, and task capsules. See `CLAUDE.md#1a`.
101
127
  - **WF-REVIEW Anti-Self-Review**: Must invoke the OTHER CLI (Codex -> Claude, or Claude -> Codex). Same-model simulation is forbidden.
@@ -122,35 +148,37 @@ Routing priority: **direct mode is the default** when no `/wf-*` command is pres
122
148
  | Category | Files |
123
149
  |----------|-------|
124
150
  | **Router + Index** | `README.md`, `MEMORY.md`, `PROGRESS.md` |
125
- | **Task Capsule** | `tasks/<id>/PROGRESS.md`, `tasks/<id>/PLAN.md`, `tasks/_template/` |
126
- | **Workflows** | `WF.md`, `WF-MAX.md`, `WF-AUTO.md`, `WF-AUTO-SPARK.md` |
151
+ | **Task Capsule** | `tasks/<id>/PROGRESS.md`, `tasks/<id>/PLAN.md`, `tasks/<id>/STATE.json`, `tasks/_template/` |
152
+ | **Workflows** | `WF.md`, `WF-KERNEL.md`, `WF-STATE.md`, `WF-MAX.md`, `WF-AUTO.md`, `WF-AUTO-SPARK.md` |
127
153
  | **Protocols** | `ACCEPTANCE_PROTOCOL.md`, `AGENT_ISOLATION.md`, `HARNESS_BRIDGE.md`, `DEBUG_PROTOCOL.md`, `MEMORY_PROTOCOL.md` |
128
- | **Guides** | `ECC-GUIDE.md`, `TDD-GUIDE.md`, `lifecycle.md`, `architecture.md` |
129
- | **Orchestration** | `subagents.md`, `context-loading.md`, `dispatch.md`, `agent-workflow.md`, `extension.md` |
154
+ | **Guides** | `ECC-GUIDE.md`, `TDD-GUIDE.md`, `lifecycle.md`, `architecture.md`, `TASK_ARCHIVE.md` |
155
+ | **Orchestration** | `subagents.md`, `context-loading.md`, `dispatch.md`, `agent-workflow.md`, `extension.md`, `WF-STATE.md` |
130
156
  | **Research** | `research/README.md`, `research/PRD.md`, `research/research-results.md` |
131
157
  | **Acceptance Templates** | `templates/PRD.template.md`, `templates/ACCEPTANCE.template.md`, `templates/UI_CONTRACT.template.md`, `templates/API_CONTRACT.template.md`, `templates/TEST_PLAN.template.md`, `templates/PLAYWRIGHT_SPEC.template.ts`, `templates/VALIDATION_REPORT.template.md` |
132
158
  | **Memory** | `memory/tool-usage-reflections.md`, `memory/user-corrections-preferences.md`, `memory/agent-lessons-patterns.md` |
133
- | **Scripts** | `scripts/validate-harness.mjs`, `scripts/wf-update-check.mjs`, `scripts/wf-remove.mjs` |
159
+ | **Scripts** | `scripts/validate-harness.mjs`, `scripts/wf-update-check.mjs`, `scripts/wf-remove.mjs`, `scripts/archive-tasks.mjs` |
134
160
  | **Runtime** | `.harness-version` |
135
161
  | **Agents + Skills** | `.claude/agents/*`, `.claude/skills/*`, `.agents/skills/*` |
136
- | **Direct Commands** | `.claude/commands/wf-help.md` |
162
+ | **Direct Commands** | `.claude/commands/wf-help.md`, `.claude/commands/wf-update.md`, `.opencode/commands/wf-help.md`, `.opencode/commands/wf-update.md` |
137
163
 
138
164
  ## Direct Commands
139
165
 
140
166
  | Command | Purpose |
141
167
  |---|---|
142
168
  | `/wf-help` | Directly returns a table of all Harness WF commands, usage, and purpose. It does not invoke a skill or start a workflow. |
169
+ | `/wf-update` | Script-driven harness update: fetch + compare + apply. Direct command for Claude Code and OpenCode; skill path available for Codex compatibility. |
143
170
 
144
171
  ## Skill Commands
145
172
 
146
173
  | Claude Code | Codex | Purpose |
147
174
  |---|---|---|
148
- | `/wf <task>` | `$wf <task>` | Complete role chain: plan, research/docs, architecture, test, implement, validation, cross-review, reflector, acceptance |
149
- | `/wf-max [task]` | `$wf-max [task]` | WF strict superset with maximum parallelism: CEO -> Manager -> Worker, cross-CLI overflow |
175
+ | `/wf <task>` | `$wf <task>` | Tiered WF: WF-Light (low-risk, planner/test/verifier), WF-Standard (multi-file, compact ACs), WF-Full (high-risk/cross-layer, full role chain) |
176
+ | `/wf-max [task]` | `$wf-max [task]` | WF-Max-Useful default (fan-out only where independent), WF-Max-Strict override (unconditional fan-out) |
150
177
  | `/wf-auto` | `$wf-auto` | Perpetual adaptive auto-optimization: dynamic probes, risk obligations, evidence-based exhaustion |
151
178
  | `/wf-auto-spark` | `$wf-auto-spark` | Perpetual inspiration: spark search, roadmap-anchored, <=50% deviation guard, never auto-stops |
152
179
  | `/wf-review [focus]` | `$wf-review [focus]` | Cross-model peer review via Codex <-> Claude |
153
180
  | `/wf-learn` | `$wf-learn` | Force learning cycle: context-master -> memory-master |
181
+ | `/wf-browser [task]` | `$wf-browser [task]` | AI-driven browser automation for E2E testing |
154
182
  | `/wf-readme [task]` | `$wf-readme [task]` | README preservation, merge, and documentation improvement workflow |
155
183
  | `/wf-update` | `$wf-update` | Script-driven harness update: fetch + compare + apply |
156
184
  | `/wf-remove` | `$wf-remove` | Safe harness removal: auto-delete SAFE, confirm MODIFIED, preserve USER DATA |