create-harness-vibe-coding 0.6.5 → 0.7.1
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/package.json +2 -1
- package/src/generator.js +95 -2
- package/templates/common/.claude/agents/architect-manager.md +45 -0
- package/templates/common/.claude/agents/explore-manager.md +41 -0
- package/templates/common/.claude/agents/implement-manager.md +49 -0
- package/templates/common/.claude/agents/review-manager.md +56 -0
- package/templates/common/.claude/commands/wf-max.md +28 -14
- package/templates/common/.claude/commands/wf-remove.md +23 -0
- package/templates/common/.claude/commands/wf-review.md +13 -20
- package/templates/common/.claude/commands/wf-update.md +6 -4
- package/templates/common/.claude/settings.json +33 -0
- package/templates/common/.claude/skills/subagent-orchestrator/SKILL.md +1 -1
- package/templates/common/.claude/skills/wf-max/SKILL.md +34 -8
- package/templates/common/.claude/skills/wf-remove/SKILL.md +51 -0
- package/templates/common/.claude/skills/wf-review/SKILL.md +72 -50
- package/templates/common/.claude/skills/wf-update/SKILL.md +74 -58
- package/templates/common/.codex/config.toml +2 -0
- package/templates/common/.codex/hooks.json +37 -0
- package/templates/common/.harness-version +130 -3
- package/templates/common/AGENTS.md +26 -3
- package/templates/common/CLAUDE.md +94 -77
- package/templates/common/MEMORY.md +75 -73
- package/templates/common/SETUP.md +1 -2
- package/templates/common/commands/wf-max.toml +18 -0
- package/templates/common/commands/wf-review.toml +15 -0
- package/templates/common/docs/README.md +2 -2
- package/templates/common/docs/harness/WF-MAX.md +99 -10
- package/templates/common/docs/harness/WF.md +5 -0
- package/templates/common/docs/harness/dispatch.md +4 -0
- package/templates/common/scripts/scan-clean.mjs +456 -0
- package/templates/common/scripts/validate-harness.mjs +9 -0
- package/templates/common/scripts/wf-mode-hook.mjs +318 -0
- package/templates/common/scripts/wf-remove.mjs +396 -0
- package/templates/common/scripts/wf-statusline.ps1 +38 -0
- package/templates/common/scripts/wf-statusline.sh +48 -0
- package/templates/common/scripts/wf-update-check.mjs +389 -0
- package/templates/optional/skills/browser-e2e/docs/workflows/browser-e2e.md +12 -0
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: wf-remove
|
|
3
|
+
description: Safely remove Harness framework files. Auto-removes unmodified files, requires user confirmation for anything modified or uncertain. Use for /wf-remove, wf remove, remove harness, or uninstall harness.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# WF Remove
|
|
7
|
+
|
|
8
|
+
Safely removes Harness framework files from a project. Classification is script-driven for speed — no AI guessing about what's safe to delete.
|
|
9
|
+
|
|
10
|
+
## Load
|
|
11
|
+
|
|
12
|
+
- `Harness/scripts/wf-remove.mjs` — the removal script
|
|
13
|
+
- `Harness/.harness-version` — stored checksums for modification detection
|
|
14
|
+
|
|
15
|
+
## How It Works
|
|
16
|
+
|
|
17
|
+
1. Run `node Harness/scripts/wf-remove.mjs` first — this outputs a DRY-RUN plan instantly.
|
|
18
|
+
2. The script classifies all files into three tiers:
|
|
19
|
+
|
|
20
|
+
| Tier | Meaning | Action |
|
|
21
|
+
|------|---------|--------|
|
|
22
|
+
| **SAFE** | Framework file matching stored checksum (unmodified) | Auto-remove |
|
|
23
|
+
| **MODIFIED** | Framework file edited by user, or not in checksums | **MUST confirm with user** |
|
|
24
|
+
| **USER DATA** | User-owned files (PROGRESS, tasks, memory, research, README, etc.) | **NEVER remove** |
|
|
25
|
+
|
|
26
|
+
3. Review the plan. For MODIFIED files, present each one to the user:
|
|
27
|
+
- Show file path and reason it's flagged
|
|
28
|
+
- Options: **[D]elete** / **[K]eep** (default: keep)
|
|
29
|
+
- Never delete without explicit user confirmation
|
|
30
|
+
|
|
31
|
+
4. Run `node Harness/scripts/wf-remove.mjs --apply` to execute.
|
|
32
|
+
5. After removal, empty directories are auto-cleaned up.
|
|
33
|
+
6. The CLAUDE.md Harness Binding section is flagged for separate confirmation.
|
|
34
|
+
|
|
35
|
+
## Rules
|
|
36
|
+
|
|
37
|
+
- **NEVER delete USER DATA files.** No exceptions.
|
|
38
|
+
- **NEVER delete MODIFIED files without user confirmation.** Each file must be explicitly approved.
|
|
39
|
+
- **DO auto-remove SAFE files** — these match the original scaffold checksum, user never touched them.
|
|
40
|
+
- After removal, suggest `git status` to review.
|
|
41
|
+
- If `.claude/settings.json` was modified (user added hooks/permissions), flag it separately — the user may want to keep their hooks.
|
|
42
|
+
- Do NOT auto-delete Harness/ if it still contains user files.
|
|
43
|
+
|
|
44
|
+
## Return
|
|
45
|
+
|
|
46
|
+
- Files removed (safe)
|
|
47
|
+
- Files kept (modified, user chose keep)
|
|
48
|
+
- Files preserved (user data — never touched)
|
|
49
|
+
- Directories cleaned up
|
|
50
|
+
- CLAUDE.md status
|
|
51
|
+
- Git status suggestion
|
|
@@ -1,50 +1,72 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: wf-review
|
|
3
|
-
description: Cross-model peer review. Invokes the other agent CLI (Codex or Claude) to independently review changes
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
# WF Review
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
##
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
|
25
|
-
|
|
26
|
-
|
|
|
27
|
-
|
|
|
28
|
-
|
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
-
|
|
49
|
-
- Raw
|
|
50
|
-
-
|
|
1
|
+
---
|
|
2
|
+
name: wf-review
|
|
3
|
+
description: Cross-model peer review. Invokes the other agent CLI (Codex or Claude) to independently review changes across 5 dimensions with severity classification. Use for /wf-review, peer review, second opinion, or when stuck.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# WF Review — Cross-Model Peer Review
|
|
7
|
+
|
|
8
|
+
**Anti-Self-Review Guard:** Use the OTHER CLI. Claude→Codex, Codex→Claude. Never self-review.
|
|
9
|
+
|
|
10
|
+
## CLI Detection & Invocation
|
|
11
|
+
|
|
12
|
+
| Runtime | Command |
|
|
13
|
+
|---|---|
|
|
14
|
+
| Claude → Codex | `git diff \| codex exec "<5-dimension review prompt>"` |
|
|
15
|
+
| Codex → Claude | `git diff \| claude -p "<5-dimension review prompt>"` |
|
|
16
|
+
| Only one CLI | Warn user. Do NOT self-review. |
|
|
17
|
+
|
|
18
|
+
## 5 Mandatory Review Dimensions
|
|
19
|
+
|
|
20
|
+
Construct the prompt covering ALL 5:
|
|
21
|
+
|
|
22
|
+
| # | Dimension | Key Questions |
|
|
23
|
+
|---|-----------|---------------|
|
|
24
|
+
| 1 | **Correctness** | Bugs, edge cases, race conditions, null/undefined, logic flaws? |
|
|
25
|
+
| 2 | **Security** | Injection, auth bypass, data exposure, input validation, unsafe deps? |
|
|
26
|
+
| 3 | **Architecture** | Boundary violations, coupling, state ownership, interface contract breaks? |
|
|
27
|
+
| 4 | **Performance** | Algorithmic complexity, N+1 queries, memory leaks, unnecessary allocations? |
|
|
28
|
+
| 5 | **Tests** | Coverage gaps, missing edge cases, test quality, CI regressions? |
|
|
29
|
+
|
|
30
|
+
## Context
|
|
31
|
+
|
|
32
|
+
Include: `git diff` (or `git diff --cached`), relevant `Harness/` docs (architecture.md), the 5-dimension table above.
|
|
33
|
+
|
|
34
|
+
**Size guard:** diff >500 lines → warn + suggest narrower scope or split review.
|
|
35
|
+
|
|
36
|
+
## Severity Classification
|
|
37
|
+
|
|
38
|
+
| Severity | Criteria | Action |
|
|
39
|
+
|----------|----------|--------|
|
|
40
|
+
| **Critical** | Security vuln, data loss, crash, data corruption | Must fix before merge |
|
|
41
|
+
| **High** | Bug, regression, spec violation, broken contract | Should fix before merge |
|
|
42
|
+
| **Medium** | Maintainability, duplication, test gap, perf concern | May defer with written justification |
|
|
43
|
+
| **Low** | Style, naming, minor optimization, nit | Optional |
|
|
44
|
+
|
|
45
|
+
## Rules
|
|
46
|
+
|
|
47
|
+
- Bash MUST invoke the other CLI — never simulate.
|
|
48
|
+
- Both CLIs fail → report error, don't skip.
|
|
49
|
+
- Raw output first, then your classified synthesis.
|
|
50
|
+
- Peer findings = authoritative; your classification = supplementary.
|
|
51
|
+
|
|
52
|
+
## CEO Synthesis Output
|
|
53
|
+
|
|
54
|
+
```
|
|
55
|
+
Review CLI: [Codex / Claude]
|
|
56
|
+
Dimensions: Correctness, Security, Architecture, Performance, Tests
|
|
57
|
+
|
|
58
|
+
Critical (must fix):
|
|
59
|
+
- [file:line] description → fix
|
|
60
|
+
|
|
61
|
+
High (should fix):
|
|
62
|
+
- [file:line] description → fix
|
|
63
|
+
|
|
64
|
+
Medium (may defer):
|
|
65
|
+
- [file:line] description → note
|
|
66
|
+
|
|
67
|
+
Low (optional):
|
|
68
|
+
- [file:line] description
|
|
69
|
+
|
|
70
|
+
Verdict: APPROVE / APPROVE_WITH_FIXES / REJECT
|
|
71
|
+
Actions: 1. ... 2. ...
|
|
72
|
+
```
|
|
@@ -1,58 +1,74 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: wf-update
|
|
3
|
-
description: Use when the user says /wf
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
# WF Update
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
## Load
|
|
11
|
-
|
|
12
|
-
- `Harness
|
|
13
|
-
- `Harness
|
|
14
|
-
|
|
15
|
-
## How It Works
|
|
16
|
-
|
|
17
|
-
1.
|
|
18
|
-
2.
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
-
|
|
48
|
-
-
|
|
49
|
-
-
|
|
50
|
-
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
-
|
|
56
|
-
|
|
57
|
-
-
|
|
58
|
-
|
|
1
|
+
---
|
|
2
|
+
name: wf-update
|
|
3
|
+
description: Use when the user says /wf-update, wf update, update harness, or check for updates. Script-driven comparison for speed — fetches remote checksums, compares locally in milliseconds, only surfaces conflicts for user decision.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# WF Update
|
|
7
|
+
|
|
8
|
+
Script-driven harness update. The script does all comparison in milliseconds; AI only handles CONFLICT files.
|
|
9
|
+
|
|
10
|
+
## Load
|
|
11
|
+
|
|
12
|
+
- `Harness/scripts/wf-update-check.mjs` — the fast comparison + apply script
|
|
13
|
+
- `Harness/.harness-version` — stored checksums
|
|
14
|
+
|
|
15
|
+
## How It Works (script-driven, fast)
|
|
16
|
+
|
|
17
|
+
1. Run `node Harness/scripts/wf-update-check.mjs` — fetches remote `.harness-version`, compares all checksums locally, outputs instant plan.
|
|
18
|
+
2. The script classifies every file:
|
|
19
|
+
|
|
20
|
+
| Tier | Meaning | Action |
|
|
21
|
+
|------|---------|--------|
|
|
22
|
+
| **SAFE** | Framework file, local matches stored checksum | Auto-update |
|
|
23
|
+
| **NEW** | File in remote but not local | Auto-create |
|
|
24
|
+
| **CONFLICT** | MERGE file user modified, or runtime file diverged | **User decides** |
|
|
25
|
+
| **PRESERVE** | User data (PROGRESS, tasks, memory, PRD, README, etc.) | **Never touch** |
|
|
26
|
+
| **SKIPPED** | File in local but not remote | Skip |
|
|
27
|
+
|
|
28
|
+
3. For CONFLICT files, present each one to the user:
|
|
29
|
+
- Show file path and reason
|
|
30
|
+
- Options: **[M]erge** (recommended — keep user changes, apply framework updates) / **[O]verwrite** (discard user changes, use remote) / **[K]eep** (skip this file)
|
|
31
|
+
|
|
32
|
+
4. Run `node Harness/scripts/wf-update-check.mjs --apply` to execute SAFE+NEW files. CONFLICT files are resolved manually by the AI after user decision.
|
|
33
|
+
5. After update, run `node Harness/scripts/validate-harness.mjs`.
|
|
34
|
+
6. Run `node Harness/scripts/scan-clean.mjs` to find dead files (tracked in local `.harness-version` but removed from the remote template) and orphan files (on disk in framework directories but untracked by either checksum set). Review findings; clean with `--clean --yes`.
|
|
35
|
+
|
|
36
|
+
## Speed
|
|
37
|
+
|
|
38
|
+
| Step | Before (AI-driven) | After (script-driven) |
|
|
39
|
+
|------|-------------------|----------------------|
|
|
40
|
+
| Fetch file list | N WebFetch calls | 1 HTTP fetch |
|
|
41
|
+
| Compare checksums | AI reads each file | Script computes SHA-256 in ms |
|
|
42
|
+
| Classify | AI reasons per file | Script uses pattern matching |
|
|
43
|
+
| Apply | AI writes each file | Script batch writes |
|
|
44
|
+
|
|
45
|
+
## Rules
|
|
46
|
+
|
|
47
|
+
- **NEVER overwrite PRESERVE files.** No exceptions.
|
|
48
|
+
- **NEVER auto-merge CONFLICT files** — user MUST decide: merge / overwrite / keep.
|
|
49
|
+
- If offline: report and exit cleanly.
|
|
50
|
+
- After update, suggest `node Harness/scripts/validate-harness.mjs`.
|
|
51
|
+
- The script normalizes line endings (CRLF→LF) for checksum comparison.
|
|
52
|
+
|
|
53
|
+
## Scan & Clean
|
|
54
|
+
|
|
55
|
+
After a successful update, run dead-file detection to remove files that were tracked in the previous harness version but removed from the new remote template. This keeps the project clean and prevents stale framework files from accumulating.
|
|
56
|
+
|
|
57
|
+
1. Run `node Harness/scripts/scan-clean.mjs` — scans for dead files (tracked in local `.harness-version` but not in remote) and orphan files (on disk in framework directories but untracked by either checksum set).
|
|
58
|
+
2. Report findings to the user:
|
|
59
|
+
- **DEAD files** — safe to delete (not in remote template, not preserved). List each path.
|
|
60
|
+
- **ORPHAN files** — needs review (untracked in framework directories like `.claude/agents/`, `Harness/scripts/`, etc.).
|
|
61
|
+
- **EMPTY DIRS** — directories that would become empty after cleaning.
|
|
62
|
+
3. If DEAD files are found, ask the user to confirm cleanup before proceeding.
|
|
63
|
+
4. Run `node Harness/scripts/scan-clean.mjs --clean --yes` to delete dead files, remove empty parent directories, and update `.harness-version`.
|
|
64
|
+
5. Report a cleanup summary: files deleted, empty directories removed, any failures.
|
|
65
|
+
|
|
66
|
+
## Return
|
|
67
|
+
|
|
68
|
+
- Update version (from → to)
|
|
69
|
+
- Files auto-updated (SAFE + NEW count)
|
|
70
|
+
- Files in conflict (each with merge/overwrite/keep decision)
|
|
71
|
+
- Files skipped
|
|
72
|
+
- Validation suggestion
|
|
73
|
+
- Dead files found and cleaned
|
|
74
|
+
- Orphan files flagged for review
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
{
|
|
2
|
+
"hooks": {
|
|
3
|
+
"SessionStart": [
|
|
4
|
+
{
|
|
5
|
+
"matcher": "",
|
|
6
|
+
"hooks": [
|
|
7
|
+
{
|
|
8
|
+
"type": "command",
|
|
9
|
+
"command": "node Harness/scripts/wf-mode-hook.mjs"
|
|
10
|
+
}
|
|
11
|
+
]
|
|
12
|
+
}
|
|
13
|
+
],
|
|
14
|
+
"UserPromptSubmit": [
|
|
15
|
+
{
|
|
16
|
+
"matcher": "",
|
|
17
|
+
"hooks": [
|
|
18
|
+
{
|
|
19
|
+
"type": "command",
|
|
20
|
+
"command": "node Harness/scripts/wf-mode-hook.mjs"
|
|
21
|
+
}
|
|
22
|
+
]
|
|
23
|
+
}
|
|
24
|
+
],
|
|
25
|
+
"PreToolUse": [
|
|
26
|
+
{
|
|
27
|
+
"matcher": "Edit|Write|MultiEdit|Bash",
|
|
28
|
+
"hooks": [
|
|
29
|
+
{
|
|
30
|
+
"type": "command",
|
|
31
|
+
"command": "node Harness/scripts/wf-mode-hook.mjs"
|
|
32
|
+
}
|
|
33
|
+
]
|
|
34
|
+
}
|
|
35
|
+
]
|
|
36
|
+
}
|
|
37
|
+
}
|
|
@@ -1,8 +1,135 @@
|
|
|
1
1
|
{
|
|
2
|
-
"generator": "
|
|
3
|
-
"generated": "
|
|
2
|
+
"generator": "0.7.1",
|
|
3
|
+
"generated": "2026-06-26T10:20:45.491Z",
|
|
4
4
|
"options": [],
|
|
5
5
|
"autoCheck": true,
|
|
6
6
|
"source": "https://raw.githubusercontent.com/zingspark/create-harness-vibe-coding/main/templates/common/",
|
|
7
|
-
"checksums": {
|
|
7
|
+
"checksums": {
|
|
8
|
+
".claude/agents/architect-manager.md": "sha256-d98c3a2d044d5216d9bcde217b4359b1c33f5be152416e242807652ddcd2868b",
|
|
9
|
+
".claude/agents/architect.md": "sha256-61cea40c8c3e01bd53f3ad642ef734850fdb931497e7ee20552ea7a8b4e7b70c",
|
|
10
|
+
".claude/agents/context-master.md": "sha256-e94c921565d979fef5651aeaad190b531b407075ce94c72dfa4412c1282e250a",
|
|
11
|
+
".claude/agents/debugger.md": "sha256-c0d322ca971c6be38c99f0e20b6d5feec26d4f62b84aeffecc4279c1cce59480",
|
|
12
|
+
".claude/agents/docs-researcher.md": "sha256-f8a34420ec10c185c4457d2e5e9ab584b676615ec471a9e671420d36e4e604f6",
|
|
13
|
+
".claude/agents/explore-manager.md": "sha256-64c7d1bdf8b490339b5a3487229fcb3e28d0d84983d9a4fa93060c2cf47b1dfc",
|
|
14
|
+
".claude/agents/implement-manager.md": "sha256-7387ee0e12ba189aa35fea453f93a1bd14549556754e002590b1af4de0ebb209",
|
|
15
|
+
".claude/agents/implementer.md": "sha256-86a32182798480b09bcc87e47605a1247f15d5ab91b58dfedb6496e3b0335618",
|
|
16
|
+
".claude/agents/memory-master.md": "sha256-a8a2e3c8c53f54e63f11cc7543204d99f8be11fd974c8aefc66cdaa6957ef551",
|
|
17
|
+
".claude/agents/planner.md": "sha256-7d1911adbd3a4a6b82713fb0e2358bf01d3f7f3b8aeccd38bd51cb445b1fb7a9",
|
|
18
|
+
".claude/agents/researcher.md": "sha256-402fef14dee8f495dc9ddfad5af3ad233d254326b49b831f604014a8cb6d0beb",
|
|
19
|
+
".claude/agents/review-manager.md": "sha256-fb8fbd6c6624279cc97aa3dbd50ec20c150ff4a2d195788bc8537d98699cc41b",
|
|
20
|
+
".claude/agents/reviewer.md": "sha256-2913b7799fcd8e162f01ae0de09a41ec7083de5f0cae3abcd4ecc62acc675a6b",
|
|
21
|
+
".claude/agents/test-writer.md": "sha256-9018a9f65f1861a9bade999790e945d258781c1d846eb30a9de23ec3ce5f1d82",
|
|
22
|
+
".claude/agents/verifier.md": "sha256-6d8ca8bd13d7bb7680423875269e407c06aca60334df44d9230a015aabd0a8d0",
|
|
23
|
+
".claude/commands/wf-learn.md": "sha256-dd0b327e634972b3c9dc5d0b2213345d295444d3b40f19a7676327ab1ff36f9a",
|
|
24
|
+
".claude/commands/wf-max.md": "sha256-fb64fc098ebac2cf36a06a3fbbc8881d0ddaf9ae05ee959124500038e4494833",
|
|
25
|
+
".claude/commands/wf-remove.md": "sha256-85ac16ecfc80c25c57690540d55beca1769ea4c66491a7e039692a0e61d5d382",
|
|
26
|
+
".claude/commands/wf-review.md": "sha256-fda0dcb41ebe4e26eed51328588cfb3ee22fbeaa447d108acc1729a4049c4e2c",
|
|
27
|
+
".claude/commands/wf-update.md": "sha256-0287c8968faa375495211c6038e2964dc3bea7632fc7b03798309232e8261f35",
|
|
28
|
+
".claude/commands/wf.md": "sha256-436dad0e57cb7a7f97074381c1e8bb43493707374428cf5a64b6d1840c8fc086",
|
|
29
|
+
".claude/rules/ecc/common.md": "sha256-157c300e3b47049998d1bca867da6f9b54efb5de6efbabbb64a22af4cb2b84e8",
|
|
30
|
+
".claude/settings.json": "sha256-3ee53515a829b85267b7330fad9e90d797f1bd16964ec9f876fdd630a0d2c093",
|
|
31
|
+
".claude/skills/subagent-orchestrator/SKILL.md": "sha256-c9b90d8cfbeb8e7c1f89519e34d7da8dc0f0cad102092443e221518c723320e1",
|
|
32
|
+
".claude/skills/wf-learn/SKILL.md": "sha256-9e9100a161327d53a35709d881745c5d1473de058707537b3566474f3c113cac",
|
|
33
|
+
".claude/skills/wf-max/SKILL.md": "sha256-5a145e9e477f6cb7c75486fd72c42e8c2295a8c52a10693b80998770b7e2eb44",
|
|
34
|
+
".claude/skills/wf-readme/SKILL.md": "sha256-4d34ee3b6b305fa2581f5d8cb31e9152759f3df8bf8fa08efbb43782f128bdcd",
|
|
35
|
+
".claude/skills/wf-remove/SKILL.md": "sha256-4057d8f0672ad44990354670aeb6c5be0c3d1f934781b26f776323f070f4a984",
|
|
36
|
+
".claude/skills/wf-review/SKILL.md": "sha256-7e599bd8cbbfc7f6e55aac4c19844317a1e3efd5cc4cf1513091721f671a22b0",
|
|
37
|
+
".claude/skills/wf-update/SKILL.md": "sha256-9c40d89ef52762793d97461da36709148af4a03222c352fde40f0193d0dddb58",
|
|
38
|
+
".codex/config.toml": "sha256-d37497c3278121598a663564ab38b53f658969717f78decb661ddd11c66551ea",
|
|
39
|
+
".codex/hooks.json": "sha256-6d8d237b4a038a48fbadbdd087d9a68dba024bcfd748f59968252ebae7cc2e96",
|
|
40
|
+
"AGENTS.md": "sha256-bbc17b119ff579e500dcd36e78f9cf600ccda27fa7b32903f233ad96a97058ff",
|
|
41
|
+
"CLAUDE.md": "sha256-432bd4dc9bdf9958d79ae697f72d1c9723be23fb156d43889ede84e305ed5e70",
|
|
42
|
+
"Harness/MEMORY.md": "sha256-368bba7ae0a63b931dc547c013dd4c361e597ca5a54affa662778cd0f441d788",
|
|
43
|
+
"Harness/README.md": "sha256-9ac42a3ad00890bfefba8cb658c5eb1d4ad086075d0fa70492e01c8b95dea770",
|
|
44
|
+
"Harness/SETUP.md": "sha256-7487bfbcf13c29d138589ad533163c2112fc37c3b791397e4cfe6a32efd24d4e",
|
|
45
|
+
"Harness/WF-MAX.md": "sha256-81c788ac56a0c1673a9e6bdf619efbcfa9c961ca7c5065c15b98760775f963a6",
|
|
46
|
+
"Harness/WF.md": "sha256-3acd410f420a99a4237ddcb702502888538e09caaf2295789ef1358a15feb75f",
|
|
47
|
+
"Harness/agent-workflow.md": "sha256-1aff5e7dc1e082c559cb0a9086c4f93f6702905aff00ebb957300f463ea80b31",
|
|
48
|
+
"Harness/context-loading.md": "sha256-0d97d6ec2325063f7158511f3462ca9cbdf3b6db177a79dac8ee7d2cb7930264",
|
|
49
|
+
"Harness/dispatch.md": "sha256-e0c6a3a46acc8899574c9b6d6bb4da119adb9e9ed1ce91acc9f7a688ed3aea15",
|
|
50
|
+
"Harness/extension.md": "sha256-686f76d83e91750c20d4f5aa8e614f5003baeb5a703d0451f469ca7eeab75e37",
|
|
51
|
+
"Harness/lifecycle.md": "sha256-5979c37e66e35940cb707f8cd71e97d53bb05399c3281c714f69499abdee59a4",
|
|
52
|
+
"Harness/research/README.md": "sha256-956c154df01cb9376972eb8b88bb3be0fe4e2dda802a72457c0126e3476fa755",
|
|
53
|
+
"Harness/scripts/scan-clean.mjs": "sha256-66d42f5cbc6374c826cd488bd0b2fcef11eb22d60ac7995e3585c7de5cb2cb44",
|
|
54
|
+
"Harness/scripts/validate-harness.mjs": "sha256-36a5530ca5bc6acc986a9d694c7355a575430c32a0f486a4591ae98fcbd5cc64",
|
|
55
|
+
"Harness/scripts/wf-mode-hook.mjs": "sha256-289f0df4155dd8523507f59add5eac72c0aa92efc85a78d5a46350b9c9bb4f80",
|
|
56
|
+
"Harness/scripts/wf-remove.mjs": "sha256-e0a3cc9a9546484b8d8b26d0ffd6af24a9d4521d2a61c728d16756981e4c36fc",
|
|
57
|
+
"Harness/scripts/wf-statusline.ps1": "sha256-53c2e0178e9a0826516731b1145f96f55ff6c57fb1f31bf6f1a7210a8502ca65",
|
|
58
|
+
"Harness/scripts/wf-statusline.sh": "sha256-053908cd4d53dea162252077c6cc5544ccd164455739f6edfbf254945f06ea2f",
|
|
59
|
+
"Harness/scripts/wf-update-check.mjs": "sha256-8c3fa219e902056c20c55b2abfa5152349d9e00f4faa5bef646f78bfb71c486f",
|
|
60
|
+
"Harness/subagents.md": "sha256-e66f4bef8ce6c118cf0ec8c511f727a8c2c40bce25dcf5b754489d89915a47ba",
|
|
61
|
+
"commands/wf-max.toml": "sha256-89818556f93d51cfe508a0c92de171f0f46be65d8001eb3eac68e46f18ddf783",
|
|
62
|
+
"commands/wf-review.toml": "sha256-d2b58f3892d2f7c5c689baa9e3361c1e355fae72bf632a6ed61f1a16743848f9"
|
|
63
|
+
},
|
|
64
|
+
"sources": {
|
|
65
|
+
".claude/agents/architect-manager.md": ".claude/agents/architect-manager.md",
|
|
66
|
+
".claude/agents/architect.md": ".claude/agents/architect.md",
|
|
67
|
+
".claude/agents/context-master.md": ".claude/agents/context-master.md",
|
|
68
|
+
".claude/agents/debugger.md": ".claude/agents/debugger.md",
|
|
69
|
+
".claude/agents/docs-researcher.md": ".claude/agents/docs-researcher.md",
|
|
70
|
+
".claude/agents/explore-manager.md": ".claude/agents/explore-manager.md",
|
|
71
|
+
".claude/agents/implement-manager.md": ".claude/agents/implement-manager.md",
|
|
72
|
+
".claude/agents/implementer.md": ".claude/agents/implementer.md",
|
|
73
|
+
".claude/agents/memory-master.md": ".claude/agents/memory-master.md",
|
|
74
|
+
".claude/agents/planner.md": ".claude/agents/planner.md",
|
|
75
|
+
".claude/agents/researcher.md": ".claude/agents/researcher.md",
|
|
76
|
+
".claude/agents/review-manager.md": ".claude/agents/review-manager.md",
|
|
77
|
+
".claude/agents/reviewer.md": ".claude/agents/reviewer.md",
|
|
78
|
+
".claude/agents/test-writer.md": ".claude/agents/test-writer.md",
|
|
79
|
+
".claude/agents/verifier.md": ".claude/agents/verifier.md",
|
|
80
|
+
".claude/commands/wf-learn.md": ".claude/commands/wf-learn.md",
|
|
81
|
+
".claude/commands/wf-max.md": ".claude/commands/wf-max.md",
|
|
82
|
+
".claude/commands/wf-remove.md": ".claude/commands/wf-remove.md",
|
|
83
|
+
".claude/commands/wf-review.md": ".claude/commands/wf-review.md",
|
|
84
|
+
".claude/commands/wf-update.md": ".claude/commands/wf-update.md",
|
|
85
|
+
".claude/commands/wf.md": ".claude/commands/wf.md",
|
|
86
|
+
".claude/rules/ecc/common.md": ".claude/rules/ecc/common.md",
|
|
87
|
+
".claude/settings.json": ".claude/settings.json",
|
|
88
|
+
".claude/skills/subagent-orchestrator/SKILL.md": ".claude/skills/subagent-orchestrator/SKILL.md",
|
|
89
|
+
".claude/skills/wf-learn/SKILL.md": ".claude/skills/wf-learn/SKILL.md",
|
|
90
|
+
".claude/skills/wf-max/SKILL.md": ".claude/skills/wf-max/SKILL.md",
|
|
91
|
+
".claude/skills/wf-readme/SKILL.md": ".claude/skills/wf-readme/SKILL.md",
|
|
92
|
+
".claude/skills/wf-remove/SKILL.md": ".claude/skills/wf-remove/SKILL.md",
|
|
93
|
+
".claude/skills/wf-review/SKILL.md": ".claude/skills/wf-review/SKILL.md",
|
|
94
|
+
".claude/skills/wf-update/SKILL.md": ".claude/skills/wf-update/SKILL.md",
|
|
95
|
+
".codex/config.toml": ".codex/config.toml",
|
|
96
|
+
".codex/hooks.json": ".codex/hooks.json",
|
|
97
|
+
".gitignore": ".gitignore",
|
|
98
|
+
"AGENTS.md": "AGENTS.md",
|
|
99
|
+
"CLAUDE.md": "CLAUDE.md",
|
|
100
|
+
"Harness/.harness-version": ".harness-version",
|
|
101
|
+
"Harness/MEMORY.md": "MEMORY.md",
|
|
102
|
+
"Harness/PROGRESS.md": "docs/harness/PROGRESS.md",
|
|
103
|
+
"Harness/README.md": "docs/README.md",
|
|
104
|
+
"Harness/SETUP.md": "SETUP.md",
|
|
105
|
+
"Harness/WF-MAX.md": "docs/harness/WF-MAX.md",
|
|
106
|
+
"Harness/WF.md": "docs/harness/WF.md",
|
|
107
|
+
"Harness/agent-workflow.md": "docs/harness/agent-workflow.md",
|
|
108
|
+
"Harness/architecture.md": "docs/harness/architecture.md",
|
|
109
|
+
"Harness/context-loading.md": "docs/harness/context-loading.md",
|
|
110
|
+
"Harness/dispatch.md": "docs/harness/dispatch.md",
|
|
111
|
+
"Harness/extension.md": "docs/harness/extension.md",
|
|
112
|
+
"Harness/lifecycle.md": "docs/harness/lifecycle.md",
|
|
113
|
+
"Harness/memory/agent-lessons-patterns.md": "memory/agent-lessons-patterns.md",
|
|
114
|
+
"Harness/memory/tool-usage-reflections.md": "memory/tool-usage-reflections.md",
|
|
115
|
+
"Harness/memory/user-corrections-preferences.md": "memory/user-corrections-preferences.md",
|
|
116
|
+
"Harness/research/PRD.md": "docs/research/PRD.md",
|
|
117
|
+
"Harness/research/README.md": "docs/research/README.md",
|
|
118
|
+
"Harness/research/research-results.md": "docs/research/research-results.md",
|
|
119
|
+
"Harness/scripts/scan-clean.mjs": "scripts/scan-clean.mjs",
|
|
120
|
+
"Harness/scripts/validate-harness.mjs": "scripts/validate-harness.mjs",
|
|
121
|
+
"Harness/scripts/wf-mode-hook.mjs": "scripts/wf-mode-hook.mjs",
|
|
122
|
+
"Harness/scripts/wf-remove.mjs": "scripts/wf-remove.mjs",
|
|
123
|
+
"Harness/scripts/wf-statusline.ps1": "scripts/wf-statusline.ps1",
|
|
124
|
+
"Harness/scripts/wf-statusline.sh": "scripts/wf-statusline.sh",
|
|
125
|
+
"Harness/scripts/wf-update-check.mjs": "scripts/wf-update-check.mjs",
|
|
126
|
+
"Harness/subagents.md": "docs/harness/subagents.md",
|
|
127
|
+
"Harness/tasks/_template/ARTIFACTS.md": "docs/tasks/_template/ARTIFACTS.md",
|
|
128
|
+
"Harness/tasks/_template/NOTES.md": "docs/tasks/_template/NOTES.md",
|
|
129
|
+
"Harness/tasks/_template/PLAN.md": "docs/tasks/_template/PLAN.md",
|
|
130
|
+
"Harness/tasks/_template/PROGRESS.md": "docs/tasks/_template/PROGRESS.md",
|
|
131
|
+
"README.md": "README.md",
|
|
132
|
+
"commands/wf-max.toml": "commands/wf-max.toml",
|
|
133
|
+
"commands/wf-review.toml": "commands/wf-review.toml"
|
|
134
|
+
}
|
|
8
135
|
}
|
|
@@ -1,7 +1,30 @@
|
|
|
1
1
|
# AGENTS.md
|
|
2
2
|
|
|
3
|
-
Entry point for coding agents.
|
|
3
|
+
Entry point for coding agents. This project uses the Harness scaffold — a 0-1 product workflow contract.
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
## Startup
|
|
6
6
|
|
|
7
|
-
|
|
7
|
+
Read `CLAUDE.md` first, then `Harness/MEMORY.md`, then `Harness/README.md`.
|
|
8
|
+
Do not bulk-read `Harness/`. Let `Harness/README.md#Load By Task` route you.
|
|
9
|
+
|
|
10
|
+
## CEO Contract (READ FIRST)
|
|
11
|
+
|
|
12
|
+
`/wf-max` active → you are **CEO, not implementer**.
|
|
13
|
+
|
|
14
|
+
| ALLOWED (W0) | FORBIDDEN (always on source) |
|
|
15
|
+
|---|---|
|
|
16
|
+
| Read Harness docs, CLAUDE.md | Edit / Write / MultiEdit |
|
|
17
|
+
| Grep/Glob for scoping | Bash (except `ls`/`dir`/`tree`/`git`) |
|
|
18
|
+
| Agent spawn (ONE message) | Deep source reads → delegate to Worker |
|
|
19
|
+
| Write PLAN.md / PROGRESS.md | Sequential spawn (AP6) |
|
|
20
|
+
|
|
21
|
+
**Tempted to edit source? STOP. Spawn a Worker.**
|
|
22
|
+
|
|
23
|
+
## Key Commands
|
|
24
|
+
|
|
25
|
+
| Command | Purpose |
|
|
26
|
+
|---------|---------|
|
|
27
|
+
| `/wf-max [task]` | Maximum parallelism: CEO→Manager→Worker |
|
|
28
|
+
| `/wf-review [focus]` | Cross-model peer review (use OTHER CLI) |
|
|
29
|
+
| `/wf <task>` | Standard workflow mode |
|
|
30
|
+
| `/wf-auto` | Perpetual auto-optimization |
|