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 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
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "create-harness-vibe-coding",
3
- "version": "0.6.0",
3
+ "version": "0.6.1",
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": {
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 __dirname = path.dirname(fileURLToPath(import.meta.url));
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 = { projectName };
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
- - If `codex` is available: use `codex exec` for code review
21
- - If only `claude` is available: use `claude -p` for code review
22
- - Try `codex exec` first, fall back to `claude -p`
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
- | Current Runtime | Review Command |
24
+ | Runtime | Review Command |
25
25
  |---|---|
26
- | Claude Code | `git diff \| codex exec "review prompt"` |
27
- | Claude Code (commit) | `codex exec "review this commit: $(git log -1 --format=%B)"` |
28
- | Codex | `git diff \| claude -p "review prompt"` |
29
- | Either | fallback: try the other CLI, warn if neither available |
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 /wf-review slash command bridge
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