create-harness-vibe-coding 0.6.3 → 0.6.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.
- package/package.json +1 -1
- package/src/generator.js +466 -466
- package/src/index.js +355 -355
- package/templates/common/.claude/agents/architect.md +31 -35
- package/templates/common/.claude/agents/context-master.md +0 -1
- package/templates/common/.claude/agents/debugger.md +0 -1
- package/templates/common/.claude/agents/docs-researcher.md +41 -43
- package/templates/common/.claude/agents/implementer.md +0 -1
- package/templates/common/.claude/agents/memory-master.md +0 -1
- package/templates/common/.claude/agents/planner.md +0 -1
- package/templates/common/.claude/agents/researcher.md +0 -1
- package/templates/common/.claude/agents/reviewer.md +34 -35
- package/templates/common/.claude/agents/test-writer.md +0 -1
- package/templates/common/.claude/agents/verifier.md +0 -1
- package/templates/common/.claude/commands/wf-max.md +7 -0
- package/templates/common/.claude/commands/{update.md → wf-update.md} +4 -0
- package/templates/common/.claude/commands/wf.md +10 -3
- package/templates/common/.claude/skills/subagent-orchestrator/SKILL.md +2 -1
- package/templates/common/.claude/skills/wf-max/SKILL.md +29 -70
- package/templates/common/.claude/skills/{readme-optimizer → wf-readme}/SKILL.md +1 -1
- package/templates/common/.claude/skills/wf-review/SKILL.md +50 -50
- package/templates/common/.claude/skills/wf-update/SKILL.md +58 -58
- package/templates/common/CLAUDE.md +77 -76
- package/templates/common/MEMORY.md +73 -76
- package/templates/common/README.md +1 -1
- package/templates/common/SETUP.md +273 -341
- package/templates/common/docs/README.md +131 -145
- package/templates/common/docs/harness/WF.md +13 -1
- package/templates/common/docs/harness/agent-workflow.md +94 -94
- package/templates/common/docs/harness/architecture.md +1 -1
- package/templates/common/docs/harness/context-loading.md +104 -108
- package/templates/common/docs/harness/extension.md +70 -79
- package/templates/common/docs/harness/lifecycle.md +33 -33
- package/templates/common/docs/harness/subagents.md +1 -1
- package/templates/common/docs/research/PRD.md +65 -65
- package/templates/common/docs/research/README.md +169 -169
- package/templates/common/scripts/validate-harness.mjs +439 -460
- package/templates/optional/skills/browser-e2e/.claude/skills/browser-e2e/SKILL.md +42 -42
- package/templates/optional/skills/browser-e2e/.claude/skills/wf-browser/SKILL.md +30 -0
- package/templates/optional/skills/browser-e2e/docs/workflows/browser-e2e.md +1 -1
- package/templates/optional/skills/github-pr-review/.claude/skills/github-pr-review/SKILL.md +40 -40
- package/templates/optional/skills/python-backend/.claude/skills/python-backend/SKILL.md +40 -40
- package/templates/optional/skills/ts-react-frontend/.claude/skills/ts-react-frontend/SKILL.md +43 -43
- package/templates/optional/skills/ui-ux-review/.claude/skills/ui-ux-review/SKILL.md +40 -40
- package/templates/common/.claude/skills/harness-build-loop/SKILL.md +0 -23
- package/templates/common/.claude/skills/harness-context/SKILL.md +0 -26
- package/templates/common/.claude/skills/harness-lifecycle/SKILL.md +0 -20
- package/templates/common/.claude/skills/harness-research/SKILL.md +0 -30
- package/templates/common/.claude/skills/harness-router/SKILL.md +0 -16
- package/templates/common/.claude/skills/wf-mode/SKILL.md +0 -55
- package/templates/common/docs/domain/ports.md +0 -76
- package/templates/common/docs/features/_template.md +0 -177
- package/templates/common/docs/harness/PLAN.md +0 -52
- package/templates/common/docs/harness/data-flow.md +0 -59
- package/templates/common/docs/harness/state-machines.md +0 -58
- /package/templates/common/.claude/commands/{learn.md → wf-learn.md} +0 -0
|
@@ -1,108 +1,104 @@
|
|
|
1
|
-
# Context Loading Protocol
|
|
2
|
-
|
|
3
|
-
Use when context is growing, subagents are needed, or an agent is unsure which harness doc applies.
|
|
4
|
-
|
|
5
|
-
## Routing Authority
|
|
6
|
-
|
|
7
|
-
`Harness/README.md` is the primary router. This file is a secondary context-splitting protocol for subagents and long tasks.
|
|
8
|
-
|
|
9
|
-
If this file and `Harness/README.md` disagree, follow `Harness/README.md`, record the assumption in `Harness/tasks/<task-id>/PROGRESS.md`, and update this file later.
|
|
10
|
-
|
|
11
|
-
project files are the only durable communication channel; chat/subagent transcript state is non-authoritative. Important assumptions, decisions, blockers, evidence, and handoffs must be written to `Harness/tasks/<task-id>/PROGRESS.md` and `Harness/tasks/<task-id>/PLAN.md`, the current feature doc, `Harness/MEMORY.md`, or `Harness/memory/*` as appropriate.
|
|
12
|
-
|
|
13
|
-
## Main Context
|
|
14
|
-
|
|
15
|
-
Always keep:
|
|
16
|
-
|
|
17
|
-
- `CLAUDE.md`
|
|
18
|
-
- `Harness/MEMORY.md`
|
|
19
|
-
- `Harness/README.md`
|
|
20
|
-
- `Harness/PROGRESS.md` when active
|
|
21
|
-
- `Harness/tasks/<task-id>/PROGRESS.md` when active
|
|
22
|
-
- `Harness/tasks/<task-id>/PLAN.md` when active
|
|
23
|
-
- current feature doc when active
|
|
24
|
-
|
|
25
|
-
Load other docs only by trigger.
|
|
26
|
-
|
|
27
|
-
## Trigger Matrix
|
|
28
|
-
|
|
29
|
-
| Trigger | Load |
|
|
30
|
-
| --- | --- |
|
|
31
|
-
| idea, scope, MVP | `Harness/lifecycle.md`, `Harness/research/PRD.md` |
|
|
32
|
-
| research, competitors, stack choice | `Harness/research/README.md`, `Harness/research/research-results.md` |
|
|
33
|
-
|
|
|
34
|
-
|
|
|
35
|
-
|
|
|
36
|
-
|
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
-
|
|
47
|
-
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
-
|
|
52
|
-
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
-
|
|
57
|
-
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
-
|
|
62
|
-
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
-
|
|
67
|
-
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
-
|
|
72
|
-
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
-
|
|
77
|
-
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
-
|
|
82
|
-
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
-
|
|
87
|
-
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
-
|
|
92
|
-
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
-
|
|
97
|
-
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
Only the subagent summary enters main context. If details are needed, load the named files directly instead of replaying the subagent conversation.
|
|
107
|
-
|
|
108
|
-
Use the handoff format in [dispatch.md](dispatch.md) for every dispatched agent.
|
|
1
|
+
# Context Loading Protocol
|
|
2
|
+
|
|
3
|
+
Use when context is growing, subagents are needed, or an agent is unsure which harness doc applies.
|
|
4
|
+
|
|
5
|
+
## Routing Authority
|
|
6
|
+
|
|
7
|
+
`Harness/README.md` is the primary router. This file is a secondary context-splitting protocol for subagents and long tasks.
|
|
8
|
+
|
|
9
|
+
If this file and `Harness/README.md` disagree, follow `Harness/README.md`, record the assumption in `Harness/tasks/<task-id>/PROGRESS.md`, and update this file later.
|
|
10
|
+
|
|
11
|
+
project files are the only durable communication channel; chat/subagent transcript state is non-authoritative. Important assumptions, decisions, blockers, evidence, and handoffs must be written to `Harness/tasks/<task-id>/PROGRESS.md` and `Harness/tasks/<task-id>/PLAN.md`, the current feature doc, `Harness/MEMORY.md`, or `Harness/memory/*` as appropriate.
|
|
12
|
+
|
|
13
|
+
## Main Context
|
|
14
|
+
|
|
15
|
+
Always keep:
|
|
16
|
+
|
|
17
|
+
- `CLAUDE.md`
|
|
18
|
+
- `Harness/MEMORY.md`
|
|
19
|
+
- `Harness/README.md`
|
|
20
|
+
- `Harness/PROGRESS.md` when active
|
|
21
|
+
- `Harness/tasks/<task-id>/PROGRESS.md` when active
|
|
22
|
+
- `Harness/tasks/<task-id>/PLAN.md` when active
|
|
23
|
+
- current feature doc when active
|
|
24
|
+
|
|
25
|
+
Load other docs only by trigger.
|
|
26
|
+
|
|
27
|
+
## Trigger Matrix
|
|
28
|
+
|
|
29
|
+
| Trigger | Load |
|
|
30
|
+
| --- | --- |
|
|
31
|
+
| idea, scope, MVP | `Harness/lifecycle.md`, `Harness/research/PRD.md` |
|
|
32
|
+
| research, competitors, stack choice | `Harness/research/README.md`, `Harness/research/research-results.md` |
|
|
33
|
+
| task split, owner, write set | `Harness/tasks/<task-id>/PROGRESS.md`, `Harness/tasks/<task-id>/PLAN.md`, `Harness/agent-workflow.md` |
|
|
34
|
+
| parallel agents, dispatch, worktree decision | `Harness/subagents.md`, `Harness/dispatch.md`, `Harness/tasks/<task-id>/PLAN.md` |
|
|
35
|
+
| memory, repeated tool failure, repeated user correction, reusable lesson | `Harness/MEMORY.md`, the relevant `Harness/memory/*.md` file |
|
|
36
|
+
| subagent spawn | `Harness/subagents.md`, this file plus the role pack below |
|
|
37
|
+
|
|
38
|
+
## Subagent Packs
|
|
39
|
+
|
|
40
|
+
Explorer Pass:
|
|
41
|
+
- inject: question, read boundary, relevant docs
|
|
42
|
+
- forbid: writes
|
|
43
|
+
- return: files found, facts, risks, suggested tests
|
|
44
|
+
|
|
45
|
+
Planner:
|
|
46
|
+
- inject: user goal, lifecycle phase, PRD or PLAN section, dispatch constraints
|
|
47
|
+
- forbid: production code
|
|
48
|
+
- return: tasks, dependencies, read/write sets, dispatch table, gates, open questions
|
|
49
|
+
|
|
50
|
+
Researcher:
|
|
51
|
+
- inject: question, decision needed, source boundaries, tool options
|
|
52
|
+
- forbid: production code
|
|
53
|
+
- return: sources, adopted/rejected/watch decisions, risks, research-results.md patch
|
|
54
|
+
|
|
55
|
+
Docs Researcher:
|
|
56
|
+
- inject: library/API/config, implementation question, version/date constraints
|
|
57
|
+
- forbid: production code
|
|
58
|
+
- return: official links, constraints, errors, examples, affected docs
|
|
59
|
+
|
|
60
|
+
Architect:
|
|
61
|
+
- inject: PRD, current architecture, ports
|
|
62
|
+
- forbid: implementation
|
|
63
|
+
- return: boundary decision, affected docs, risks
|
|
64
|
+
|
|
65
|
+
Test Writer:
|
|
66
|
+
- inject: acceptance criteria, feature doc, test write set
|
|
67
|
+
- forbid: production code
|
|
68
|
+
- return: failing tests and test intent
|
|
69
|
+
|
|
70
|
+
Implementer:
|
|
71
|
+
- inject: task, tests, allowed write set, forbidden scope
|
|
72
|
+
- forbid: unrelated refactor and test loosening
|
|
73
|
+
- return: changed files and implementation notes
|
|
74
|
+
|
|
75
|
+
Reviewer:
|
|
76
|
+
- inject: diff, acceptance criteria, architecture docs
|
|
77
|
+
- forbid: writes
|
|
78
|
+
- return: findings by severity, missing tests, boundary issues
|
|
79
|
+
|
|
80
|
+
Debugger:
|
|
81
|
+
- inject: failing command, error output, related files
|
|
82
|
+
- forbid: broad rewrites
|
|
83
|
+
- return: root cause, fix, proof
|
|
84
|
+
|
|
85
|
+
Verifier:
|
|
86
|
+
- inject: verification commands and acceptance criteria
|
|
87
|
+
- forbid: code changes
|
|
88
|
+
- return: commands run, results, residual risk
|
|
89
|
+
|
|
90
|
+
Memory Master:
|
|
91
|
+
- inject: trigger reason, current failure/user-correction/closeout context, task PROGRESS.md section
|
|
92
|
+
- forbid: source code, unrelated Harness docs
|
|
93
|
+
- return: memory action summary, files written, cross-project flag
|
|
94
|
+
|
|
95
|
+
Context Master:
|
|
96
|
+
- inject: trigger reason (threshold % or closeout), current task PROGRESS.md, task phase
|
|
97
|
+
- forbid: source code, memory files, MEMORY.md writes
|
|
98
|
+
- return: context usage %, stale blocks, compressible blocks, durable knowledge candidates, compression suggestion
|
|
99
|
+
|
|
100
|
+
## Handoff Rule
|
|
101
|
+
|
|
102
|
+
Only the subagent summary enters main context. If details are needed, load the named files directly instead of replaying the subagent conversation.
|
|
103
|
+
|
|
104
|
+
Use the handoff format in [dispatch.md](dispatch.md) for every dispatched agent.
|
|
@@ -1,79 +1,70 @@
|
|
|
1
|
-
# Extension Contract
|
|
2
|
-
|
|
3
|
-
Purpose: keep stack-specific agents, skills, rules, and hooks compatible with this harness.
|
|
4
|
-
|
|
5
|
-
Use during setup whenever adding assets from ECC, SuperClaude, toolboxes, or local project conventions.
|
|
6
|
-
|
|
7
|
-
## Non-Invasive Extension Rules
|
|
8
|
-
|
|
9
|
-
Extensions must preserve project and harness ownership boundaries.
|
|
10
|
-
|
|
11
|
-
- Preserve existing `.claude/`, `CLAUDE.md`, `AGENTS.md`, `.gitignore`, `Harness/README.md`, `Harness/workflows/*.md`, settings, hooks, and local rules unless the user explicitly requests an overwrite.
|
|
12
|
-
- Treat existing project config as project fact. Read it before adding assets, then adapt new assets to the project instead of replacing the project.
|
|
13
|
-
- Register added agents, skills, workflows, rules, and hooks in `Harness/MEMORY.md` and this docs router where applicable.
|
|
14
|
-
- Added assets may extend `.claude/skills/`, `.claude/agents/`, `.claude/rules/`, or `Harness/workflows/`, but they must not replace core harness docs.
|
|
15
|
-
- Core harness docs are `Harness/README.md`, `Harness/PROGRESS.md`, `Harness/subagents.md`, `Harness/context-loading.md`, `Harness/dispatch.md`, `Harness/agent-workflow.md`, and this file.
|
|
16
|
-
- If an optional workflow needs a new command or tool, document the command and fallback in `Harness/workflows/<name>.md` instead of changing core harness behavior.
|
|
17
|
-
|
|
18
|
-
## Agent Contract
|
|
19
|
-
|
|
20
|
-
Every added agent must have frontmatter:
|
|
21
|
-
|
|
22
|
-
```yaml
|
|
23
|
-
---
|
|
24
|
-
name: stack-agent-name
|
|
25
|
-
description: Use when ...
|
|
26
|
-
tools: Read, Grep, Glob
|
|
27
|
-
model: sonnet
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
-
|
|
45
|
-
-
|
|
46
|
-
-
|
|
47
|
-
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
-
|
|
57
|
-
-
|
|
58
|
-
-
|
|
59
|
-
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
-
|
|
67
|
-
-
|
|
68
|
-
-
|
|
69
|
-
-
|
|
70
|
-
|
|
71
|
-
## Registration
|
|
72
|
-
|
|
73
|
-
After adding assets:
|
|
74
|
-
|
|
75
|
-
- list agents in `Harness/MEMORY.md#Agents`
|
|
76
|
-
- list skills in `Harness/MEMORY.md#Skills`
|
|
77
|
-
- list workflows by path in `Harness/MEMORY.md` or `Harness/README.md`
|
|
78
|
-
- update `Harness/PROGRESS.md` and `Harness/tasks/<task-id>/PROGRESS.md` when the asset affects current work
|
|
79
|
-
- run `node Harness/scripts/validate-harness.mjs`
|
|
1
|
+
# Extension Contract
|
|
2
|
+
|
|
3
|
+
Purpose: keep stack-specific agents, skills, rules, and hooks compatible with this harness.
|
|
4
|
+
|
|
5
|
+
Use during setup whenever adding assets from ECC, SuperClaude, toolboxes, or local project conventions.
|
|
6
|
+
|
|
7
|
+
## Non-Invasive Extension Rules
|
|
8
|
+
|
|
9
|
+
Extensions must preserve project and harness ownership boundaries.
|
|
10
|
+
|
|
11
|
+
- Preserve existing `.claude/`, `CLAUDE.md`, `AGENTS.md`, `.gitignore`, `Harness/README.md`, `Harness/workflows/*.md`, settings, hooks, and local rules unless the user explicitly requests an overwrite.
|
|
12
|
+
- Treat existing project config as project fact. Read it before adding assets, then adapt new assets to the project instead of replacing the project.
|
|
13
|
+
- Register added agents, skills, workflows, rules, and hooks in `Harness/MEMORY.md` and this docs router where applicable.
|
|
14
|
+
- Added assets may extend `.claude/skills/`, `.claude/agents/`, `.claude/rules/`, or `Harness/workflows/`, but they must not replace core harness docs.
|
|
15
|
+
- Core harness docs are `Harness/README.md`, `Harness/PROGRESS.md`, `Harness/subagents.md`, `Harness/context-loading.md`, `Harness/dispatch.md`, `Harness/agent-workflow.md`, and this file.
|
|
16
|
+
- If an optional workflow needs a new command or tool, document the command and fallback in `Harness/workflows/<name>.md` instead of changing core harness behavior.
|
|
17
|
+
|
|
18
|
+
## Agent Contract
|
|
19
|
+
|
|
20
|
+
Every added agent must have frontmatter:
|
|
21
|
+
|
|
22
|
+
```yaml
|
|
23
|
+
---
|
|
24
|
+
name: stack-agent-name
|
|
25
|
+
description: Use when ...
|
|
26
|
+
tools: Read, Grep, Glob
|
|
27
|
+
model: sonnet
|
|
28
|
+
---
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
Agent body must state:
|
|
32
|
+
|
|
33
|
+
- load first
|
|
34
|
+
- inputs required
|
|
35
|
+
- allowed write set or read-only
|
|
36
|
+
- forbidden scope
|
|
37
|
+
- verification or evidence
|
|
38
|
+
- return format from [subagents.md](subagents.md) and [dispatch.md](dispatch.md)
|
|
39
|
+
|
|
40
|
+
## Skill Contract
|
|
41
|
+
|
|
42
|
+
Every added skill must state:
|
|
43
|
+
|
|
44
|
+
- when to use
|
|
45
|
+
- docs to load
|
|
46
|
+
- required inputs
|
|
47
|
+
- allowed writes
|
|
48
|
+
- output format
|
|
49
|
+
- whether to update `Harness/PROGRESS.md` and task files
|
|
50
|
+
- whether to use [subagents.md](subagents.md) and [dispatch.md](dispatch.md)
|
|
51
|
+
|
|
52
|
+
Skills should extend the harness. They should not replace `Harness/README.md`, `Harness/PROGRESS.md`, `subagents.md`, `context-loading.md`, `dispatch.md`, or `agent-workflow.md`.
|
|
53
|
+
|
|
54
|
+
## Rules
|
|
55
|
+
|
|
56
|
+
- Do not add broad agents that can write anywhere.
|
|
57
|
+
- Do not add agents whose role overlaps an existing common agent without naming the difference.
|
|
58
|
+
- Do not add tools that bypass project permissions or user approval.
|
|
59
|
+
- Do not run stack-specific writing agents in parallel unless write sets are disjoint.
|
|
60
|
+
- If an added asset conflicts with this harness, adapt the asset instead of changing the core contract.
|
|
61
|
+
|
|
62
|
+
## Registration
|
|
63
|
+
|
|
64
|
+
After adding assets:
|
|
65
|
+
|
|
66
|
+
- list agents in `Harness/MEMORY.md#Agents`
|
|
67
|
+
- list skills in `Harness/MEMORY.md#Skills`
|
|
68
|
+
- list workflows by path in `Harness/MEMORY.md` or `Harness/README.md`
|
|
69
|
+
- update `Harness/PROGRESS.md` and `Harness/tasks/<task-id>/PROGRESS.md` when the asset affects current work
|
|
70
|
+
- run `node Harness/scripts/validate-harness.mjs`
|
|
@@ -1,33 +1,33 @@
|
|
|
1
|
-
# 0-1 Product Lifecycle
|
|
2
|
-
|
|
3
|
-
Use when starting a new product, clarifying a vague idea, or deciding the next phase.
|
|
4
|
-
|
|
5
|
-
## Phase Contract
|
|
6
|
-
|
|
7
|
-
| Phase | Input | Output | Gate |
|
|
8
|
-
| --- | --- | --- | --- |
|
|
9
|
-
| Idea | user intent | problem, target user, non-goals | unclear points asked or assumptions recorded |
|
|
10
|
-
| Research | problem and constraints | `research/research-results.md` | `research/README.md` followed; at least 3 references or explicit reason not possible |
|
|
11
|
-
| PRD | research decision | `research/PRD.md` | MVP, non-goals, acceptance criteria are verifiable |
|
|
12
|
-
| Architecture | PRD | `Harness/architecture.md
|
|
13
|
-
| Plan | PRD and architecture | `Harness/
|
|
14
|
-
| Build | plan and tests | minimal vertical slice | tests or manual checks prove behavior |
|
|
15
|
-
| Verify | implementation | review findings, test evidence | no unresolved critical/high findings |
|
|
16
|
-
| Feedback | verified slice | next iteration or release decision | learnings recorded in PRD,
|
|
17
|
-
|
|
18
|
-
## Operating Rules
|
|
19
|
-
|
|
20
|
-
- Move one phase at a time unless the user explicitly asks for a fast lane.
|
|
21
|
-
- Start coding only after PRD and minimum architecture gates pass.
|
|
22
|
-
- Prefer one thin vertical slice over broad scaffolding.
|
|
23
|
-
- If feedback changes scope, update PRD before implementation.
|
|
24
|
-
- If implementation reveals a boundary problem, update architecture or ports before continuing.
|
|
25
|
-
|
|
26
|
-
## Fast Lane
|
|
27
|
-
|
|
28
|
-
Small edits may skip full lifecycle when all are true:
|
|
29
|
-
|
|
30
|
-
- user intent is clear
|
|
31
|
-
- one file or one narrow behavior
|
|
32
|
-
- no architecture,
|
|
33
|
-
- one verification command or one manual check is enough
|
|
1
|
+
# 0-1 Product Lifecycle
|
|
2
|
+
|
|
3
|
+
Use when starting a new product, clarifying a vague idea, or deciding the next phase.
|
|
4
|
+
|
|
5
|
+
## Phase Contract
|
|
6
|
+
|
|
7
|
+
| Phase | Input | Output | Gate |
|
|
8
|
+
| --- | --- | --- | --- |
|
|
9
|
+
| Idea | user intent | problem, target user, non-goals | unclear points asked or assumptions recorded |
|
|
10
|
+
| Research | problem and constraints | `research/research-results.md` | `research/README.md` followed; at least 3 references or explicit reason not possible |
|
|
11
|
+
| PRD | research decision | `research/PRD.md` | MVP, non-goals, acceptance criteria are verifiable |
|
|
12
|
+
| Architecture | PRD | `Harness/architecture.md` | boundaries and first ports are defined |
|
|
13
|
+
| Plan | PRD and architecture | `Harness/tasks/<task-id>/PLAN.md`, optional `Harness/dispatch.md` | tasks have owners, write sets, verification |
|
|
14
|
+
| Build | plan and tests | minimal vertical slice | tests or manual checks prove behavior |
|
|
15
|
+
| Verify | implementation | review findings, test evidence | no unresolved critical/high findings |
|
|
16
|
+
| Feedback | verified slice | next iteration or release decision | learnings recorded in PRD, PLAN, or MEMORY |
|
|
17
|
+
|
|
18
|
+
## Operating Rules
|
|
19
|
+
|
|
20
|
+
- Move one phase at a time unless the user explicitly asks for a fast lane.
|
|
21
|
+
- Start coding only after PRD and minimum architecture gates pass.
|
|
22
|
+
- Prefer one thin vertical slice over broad scaffolding.
|
|
23
|
+
- If feedback changes scope, update PRD before implementation.
|
|
24
|
+
- If implementation reveals a boundary problem, update architecture or ports before continuing.
|
|
25
|
+
|
|
26
|
+
## Fast Lane
|
|
27
|
+
|
|
28
|
+
Small edits may skip full lifecycle when all are true:
|
|
29
|
+
|
|
30
|
+
- user intent is clear
|
|
31
|
+
- one file or one narrow behavior
|
|
32
|
+
- no architecture, permission, or public API change
|
|
33
|
+
- one verification command or one manual check is enough
|
|
@@ -72,7 +72,7 @@ Then add phase-specific agents:
|
|
|
72
72
|
- `context-master` before closeout for knowledge extraction
|
|
73
73
|
- `memory-master` after repeated failures and during closeout for consolidation
|
|
74
74
|
|
|
75
|
-
|
|
75
|
+
Collaboration mode is determined by concrete conditions, not a fixed ratio. See `Harness/WF.md#Multi-Subagent Requirement` for the full decision tree. Summary: explicit WF/WK mode → always multi-agent. 3+ files or cross-layer → multi-agent. 1-2 local files, well-understood, not in WF mode → solo acceptable. Repeated failure → stop solo, switch to multi-agent.
|
|
76
76
|
|
|
77
77
|
## Efficiency Ladder
|
|
78
78
|
|
|
@@ -1,65 +1,65 @@
|
|
|
1
|
-
# PRD: {{projectName}}
|
|
2
|
-
|
|
3
|
-
> **Audience**: AI + future you. Not for PM approval — for implementation and review.
|
|
4
|
-
> **Principle**: One page max. Use checkboxes, not prose. Negative definitions > positive definitions.
|
|
5
|
-
>
|
|
6
|
-
> Philosophy source: Miqdad Jaffer (OpenAI)'s lean PRD template for the AI era.
|
|
7
|
-
|
|
8
|
-
---
|
|
9
|
-
|
|
10
|
-
## 1. Why
|
|
11
|
-
|
|
12
|
-
{{WHY_THIS_PROJECT_EXISTS}}
|
|
13
|
-
|
|
14
|
-
## 2. MVP Scope
|
|
15
|
-
|
|
16
|
-
### v0.1 Must Be Able To
|
|
17
|
-
|
|
18
|
-
> Each item below
|
|
19
|
-
|
|
20
|
-
- [ ] {{MUST_1}}
|
|
21
|
-
- [ ] {{MUST_2}}
|
|
22
|
-
- [ ] {{MUST_3}}
|
|
23
|
-
|
|
24
|
-
### Explicitly Out of Scope
|
|
25
|
-
|
|
26
|
-
- {{NON_GOAL_1}}
|
|
27
|
-
- {{NON_GOAL_2}}
|
|
28
|
-
- {{NON_GOAL_3}}
|
|
29
|
-
|
|
30
|
-
## 3. Decision Priorities
|
|
31
|
-
|
|
32
|
-
1. **Security Boundary** — No bypassing permissions, security gates, or audit.
|
|
33
|
-
2. **Architecture Boundary** — Domain must not depend on harness/infrastructure/interfaces, and harness must not make domain judgments.
|
|
34
|
-
3. **Verifiability** — New behavior must have tests or explicit manual verification records.
|
|
35
|
-
4. **Correctness** — Behavior must match design docs, port contracts, data flows, and state machines.
|
|
36
|
-
5. **Simplicity** — Minimum code to solve the current MVP. No abstractions pre-built for future scenarios.
|
|
37
|
-
|
|
38
|
-
## 4. Users & Usage Scenarios
|
|
39
|
-
|
|
40
|
-
| User Role | Core Scenario | Frequency | Pain Point |
|
|
41
|
-
| --- | --- | --- | --- |
|
|
42
|
-
| {{USER_ROLE_1}} | {{SCENARIO}} | {{FREQUENCY}} | {{PAIN}} |
|
|
43
|
-
| {{USER_ROLE_2}} | {{SCENARIO}} | {{FREQUENCY}} | {{PAIN}} |
|
|
44
|
-
|
|
45
|
-
## 5. Acceptance Criteria
|
|
46
|
-
|
|
47
|
-
- [ ] {{ACCEPTANCE_1}}
|
|
48
|
-
- [ ] {{ACCEPTANCE_2}}
|
|
49
|
-
- [ ] {{ACCEPTANCE_3}}
|
|
50
|
-
|
|
51
|
-
## 6. Non-Functional Requirements
|
|
52
|
-
|
|
53
|
-
| Dimension | Target | Measurement |
|
|
54
|
-
| --- | --- | --- |
|
|
55
|
-
| {{DIMENSION_1}} | {{TARGET}} | {{MEASUREMENT}} |
|
|
56
|
-
| {{DIMENSION_2}} | {{TARGET}} | {{MEASUREMENT}} |
|
|
57
|
-
|
|
58
|
-
---
|
|
59
|
-
|
|
60
|
-
## Fill Completion Standard
|
|
61
|
-
|
|
62
|
-
- [ ] MVP and Non-goals are project facts; no `{{...}}` placeholders remain.
|
|
63
|
-
- [ ] Decision priorities guide tradeoffs, not generic platitudes.
|
|
64
|
-
- [ ] Every acceptance criterion is verifiable by test, command, or manual step.
|
|
65
|
-
- [ ] If implementation diverges from the PRD, update this file before changing code.
|
|
1
|
+
# PRD: {{projectName}}
|
|
2
|
+
|
|
3
|
+
> **Audience**: AI + future you. Not for PM approval — for implementation and review.
|
|
4
|
+
> **Principle**: One page max. Use checkboxes, not prose. Negative definitions > positive definitions.
|
|
5
|
+
>
|
|
6
|
+
> Philosophy source: Miqdad Jaffer (OpenAI)'s lean PRD template for the AI era.
|
|
7
|
+
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
## 1. Why
|
|
11
|
+
|
|
12
|
+
{{WHY_THIS_PROJECT_EXISTS}}
|
|
13
|
+
|
|
14
|
+
## 2. MVP Scope
|
|
15
|
+
|
|
16
|
+
### v0.1 Must Be Able To
|
|
17
|
+
|
|
18
|
+
> Each item below should have a task capsule created from `Harness/tasks/_template/` with its own `PROGRESS.md` and `PLAN.md`.
|
|
19
|
+
|
|
20
|
+
- [ ] {{MUST_1}}
|
|
21
|
+
- [ ] {{MUST_2}}
|
|
22
|
+
- [ ] {{MUST_3}}
|
|
23
|
+
|
|
24
|
+
### Explicitly Out of Scope
|
|
25
|
+
|
|
26
|
+
- {{NON_GOAL_1}}
|
|
27
|
+
- {{NON_GOAL_2}}
|
|
28
|
+
- {{NON_GOAL_3}}
|
|
29
|
+
|
|
30
|
+
## 3. Decision Priorities
|
|
31
|
+
|
|
32
|
+
1. **Security Boundary** — No bypassing permissions, security gates, or audit.
|
|
33
|
+
2. **Architecture Boundary** — Domain must not depend on harness/infrastructure/interfaces, and harness must not make domain judgments.
|
|
34
|
+
3. **Verifiability** — New behavior must have tests or explicit manual verification records.
|
|
35
|
+
4. **Correctness** — Behavior must match design docs, port contracts, data flows, and state machines.
|
|
36
|
+
5. **Simplicity** — Minimum code to solve the current MVP. No abstractions pre-built for future scenarios.
|
|
37
|
+
|
|
38
|
+
## 4. Users & Usage Scenarios
|
|
39
|
+
|
|
40
|
+
| User Role | Core Scenario | Frequency | Pain Point |
|
|
41
|
+
| --- | --- | --- | --- |
|
|
42
|
+
| {{USER_ROLE_1}} | {{SCENARIO}} | {{FREQUENCY}} | {{PAIN}} |
|
|
43
|
+
| {{USER_ROLE_2}} | {{SCENARIO}} | {{FREQUENCY}} | {{PAIN}} |
|
|
44
|
+
|
|
45
|
+
## 5. Acceptance Criteria
|
|
46
|
+
|
|
47
|
+
- [ ] {{ACCEPTANCE_1}}
|
|
48
|
+
- [ ] {{ACCEPTANCE_2}}
|
|
49
|
+
- [ ] {{ACCEPTANCE_3}}
|
|
50
|
+
|
|
51
|
+
## 6. Non-Functional Requirements
|
|
52
|
+
|
|
53
|
+
| Dimension | Target | Measurement |
|
|
54
|
+
| --- | --- | --- |
|
|
55
|
+
| {{DIMENSION_1}} | {{TARGET}} | {{MEASUREMENT}} |
|
|
56
|
+
| {{DIMENSION_2}} | {{TARGET}} | {{MEASUREMENT}} |
|
|
57
|
+
|
|
58
|
+
---
|
|
59
|
+
|
|
60
|
+
## Fill Completion Standard
|
|
61
|
+
|
|
62
|
+
- [ ] MVP and Non-goals are project facts; no `{{...}}` placeholders remain.
|
|
63
|
+
- [ ] Decision priorities guide tradeoffs, not generic platitudes.
|
|
64
|
+
- [ ] Every acceptance criterion is verifiable by test, command, or manual step.
|
|
65
|
+
- [ ] If implementation diverges from the PRD, update this file before changing code.
|