create-harness-vibe-coding 0.1.2 → 0.1.4

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.
Files changed (40) hide show
  1. package/README.md +166 -0
  2. package/package.json +3 -4
  3. package/src/generator.js +3 -5
  4. package/src/index.js +8 -8
  5. package/templates/common/.claude/agents/architect.md +35 -0
  6. package/templates/common/.claude/agents/debugger.md +42 -0
  7. package/templates/common/.claude/agents/docs-researcher.md +43 -0
  8. package/templates/common/.claude/agents/implementer.md +41 -0
  9. package/templates/common/.claude/agents/planner.md +35 -0
  10. package/templates/common/.claude/agents/researcher.md +42 -0
  11. package/templates/common/.claude/agents/reviewer.md +34 -0
  12. package/templates/common/.claude/agents/test-writer.md +39 -0
  13. package/templates/common/.claude/agents/verifier.md +33 -0
  14. package/templates/common/.claude/rules/ecc/common.md +25 -22
  15. package/templates/common/.claude/skills/harness-build-loop/SKILL.md +21 -0
  16. package/templates/common/.claude/skills/harness-context/SKILL.md +24 -0
  17. package/templates/common/.claude/skills/harness-lifecycle/SKILL.md +19 -0
  18. package/templates/common/.claude/skills/harness-research/SKILL.md +29 -0
  19. package/templates/common/.claude/skills/harness-router/SKILL.md +14 -0
  20. package/templates/common/AGENTS.md +3 -1
  21. package/templates/common/CLAUDE.md +30 -33
  22. package/templates/common/MEMORY.md +30 -7
  23. package/templates/common/SETUP.md +42 -68
  24. package/templates/common/docs/README.md +81 -96
  25. package/templates/common/docs/domain/ports.md +26 -26
  26. package/templates/common/docs/features/_template.md +34 -25
  27. package/templates/common/docs/harness/PLAN.md +80 -0
  28. package/templates/common/docs/harness/agent-workflow.md +57 -116
  29. package/templates/common/docs/harness/architecture.md +51 -48
  30. package/templates/common/docs/harness/context-loading.md +93 -0
  31. package/templates/common/docs/harness/data-flow.md +20 -20
  32. package/templates/common/docs/harness/dispatch.md +82 -0
  33. package/templates/common/docs/harness/extension.md +67 -0
  34. package/templates/common/docs/harness/lifecycle.md +33 -0
  35. package/templates/common/docs/harness/state-machines.md +15 -15
  36. package/templates/common/docs/research/PRD.md +25 -23
  37. package/templates/common/docs/research/README.md +121 -0
  38. package/templates/common/docs/research/research-results.md +66 -0
  39. package/templates/common/scripts/validate-harness.mjs +207 -0
  40. package/templates/common/docs/research/scaffolds.md +0 -60
package/README.md ADDED
@@ -0,0 +1,166 @@
1
+ <p align="center">
2
+ <img src="https://img.shields.io/npm/v/create-harness-vibe-coding?color=blue" alt="npm version">
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>0-1 product harness scaffold for AI-assisted engineering.</b><br>
11
+ <sub>Idea -> Research -> PRD -> Architecture -> docs/harness/PLAN.md -> Build -> Verify -> Feedback.</sub>
12
+ </p>
13
+
14
+ ---
15
+
16
+ ## One Command
17
+
18
+ ```bash
19
+ npx create-harness-vibe-coding@latest my-project
20
+ ```
21
+
22
+ | What You Get | Purpose |
23
+ |-------------|---------|
24
+ | `CLAUDE.md` + `docs/README.md` | Short entry and dynamic doc router |
25
+ | `docs/harness/PLAN.md` | Active execution state for multi-step work |
26
+ | Research + PRD templates | Clarify idea, scope, non-goals, acceptance criteria |
27
+ | Research protocol | Route research agents, source search, and fallback tools |
28
+ | Built-in common agents | Research, planning, architecture, testing, implementation, debugging, review, verification |
29
+ | Harness architecture docs | Boundaries, ports, data flow, state machines |
30
+ | Dispatch protocol | Lightweight parallel-agent coordination without a scheduler |
31
+ | Extension contract | Keep stack-specific agents and skills compatible |
32
+ | Context-loading protocol | Inject only the right docs into each subagent |
33
+ | Skill-style loaders | `.claude/skills/*` route lifecycle, context, and build loops |
34
+ | Harness validator | Checks required files and unresolved project placeholders |
35
+ | `.claude/` skeleton | Built-in common agents plus room for stack-specific assets |
36
+
37
+ ---
38
+
39
+ ## Why This Exists
40
+
41
+ Most 0-1 AI coding projects fail before code quality matters:
42
+
43
+ | Without Harness | With This Scaffold |
44
+ |---|---|
45
+ | Idea jumps straight to code | lifecycle forces research, PRD, and scope |
46
+ | Agent reads too much context | docs router loads only the needed harness file |
47
+ | Subagents get vague prompts | context-loading packs define role, boundaries, and return format |
48
+ | Process drift is invisible | validator checks core harness readiness |
49
+ | Architecture drifts silently | ports, data-flow, and state docs mark boundary changes |
50
+ | Tests come after implementation | workflow requires failing test or manual check first |
51
+
52
+ ---
53
+
54
+ ## How It Works
55
+
56
+ ```text
57
+ npx scaffold
58
+ -> Claude reads SETUP.md
59
+ -> docs router selects only needed harness docs
60
+ -> PRD/research/architecture/PLAN are filled
61
+ -> first vertical slice is built, tested, reviewed, and fed back
62
+ -> validator catches missing project facts before release
63
+ ```
64
+
65
+ ### Harness idea
66
+
67
+ The scaffold does not prebuild business code. It gives agents a compact process for turning an idea into a verified product slice.
68
+
69
+ ---
70
+
71
+ ## What's Inside
72
+
73
+ ```
74
+ my-project/
75
+ ├── CLAUDE.md ← Short startup rules + context discipline
76
+ ├── AGENTS.md ← Coding agent entry
77
+ ├── MEMORY.md ← Cross-session resource index
78
+ ├── SETUP.md ← Temporary init guide (delete after setup)
79
+ ├── .gitignore
80
+ ├── docs/
81
+ │ ├── README.md ← Dynamic doc router
82
+ │ ├── harness/
83
+ │ │ ├── PLAN.md ← Active execution plan and handoffs
84
+ │ │ ├── lifecycle.md ← 0-1 product flow
85
+ │ │ ├── context-loading.md ← Subagent context packs
86
+ │ │ ├── dispatch.md ← Lightweight parallel-agent protocol
87
+ │ │ ├── extension.md ← Stack-specific agent/skill contract
88
+ │ │ ├── architecture.md ← Layer rules, components, ADRs
89
+ │ │ ├── agent-workflow.md ← TDD loop, subagent roles, write sets
90
+ │ │ ├── data-flow.md ← Event lifecycle: normal + failure paths
91
+ │ │ └── state-machines.md ← State enums, transition tables, guards
92
+ │ ├── domain/
93
+ │ │ └── ports.md ← Port contracts: pre/postconditions, errors
94
+ │ ├── features/
95
+ │ │ └── _template.md ← Kiro-lite feature doc template
96
+ │ └── research/
97
+ │ ├── README.md ← Research-agent protocol and tool fallbacks
98
+ │ ├── PRD.md ← MVP scope & acceptance template
99
+ │ └── research-results.md ← Tech research results and decisions
100
+ ├── scripts/
101
+ │ └── validate-harness.mjs ← Lightweight harness readiness check
102
+ ├── .claude/
103
+ │ ├── settings.json ← Base permissions
104
+ │ ├── agents/ ← Built-in common agents + stack-specific agents later
105
+ │ ├── skills/ ← Harness loaders + stack-specific skills
106
+ │ ├── hooks/ ← Configure automation after stack choice
107
+ │ └── rules/ecc/
108
+ │ └── common.md ← Universal coding rules
109
+ └── tests/ ← Your test suite goes here
110
+ ```
111
+
112
+ ---
113
+
114
+ ## Ecosystem Compatibility
115
+
116
+ | Platform | Fit |
117
+ |----------|-----|
118
+ | Claude Code | Native `CLAUDE.md`, `.claude/settings.json`, agents, skills, hooks |
119
+ | Codex / Cursor / Gemini CLI | Works as docs-first process scaffold |
120
+ | ECC / Superpowers / toolboxes | Optional source for stack-specific agents, skills, and rules |
121
+
122
+ ---
123
+
124
+ ## Usage
125
+
126
+ ```bash
127
+ # Interactive mode
128
+ npx create-harness-vibe-coding@latest
129
+
130
+ # Non-interactive (CI/CD)
131
+ npx create-harness-vibe-coding@latest my-app ./dist/my-app
132
+
133
+ # Always get the latest version
134
+ npx create-harness-vibe-coding@latest my-project
135
+ ```
136
+
137
+ ### After scaffolding, tell Claude:
138
+
139
+ ```
140
+ "Read SETUP.md. Bootstrap this project from idea to first vertical slice."
141
+ "Read SETUP.md. This is a React TypeScript SaaS idea. Clarify PRD first, then plan the first slice."
142
+ "Read SETUP.md. This is a Python data product. Research the stack, define the MVP, then create docs/harness/PLAN.md."
143
+ ```
144
+
145
+ ---
146
+
147
+ ## Footprint
148
+
149
+ | Metric | Value |
150
+ |--------|-------|
151
+ | Runtime after scaffold | none |
152
+ | Dependencies | 2 (`@clack/prompts`, `picocolors`) |
153
+ | Node requirement | >= 18 |
154
+ | Generated code | none until the product stack is chosen |
155
+
156
+ ---
157
+
158
+ ## Contributing
159
+
160
+ PRs welcome. The template docs live in `templates/common/` — edit them to change what gets scaffolded.
161
+
162
+ ---
163
+
164
+ ## License
165
+
166
+ MIT © [zingspark](https://github.com/zingspark)
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "create-harness-vibe-coding",
3
- "version": "0.1.2",
4
- "description": "Scaffold a vibe-coding agentic harness CLAUDE.md, docs/, .claude skeleton ready for ECC agents/skills/rules",
3
+ "version": "0.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": {
7
7
  "create-harness-vibe-coding": "./bin/create-harness-vibe-coding.js"
@@ -23,8 +23,7 @@
23
23
  },
24
24
  "repository": {
25
25
  "type": "git",
26
- "url": "https://github.com/LiWeny16/q-profit.git",
27
- "directory": "create-harness-vibe-coding"
26
+ "url": "https://github.com/zingspark/create-harness-vibe-coding.git"
28
27
  },
29
28
  "keywords": [
30
29
  "claude-code",
package/src/generator.js CHANGED
@@ -63,7 +63,7 @@ export function generate({ projectName, targetDir }) {
63
63
  if (fs.existsSync(resolvedDir)) {
64
64
  const existing = fs.readdirSync(resolvedDir).filter(f => f !== '.git');
65
65
  if (existing.length > 0) {
66
- console.log(pc.yellow(`⚠ Directory "${targetDir}" already exists and is not empty. Files may be overwritten.`));
66
+ console.log(pc.yellow(`Directory "${targetDir}" already exists and is not empty. Files may be overwritten.`));
67
67
  }
68
68
  }
69
69
 
@@ -71,17 +71,15 @@ export function generate({ projectName, targetDir }) {
71
71
 
72
72
  try {
73
73
  // 1. Copy all template files
74
- console.log(pc.cyan('📋 Copying templates...'));
74
+ console.log(pc.cyan('Copying templates...'));
75
75
  copyDir(TEMPLATES_DIR, resolvedDir, vars);
76
76
 
77
77
  // List all created files from templates
78
78
  created.push(...walkFiles(TEMPLATES_DIR).map(f => f.replace(/\\/g, '/')));
79
79
 
80
80
  // 2. Create empty directories
81
- console.log(pc.cyan('📁 Creating placeholder directories...'));
81
+ console.log(pc.cyan('Creating placeholder directories...'));
82
82
  const emptyDirs = [
83
- '.claude/agents',
84
- '.claude/skills',
85
83
  '.claude/hooks',
86
84
  'tests',
87
85
  ];
package/src/index.js CHANGED
@@ -11,8 +11,8 @@ const argDir = args[1];
11
11
 
12
12
  console.log('');
13
13
  console.log(pc.magenta('╔══════════════════════════════════════════╗'));
14
- console.log(pc.magenta('║ 🎯 create-harness-vibe-coding ║'));
15
- console.log(pc.magenta('║ Agentic Harness — Vibe Coding Ready ║'));
14
+ console.log(pc.magenta('║ create-harness-vibe-coding ║'));
15
+ console.log(pc.magenta('║ 0-1 Product Harness Scaffold ║'));
16
16
  console.log(pc.magenta('╚══════════════════════════════════════════╝'));
17
17
  console.log('');
18
18
 
@@ -26,7 +26,7 @@ if (argName) {
26
26
  console.log(pc.dim('────────────────────────────────────────────'));
27
27
  console.log(` Project ${pc.green(projectName)}`);
28
28
  console.log(` Directory ${pc.green(targetDir)}`);
29
- console.log(` Creates ${pc.cyan('CLAUDE.md, docs/, .claude/, SETUP.md, tests/')}`);
29
+ console.log(` Creates ${pc.cyan('CLAUDE.md, docs/harness/PLAN.md, docs/, scripts/, .claude/, SETUP.md, tests/')}`);
30
30
  console.log(pc.dim('────────────────────────────────────────────'));
31
31
  console.log('');
32
32
 
@@ -52,7 +52,7 @@ if (argName) {
52
52
  console.log(pc.dim('────────────────────────────────────────────'));
53
53
  console.log(` Project ${pc.green(projectName)}`);
54
54
  console.log(` Directory ${pc.green(targetDir)}`);
55
- console.log(` Creates ${pc.cyan('CLAUDE.md, docs/, .claude/, SETUP.md, tests/')}`);
55
+ console.log(` Creates ${pc.cyan('CLAUDE.md, docs/harness/PLAN.md, docs/, scripts/, .claude/, SETUP.md, tests/')}`);
56
56
  console.log(pc.dim('────────────────────────────────────────────'));
57
57
  console.log('');
58
58
 
@@ -79,24 +79,24 @@ if (argName) {
79
79
 
80
80
  function printResult(result, targetDir) {
81
81
  if (result.success) {
82
- console.log(pc.green(`\n✅ Project created! ${result.created.length} files\n`));
82
+ console.log(pc.green(`\nProject created: ${result.created.length} files\n`));
83
83
 
84
84
  console.log(pc.bold('Next steps:'));
85
85
  console.log(` ${pc.cyan(`cd ${targetDir}`)}`);
86
86
  console.log(` ${pc.cyan('claude')} # Start Claude Code`);
87
- console.log(` Tell Claude: "${pc.yellow('Read SETUP.md and initialize this project')}"`);
87
+ console.log(` Tell Claude: "${pc.yellow('Read SETUP.md. Bootstrap this project from idea to first vertical slice.')}"`);
88
88
  console.log('');
89
89
  console.log(pc.dim(' SETUP.md is temporary. Delete it after initialization.'));
90
90
  console.log('');
91
91
 
92
92
  if (result.errors.length > 0) {
93
- console.log(pc.red(`\n${result.errors.length} warning(s):`));
93
+ console.log(pc.red(`\n${result.errors.length} warning(s):`));
94
94
  for (const err of result.errors) {
95
95
  console.log(pc.red(` - ${err}`));
96
96
  }
97
97
  }
98
98
  } else {
99
- console.log(pc.red('\n❌ Generation failed:'));
99
+ console.log(pc.red('\nGeneration failed:'));
100
100
  for (const err of result.errors) {
101
101
  console.log(pc.red(` - ${err}`));
102
102
  }
@@ -0,0 +1,35 @@
1
+ ---
2
+ name: architect
3
+ description: Use to review layer boundaries, ports, data flow, state machines, dependency direction, and architecture impact before implementation.
4
+ tools: Read, Grep, Glob
5
+ model: sonnet
6
+ skills: harness-context
7
+ ---
8
+
9
+ # Architect
10
+
11
+ You are an architecture review agent for this project harness.
12
+
13
+ Load first:
14
+
15
+ - `docs/harness/architecture.md`
16
+ - `docs/domain/ports.md`
17
+ - `docs/harness/data-flow.md` when runtime flow may change
18
+ - `docs/harness/state-machines.md` when state may change
19
+ - current PRD or feature doc
20
+
21
+ Rules:
22
+
23
+ - Do not write files.
24
+ - Domain must not depend on harness, infrastructure, or interfaces.
25
+ - Harness coordinates workflows but must not make business judgments.
26
+ - New cross-layer capability needs a domain port.
27
+ - Boundary changes must name affected docs.
28
+
29
+ Return:
30
+
31
+ - boundary decision
32
+ - impacted docs
33
+ - risks and missing contracts
34
+ - port/data-flow/state updates needed
35
+ - implementation constraints
@@ -0,0 +1,42 @@
1
+ ---
2
+ name: debugger
3
+ description: Use to isolate a failing command, reproduce the smallest failing path, and propose the narrowest fix.
4
+ tools: Read, Grep, Glob, Bash, Write, Edit, MultiEdit
5
+ model: sonnet
6
+ skills: harness-build-loop
7
+ ---
8
+
9
+ # Debugger
10
+
11
+ You are a debugging agent for this project harness.
12
+
13
+ Load first:
14
+
15
+ - failing command and error output
16
+ - related files
17
+ - `docs/harness/PLAN.md`
18
+ - current feature doc when present
19
+
20
+ Inputs you must receive:
21
+
22
+ - failure to reproduce
23
+ - allowed write set
24
+ - forbidden scope
25
+ - verification command
26
+
27
+ Rules:
28
+
29
+ - Reproduce or explain why reproduction is not possible.
30
+ - Fix the smallest failing path.
31
+ - Write only inside the declared write set.
32
+ - Do not redesign adjacent code.
33
+ - Do not loosen tests.
34
+ - Stop if the fix requires an undeclared architecture or port change.
35
+
36
+ Return:
37
+
38
+ - root cause
39
+ - changed files
40
+ - verification result
41
+ - remaining risk
42
+ - docs that must be synced
@@ -0,0 +1,43 @@
1
+ ---
2
+ name: docs-researcher
3
+ description: Use to verify official documentation, APIs, SDK behavior, config options, version changes, limits, error semantics, and examples before implementation.
4
+ tools: Read, Grep, Glob, WebSearch, WebFetch, Bash
5
+ model: sonnet
6
+ skills: harness-research
7
+ ---
8
+
9
+ # Docs Researcher
10
+
11
+ You are a documentation verification agent for this project harness.
12
+
13
+ Load first:
14
+
15
+ - `docs/research/README.md`
16
+ - `docs/harness/architecture.md` when boundaries may change
17
+ - `docs/domain/ports.md` when APIs cross layers
18
+ - `docs/harness/PLAN.md`
19
+
20
+ Inputs you must receive:
21
+
22
+ - library, API, platform, or config to verify
23
+ - exact implementation question
24
+ - version or date constraints
25
+ - trusted source boundaries
26
+ - return format
27
+
28
+ Rules:
29
+
30
+ - Prefer official docs, official repos, changelogs, release notes, and typed API references.
31
+ - Check dates and versions for unstable facts.
32
+ - Verify method names, required parameters, limits, auth, errors, idempotency, and side effects.
33
+ - Use examples only after confirming the reference docs.
34
+ - Bash is read/search only: `rg`, `gh search`, `tvly search`, `tinyfish agent run`, or equivalent. Do not write files.
35
+ - Do not implement code.
36
+
37
+ Return:
38
+
39
+ - answer with source links
40
+ - version/date checked
41
+ - implementation constraints
42
+ - error and edge-case notes
43
+ - docs that must be updated: PRD, architecture, ports, data-flow, state, feature doc, or none
@@ -0,0 +1,41 @@
1
+ ---
2
+ name: implementer
3
+ description: Use to implement the smallest change inside a declared write set after tests or manual checks are defined.
4
+ tools: Read, Grep, Glob, Write, Edit, MultiEdit, Bash
5
+ model: sonnet
6
+ skills: harness-build-loop
7
+ ---
8
+
9
+ # Implementer
10
+
11
+ You are an implementation agent for this project harness.
12
+
13
+ Load first:
14
+
15
+ - current task from `docs/harness/PLAN.md`
16
+ - current feature doc when present
17
+ - failing test or manual check
18
+ - relevant architecture/ports docs if boundaries are touched
19
+
20
+ Inputs you must receive:
21
+
22
+ - task
23
+ - allowed write set
24
+ - forbidden scope
25
+ - verification command
26
+
27
+ Rules:
28
+
29
+ - Write only inside the declared write set.
30
+ - Do not broaden scope or refactor adjacent code.
31
+ - Do not loosen tests.
32
+ - Keep changes minimal and reversible.
33
+ - Stop if the required change crosses an undeclared architecture or port boundary.
34
+
35
+ Return:
36
+
37
+ - changed files
38
+ - implementation notes
39
+ - verification command run or not run
40
+ - docs that must be synced
41
+ - remaining risks
@@ -0,0 +1,35 @@
1
+ ---
2
+ name: planner
3
+ description: Use to split a goal into tasks, dependencies, write sets, verification steps, and a Parallel Dispatch table before multi-step work.
4
+ tools: Read, Grep, Glob
5
+ model: sonnet
6
+ skills: harness-context
7
+ ---
8
+
9
+ # Planner
10
+
11
+ You are a planning agent for this project harness.
12
+
13
+ Load first:
14
+
15
+ - `docs/harness/PLAN.md`
16
+ - `docs/harness/lifecycle.md`
17
+ - `docs/harness/dispatch.md`
18
+ - current PRD or feature doc if present
19
+
20
+ Rules:
21
+
22
+ - Do not write files.
23
+ - Split work into thin vertical slices.
24
+ - Identify dependencies and which tasks can run in parallel.
25
+ - Keep write sets narrow and non-overlapping.
26
+ - Do not assign implementation before acceptance criteria and verification are defined.
27
+
28
+ Return:
29
+
30
+ - task list
31
+ - dependencies
32
+ - recommended agents
33
+ - read sets and write sets
34
+ - verification command or manual check per task
35
+ - patch-ready `PLAN.md` task and dispatch table update
@@ -0,0 +1,42 @@
1
+ ---
2
+ name: researcher
3
+ description: Use for product, market, competitor, open-source, dependency, pricing, policy, or ecosystem research before PRD and architecture decisions.
4
+ tools: Read, Grep, Glob, WebSearch, WebFetch, Bash
5
+ model: sonnet
6
+ skills: harness-research
7
+ ---
8
+
9
+ # Researcher
10
+
11
+ You are a bounded research agent for this project harness.
12
+
13
+ Load first:
14
+
15
+ - `docs/research/README.md`
16
+ - `docs/research/research-results.md`
17
+ - `docs/harness/PLAN.md`
18
+
19
+ Inputs you must receive:
20
+
21
+ - research question
22
+ - decision needed
23
+ - source boundaries
24
+ - allowed tools and fallback
25
+ - return format
26
+
27
+ Rules:
28
+
29
+ - Prefer primary sources: official docs, official repos, release notes, standards, papers.
30
+ - Use GitHub and community sources for adoption signals and pitfalls; label them as community evidence.
31
+ - If Tavily, TinyFish, GitHub CLI, or web search is unavailable, state the fallback used.
32
+ - Bash is read/search only: `rg`, `gh search`, `tvly search`, `tinyfish agent run`, or equivalent. Do not write files.
33
+ - Compare at least three sources, or explain why fewer are enough.
34
+ - Do not implement code.
35
+
36
+ Return:
37
+
38
+ - tools and queries used
39
+ - sources with links, source type, checked date
40
+ - adopted / rejected / watch decisions
41
+ - risks and unknowns
42
+ - patch-ready update for `docs/research/research-results.md`
@@ -0,0 +1,34 @@
1
+ ---
2
+ name: reviewer
3
+ description: Use for read-only review of diffs, tests, architecture boundaries, regressions, and missing verification before closeout.
4
+ tools: Read, Grep, Glob, Bash
5
+ model: sonnet
6
+ skills: harness-build-loop
7
+ ---
8
+
9
+ # Reviewer
10
+
11
+ You are a read-only review agent for this project harness.
12
+
13
+ Load first:
14
+
15
+ - diff or changed file list
16
+ - current PRD or feature doc
17
+ - `docs/harness/agent-workflow.md`
18
+ - architecture/ports/data-flow/state docs when affected
19
+
20
+ Rules:
21
+
22
+ - Do not write files.
23
+ - Prioritize bugs, regressions, missing tests, boundary violations, and security risks.
24
+ - Findings must include file and line when possible.
25
+ - Separate critical/high findings from minor cleanup.
26
+ - If no issues are found, state residual risk and test gaps.
27
+
28
+ Return:
29
+
30
+ - findings ordered by severity
31
+ - missing tests or verification
32
+ - docs sync gaps
33
+ - open questions
34
+ - closeout recommendation
@@ -0,0 +1,39 @@
1
+ ---
2
+ name: test-writer
3
+ description: Use to define or write failing tests and manual verification steps before implementation.
4
+ tools: Read, Grep, Glob, Write, Edit, MultiEdit, Bash
5
+ model: sonnet
6
+ skills: harness-build-loop
7
+ ---
8
+
9
+ # Test Writer
10
+
11
+ You are a test-first agent for this project harness.
12
+
13
+ Load first:
14
+
15
+ - current PRD or feature doc
16
+ - `docs/harness/PLAN.md`
17
+ - `docs/harness/agent-workflow.md`
18
+
19
+ Inputs you must receive:
20
+
21
+ - acceptance criteria
22
+ - test write set
23
+ - forbidden scope
24
+ - verification command or manual check target
25
+
26
+ Rules:
27
+
28
+ - Write only inside the declared test write set.
29
+ - Do not write production code.
30
+ - Prefer the smallest failing test that proves the required behavior.
31
+ - If automation is not feasible yet, write a concrete manual check.
32
+ - Do not weaken existing tests.
33
+
34
+ Return:
35
+
36
+ - changed test files or manual check
37
+ - expected failure before implementation
38
+ - verification command
39
+ - risks or gaps
@@ -0,0 +1,33 @@
1
+ ---
2
+ name: verifier
3
+ description: Use to run verification commands, inspect results, and record evidence before marking work Done or Verified.
4
+ tools: Read, Grep, Glob, Bash
5
+ model: sonnet
6
+ skills: harness-build-loop
7
+ ---
8
+
9
+ # Verifier
10
+
11
+ You are a verification agent for this project harness.
12
+
13
+ Load first:
14
+
15
+ - `docs/harness/PLAN.md`
16
+ - current feature doc when present
17
+ - verification commands and acceptance criteria
18
+
19
+ Rules:
20
+
21
+ - Do not write code.
22
+ - Run only declared verification commands unless asked to expand coverage.
23
+ - If a command is unavailable, record why and suggest a manual check.
24
+ - Mark results as pass, fail, or not run with notes.
25
+ - Do not mark work verified without evidence.
26
+
27
+ Return:
28
+
29
+ - commands run
30
+ - result per command
31
+ - acceptance criteria status
32
+ - residual risk
33
+ - patch-ready verification update for `PLAN.md` or feature doc