create-harness-vibe-coding 0.1.3 → 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 +71 -74
  2. package/package.json +2 -2
  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 CHANGED
@@ -5,81 +5,86 @@
5
5
  <img src="https://img.shields.io/github/stars/zingspark/create-harness-vibe-coding?style=social" alt="stars">
6
6
  </p>
7
7
 
8
- <h1 align="center">⚡ create-harness-vibe-coding</h1>
8
+ <h1 align="center">create-harness-vibe-coding</h1>
9
9
  <p align="center">
10
- <b>4 seconds from zero to a production-grade agentic harness.</b><br>
11
- <sub>CLAUDE.md docs/ .claude/ tests/ ECC-ready, Superpowers-compatible.</sub>
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
12
  </p>
13
13
 
14
14
  ---
15
15
 
16
- ## 🎯 One Command
16
+ ## One Command
17
17
 
18
18
  ```bash
19
19
  npx create-harness-vibe-coding@latest my-project
20
20
  ```
21
21
 
22
- | What You Get | Count |
23
- |-------------|-------|
24
- | Architecture docs (layers, data flow, state machines, port contracts) | 9 docs |
25
- | Agent definitions (code-reviewer, risk-auditor, etc.) | ECC-ready skeleton |
26
- | Workflow skills (TDD, backtest, data pipeline) | ECC-ready skeleton |
27
- | Coding rules (universal + language-specific) | common.md included |
28
- | Settings & hooks (permissions, automation) | pre-configured |
29
- | **Total files provisioned** | **17 docs + configs** |
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 |
30
36
 
31
37
  ---
32
38
 
33
- ## 🚀 Why This Exists
39
+ ## Why This Exists
34
40
 
35
- Every Claude Code project has the same cold-start problem:
41
+ Most 0-1 AI coding projects fail before code quality matters:
36
42
 
37
- | Without Harness | With `create-harness-vibe-coding` |
43
+ | Without Harness | With This Scaffold |
38
44
  |---|---|
39
- | Agents skip docs, hallucinate behavior | CLAUDE.md routes agents to exact docs by role |
40
- | No TDD enforcement agents ship untested code | agent-workflow.md enforces RED-GREEN-REFACTOR |
41
- | Architecture boundaries blur over time | domain/ports.md locks layer contracts |
42
- | State machines live in someone's head | state-machines.md documents every transition |
43
- | Cross-session memory lost | MEMORY.md + self-learning system |
44
- | 2+ hours to set up project structure | **4 seconds** |
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 |
45
51
 
46
52
  ---
47
53
 
48
- ## 🧠 How It Works
54
+ ## How It Works
49
55
 
50
- ```mermaid
51
- graph LR
52
- A[npx scaffold] --> B[CLAUDE.md + docs/ + .claude/]
53
- B --> C[Start Claude Code]
54
- C --> D[Claude reads SETUP.md]
55
- D --> E[Pulls agents/skills/rules from ECC]
56
- E --> F[Project ready TDD loop active]
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
57
63
  ```
58
64
 
59
- ### What happens after `npx`:
65
+ ### Harness idea
60
66
 
61
- 1. **CLAUDE.md** Agent reads this first. Role-based routing table sends each agent to the right docs.
62
- 2. **docs/architecture.md** — Clean architecture layers. Harness runs the shell; domain defines the business.
63
- 3. **docs/agent-workflow.md** — TDD loop, subagent roles, write set rules, conflict resolution.
64
- 4. **docs/data-flow.md** — Every event's normal path + failure branches — the #1 doc AI fabricates without.
65
- 5. **docs/state-machines.md** — Every stateful component. Transition table. Illegal transitions explicitly denied.
66
- 6. **.claude/settings.json** — Permissions pre-configured (allow git/npm/pytest, deny rm/sudo/curl). Hooks ready.
67
- 7. **SETUP.md** — Temporary guide. Claude reads it, pulls agents/skills/rules from [ECC](https://github.com/affaan-m/ECC). User deletes it after.
67
+ The scaffold does not prebuild business code. It gives agents a compact process for turning an idea into a verified product slice.
68
68
 
69
69
  ---
70
70
 
71
- ## 📦 What's Inside
71
+ ## What's Inside
72
72
 
73
73
  ```
74
74
  my-project/
75
- ├── CLAUDE.md ← Role-based doc navigation + memory/self-learning
75
+ ├── CLAUDE.md ← Short startup rules + context discipline
76
76
  ├── AGENTS.md ← Coding agent entry
77
77
  ├── MEMORY.md ← Cross-session resource index
78
78
  ├── SETUP.md ← Temporary init guide (delete after setup)
79
79
  ├── .gitignore
80
80
  ├── docs/
81
- │ ├── README.md ← Project doc entry point
81
+ │ ├── README.md ← Dynamic doc router
82
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
83
88
  │ │ ├── architecture.md ← Layer rules, components, ADRs
84
89
  │ │ ├── agent-workflow.md ← TDD loop, subagent roles, write sets
85
90
  │ │ ├── data-flow.md ← Event lifecycle: normal + failure paths
@@ -89,34 +94,34 @@ my-project/
89
94
  │ ├── features/
90
95
  │ │ └── _template.md ← Kiro-lite feature doc template
91
96
  │ └── research/
97
+ │ ├── README.md ← Research-agent protocol and tool fallbacks
92
98
  │ ├── PRD.md ← MVP scope & acceptance template
93
- │ └── scaffolds.md ← Tech research & decision record
99
+ │ └── research-results.md ← Tech research results and decisions
100
+ ├── scripts/
101
+ │ └── validate-harness.mjs ← Lightweight harness readiness check
94
102
  ├── .claude/
95
- │ ├── settings.json ← Permissions + hooks
96
- │ ├── agents/ ← Pull from ECC
97
- │ ├── skills/ ← Pull from ECC
98
- │ ├── hooks/ ← Configure as needed
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
99
107
  │ └── rules/ecc/
100
- │ └── common.md ← Universal coding rules (always active)
108
+ │ └── common.md ← Universal coding rules
101
109
  └── tests/ ← Your test suite goes here
102
110
  ```
103
111
 
104
112
  ---
105
113
 
106
- ## 🌐 Ecosystem Compatibility
114
+ ## Ecosystem Compatibility
107
115
 
108
- | Platform | Status |
109
- |----------|--------|
110
- | [ECC](https://github.com/affaan-m/ECC) (206K+ ★) | Agents, skills, rules auto-pull |
111
- | [Superpowers](https://github.com/obra/superpowers) (185K+ ★) | `/plugin install superpowers` |
112
- | [awesome-claude-code-config](https://github.com/Mizoreww/awesome-claude-code-config) | Rules & self-learning configs |
113
- | [claude-toolbox](https://github.com/serpro69/claude-toolbox) | ✅ Multi-language skills |
114
- | Claude Code | ✅ Native settings.json + hooks |
115
- | Codex / Cursor / Gemini CLI | ✅ Compatible (docs-only pattern) |
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 |
116
121
 
117
122
  ---
118
123
 
119
- ## 🔧 Usage
124
+ ## Usage
120
125
 
121
126
  ```bash
122
127
  # Interactive mode
@@ -132,38 +137,30 @@ npx create-harness-vibe-coding@latest my-project
132
137
  ### After scaffolding, tell Claude:
133
138
 
134
139
  ```
135
- "Read SETUP.md. This is a Python quant project. Pull agents, skills, and rules from ECC."
136
- "Read SETUP.md. This is a React TypeScript app. I need TDD workflow and code review."
137
- "Read SETUP.md. This is a Go microservice. Set up matching agents and testing skills."
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."
138
143
  ```
139
144
 
140
145
  ---
141
146
 
142
- ## 📊 Performance
147
+ ## Footprint
143
148
 
144
149
  | Metric | Value |
145
150
  |--------|-------|
146
- | Cold install + scaffold | < 4s |
147
- | Package size | 19.9 kB |
148
- | Unpacked | 49.4 kB |
149
- | Dependencies | 2 (@clack/prompts, picocolors) |
150
- | Node requirement | ≥ 18 |
151
- | Zero runtime deps after scaffold | ✅ |
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 |
152
155
 
153
156
  ---
154
157
 
155
- ## 👥 Contributing
158
+ ## Contributing
156
159
 
157
160
  PRs welcome. The template docs live in `templates/common/` — edit them to change what gets scaffolded.
158
161
 
159
162
  ---
160
163
 
161
- ## 📄 License
164
+ ## License
162
165
 
163
166
  MIT © [zingspark](https://github.com/zingspark)
164
-
165
- ---
166
-
167
- <p align="center">
168
- <sub>Built for the vibe-coding era. Scaffold fast, build faster.</sub>
169
- </p>
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "create-harness-vibe-coding",
3
- "version": "0.1.3",
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"
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