create-harness-vibe-coding 0.8.13 → 0.8.17
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +174 -0
- package/README-CN.md +110 -107
- package/README.md +93 -44
- package/package.json +2 -1
- package/src/generator.js +609 -489
- package/src/index.js +5 -5
- package/templates/common/.claude/agents/architect-manager.md +1 -0
- package/templates/common/.claude/agents/architect.md +2 -1
- package/templates/common/.claude/agents/codebase-explorer.md +1 -0
- package/templates/common/.claude/agents/context-master.md +2 -1
- package/templates/common/.claude/agents/debugger.md +1 -0
- package/templates/common/.claude/agents/docs-researcher.md +2 -1
- package/templates/common/.claude/agents/explore-manager.md +1 -0
- package/templates/common/.claude/agents/implement-manager.md +1 -0
- package/templates/common/.claude/agents/implementer.md +1 -0
- package/templates/common/.claude/agents/memory-master.md +2 -1
- package/templates/common/.claude/agents/planner.md +3 -2
- package/templates/common/.claude/agents/reflector.md +1 -0
- package/templates/common/.claude/agents/researcher.md +1 -0
- package/templates/common/.claude/agents/review-manager.md +1 -0
- package/templates/common/.claude/agents/reviewer.md +2 -1
- package/templates/common/.claude/agents/task-scribe.md +1 -0
- package/templates/common/.claude/agents/tdd-guide.md +5 -4
- package/templates/common/.claude/agents/test-writer.md +6 -5
- package/templates/common/.claude/agents/verifier.md +1 -0
- package/templates/common/.claude/commands/wf-auto-spark.md +16 -0
- package/templates/common/.claude/commands/wf-auto.md +16 -0
- package/templates/{optional/skills/browser-e2e/.opencode → common/.claude}/commands/wf-browser.md +3 -2
- package/templates/common/.claude/commands/wf-help.md +9 -5
- package/templates/common/.claude/commands/wf-learn.md +16 -0
- package/templates/common/.claude/commands/wf-max.md +20 -0
- package/templates/common/.claude/commands/wf-readme.md +16 -0
- package/templates/common/.claude/commands/wf-remove.md +16 -0
- package/templates/common/.claude/commands/wf-review.md +16 -0
- package/templates/common/.claude/commands/wf-update.md +68 -10
- package/templates/common/.claude/commands/wf.md +16 -0
- package/templates/common/.claude/rules/ecc/common.md +6 -5
- package/templates/common/.claude/skills/subagent-orchestrator/SKILL.md +12 -6
- package/templates/common/.claude/skills/tdd/SKILL.md +5 -5
- package/templates/common/.claude/skills/wf/SKILL.md +13 -5
- package/templates/common/.claude/skills/wf-agents-docs/SKILL.md +119 -0
- package/templates/common/.claude/skills/wf-auto/SKILL.md +27 -7
- package/templates/common/.claude/skills/wf-auto-spark/SKILL.md +12 -5
- package/templates/common/.claude/skills/wf-browser/SKILL.md +176 -0
- package/templates/common/.claude/skills/wf-help/SKILL.md +30 -0
- package/templates/common/.claude/skills/wf-learn/SKILL.md +6 -0
- package/templates/common/.claude/skills/wf-max/SKILL.md +43 -14
- package/templates/common/.claude/skills/wf-readme/SKILL.md +8 -2
- package/templates/common/.claude/skills/wf-remove/SKILL.md +6 -0
- package/templates/common/.claude/skills/wf-review/SKILL.md +10 -3
- package/templates/common/.claude/skills/wf-update/SKILL.md +41 -4
- package/templates/common/.codex/config.toml +3 -5
- package/templates/common/.harness-version +326 -131
- package/templates/common/.opencode/agents/architect-manager.md +8 -1
- package/templates/common/.opencode/agents/architect.md +2 -1
- package/templates/common/.opencode/agents/codebase-explorer.md +1 -0
- package/templates/common/.opencode/agents/context-master.md +2 -1
- package/templates/common/.opencode/agents/debugger.md +1 -0
- package/templates/common/.opencode/agents/docs-researcher.md +2 -1
- package/templates/common/.opencode/agents/explore-manager.md +11 -1
- package/templates/common/.opencode/agents/implement-manager.md +6 -3
- package/templates/common/.opencode/agents/implementer.md +1 -0
- package/templates/common/.opencode/agents/memory-master.md +2 -1
- package/templates/common/.opencode/agents/planner.md +3 -2
- package/templates/common/.opencode/agents/reflector.md +1 -0
- package/templates/common/.opencode/agents/researcher.md +1 -0
- package/templates/common/.opencode/agents/review-manager.md +6 -2
- package/templates/common/.opencode/agents/reviewer.md +2 -1
- package/templates/common/.opencode/agents/task-scribe.md +1 -0
- package/templates/common/.opencode/agents/tdd-guide.md +5 -4
- package/templates/common/.opencode/agents/test-writer.md +6 -5
- package/templates/common/.opencode/agents/verifier.md +1 -0
- package/templates/common/.opencode/commands/wf-auto-spark.md +3 -2
- package/templates/common/.opencode/commands/wf-auto.md +3 -2
- package/templates/common/.opencode/commands/wf-browser.md +16 -0
- package/templates/common/.opencode/commands/wf-help.md +9 -5
- package/templates/common/.opencode/commands/wf-learn.md +3 -2
- package/templates/common/.opencode/commands/wf-max.md +12 -6
- package/templates/common/.opencode/commands/wf-readme.md +3 -2
- package/templates/common/.opencode/commands/wf-remove.md +3 -2
- package/templates/common/.opencode/commands/wf-review.md +3 -2
- package/templates/common/.opencode/commands/wf-update.md +68 -10
- package/templates/common/.opencode/commands/wf.md +3 -2
- package/templates/common/CLAUDE.md +15 -13
- package/templates/common/Harness/MEMORY.md +24 -21
- package/templates/common/Harness/README.md +50 -47
- package/templates/common/Harness/ownership.manifest.json +878 -0
- package/templates/common/Harness/{architecture.md → project/architecture.md} +1 -1
- package/templates/common/Harness/research/README.md +3 -3
- package/templates/common/Harness/scripts/archive-tasks.mjs +12 -220
- package/templates/common/Harness/scripts/context-budget.mjs +95 -0
- package/templates/common/Harness/scripts/l2-cache-telemetry.mjs +703 -0
- package/templates/common/Harness/scripts/scan-clean.mjs +16 -12
- package/templates/common/Harness/scripts/task-state.mjs +889 -0
- package/templates/common/Harness/scripts/validate-harness.mjs +553 -191
- package/templates/common/Harness/scripts/wf-remove.mjs +61 -35
- package/templates/common/Harness/scripts/wf-update-check.mjs +358 -45
- package/templates/common/Harness/settings.json +43 -0
- package/templates/common/Harness/{ECC-GUIDE.md → specs/guides/ECC-GUIDE.md} +4 -4
- package/templates/common/Harness/{SETUP.md → specs/guides/SETUP.md} +34 -37
- package/templates/common/Harness/{extension.md → specs/guides/extension.md} +3 -3
- package/templates/common/Harness/{lifecycle.md → specs/guides/lifecycle.md} +2 -2
- package/templates/common/Harness/specs/protocols/TASK_ARCHIVE.md +76 -0
- package/templates/common/Harness/{agent-workflow.md → specs/runtime/agent-workflow.md} +6 -6
- package/templates/common/Harness/{context-loading.md → specs/runtime/context-loading.md} +85 -21
- package/templates/common/Harness/{dispatch.md → specs/runtime/dispatch.md} +4 -3
- package/templates/common/Harness/{subagents.md → specs/runtime/subagents.md} +19 -10
- package/templates/common/Harness/{WF-AUTO-SPARK.md → specs/workflows/WF-AUTO-SPARK.md} +2 -2
- package/templates/common/Harness/{WF-AUTO.md → specs/workflows/WF-AUTO.md} +12 -7
- package/templates/common/Harness/{WF-KERNEL.md → specs/workflows/WF-KERNEL.md} +11 -1
- package/templates/common/Harness/{WF-MAX.md → specs/workflows/WF-MAX.md} +40 -7
- package/templates/common/Harness/specs/workflows/WF-STATE.md +141 -0
- package/templates/common/Harness/{WF.md → specs/workflows/WF.md} +12 -1
- package/templates/common/README.md +8 -6
- package/templates/common/memory/startup-hints.md +19 -17
- package/templates/common/opencode.json +1 -0
- package/templates/optional/catalog.json +2 -9
- package/templates/optional/skills/github-pr-review/.claude/skills/github-pr-review/SKILL.md +1 -1
- package/templates/optional/skills/python-backend/.claude/skills/python-backend/SKILL.md +1 -1
- package/templates/optional/skills/ts-react-frontend/.claude/skills/ts-react-frontend/SKILL.md +1 -1
- package/templates/optional/skills/ui-ux-review/.claude/skills/ui-ux-review/SKILL.md +1 -1
- package/templates/common/Harness/TASK_ARCHIVE.md +0 -56
- package/templates/common/Harness/WF-STATE.md +0 -83
- package/templates/optional/skills/browser-e2e/.claude/skills/browser-e2e/SKILL.md +0 -42
- package/templates/optional/skills/browser-e2e/.claude/skills/wf-browser/SKILL.md +0 -194
- package/templates/optional/skills/browser-e2e/Harness/workflows/browser-e2e.md +0 -119
- /package/templates/common/Harness/{ACCEPTANCE_PROTOCOL.md → specs/protocols/ACCEPTANCE_PROTOCOL.md} +0 -0
- /package/templates/common/Harness/{AGENT_ISOLATION.md → specs/protocols/AGENT_ISOLATION.md} +0 -0
- /package/templates/common/Harness/{DEBUG_PROTOCOL.md → specs/protocols/DEBUG_PROTOCOL.md} +0 -0
- /package/templates/common/Harness/{HARNESS_BRIDGE.md → specs/protocols/HARNESS_BRIDGE.md} +0 -0
- /package/templates/common/Harness/{MEMORY_PROTOCOL.md → specs/protocols/MEMORY_PROTOCOL.md} +0 -0
- /package/templates/common/Harness/{TDD-GUIDE.md → specs/protocols/TDD-GUIDE.md} +0 -0
- /package/templates/common/Harness/{WF-AUTO-ANGLES.md → specs/workflows/WF-AUTO-ANGLES.md} +0 -0
package/README.md
CHANGED
|
@@ -16,8 +16,8 @@
|
|
|
16
16
|
</p>
|
|
17
17
|
|
|
18
18
|
<p align="center">
|
|
19
|
-
<a href="README-CN.md">Chinese</a>
|
|
20
|
-
<a href="https://github.com/LiWeny16/create-harness-vibe-coding">GitHub</a>
|
|
19
|
+
<a href="README-CN.md">Chinese</a> |
|
|
20
|
+
<a href="https://github.com/LiWeny16/create-harness-vibe-coding">GitHub</a> |
|
|
21
21
|
<a href="https://www.npmjs.com/package/create-harness-vibe-coding">npm</a>
|
|
22
22
|
</p>
|
|
23
23
|
|
|
@@ -30,16 +30,25 @@ It is not a prompt pack and it does not generate business code. It gives Claude
|
|
|
30
30
|
Without a framework:
|
|
31
31
|
|
|
32
32
|
```text
|
|
33
|
-
Idea
|
|
33
|
+
Idea -> prompt -> patch -> demo -> rediscover context -> repair drift
|
|
34
34
|
```
|
|
35
35
|
|
|
36
36
|
With Harness:
|
|
37
37
|
|
|
38
38
|
```text
|
|
39
|
-
Idea
|
|
40
|
-
|
|
39
|
+
Idea -> Research -> PRD -> Architecture -> Acceptance Criteria
|
|
40
|
+
-> Build -> Test -> Review -> Verify -> Learn -> Update
|
|
41
41
|
```
|
|
42
42
|
|
|
43
|
+
## Measured status in 0.8.16
|
|
44
|
+
|
|
45
|
+
Current evidence in this repository:
|
|
46
|
+
|
|
47
|
+
- HarnessBench v0.2 local lifecycle proof: 15 runs per mode. Direct file writes completed safely in 3/15 runs; the Harness safe path completed safely in 15/15 runs.
|
|
48
|
+
- Protected overwrites in that proof: 21 for direct file writes, 0 for the Harness safe path.
|
|
49
|
+
- Claude Code L2 prompt-cache sample: `harness-thin` reached `98.7%` warm median cache read (`+5.4` percentage points vs provider-control); `/wf` wf-light reached `99.1%` (`+5.8` percentage points).
|
|
50
|
+
- Startup and update chain: thin startup remains the default, `Harness/specs/guides/SETUP.md` is only setup/migration reference material, and `/wf-update` reports `agent.releaseHighlights` plus validation results.
|
|
51
|
+
|
|
43
52
|
## One-line install (recommended for existing repos)
|
|
44
53
|
|
|
45
54
|
Paste this into your agent:
|
|
@@ -54,62 +63,97 @@ After reading this README, the agent selects the path that matches the project:
|
|
|
54
63
|
|---|---|
|
|
55
64
|
| New project | `npx create-harness-vibe-coding@latest my-project -y` |
|
|
56
65
|
| Existing project | `npx create-harness-vibe-coding@latest my-project . -y --on-conflict skip --json` |
|
|
57
|
-
| Existing `Harness/` with `Harness/scripts/wf-update-check.mjs` | `node Harness/scripts/wf-update-check.mjs --json`; update, do not reinstall |
|
|
66
|
+
| Existing `Harness/` with `Harness/scripts/wf-update-check.mjs` | `node Harness/scripts/wf-update-check.mjs --json`; update, do not reinstall; after apply/finalize, report `agent.releaseHighlights` plus validation results |
|
|
58
67
|
| Existing `Harness/` but missing `Harness/scripts/wf-update-check.mjs` | `npx create-harness-vibe-coding@latest my-project . -y --on-conflict skip --json`. Then run `node Harness/scripts/wf-update-check.mjs --json` |
|
|
59
68
|
| After install or update | `node Harness/scripts/validate-harness.mjs --strict` |
|
|
60
69
|
|
|
61
|
-
After installation,
|
|
70
|
+
After installation, hand off by phase: use `CLAUDE.md` as the normal session entry, use `Harness/specs/guides/SETUP.md` only for install/bootstrap, migration, or upgrade decisions, and use `Harness/README.md` as the Harness workflow router when a routed task needs it. Preserve project boundaries; research and plan before editing; run tests, validation, and review before claiming completion.
|
|
62
71
|
|
|
63
72
|
The user does not need to run commands manually. The agent handles installation, conflict handling, validation, and the handoff.
|
|
64
73
|
|
|
65
74
|
## Which WF command should you use?
|
|
66
75
|
|
|
67
|
-
When in doubt, use `/wf-help
|
|
76
|
+
When in doubt, use `/wf-help` (or `$wf-help` in Codex). It returns the full command table. Use `/wf` for complex work and `/wf-max` when the work can be safely parallelized.
|
|
68
77
|
|
|
69
78
|
| Command | Use it when | What it does | Example |
|
|
70
79
|
|---|---|---|---|
|
|
71
|
-
| `/wf <task>` | Multi-file, architectural, risky, migration, or repeatedly failing work | Research
|
|
72
|
-
| `/wf-max <task>` | The task splits into independent work and needs maximum parallelism | Adds CEO
|
|
80
|
+
| `/wf <task>` | Multi-file, architectural, risky, migration, or repeatedly failing work | Research -> plan -> implement -> test -> review -> verify -> reflect | `/wf refactor the payment module and add tests` |
|
|
81
|
+
| `/wf-max <task>` | The task splits into independent work and needs maximum parallelism | Adds CEO -> Manager -> Worker roles and parallel waves to the full WF chain | `/wf-max upgrade frontend, backend, and docs in parallel` |
|
|
73
82
|
| `/wf-auto` | You want continuous self-directed optimization with adaptive probe selection | Runs repeated optimization cycles with plans, evidence, and feedback | `/wf-auto improve this project's stability` |
|
|
74
83
|
| `/wf-auto-spark` | You need external inspiration, competitive direction, or a long-term roadmap | Searches for sparks, anchors work to a North Star and milestones, and guards scope drift | `/wf-auto-spark explore product growth directions` |
|
|
75
84
|
| `/wf-review [focus]` | You need a second opinion, peer review, or a pre-release check | Uses a peer CLI when available, otherwise an independent reviewer role, and classifies findings by severity | `/wf-review focus on security and data loss` |
|
|
76
85
|
| `/wf-learn` | The same mistakes keep recurring or a completed task needs to become reusable knowledge | Consolidates context, memory, and project lessons | `/wf-learn summarize why this task needed rework` |
|
|
77
86
|
| `/wf-browser <task>` | Browser smoke tests, E2E, screenshots, forms, or UI verification | Uses a real browser and returns screenshots, traces, and evidence | `/wf-browser verify login and checkout` |
|
|
78
87
|
| `/wf-readme <task>` | README, install docs, architecture diagrams, or project docs need work | Preserves facts while improving structure, setup, and usage guidance | `/wf-readme improve the Chinese README` |
|
|
79
|
-
| `/wf-update` | Harness is already installed and needs an update | Compares versions, applies safe changes,
|
|
88
|
+
| `/wf-update` | Harness is already installed and needs an update | Compares versions, applies safe changes, leaves semantic conflicts to the agent, and reports release highlights from the changelog metadata | `/wf-update` |
|
|
80
89
|
| `/wf-remove` | You need to uninstall Harness | Removes safe files, preserves user data, and asks before touching conflicts | `/wf-remove` |
|
|
81
90
|
| `/wf-help` | You do not know which command to use | Returns command usage without starting a workflow | `/wf-help` |
|
|
82
91
|
|
|
83
|
-
Claude Code uses `/wf-*`; Codex uses the matching `$wf-*`; OpenCode uses the registered command or Agent instruction. `/wf-auto` and `/wf-auto-spark` are continuous modes, so give the agent a clear goal, scope, and acceptance criteria before starting.
|
|
92
|
+
Claude Code uses `/wf-*`; Codex uses the matching `$wf-*`; OpenCode uses the registered command or Agent instruction. Browser E2E guidance is built into `wf-browser`. `/wf-auto` and `/wf-auto-spark` are continuous modes, so give the agent a clear goal, scope, and acceptance criteria before starting.
|
|
84
93
|
|
|
85
|
-
Common starting points: Web/API work starts with correctness, security, reliability, and verification; CLI/SDK work starts with contracts, compatibility, error UX, and docs; AI-agent work starts with context quality, tool safety, evaluation, and recovery; data jobs start with idempotency, failure recovery, and observability. See the full [WF-AUTO-ANGLES.md](Harness/WF-AUTO-ANGLES.md) selection protocol.
|
|
94
|
+
Common starting points: Web/API work starts with correctness, security, reliability, and verification; CLI/SDK work starts with contracts, compatibility, error UX, and docs; AI-agent work starts with context quality, tool safety, evaluation, and recovery; data jobs start with idempotency, failure recovery, and observability. See the full [WF-AUTO-ANGLES.md](Harness/specs/workflows/WF-AUTO-ANGLES.md) selection protocol.
|
|
86
95
|
|
|
87
96
|
Chinese README: [README-CN.md](README-CN.md)
|
|
88
97
|
|
|
89
|
-
##
|
|
98
|
+
## Measured difference
|
|
90
99
|
|
|
91
|
-
|
|
100
|
+
Harness does not make the model smarter. It reduces uncontrolled parts of agent
|
|
101
|
+
work: which files may change, how conflicts are handled, how recovery works, and
|
|
102
|
+
what evidence counts as complete.
|
|
92
103
|
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
104
|
+
The current published benchmark is a deterministic local lifecycle proof, not a
|
|
105
|
+
full LLM feature-success A/B result. It creates 5 fixture families x 3 seeds per
|
|
106
|
+
mode and checks the filesystem after each run. See
|
|
107
|
+
[HarnessBench v0.2](docs/benchmarks/HarnessBench.md).
|
|
108
|
+
|
|
109
|
+
Benchmark assets stay outside generated installs: users get the published
|
|
110
|
+
summary, not the runner, fixtures, scorer, or raw logs.
|
|
111
|
+
|
|
112
|
+
### HarnessBench local lifecycle proof
|
|
113
|
+
|
|
114
|
+
Run on 2026-07-26:
|
|
115
|
+
|
|
116
|
+
```bash
|
|
117
|
+
node scripts/harness-bench-local.mjs --output benchmarks/results/harnessbench-local-v0.2.json
|
|
118
|
+
node scripts/harness-bench.mjs --input benchmarks/results/harnessbench-local-v0.2.json --markdown
|
|
119
|
+
```
|
|
101
120
|
|
|
102
|
-
|
|
121
|
+
| Mode | Tasks | Runs | Verified safe | Protected overwrites | Repair-triggering runs | Manual repair events | Required-file misses | Benchmark leaks | Boundary violations |
|
|
122
|
+
|---|---:|---:|---:|---:|---:|---:|---:|---:|---:|
|
|
123
|
+
| No Harness baseline (direct file writes) (`direct-run`) | 5 | 15 | 3/15 (20%) | 21 | 12 | 21 | 0 | 0 | 12 |
|
|
124
|
+
| Harness safe path (`harness-wf`) | 5 | 15 | 15/15 (100%) | 0 | 0 | 0 | 0 | 0 | 0 |
|
|
103
125
|
|
|
104
|
-
|
|
126
|
+
What this proves: Harness has measurable boundary value for fresh install,
|
|
127
|
+
existing-project preservation, same-name user skill protection, old-Harness
|
|
128
|
+
updater recovery, and generated-install benchmark exclusion. It does not prove
|
|
129
|
+
that any model solves arbitrary frontend, backend, or embedded feature work at a
|
|
130
|
+
higher rate. That requires the full HarnessBench LLM A/B suite with raw run
|
|
131
|
+
logs.
|
|
105
132
|
|
|
106
|
-
|
|
133
|
+
### Prompt-cache L2 sample
|
|
107
134
|
|
|
108
|
-
|
|
135
|
+
On 2026-07-23, this dogfood repository ran a bounded Claude Code L2 prompt-cache probe with `node Harness/scripts/l2-cache-telemetry.mjs --groups provider-control,harness-thin,wf-light --turns 11 --turn-budget-usd 0.32 --total-budget-usd 1.20 --timeout-ms 240000`.
|
|
136
|
+
|
|
137
|
+
Source: Claude Code JSON usage fields, especially `usage.cache_read_input_tokens` and `usage.cache_creation_input_tokens`. Read ratio is `cache_read_input_tokens / (input_tokens + cache_creation_input_tokens + cache_read_input_tokens)`. The raw local report is outside the repo at `~/.claude/cache-telemetry/harness-l2-claim-20260723-130331.json`.
|
|
138
|
+
|
|
139
|
+
| Route | Turns | Success | Warm median cache read | Warm range | Warm median latency | Uplift vs provider-control |
|
|
140
|
+
|---|---:|---:|---:|---:|---:|---:|
|
|
141
|
+
| provider-control | 11 | 11/11 | 93.3% | 91.1%-95.4% | 2123.5 ms | baseline |
|
|
142
|
+
| harness-thin | 11 | 11/11 | 98.7% | 98.1%-99.2% | 1786.5 ms | +5.4 percentage points |
|
|
143
|
+
| `/wf` wf-light | 11 | 11/11 | 99.1% | 98.7%-99.7% | 2900 ms | +5.8 percentage points |
|
|
144
|
+
|
|
145
|
+
Claim boundary: this proves real cache reads and a measured improvement in this bounded Claude Code sample. It is not a universal claim for every model, repository, task, or provider.
|
|
146
|
+
|
|
147
|
+
### Compared with adjacent tools
|
|
148
|
+
|
|
149
|
+
Harness is a repo-local operating contract. It can sit above Claude Code, Codex, OpenCode, or another agent instead of replacing them.
|
|
150
|
+
|
|
151
|
+
| Compared with | Primary layer | Harness advantage |
|
|
109
152
|
|---|---|---|
|
|
110
|
-
|
|
|
111
|
-
|
|
|
112
|
-
|
|
|
153
|
+
| Direct agent run | One prompt plus ad hoc context | Persistent task state, explicit write boundaries, verification gates, and recoverable handoff |
|
|
154
|
+
| [Claude Code](https://code.claude.com/docs/en/overview), [Codex](https://developers.openai.com/codex), [OpenCode](https://opencode.ai/docs/) | Coding agents and runtimes | Cross-runtime repo contract with the same commands, memory shape, validator, and update policy |
|
|
155
|
+
| [Aider](https://github.com/aider-ai/aider) | Terminal pair-programming, repo map, git/test loop | Harness focuses on install/update safety, task capsules, external benchmark evidence, and multi-runtime workflow routing |
|
|
156
|
+
| [Superpowers](https://github.com/obra/Superpowers) | Skills-based development methodology | Harness adds an npm scaffold, machine-readable ownership/version manifests, safe merge/update scripts, and generated repo-local state |
|
|
113
157
|
|
|
114
158
|
## Architecture
|
|
115
159
|
|
|
@@ -119,22 +163,22 @@ README structure should meet people where decisions actually happen. Harness use
|
|
|
119
163
|
</a>
|
|
120
164
|
<br>
|
|
121
165
|
<sub>
|
|
122
|
-
Light infographic
|
|
166
|
+
Light infographic - <a href="docs/images/harness-architecture.drawio">editable Drawio source</a>
|
|
123
167
|
</sub>
|
|
124
168
|
</p>
|
|
125
169
|
|
|
126
170
|
The architecture has three pillars:
|
|
127
171
|
|
|
128
|
-
1. **Goals & Constraints**
|
|
129
|
-
2. **Quality Context**
|
|
130
|
-
3. **Decomposition & Feedback**
|
|
172
|
+
1. **Goals & Constraints** - PRD -> research -> architecture -> acceptance criteria.
|
|
173
|
+
2. **Quality Context** - a router, context-loading protocol, and durable memory keep attention on the right evidence.
|
|
174
|
+
3. **Decomposition & Feedback** - `/wf` and `/wf-max` assign bounded work, then review, verify, learn, and update the next task.
|
|
131
175
|
|
|
132
176
|
## What gets scaffolded
|
|
133
177
|
|
|
134
178
|
| Layer | Purpose |
|
|
135
179
|
|---|---|
|
|
136
|
-
| `CLAUDE.md`, `AGENTS.md` | Agent entry contract and
|
|
137
|
-
| `Harness/README.md`, `Harness/MEMORY.md` |
|
|
180
|
+
| `CLAUDE.md`, `AGENTS.md` | Agent session entry contract and compatibility pointer |
|
|
181
|
+
| `Harness/README.md`, `Harness/MEMORY.md` | Harness workflow router and resource index |
|
|
138
182
|
| `Harness/tasks/`, `Harness/PROGRESS.md` | Resumable task state across sessions |
|
|
139
183
|
| `.claude/`, `.agents/`, `.codex/`, `.opencode/` | Tool-specific discovery and configuration |
|
|
140
184
|
| `templates/common/`, `templates/optional/` | Declarative scaffold source and optional workflows |
|
|
@@ -150,7 +194,7 @@ Paste this to your agent:
|
|
|
150
194
|
Read and follow https://github.com/LiWeny16/create-harness-vibe-coding exactly to configure this project with create-harness-vibe-coding.
|
|
151
195
|
```
|
|
152
196
|
|
|
153
|
-
The agent-first path previews the target before writing and preserves project-owned files.
|
|
197
|
+
The agent-first path previews the target before writing and preserves project-owned files. `Harness/specs/guides/SETUP.md` is the retained bootstrap/migration reference created by the scaffold; it is not the normal session entry.
|
|
154
198
|
|
|
155
199
|
If `Harness/` already exists, first check whether `Harness/scripts/wf-update-check.mjs` exists. If it does, use `/wf-update`, `$wf-update`, or `node Harness/scripts/wf-update-check.mjs --json` instead of reinstalling blindly. If it is missing, run the safe CLI recovery command from the installation table first, then run the updater.
|
|
156
200
|
|
|
@@ -158,17 +202,16 @@ If `Harness/` already exists, first check whether `Harness/scripts/wf-update-che
|
|
|
158
202
|
|
|
159
203
|
Ask your agent to add the capability you need:
|
|
160
204
|
|
|
161
|
-
> Add `
|
|
205
|
+
> Add `ui-ux-review` and `ts-react-frontend` to this Harness project, preserve existing files, run the strict validator, and report exactly what changed.
|
|
162
206
|
|
|
163
207
|
| Workflow | Use it for |
|
|
164
208
|
|---|---|
|
|
165
|
-
| `browser-e2e` | Screenshots, traces, and smoke tests |
|
|
166
209
|
| `ui-ux-review` | Responsive, accessibility, and polish review |
|
|
167
210
|
| `ts-react-frontend` | TypeScript, React, and Vite projects |
|
|
168
211
|
| `python-backend` | FastAPI and pytest projects |
|
|
169
212
|
| `github-pr-review` | PR diff review and CI evidence |
|
|
170
213
|
|
|
171
|
-
External recommendations are recorded in `Harness/SETUP.md`; they are not auto-installed.
|
|
214
|
+
External recommendations are recorded in `Harness/specs/guides/SETUP.md`; they are not auto-installed.
|
|
172
215
|
|
|
173
216
|
| Recommendation | Use it for | Source |
|
|
174
217
|
|---|---|---|
|
|
@@ -194,6 +237,10 @@ node Harness/scripts/validate-harness.mjs --strict
|
|
|
194
237
|
npm run check:mirrors
|
|
195
238
|
```
|
|
196
239
|
|
|
240
|
+
## Ownership manifest
|
|
241
|
+
|
|
242
|
+
`Harness/ownership.manifest.json` is the machine-readable source of truth for file classification during install/update. It is auto-generated from `templates/common/` + `templates/optional/catalog.json` by `node scripts/build-version.mjs`. Framework-owned files overwrite-upgrade; user data (tasks, memory, research, README, package, PROGRESS) is preserved; CLAUDE/AGENTS/Harness README merge; same-name user agents/commands/skills (no marker) are never overwritten.
|
|
243
|
+
|
|
197
244
|
## Release gate
|
|
198
245
|
|
|
199
246
|
Iron rule: every update release must keep both update channels live:
|
|
@@ -201,7 +248,9 @@ Iron rule: every update release must keep both update channels live:
|
|
|
201
248
|
- Canonical: npm `create-harness-vibe-coding@latest` and `https://github.com/LiWeny16/create-harness-vibe-coding`
|
|
202
249
|
- Legacy compatibility mirror: `https://github.com/zingspark/create-harness-vibe-coding`
|
|
203
250
|
|
|
204
|
-
Low-version installs can have updater scripts hardcoded to the legacy mirror. Do not mark a release complete until the legacy mirror exposes the same commit
|
|
251
|
+
Low-version installs can have updater scripts hardcoded to the legacy mirror. Do not mark a release complete until the legacy mirror exposes the same commit on `main`, the version tag, the generated template manifest (`templates/common/.harness-version` AND `templates/common/Harness/ownership.manifest.json`), and the tag's GitHub Release artifact, all matching canonical. Generated installs still record the canonical `LiWeny16` source; the `zingspark` repo is kept for backward compatibility.
|
|
252
|
+
|
|
253
|
+
"Code ready" is not "users can update". Users on published npm receive the new version only AFTER `npm publish` completes AND the GitHub release/tag is cut AND both mirrors are synced. Do not announce the update as available to existing users until all three are done.
|
|
205
254
|
|
|
206
255
|
## Footprint
|
|
207
256
|
|
|
@@ -209,11 +258,11 @@ Low-version installs can have updater scripts hardcoded to the legacy mirror. Do
|
|
|
209
258
|
|---|---|
|
|
210
259
|
| Runtime | None |
|
|
211
260
|
| Dependencies | 2 (`@clack/prompts`, `picocolors`) |
|
|
212
|
-
| Node.js |
|
|
261
|
+
| Node.js | >=18 |
|
|
213
262
|
| Generated application code | None until you choose a stack |
|
|
214
263
|
|
|
215
264
|
## Keywords and related concepts
|
|
216
265
|
|
|
217
|
-
AI coding agent framework
|
|
266
|
+
AI coding agent framework; agentic workflow; context engineering; long-running coding tasks; task orchestration; durable memory; safe merge; conflict handling; acceptance criteria; Claude Code; Codex; OpenCode; Node.js CLI; developer productivity
|
|
218
267
|
|
|
219
|
-
MIT
|
|
268
|
+
MIT (c) [LiWeny16](https://github.com/LiWeny16)
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "create-harness-vibe-coding",
|
|
3
|
-
"version": "0.8.
|
|
3
|
+
"version": "0.8.17",
|
|
4
4
|
"description": "Scaffold a 0-1 product harness for AI-assisted research, PRD, planning, architecture, build, test, and feedback loops",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|
|
@@ -13,6 +13,7 @@
|
|
|
13
13
|
"docs/images/harness-icon.png",
|
|
14
14
|
"docs/images/harness-architecture-light.png",
|
|
15
15
|
"docs/images/harness-architecture.drawio",
|
|
16
|
+
"CHANGELOG.md",
|
|
16
17
|
"README-CN.md"
|
|
17
18
|
],
|
|
18
19
|
"scripts": {
|