create-harness-vibe-coding 0.6.0 → 0.6.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.md +1 -1
- package/package.json +1 -1
- package/src/generator.js +8 -2
- package/templates/common/.claude/agents/context-master.md +1 -1
- package/templates/common/.claude/commands/{review.md → wf-review.md} +4 -3
- package/templates/common/.claude/skills/wf-review/SKILL.md +6 -5
- package/templates/common/CLAUDE.md +1 -0
- package/templates/common/docs/README.md +1 -1
- package/templates/common/docs/harness/WF-MAX.md +1 -1
package/README.md
CHANGED
|
@@ -26,7 +26,7 @@ Follow the README at https://github.com/zingspark/create-harness-vibe-coding to
|
|
|
26
26
|
|
|
27
27
|
That's it. Two paths into the harness — you type `npx`, or your agent reads the sentence.
|
|
28
28
|
|
|
29
|
-
[README-CN.md](README-CN.md)
|
|
29
|
+
Chinese README: [README-CN.md](README-CN.md)
|
|
30
30
|
|
|
31
31
|
---
|
|
32
32
|
|
package/package.json
CHANGED
package/src/generator.js
CHANGED
|
@@ -2,7 +2,9 @@ import fs from 'node:fs';
|
|
|
2
2
|
import path from 'node:path';
|
|
3
3
|
import { fileURLToPath } from 'node:url';
|
|
4
4
|
|
|
5
|
-
const
|
|
5
|
+
const __filename = fileURLToPath(import.meta.url);
|
|
6
|
+
const __dirname = path.dirname(__filename);
|
|
7
|
+
const pkg = JSON.parse(fs.readFileSync(path.resolve(__dirname, '../package.json'), 'utf8'));
|
|
6
8
|
const TEMPLATES_DIR = path.resolve(__dirname, '..', 'templates', 'common');
|
|
7
9
|
const OPTIONAL_DIR = path.resolve(__dirname, '..', 'templates', 'optional');
|
|
8
10
|
const OPTIONAL_CATALOG = path.join(OPTIONAL_DIR, 'catalog.json');
|
|
@@ -327,7 +329,11 @@ export function generate({
|
|
|
327
329
|
|
|
328
330
|
// Resolve targetDir relative to cwd
|
|
329
331
|
const resolvedDir = path.resolve(process.cwd(), targetDir);
|
|
330
|
-
const vars = {
|
|
332
|
+
const vars = {
|
|
333
|
+
projectName,
|
|
334
|
+
generatorVersion: pkg.version,
|
|
335
|
+
generatedTimestamp: new Date().toISOString(),
|
|
336
|
+
};
|
|
331
337
|
|
|
332
338
|
const optional = resolveOptionalSelection({ withOptions, withoutOptions, preset });
|
|
333
339
|
const fileSpecs = [
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: context-master
|
|
3
3
|
description: Use when context exceeds ~85% of the window, or during WF closeout to extract durable knowledge before compression. Read-only analysis except for writing compression suggestions to PROGRESS.md#Heartbeat.
|
|
4
|
-
tools: Read, Grep, Glob
|
|
4
|
+
tools: Read, Grep, Glob, Write
|
|
5
5
|
model: haiku
|
|
6
6
|
skills: harness-context
|
|
7
7
|
---
|
|
@@ -17,9 +17,10 @@ Cross-model peer review. Invokes the OTHER agent CLI to review changes from a fr
|
|
|
17
17
|
|
|
18
18
|
## CLI Detection
|
|
19
19
|
|
|
20
|
-
-
|
|
21
|
-
-
|
|
22
|
-
-
|
|
20
|
+
- Check `which codex && echo CODEX || echo NO_CODEX` to detect Codex
|
|
21
|
+
- Check `which claude && echo CLAUDE || echo NO_CLAUDE` to detect Claude
|
|
22
|
+
- Use the OTHER CLI — the one NOT running this session. Never self-review.
|
|
23
|
+
- If only one CLI is available: warn, then use it (single-model review is better than none).
|
|
23
24
|
|
|
24
25
|
## Flow
|
|
25
26
|
|
|
@@ -21,12 +21,13 @@ Cross-model peer review via the OTHER agent CLI. Fresh eyes on your changes.
|
|
|
21
21
|
|
|
22
22
|
## CLI Commands
|
|
23
23
|
|
|
24
|
-
|
|
|
24
|
+
| Runtime | Review Command |
|
|
25
25
|
|---|---|
|
|
26
|
-
| Claude
|
|
27
|
-
|
|
|
28
|
-
|
|
|
29
|
-
|
|
26
|
+
| Claude → Codex | `git diff \| codex exec "..."` (include full diff, not just commit message) |
|
|
27
|
+
| Codex → Claude | `git diff \| claude -p "..."` |
|
|
28
|
+
| Either (fallback) | try the other CLI; if only one installed, use it (still better than self-review) |
|
|
29
|
+
|
|
30
|
+
**Anti-self-review rule**: Detect which runtime we're in, then use the OTHER one. Never invoke the same CLI that's running the session.
|
|
30
31
|
|
|
31
32
|
## Context to Include
|
|
32
33
|
|
|
@@ -73,3 +73,4 @@ Root entry for Claude Code. Keep this file short.
|
|
|
73
73
|
|
|
74
74
|
- Never call `EnterPlanMode` — delegate planning to `planner` subagents (see `Harness/WF.md`).
|
|
75
75
|
- Never write code directly in `/wf` or `/wf-max` mode — delegate all implementation to subagents (see `Harness/WF-MAX.md`).
|
|
76
|
+
- **Enforcement**: `.claude/settings.json` hooks prevent `EnterPlanMode` calls. Settings include `allowTools: ["!EnterPlanMode"]` for the main session.
|
|
@@ -115,7 +115,7 @@ Harness/WF-MAX.md max-parallelism workflow with wave dispatch
|
|
|
115
115
|
.claude/skills/wf-review/SKILL.md cross-model peer review skill
|
|
116
116
|
.claude/commands/wf-max.md /wf-max slash command bridge
|
|
117
117
|
.claude/commands/learn.md /wf-learn slash command bridge
|
|
118
|
-
.claude/commands/review.md
|
|
118
|
+
.claude/commands/wf-review.md /wf-review slash command bridge
|
|
119
119
|
Harness/lifecycle.md 0-1 product flow
|
|
120
120
|
Harness/subagents.md controller-led subagent orchestration
|
|
121
121
|
Harness/context-loading.md dynamic loading and subagent packs
|
|
@@ -22,7 +22,7 @@ CEO(1) ──┬── Manager₁(span) ──┬── Worker₁..ₙ
|
|
|
22
22
|
```
|
|
23
23
|
|
|
24
24
|
- CEO: intent, scope, integration, final verification. Direct reports 3-5 Managers. **CEO never writes code directly** — dispatch Workers for all file changes. CEO only synthesizes results and decides next waves.
|
|
25
|
-
- Manager: domain partition → parallel dispatch → synthesize → report. Serial across domains; parallel within domain.
|
|
25
|
+
- Manager: domain partition → parallel dispatch → synthesize → report. Serial across domains; parallel within domain. **Manager agents must be defined by the project** (not shipped by the harness) — create them under `.claude/agents/` with the `Agent` tool enabled for nested spawning.
|
|
26
26
|
- Worker: single file per write Worker (implementer, one file_claim). Single dimension/topic per read Worker (reviewer, researcher). File claims must be file-level disjoint. Topic-level splitting within a single file is only allowed for read-only Workers.
|
|
27
27
|
- depth ≥3: Manager spawns Sub-Manager (span ≤7) instead of Worker. Recursive until leaf condition met.
|
|
28
28
|
|