create-harness-vibe-coding 0.7.2 → 0.8.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/README-CN.md +103 -155
- package/README.md +213 -175
- package/bin/create-harness-vibe-coding.js +2 -2
- package/package.json +45 -43
- package/src/generator.js +115 -77
- package/src/index.js +159 -49
- package/src/prompts.js +95 -27
- package/templates/common/.claude/agents/architect-manager.md +45 -45
- package/templates/common/.claude/agents/context-master.md +77 -77
- package/templates/common/.claude/agents/debugger.md +41 -41
- package/templates/common/.claude/agents/explore-manager.md +41 -41
- package/templates/common/.claude/agents/implement-manager.md +49 -49
- package/templates/common/.claude/agents/implementer.md +40 -40
- package/templates/common/.claude/agents/memory-master.md +66 -66
- package/templates/common/.claude/agents/planner.md +34 -34
- package/templates/common/.claude/agents/researcher.md +41 -41
- package/templates/common/.claude/agents/review-manager.md +56 -56
- package/templates/common/.claude/agents/test-writer.md +38 -38
- package/templates/common/.claude/agents/verifier.md +32 -32
- package/templates/common/.claude/rules/ecc/common.md +45 -45
- package/templates/common/.claude/settings.json +68 -68
- package/templates/common/.claude/skills/subagent-orchestrator/SKILL.md +36 -31
- package/templates/common/.claude/skills/wf/SKILL.md +36 -0
- package/templates/common/.claude/skills/wf-learn/SKILL.md +13 -28
- package/templates/common/.claude/skills/wf-max/SKILL.md +24 -88
- package/templates/common/.claude/skills/wf-readme/SKILL.md +49 -49
- package/templates/common/.claude/skills/wf-remove/SKILL.md +17 -38
- package/templates/common/.claude/skills/wf-review/SKILL.md +19 -69
- package/templates/common/.claude/skills/wf-update/SKILL.md +19 -61
- package/templates/common/.codex/config.toml +2 -2
- package/templates/common/.codex/hooks.json +37 -37
- package/templates/common/.harness-version +53 -51
- package/templates/common/AGENTS.md +30 -30
- package/templates/common/CLAUDE.md +94 -94
- package/templates/common/{docs/harness → Harness}/PROGRESS.md +17 -17
- package/templates/common/{docs → Harness}/README.md +18 -17
- package/templates/common/{docs/harness → Harness}/WF-MAX.md +223 -223
- package/templates/common/Harness/WF.md +217 -0
- package/templates/common/{docs/harness → Harness}/architecture.md +126 -126
- package/templates/common/{docs/harness → Harness}/dispatch.md +99 -99
- package/templates/common/{docs → Harness}/research/research-results.md +66 -66
- package/templates/common/{docs/harness → Harness}/subagents.md +194 -194
- package/templates/common/{docs → Harness}/tasks/_template/ARTIFACTS.md +3 -3
- package/templates/common/{docs → Harness}/tasks/_template/NOTES.md +3 -3
- package/templates/common/{docs → Harness}/tasks/_template/PLAN.md +40 -40
- package/templates/common/{docs → Harness}/tasks/_template/PROGRESS.md +29 -29
- package/templates/common/MEMORY.md +68 -66
- package/templates/common/README.md +44 -37
- package/templates/common/SETUP.md +67 -47
- package/templates/common/memory/agent-lessons-patterns.md +21 -21
- package/templates/common/memory/tool-usage-reflections.md +21 -21
- package/templates/common/memory/user-corrections-preferences.md +21 -21
- package/templates/common/scripts/scan-clean.mjs +450 -449
- package/templates/common/scripts/validate-harness.mjs +56 -34
- package/templates/common/scripts/wf-mode-hook.mjs +318 -318
- package/templates/common/scripts/wf-remove.mjs +400 -384
- package/templates/common/scripts/wf-statusline.ps1 +38 -38
- package/templates/common/scripts/wf-statusline.sh +48 -48
- package/templates/common/scripts/wf-update-check.mjs +389 -389
- package/templates/optional/catalog.json +63 -29
- package/templates/optional/skills/browser-e2e/.claude/skills/wf-browser/SKILL.md +194 -194
- package/templates/optional/skills/browser-e2e/{docs → Harness}/workflows/browser-e2e.md +75 -75
- package/templates/optional/skills/github-pr-review/{docs → Harness}/workflows/github-pr-review.md +28 -28
- package/templates/optional/skills/python-backend/{docs → Harness}/workflows/python-backend.md +34 -34
- package/templates/optional/skills/ts-react-frontend/{docs → Harness}/workflows/ts-react-frontend.md +35 -35
- package/templates/optional/skills/ui-ux-review/{docs → Harness}/workflows/ui-ux-review.md +26 -26
- package/templates/common/.claude/commands/wf-learn.md +0 -17
- package/templates/common/.claude/commands/wf-max.md +0 -49
- package/templates/common/.claude/commands/wf-remove.md +0 -23
- package/templates/common/.claude/commands/wf-review.md +0 -25
- package/templates/common/.claude/commands/wf-update.md +0 -17
- package/templates/common/.claude/commands/wf.md +0 -31
- package/templates/common/commands/wf-max.toml +0 -18
- package/templates/common/commands/wf-review.toml +0 -15
- package/templates/common/docs/harness/WF.md +0 -174
- package/templates/optional/skills/browser-e2e/.claude/commands/wf-browser.md +0 -25
- /package/templates/common/{docs/harness → Harness}/agent-workflow.md +0 -0
- /package/templates/common/{docs/harness → Harness}/context-loading.md +0 -0
- /package/templates/common/{docs/harness → Harness}/extension.md +0 -0
- /package/templates/common/{docs/harness → Harness}/lifecycle.md +0 -0
- /package/templates/common/{docs → Harness}/research/PRD.md +0 -0
- /package/templates/common/{docs → Harness}/research/README.md +0 -0
package/README.md
CHANGED
|
@@ -1,210 +1,248 @@
|
|
|
1
|
-
<p align="center">
|
|
2
|
-
<img src="https://img.shields.io/npm/v/create-harness-vibe-coding?color=blue" alt="npm">
|
|
3
|
-
<img src="https://img.shields.io/badge/node-%3E%3D18-brightgreen" alt="node">
|
|
4
|
-
<img src="https://img.shields.io/npm/l/create-harness-vibe-coding" alt="license">
|
|
5
|
-
<img src="https://img.shields.io/github/stars/zingspark/create-harness-vibe-coding?style=social" alt="stars">
|
|
6
|
-
</p>
|
|
7
|
-
|
|
8
|
-
<h1 align="center">create-harness-vibe-coding</h1>
|
|
9
|
-
<p align="center">
|
|
10
|
-
<b>A harness for your AI agent. One scaffold. Zero drift.</b><br>
|
|
11
|
-
</p>
|
|
12
|
-
|
|
13
|
-
## One Command. Done.
|
|
14
|
-
|
|
15
|
-
```bash
|
|
16
|
-
npx create-harness-vibe-coding@latest my-project
|
|
17
|
-
```
|
|
18
|
-
|
|
19
|
-
## Your Agent Knows What to Do
|
|
20
|
-
|
|
21
|
-
Already have a project? **Don't read the docs**. Paste this sentence. Your agent handles the rest.
|
|
22
|
-
|
|
1
|
+
<p align="center">
|
|
2
|
+
<img src="https://img.shields.io/npm/v/create-harness-vibe-coding?color=blue" alt="npm">
|
|
3
|
+
<img src="https://img.shields.io/badge/node-%3E%3D18-brightgreen" alt="node">
|
|
4
|
+
<img src="https://img.shields.io/npm/l/create-harness-vibe-coding" alt="license">
|
|
5
|
+
<img src="https://img.shields.io/github/stars/zingspark/create-harness-vibe-coding?style=social" alt="stars">
|
|
6
|
+
</p>
|
|
7
|
+
|
|
8
|
+
<h1 align="center">create-harness-vibe-coding</h1>
|
|
9
|
+
<p align="center">
|
|
10
|
+
<b>A harness for your AI agent. One scaffold. Zero drift.</b><br>
|
|
11
|
+
</p>
|
|
12
|
+
|
|
13
|
+
## One Command. Done.
|
|
14
|
+
|
|
15
|
+
```bash
|
|
16
|
+
npx create-harness-vibe-coding@latest my-project
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
## Your Agent Knows What to Do
|
|
20
|
+
|
|
21
|
+
Already have a project? **Don't read the docs**. Paste this sentence. Your agent handles the rest.
|
|
22
|
+
|
|
23
23
|
```text
|
|
24
|
-
|
|
25
|
-
```
|
|
26
|
-
|
|
27
|
-
That's it. Two paths into the harness — you type `npx`, or your agent reads the sentence.
|
|
28
|
-
|
|
29
|
-
Chinese README: [README-CN.md](README-CN.md)
|
|
30
|
-
|
|
31
|
-
---
|
|
32
|
-
|
|
33
|
-
## What You Get
|
|
34
|
-
|
|
35
|
-
| You get | So your agent |
|
|
36
|
-
|---------|---------------|
|
|
37
|
-
| `CLAUDE.md` + `Harness/README.md` | Starts with a router, not a novel |
|
|
38
|
-
| `Harness/tasks/` + `Harness/PROGRESS.md` | Tracks work across sessions |
|
|
39
|
-
| `/wf` workflow + heartbeat | Finishes long tasks without getting lost |
|
|
40
|
-
| `/wf update` | Pulls scaffold fixes from GitHub |
|
|
41
|
-
| `subagent-orchestrator` | Runs parallel agents without collision |
|
|
42
|
-
| `memory-master` + `context-master` | Learns from failures, compresses when full |
|
|
43
|
-
| PRD + Research templates | Asks "what" and "why" before coding |
|
|
44
|
-
| 11 built-in agents | Research, plan, architect, test, build, review, debug, verify |
|
|
45
|
-
| Architecture docs | Knows where boundaries live |
|
|
46
|
-
| Context-loading protocol | Loads only the docs each agent needs |
|
|
47
|
-
| `.claude/` skeleton | Agents, skills, commands, hooks — ready to go |
|
|
48
|
-
|
|
49
|
-
---
|
|
50
|
-
|
|
51
|
-
## Why This Exists
|
|
52
|
-
|
|
53
|
-
Most AI coding projects fail before anyone writes a line of bad code. The agent jumps straight to implementation, drifts from intent, forgets yesterday's decisions, and bloats its context with the whole repo.
|
|
54
|
-
|
|
55
|
-
| Without harness | With harness |
|
|
56
|
-
|-----------------|--------------|
|
|
57
|
-
| Idea → code. Hope. | Idea → Research → PRD → Architecture → Build → Verify |
|
|
58
|
-
| Agent reads everything | Router loads the one doc it needs |
|
|
59
|
-
| Subagent gets a vague "fix it" | Context pack: role, boundary, return format |
|
|
60
|
-
| Drift invisible until demo | Validator flags missing pieces |
|
|
61
|
-
| Long task stalls, context explodes | `/wf` heartbeat + recovery loop |
|
|
62
|
-
| Scaffold rots | `/wf update` pulls latest from GitHub |
|
|
63
|
-
|
|
64
|
-
---
|
|
65
|
-
|
|
66
|
-
## How It Works
|
|
67
|
-
|
|
68
|
-
```text
|
|
69
|
-
npx create-harness-vibe-coding@latest my-project
|
|
70
|
-
↓
|
|
71
|
-
Agent reads Harness/SETUP.md
|
|
72
|
-
↓
|
|
73
|
-
Router loads only what the task needs
|
|
74
|
-
↓
|
|
75
|
-
PRD → Research → Architecture → first task capsule
|
|
76
|
-
↓
|
|
77
|
-
Build → Test → Review → Verify → Feedback
|
|
78
|
-
↓
|
|
79
|
-
/wf update keeps the harness current
|
|
80
|
-
```
|
|
81
|
-
|
|
82
|
-
```mermaid
|
|
83
|
-
graph TD
|
|
84
|
-
A[ /wf Enter ] --> B[ Explore: 3+ parallel agents ]
|
|
85
|
-
B --> C[ Second Plan ]
|
|
86
|
-
C --> D[ Build: test → implement ]
|
|
87
|
-
D --> E[ Dual-Gate Review ]
|
|
88
|
-
E --> F{ Pass? }
|
|
89
|
-
F -->| No | G[ Debug → Fix → Loop ]
|
|
90
|
-
G --> E
|
|
91
|
-
F -->| Yes | H[ Closeout: memory + context ]
|
|
92
|
-
H --> I[ /wf update ]
|
|
93
|
-
```
|
|
94
|
-
|
|
95
|
-
---
|
|
96
|
-
|
|
97
|
-
## Usage
|
|
98
|
-
|
|
99
|
-
### New project
|
|
100
|
-
|
|
101
|
-
```bash
|
|
102
|
-
npx create-harness-vibe-coding@latest my-project
|
|
103
|
-
cd my-project
|
|
104
|
-
# Your agent reads Harness/SETUP.md. Done.
|
|
24
|
+
Read and follow https://github.com/zingspark/create-harness-vibe-coding exactly to configure this project with create-harness-vibe-coding.
|
|
105
25
|
```
|
|
26
|
+
|
|
27
|
+
That's it. Two paths into the harness — you type `npx`, or your agent reads the sentence.
|
|
28
|
+
|
|
29
|
+
Chinese README: [README-CN.md](README-CN.md)
|
|
30
|
+
|
|
31
|
+
---
|
|
32
|
+
|
|
33
|
+
## What You Get
|
|
34
|
+
|
|
35
|
+
| You get | So your agent |
|
|
36
|
+
|---------|---------------|
|
|
37
|
+
| `CLAUDE.md` + `Harness/README.md` | Starts with a router, not a novel |
|
|
38
|
+
| `Harness/tasks/` + `Harness/PROGRESS.md` | Tracks work across sessions |
|
|
39
|
+
| `/wf` / `$wf` workflow + heartbeat | Finishes long tasks without getting lost |
|
|
40
|
+
| `/wf-update` / `$wf-update` | Pulls scaffold fixes from GitHub |
|
|
41
|
+
| `subagent-orchestrator` | Runs parallel agents without collision |
|
|
42
|
+
| `memory-master` + `context-master` | Learns from failures, compresses when full |
|
|
43
|
+
| PRD + Research templates | Asks "what" and "why" before coding |
|
|
44
|
+
| 11 built-in agents | Research, plan, architect, test, build, review, debug, verify |
|
|
45
|
+
| Architecture docs | Knows where boundaries live |
|
|
46
|
+
| Context-loading protocol | Loads only the docs each agent needs |
|
|
47
|
+
| `.claude/` + `.agents/skills/` | Claude Code and Codex skill adapters over the same Harness docs |
|
|
48
|
+
|
|
49
|
+
---
|
|
50
|
+
|
|
51
|
+
## Why This Exists
|
|
52
|
+
|
|
53
|
+
Most AI coding projects fail before anyone writes a line of bad code. The agent jumps straight to implementation, drifts from intent, forgets yesterday's decisions, and bloats its context with the whole repo.
|
|
54
|
+
|
|
55
|
+
| Without harness | With harness |
|
|
56
|
+
|-----------------|--------------|
|
|
57
|
+
| Idea → code. Hope. | Idea → Research → PRD → Architecture → Build → Verify |
|
|
58
|
+
| Agent reads everything | Router loads the one doc it needs |
|
|
59
|
+
| Subagent gets a vague "fix it" | Context pack: role, boundary, return format |
|
|
60
|
+
| Drift invisible until demo | Validator flags missing pieces |
|
|
61
|
+
| Long task stalls, context explodes | `/wf` heartbeat + recovery loop |
|
|
62
|
+
| Scaffold rots | `/wf-update` or `$wf-update` pulls latest from GitHub |
|
|
63
|
+
|
|
64
|
+
---
|
|
65
|
+
|
|
66
|
+
## How It Works
|
|
67
|
+
|
|
68
|
+
```text
|
|
69
|
+
npx create-harness-vibe-coding@latest my-project
|
|
70
|
+
↓
|
|
71
|
+
Agent reads Harness/SETUP.md
|
|
72
|
+
↓
|
|
73
|
+
Router loads only what the task needs
|
|
74
|
+
↓
|
|
75
|
+
PRD → Research → Architecture → first task capsule
|
|
76
|
+
↓
|
|
77
|
+
Build → Test → Review → Verify → Feedback
|
|
78
|
+
↓
|
|
79
|
+
/wf-update or $wf-update keeps the harness current
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
```mermaid
|
|
83
|
+
graph TD
|
|
84
|
+
A[ /wf Enter ] --> B[ Explore: 3+ parallel agents ]
|
|
85
|
+
B --> C[ Second Plan ]
|
|
86
|
+
C --> D[ Build: test → implement ]
|
|
87
|
+
D --> E[ Dual-Gate Review ]
|
|
88
|
+
E --> F{ Pass? }
|
|
89
|
+
F -->| No | G[ Debug → Fix → Loop ]
|
|
90
|
+
G --> E
|
|
91
|
+
F -->| Yes | H[ Closeout: memory + context ]
|
|
92
|
+
H --> I[ /wf-update or $wf-update ]
|
|
93
|
+
```
|
|
94
|
+
|
|
95
|
+
---
|
|
96
|
+
|
|
97
|
+
## Usage
|
|
98
|
+
|
|
99
|
+
### New project
|
|
100
|
+
|
|
101
|
+
```bash
|
|
102
|
+
npx create-harness-vibe-coding@latest my-project
|
|
103
|
+
cd my-project
|
|
104
|
+
# Your agent reads Harness/SETUP.md. Done.
|
|
105
|
+
```
|
|
106
|
+
|
|
107
|
+
### Install or Upgrade Path
|
|
108
|
+
|
|
109
|
+
Before writing, the agent must identify which path applies:
|
|
110
|
+
|
|
111
|
+
| Project state | Required action |
|
|
112
|
+
|---------------|-----------------|
|
|
113
|
+
| Empty or new project | Run the scaffold, then follow `Harness/SETUP.md` for 0-1 bootstrap |
|
|
114
|
+
| Existing project, no `Harness/` | Scan project facts first, run `--dry-run`, preserve existing files, merge only missing Harness guidance |
|
|
115
|
+
| Legacy architecture or older project docs | Treat existing code/docs as source of truth, dry-run first, then use `Harness/SETUP.md` to fill facts from observed project reality |
|
|
116
|
+
| Existing `Harness/` | Do not use `npx` as an updater; ask whether to run `/wf-update`, `$wf-update`, `node Harness/scripts/wf-update-check.mjs`, keep untouched, or remove/reinstall after approval |
|
|
117
|
+
|
|
118
|
+
Root scan must include top-level files, `CLAUDE.md`, `AGENTS.md`, `.claude/`, `.agents/`, `.codex/`, `Harness/`, package files, CI files, app entry points, test/build commands, existing docs, and already-installed skills/plugins/rules. Use that scan before recommending optional capabilities so you do not suggest duplicates.
|
|
106
119
|
|
|
107
120
|
### Existing project — safe merge
|
|
108
121
|
|
|
109
122
|
```bash
|
|
110
123
|
# Preview first. Always.
|
|
111
124
|
npx create-harness-vibe-coding@latest my-app . -y --dry-run
|
|
112
|
-
|
|
125
|
+
|
|
113
126
|
# Add only what's missing. Never overwrite.
|
|
114
127
|
npx create-harness-vibe-coding@latest my-app . -y --on-conflict skip
|
|
115
128
|
```
|
|
116
129
|
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
|
120
|
-
|
|
121
|
-
|
|
|
122
|
-
| `--
|
|
123
|
-
| `--on-conflict
|
|
124
|
-
| `--
|
|
130
|
+
`npx` is an install and safe-merge entry, not an update engine for an already installed Harness. Once `Harness/` exists, use `/wf-update` in Claude Code, `$wf-update` in Codex, or `node Harness/scripts/wf-update-check.mjs`; root entry conflicts such as `CLAUDE.md`, `AGENTS.md`, `.claude/`, `.agents/`, `.codex/`, and local Harness docs need agent-mediated merge decisions.
|
|
131
|
+
|
|
132
|
+
| Flag | Does |
|
|
133
|
+
|------|------|
|
|
134
|
+
| `-y` | Skip prompts |
|
|
135
|
+
| `--dry-run` | Preview — no writes |
|
|
136
|
+
| `--on-conflict skip` | Keep your files, add only new ones |
|
|
137
|
+
| `--on-conflict backup` | Rename existing → write new |
|
|
138
|
+
| `--on-conflict overwrite` | Replace (destructive) |
|
|
139
|
+
| `--list-options` | Show optional workflows |
|
|
125
140
|
| `--with <ids>` | Add workflow by id |
|
|
141
|
+
| `--recommend <ids>` | Record recommendation-only external capabilities |
|
|
126
142
|
| `--preset <name>` | Add `web-app` or `fullstack` preset |
|
|
127
143
|
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
144
|
+
Without `-y`, interactive mode offers checkbox selection for optional workflows and external recommendations.
|
|
145
|
+
|
|
146
|
+
### Optional workflows
|
|
147
|
+
|
|
148
|
+
```bash
|
|
131
149
|
npx create-harness-vibe-coding@latest my-app -y --with browser-e2e
|
|
132
150
|
npx create-harness-vibe-coding@latest my-app -y --preset web-app
|
|
151
|
+
npx create-harness-vibe-coding@latest my-app -y --recommend superpowers,codegraph
|
|
133
152
|
```
|
|
134
|
-
|
|
135
|
-
| Workflow | For |
|
|
136
|
-
|----------|-----|
|
|
137
|
-
| `browser-e2e` | Screenshots, traces, smoke tests |
|
|
138
|
-
| `ui-ux-review` | Responsive, a11y, polish |
|
|
139
|
-
| `ts-react-frontend` | TypeScript + React + Vite |
|
|
153
|
+
|
|
154
|
+
| Workflow | For |
|
|
155
|
+
|----------|-----|
|
|
156
|
+
| `browser-e2e` | Screenshots, traces, smoke tests |
|
|
157
|
+
| `ui-ux-review` | Responsive, a11y, polish |
|
|
158
|
+
| `ts-react-frontend` | TypeScript + React + Vite |
|
|
140
159
|
| `python-backend` | FastAPI, pytest |
|
|
141
160
|
| `github-pr-review` | PR diff review + CI evidence |
|
|
142
161
|
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
When your agent reads the one-sentence prompt above, it asks **at most 3 questions** before touching files:
|
|
146
|
-
|
|
147
|
-
- Is `CLAUDE.md` or `AGENTS.md` already there? → merge, don't replace
|
|
148
|
-
- Is `docs/` used for product docs? → puts harness in `Harness/`, not `docs/`
|
|
149
|
-
- What stack? → installs matching optional workflows
|
|
162
|
+
External recommendations are recorded in `Harness/SETUP.md` but not installed automatically:
|
|
150
163
|
|
|
151
|
-
|
|
164
|
+
| Recommendation | For | Source |
|
|
165
|
+
|----------------|-----|--------|
|
|
166
|
+
| `superpowers` | Community skill registry and agent workflows | <https://github.com/obra/Superpowers> |
|
|
167
|
+
| `caveman` | Terse, low-token agent behavior and memory compression | <https://github.com/JuliusBrussee/caveman> |
|
|
168
|
+
| `agent-research` | Research-agent skills for literature, product, dependency, and ecosystem investigation | <https://github.com/lingzhi227/agent-research-skills> |
|
|
169
|
+
| `codegraph` | Code graph or repository-map tooling | <https://github.com/colbymchenry/codegraph> |
|
|
152
170
|
|
|
153
|
-
|
|
171
|
+
These are links for the user's agent to evaluate. The scaffold does not maintain third-party install steps; it only records selected recommendations after checking what is already installed.
|
|
154
172
|
|
|
155
|
-
|
|
156
|
-
"Read Harness/SETUP.md. Bootstrap this project."
|
|
157
|
-
"Use /wf for this migration."
|
|
158
|
-
"/wf update — pull latest harness improvements."
|
|
159
|
-
```
|
|
173
|
+
### Agent-link intake
|
|
160
174
|
|
|
161
|
-
|
|
175
|
+
When your agent reads the one-sentence prompt above, it must first scan the project root, then ask **at most 3 blocking questions** before touching files.
|
|
162
176
|
|
|
163
|
-
|
|
164
|
-
npm test
|
|
165
|
-
node Harness/scripts/validate-harness.mjs
|
|
166
|
-
```
|
|
177
|
+
Root scan checklist: list top-level files, detect `CLAUDE.md`, `AGENTS.md`, `.claude/`, `.agents/`, `.codex/`, `Harness/`, package files, CI files, docs folders, obvious app entry points, test/build commands, and installed skills/plugins/rules.
|
|
167
178
|
|
|
168
|
-
|
|
179
|
+
Ask these only when they affect writes:
|
|
169
180
|
|
|
170
|
-
|
|
181
|
+
- If `CLAUDE.md` or `AGENTS.md` already exists, should missing Harness guidance be merged, kept separate, or skipped?
|
|
182
|
+
- If `Harness/` already exists, should the agent run update/dry-run, merge missing files, keep it untouched, or remove/reinstall after approval?
|
|
183
|
+
- Which optional capabilities should be enabled, after excluding capabilities already installed: local workflows (`browser-e2e`, `ui-ux-review`, `ts-react-frontend`, `python-backend`, `github-pr-review`) and recommendation-only external links (`Superpowers`, `Caveman`, `agent research`, `code graph`)?
|
|
171
184
|
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
185
|
+
Harness docs always live in root `Harness/`; do not route Harness files through `docs/`. If a file already exists, the agent asks first. The default is always **preserve**.
|
|
186
|
+
|
|
187
|
+
### After scaffolding
|
|
188
|
+
|
|
189
|
+
```text
|
|
190
|
+
"Read Harness/SETUP.md. Bootstrap this project."
|
|
191
|
+
"Use /wf for this migration." # Claude Code
|
|
192
|
+
"Use $wf for this migration." # Codex
|
|
193
|
+
"/wf-update" or "$wf-update" # pull latest harness improvements
|
|
194
|
+
```
|
|
195
|
+
|
|
196
|
+
### Verify
|
|
197
|
+
|
|
198
|
+
```bash
|
|
199
|
+
npm test
|
|
200
|
+
node Harness/scripts/validate-harness.mjs
|
|
201
|
+
```
|
|
202
|
+
|
|
203
|
+
---
|
|
204
|
+
|
|
205
|
+
## Inside
|
|
206
|
+
|
|
207
|
+
```
|
|
208
|
+
my-project/
|
|
209
|
+
├── CLAUDE.md ← Agent entry
|
|
210
|
+
├── AGENTS.md ← Agent registry
|
|
211
|
+
├── .gitignore
|
|
212
|
+
├── Harness/
|
|
213
|
+
│ ├── README.md ← Doc router
|
|
214
|
+
│ ├── SETUP.md ← Bootstrap guide (delete after init)
|
|
215
|
+
│ ├── MEMORY.md ← Resource index
|
|
216
|
+
│ ├── PROGRESS.md ← Task tracker
|
|
217
|
+
│ ├── WF.md / WF-MAX.md ← Workflow modes
|
|
218
|
+
│ ├── tasks/ ← Per-task capsules
|
|
219
|
+
│ ├── research/ ← PRD + research templates
|
|
220
|
+
│ ├── memory/ ← Durable self-learning
|
|
221
|
+
│ └── scripts/ ← Validator
|
|
187
222
|
├── .claude/
|
|
188
223
|
│ ├── agents/ ← 11 common agents
|
|
189
|
-
│ ├── skills/ ←
|
|
190
|
-
│ ├── commands/ ← /wf, /wf update
|
|
224
|
+
│ ├── skills/ ← Claude Code skill commands
|
|
191
225
|
│ └── rules/ ← Universal coding rules
|
|
226
|
+
├── .agents/
|
|
227
|
+
│ └── skills/ ← Codex repo skills
|
|
228
|
+
├── .codex/
|
|
229
|
+
│ └── hooks.json ← Codex hook bridge
|
|
192
230
|
└── tests/
|
|
193
231
|
```
|
|
194
232
|
|
|
195
|
-
`Harness/` holds all harness docs.
|
|
196
|
-
|
|
197
|
-
---
|
|
198
|
-
|
|
199
|
-
## Footprint
|
|
200
|
-
|
|
201
|
-
| | |
|
|
202
|
-
|---|---|
|
|
203
|
-
| Runtime | None |
|
|
204
|
-
| Dependencies | 2 (`@clack/prompts`, `picocolors`) |
|
|
205
|
-
| Node | ≥ 18 |
|
|
206
|
-
| Generated code | None until you pick a stack |
|
|
207
|
-
|
|
208
|
-
---
|
|
209
|
-
|
|
210
|
-
MIT © [zingspark](https://github.com/zingspark)
|
|
233
|
+
`Harness/` holds all harness docs. Tool-discovery folders stay at root: `.claude/` for Claude Code, `.agents/skills/` for Codex repo skills, and `.codex/` for Codex config/hooks.
|
|
234
|
+
|
|
235
|
+
---
|
|
236
|
+
|
|
237
|
+
## Footprint
|
|
238
|
+
|
|
239
|
+
| | |
|
|
240
|
+
|---|---|
|
|
241
|
+
| Runtime | None |
|
|
242
|
+
| Dependencies | 2 (`@clack/prompts`, `picocolors`) |
|
|
243
|
+
| Node | ≥ 18 |
|
|
244
|
+
| Generated code | None until you pick a stack |
|
|
245
|
+
|
|
246
|
+
---
|
|
247
|
+
|
|
248
|
+
MIT © [zingspark](https://github.com/zingspark)
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
import('../src/index.js');
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import('../src/index.js');
|
package/package.json
CHANGED
|
@@ -1,43 +1,45 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "create-harness-vibe-coding",
|
|
3
|
-
"version": "0.
|
|
4
|
-
"description": "Scaffold a 0-1 product harness for AI-assisted research, PRD, planning, architecture, build, test, and feedback loops",
|
|
5
|
-
"type": "module",
|
|
6
|
-
"bin": {
|
|
7
|
-
"create-harness-vibe-coding": "
|
|
8
|
-
},
|
|
9
|
-
"files": [
|
|
10
|
-
"bin/",
|
|
11
|
-
"src/",
|
|
12
|
-
"templates/",
|
|
13
|
-
"README-CN.md"
|
|
14
|
-
],
|
|
15
|
-
"scripts": {
|
|
16
|
-
"start": "node src/index.js",
|
|
17
|
-
"build:version": "node scripts/build-version.mjs",
|
|
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
|
-
|
|
1
|
+
{
|
|
2
|
+
"name": "create-harness-vibe-coding",
|
|
3
|
+
"version": "0.8.1",
|
|
4
|
+
"description": "Scaffold a 0-1 product harness for AI-assisted research, PRD, planning, architecture, build, test, and feedback loops",
|
|
5
|
+
"type": "module",
|
|
6
|
+
"bin": {
|
|
7
|
+
"create-harness-vibe-coding": "bin/create-harness-vibe-coding.js"
|
|
8
|
+
},
|
|
9
|
+
"files": [
|
|
10
|
+
"bin/",
|
|
11
|
+
"src/",
|
|
12
|
+
"templates/",
|
|
13
|
+
"README-CN.md"
|
|
14
|
+
],
|
|
15
|
+
"scripts": {
|
|
16
|
+
"start": "node src/index.js",
|
|
17
|
+
"build:version": "node scripts/build-version.mjs",
|
|
18
|
+
"prepush": "node scripts/pre-push-check.mjs",
|
|
19
|
+
"prepush:install": "node scripts/pre-push-check.mjs --install",
|
|
20
|
+
"test": "node --test tests/*.test.js",
|
|
21
|
+
"test:smoke": "node --test tests/cli-smoke.test.js",
|
|
22
|
+
"pack:smoke": "node --test tests/pack-smoke.test.js"
|
|
23
|
+
},
|
|
24
|
+
"dependencies": {
|
|
25
|
+
"@clack/prompts": "^0.7.0",
|
|
26
|
+
"picocolors": "^1.1.0"
|
|
27
|
+
},
|
|
28
|
+
"engines": {
|
|
29
|
+
"node": ">=18"
|
|
30
|
+
},
|
|
31
|
+
"repository": {
|
|
32
|
+
"type": "git",
|
|
33
|
+
"url": "git+https://github.com/zingspark/create-harness-vibe-coding.git"
|
|
34
|
+
},
|
|
35
|
+
"keywords": [
|
|
36
|
+
"claude-code",
|
|
37
|
+
"harness",
|
|
38
|
+
"scaffold",
|
|
39
|
+
"vibe-coding",
|
|
40
|
+
"agentic",
|
|
41
|
+
"ecc",
|
|
42
|
+
"superpowers"
|
|
43
|
+
],
|
|
44
|
+
"license": "MIT"
|
|
45
|
+
}
|