create-harness-vibe-coding 0.8.0 → 0.8.2
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-CN.md +40 -24
- package/README.md +44 -20
- package/package.json +1 -1
- package/src/generator.js +1 -1
- package/src/index.js +211 -11
- package/src/prompts.js +1 -1
- package/templates/common/.claude/agents/tdd-guide.md +55 -0
- package/templates/common/.claude/settings.json +22 -0
- package/templates/common/.claude/skills/tdd/SKILL.md +30 -0
- package/templates/common/.claude/skills/wf-auto/SKILL.md +107 -0
- package/templates/common/.claude/skills/wf-auto-spark/SKILL.md +39 -0
- package/templates/common/.claude/skills/wf-max/SKILL.md +10 -2
- package/templates/common/.claude/skills/wf-remove/SKILL.md +12 -5
- package/templates/common/.claude/skills/wf-update/SKILL.md +12 -5
- package/templates/common/.codex/hooks.json +59 -37
- package/templates/common/.harness-version +48 -25
- package/templates/common/AGENTS.md +5 -5
- package/templates/common/CLAUDE.md +12 -17
- package/templates/common/Harness/ECC-GUIDE.md +246 -0
- package/templates/common/Harness/README.md +129 -130
- package/templates/common/Harness/TDD-GUIDE.md +83 -0
- package/templates/common/Harness/WF-AUTO-SPARK.md +297 -0
- package/templates/common/Harness/WF-AUTO.md +508 -0
- package/templates/common/Harness/WF-MAX.md +24 -0
- package/templates/common/Harness/context-loading.md +38 -1
- package/templates/common/Harness/dispatch.md +40 -40
- package/templates/common/Harness/subagents.md +7 -21
- package/templates/common/Harness/tasks/_template/NAMING.md +47 -0
- package/templates/common/MEMORY.md +73 -66
- package/templates/common/SETUP.md +98 -63
- package/templates/common/scripts/validate-harness.mjs +92 -58
- package/templates/common/scripts/wf-mode-hook.mjs +895 -318
- package/templates/common/scripts/wf-remove.mjs +301 -81
- package/templates/common/scripts/wf-statusline.ps1 +62 -38
- package/templates/common/scripts/wf-statusline.sh +67 -48
- package/templates/common/scripts/wf-update-check.mjs +179 -81
- package/templates/optional/catalog.json +5 -5
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: wf-auto
|
|
3
|
+
description: Perpetual auto-optimization mode. Never stops — continuously improves code until 8-angle exhaustion. Adaptive checkpoints, external spark search, evidence ledger. Use for Claude /wf-auto, Codex $wf-auto, auto mode, or when the user wants unbounded self-directed optimization.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# WF Auto — Perpetual Auto-Optimization
|
|
7
|
+
|
|
8
|
+
## Load (authoritative specs)
|
|
9
|
+
|
|
10
|
+
- `Harness/WF-AUTO.md` — full spec: perpetual loop, state machine, 8-angle exhaustion gate, cross-model oracle, spark candidate provider, Value Gate scoring, evidence ledger, Intent Checkpoints, anti-patterns, safety controls
|
|
11
|
+
- `Harness/subagents.md` — agent roster, controller role, efficiency ladder
|
|
12
|
+
- `Harness/dispatch.md` — handoff format, File claim, Concurrency group fields
|
|
13
|
+
- `Harness/agent-workflow.md` — build/review/test loop, cohesion rule, completion gate
|
|
14
|
+
- `.claude/skills/wf-review/SKILL.md` — cross-model invocation pattern (used by the oracle step)
|
|
15
|
+
|
|
16
|
+
## Trigger & When NOT to Use
|
|
17
|
+
|
|
18
|
+
- **Trigger**: Claude `/wf-auto`, Codex `$wf-auto`, `wf auto`, `auto mode`, or user wants continuous self-directed improvement
|
|
19
|
+
- **Do NOT use**: user has a specific bounded task (use `/wf`), task needs maximum parallelism (use `/wf-max`), production hotfix needed urgently, codebase <100 lines
|
|
20
|
+
|
|
21
|
+
## State Machine
|
|
22
|
+
|
|
23
|
+
```
|
|
24
|
+
auto.internal → auto.spark → auto.checkpoint → auto.exhausted → paused
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
CEO tracks state in `Harness/tasks/auto/PROGRESS.md`. Transitions are CEO-owned.
|
|
28
|
+
|
|
29
|
+
## Hard Constraints
|
|
30
|
+
|
|
31
|
+
1. **NEVER STOP except A-GATE.** No "task complete" early exit. The Angle Exhaustion Gate (internal + oracle + spark all empty, 3 confirm rounds) is the ONLY permitted stop.
|
|
32
|
+
2. **CEO never writes production code.** CEO uses Task, Read, Grep/Glob. No Edit/Write/Bash on source files. Exception: CEO MAY write to `Harness/tasks/auto/PROGRESS.md` and `Harness/tasks/auto/PLAN.md`.
|
|
33
|
+
3. **ALL sources in ONE message per cycle.** 8 angles + oracle + spark searchers. Batching is mandatory.
|
|
34
|
+
4. **ONE finding per cycle.** One change, ≤3 files, ≤50 lines diff. Big ideas (>50 lines) escalate to /wf or /wf-max then return.
|
|
35
|
+
5. **Two-gate review every cycle.** Spec review before code-quality review. No skipping.
|
|
36
|
+
6. **A-GATE has 3 tiers.** All 8 exhausted → Cross-Model Oracle → Spark search → 2 confirmation rounds → STOP.
|
|
37
|
+
7. **Value Gate is scored, not binary.** 5 dimensions (Impact, Evidence, Fit, Timing, Cost/Risk), 1-5 each. Pass: ≥18/25 AND no dimension <3.
|
|
38
|
+
8. **Intent Checkpoint is adaptive.** 2→5→10 cycles. Exactly 2 questions: "Still aligned?" + "What should change?" Early on drift signals.
|
|
39
|
+
9. **Evidence ledger per cycle.** Source, evidence type, expected impact, verification method, measured result, verdict. Track weak spark count.
|
|
40
|
+
|
|
41
|
+
## The 8 Angles (quick reference)
|
|
42
|
+
|
|
43
|
+
| # | Angle | Finds |
|
|
44
|
+
|---|-------|-------|
|
|
45
|
+
| 1 | Correctness | Bugs, edge cases, null safety, race conditions |
|
|
46
|
+
| 2 | Performance | Slow paths, memory, algorithmic complexity |
|
|
47
|
+
| 3 | Security | Injection, auth, secrets, dependency CVEs |
|
|
48
|
+
| 4 | Maintainability | Clarity, DRY, coupling, naming, dead code |
|
|
49
|
+
| 5 | Test Coverage | Missing tests, weak assertions, flaky tests |
|
|
50
|
+
| 6 | Architecture | Boundaries, dependency direction, layer discipline |
|
|
51
|
+
| 7 | UX / DX | Error messages, API ergonomics, documentation |
|
|
52
|
+
| 8 | Robustness | Resilience, retry, observability, recovery |
|
|
53
|
+
|
|
54
|
+
## Spark Sources (when internal + oracle empty)
|
|
55
|
+
|
|
56
|
+
| # | Source | Evidence Weight |
|
|
57
|
+
|---|--------|-----------------|
|
|
58
|
+
| 1 | Official Docs & Advisories | HIGH |
|
|
59
|
+
| 2 | Ecosystem Pulse | MEDIUM |
|
|
60
|
+
| 3 | GitHub Trending (same stack) | LOW-MEDIUM |
|
|
61
|
+
| 4 | Best Practices (latest) | MEDIUM |
|
|
62
|
+
| 5 | Competitor/Peer Projects | LOW |
|
|
63
|
+
| 6 | Real-world Issues | MEDIUM |
|
|
64
|
+
| 7 | Architecture Trends | LOW |
|
|
65
|
+
| 8 | Performance Benchmarks | MEDIUM |
|
|
66
|
+
|
|
67
|
+
Source-quality: official docs > blog posts. Trending ≠ correct. Competitor behavior is hypothesis only. Every spark MUST cite source with URL and date.
|
|
68
|
+
|
|
69
|
+
## Perpetual Loop
|
|
70
|
+
|
|
71
|
+
```
|
|
72
|
+
W0: SENSE (8 angles + oracle + 8 spark sources, all parallel)
|
|
73
|
+
A-GATE [findings? → W1 | all empty? → oracle → spark → confirm ×2 → STOP]
|
|
74
|
+
CHECKPOINT [every 2→5→10 cycles, 2 questions]
|
|
75
|
+
W1: PRIORITIZE (across internal + oracle + spark)
|
|
76
|
+
W2: IMPLEMENT → W3: REVIEW → W4: DEBUG → W5: VERIFY
|
|
77
|
+
RECORD + EVIDENCE LEDGER → LOOP W0
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
## Cycle Recording
|
|
81
|
+
|
|
82
|
+
Every cycle writes to `Harness/tasks/auto/PROGRESS.md`:
|
|
83
|
+
- Cycle number, timestamp, state
|
|
84
|
+
- Source (internal/oracle/spark-*), source citation
|
|
85
|
+
- Finding, change description, files changed
|
|
86
|
+
- Value Gate scores (if spark candidate)
|
|
87
|
+
- Review result, verification evidence
|
|
88
|
+
- Evidence Ledger: evidence type, expected impact, verification method, measured result, verdict
|
|
89
|
+
|
|
90
|
+
## Safety
|
|
91
|
+
|
|
92
|
+
- ≤3 files, ≤50 lines per cycle
|
|
93
|
+
- Big ideas (>50 lines) escalate to /wf or /wf-max, then return to auto
|
|
94
|
+
- Destructive changes flagged with rollback plan
|
|
95
|
+
- IDLE alarm after 5 empty cycles → re-scope → A-GATE candidate
|
|
96
|
+
- Spark stop: 5 failed Value Gates OR 3 weak measured impacts OR 2 repeated source families empty
|
|
97
|
+
- User can interrupt at any time
|
|
98
|
+
|
|
99
|
+
## Return Format
|
|
100
|
+
|
|
101
|
+
- Total cycles run
|
|
102
|
+
- Findings addressed per source (internal / oracle / spark)
|
|
103
|
+
- Evidence ledger with measured impacts
|
|
104
|
+
- Exhaustion evidence (3-round confirmation)
|
|
105
|
+
- Weak spark count
|
|
106
|
+
- Final codebase state
|
|
107
|
+
- Residual risk assessment
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: wf-auto-spark
|
|
3
|
+
description: Use for /wf-auto-spark in Claude Code, $wf-auto-spark or /skills wf-auto-spark in Codex, or perpetual inspiration mode that never stops — external spark search, long-term roadmap with staged milestones, ≤50% deviation guard.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# WF-AUTO-SPARK Adapter
|
|
7
|
+
|
|
8
|
+
This skill is a thin tool adapter. The authoritative workflow lives in
|
|
9
|
+
`Harness/WF-AUTO-SPARK.md`; do not duplicate or override it here.
|
|
10
|
+
|
|
11
|
+
## Invocation
|
|
12
|
+
|
|
13
|
+
- Claude Code: use `/wf-auto-spark` or select the `wf-auto-spark` skill.
|
|
14
|
+
- Codex CLI or IDE: use `$wf-auto-spark` or `/skills` then choose `wf-auto-spark`.
|
|
15
|
+
|
|
16
|
+
## Load
|
|
17
|
+
|
|
18
|
+
1. `CLAUDE.md`
|
|
19
|
+
2. `Harness/MEMORY.md`
|
|
20
|
+
3. `Harness/README.md`
|
|
21
|
+
4. `Harness/WF-AUTO-SPARK.md`
|
|
22
|
+
5. `Harness/WF-AUTO.md`
|
|
23
|
+
6. `Harness/subagents.md`
|
|
24
|
+
7. `Harness/dispatch.md`
|
|
25
|
+
|
|
26
|
+
## Rules
|
|
27
|
+
|
|
28
|
+
WF-AUTO-SPARK is perpetual inspiration mode with roadmap anchoring:
|
|
29
|
+
1. **Roadmap first**: Declare North Star + staged milestones before any spark cycle.
|
|
30
|
+
2. **Never auto-stop**: Only user can stop. "No sparks found" → expand search.
|
|
31
|
+
3. **Deviation guard (≤50%)**: Every spark checked against North Star. Cumulative 10-cycle average ≥65%. Below → force Re-Anchor Gate.
|
|
32
|
+
4. **Milestones flexible within 50%**: Can reorder/split/merge/replace, but North Star changes need user confirmation.
|
|
33
|
+
5. **Value reflection every cycle**: CEO writes what was done, why it matters, deviation score, milestone progress.
|
|
34
|
+
6. **Re-Anchor Gate every 10 cycles**: User confirms direction or adjusts roadmap.
|
|
35
|
+
|
|
36
|
+
## Roadmap Location
|
|
37
|
+
|
|
38
|
+
Active roadmap lives at `Harness/tasks/auto/SPARK-ROADMAP.md`. Created at startup.
|
|
39
|
+
Per-cycle evidence at `Harness/tasks/auto/PROGRESS.md`.
|
|
@@ -26,8 +26,16 @@ This skill is a thin tool adapter. The authoritative workflow lives in
|
|
|
26
26
|
|
|
27
27
|
## Rules
|
|
28
28
|
|
|
29
|
-
-
|
|
30
|
-
|
|
29
|
+
WF-MAX is a three-layer architecture:
|
|
30
|
+
1. Global mode (`wf-max`)
|
|
31
|
+
2. Agent role (`ceo` | `manager` | `worker` | `reviewer`)
|
|
32
|
+
3. Dispatch permission (`writeSet`, `forbidden`, `verification`)
|
|
33
|
+
|
|
34
|
+
- Top-level orchestrator is CEO (reads, plans, dispatches). Delegated Workers follow dispatch packet with explicit writeSet. Global mode ≠ every agent is CEO.
|
|
35
|
+
- CEO: never edit source files directly. Spawn Workers with writeSet.
|
|
36
|
+
- Worker: edit only files in dispatch writeSet. Outside writeSet → blocked.
|
|
37
|
+
- Manager: scope, review, coordinate. No source edits by default.
|
|
38
|
+
- Reviewer: read and report only. No edits.
|
|
31
39
|
- Use the D-GATE in `Harness/WF-MAX.md` before any implementation wave:
|
|
32
40
|
dispatch table, self-audit, disjoint file claims, and reviewer plan.
|
|
33
41
|
- Use real subagents when the runtime supports them; otherwise record a
|
|
@@ -17,14 +17,21 @@ description: Use for /wf-remove in Claude Code, $wf-remove or /skills wf-remove
|
|
|
17
17
|
|
|
18
18
|
## Flow
|
|
19
19
|
|
|
20
|
-
1. Run `node Harness/scripts/wf-remove.mjs` for
|
|
20
|
+
1. Run `node Harness/scripts/wf-remove.mjs --json` for the machine-readable
|
|
21
|
+
plan.
|
|
21
22
|
2. Auto-remove only SAFE files that still match stored checksums.
|
|
22
23
|
3. Ask the user before every MODIFIED or uncertain file.
|
|
23
|
-
4.
|
|
24
|
-
|
|
25
|
-
|
|
24
|
+
4. Preserve USER DATA by default. For an explicit thorough uninstall, use
|
|
25
|
+
`--purge-user-data` (alias `--purge`); add `--keep-tasks` when the user wants task records
|
|
26
|
+
retained while project-fact Harness docs are removed.
|
|
27
|
+
5. Run the script, not manual deletes:
|
|
28
|
+
- safe default: `node Harness/scripts/wf-remove.mjs --apply --yes`
|
|
29
|
+
- thorough but keep tasks: `node Harness/scripts/wf-remove.mjs --apply --yes --purge-user-data --keep-tasks`
|
|
30
|
+
- exact modified decisions: add `--delete-modified <path>` for each
|
|
31
|
+
user-approved MODIFIED file.
|
|
26
32
|
|
|
27
33
|
## Return
|
|
28
34
|
|
|
29
35
|
Report SAFE removals, MODIFIED keep/delete decisions, preserved USER DATA,
|
|
30
|
-
directory cleanup, CLAUDE/AGENTS status,
|
|
36
|
+
PURGE removals, directory cleanup, CLAUDE/AGENTS status, `.harness-version`
|
|
37
|
+
status, and `git status` guidance.
|
|
@@ -19,14 +19,21 @@ description: Use for /wf-update in Claude Code, $wf-update or /skills wf-update
|
|
|
19
19
|
|
|
20
20
|
## Flow
|
|
21
21
|
|
|
22
|
-
1. Run `node Harness/scripts/wf-update-check.mjs` first
|
|
22
|
+
1. Run `node Harness/scripts/wf-update-check.mjs --json` first and use the
|
|
23
|
+
`agent` block as the action plan.
|
|
23
24
|
2. Preserve all PRESERVE files. Never overwrite user task, memory, research,
|
|
24
25
|
README, package, or architecture files.
|
|
25
|
-
3.
|
|
26
|
-
|
|
27
|
-
|
|
26
|
+
3. If `agent.safeApplyCommand` is present, run it to apply SAFE and NEW files
|
|
27
|
+
before spending AI time on conflicts. Default command:
|
|
28
|
+
`node Harness/scripts/wf-update-check.mjs --apply-safe`.
|
|
29
|
+
4. For every `agent.aiMergeRequired` entry, compare the local file with
|
|
30
|
+
`templateHint` or `remoteUrl`, then choose merge, keep-local, or
|
|
31
|
+
overwrite-from-template. Ask the user only when the intent is ambiguous.
|
|
32
|
+
5. Use strict `--apply` only when the JSON plan has zero conflicts.
|
|
33
|
+
6. After update, run the validator and then scan-clean.
|
|
28
34
|
|
|
29
35
|
## Return
|
|
30
36
|
|
|
31
37
|
Report version, SAFE/NEW updates, conflicts and decisions, preserved files,
|
|
32
|
-
validation output, scan-clean result, and
|
|
38
|
+
partialUpdate status if any, validation output, scan-clean result, and
|
|
39
|
+
remaining risks.
|
|
@@ -1,37 +1,59 @@
|
|
|
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
|
+
{
|
|
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
|
+
"PostToolUse": [
|
|
37
|
+
{
|
|
38
|
+
"matcher": "",
|
|
39
|
+
"hooks": [
|
|
40
|
+
{
|
|
41
|
+
"type": "command",
|
|
42
|
+
"command": "node Harness/scripts/wf-mode-hook.mjs"
|
|
43
|
+
}
|
|
44
|
+
]
|
|
45
|
+
}
|
|
46
|
+
],
|
|
47
|
+
"Stop": [
|
|
48
|
+
{
|
|
49
|
+
"matcher": "",
|
|
50
|
+
"hooks": [
|
|
51
|
+
{
|
|
52
|
+
"type": "command",
|
|
53
|
+
"command": "node Harness/scripts/wf-mode-hook.mjs"
|
|
54
|
+
}
|
|
55
|
+
]
|
|
56
|
+
}
|
|
57
|
+
]
|
|
58
|
+
}
|
|
59
|
+
}
|
|
@@ -1,17 +1,20 @@
|
|
|
1
1
|
{
|
|
2
|
-
"generator": "0.8.
|
|
3
|
-
"generated": "2026-07-
|
|
2
|
+
"generator": "0.8.2",
|
|
3
|
+
"generated": "2026-07-02T04:28:22.774Z",
|
|
4
4
|
"options": [],
|
|
5
5
|
"autoCheck": true,
|
|
6
6
|
"source": "https://raw.githubusercontent.com/zingspark/create-harness-vibe-coding/main/templates/common/",
|
|
7
7
|
"checksums": {
|
|
8
8
|
".agents/skills/subagent-orchestrator/SKILL.md": "sha256-d17b1e49aa8e3125b17621242f620ac89c10692fac853bf0a682a87f660d86da",
|
|
9
|
+
".agents/skills/tdd/SKILL.md": "sha256-2a86f45b3685670f5f214fdcc8d21ecc3d04f42af4f7cae2a38e994ab24bfb1e",
|
|
10
|
+
".agents/skills/wf-auto-spark/SKILL.md": "sha256-b07a3570e232cf47b179b9774daed4c00d7756ccce9e2339556d3544f92cf02b",
|
|
11
|
+
".agents/skills/wf-auto/SKILL.md": "sha256-ac3177dc7c5f40f99017b79dbb71722325f75c2e608f20aca780fd874c9755ee",
|
|
9
12
|
".agents/skills/wf-learn/SKILL.md": "sha256-7f3e1ee0aa83cbb76707698d0c26b703ad5c74b2df95a7dc4d751939a4ba05b2",
|
|
10
|
-
".agents/skills/wf-max/SKILL.md": "sha256-
|
|
13
|
+
".agents/skills/wf-max/SKILL.md": "sha256-9b37cc3385f6d1a285b617169e91fbf71ffec76135b7b46ec1de2fe94ca220da",
|
|
11
14
|
".agents/skills/wf-readme/SKILL.md": "sha256-4d34ee3b6b305fa2581f5d8cb31e9152759f3df8bf8fa08efbb43782f128bdcd",
|
|
12
|
-
".agents/skills/wf-remove/SKILL.md": "sha256-
|
|
15
|
+
".agents/skills/wf-remove/SKILL.md": "sha256-f27aee81d4d6988186f468ccc5dfd02c7605967636a5aea93d92443e030dbcc2",
|
|
13
16
|
".agents/skills/wf-review/SKILL.md": "sha256-cc6d536ec6de25546a0ba96e686f195da50ed11bc03763a76ef46d77243d3537",
|
|
14
|
-
".agents/skills/wf-update/SKILL.md": "sha256-
|
|
17
|
+
".agents/skills/wf-update/SKILL.md": "sha256-d57cd89e271b2af63b6a1264af552a30f8d44959cf4782b42f0ab082a90be9cf",
|
|
15
18
|
".agents/skills/wf/SKILL.md": "sha256-70766bd2cb02bc489b5cc021797af62596a005d444a026abb511054a1a820a67",
|
|
16
19
|
".claude/agents/architect-manager.md": "sha256-d98c3a2d044d5216d9bcde217b4359b1c33f5be152416e242807652ddcd2868b",
|
|
17
20
|
".claude/agents/architect.md": "sha256-61cea40c8c3e01bd53f3ad642ef734850fdb931497e7ee20552ea7a8b4e7b70c",
|
|
@@ -26,44 +29,55 @@
|
|
|
26
29
|
".claude/agents/researcher.md": "sha256-402fef14dee8f495dc9ddfad5af3ad233d254326b49b831f604014a8cb6d0beb",
|
|
27
30
|
".claude/agents/review-manager.md": "sha256-fb8fbd6c6624279cc97aa3dbd50ec20c150ff4a2d195788bc8537d98699cc41b",
|
|
28
31
|
".claude/agents/reviewer.md": "sha256-2913b7799fcd8e162f01ae0de09a41ec7083de5f0cae3abcd4ecc62acc675a6b",
|
|
32
|
+
".claude/agents/tdd-guide.md": "sha256-c1663ffba6e48c7c19b0de1bb3eae674b3e85386fc959b15dd30d696aef6433c",
|
|
29
33
|
".claude/agents/test-writer.md": "sha256-9018a9f65f1861a9bade999790e945d258781c1d846eb30a9de23ec3ce5f1d82",
|
|
30
34
|
".claude/agents/verifier.md": "sha256-6d8ca8bd13d7bb7680423875269e407c06aca60334df44d9230a015aabd0a8d0",
|
|
31
35
|
".claude/rules/ecc/common.md": "sha256-157c300e3b47049998d1bca867da6f9b54efb5de6efbabbb64a22af4cb2b84e8",
|
|
32
|
-
".claude/settings.json": "sha256-
|
|
36
|
+
".claude/settings.json": "sha256-4a2bdeb15d9911c8fa624e90ef977e857790981017ff10f44de36a343249ce25",
|
|
33
37
|
".claude/skills/subagent-orchestrator/SKILL.md": "sha256-d17b1e49aa8e3125b17621242f620ac89c10692fac853bf0a682a87f660d86da",
|
|
38
|
+
".claude/skills/tdd/SKILL.md": "sha256-2a86f45b3685670f5f214fdcc8d21ecc3d04f42af4f7cae2a38e994ab24bfb1e",
|
|
39
|
+
".claude/skills/wf-auto-spark/SKILL.md": "sha256-b07a3570e232cf47b179b9774daed4c00d7756ccce9e2339556d3544f92cf02b",
|
|
40
|
+
".claude/skills/wf-auto/SKILL.md": "sha256-ac3177dc7c5f40f99017b79dbb71722325f75c2e608f20aca780fd874c9755ee",
|
|
34
41
|
".claude/skills/wf-learn/SKILL.md": "sha256-7f3e1ee0aa83cbb76707698d0c26b703ad5c74b2df95a7dc4d751939a4ba05b2",
|
|
35
|
-
".claude/skills/wf-max/SKILL.md": "sha256-
|
|
42
|
+
".claude/skills/wf-max/SKILL.md": "sha256-9b37cc3385f6d1a285b617169e91fbf71ffec76135b7b46ec1de2fe94ca220da",
|
|
36
43
|
".claude/skills/wf-readme/SKILL.md": "sha256-4d34ee3b6b305fa2581f5d8cb31e9152759f3df8bf8fa08efbb43782f128bdcd",
|
|
37
|
-
".claude/skills/wf-remove/SKILL.md": "sha256-
|
|
44
|
+
".claude/skills/wf-remove/SKILL.md": "sha256-f27aee81d4d6988186f468ccc5dfd02c7605967636a5aea93d92443e030dbcc2",
|
|
38
45
|
".claude/skills/wf-review/SKILL.md": "sha256-cc6d536ec6de25546a0ba96e686f195da50ed11bc03763a76ef46d77243d3537",
|
|
39
|
-
".claude/skills/wf-update/SKILL.md": "sha256-
|
|
46
|
+
".claude/skills/wf-update/SKILL.md": "sha256-d57cd89e271b2af63b6a1264af552a30f8d44959cf4782b42f0ab082a90be9cf",
|
|
40
47
|
".claude/skills/wf/SKILL.md": "sha256-70766bd2cb02bc489b5cc021797af62596a005d444a026abb511054a1a820a67",
|
|
41
48
|
".codex/config.toml": "sha256-d37497c3278121598a663564ab38b53f658969717f78decb661ddd11c66551ea",
|
|
42
|
-
".codex/hooks.json": "sha256-
|
|
43
|
-
"AGENTS.md": "sha256-
|
|
44
|
-
"CLAUDE.md": "sha256-
|
|
45
|
-
"Harness/
|
|
46
|
-
"Harness/
|
|
47
|
-
"Harness/
|
|
48
|
-
"Harness/
|
|
49
|
+
".codex/hooks.json": "sha256-ec2322e080b96b1c0cb86161476ff75a4ed00312b57eed979d7d4a379365d0b7",
|
|
50
|
+
"AGENTS.md": "sha256-c6e6f08195c41b49b682291c7b83f55acd9750767a7eef3811bf5bbdaa66f76a",
|
|
51
|
+
"CLAUDE.md": "sha256-b62a1bc5410280ed17f87ba591f571a0917f438589627fc50e9a53b9e9d0bb75",
|
|
52
|
+
"Harness/ECC-GUIDE.md": "sha256-48924c4c0e17dc47be53d616a6690415307688f971ec872d8860c5bbe64c90d7",
|
|
53
|
+
"Harness/MEMORY.md": "sha256-6e01795e787eb809f856cce8d90a15a118f8fac1ebbb71dd746a868f207a9457",
|
|
54
|
+
"Harness/README.md": "sha256-3f33274b01d100f20694efdf6c4633a01a79dcef9c9b8974ad5e8796ef928dc6",
|
|
55
|
+
"Harness/SETUP.md": "sha256-2a59db4e5053faf5f82ceb402491df016fee93bd59449202d4c9e1e7388df977",
|
|
56
|
+
"Harness/TDD-GUIDE.md": "sha256-a038f0aea67c72220684d6854536ad7b2d59ab52342374d4710f2c94828f88c4",
|
|
57
|
+
"Harness/WF-AUTO-SPARK.md": "sha256-48cc08e1a78cd4abb2ae9c2807ef1ac9a09544eb954220b9087b2032fabbd690",
|
|
58
|
+
"Harness/WF-AUTO.md": "sha256-ac0ab13e11ca658cd2c5b6ce73f3d267bea6391a04e850c9f9a24d642f1ad350",
|
|
59
|
+
"Harness/WF-MAX.md": "sha256-98a4a918eb8e97c40422c7e133a0bc33184faf7771ca9645f4161d82a5cac8cb",
|
|
49
60
|
"Harness/WF.md": "sha256-7cce2568444295cb387fa958cd4ef9711a19697b60ce9cba0e142484e0a165ae",
|
|
50
61
|
"Harness/agent-workflow.md": "sha256-1aff5e7dc1e082c559cb0a9086c4f93f6702905aff00ebb957300f463ea80b31",
|
|
51
|
-
"Harness/context-loading.md": "sha256-
|
|
52
|
-
"Harness/dispatch.md": "sha256-
|
|
62
|
+
"Harness/context-loading.md": "sha256-a2e71435e127c2ff5b70ebfddb1a8bbaa64dfd584505fbd6e14dc059e18cc6a1",
|
|
63
|
+
"Harness/dispatch.md": "sha256-e823b905bbdcae396d759f281bbd413693904c80b6c18f7993718e63a961b2a6",
|
|
53
64
|
"Harness/extension.md": "sha256-686f76d83e91750c20d4f5aa8e614f5003baeb5a703d0451f469ca7eeab75e37",
|
|
54
65
|
"Harness/lifecycle.md": "sha256-5979c37e66e35940cb707f8cd71e97d53bb05399c3281c714f69499abdee59a4",
|
|
55
66
|
"Harness/research/README.md": "sha256-956c154df01cb9376972eb8b88bb3be0fe4e2dda802a72457c0126e3476fa755",
|
|
56
67
|
"Harness/scripts/scan-clean.mjs": "sha256-7f693faf762c9c8e7657143d651f7c8369ed4823f18babe21daec58a55025593",
|
|
57
|
-
"Harness/scripts/validate-harness.mjs": "sha256-
|
|
58
|
-
"Harness/scripts/wf-mode-hook.mjs": "sha256-
|
|
59
|
-
"Harness/scripts/wf-remove.mjs": "sha256-
|
|
60
|
-
"Harness/scripts/wf-statusline.ps1": "sha256-
|
|
61
|
-
"Harness/scripts/wf-statusline.sh": "sha256-
|
|
62
|
-
"Harness/scripts/wf-update-check.mjs": "sha256-
|
|
63
|
-
"Harness/subagents.md": "sha256-
|
|
68
|
+
"Harness/scripts/validate-harness.mjs": "sha256-fd904202f99cd30ad7ce69f5343c4adca94ab30b7a5f8eab37004d748e0779ab",
|
|
69
|
+
"Harness/scripts/wf-mode-hook.mjs": "sha256-fbf2c398bfe21374fc5d0230133dfa16feff6afe79598bd185aae49643075545",
|
|
70
|
+
"Harness/scripts/wf-remove.mjs": "sha256-ae941d34d7d263f2b65751d177673a3c4fb11c326885ca413245e3f93e99a006",
|
|
71
|
+
"Harness/scripts/wf-statusline.ps1": "sha256-49effdea8b0980e762a9440f4be9011543ede3533f6df1b2008368d78c427fcc",
|
|
72
|
+
"Harness/scripts/wf-statusline.sh": "sha256-6fa034fab9abe9361daae14cdb802f69825ce20d4bf6a9c18f58c04e971693ac",
|
|
73
|
+
"Harness/scripts/wf-update-check.mjs": "sha256-d14ce08f4c05ba118362a56a4b7d5965b114bc2b15a023c08e21d57f32b2cf93",
|
|
74
|
+
"Harness/subagents.md": "sha256-31818b96f4e834087d8ce8887758f303114b3fd67fb9819fd661f78170fb39d3"
|
|
64
75
|
},
|
|
65
76
|
"sources": {
|
|
66
77
|
".agents/skills/subagent-orchestrator/SKILL.md": ".claude/skills/subagent-orchestrator/SKILL.md",
|
|
78
|
+
".agents/skills/tdd/SKILL.md": ".claude/skills/tdd/SKILL.md",
|
|
79
|
+
".agents/skills/wf-auto-spark/SKILL.md": ".claude/skills/wf-auto-spark/SKILL.md",
|
|
80
|
+
".agents/skills/wf-auto/SKILL.md": ".claude/skills/wf-auto/SKILL.md",
|
|
67
81
|
".agents/skills/wf-learn/SKILL.md": ".claude/skills/wf-learn/SKILL.md",
|
|
68
82
|
".agents/skills/wf-max/SKILL.md": ".claude/skills/wf-max/SKILL.md",
|
|
69
83
|
".agents/skills/wf-readme/SKILL.md": ".claude/skills/wf-readme/SKILL.md",
|
|
@@ -84,11 +98,15 @@
|
|
|
84
98
|
".claude/agents/researcher.md": ".claude/agents/researcher.md",
|
|
85
99
|
".claude/agents/review-manager.md": ".claude/agents/review-manager.md",
|
|
86
100
|
".claude/agents/reviewer.md": ".claude/agents/reviewer.md",
|
|
101
|
+
".claude/agents/tdd-guide.md": ".claude/agents/tdd-guide.md",
|
|
87
102
|
".claude/agents/test-writer.md": ".claude/agents/test-writer.md",
|
|
88
103
|
".claude/agents/verifier.md": ".claude/agents/verifier.md",
|
|
89
104
|
".claude/rules/ecc/common.md": ".claude/rules/ecc/common.md",
|
|
90
105
|
".claude/settings.json": ".claude/settings.json",
|
|
91
106
|
".claude/skills/subagent-orchestrator/SKILL.md": ".claude/skills/subagent-orchestrator/SKILL.md",
|
|
107
|
+
".claude/skills/tdd/SKILL.md": ".claude/skills/tdd/SKILL.md",
|
|
108
|
+
".claude/skills/wf-auto-spark/SKILL.md": ".claude/skills/wf-auto-spark/SKILL.md",
|
|
109
|
+
".claude/skills/wf-auto/SKILL.md": ".claude/skills/wf-auto/SKILL.md",
|
|
92
110
|
".claude/skills/wf-learn/SKILL.md": ".claude/skills/wf-learn/SKILL.md",
|
|
93
111
|
".claude/skills/wf-max/SKILL.md": ".claude/skills/wf-max/SKILL.md",
|
|
94
112
|
".claude/skills/wf-readme/SKILL.md": ".claude/skills/wf-readme/SKILL.md",
|
|
@@ -102,10 +120,14 @@
|
|
|
102
120
|
"AGENTS.md": "AGENTS.md",
|
|
103
121
|
"CLAUDE.md": "CLAUDE.md",
|
|
104
122
|
"Harness/.harness-version": ".harness-version",
|
|
123
|
+
"Harness/ECC-GUIDE.md": "Harness/ECC-GUIDE.md",
|
|
105
124
|
"Harness/MEMORY.md": "MEMORY.md",
|
|
106
125
|
"Harness/PROGRESS.md": "Harness/PROGRESS.md",
|
|
107
126
|
"Harness/README.md": "Harness/README.md",
|
|
108
127
|
"Harness/SETUP.md": "SETUP.md",
|
|
128
|
+
"Harness/TDD-GUIDE.md": "Harness/TDD-GUIDE.md",
|
|
129
|
+
"Harness/WF-AUTO-SPARK.md": "Harness/WF-AUTO-SPARK.md",
|
|
130
|
+
"Harness/WF-AUTO.md": "Harness/WF-AUTO.md",
|
|
109
131
|
"Harness/WF-MAX.md": "Harness/WF-MAX.md",
|
|
110
132
|
"Harness/WF.md": "Harness/WF.md",
|
|
111
133
|
"Harness/agent-workflow.md": "Harness/agent-workflow.md",
|
|
@@ -129,6 +151,7 @@
|
|
|
129
151
|
"Harness/scripts/wf-update-check.mjs": "scripts/wf-update-check.mjs",
|
|
130
152
|
"Harness/subagents.md": "Harness/subagents.md",
|
|
131
153
|
"Harness/tasks/_template/ARTIFACTS.md": "Harness/tasks/_template/ARTIFACTS.md",
|
|
154
|
+
"Harness/tasks/_template/NAMING.md": "Harness/tasks/_template/NAMING.md",
|
|
132
155
|
"Harness/tasks/_template/NOTES.md": "Harness/tasks/_template/NOTES.md",
|
|
133
156
|
"Harness/tasks/_template/PLAN.md": "Harness/tasks/_template/PLAN.md",
|
|
134
157
|
"Harness/tasks/_template/PROGRESS.md": "Harness/tasks/_template/PROGRESS.md",
|
|
@@ -7,24 +7,24 @@ Entry point for coding agents. This project uses the Harness scaffold — a 0-1
|
|
|
7
7
|
Read `CLAUDE.md` first, then `Harness/MEMORY.md`, then `Harness/README.md`.
|
|
8
8
|
Do not bulk-read `Harness/`. Let `Harness/README.md#Load By Task` route you.
|
|
9
9
|
|
|
10
|
-
##
|
|
10
|
+
## WF-MAX Role Contract (READ FIRST)
|
|
11
11
|
|
|
12
|
-
`/wf-max`
|
|
12
|
+
`/wf-max` activates WF-MAX global mode. Top-level orchestrator is **CEO** — reads, plans, dispatches. Delegated Workers follow dispatch packet (writeSet, forbidden, verification). **Global mode ≠ every agent is CEO.**
|
|
13
13
|
|
|
14
|
-
| ALLOWED (W0) | FORBIDDEN (always on source) |
|
|
14
|
+
| ALLOWED (W0 CEO) | FORBIDDEN (always on source) |
|
|
15
15
|
|---|---|
|
|
16
16
|
| Read Harness docs, CLAUDE.md | Edit / Write / MultiEdit |
|
|
17
17
|
| Grep/Glob for scoping | Bash (except `ls`/`dir`/`tree`/`git`) |
|
|
18
18
|
| Agent spawn (ONE message) | Deep source reads → delegate to Worker |
|
|
19
19
|
| Write PLAN.md / PROGRESS.md | Sequential spawn (AP6) |
|
|
20
20
|
|
|
21
|
-
**Tempted to edit source? STOP. Spawn a Worker.**
|
|
21
|
+
**Tempted to edit source? STOP. Spawn a Worker with explicit writeSet.**
|
|
22
22
|
|
|
23
23
|
## Key Commands
|
|
24
24
|
|
|
25
25
|
| Command | Purpose |
|
|
26
26
|
|---------|---------|
|
|
27
|
-
| `/wf-max [task]` | Maximum parallelism: CEO→Manager→Worker |
|
|
27
|
+
| `/wf-max [task]` | Maximum parallelism: CEO→Manager→Worker hierarchy (three-layer architecture: mode / agent role / dispatch permission) |
|
|
28
28
|
| `/wf-review [focus]` | Cross-model peer review (use OTHER CLI) |
|
|
29
29
|
| `/wf <task>` | Standard workflow mode |
|
|
30
30
|
| `/wf-auto` | Perpetual auto-optimization |
|
|
@@ -8,32 +8,26 @@ This repository dogfoods the generated Harness scaffold. Scaffold source files l
|
|
|
8
8
|
- Every session: load `Harness/MEMORY.md` first, then `Harness/README.md`.
|
|
9
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
|
|
|
11
|
-
### 1a.
|
|
11
|
+
### 1a. WF-MAX Role Contract (ACTIVE ONLY when /wf-max invoked)
|
|
12
12
|
|
|
13
|
-
`/wf-max` active →
|
|
13
|
+
`/wf-max` active → top-level orchestrator is **CEO**. Delegated Workers follow dispatch packet, edit only assigned writeSet. **Global mode ≠ every agent is CEO.** (Enforced by hooks + `.runtime/current-mode.json`.)
|
|
14
14
|
|
|
15
|
-
| ALLOWED (W0) | FORBIDDEN (always on source) |
|
|
15
|
+
| ALLOWED (W0 CEO) | FORBIDDEN (always on source) |
|
|
16
16
|
|---|---|
|
|
17
17
|
| Read Harness docs, CLAUDE.md | Edit / Write / MultiEdit |
|
|
18
18
|
| Grep/Glob for scoping | Bash (except `ls`/`dir`/`tree`/`git`) |
|
|
19
19
|
| Agent spawn (ONE message) | Deep source reads → delegate to Worker |
|
|
20
20
|
| Write PLAN.md / PROGRESS.md | Sequential spawn (AP6) |
|
|
21
21
|
|
|
22
|
-
**Tempted to edit source? STOP. Spawn a Worker.**
|
|
22
|
+
**Tempted to edit source? STOP. Spawn a Worker with explicit writeSet.**
|
|
23
23
|
|
|
24
24
|
- `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.
|
|
25
|
-
- `Harness/README.md` is the task router. For every request, check `Harness/README.md#Load By Task
|
|
25
|
+
- `Harness/README.md` is the task router. For every request, check `Harness/README.md#Load By Task` and `Harness/README.md#Skill Commands`; invoke via `/wf-*` skills or `$wf-*` skills.
|
|
26
26
|
- `Harness/PROGRESS.md` is the global task index. Load at session start to see active task and task history.
|
|
27
27
|
- If work spans more than one step, create a task capsule from `Harness/tasks/_template/` and update `Harness/tasks/<task-id>/PROGRESS.md`.
|
|
28
|
-
- Use `/wf <task>`, `/wf-review [focus]`, `wf mode`, `workflow mode`, or `wk mode` for long, difficult, uncertain, multi-file, or repeated-failure work.
|
|
29
|
-
- Use `/wf-max [task]` for maximum parallelism — CEO→Manager→Worker hierarchy. CEO never writes code directly.
|
|
30
|
-
- Use `/wf-auto` for perpetual self-directed optimization — never stops, continuously improves until 8-angle exhaustion.
|
|
31
|
-
- Use `subagent-orchestrator` and `Harness/subagents.md` when coordinating multiple subagents.
|
|
32
|
-
- Use `/wf-update` to check for and apply scaffold updates from GitHub. See `.claude/skills/wf-update/SKILL.md`.
|
|
33
28
|
- Subagents are readers and reporters. Only the main agent writes to `Harness/tasks/<task-id>/PROGRESS.md` and `Harness/tasks/<task-id>/PLAN.md`.
|
|
34
|
-
-
|
|
35
|
-
- For
|
|
36
|
-
- Universal rules live in `.claude/rules/ecc/common.md`.
|
|
29
|
+
- Invoke multi-agent work via `subagent-orchestrator` and `Harness/subagents.md`. Update harness via `/wf-update` (see `.claude/skills/wf-update/SKILL.md`).
|
|
30
|
+
- For memory writing, dispatch `memory-master`. For context analysis, dispatch `context-master`.
|
|
37
31
|
- Never bulk-read `Harness/`; route through `Harness/README.md` and `Harness/MEMORY.md`.
|
|
38
32
|
- Scaffold source files live under `templates/common/` and `templates/optional/`; generated dogfood runtime files live under root `Harness/` and `.claude/`.
|
|
39
33
|
|
|
@@ -86,9 +80,10 @@ This repository dogfoods the generated Harness scaffold. Scaffold source files l
|
|
|
86
80
|
- **Closeout trigger**: during WF closeout, dispatch `context-master` to extract durable knowledge, then `memory-master` to consolidate into `Harness/memory/*`.
|
|
87
81
|
- Never record secrets, credentials, tokens, or private data in memory.
|
|
88
82
|
|
|
89
|
-
## 7.
|
|
83
|
+
## 7. Mode Constraints
|
|
90
84
|
|
|
91
85
|
- Never call `EnterPlanMode` — delegate planning to `planner` subagents (see `Harness/WF.md`).
|
|
92
|
-
- Never write code directly in `/wf` or `/wf-max` mode — delegate all implementation to
|
|
93
|
-
- **
|
|
94
|
-
-
|
|
86
|
+
- Never write code directly in `/wf` or `/wf-max` CEO mode — delegate all implementation to Workers via dispatch packets with explicit writeSet.
|
|
87
|
+
- **WF-MAX three-layer architecture**: global mode (`wf-max`) ≠ agent role (`ceo|manager|worker|reviewer`). Workers follow dispatch packet (writeSet, forbidden, verification). Missing role/writeSet → source edits denied by default.
|
|
88
|
+
- **Enforcement**: `.claude/settings.json` denies `EnterPlanMode` via the `deny` list. Role contract is in [Section 1a](#1a-wf-max-role-contract-read-before-any-tool-use) — read it first.
|
|
89
|
+
- WF-MAX hooks in `.claude/settings.json` enforce per-agentRole + writeSet. `Harness/.runtime/current-mode.json` persists mode state; stale modes (>30 min) auto-clear.
|