create-harness-vibe-coding 0.8.13 → 0.8.17
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/CHANGELOG.md +174 -0
- package/README-CN.md +110 -107
- package/README.md +93 -44
- package/package.json +2 -1
- package/src/generator.js +609 -489
- package/src/index.js +5 -5
- package/templates/common/.claude/agents/architect-manager.md +1 -0
- package/templates/common/.claude/agents/architect.md +2 -1
- package/templates/common/.claude/agents/codebase-explorer.md +1 -0
- package/templates/common/.claude/agents/context-master.md +2 -1
- package/templates/common/.claude/agents/debugger.md +1 -0
- package/templates/common/.claude/agents/docs-researcher.md +2 -1
- package/templates/common/.claude/agents/explore-manager.md +1 -0
- package/templates/common/.claude/agents/implement-manager.md +1 -0
- package/templates/common/.claude/agents/implementer.md +1 -0
- package/templates/common/.claude/agents/memory-master.md +2 -1
- package/templates/common/.claude/agents/planner.md +3 -2
- package/templates/common/.claude/agents/reflector.md +1 -0
- package/templates/common/.claude/agents/researcher.md +1 -0
- package/templates/common/.claude/agents/review-manager.md +1 -0
- package/templates/common/.claude/agents/reviewer.md +2 -1
- package/templates/common/.claude/agents/task-scribe.md +1 -0
- package/templates/common/.claude/agents/tdd-guide.md +5 -4
- package/templates/common/.claude/agents/test-writer.md +6 -5
- package/templates/common/.claude/agents/verifier.md +1 -0
- package/templates/common/.claude/commands/wf-auto-spark.md +16 -0
- package/templates/common/.claude/commands/wf-auto.md +16 -0
- package/templates/{optional/skills/browser-e2e/.opencode → common/.claude}/commands/wf-browser.md +3 -2
- package/templates/common/.claude/commands/wf-help.md +9 -5
- package/templates/common/.claude/commands/wf-learn.md +16 -0
- package/templates/common/.claude/commands/wf-max.md +20 -0
- package/templates/common/.claude/commands/wf-readme.md +16 -0
- package/templates/common/.claude/commands/wf-remove.md +16 -0
- package/templates/common/.claude/commands/wf-review.md +16 -0
- package/templates/common/.claude/commands/wf-update.md +68 -10
- package/templates/common/.claude/commands/wf.md +16 -0
- package/templates/common/.claude/rules/ecc/common.md +6 -5
- package/templates/common/.claude/skills/subagent-orchestrator/SKILL.md +12 -6
- package/templates/common/.claude/skills/tdd/SKILL.md +5 -5
- package/templates/common/.claude/skills/wf/SKILL.md +13 -5
- package/templates/common/.claude/skills/wf-agents-docs/SKILL.md +119 -0
- package/templates/common/.claude/skills/wf-auto/SKILL.md +27 -7
- package/templates/common/.claude/skills/wf-auto-spark/SKILL.md +12 -5
- package/templates/common/.claude/skills/wf-browser/SKILL.md +176 -0
- package/templates/common/.claude/skills/wf-help/SKILL.md +30 -0
- package/templates/common/.claude/skills/wf-learn/SKILL.md +6 -0
- package/templates/common/.claude/skills/wf-max/SKILL.md +43 -14
- package/templates/common/.claude/skills/wf-readme/SKILL.md +8 -2
- package/templates/common/.claude/skills/wf-remove/SKILL.md +6 -0
- package/templates/common/.claude/skills/wf-review/SKILL.md +10 -3
- package/templates/common/.claude/skills/wf-update/SKILL.md +41 -4
- package/templates/common/.codex/config.toml +3 -5
- package/templates/common/.harness-version +326 -131
- package/templates/common/.opencode/agents/architect-manager.md +8 -1
- package/templates/common/.opencode/agents/architect.md +2 -1
- package/templates/common/.opencode/agents/codebase-explorer.md +1 -0
- package/templates/common/.opencode/agents/context-master.md +2 -1
- package/templates/common/.opencode/agents/debugger.md +1 -0
- package/templates/common/.opencode/agents/docs-researcher.md +2 -1
- package/templates/common/.opencode/agents/explore-manager.md +11 -1
- package/templates/common/.opencode/agents/implement-manager.md +6 -3
- package/templates/common/.opencode/agents/implementer.md +1 -0
- package/templates/common/.opencode/agents/memory-master.md +2 -1
- package/templates/common/.opencode/agents/planner.md +3 -2
- package/templates/common/.opencode/agents/reflector.md +1 -0
- package/templates/common/.opencode/agents/researcher.md +1 -0
- package/templates/common/.opencode/agents/review-manager.md +6 -2
- package/templates/common/.opencode/agents/reviewer.md +2 -1
- package/templates/common/.opencode/agents/task-scribe.md +1 -0
- package/templates/common/.opencode/agents/tdd-guide.md +5 -4
- package/templates/common/.opencode/agents/test-writer.md +6 -5
- package/templates/common/.opencode/agents/verifier.md +1 -0
- package/templates/common/.opencode/commands/wf-auto-spark.md +3 -2
- package/templates/common/.opencode/commands/wf-auto.md +3 -2
- package/templates/common/.opencode/commands/wf-browser.md +16 -0
- package/templates/common/.opencode/commands/wf-help.md +9 -5
- package/templates/common/.opencode/commands/wf-learn.md +3 -2
- package/templates/common/.opencode/commands/wf-max.md +12 -6
- package/templates/common/.opencode/commands/wf-readme.md +3 -2
- package/templates/common/.opencode/commands/wf-remove.md +3 -2
- package/templates/common/.opencode/commands/wf-review.md +3 -2
- package/templates/common/.opencode/commands/wf-update.md +68 -10
- package/templates/common/.opencode/commands/wf.md +3 -2
- package/templates/common/CLAUDE.md +15 -13
- package/templates/common/Harness/MEMORY.md +24 -21
- package/templates/common/Harness/README.md +50 -47
- package/templates/common/Harness/ownership.manifest.json +878 -0
- package/templates/common/Harness/{architecture.md → project/architecture.md} +1 -1
- package/templates/common/Harness/research/README.md +3 -3
- package/templates/common/Harness/scripts/archive-tasks.mjs +12 -220
- package/templates/common/Harness/scripts/context-budget.mjs +95 -0
- package/templates/common/Harness/scripts/l2-cache-telemetry.mjs +703 -0
- package/templates/common/Harness/scripts/scan-clean.mjs +16 -12
- package/templates/common/Harness/scripts/task-state.mjs +889 -0
- package/templates/common/Harness/scripts/validate-harness.mjs +553 -191
- package/templates/common/Harness/scripts/wf-remove.mjs +61 -35
- package/templates/common/Harness/scripts/wf-update-check.mjs +358 -45
- package/templates/common/Harness/settings.json +43 -0
- package/templates/common/Harness/{ECC-GUIDE.md → specs/guides/ECC-GUIDE.md} +4 -4
- package/templates/common/Harness/{SETUP.md → specs/guides/SETUP.md} +34 -37
- package/templates/common/Harness/{extension.md → specs/guides/extension.md} +3 -3
- package/templates/common/Harness/{lifecycle.md → specs/guides/lifecycle.md} +2 -2
- package/templates/common/Harness/specs/protocols/TASK_ARCHIVE.md +76 -0
- package/templates/common/Harness/{agent-workflow.md → specs/runtime/agent-workflow.md} +6 -6
- package/templates/common/Harness/{context-loading.md → specs/runtime/context-loading.md} +85 -21
- package/templates/common/Harness/{dispatch.md → specs/runtime/dispatch.md} +4 -3
- package/templates/common/Harness/{subagents.md → specs/runtime/subagents.md} +19 -10
- package/templates/common/Harness/{WF-AUTO-SPARK.md → specs/workflows/WF-AUTO-SPARK.md} +2 -2
- package/templates/common/Harness/{WF-AUTO.md → specs/workflows/WF-AUTO.md} +12 -7
- package/templates/common/Harness/{WF-KERNEL.md → specs/workflows/WF-KERNEL.md} +11 -1
- package/templates/common/Harness/{WF-MAX.md → specs/workflows/WF-MAX.md} +40 -7
- package/templates/common/Harness/specs/workflows/WF-STATE.md +141 -0
- package/templates/common/Harness/{WF.md → specs/workflows/WF.md} +12 -1
- package/templates/common/README.md +8 -6
- package/templates/common/memory/startup-hints.md +19 -17
- package/templates/common/opencode.json +1 -0
- package/templates/optional/catalog.json +2 -9
- package/templates/optional/skills/github-pr-review/.claude/skills/github-pr-review/SKILL.md +1 -1
- package/templates/optional/skills/python-backend/.claude/skills/python-backend/SKILL.md +1 -1
- package/templates/optional/skills/ts-react-frontend/.claude/skills/ts-react-frontend/SKILL.md +1 -1
- package/templates/optional/skills/ui-ux-review/.claude/skills/ui-ux-review/SKILL.md +1 -1
- package/templates/common/Harness/TASK_ARCHIVE.md +0 -56
- package/templates/common/Harness/WF-STATE.md +0 -83
- package/templates/optional/skills/browser-e2e/.claude/skills/browser-e2e/SKILL.md +0 -42
- package/templates/optional/skills/browser-e2e/.claude/skills/wf-browser/SKILL.md +0 -194
- package/templates/optional/skills/browser-e2e/Harness/workflows/browser-e2e.md +0 -119
- /package/templates/common/Harness/{ACCEPTANCE_PROTOCOL.md → specs/protocols/ACCEPTANCE_PROTOCOL.md} +0 -0
- /package/templates/common/Harness/{AGENT_ISOLATION.md → specs/protocols/AGENT_ISOLATION.md} +0 -0
- /package/templates/common/Harness/{DEBUG_PROTOCOL.md → specs/protocols/DEBUG_PROTOCOL.md} +0 -0
- /package/templates/common/Harness/{HARNESS_BRIDGE.md → specs/protocols/HARNESS_BRIDGE.md} +0 -0
- /package/templates/common/Harness/{MEMORY_PROTOCOL.md → specs/protocols/MEMORY_PROTOCOL.md} +0 -0
- /package/templates/common/Harness/{TDD-GUIDE.md → specs/protocols/TDD-GUIDE.md} +0 -0
- /package/templates/common/Harness/{WF-AUTO-ANGLES.md → specs/workflows/WF-AUTO-ANGLES.md} +0 -0
|
@@ -29,16 +29,19 @@ Stack-specific agents can be added after the product shape is known.
|
|
|
29
29
|
|
|
30
30
|
## Skills (Workflows)
|
|
31
31
|
|
|
32
|
-
- [WF Mode](WF.md) - WF-KERNEL tiered orchestration: WF-Light (minimal roles), WF-Standard (adds review), WF-Full (complete role chain incl. reflector and cross-review).
|
|
32
|
+
- [WF Mode](specs/workflows/WF.md) - WF-KERNEL tiered orchestration: WF-Light (minimal roles), WF-Standard (adds review), WF-Full (complete role chain incl. reflector and cross-review).
|
|
33
33
|
- [wf](../.claude/skills/wf/SKILL.md) - Claude Code WF skill command; mirrored for Codex at `../.agents/skills/wf/SKILL.md`.
|
|
34
34
|
- [subagent-orchestrator](../.claude/skills/subagent-orchestrator/SKILL.md) - controller-led subagent orchestration, parallel read-only passes, review gates, and recovery handoffs.
|
|
35
35
|
- [wf-readme](../.claude/skills/wf-readme/SKILL.md) - README preservation, append-only development sections, structured tables, and approved architecture diagrams.
|
|
36
|
+
- [wf-agents-docs](../.claude/skills/wf-agents-docs/SKILL.md) - source-backed Claude/Codex/OpenCode CLI invocation, JSON output, resume, telemetry, and automation gotchas.
|
|
36
37
|
- [wf-review](../.claude/skills/wf-review/SKILL.md) - peer review: prefer another agent CLI (Claude/Codex/OpenCode); otherwise use the installed reviewer role as an independent subagent context. Controller decides.
|
|
38
|
+
- [wf-help](../.claude/skills/wf-help/SKILL.md) - Codex compatibility shim for `$wf-help` / `/skills wf-help`; returns the direct command table without entering WF.
|
|
37
39
|
- [wf-update](../.claude/skills/wf-update/SKILL.md) - GitHub-based incremental harness update, checksum comparison, and safe in-place updates.
|
|
38
40
|
- [wf-learn](../.claude/skills/wf-learn/SKILL.md) - force memory learning cycle: context-master -> memory-master -> project + global memory.
|
|
39
41
|
- [wf-max](../.claude/skills/wf-max/SKILL.md) - WF kernel + maximum safe fan-out: WF-Max-Useful by default (fan out only where independent), WF-Max-Strict only on explicit strict request; current runtime subagents first, peer-CLI overflow when available.
|
|
40
42
|
- [wf-auto](../.claude/skills/wf-auto/SKILL.md) - perpetual adaptive auto-optimization: evidence-selected probes, dynamic obligations, intent checkpoints, evidence ledger.
|
|
41
43
|
- [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.
|
|
44
|
+
- [wf-browser](../.claude/skills/wf-browser/SKILL.md) - built-in browser automation/E2E workflow with controllable UI contracts, Browser Use, Playwright, CDP/network evidence, screenshots, traces, and validation matrix.
|
|
42
45
|
- [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.
|
|
43
46
|
- [wf-remove](../.claude/skills/wf-remove/SKILL.md) - safely remove Harness framework files (SAFE/MODIFIED/USER classes), auto-prune empty directories, backup option.
|
|
44
47
|
|
|
@@ -46,12 +49,11 @@ Codex repo-skill mirrors live under `../.agents/skills/` with the same skill nam
|
|
|
46
49
|
|
|
47
50
|
## Direct Commands
|
|
48
51
|
|
|
49
|
-
- [wf-help](../.claude/commands/wf-help.md) - direct `/wf-help` command that returns a WF command table without
|
|
52
|
+
- [wf-help](../.claude/commands/wf-help.md) - direct `/wf-help` command that returns a WF command table; Codex mirror skill supports `$wf-help` without entering WF.
|
|
53
|
+
- [wf-update](../.claude/commands/wf-update.md) - direct `/wf-update` command for script-driven update checks, safe apply, conflict handling, and release highlights.
|
|
50
54
|
|
|
51
55
|
Stack-specific skills can be added after the product shape is known.
|
|
52
56
|
|
|
53
|
-
- [browser-e2e](workflows/browser-e2e.md)
|
|
54
|
-
|
|
55
57
|
## Rules (Harness Constraints)
|
|
56
58
|
|
|
57
59
|
Located under `.claude/rules/ecc/`, auto-loaded by the CC engine:
|
|
@@ -62,26 +64,27 @@ Located under `.claude/rules/ecc/`, auto-loaded by the CC engine:
|
|
|
62
64
|
## Harness (Runtime)
|
|
63
65
|
|
|
64
66
|
- [Docs router](README.md)
|
|
65
|
-
- [Acceptance protocol](ACCEPTANCE_PROTOCOL.md)
|
|
66
|
-
- [Agent isolation protocol](AGENT_ISOLATION.md)
|
|
67
|
-
- [Harness Bridge](HARNESS_BRIDGE.md)
|
|
68
|
-
- [Debug protocol](DEBUG_PROTOCOL.md)
|
|
69
|
-
- [Memory protocol](MEMORY_PROTOCOL.md)
|
|
70
|
-
- [WF mode](WF.md)
|
|
71
|
-
- [WF Max mode](WF-MAX.md)
|
|
72
|
-
- [WF kernel contract](WF-KERNEL.md)
|
|
73
|
-
- [WF state machine / resume](WF-STATE.md)
|
|
74
|
-
- [Task archive mechanism](TASK_ARCHIVE.md)
|
|
75
|
-
- [0-1 lifecycle](lifecycle.md)
|
|
67
|
+
- [Acceptance protocol](specs/protocols/ACCEPTANCE_PROTOCOL.md)
|
|
68
|
+
- [Agent isolation protocol](specs/protocols/AGENT_ISOLATION.md)
|
|
69
|
+
- [Harness Bridge](specs/protocols/HARNESS_BRIDGE.md)
|
|
70
|
+
- [Debug protocol](specs/protocols/DEBUG_PROTOCOL.md)
|
|
71
|
+
- [Memory protocol](specs/protocols/MEMORY_PROTOCOL.md)
|
|
72
|
+
- [WF mode](specs/workflows/WF.md)
|
|
73
|
+
- [WF Max mode](specs/workflows/WF-MAX.md)
|
|
74
|
+
- [WF kernel contract](specs/workflows/WF-KERNEL.md)
|
|
75
|
+
- [WF state machine / resume](specs/workflows/WF-STATE.md)
|
|
76
|
+
- [Task archive mechanism](specs/protocols/TASK_ARCHIVE.md)
|
|
77
|
+
- [0-1 lifecycle](specs/guides/lifecycle.md)
|
|
76
78
|
- [Research protocol](research/README.md)
|
|
77
|
-
- [Context loading protocol](context-loading.md)
|
|
78
|
-
- [Dispatch protocol](dispatch.md)
|
|
79
|
-
- [Subagent orchestration](subagents.md)
|
|
80
|
-
- [Extension contract](extension.md)
|
|
81
|
-
- [Architecture docs](architecture.md)
|
|
82
|
-
- [Agent workflow](agent-workflow.md)
|
|
79
|
+
- [Context loading protocol](specs/runtime/context-loading.md)
|
|
80
|
+
- [Dispatch protocol](specs/runtime/dispatch.md)
|
|
81
|
+
- [Subagent orchestration](specs/runtime/subagents.md)
|
|
82
|
+
- [Extension contract](specs/guides/extension.md)
|
|
83
|
+
- [Architecture docs](project/architecture.md)
|
|
84
|
+
- [Agent workflow](specs/runtime/agent-workflow.md)
|
|
83
85
|
- [Acceptance templates](templates/)
|
|
84
86
|
- [Harness validator](scripts/validate-harness.mjs)
|
|
87
|
+
- [Settings](settings.json)
|
|
85
88
|
- [Version file](.harness-version)
|
|
86
89
|
|
|
87
90
|
## Memory Folder
|
|
@@ -4,7 +4,7 @@ Purpose: route humans and agents to the smallest useful context. `CLAUDE.md` is
|
|
|
4
4
|
|
|
5
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
6
|
|
|
7
|
-
`/wf-help
|
|
7
|
+
`/wf-help`, `$wf-help`, `/skills wf-help`, `/wf-update`, `$wf-update`, and `/skills wf-update` are **direct/compat commands**: skip the router, do NOT load `Harness/MEMORY.md`, do NOT enter WF. Claude Code and OpenCode execute direct command files; Codex uses the matching compatibility skill shim.
|
|
8
8
|
|
|
9
9
|
Do not read the whole `Harness/` tree.
|
|
10
10
|
|
|
@@ -25,19 +25,19 @@ On session start (new window, reopen, resume):
|
|
|
25
25
|
4. Do NOT discover context by reading all task directories. Use the active pointer.
|
|
26
26
|
5. Direct simple tasks may skip STATE/PLAN/PROGRESS unless the user says "continue"/"resume".
|
|
27
27
|
|
|
28
|
-
See `Harness/WF-STATE.md` for the full state machine contract and enums.
|
|
28
|
+
See `Harness/specs/workflows/WF-STATE.md` for the full state machine contract and enums.
|
|
29
29
|
|
|
30
30
|
## Direct Mode (Degradation Path)
|
|
31
31
|
|
|
32
|
-
When the user does NOT explicitly invoke `/wf-*`, `$wf-*`, `/skills wf
|
|
32
|
+
When the user does NOT explicitly invoke `/wf-*`, `$wf-*`, `/skills wf-*`, 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
33
|
|
|
34
34
|
Complex work may use direct planning, task capsules, tests, and subagents without entering WF.
|
|
35
35
|
|
|
36
36
|
Escalate to the router (next section) only when:
|
|
37
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
|
|
38
|
+
- User invokes another workflow `/wf-*`, `$wf-*`, or `/skills wf-*` command, excluding `/wf-help`, `$wf-help`, `/skills wf-help`, `/wf-update`, `$wf-update`, and `/skills wf-update`
|
|
39
39
|
|
|
40
|
-
`/wf-help
|
|
40
|
+
`/wf-help`, `$wf-help`, `/skills wf-help`, `/wf-update`, `$wf-update`, and `/skills wf-update` are direct/compat commands executed immediately without router load.
|
|
41
41
|
|
|
42
42
|
## 0-1 Flow
|
|
43
43
|
|
|
@@ -45,7 +45,7 @@ Escalate to the router (next section) only when:
|
|
|
45
45
|
Idea -> Research -> Mini PRD -> Acceptance Criteria -> Contracts -> Tests -> Build -> Independent Validation -> Debug -> Memory
|
|
46
46
|
```
|
|
47
47
|
|
|
48
|
-
For the full phase contract, load [lifecycle.md](lifecycle.md).
|
|
48
|
+
For the full phase contract, load [lifecycle.md](specs/guides/lifecycle.md).
|
|
49
49
|
|
|
50
50
|
## Development Contract
|
|
51
51
|
|
|
@@ -56,18 +56,18 @@ For the full phase contract, load [lifecycle.md](lifecycle.md).
|
|
|
56
56
|
- Task records are compact by default: PLAN holds goal, decisions, scope, risks; PROGRESS holds status/next, changes, verification. Do not paste command logs, full transcripts, or broad PRDs when a link or one-line evidence entry is enough.
|
|
57
57
|
- Build commands, git conventions, and release notes belong in root `README.md`, not `CLAUDE.md`.
|
|
58
58
|
- README rewrites are optional project-doc work. Use `wf-readme` and preserve existing public docs unless the user approves a broader restructure.
|
|
59
|
-
- Code architecture belongs in [architecture.md](architecture.md) or the current feature doc, not `CLAUDE.md`.
|
|
59
|
+
- Code architecture belongs in [architecture.md](project/architecture.md) or the current feature doc, not `CLAUDE.md`.
|
|
60
60
|
- Core rules live in `CLAUDE.md` and `.claude/rules/ecc/common.md`.
|
|
61
|
-
- WF mode rules live in [WF.md](WF.md).
|
|
62
|
-
- Phase rules live in [lifecycle.md](lifecycle.md).
|
|
63
|
-
- Build, review, test, and subagent rules live in [agent-workflow.md](agent-workflow.md); AC-linked TDD rules live in [TDD-GUIDE.md](TDD-GUIDE.md).
|
|
64
|
-
- Acceptance-driven gates live in [ACCEPTANCE_PROTOCOL.md](ACCEPTANCE_PROTOCOL.md). PRD-derived Acceptance Criteria are the source of truth for implementation, tests, review, validation, debug, and memory.
|
|
65
|
-
- Role/context isolation rules live in [AGENT_ISOLATION.md](AGENT_ISOLATION.md).
|
|
66
|
-
- Frontend-backend test harness and CDP/network evidence rules live in [HARNESS_BRIDGE.md](HARNESS_BRIDGE.md).
|
|
67
|
-
- Parallel dispatch rules live in [dispatch.md](dispatch.md).
|
|
68
|
-
- Subagent orchestration methodology lives in [subagents.md](subagents.md).
|
|
69
|
-
- Extension rules live in [extension.md](extension.md).
|
|
70
|
-
- Context-loading rules live in [context-loading.md](context-loading.md).
|
|
61
|
+
- WF mode rules live in [WF.md](specs/workflows/WF.md).
|
|
62
|
+
- Phase rules live in [lifecycle.md](specs/guides/lifecycle.md).
|
|
63
|
+
- Build, review, test, and subagent rules live in [agent-workflow.md](specs/runtime/agent-workflow.md); AC-linked TDD rules live in [TDD-GUIDE.md](specs/protocols/TDD-GUIDE.md).
|
|
64
|
+
- Acceptance-driven gates live in [ACCEPTANCE_PROTOCOL.md](specs/protocols/ACCEPTANCE_PROTOCOL.md). PRD-derived Acceptance Criteria are the source of truth for implementation, tests, review, validation, debug, and memory.
|
|
65
|
+
- Role/context isolation rules live in [AGENT_ISOLATION.md](specs/protocols/AGENT_ISOLATION.md).
|
|
66
|
+
- Frontend-backend test harness and CDP/network evidence rules live in [HARNESS_BRIDGE.md](specs/protocols/HARNESS_BRIDGE.md).
|
|
67
|
+
- Parallel dispatch rules live in [dispatch.md](specs/runtime/dispatch.md).
|
|
68
|
+
- Subagent orchestration methodology lives in [subagents.md](specs/runtime/subagents.md).
|
|
69
|
+
- Extension rules live in [extension.md](specs/guides/extension.md).
|
|
70
|
+
- Context-loading rules live in [context-loading.md](specs/runtime/context-loading.md).
|
|
71
71
|
- Progress lives in `Harness/PROGRESS.md`, `Harness/tasks/<task-id>/PROGRESS.md`, `Harness/tasks/<task-id>/PLAN.md`, and the current feature doc.
|
|
72
72
|
|
|
73
73
|
## Keyword Routing
|
|
@@ -95,27 +95,29 @@ Routing priority: **direct mode is the default** when no explicit WF token is pr
|
|
|
95
95
|
| When to Read | Keywords | Load | Output |
|
|
96
96
|
| --- | --- | --- | --- |
|
|
97
97
|
| **Direct mode (default)** | simple, single-step, low-risk, commit, push, one-line, read, question, status, no /wf-* command | Nothing beyond CLAUDE.md | Direct execution; no router load |
|
|
98
|
-
| Raw idea or vague product request | idea, vague, clarify, goal, non-goal, lifecycle | [lifecycle.md](lifecycle.md), [research/PRD.md](research/PRD.md) | clarified goal, non-goals, first questions |
|
|
98
|
+
| Raw idea or vague product request | idea, vague, clarify, goal, non-goal, lifecycle | [lifecycle.md](specs/guides/lifecycle.md), [research/PRD.md](research/PRD.md) | clarified goal, non-goals, first questions |
|
|
99
99
|
| Need market/tech direction | research, market, competitor, stack, library, pricing, policy | [research/README.md](research/README.md), [research/research-results.md](research/research-results.md) | research protocol, adopted/rejected choices |
|
|
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 |
|
|
101
|
-
| Need architecture or boundaries | architecture, boundary, layer, port, adapter, dependency | [architecture.md](architecture.md) | layer map, ports, constraints |
|
|
102
|
-
| Need WF command help | /wf-help, wf help, command list, list wf commands | `.claude/commands/wf-help.md` |
|
|
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) |
|
|
100
|
+
| Need MVP/spec | PRD, MVP, scope, requirement, acceptance, non-goal | [research/PRD.md](research/PRD.md), [ACCEPTANCE_PROTOCOL.md](specs/protocols/ACCEPTANCE_PROTOCOL.md) | Mini PRD with AC IDs and verifiable acceptance criteria |
|
|
101
|
+
| Need architecture or boundaries | architecture, boundary, layer, port, adapter, dependency | [architecture.md](project/architecture.md) | layer map, ports, constraints |
|
|
102
|
+
| Need WF command help | /wf-help, $wf-help, /skills wf-help, wf help, command list, list wf commands | `.claude/commands/wf-help.md`, `.opencode/commands/wf-help.md`, `.claude/skills/wf-help/SKILL.md`, `.agents/skills/wf-help/SKILL.md` | static command table; Codex shim may invoke a minimal skill, but no WF/router load |
|
|
103
|
+
| Need WF mode (explicit only) | /wf, $wf, /skills wf (explicit user token only) | [WF.md](specs/workflows/WF.md), [WF-KERNEL.md](specs/workflows/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](specs/workflows/WF-AUTO.md), [WF-AUTO-ANGLES.md](specs/workflows/WF-AUTO-ANGLES.md), [subagents.md](specs/runtime/subagents.md), [dispatch.md](specs/runtime/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](specs/workflows/WF-AUTO-SPARK.md), [WF-AUTO.md](specs/workflows/WF-AUTO.md), [subagents.md](specs/runtime/subagents.md), [dispatch.md](specs/runtime/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](specs/workflows/WF-MAX.md), [WF-KERNEL.md](specs/workflows/WF-KERNEL.md), [subagents.md](specs/runtime/subagents.md), [dispatch.md](specs/runtime/dispatch.md) | /wf kernel + max safe fan-out (WF-Max-Useful default, WF-Max-Strict override) |
|
|
107
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`, `.opencode/commands/wf-review.md` | peer CLI when available; otherwise installed `reviewer` role subagent; controller decides |
|
|
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 |
|
|
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 |
|
|
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-
|
|
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 |
|
|
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 |
|
|
114
|
-
| Need
|
|
115
|
-
| Need
|
|
116
|
-
|
|
|
108
|
+
| Adding harness to existing project | existing project, onboarding, migrate, bootstrap, preserve, conflict | [extension.md](specs/guides/extension.md), [PROGRESS.md](PROGRESS.md), root `README.md` and package/CI files | discovered project facts, preserved config, manual registration plan |
|
|
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](project/architecture.md) as needed | approved README mode, preserved sections, proposed diff plan |
|
|
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](specs/runtime/agent-workflow.md), [ACCEPTANCE_PROTOCOL.md](specs/protocols/ACCEPTANCE_PROTOCOL.md) | tasks, AC IDs, write set, verification commands |
|
|
111
|
+
| Browser E2E testing or automation | /wf-browser, $wf-browser, /skills wf-browser, browser, e2e, web automation, form fill, screenshot verify, page test, browser test, Playwright AI, Browser Use, CDP | `.claude/skills/wf-browser/SKILL.md`, `.agents/skills/wf-browser/SKILL.md`, [HARNESS_BRIDGE.md](specs/protocols/HARNESS_BRIDGE.md), Browser Use skill | controllable UI contract, Browser Use/Playwright/CDP commands, screenshots, traces, validation matrix |
|
|
112
|
+
| Optional workflow installed | workflow, optional, ui-ux-review, github-pr-review, python-backend, ts-react-frontend | matching `workflows/*.md` (if installed), [extension.md](specs/guides/extension.md) | workflow-specific evidence, commands, fallback path |
|
|
113
|
+
| Need durable memory or reflection | memory, remember, preference, correction, tool failure, lesson, reflection, scenario memory | [MEMORY.md](MEMORY.md), [MEMORY_PROTOCOL.md](specs/protocols/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 |
|
|
114
|
+
| Need context/cache/token efficiency | cache, token, context, prompt cache, tool search, cache hit | [context-loading.md](specs/runtime/context-loading.md), [WF-KERNEL.md](specs/workflows/WF-KERNEL.md), [dispatch.md](specs/runtime/dispatch.md), `scripts/l2-cache-telemetry.mjs` | cache-first context layout, deferred skills/tools, bounded summaries, L2 telemetry plan |
|
|
115
|
+
| Need peer CLI automation docs | claude -p, codex exec, opencode run, peer CLI, CLI automation, telemetry | `.claude/skills/wf-agents-docs/SKILL.md`, [context-loading.md](specs/runtime/context-loading.md) | source-backed invocation flags, JSON/telemetry parsing, cache attribution guardrails |
|
|
116
|
+
| Need subagents | subagent, role pack, context, inject, return format, orchestrator, isolation | [subagents.md](specs/runtime/subagents.md), [context-loading.md](specs/runtime/context-loading.md), [dispatch.md](specs/runtime/dispatch.md), [AGENT_ISOLATION.md](specs/protocols/AGENT_ISOLATION.md) | controller plan, role-specific context pack, isolation-aware dispatch pack |
|
|
117
|
+
| Need feature work | feature, implementation, TDD, test, review, closeout | [tasks/_template/PLAN.md](tasks/_template/PLAN.md), [agent-workflow.md](specs/runtime/agent-workflow.md), [TDD-GUIDE.md](specs/protocols/TDD-GUIDE.md), [ACCEPTANCE_PROTOCOL.md](specs/protocols/ACCEPTANCE_PROTOCOL.md) | task plan, AC-linked RED tests, implementation loop |
|
|
118
|
+
| Review or release check | review, release, finding, risk, evidence, verification | [agent-workflow.md](specs/runtime/agent-workflow.md), current feature doc | findings, verification evidence |
|
|
117
119
|
| 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 |
|
|
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 |
|
|
120
|
+
| 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, changelog release highlights, user decides conflicts |
|
|
119
121
|
| 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 |
|
|
120
122
|
|
|
121
123
|
## Gates
|
|
@@ -125,12 +127,12 @@ Routing priority: **direct mode is the default** when no explicit WF token is pr
|
|
|
125
127
|
- 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.
|
|
126
128
|
- **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`.
|
|
127
129
|
- **WF-REVIEW Independence**: Prefer a peer CLI (`claude`, `codex`, or `opencode`) that is not the current runtime. If none exists, dispatch the installed `reviewer` role as a separate subagent context. Same-runtime fallback is independent-context review, not cross-model review; the main agent owns final decisions.
|
|
128
|
-
- WF-MAX has no runtime hook state.
|
|
130
|
+
- WF-MAX role enforcement has no runtime hook state. Durable WF state remains the task capsule, dispatch table, review findings, and validation evidence. Startup update-check hooks do not enforce roles, write sets, or agent identity. The `/wf-auto` bounded tick hook is described in `WF-AUTO.md`.
|
|
129
131
|
- Do not code before PRD-GATE, AC-GATE, CONTRACT-GATE, and TEST-GATE are satisfied or explicitly compressed into a documented fast lane.
|
|
130
132
|
- PRD-derived Acceptance Criteria are the source of truth. Code, tests, reviews, validation, debug, and memory must trace to AC IDs.
|
|
131
133
|
- No acceptance criteria, no tests. No acceptance criteria, no code.
|
|
132
134
|
- No `data-testid` or stable accessible selector, no UI acceptance. No API contract, no backend integration acceptance.
|
|
133
|
-
- Unsure whether to open a task? Read [agent-workflow.md](agent-workflow.md) Section 1.
|
|
135
|
+
- Unsure whether to open a task? Read [agent-workflow.md](specs/runtime/agent-workflow.md) Section 1.
|
|
134
136
|
- Do not spawn a subagent without a role, read boundary, write boundary, and return contract.
|
|
135
137
|
- Do not run writing agents in parallel unless write sets are disjoint.
|
|
136
138
|
- Before coordinating multiple agents, fill `Harness/tasks/<task-id>/PLAN.md#Subagent Dispatch` and follow `subagents.md` plus `dispatch.md`; if the work also matches WF triggers, enter WF mode first.
|
|
@@ -149,24 +151,25 @@ Routing priority: **direct mode is the default** when no explicit WF token is pr
|
|
|
149
151
|
|----------|-------|
|
|
150
152
|
| **Router + Index** | `README.md`, `MEMORY.md`, `PROGRESS.md` |
|
|
151
153
|
| **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` |
|
|
153
|
-
| **Protocols** | `ACCEPTANCE_PROTOCOL.md`, `AGENT_ISOLATION.md`, `HARNESS_BRIDGE.md`, `DEBUG_PROTOCOL.md`, `MEMORY_PROTOCOL.md` |
|
|
154
|
-
| **Guides** | `ECC-GUIDE.md`, `
|
|
155
|
-
| **Orchestration** | `subagents.md`, `context-loading.md`, `dispatch.md`, `agent-workflow.md`, `
|
|
154
|
+
| **Workflows** | `specs/workflows/WF.md`, `specs/workflows/WF-KERNEL.md`, `specs/workflows/WF-STATE.md`, `specs/workflows/WF-MAX.md`, `specs/workflows/WF-AUTO.md`, `specs/workflows/WF-AUTO-SPARK.md` |
|
|
155
|
+
| **Protocols** | `specs/protocols/ACCEPTANCE_PROTOCOL.md`, `specs/protocols/AGENT_ISOLATION.md`, `specs/protocols/HARNESS_BRIDGE.md`, `specs/protocols/DEBUG_PROTOCOL.md`, `specs/protocols/MEMORY_PROTOCOL.md` |
|
|
156
|
+
| **Guides** | `specs/guides/ECC-GUIDE.md`, `specs/guides/lifecycle.md`, `specs/guides/extension.md`, `project/architecture.md`, `specs/protocols/TDD-GUIDE.md`, `specs/protocols/TASK_ARCHIVE.md` |
|
|
157
|
+
| **Orchestration** | `specs/runtime/subagents.md`, `specs/runtime/context-loading.md`, `specs/runtime/dispatch.md`, `specs/runtime/agent-workflow.md`, `specs/workflows/WF-STATE.md` |
|
|
156
158
|
| **Research** | `research/README.md`, `research/PRD.md`, `research/research-results.md` |
|
|
157
159
|
| **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` |
|
|
158
160
|
| **Memory** | `memory/tool-usage-reflections.md`, `memory/user-corrections-preferences.md`, `memory/agent-lessons-patterns.md` |
|
|
159
|
-
| **Scripts** | `scripts/validate-harness.mjs`, `scripts/wf-update-check.mjs`, `scripts/wf-remove.mjs`, `scripts/archive-tasks.mjs` |
|
|
160
|
-
| **Runtime** | `.harness-version` |
|
|
161
|
+
| **Scripts** | `scripts/validate-harness.mjs`, `scripts/context-budget.mjs`, `scripts/l2-cache-telemetry.mjs`, `scripts/wf-update-check.mjs`, `scripts/wf-remove.mjs`, `scripts/task-state.mjs`, `scripts/archive-tasks.mjs` |
|
|
162
|
+
| **Runtime + Config** | `.harness-version`, `ownership.manifest.json`, `settings.json` |
|
|
161
163
|
| **Agents + Skills** | `.claude/agents/*`, `.claude/skills/*`, `.agents/skills/*` |
|
|
162
164
|
| **Direct Commands** | `.claude/commands/wf-help.md`, `.claude/commands/wf-update.md`, `.opencode/commands/wf-help.md`, `.opencode/commands/wf-update.md` |
|
|
165
|
+
| **Workflow Command Wrappers** | `.claude/commands/wf*.md`, `.opencode/commands/wf*.md` |
|
|
163
166
|
|
|
164
167
|
## Direct Commands
|
|
165
168
|
|
|
166
169
|
| Command | Purpose |
|
|
167
170
|
|---|---|
|
|
168
|
-
| `/wf-help` |
|
|
169
|
-
| `/wf-update` | Script-driven harness update: fetch + compare + apply. Direct command for Claude Code and OpenCode; skill path available for Codex compatibility. |
|
|
171
|
+
| `/wf-help`, `$wf-help` | Returns a table of all Harness WF commands, usage, and purpose. Claude Code/OpenCode use direct command files; Codex uses the minimal `wf-help` skill shim. It never starts WF. |
|
|
172
|
+
| `/wf-update`, `$wf-update` | Script-driven harness update: fetch + compare + apply + report release highlights. Direct command for Claude Code and OpenCode; skill path available for Codex compatibility. |
|
|
170
173
|
|
|
171
174
|
## Skill Commands
|
|
172
175
|
|
|
@@ -178,7 +181,7 @@ Routing priority: **direct mode is the default** when no explicit WF token is pr
|
|
|
178
181
|
| `/wf-auto-spark` | `$wf-auto-spark` | Perpetual inspiration: spark search, roadmap-anchored, <=50% deviation guard, never auto-stops |
|
|
179
182
|
| `/wf-review [focus]` | `$wf-review [focus]` | Peer CLI review via Claude/Codex/OpenCode, or installed reviewer subagent fallback |
|
|
180
183
|
| `/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 |
|
|
184
|
+
| `/wf-browser [task]` | `$wf-browser [task]` | Built-in AI-driven browser automation for E2E testing |
|
|
182
185
|
| `/wf-readme [task]` | `$wf-readme [task]` | README preservation, merge, and documentation improvement workflow |
|
|
183
|
-
| `/wf-update` | `$wf-update` | Script-driven harness update: fetch + compare + apply |
|
|
186
|
+
| `/wf-update` | `$wf-update` | Script-driven harness update: fetch + compare + apply + report release highlights |
|
|
184
187
|
| `/wf-remove` | `$wf-remove` | Safe harness removal: auto-delete SAFE, confirm MODIFIED, preserve USER DATA |
|