create-harness-vibe-coding 0.2.1 → 0.3.0

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 (47) hide show
  1. package/README.md +104 -21
  2. package/package.json +1 -1
  3. package/src/generator.js +2 -0
  4. package/templates/common/.claude/agents/context-master.md +78 -0
  5. package/templates/common/.claude/agents/debugger.md +1 -1
  6. package/templates/common/.claude/agents/docs-researcher.md +1 -1
  7. package/templates/common/.claude/agents/implementer.md +1 -1
  8. package/templates/common/.claude/agents/memory-master.md +67 -0
  9. package/templates/common/.claude/agents/planner.md +1 -1
  10. package/templates/common/.claude/agents/researcher.md +1 -1
  11. package/templates/common/.claude/agents/test-writer.md +1 -1
  12. package/templates/common/.claude/agents/verifier.md +1 -1
  13. package/templates/common/.claude/commands/update.md +11 -0
  14. package/templates/common/.claude/commands/wf.md +10 -4
  15. package/templates/common/.claude/rules/ecc/common.md +2 -2
  16. package/templates/common/.claude/skills/harness-build-loop/SKILL.md +2 -1
  17. package/templates/common/.claude/skills/harness-context/SKILL.md +2 -1
  18. package/templates/common/.claude/skills/harness-lifecycle/SKILL.md +2 -1
  19. package/templates/common/.claude/skills/harness-research/SKILL.md +2 -1
  20. package/templates/common/.claude/skills/harness-router/SKILL.md +1 -1
  21. package/templates/common/.claude/skills/readme-optimizer/SKILL.md +3 -2
  22. package/templates/common/.claude/skills/subagent-orchestrator/SKILL.md +5 -3
  23. package/templates/common/.claude/skills/wf-mode/SKILL.md +9 -4
  24. package/templates/common/.claude/skills/wf-update/SKILL.md +58 -0
  25. package/templates/common/.harness-version +8 -0
  26. package/templates/common/CLAUDE.md +13 -4
  27. package/templates/common/MEMORY.md +6 -1
  28. package/templates/common/README.md +2 -2
  29. package/templates/common/SETUP.md +24 -14
  30. package/templates/common/docs/README.md +23 -16
  31. package/templates/common/docs/features/_template.md +11 -1
  32. package/templates/common/docs/harness/PLAN.md +37 -88
  33. package/templates/common/docs/harness/PROGRESS.md +17 -0
  34. package/templates/common/docs/harness/WF.md +17 -9
  35. package/templates/common/docs/harness/agent-workflow.md +19 -7
  36. package/templates/common/docs/harness/architecture.md +1 -1
  37. package/templates/common/docs/harness/context-loading.md +17 -5
  38. package/templates/common/docs/harness/dispatch.md +9 -6
  39. package/templates/common/docs/harness/extension.md +4 -4
  40. package/templates/common/docs/harness/lifecycle.md +2 -2
  41. package/templates/common/docs/harness/subagents.md +12 -7
  42. package/templates/common/docs/research/README.md +3 -3
  43. package/templates/common/docs/tasks/_template/ARTIFACTS.md +3 -0
  44. package/templates/common/docs/tasks/_template/NOTES.md +3 -0
  45. package/templates/common/docs/tasks/_template/PLAN.md +40 -0
  46. package/templates/common/docs/tasks/_template/PROGRESS.md +29 -0
  47. package/templates/common/scripts/validate-harness.mjs +59 -7
@@ -0,0 +1,58 @@
1
+ ---
2
+ name: wf-update
3
+ description: Use when the user says /wf update, wf update, update harness, or check for updates. Fetches latest template files from GitHub, compares against stored checksums, and applies incremental updates safely.
4
+ ---
5
+
6
+ # WF Update
7
+
8
+ GitHub-based incremental harness update. Pulls latest template files and compares against stored checksums in `Harness/.harness-version`.
9
+
10
+ ## Load
11
+
12
+ - `Harness/.harness-version`
13
+ - `Harness/README.md#Update Mechanism` row (when available)
14
+
15
+ ## How It Works
16
+
17
+ 1. Read `Harness/.harness-version` -- get current `generator` version and stored `checksums`.
18
+ 2. Fetch the latest template file list from GitHub:
19
+ - Base URL: `https://raw.githubusercontent.com/zingspark/create-harness-vibe-coding/main/templates/common/`
20
+ - Fetch `.harness-version` from the repo first to get the latest version and expected file list.
21
+ - If the repo version equals the local version, report "Already up to date."
22
+ 3. For each file in the repo's checksums map:
23
+ - Compute SHA-256 of the fetched file content (normalize line endings to LF).
24
+ - Compare against the local stored checksum in `Harness/.harness-version`.
25
+ 4. Classify each difference:
26
+ - **SAFE** (TIER 1): Harness runtime files. If local checksum matches stored -> file is unmodified -> safe to overwrite with fetched version.
27
+ - **PRESERVE** (TIER 2): User data files. Never overwrite. (`Harness/PROGRESS.md`, `Harness/tasks/**`, `Harness/memory/**`, `Harness/research/PRD.md`, `Harness/research/research-results.md`, `Harness/architecture.md`, `Harness/domain/ports.md`, `Harness/features/**`, root `README.md`, `.gitignore`)
28
+ - **MERGE** (TIER 3): Dual-purpose files. If local checksum matches stored -> safe to overwrite. If mismatch -> user modified -> report as merge candidate, never auto-overwrite. (`CLAUDE.md`, `Harness/MEMORY.md`, `Harness/README.md`)
29
+ 5. For files in the GitHub repo NOT in local checksums: classify as NEW, plan to create.
30
+ 6. Report update plan: `updated/N, merge/N, created/N, skipped/N`
31
+ 7. If `--check` flag: report only, do not write.
32
+ 8. Apply updates:
33
+ - SAFE files: overwrite with fetched content.
34
+ - NEW files: create.
35
+ - MERGE files with matching checksums: overwrite.
36
+ - MERGE files with mismatched checksums: skip, warn user.
37
+ - PRESERVE files: never touched.
38
+ 9. Update `Harness/.harness-version`:
39
+ - Update `generator` to latest version.
40
+ - Update `generated` timestamp.
41
+ - Recompute and store checksums for all updated files.
42
+ 10. Record update in `Harness/tasks/harness-update/PROGRESS.md` (create task capsule if needed).
43
+
44
+ ## Rules
45
+
46
+ - Never overwrite PRESERVE files.
47
+ - Never auto-overwrite MERGE files with mismatched checksums.
48
+ - If offline (cannot reach GitHub), report and exit cleanly.
49
+ - After update, suggest running `node Harness/scripts/validate-harness.mjs`.
50
+ - Subagents are readers and reporters. Only the main agent writes updated files.
51
+
52
+ ## Return
53
+
54
+ - Update plan summary
55
+ - Files updated
56
+ - Files skipped (with reasons)
57
+ - New version
58
+ - Validation suggestion
@@ -0,0 +1,8 @@
1
+ {
2
+ "generator": "{{generatorVersion}}",
3
+ "generated": "{{generatedTimestamp}}",
4
+ "options": [],
5
+ "autoCheck": true,
6
+ "source": "https://raw.githubusercontent.com/zingspark/create-harness-vibe-coding/main/templates/common/",
7
+ "checksums": {}
8
+ }
@@ -6,12 +6,17 @@ Root entry for Claude Code. Keep this file short.
6
6
 
7
7
  - If `Harness/` exists, this repository is governed by the Harness contract. Treat these files as mandatory operating instructions, not optional references.
8
8
  - Every session: load `Harness/MEMORY.md` first, then `Harness/README.md`.
9
- - If `Harness/SETUP.md` exists, follow it before normal project work; it is the install/bootstrap contract and may be deleted only after setup is complete.
9
+ - If `Harness/SETUP.md` exists, follow it before normal project work; it is the install/bootstrap contract and may be deleted after setup is complete.
10
10
  - `Harness/MEMORY.md` is the memory/resource router: agents, skills, durable memories, and cross-session lessons. Follow its registrations when selecting agents/skills or recording memory.
11
11
  - `Harness/README.md` is the task router. For every request, check `Harness/README.md#Load By Task`; if a row matches, read and follow those docs before acting.
12
- - If work spans more than one step, update `Harness/PLAN.md`.
12
+ - `Harness/PROGRESS.md` is the global task index. Load at session start to see active task and task history.
13
+ - If work spans more than one step, create a task capsule from `Harness/tasks/_template/` and update `Harness/tasks/<task-id>/PROGRESS.md`.
13
14
  - Use `/wf`, `wf-mode`, `wf mode`, `workflow mode`, `wk mode`, or `Harness/WF.md` for long, difficult, uncertain, multi-file, or repeated-failure work.
14
15
  - Use `subagent-orchestrator` and `Harness/subagents.md` when coordinating multiple subagents.
16
+ - Use `/wf update` to check for and apply scaffold updates from GitHub. See `.claude/skills/wf-update/SKILL.md`.
17
+ - Subagents are readers and reporters. Only the main agent writes to `Harness/tasks/<task-id>/PROGRESS.md` and `Harness/tasks/<task-id>/PLAN.md`.
18
+ - For memory writing and consolidation (repeated failures, user corrections, closeout), dispatch `memory-master`.
19
+ - For context analysis and compression alerts (~85% window), dispatch `context-master`.
15
20
  - Universal rules live in `.claude/rules/ecc/common.md`.
16
21
  - Never bulk-read `Harness/`; route through `Harness/README.md` and `Harness/MEMORY.md`.
17
22
 
@@ -20,7 +25,7 @@ Root entry for Claude Code. Keep this file short.
20
25
  - You must have **>=95% confidence** in user intent before writing implementation code.
21
26
  - If confidence is below 95%, stop and ask up to 3 blocking questions.
22
27
  - If multiple valid approaches exist and the choice affects architecture, scope, stack, or user-facing behavior, present trade-offs instead of picking silently.
23
- - State assumptions before implementation and record durable assumptions, decisions, blockers, handoffs, and verification evidence in `Harness/PLAN.md`.
28
+ - State assumptions before implementation and record durable assumptions, decisions, blockers, handoffs, and verification evidence in `Harness/tasks/<task-id>/PLAN.md`.
24
29
  - If something is unclear, stop. Name what is unclear and ask instead of guessing.
25
30
 
26
31
  ## 3. Simplicity First
@@ -44,7 +49,8 @@ Root entry for Claude Code. Keep this file short.
44
49
 
45
50
  - Define verifiable success criteria before implementation.
46
51
  - For bugs, reproduce the failure or document why reproduction is impossible before fixing.
47
- - For multi-step work, keep `Harness/PLAN.md` current with loaded context, task state, assumptions, and verification.
52
+ - For multi-step work, keep `Harness/tasks/<task-id>/PROGRESS.md` and `Harness/tasks/<task-id>/PLAN.md` current. The main agent is the only state committer; subagents return suggestions only.
53
+ - State assumptions before implementation and record durable assumptions, decisions, blockers, handoffs, and verification evidence in `Harness/tasks/<task-id>/PLAN.md`.
48
54
  - Every task needs a test, build check, validator run, or recorded manual check.
49
55
  - Do not claim web/UI acceptance without real-browser evidence from Chrome DevTools, CDP, Playwright, or documented manual browser checks.
50
56
  - Do not place project build scripts, git conventions, run commands, or release process in this file. Put them in `README.md`.
@@ -57,4 +63,7 @@ Root entry for Claude Code. Keep this file short.
57
63
  - **Tool reflection trigger**: record a lightweight reflection when the same tool/use pattern fails 3+ times, or when a better command pattern/environment fix is found. Write it newest-first in `Harness/memory/tool-usage-reflections.md`.
58
64
  - **User correction trigger**: record a lightweight preference/correction when the user asks to remember it, or when the user corrects the same assumption/pattern 2+ times. Write it newest-first in `Harness/memory/user-corrections-preferences.md`.
59
65
  - **Agent lesson trigger**: record reusable lessons from review/debug loops in `Harness/memory/agent-lessons-patterns.md` when they would prevent recurrence.
66
+ - **WF auto-trigger**: when the same failure class happens 3+ times in a WF recovery loop, dispatch `memory-master` to record the failure pattern to `Harness/memory/agent-lessons-patterns.md` before asking the user.
67
+ - **Context threshold trigger**: when context approaches ~85% of the window, dispatch `context-master` to analyze and write a non-blocking compression suggestion to `Harness/tasks/<task-id>/PROGRESS.md#Heartbeat`.
68
+ - **Closeout trigger**: during WF closeout, dispatch `context-master` to extract durable knowledge, then `memory-master` to consolidate into `Harness/memory/*`.
60
69
  - Never record secrets, credentials, tokens, or private data.
@@ -14,6 +14,8 @@
14
14
  - [debugger](../.claude/agents/debugger.md) — smallest fix for a reproduced failure.
15
15
  - [reviewer](../.claude/agents/reviewer.md) — read-only diff review and closeout risk.
16
16
  - [verifier](../.claude/agents/verifier.md) — verification commands and evidence.
17
+ - [memory-master](../.claude/agents/memory-master.md) — memory writing, dedup, consolidation, and cross-project knowledge extraction.
18
+ - [context-master](../.claude/agents/context-master.md) — context analysis, compression alerts, and session knowledge extraction for memory-master.
17
19
 
18
20
  Stack-specific agents can be added after the product shape is known.
19
21
 
@@ -27,6 +29,7 @@ Stack-specific agents can be added after the product shape is known.
27
29
  - [wf-mode](../.claude/skills/wf-mode/SKILL.md) — long-task workflow: exploration, second plan, implementation, review, verification, heartbeat, and recovery loop.
28
30
  - [subagent-orchestrator](../.claude/skills/subagent-orchestrator/SKILL.md) — controller-led subagent orchestration, parallel read-only passes, review gates, and recovery handoffs.
29
31
  - [readme-optimizer](../.claude/skills/readme-optimizer/SKILL.md) — README preservation, append-only development sections, structured tables, and approved architecture diagrams.
32
+ - [wf-update](../.claude/skills/wf-update/SKILL.md) — GitHub-based incremental harness update, checksum comparison, and safe in-place updates.
30
33
 
31
34
  Stack-specific skills can be added after the product shape is known.
32
35
 
@@ -39,7 +42,8 @@ Located under `.claude/rules/ecc/`, auto-loaded by the CC engine:
39
42
 
40
43
  ## Harness (Runtime)
41
44
 
42
- - [Active plan](PLAN.md)
45
+ - [Global progress](PROGRESS.md)
46
+ - [Task directory](tasks/)
43
47
  - [Docs router](README.md)
44
48
  - [WF mode](WF.md)
45
49
  - [0-1 lifecycle](lifecycle.md)
@@ -51,6 +55,7 @@ Located under `.claude/rules/ecc/`, auto-loaded by the CC engine:
51
55
  - [Architecture docs](architecture.md)
52
56
  - [Agent workflow](agent-workflow.md)
53
57
  - [Harness validator](scripts/validate-harness.mjs)
58
+ - [Version file](.harness-version)
54
59
 
55
60
  ## Memory Folder
56
61
 
@@ -20,7 +20,7 @@ Record the real project commands after bootstrap:
20
20
  # e.g. npm run build
21
21
  ```
22
22
 
23
- Replace the examples with the real commands discovered from this project. If a command is unknown, record the open question in `Harness/PLAN.md`.
23
+ Replace the examples with the real commands discovered from this project. If a command is unknown, record the open question in `Harness/tasks/<task-id>/PROGRESS.md`.
24
24
 
25
25
  ## Git And Release Notes
26
26
 
@@ -36,6 +36,6 @@ The agentic engineering harness lives in `Harness/`.
36
36
  - Follow `Harness/SETUP.md` before normal work while it exists.
37
37
  - Start at `Harness/README.md`.
38
38
  - Load memory and resource registrations from `Harness/MEMORY.md`.
39
- - Track active work in `Harness/PLAN.md`.
39
+ - Track active work in `Harness/PROGRESS.md` and `Harness/tasks/<task-id>/PROGRESS.md`.
40
40
  - Use `Harness/WF.md` or `/wf` for long, difficult, multi-agent work.
41
41
  - Use `Harness/subagents.md` when coordinating multiple agents.
@@ -9,7 +9,7 @@ This scaffold is a 0-1 product harness:
9
9
  - short agent entry files
10
10
  - dynamic docs router
11
11
  - PRD, research protocol, architecture, ports, data-flow, state templates
12
- - active `Harness/PLAN.md`
12
+ - active `Harness/PROGRESS.md`
13
13
  - `Harness/MEMORY.md` plus a `Harness/memory/` folder for durable self-learning, user corrections, and tool reflections
14
14
  - built-in common agents
15
15
  - subagent orchestration and context-loading protocol
@@ -26,7 +26,7 @@ Start Claude Code, then say:
26
26
  ```text
27
27
  Read Harness/SETUP.md. Bootstrap this project as a 0-1 product harness.
28
28
  Use Harness/README.md as the router. Keep context small.
29
- First clarify the idea, then create PRD, research, architecture, Harness/PLAN.md, and the first vertical-slice task.
29
+ First clarify the idea, then create PRD, research, architecture, Harness/PROGRESS.md and the first per-task plan, and the first vertical-slice task.
30
30
  ```
31
31
 
32
32
  ## Required Bootstrap Sequence
@@ -34,23 +34,23 @@ First clarify the idea, then create PRD, research, architecture, Harness/PLAN.md
34
34
  Claude must follow this order:
35
35
 
36
36
  1. Read `CLAUDE.md`, `Harness/MEMORY.md`, `Harness/README.md`, and `Harness/lifecycle.md`. Load `Harness/memory/*` only when the router or memory trigger applies.
37
- 2. Ask up to 3 blocking product questions. If not blocked, record assumptions in `Harness/PLAN.md`.
37
+ 2. Ask up to 3 blocking product questions. If not blocked, record assumptions in `Harness/tasks/<task-id>/PLAN.md`.
38
38
  3. Fill `Harness/research/PRD.md` with MVP, non-goals, and acceptance criteria.
39
39
  4. Read `Harness/research/README.md`, then fill `Harness/research/research-results.md` with adopted/rejected research choices.
40
40
  5. Fill minimum architecture: `Harness/architecture.md` and one port in `Harness/domain/ports.md`.
41
- 6. Create the first vertical-slice plan in `Harness/PLAN.md`.
41
+ 6. Create a task capsule from `Harness/tasks/_template/` and fill the first vertical-slice plan in `Harness/tasks/<task-id>/PLAN.md`.
42
42
  7. Use `Harness/subagents.md`, `Harness/context-loading.md`, and `Harness/dispatch.md` when explicit WF/WK mode or any spawned subagents are involved.
43
43
  8. Fill `Harness/data-flow.md` or `Harness/state-machines.md` only when the slice changes runtime flow, failure behavior, or state.
44
44
  9. Implement only after a failing test or manual verification step is defined.
45
45
  10. Run `node Harness/scripts/validate-harness.mjs --strict`.
46
- 11. Record final verification and next feedback step in `Harness/PLAN.md`. If repeated tool failures, repeated user corrections, or reusable review/debug lessons appeared, record the concise reflection in the relevant `Harness/memory/` file.
46
+ 11. Record final verification and next feedback step in `Harness/tasks/<task-id>/PROGRESS.md`. If repeated tool failures, repeated user corrections, or reusable review/debug lessons appeared, record the concise reflection in the relevant `Harness/memory/` file.
47
47
 
48
48
  ## Existing Project Bootstrap Sequence
49
49
 
50
50
  When adding this harness to a project that already has source code, docs, CI, or tool configuration, treat the existing project as the source of truth before filling harness docs.
51
51
 
52
52
  1. Scan existing project facts first: `README.md`, package files (`package.json`, `pyproject.toml`, `go.mod`, etc.), test commands, app entry points, CI files, existing docs, and current run/build scripts.
53
- 2. Record discovered facts and open questions in `Harness/PLAN.md` before changing harness docs.
53
+ 2. Record discovered facts and open questions in `Harness/tasks/<task-id>/PROGRESS.md` before changing harness docs.
54
54
  3. Fill `Harness/research/PRD.md`, `Harness/research/research-results.md`, `Harness/architecture.md`, and `Harness/domain/ports.md` from observed project facts plus explicit user input.
55
55
  4. Existing configuration is project fact. Do not overwrite `CLAUDE.md`, `AGENTS.md`, `.claude/`, `.gitignore`, settings, hooks, package files, CI, docs routers, or workflow docs unless the user explicitly approves that exact overwrite.
56
56
  5. When a harness file conflicts with an existing file, preserve the existing file and register any missing harness guidance manually using `Harness/extension.md`.
@@ -123,7 +123,9 @@ The harness validator checks for specific structural invariants. When comparing
123
123
  | `Harness/context-loading.md` | The durable communication invariant; `Harness/README.md is the primary router`; all 10 subagent context packs (Explorer Pass, Planner, Researcher, Docs Researcher, Architect, Test Writer, Implementer, Reviewer, Debugger, Verifier) |
124
124
  | `Harness/subagents.md` | `## Source Attribution`; `## Built-in Agent Roster`; `## WF Default Fan-Out`; `Controller Role`; `Efficiency Ladder`; `Review Gates`; `7:3 collaboration bias`; source markers for `npx skills find`, `dispatching-parallel-agents`, and `subagent-driven-development` |
125
125
  | `Harness/architecture.md` | `## 2. Interface Decoupling`; `## 3. State Design`; `Avoid speculative abstraction`; layer constraints derived from actual project facts |
126
- | `Harness/PLAN.md` | `## Current Goal`, `## Phase`, `## Success Criteria`, `## Loaded Context`, `## Tasks`, `## Parallel Dispatch`, `## Subagent Synthesis`, `## Verification` headings |
126
+ | `Harness/PROGRESS.md` | global task index with Active Task and task history; cross-task decisions |
127
+ | `Harness/tasks/<id>/PROGRESS.md` | `## Current Goal`, `## Phase`, `## Heartbeat`, `## Loaded Context` headings |
128
+ | `Harness/tasks/<id>/PLAN.md` | `## Tasks`, `## Parallel Dispatch`, `## Subagent Synthesis`, `## Verification` headings |
127
129
  | `Harness/SETUP.md` | Only meaningful for fresh projects. If the project has its own onboarding docs, skip this file entirely (it is temporary). If kept, ensure the "Existing Project Bootstrap Sequence" is present. |
128
130
  | `Harness/workflows/browser-e2e.md` (if installed as optional) | `data-testid`, `accessible labels/roles`, and `inputs, buttons, filters, rows, empty/error/loading states` requirement |
129
131
  | `Harness/workflows/ts-react-frontend.md` (if installed as optional) | Same UI selector contract as above |
@@ -133,7 +135,8 @@ The harness validator checks for specific structural invariants. When comparing
133
135
 
134
136
  - `Harness/memory/tool-usage-reflections.md`, `Harness/memory/user-corrections-preferences.md`, `Harness/memory/agent-lessons-patterns.md` — these are new empty files
135
137
  - `.claude/agents/*.md` — all 9 common agents
136
- - `.claude/skills/harness-*/SKILL.md`, `.claude/skills/wf-mode/SKILL.md`, and `.claude/skills/subagent-orchestrator/SKILL.md` — core harness skills, WF mode, and subagent orchestration
138
+ - `.claude/skills/harness-*/SKILL.md`, `.claude/skills/wf-mode/SKILL.md`, `.claude/skills/wf-update/SKILL.md`, and `.claude/skills/subagent-orchestrator/SKILL.md` — core harness skills, WF mode, and subagent orchestration
139
+ - `.claude/commands/update.md` — /wf update command bridge
137
140
  - `.claude/rules/ecc/common.md` — universal rules (unless the project has custom rules in this file)
138
141
  - `.claude/settings.json` — harness settings
139
142
  - `Harness/WF.md`, `Harness/lifecycle.md`, `Harness/subagents.md`, `Harness/agent-workflow.md`, `Harness/architecture.md`, `Harness/data-flow.md`, `Harness/state-machines.md` — harness runtime docs
@@ -151,7 +154,7 @@ npx create-harness-vibe-coding@latest my-app ./my-app -y --preset web-app
151
154
 
152
155
  ### Template Fill Guide
153
156
 
154
- Each template doc contains `{{PLACEHOLDER}}` markers. Below is what every placeholder expects. Replace all markers in the doc before moving to the next doc. If a section does not apply yet, leave the `{{...}}` but record why in `Harness/PLAN.md`.
157
+ Each template doc contains `{{PLACEHOLDER}}` markers. Below is what every placeholder expects. Replace all markers in the doc before moving to the next doc. If a section does not apply yet, leave the `{{...}}` but record why in `Harness/tasks/<task-id>/PLAN.md`.
155
158
 
156
159
  **`Harness/research/PRD.md`** — Product scope. Fill with product facts from user input, not guesses:
157
160
  - `{{WHY_THIS_PROJECT_EXISTS}}`: one-sentence motivation
@@ -181,9 +184,16 @@ Each template doc contains `{{PLACEHOLDER}}` markers. Below is what every placeh
181
184
  - For each port: fill Purpose, Preconditions, Postconditions, Error Semantics, Idempotency.
182
185
  - Leave remaining rows as `{{...}}` until more slices add ports.
183
186
 
184
- **`Harness/PLAN.md`** — Active execution state. Update continuously:
187
+ **`Harness/PROGRESS.md`** — Global task index. Update at session start and task closeout:
188
+ - `## Active Task`: current active task ID.
189
+ - `## Task History`: closed tasks with date, result, and archive path.
190
+
191
+ **`Harness/tasks/<id>/PROGRESS.md`** — Per-task progress state. Update continuously:
185
192
  - `## Current Goal`: one sentence, what this iteration achieves.
186
193
  - `## Phase`: current lifecycle phase (Idea/Research/PRD/Architecture/Plan/Build/Verify/Feedback).
194
+ - `## Heartbeat`: last beat time, mode, blocker, recovery action.
195
+
196
+ **`Harness/tasks/<id>/PLAN.md`** — Per-task implementation plan and evidence. Update continuously:
187
197
  - `## Success Criteria`: verifiable outcomes for this iteration.
188
198
  - `## Tasks`: numbered tasks with owner, write set, and verify command.
189
199
  - `## Parallel Dispatch`: only when spawning subagents — fill agent roles, read/write boundaries.
@@ -198,11 +208,11 @@ Each template doc contains `{{PLACEHOLDER}}` markers. Below is what every placeh
198
208
  - `{{EVENT_1}}`: the first event type with producer, consumers, payload fields, delivery semantics.
199
209
  - Happy Path: fill the Mermaid sequence diagram with actual ports and actions.
200
210
  - Failure Paths: for each failure point, document trigger, system behavior, event, caller perception, recovery.
201
- - If the first slice is synchronous and stateless, leave this doc as `{{...}}` and note in PLAN.md.
211
+ - If the first slice is synchronous and stateless, leave this doc as `{{...}}` and note in `Harness/tasks/<task-id>/PLAN.md`.
202
212
 
203
213
  **`Harness/state-machines.md`** — State transitions (only when first slice has stateful entities):
204
214
  - Define states, transitions, guards, and illegal transitions for the first stateful entity.
205
- - If no stateful entity exists in the first slice, leave as `{{...}}` and note in PLAN.md.
215
+ - If no stateful entity exists in the first slice, leave as `{{...}}` and note in `Harness/tasks/<task-id>/PLAN.md`.
206
216
 
207
217
  **General rules for all templates**:
208
218
  - Replace `{{projectName}}` with the actual project name immediately.
@@ -234,7 +244,7 @@ After research, fill these docs in order:
234
244
  3. `Harness/domain/ports.md` — Define ONE driving port and ONE driven port from the first vertical slice. More ports come with more slices.
235
245
  4. `Harness/data-flow.md` — Fill the happy path for the first slice only. Add failure paths when they differ from the happy path.
236
246
 
237
- **Constraint**: If the research does not give you enough confidence to fill a section, leave the `{{...}}` placeholder and record the open question in `Harness/PLAN.md`. The strict validator will catch it.
247
+ **Constraint**: If the research does not give you enough confidence to fill a section, leave the `{{...}}` placeholder and record the open question in `Harness/tasks/<task-id>/PLAN.md`. The strict validator will catch it.
238
248
 
239
249
  ## User Confirmation Protocol (Non-Negotiable)
240
250
 
@@ -245,7 +255,7 @@ When user intent is unclear or ambiguous:
245
255
  - **Maximum 3 blocking questions per decision point.** Ask the highest-impact questions first.
246
256
  - **Do not act on assumptions that affect architecture, scope, stack, or user-facing behavior.**
247
257
  - **You must have ≥95% confidence before writing implementation code.** If below that threshold, stop and ask.
248
- - **Record every assumption explicitly** in `Harness/PLAN.md` so the user can correct it later.
258
+ - **Record every assumption explicitly** in `Harness/tasks/<task-id>/PLAN.md` so the user can correct it later.
249
259
  - **Silent picks are forbidden.** If two valid approaches exist and you cannot decide with high confidence, present both to the user with trade-offs.
250
260
 
251
261
  False confidence is worse than a question. If you catch yourself thinking "this is probably what they want," stop and ask.
@@ -2,7 +2,7 @@
2
2
 
3
3
  Purpose: route humans and agents to the smallest useful context. `Harness/README.md` is the primary router.
4
4
 
5
- Default load: `CLAUDE.md`, `Harness/MEMORY.md`, this file, and `Harness/PLAN.md` when work is active. Do not read the whole `Harness/` tree.
5
+ Default load: `CLAUDE.md`, `Harness/MEMORY.md`, this file, and `Harness/PROGRESS.md` when work is active. Do not read the whole `Harness/` tree.
6
6
 
7
7
  ## 0-1 Flow
8
8
 
@@ -17,7 +17,7 @@ For the full phase contract, load [lifecycle.md](lifecycle.md).
17
17
  - This file is a router, not a full spec.
18
18
  - If the task does not clearly match a row below, search by keywords before loading more docs.
19
19
  - project files are the only durable communication channel; chat/subagent transcript state is non-authoritative.
20
- - Important assumptions, decisions, blockers, evidence, and handoffs must be written to [PLAN.md](PLAN.md), the current feature doc, `Harness/MEMORY.md`, or `Harness/memory/*` as appropriate.
20
+ - Important assumptions, decisions, blockers, evidence, and handoffs must be written to the current task's `tasks/<id>/PROGRESS.md` and `tasks/<id>/PLAN.md`, the current feature doc, `Harness/MEMORY.md`, or `Harness/memory/*` as appropriate.
21
21
  - Build commands, git conventions, and release notes belong in root `README.md`, not `CLAUDE.md`.
22
22
  - README rewrites are optional project-doc work. Use `readme-optimizer` and preserve existing public docs unless the user approves a broader restructure.
23
23
  - Code architecture belongs in [architecture.md](architecture.md) or the current feature doc, not `CLAUDE.md`.
@@ -29,7 +29,7 @@ For the full phase contract, load [lifecycle.md](lifecycle.md).
29
29
  - Subagent orchestration methodology lives in [subagents.md](subagents.md).
30
30
  - Extension rules live in [extension.md](extension.md).
31
31
  - Context-loading rules live in [context-loading.md](context-loading.md).
32
- - Progress lives in [PLAN.md](PLAN.md) and the current feature doc.
32
+ - Progress lives in `Harness/PROGRESS.md`, `Harness/tasks/<task-id>/PROGRESS.md`, `Harness/tasks/<task-id>/PLAN.md`, and the current feature doc.
33
33
 
34
34
  ## Keyword Routing
35
35
 
@@ -43,7 +43,7 @@ rg -n "keyword1|keyword2|keyword3" CLAUDE.md README.md Harness
43
43
  ```
44
44
 
45
45
  3. Load only the top matching doc or the smallest matching doc pair.
46
- 4. If keyword search conflicts with the table below, follow the table and record the assumption in `Harness/PLAN.md`.
46
+ 4. If keyword search conflicts with the table below, follow the table and record the assumption in `Harness/tasks/<task-id>/PROGRESS.md`.
47
47
 
48
48
  Keywords are retrieval hints, not project facts.
49
49
 
@@ -51,7 +51,7 @@ Keywords are retrieval hints, not project facts.
51
51
 
52
52
  Load the matching row only. Add adjacent docs only when the loaded doc directly names them.
53
53
 
54
- Routing priority: if a request explicitly says `/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. `wf-mode` may then delegate subagent coordination to `subagent-orchestrator`.
54
+ Routing priority: if a request explicitly says `/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. `wf-mode` MUST then delegate subagent coordination to `subagent-orchestrator`.
55
55
 
56
56
  | When to Read | Keywords | Load | Output |
57
57
  | --- | --- | --- | --- |
@@ -59,13 +59,13 @@ Routing priority: if a request explicitly says `/wf`, `wf mode`, `workflow mode`
59
59
  | 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 |
60
60
  | Need MVP/spec | PRD, MVP, scope, requirement, acceptance, non-goal | [research/PRD.md](research/PRD.md) | one-page PRD with verifiable acceptance criteria |
61
61
  | Need architecture or boundaries | architecture, boundary, layer, domain, port, adapter, dependency | [architecture.md](architecture.md), [domain/ports.md](domain/ports.md) | layer map, ports, constraints |
62
- | Need WF mode | wf, /wf, wf mode, workflow mode, wk mode, long task, difficult, stuck, repeated failure | [WF.md](WF.md), [PLAN.md](PLAN.md) | exploration plan, second plan, heartbeat, recovery loop; explicit WF/WK loads subagent docs immediately |
63
- | Adding harness to existing project | existing project, onboarding, migrate, bootstrap, preserve, conflict | [extension.md](extension.md), [PLAN.md](PLAN.md), root `README.md` and package/CI files | discovered project facts, preserved config, manual registration plan |
64
- | README optimization | README, docs, quickstart, install docs, architecture diagram, command table, documentation polish | root `README.md`, `.claude/skills/readme-optimizer/SKILL.md`, [PLAN.md](PLAN.md), [architecture.md](architecture.md) as needed | approved README mode, preserved sections, proposed diff plan |
65
- | Need implementation plan | plan, task, write set, verify, milestone, progress | [PLAN.md](PLAN.md), [agent-workflow.md](agent-workflow.md) | tasks, write set, verification commands |
66
- | Need parallel agents | parallel, dispatch, handoff, write set, dependency, status | [subagents.md](subagents.md), [dispatch.md](dispatch.md), [context-loading.md](context-loading.md), [PLAN.md](PLAN.md) | orchestration plan, dispatch table, agent roles, read/write sets |
62
+ | Need WF mode | 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` | exploration plan, second plan, heartbeat, recovery loop; explicit WF/WK loads subagent docs immediately |
63
+ | 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 |
64
+ | README optimization | README, docs, quickstart, install docs, architecture diagram, command table, documentation polish | root `README.md`, `.claude/skills/readme-optimizer/SKILL.md`, [PROGRESS.md](PROGRESS.md), [architecture.md](architecture.md) as needed | approved README mode, preserved sections, proposed diff plan |
65
+ | 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) | tasks, write set, verification commands |
66
+ | Need parallel agents | parallel, dispatch, handoff, write set, dependency, status | [subagents.md](subagents.md), [dispatch.md](dispatch.md), [context-loading.md](context-loading.md), the current task `tasks/<id>/PROGRESS.md` and `tasks/<id>/PLAN.md` | orchestration plan, dispatch table, agent roles, read/write sets |
67
67
  | Adding stack-specific agents/skills | extension, agent, skill, rule, hook, stack-specific, compatibility | [extension.md](extension.md), [dispatch.md](dispatch.md) | compatible agents, skills, rules, hooks |
68
- | Optional workflow installed | workflow, optional, browser-e2e, ui-ux-review, github-pr-review, python-backend, ts-react-frontend | matching `workflows/*.md`, [extension.md](extension.md) | workflow-specific evidence, commands, fallback path |
68
+ | Optional workflow installed | workflow, optional, browser-e2e, 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 |
69
69
  | Need durable memory or reflection | memory, remember, preference, correction, tool failure, lesson, reflection | [MEMORY.md](MEMORY.md), `Harness/memory/tool-usage-reflections.md`, `Harness/memory/user-corrections-preferences.md`, `Harness/memory/agent-lessons-patterns.md` | concise newest-first memory entry or no-op rationale |
70
70
  | Need subagents | subagent, role pack, context, inject, return format, orchestrator | [subagents.md](subagents.md), [context-loading.md](context-loading.md), [dispatch.md](dispatch.md) | controller plan, role-specific context pack, dispatch pack |
71
71
  | Need feature work | feature, implementation, TDD, test, review, closeout | [features/_template.md](features/_template.md), [agent-workflow.md](agent-workflow.md) | feature doc, tests, implementation loop |
@@ -73,6 +73,7 @@ Routing priority: if a request explicitly says `/wf`, `wf mode`, `workflow mode`
73
73
  | Stateful behavior changes | state, transition, guard, illegal transition, state machine | [state-machines.md](state-machines.md) | states, transitions, illegal transitions |
74
74
  | Review or release check | review, release, finding, risk, evidence, verification | [agent-workflow.md](agent-workflow.md), current feature doc | findings, verification evidence |
75
75
  | Harness readiness check | validate, readiness, placeholder, missing file, release gate | `Harness/scripts/validate-harness.mjs`, `Harness/scripts/validate-harness.mjs --strict` | missing files and unresolved project placeholders |
76
+ | Need harness update | update, /wf update, check for updates, harness version | `.claude/skills/wf-update/SKILL.md`, `Harness/.harness-version` | update plan, safe incremental update, merge candidates |
76
77
 
77
78
  ## Gates
78
79
 
@@ -85,11 +86,11 @@ Routing priority: if a request explicitly says `/wf`, `wf mode`, `workflow mode`
85
86
  - Unsure whether to open a feature doc? Read `agent-workflow.md` Section 1.
86
87
  - Do not spawn a subagent without a role, read boundary, write boundary, and return contract.
87
88
  - Do not run writing agents in parallel unless write sets are disjoint.
88
- - Before coordinating multiple agents, fill `PLAN.md#Parallel Dispatch` and follow `subagents.md` plus `dispatch.md`; if the work also matches WF triggers, enter WF mode first.
89
- - In WF mode, update `PLAN.md#Heartbeat` before long commands, after failures, and at closeout.
89
+ - 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.
90
+ - In WF mode, update `Harness/tasks/<task-id>/PROGRESS.md#Heartbeat` before long commands, after failures, and at closeout.
90
91
  - Do not add stack-specific agents or skills without following `extension.md`.
91
92
  - Do not close work without tests or recorded manual verification.
92
- - Do not mark work `Verified` until evidence is recorded in `PLAN.md` or the feature doc.
93
+ - Do not mark work `Verified` until evidence is recorded in the current task's `tasks/<id>/PROGRESS.md` and `tasks/<id>/PLAN.md` or the feature doc.
93
94
  - Run `node Harness/scripts/validate-harness.mjs` for scaffold structure; run `node Harness/scripts/validate-harness.mjs --strict` after bootstrap and before release.
94
95
  - If a doc still has `{{...}}`, treat that section as a template, not project fact.
95
96
 
@@ -98,7 +99,10 @@ Routing priority: if a request explicitly says `/wf`, `wf mode`, `workflow mode`
98
99
  ```text
99
100
  Harness/README.md router only
100
101
  Harness/MEMORY.md resource index
101
- Harness/PLAN.md active execution plan and heartbeat
102
+ Harness/PROGRESS.md global task index and cross-task decisions
103
+ Harness/tasks/<id>/PROGRESS.md per-task progress, phase, heartbeat
104
+ Harness/tasks/<id>/PLAN.md per-task implementation plan and evidence
105
+ Harness/tasks/_template/ task capsule template (copy to create new task)
102
106
  Harness/WF.md long-task workflow and recovery loop
103
107
  Harness/lifecycle.md 0-1 product flow
104
108
  Harness/subagents.md controller-led subagent orchestration
@@ -114,7 +118,7 @@ Harness/features/_template.md feature work packet
114
118
  Harness/research/README.md research protocol
115
119
  Harness/research/PRD.md product scope
116
120
  Harness/research/research-results.md research results
117
- Harness/workflows/*.md optional workflow evidence rules
121
+ Harness/workflows/*.md optional workflow evidence rules (if installed)
118
122
  Harness/memory/tool-usage-reflections.md repeated tool failures and better command patterns
119
123
  Harness/memory/user-corrections-preferences.md durable user corrections and preferences
120
124
  Harness/memory/agent-lessons-patterns.md reusable review/debug lessons
@@ -123,4 +127,7 @@ Harness/scripts/validate-harness.mjs lightweight harness gate
123
127
  .claude/skills/* skill-style dynamic loaders
124
128
  .claude/skills/readme-optimizer/SKILL.md README preservation and optional structure pass
125
129
  .claude/commands/wf.md slash command bridge into wf-mode
130
+ .claude/skills/wf-update/SKILL.md GitHub-based harness update
131
+ .claude/commands/update.md /wf update slash command bridge
132
+ Harness/.harness-version scaffold version and file checksums
126
133
  ```
@@ -34,7 +34,17 @@
34
34
  - [ ] {{ACCEPTANCE_CRITERION_2}}
35
35
  - [ ] {{ACCEPTANCE_CRITERION_3}}
36
36
 
37
- ### 1.5 UI Automation Hooks
37
+ ### 1.5 Optimistic UI Rollback
38
+
39
+ If any UI mutation happens before an async operation completes (DOM replacement,
40
+ state update, visual feedback), list the rollback path for when the operation fails:
41
+
42
+ | Mutation | Failure Recovery |
43
+ |----------|-----------------|
44
+ | {{MUTATION_1}} | {{ROLLBACK_1}} |
45
+ | Not applicable — no optimistic mutations are used. | |
46
+
47
+ ### 1.6 UI Automation Hooks
38
48
 
39
49
  For TS/React or browser workflows, define required stable accessible labels/roles and stable test hooks such as `data-testid` before implementation. These selectors must cover critical UI controls and states so CDP, Playwright, and manual verification can target inputs, buttons, filters, rows, empty/error/loading states, dialogs, navigation, and submitted/saved/error feedback without brittle DOM paths.
40
50
 
@@ -1,103 +1,52 @@
1
- # PLAN.md - Active Execution Plan
1
+ # PLAN.md DEPRECATED
2
2
 
3
- Use this file when work spans more than one step, one file, or one agent.
3
+ Workflow state has moved to task-capsule structure. Do not append new content here.
4
4
 
5
- ## Current Goal
5
+ Active state:
6
+ - `Harness/PROGRESS.md` — global task index and cross-task decisions
7
+ - `Harness/tasks/<task-id>/PROGRESS.md` — per-task progress, phase, heartbeat
8
+ - `Harness/tasks/<task-id>/PLAN.md` — per-task implementation plan, verification evidence
6
9
 
7
- {{CURRENT_GOAL}}
10
+ Templates:
11
+ - `Harness/tasks/_template/` — copy this directory to create a new task
8
12
 
9
- ## Phase
13
+ ## Legacy Content (historical reference only)
10
14
 
11
- Choose one: Idea / Research / PRD / Architecture / Plan / Build / Verify / Feedback.
15
+ The sections below are archived from the monolithic PLAN.md era. Active task data has been migrated to `Harness/tasks/`.
12
16
 
13
- Current: {{CURRENT_PHASE}}
17
+ ---
14
18
 
15
- ## Heartbeat
19
+ ### Historical: Dogfood Bootstrap
16
20
 
17
- Mode: normal
18
- Last beat: {{LAST_BEAT}}
19
- Current phase: {{CURRENT_PHASE}}
20
- Current blocker: {{CURRENT_BLOCKER_OR_NONE}}
21
- Next beat trigger: {{NEXT_BEAT_TRIGGER}}
22
- Failure count: 0
23
- Recovery action: {{RECOVERY_ACTION_OR_NONE}}
21
+ Goal: Dogfood the generated Harness scaffold inside this repository so future agents use root `Harness/` routing instead of stale `docs/harness/` guidance.
24
22
 
25
- Update this section before long commands, after long commands, before and after subagent handoffs, after failed verification, and before stopping for user input. In `wf-mode`, use this as the resume point after context loss or interruption.
23
+ **Success Criteria** (all verified):
24
+ - [x] Root `CLAUDE.md` routes through `Harness/MEMORY.md` and `Harness/README.md`
25
+ - [x] Root `MEMORY.md` no longer contains stale `docs/harness/` paths or template placeholders
26
+ - [x] Root `Harness/` and `.claude/` dogfood runtime assets exist
27
+ - [x] Harness strict validation passes
28
+ - [x] Repository tests pass
26
29
 
27
- ## Progress Rules
28
-
29
- - Phase tracks lifecycle progress.
30
- - Task status tracks execution progress.
31
- - Update before handoff, after verification, and when blocked.
32
-
33
- Allowed task statuses: Pending / In Progress / Blocked / Done / Verified.
34
-
35
- - Pending: not started.
36
- - In Progress: active work.
37
- - Blocked: needs user input or external change.
38
- - Done: task complete, evidence not final.
39
- - Verified: verification evidence is recorded.
40
-
41
- ## Success Criteria
42
-
43
- - [ ] {{CRITERION_1}}
44
- - [ ] {{CRITERION_2}}
45
- - [ ] {{CRITERION_3}}
46
-
47
- ## Scope
48
-
49
- Allowed write set:
50
- - `{{PATH_OR_GLOB}}`
51
-
52
- Forbidden:
53
- - {{OUT_OF_SCOPE}}
54
-
55
- ## Loaded Context
56
-
57
- Keep this list short. Add only docs/files used for the current phase.
58
-
59
- - `Harness/README.md`
60
- - `{{LOADED_DOC_OR_FILE}}`
61
-
62
- ## Tasks
63
-
64
- | # | Task | Owner | Verify | Status |
65
- | --- | --- | --- | --- | --- |
66
- | 1 | {{TASK}} | {{OWNER}} | `{{COMMAND_OR_CHECK}}` | Pending |
67
-
68
- ## Parallel Dispatch
69
-
70
- Use [subagents.md](subagents.md) and [dispatch.md](dispatch.md) when more than one agent or bounded pass is useful.
71
-
72
- | Task | Agent | Mode | Read Set | Write Set | Depends On | Output | Status |
73
- | --- | --- | --- | --- | --- | --- | --- | --- |
74
- | {{TASK}} | {{AGENT}} | Parallel Read / Serial Write / Isolated Worktree | `{{READ_SET}}` | `{{WRITE_SET_OR_NONE}}` | {{DEPENDENCY_OR_NONE}} | {{EXPECTED_OUTPUT}} | Pending |
75
-
76
- ## Subagent Synthesis
77
-
78
- Agents used:
79
- Findings accepted:
80
- Findings rejected:
81
- Conflicts:
82
- Decisions:
83
- Next write set:
84
- Verification path:
85
- Residual risk:
86
-
87
- ## Agent Handoffs
88
-
89
- | Agent | Role | Context Pack | Result |
90
- | --- | --- | --- | --- |
91
- | {{AGENT}} | {{ROLE}} | {{DOCS_OR_FILES}} | {{SUMMARY}} |
30
+ **Decisions:**
31
+ | Date | Decision | Reason |
32
+ |------|----------|--------|
33
+ | 2026-06-24 | Dogfood root `Harness/` while keeping templates under `templates/` | Separate package source from operating harness |
34
+ | 2026-06-24 | memory-master + context-master added to commonAgents | Global memory and context management |
92
35
 
93
- ## Decisions
36
+ ### Historical: WF Conflict Fix
94
37
 
95
- | Date | Decision | Reason |
96
- | --- | --- | --- |
97
- | {{YYYY-MM-DD}} | {{DECISION}} | {{REASON}} |
38
+ Goal: Fix WF-mode orphaned files and conflicts: align commands/wf.md, resolve subagent count tension, fix README "may" vs "MUST", add memory-master and context-master agents.
98
39
 
99
- ## Verification
40
+ **Subagent Dispatch:**
41
+ | Agent | Mode | Purpose | Status |
42
+ |-------|------|---------|--------|
43
+ | Subagent 1 | Serial Write | Create memory-master.md, context-master.md, update commands/wf.md | Verified |
44
+ | Subagent 2 | Serial Write | Fix agent-workflow.md, dispatch.md, README.md conflicts | Verified |
45
+ | Subagent 3 | Serial Write | Update WF.md, wf-mode/SKILL.md, subagents.md, MEMORY.md, context-loading.md, CLAUDE.md, validate-harness.mjs | Verified |
46
+ | Subagent 4 | Serial Write | Sync template changes to dogfood runtime files | Verified |
100
47
 
48
+ **Verification:**
101
49
  | Check | Result | Notes |
102
- | --- | --- | --- |
103
- | `{{CHECK}}` | Not run | {{NOTES}} |
50
+ |-------|--------|-------|
51
+ | `node Harness/scripts/validate-harness.mjs --strict` | Pass | all invariants preserved |
52
+ | `npm test` | Pass | 58/58 tests passed |
@@ -0,0 +1,17 @@
1
+ # PROGRESS.md
2
+
3
+ Global task index. Load at session start to see what is active and what was done.
4
+
5
+ ## Active Task
6
+
7
+ None — create a new task from `Harness/tasks/_template/` when work spans more than one step.
8
+
9
+ ## Task Index
10
+
11
+ | ID | Goal | Phase | Closed |
12
+ |----|------|-------|--------|
13
+
14
+ ## Cross-Task Decisions
15
+
16
+ | Date | Decision | Reason |
17
+ |------|----------|--------|