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.
- package/README.md +104 -21
- package/package.json +1 -1
- package/src/generator.js +2 -0
- package/templates/common/.claude/agents/context-master.md +78 -0
- package/templates/common/.claude/agents/debugger.md +1 -1
- package/templates/common/.claude/agents/docs-researcher.md +1 -1
- package/templates/common/.claude/agents/implementer.md +1 -1
- package/templates/common/.claude/agents/memory-master.md +67 -0
- package/templates/common/.claude/agents/planner.md +1 -1
- package/templates/common/.claude/agents/researcher.md +1 -1
- package/templates/common/.claude/agents/test-writer.md +1 -1
- package/templates/common/.claude/agents/verifier.md +1 -1
- package/templates/common/.claude/commands/update.md +11 -0
- package/templates/common/.claude/commands/wf.md +10 -4
- package/templates/common/.claude/rules/ecc/common.md +2 -2
- package/templates/common/.claude/skills/harness-build-loop/SKILL.md +2 -1
- package/templates/common/.claude/skills/harness-context/SKILL.md +2 -1
- package/templates/common/.claude/skills/harness-lifecycle/SKILL.md +2 -1
- package/templates/common/.claude/skills/harness-research/SKILL.md +2 -1
- package/templates/common/.claude/skills/harness-router/SKILL.md +1 -1
- package/templates/common/.claude/skills/readme-optimizer/SKILL.md +3 -2
- package/templates/common/.claude/skills/subagent-orchestrator/SKILL.md +5 -3
- package/templates/common/.claude/skills/wf-mode/SKILL.md +9 -4
- package/templates/common/.claude/skills/wf-update/SKILL.md +58 -0
- package/templates/common/.harness-version +8 -0
- package/templates/common/CLAUDE.md +13 -4
- package/templates/common/MEMORY.md +6 -1
- package/templates/common/README.md +2 -2
- package/templates/common/SETUP.md +24 -14
- package/templates/common/docs/README.md +23 -16
- package/templates/common/docs/features/_template.md +11 -1
- package/templates/common/docs/harness/PLAN.md +37 -88
- package/templates/common/docs/harness/PROGRESS.md +17 -0
- package/templates/common/docs/harness/WF.md +17 -9
- package/templates/common/docs/harness/agent-workflow.md +19 -7
- package/templates/common/docs/harness/architecture.md +1 -1
- package/templates/common/docs/harness/context-loading.md +17 -5
- package/templates/common/docs/harness/dispatch.md +9 -6
- package/templates/common/docs/harness/extension.md +4 -4
- package/templates/common/docs/harness/lifecycle.md +2 -2
- package/templates/common/docs/harness/subagents.md +12 -7
- package/templates/common/docs/research/README.md +3 -3
- package/templates/common/docs/tasks/_template/ARTIFACTS.md +3 -0
- package/templates/common/docs/tasks/_template/NOTES.md +3 -0
- package/templates/common/docs/tasks/_template/PLAN.md +40 -0
- package/templates/common/docs/tasks/_template/PROGRESS.md +29 -0
- 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
|
|
@@ -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
|
|
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
|
-
-
|
|
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
|
|
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
|
-
- [
|
|
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/
|
|
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/
|
|
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/
|
|
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/
|
|
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/
|
|
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/
|
|
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/
|
|
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/
|
|
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/
|
|
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
|
|
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
|
|
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/
|
|
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`
|
|
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), [
|
|
63
|
-
| Adding harness to existing project | existing project, onboarding, migrate, bootstrap, preserve, conflict | [extension.md](extension.md), [
|
|
64
|
-
| README optimization | README, docs, quickstart, install docs, architecture diagram, command table, documentation polish | root `README.md`, `.claude/skills/readme-optimizer/SKILL.md`, [
|
|
65
|
-
| Need implementation plan | plan, task, write set, verify, milestone, progress | [
|
|
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),
|
|
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
|
|
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#
|
|
89
|
-
- In WF mode, update `
|
|
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/
|
|
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
|
|
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
|
|
1
|
+
# PLAN.md — DEPRECATED
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
Workflow state has moved to task-capsule structure. Do not append new content here.
|
|
4
4
|
|
|
5
|
-
|
|
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
|
-
|
|
10
|
+
Templates:
|
|
11
|
+
- `Harness/tasks/_template/` — copy this directory to create a new task
|
|
8
12
|
|
|
9
|
-
##
|
|
13
|
+
## Legacy Content (historical reference only)
|
|
10
14
|
|
|
11
|
-
|
|
15
|
+
The sections below are archived from the monolithic PLAN.md era. Active task data has been migrated to `Harness/tasks/`.
|
|
12
16
|
|
|
13
|
-
|
|
17
|
+
---
|
|
14
18
|
|
|
15
|
-
|
|
19
|
+
### Historical: Dogfood Bootstrap
|
|
16
20
|
|
|
17
|
-
|
|
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
|
-
|
|
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
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
-
|
|
31
|
-
-
|
|
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
|
-
|
|
36
|
+
### Historical: WF Conflict Fix
|
|
94
37
|
|
|
95
|
-
|
|
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
|
-
|
|
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
|
-
| `
|
|
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
|
+
|------|----------|--------|
|