create-harness-vibe-coding 0.8.13 → 0.8.16

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 (115) hide show
  1. package/CHANGELOG.md +165 -0
  2. package/README-CN.md +41 -9
  3. package/README.md +39 -9
  4. package/package.json +2 -1
  5. package/src/generator.js +601 -472
  6. package/src/index.js +4 -4
  7. package/templates/common/.claude/agents/architect-manager.md +1 -0
  8. package/templates/common/.claude/agents/architect.md +2 -1
  9. package/templates/common/.claude/agents/codebase-explorer.md +1 -0
  10. package/templates/common/.claude/agents/context-master.md +2 -1
  11. package/templates/common/.claude/agents/debugger.md +1 -0
  12. package/templates/common/.claude/agents/docs-researcher.md +2 -1
  13. package/templates/common/.claude/agents/explore-manager.md +1 -0
  14. package/templates/common/.claude/agents/implement-manager.md +1 -0
  15. package/templates/common/.claude/agents/implementer.md +1 -0
  16. package/templates/common/.claude/agents/memory-master.md +2 -1
  17. package/templates/common/.claude/agents/planner.md +3 -2
  18. package/templates/common/.claude/agents/reflector.md +1 -0
  19. package/templates/common/.claude/agents/researcher.md +1 -0
  20. package/templates/common/.claude/agents/review-manager.md +1 -0
  21. package/templates/common/.claude/agents/reviewer.md +2 -1
  22. package/templates/common/.claude/agents/task-scribe.md +1 -0
  23. package/templates/common/.claude/agents/tdd-guide.md +5 -4
  24. package/templates/common/.claude/agents/test-writer.md +6 -5
  25. package/templates/common/.claude/agents/verifier.md +1 -0
  26. package/templates/common/.claude/commands/wf-help.md +1 -0
  27. package/templates/common/.claude/commands/wf-update.md +68 -10
  28. package/templates/common/.claude/rules/ecc/common.md +6 -5
  29. package/templates/common/.claude/skills/subagent-orchestrator/SKILL.md +12 -6
  30. package/templates/common/.claude/skills/tdd/SKILL.md +5 -5
  31. package/templates/common/.claude/skills/wf/SKILL.md +13 -5
  32. package/templates/common/.claude/skills/wf-agents-docs/SKILL.md +119 -0
  33. package/templates/common/.claude/skills/wf-auto/SKILL.md +27 -7
  34. package/templates/common/.claude/skills/wf-auto-spark/SKILL.md +12 -5
  35. package/templates/common/.claude/skills/wf-learn/SKILL.md +6 -0
  36. package/templates/common/.claude/skills/wf-max/SKILL.md +22 -7
  37. package/templates/common/.claude/skills/wf-readme/SKILL.md +8 -2
  38. package/templates/common/.claude/skills/wf-remove/SKILL.md +6 -0
  39. package/templates/common/.claude/skills/wf-review/SKILL.md +10 -3
  40. package/templates/common/.claude/skills/wf-update/SKILL.md +41 -4
  41. package/templates/common/.harness-version +290 -128
  42. package/templates/common/.opencode/agents/architect-manager.md +1 -0
  43. package/templates/common/.opencode/agents/architect.md +2 -1
  44. package/templates/common/.opencode/agents/codebase-explorer.md +1 -0
  45. package/templates/common/.opencode/agents/context-master.md +2 -1
  46. package/templates/common/.opencode/agents/debugger.md +1 -0
  47. package/templates/common/.opencode/agents/docs-researcher.md +2 -1
  48. package/templates/common/.opencode/agents/explore-manager.md +1 -0
  49. package/templates/common/.opencode/agents/implement-manager.md +1 -0
  50. package/templates/common/.opencode/agents/implementer.md +1 -0
  51. package/templates/common/.opencode/agents/memory-master.md +2 -1
  52. package/templates/common/.opencode/agents/planner.md +3 -2
  53. package/templates/common/.opencode/agents/reflector.md +1 -0
  54. package/templates/common/.opencode/agents/researcher.md +1 -0
  55. package/templates/common/.opencode/agents/review-manager.md +1 -0
  56. package/templates/common/.opencode/agents/reviewer.md +2 -1
  57. package/templates/common/.opencode/agents/task-scribe.md +1 -0
  58. package/templates/common/.opencode/agents/tdd-guide.md +5 -4
  59. package/templates/common/.opencode/agents/test-writer.md +6 -5
  60. package/templates/common/.opencode/agents/verifier.md +1 -0
  61. package/templates/common/.opencode/commands/wf-auto-spark.md +3 -2
  62. package/templates/common/.opencode/commands/wf-auto.md +3 -2
  63. package/templates/common/.opencode/commands/wf-help.md +1 -0
  64. package/templates/common/.opencode/commands/wf-learn.md +3 -2
  65. package/templates/common/.opencode/commands/wf-max.md +3 -2
  66. package/templates/common/.opencode/commands/wf-readme.md +3 -2
  67. package/templates/common/.opencode/commands/wf-remove.md +3 -2
  68. package/templates/common/.opencode/commands/wf-review.md +3 -2
  69. package/templates/common/.opencode/commands/wf-update.md +68 -10
  70. package/templates/common/.opencode/commands/wf.md +3 -2
  71. package/templates/common/CLAUDE.md +14 -12
  72. package/templates/common/Harness/MEMORY.md +21 -18
  73. package/templates/common/Harness/README.md +41 -39
  74. package/templates/common/Harness/ownership.manifest.json +815 -0
  75. package/templates/common/Harness/{architecture.md → project/architecture.md} +1 -1
  76. package/templates/common/Harness/research/README.md +3 -3
  77. package/templates/common/Harness/scripts/context-budget.mjs +95 -0
  78. package/templates/common/Harness/scripts/l2-cache-telemetry.mjs +703 -0
  79. package/templates/common/Harness/scripts/scan-clean.mjs +13 -3
  80. package/templates/common/Harness/scripts/validate-harness.mjs +332 -175
  81. package/templates/common/Harness/scripts/wf-remove.mjs +60 -34
  82. package/templates/common/Harness/scripts/wf-update-check.mjs +355 -45
  83. package/templates/common/Harness/settings.json +43 -0
  84. package/templates/common/Harness/{ECC-GUIDE.md → specs/guides/ECC-GUIDE.md} +4 -4
  85. package/templates/common/Harness/{SETUP.md → specs/guides/SETUP.md} +32 -35
  86. package/templates/common/Harness/{extension.md → specs/guides/extension.md} +3 -3
  87. package/templates/common/Harness/{lifecycle.md → specs/guides/lifecycle.md} +2 -2
  88. package/templates/common/Harness/{agent-workflow.md → specs/runtime/agent-workflow.md} +6 -6
  89. package/templates/common/Harness/{context-loading.md → specs/runtime/context-loading.md} +85 -21
  90. package/templates/common/Harness/{dispatch.md → specs/runtime/dispatch.md} +3 -2
  91. package/templates/common/Harness/{subagents.md → specs/runtime/subagents.md} +10 -5
  92. package/templates/common/Harness/{WF-AUTO-SPARK.md → specs/workflows/WF-AUTO-SPARK.md} +2 -2
  93. package/templates/common/Harness/{WF-AUTO.md → specs/workflows/WF-AUTO.md} +6 -1
  94. package/templates/common/Harness/{WF-KERNEL.md → specs/workflows/WF-KERNEL.md} +10 -0
  95. package/templates/common/Harness/{WF-MAX.md → specs/workflows/WF-MAX.md} +10 -5
  96. package/templates/common/Harness/{WF-STATE.md → specs/workflows/WF-STATE.md} +5 -0
  97. package/templates/common/Harness/{WF.md → specs/workflows/WF.md} +12 -1
  98. package/templates/common/README.md +8 -6
  99. package/templates/common/memory/startup-hints.md +19 -17
  100. package/templates/optional/skills/browser-e2e/.claude/skills/browser-e2e/SKILL.md +1 -1
  101. package/templates/optional/skills/browser-e2e/.claude/skills/wf-browser/SKILL.md +7 -0
  102. package/templates/optional/skills/browser-e2e/.opencode/commands/wf-browser.md +3 -2
  103. package/templates/optional/skills/browser-e2e/Harness/workflows/browser-e2e.md +4 -4
  104. package/templates/optional/skills/github-pr-review/.claude/skills/github-pr-review/SKILL.md +1 -1
  105. package/templates/optional/skills/python-backend/.claude/skills/python-backend/SKILL.md +1 -1
  106. package/templates/optional/skills/ts-react-frontend/.claude/skills/ts-react-frontend/SKILL.md +1 -1
  107. package/templates/optional/skills/ui-ux-review/.claude/skills/ui-ux-review/SKILL.md +1 -1
  108. /package/templates/common/Harness/{ACCEPTANCE_PROTOCOL.md → specs/protocols/ACCEPTANCE_PROTOCOL.md} +0 -0
  109. /package/templates/common/Harness/{AGENT_ISOLATION.md → specs/protocols/AGENT_ISOLATION.md} +0 -0
  110. /package/templates/common/Harness/{DEBUG_PROTOCOL.md → specs/protocols/DEBUG_PROTOCOL.md} +0 -0
  111. /package/templates/common/Harness/{HARNESS_BRIDGE.md → specs/protocols/HARNESS_BRIDGE.md} +0 -0
  112. /package/templates/common/Harness/{MEMORY_PROTOCOL.md → specs/protocols/MEMORY_PROTOCOL.md} +0 -0
  113. /package/templates/common/Harness/{TASK_ARCHIVE.md → specs/protocols/TASK_ARCHIVE.md} +0 -0
  114. /package/templates/common/Harness/{TDD-GUIDE.md → specs/protocols/TDD-GUIDE.md} +0 -0
  115. /package/templates/common/Harness/{WF-AUTO-ANGLES.md → specs/workflows/WF-AUTO-ANGLES.md} +0 -0
@@ -18,7 +18,7 @@ WF-MAX is **explicit only**. Enter ONLY when the user explicitly types `/wf-max`
18
18
 
19
19
  ## Fan-Out Modes
20
20
 
21
- **WF-Max-Useful** (default): fan-out only where writeSets or review lenses are meaningfully independent. Overhead > 0.30 degrades a wave to flat role pass. CEO uses D-GATE but Manager/Worker fan-out is gated by actual independence.
21
+ **WF-Max-Useful** (default): fan-out only where writeSets or review lenses are meaningfully independent. Overhead > 0.30 degrades a wave to flat role pass. This does not authorize CEO source edits: source implementation still goes through an implementer/Worker role, or the run records an honest downgrade before editing.
22
22
 
23
23
  **WF-Max-Strict** (explicit `--strict`, `strict wf-max`, or `strict mode`): unconditional fan-out per span formula. Every file gets a Worker.
24
24
 
@@ -26,6 +26,11 @@ WF-MAX is **explicit only**. Enter ONLY when the user explicitly types `/wf-max`
26
26
 
27
27
  CEO reads, plans, dispatches, synthesizes, and writes task state only.
28
28
  - **CEO never writes production source code.** All source edits are delegated to Workers.
29
+ - Any new task capsule uses `task-<verb>-<noun>[-detail]` under
30
+ `Harness/tasks/<task-id>/`; never use bare `fix-*` task ids.
31
+ - When updating `Harness/PROGRESS.md`, preserve required headings such as
32
+ `## Active Task`, `## Task Index`, and `## Cross-Task Decisions`; append or
33
+ update rows instead of replacing the file skeleton.
29
34
  - CEO spawns task-scribe (haiku) by default to maintain dispatch ledger, heartbeat, and evidence pointers; if unavailable, CEO records the degradation and writes only the smallest durable checkpoint.
30
35
  - CEO may spawn codebase-explorer(s) (haiku) for scoped source discovery.
31
36
 
@@ -45,7 +50,7 @@ WF-MAX Workers MUST execute as **independent agent contexts** — never as in-pr
45
50
 
46
51
  When delegating source edits to a Worker, try channels in order; descend on failure; when all independent channels are unavailable, stop honestly and ask the user — do NOT fall back to an in-process MCP tool:
47
52
 
48
- 0. **Probe first** — before dispatching any Worker, run `node Harness/scripts/probe-worker-channels.mjs` and read the live matrix (`Harness/tasks/auto/CHANNEL-MATRIX.md`). Degrade based on facts, not assumptions. Start the chain at the highest-priority channel the probe reports `available`.
53
+ 0. **Use proven channels only** — prefer the current runtime's native subagent channel when it has already returned successfully in this session. If a peer CLI is needed, follow `.claude/skills/wf-agents-docs/SKILL.md`, keep output on stdout, and return an Evidence-Packet instead of scratch files.
49
54
  1. native subagent (preferred — independent context, bounded writeSet)
50
55
  2. `claude -p` peer CLI (independent process)
51
56
  3. `codex exec` peer CLI (independent process)
@@ -57,11 +62,11 @@ When delegating source edits to a Worker, try channels in order; descend on fail
57
62
 
58
63
  ### Timeout & Retry
59
64
 
60
- Every channel probe is bounded to ≤15s via `Promise.race` (see `probe-worker-channels.mjs`). A Worker dispatch that returns `unavailable-timeout` or `unavailable-error` (transient) is retried **once**; a second failure descends to the next channel in the chain. WF-MAX MUST NEVER hang on an unresponsive channel (historical failure: a 300s Codex read-only query hang, `tasks/task-framework-metrics-and-entry-contract/PLAN.md`). Bounded probes + single retry + honest descent replace silent hangs.
65
+ Every Worker dispatch or peer-CLI call must be bounded by the controller's command timeout. A Worker dispatch that returns `unavailable-timeout` or `unavailable-error` (transient) is retried **once**; a second failure descends to the next channel in the chain. WF-MAX MUST NEVER hang on an unresponsive channel (historical failure: a 300s Codex read-only query hang, `tasks/task-framework-metrics-and-entry-contract/PLAN.md`). Bounded calls + single retry + honest descent replace silent hangs.
61
66
 
62
- ### Probe the current environment
67
+ ### Capability Evidence
63
68
 
64
- Run `node Harness/scripts/probe-worker-channels.mjs` to get the live availability + independence matrix (see `tasks/auto/CHANNEL-MATRIX.md`). Degrade based on facts, not assumptions.
69
+ Record the channel actually used, command/tool form, timeout, exit status, and a <=250 token Evidence-Packet in the task capsule. Do not create ad hoc probe scripts or write peer-CLI output to `%TEMP%`; persistent evidence belongs only under the current task's `evidence/` directory when it is intentionally part of the task record.
65
70
 
66
71
  ## Parallelism Priority
67
72
 
@@ -11,6 +11,11 @@ Purpose: persist resumable workflow state across compaction, new Claude Code win
11
11
  | `Harness/tasks/<task-id>/PROGRESS.md` | Human-readable summary |
12
12
  | `Harness/tasks/<task-id>/PLAN.md` | Plan, decisions, scope context |
13
13
 
14
+ Task id convention: new task capsules MUST use `task-<verb>-<noun>[-detail]`
15
+ (kebab-case, 2-5 words after the prefix), for example
16
+ `task-fix-login-flow`. Do not create bare task names such as
17
+ `fix-login-flow`.
18
+
14
19
  ## Enums
15
20
 
16
21
  ### phase
@@ -17,6 +17,10 @@ All WF variants (`/wf`, `/wf-max`, `/wf-auto`, `/wf-auto-spark`, `/wf-review`, `
17
17
 
18
18
  Resumable state follows [WF-STATE.md](WF-STATE.md): STATE.json is the machine-readable resume truth; the ready queue is persisted there across sessions.
19
19
 
20
+ New task capsules MUST use task ids matching `task-<verb>-<noun>[-detail]`
21
+ and live under `Harness/tasks/<task-id>/`; never create bare task directories
22
+ like `fix-login`.
23
+
20
24
  This file defines the `/wf` user contract, tiers, and the standard orchestration loop.
21
25
 
22
26
  ## Trigger
@@ -34,6 +38,13 @@ These are NOT WF triggers:
34
38
  2. Load `Harness/memory/*` only when `MEMORY_PROTOCOL.md` scenario hints match.
35
39
  3. Record `Memory preflight: done` and `Memory hints: none | <file/path + reason>`.
36
40
 
41
+ ## Cache Discipline
42
+
43
+ Follow `Harness/specs/runtime/context-loading.md#Cache-First Context Contract`: keep the
44
+ listed router/workflow loads in stable order, load only routed skills/tools, and
45
+ append task state, current runtime facts, and latest tool output after the
46
+ stable docs. Do not bulk-load skill bodies, tool schemas, or `Harness/`.
47
+
37
48
  ## Standard Orchestration Loop
38
49
 
39
50
  The `/wf` kernel follows a dependency-driven ready-queue, NOT a fixed serial phase list.
@@ -126,7 +137,7 @@ Second wave — after synthesis:
126
137
 
127
138
  ## Browser and API Evidence
128
139
 
129
- See [HARNESS_BRIDGE.md](HARNESS_BRIDGE.md) and [WF-KERNEL.md](WF-KERNEL.md) Task Type Routing for UI/browser and API/backend task types.
140
+ See [HARNESS_BRIDGE.md](../protocols/HARNESS_BRIDGE.md) and [WF-KERNEL.md](WF-KERNEL.md) Task Type Routing for UI/browser and API/backend task types.
130
141
 
131
142
  Agents live under `.claude/agents/` and `.opencode/agents/`. Task state lives under `Harness/tasks/<task-id>/`.
132
143
 
@@ -26,21 +26,23 @@ Replace the examples with the real commands discovered from this project. If a c
26
26
 
27
27
  - Keep branch, commit, pull request, CI, and release conventions in this README.
28
28
  - Do not place build scripts, git policy, or project maintenance instructions in `CLAUDE.md`.
29
- - Keep code architecture notes in `Harness/architecture.md` or feature docs.
29
+ - Keep code architecture notes in `Harness/project/architecture.md` or feature docs.
30
30
  - For README improvements, use `.claude/skills/wf-readme/SKILL.md`; preserve public docs unless a rewrite is approved.
31
31
 
32
32
  ## Harness
33
33
 
34
34
  The agentic engineering harness lives in `Harness/`.
35
35
 
36
- - Follow `Harness/SETUP.md` before normal work while it exists.
37
- - Start at `Harness/README.md`.
38
- - Load memory and resource registrations from `Harness/MEMORY.md`.
36
+ - Normal agent sessions start from `CLAUDE.md`.
37
+ - Use `Harness/specs/guides/SETUP.md` only for install/bootstrap guidance, migration, upgrade decisions, or explicit setup requests.
38
+ - Use `Harness/README.md` as the Harness workflow router when a routed task needs it.
39
+ - Load memory and resource registrations from `Harness/MEMORY.md` only when routed.
39
40
  - Track active work in `Harness/PROGRESS.md` and `Harness/tasks/<task-id>/PROGRESS.md`.
40
- - Use `Harness/WF.md` only when the user explicitly invokes a WF command such as `/wf` or `/wf-max`; complex work may still use direct planning, tests, and subagents without entering WF.
41
+ - Use `/wf-update` or `$wf-update` for Harness upgrades; the agent should report version, changed files, validation results, and release highlights from update metadata.
42
+ - Use `Harness/specs/workflows/WF.md` only when the user explicitly invokes a WF command such as `/wf` or `/wf-max`; complex work may still use direct planning, tests, and subagents without entering WF.
41
43
  - Claude Code: invoke the `wf` skill with `/wf`.
42
44
  - Codex: invoke the `wf` skill with `$wf` or `/skills`.
43
- - Use `Harness/subagents.md` when coordinating multiple agents.
45
+ - Use `Harness/specs/runtime/subagents.md` when coordinating multiple agents.
44
46
 
45
47
  Tool discovery files stay at the repository root:
46
48
 
@@ -1,32 +1,34 @@
1
1
  # Startup Hints (L2 Memory Digest)
2
2
 
3
- > L2 = 启动极简 memory digest。每次 Harness 会话启动可读此文件,但不要加载完整 Harness/MEMORY.md Harness/README.md。
3
+ > L2 = lightweight startup memory digest. New Harness sessions may read this
4
+ > file after `CLAUDE.md`, but must not load full `Harness/MEMORY.md`,
5
+ > `Harness/README.md`, or `Harness/PROGRESS.md` during thin startup.
4
6
 
5
7
  ## Core Principles
6
8
 
7
- - Memory 是短场景规则,不是 task log
8
- - 时间戳默认不要写;只有 superseded / conflict / time-sensitive 才写。
9
- - Broad runtime hooks 禁止;只有 `/wf-auto` bounded tick hook 例外。
10
- - Direct mode 不加载完整 Harness router,但 startup-hints 是允许的轻量启动提示。
11
- - 详细 memory 仍按 `MEMORY_PROTOCOL.md` 场景命中后再读。
9
+ - Memory is short scenario guidance, not a task log.
10
+ - Do not write timestamps by default; write only durable, reusable guidance.
11
+ - Broad runtime hooks are forbidden. The only Harness exception is the bounded `/wf-auto` tick hook.
12
+ - Direct mode must not load the full Harness router. `startup-hints.md` is the lightweight startup allowance.
13
+ - Detailed memory still loads only when routed through `MEMORY_PROTOCOL.md`.
12
14
 
13
15
  ## Memory Candidate Detection
14
16
 
15
- 用户说以下触发词时,识别为 memory candidate:
17
+ Treat these as memory candidates:
16
18
 
17
- **英文**: remember, next time, don't, do not, never, always, I prefer, I want you to
18
- **中文**: 记住, 下次, 以后, 不要再, 总是, 永远不要, 我偏好, 我希望你以后
19
+ - English: remember, next time, don't, do not, never, always, I prefer, I want you to
20
+ - Chinese: 记住, 下次, 以后, 不要再, 总是, 永远不要, 我偏好, 我希望你以后
19
21
 
20
22
  ## When to Write Memory
21
23
 
22
- - **Explicit user preference**: 清晰、安全、场景明确时,可立即写入 L3,不必等 `/wf-learn`。
23
- - **Repeated implicit correction**: 同一假设/模式被纠正 2+ 次。
24
- - **Tool/command failure**: 同类工具/命令失败 3+ 次。
25
- - **Review/debug lesson**: 只有可复用、能防回归时才写。
24
+ - Explicit user preference: write immediately only when clear, safe, and reusable.
25
+ - Repeated implicit correction: same assumption or pattern corrected 2+ times.
26
+ - Tool/command failure: same tool or command pattern fails 3+ times.
27
+ - Review/debug lesson: write only when it is reusable and can prevent regressions.
26
28
 
27
29
  ## What NOT to Write
28
30
 
29
- - Task log、过程总结、一次性情绪
30
- - Raw logstranscripts
31
- - Secrets, tokens, credentials, private data
32
- - 临时偏好、无复用价值的笔记
31
+ - Task logs, process summaries, or one-off emotions.
32
+ - Raw logs or transcripts.
33
+ - Secrets, tokens, credentials, or private data.
34
+ - Temporary preferences or notes with no reusable value.
@@ -39,4 +39,4 @@ Update `Harness/tasks/<task-id>/PLAN.md` only when executing a tracked plan item
39
39
 
40
40
  ## dispatch.md Usage
41
41
 
42
- Use `Harness/dispatch.md` only when splitting independent browser checks across workers is explicitly useful.
42
+ Use `Harness/specs/runtime/dispatch.md` only when splitting independent browser checks across workers is explicitly useful.
@@ -11,6 +11,13 @@ Load:
11
11
  - Official `browser-use` skill at `~/.claude/skills/browser-use/SKILL.md` (auto-installed if missing)
12
12
  - `Harness/PROGRESS.md` when work is active
13
13
 
14
+ ## Cache Discipline
15
+
16
+ Follow `Harness/specs/runtime/context-loading.md#Cache-First Context Contract`: keep workflow
17
+ docs stable, use CLI state/screenshot paths as dynamic evidence, and avoid
18
+ replaying full browser logs or screenshots in prompts unless a failed AC needs
19
+ targeted inspection.
20
+
14
21
  ## Modes
15
22
 
16
23
  Choose based on task complexity:
@@ -8,8 +8,9 @@ This is a **workflow command**, not a direct command. Do not execute it as a
8
8
  static help or script command.
9
9
 
10
10
  1. Load `CLAUDE.md`, `Harness/MEMORY.md` (index only per Memory Preflight), then `Harness/README.md`.
11
- 2. Execute per the skill adapter `.claude/skills/wf-browser/SKILL.md` (mirror: `.agents/skills/wf-browser/SKILL.md`).
12
- 3. Do not duplicate the workflow here. The skill adapter and `Harness/workflows/browser-e2e.md` are authoritative.
11
+ 2. Preserve cache-first order per `Harness/specs/runtime/context-loading.md#Cache-First Context Contract`.
12
+ 3. Execute per the skill adapter `.claude/skills/wf-browser/SKILL.md` (mirror: `.agents/skills/wf-browser/SKILL.md`).
13
+ 4. Do not duplicate the workflow here. The skill adapter and `Harness/workflows/browser-e2e.md` are authoritative.
13
14
 
14
15
  If this runtime cannot invoke the skill directly, read
15
16
  `.claude/skills/wf-browser/SKILL.md` and follow it in place.
@@ -20,7 +20,7 @@ Browser evidence in this project follows the contract:
20
20
 
21
21
  ### Harness Bridge
22
22
 
23
- For frontend-backend flows, use `Harness/HARNESS_BRIDGE.md` to validate UI
23
+ For frontend-backend flows, use `Harness/specs/protocols/HARNESS_BRIDGE.md` to validate UI
24
24
  selectors, API payloads, seeded data, runtime state probes, and CDP/network
25
25
  traces. Browser validation must produce an AC-by-AC result matrix when the task
26
26
  has acceptance criteria.
@@ -97,12 +97,12 @@ If `browser-use` is not installed, fall back to:
97
97
 
98
98
  1. Playwright/Puppeteer MCP server (if configured)
99
99
  2. Chrome DevTools Protocol (CDP) manual inspection
100
- 3. `Harness/WF.md#Browser And API Evidence` manual check contract
100
+ 3. `Harness/specs/workflows/WF.md#Browser And API Evidence` manual check contract
101
101
 
102
102
  ## Integration Points
103
103
 
104
- - **WF mode**: when browser-visible changes are made, follow the evidence contract in `Harness/WF.md#Browser And API Evidence`
105
- - **Harness Bridge**: use `Harness/HARNESS_BRIDGE.md` for UI contract, API contract, seeded test data, runtime state probes, and network trace collection.
104
+ - **WF mode**: when browser-visible changes are made, follow the evidence contract in `Harness/specs/workflows/WF.md#Browser And API Evidence`
105
+ - **Harness Bridge**: use `Harness/specs/protocols/HARNESS_BRIDGE.md` for UI contract, API contract, seeded test data, runtime state probes, and network trace collection.
106
106
  - **wf-browser**: Claude Code uses `.claude/skills/wf-browser/SKILL.md`; Codex uses `.agents/skills/wf-browser/SKILL.md`. Both load this workflow.
107
107
  - **MEMORY.md**: registered as optional workflow skill
108
108
  - **README.md**: routing table row "Browser E2E testing or automation" -> browser-e2e
@@ -37,4 +37,4 @@ Update `Harness/tasks/<task-id>/PLAN.md` only when the PR review is part of a tr
37
37
 
38
38
  ## dispatch.md Usage
39
39
 
40
- Use `Harness/dispatch.md` when independent review areas can be assigned separately, such as backend, frontend, and CI.
40
+ Use `Harness/specs/runtime/dispatch.md` when independent review areas can be assigned separately, such as backend, frontend, and CI.
@@ -37,4 +37,4 @@ Update `Harness/tasks/<task-id>/PLAN.md` only when executing a tracked plan item
37
37
 
38
38
  ## dispatch.md Usage
39
39
 
40
- Use `Harness/dispatch.md` for separable backend work such as API implementation, database changes, and test coverage.
40
+ Use `Harness/specs/runtime/dispatch.md` for separable backend work such as API implementation, database changes, and test coverage.
@@ -40,4 +40,4 @@ Update `Harness/tasks/<task-id>/PLAN.md` only when executing a tracked task or r
40
40
 
41
41
  ## dispatch.md Usage
42
42
 
43
- Use `Harness/dispatch.md` when independent frontend tasks can run in parallel, such as components, tests, and browser checks.
43
+ Use `Harness/specs/runtime/dispatch.md` when independent frontend tasks can run in parallel, such as components, tests, and browser checks.
@@ -37,4 +37,4 @@ Update current task `tasks/<id>/PLAN.md` only for tracked review tasks or when r
37
37
 
38
38
  ## dispatch.md Usage
39
39
 
40
- Use `Harness/dispatch.md` only for independent review streams such as separate routes or breakpoints.
40
+ Use `Harness/specs/runtime/dispatch.md` only for independent review streams such as separate routes or breakpoints.