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
@@ -1,112 +1,97 @@
1
- # {{projectName}} Docs Entry Point
1
+ # {{projectName}} - Harness Router
2
2
 
3
- > **Purpose**: A shared project map for humans and coding agents. `AGENTS.md` tells agents to read `CLAUDE.md` first, then enter the project fact source from here.
4
- >
5
- > **Principle**: Short entry + topic-specific docs. Don't cram everything into `CLAUDE.md` or `AGENTS.md`.
3
+ Purpose: route humans and agents to the smallest useful context.
6
4
 
7
- ---
5
+ Default load: `CLAUDE.md`, `MEMORY.md`, this file, and `docs/harness/PLAN.md` when work is active. Do not read the whole docs tree.
8
6
 
9
- ## 0-1 Required Project Flow
7
+ ## 0-1 Flow
10
8
 
11
- When starting from scratch, produce docs in this order. Don't move to the next phase without a minimum viable conclusion from the previous one.
9
+ ```text
10
+ Idea -> Research -> PRD -> Architecture -> Plan -> Build -> Verify -> Feedback
11
+ ```
12
12
 
13
- | Order | Artifact | Must Answer | Completion Standard |
14
- | --- | --- | --- | --- |
15
- | 1 | [research/scaffolds.md](research/scaffolds.md) | What do others do? Which templates, frameworks, constraints? Why adopt/reject? | At least 3 references; each with Purpose / Strength / Weakness / Decision |
16
- | 2 | [research/PRD.md](research/PRD.md) | What does this MVP solve? What is explicitly NOT in scope? How to verify? | One page; MVP, Non-goals, verifiable acceptance criteria |
17
- | 3 | [harness/architecture.md](harness/architecture.md) | How many layers? Component boundaries? What can/can't harness do? | Layer dependencies, core components, non-negotiable constraints, key decisions |
18
- | 4 | [domain/ports.md](domain/ports.md) | What contracts between layers? Error and idempotency semantics? | Each port: preconditions, postconditions, error semantics, known implementations |
19
- | 5 | [harness/data-flow.md](harness/data-flow.md) | Normal path and failure paths? What does the caller see? | At least 1 core flow; each failure point has system behavior and recovery |
20
- | 6 | [harness/state-machines.md](harness/state-machines.md) | Which components have state? Which transitions are legal/illegal? | Each stateful component: state enum, transition table, illegal transitions |
21
- | 7 | [harness/agent-workflow.md](harness/agent-workflow.md) | How do agents divide work, TDD, verify, and close? | Feature doc template, subagent roles, write set, completion criteria |
22
- | 8 | tests + implementation | Is the design proven by code? | Minimal vertical slice runs; tests cover core success/failure paths |
23
-
24
- **Hard gates**:
25
- - If a doc still has `{{...}}` placeholders, don't claim the architecture is finalized.
26
- - **Minimum docs to start coding**: `research/PRD.md` + `harness/architecture.md` + at least 1 filled port contract. Once there, start a minimal vertical slice, but record risks from missing `data-flow.md` / `state-machines.md` in the feature doc or tests.
27
- - If architecture boundaries change, sync docs and tests.
28
- - If implementation spans more than one short session, open a feature doc from [features/_template.md](features/_template.md) first.
29
-
30
- ## Doc Completion Standards
31
-
32
- | Doc | Minimum Standard | Can Defer |
33
- | --- | --- | --- |
34
- | `research/scaffolds.md` | At least 3 references; each with Purpose / Strength / Weakness / Decision; final decision recorded | Rejected options can be backfilled |
35
- | `research/PRD.md` | Why, MVP, Non-goals, decision priorities, acceptance criteria are not placeholders | Non-functional targets can start as MVP-level goals |
36
- | `harness/architecture.md` | Layer dependencies, core components, at least 1 ADR, non-negotiable constraints | Runner variants can say "none yet" when only one runner exists |
37
- | `domain/ports.md` | At least 1 port with preconditions, postconditions, error semantics, idempotency, known impls | Additional ports can be added incrementally with features |
38
- | `harness/data-flow.md` | At least 1 core flow with normal + failure paths | Secondary flows can come later |
39
- | `harness/state-machines.md` | Every stateful component has state enum and transition table | Stateless components don't need entries |
40
- | `harness/agent-workflow.md` | Feature doc, write set, verification, closure criteria are clear | Subagent roles can expand as needed |
41
- | `features/*.md` | Requirements / Design / Tasks / Verification closed loop | Minor fixes can take the fast lane with a reason |
42
-
43
- ---
44
-
45
- ## Harness Boundary
46
-
47
- The current template uses `interfaces -> harness -> application -> domain` with `infrastructure` adapters. The `domain` is any business domain: data analysis, document processing, code repair, ops automation — all can hang off the same harness.
48
-
49
- | Layer | Responsible For | NOT Responsible For |
50
- | --- | --- | --- |
51
- | `interfaces/` | CLI / API / UI entry points | Business rules, data source details |
52
- | `harness/` | Runtime shell, scheduling, safety gates, audit, observability, failure control | Domain business rules, domain decisions, adapter implementation details |
53
- | `application/` | Use-case orchestration, composing domain ports into business actions | Specific external service implementations |
54
- | `domain/` | Business objects, business invariants, port protocols | Importing harness / infrastructure / interfaces |
55
- | `infrastructure/` | Filesystem, database, external API, model service port implementations | Defining business contracts |
56
-
57
- How to decide: if it "protects, records, schedules, recovers the system during runtime" → harness. If it "decides whether a business action should happen and what it means" → application/domain.
58
-
59
- ---
13
+ For the full phase contract, load [harness/lifecycle.md](harness/lifecycle.md).
60
14
 
61
- ## Doc Map
15
+ ## Development Contract
62
16
 
63
- ```text
64
- docs/
65
- ├── README.md You are here
66
- ├── features/
67
- │ └── _template.md ← Single-feature implementation doc template (Kiro-lite)
68
- ├── harness/
69
- │ ├── agent-workflow.md ← Agent roles, TDD, closure, write set rules
70
- │ ├── architecture.md ← Component map, layer rules, key design decisions
71
- │ ├── data-flow.md End-to-end event flow: normal + error paths
72
- │ └── state-machines.md ← Stateful component transition diagrams and tables
73
- ├── domain/
74
- │ └── ports.md ← Cross-layer interface contracts: pre/post, error semantics
75
- └── research/
76
- ├── PRD.md ← One-page MVP scope and acceptance template
77
- └── scaffolds.md ← Research conclusions, reference templates, tech rationale
78
- ```
17
+ - This file is a router, not a full spec.
18
+ - If the task does not clearly match a row below, search by keywords before loading more docs.
19
+ - Core rules live in `CLAUDE.md` and `.claude/rules/ecc/common.md`.
20
+ - Phase rules live in [harness/lifecycle.md](harness/lifecycle.md).
21
+ - Build, review, test, and subagent rules live in [harness/agent-workflow.md](harness/agent-workflow.md).
22
+ - Parallel dispatch rules live in [harness/dispatch.md](harness/dispatch.md).
23
+ - Extension rules live in [harness/extension.md](harness/extension.md).
24
+ - Context-loading rules live in [harness/context-loading.md](harness/context-loading.md).
25
+ - Progress lives in [harness/PLAN.md](harness/PLAN.md) and the current feature doc.
79
26
 
80
- ---
27
+ ## Keyword Routing
81
28
 
82
- ## Reading Order
29
+ Use this only when the task is ambiguous or the matching row is unclear.
83
30
 
84
- | Role | Read First | Then |
85
- | --- | --- | --- |
86
- | New developer | [research/PRD.md](research/PRD.md) | [harness/architecture.md](harness/architecture.md) |
87
- | Implementer | [harness/agent-workflow.md](harness/agent-workflow.md) | [features/_template.md](features/_template.md) |
88
- | Reviewer | [harness/state-machines.md](harness/state-machines.md) | tests |
89
- | Architecture maintainer | [research/scaffolds.md](research/scaffolds.md) | [harness/architecture.md](harness/architecture.md) |
31
+ 1. Extract 2-5 concrete keywords from the user request.
32
+ 2. Search the project docs first:
90
33
 
91
- ---
34
+ ```bash
35
+ rg -n "keyword1|keyword2|keyword3" CLAUDE.md MEMORY.md docs
36
+ ```
92
37
 
93
- ## Maintenance Rules
38
+ 3. Load only the top matching doc or the smallest matching doc pair.
39
+ 4. If keyword search conflicts with the table below, follow the table and record the assumption in `docs/harness/PLAN.md`.
94
40
 
95
- - Code change affects architecture update `harness/architecture.md`.
96
- - New cross-layer interface → update `domain/ports.md`.
97
- - New flow or failure path → update `harness/data-flow.md`.
98
- - New stateful component → update `harness/state-machines.md`.
99
- - New external dependency, template, or framework choice → update `research/scaffolds.md`.
100
- - Non-trivial feature → copy `features/_template.md`, follow `harness/agent-workflow.md`.
101
- - Docs rules repeatedly ignored by agents → don't lengthen entry files; turn rules into tests, lint, or more specific templates.
41
+ Keywords are retrieval hints, not project facts.
102
42
 
103
- ---
43
+ ## Load By Task
104
44
 
105
- ## External References
45
+ Load the matching row only. Add adjacent docs only when the loaded doc directly names them.
106
46
 
107
- - OpenAI, Harness Engineering: short `AGENTS.md` as directory, `docs/` as fact source; architecture boundaries enforced by tests/lint.
108
- - Anthropic, Claude Code Best Practices: `CLAUDE.md` kept short and maintainable; use `@docs/...` to pull in project docs.
109
- - OpenAI, PLANS.md / ExecPlans: complex tasks use self-contained, verifiable, recoverable execution plans.
110
- - GitHub Spec Kit / Kiro Specs: borrow requirements -> design -> tasks -> verification structure.
111
- - Anthropic, Building Effective Agents: agent loops need environment feedback, clear stop conditions, and human checkpoints.
112
- - arc42 / C4 / ADR / ARCHITECTURE.md: provide architecture chapters, static structure views, decision records, and lightweight code maps respectively.
47
+ | When to Read | Keywords | Load | Output |
48
+ | --- | --- | --- | --- |
49
+ | Raw idea or vague product request | idea, vague, clarify, goal, non-goal, lifecycle | [harness/lifecycle.md](harness/lifecycle.md), [research/PRD.md](research/PRD.md) | clarified goal, non-goals, first questions |
50
+ | Need market/tech direction | research, market, competitor, stack, library, pricing, policy | [research/README.md](research/README.md), [research/research-results.md](research/research-results.md) | research protocol, adopted/rejected choices |
51
+ | Need MVP/spec | PRD, MVP, scope, requirement, acceptance, non-goal | [research/PRD.md](research/PRD.md) | one-page PRD with verifiable acceptance criteria |
52
+ | Need architecture or boundaries | architecture, boundary, layer, domain, port, adapter, dependency | [harness/architecture.md](harness/architecture.md), [domain/ports.md](domain/ports.md) | layer map, ports, constraints |
53
+ | Need implementation plan | plan, task, write set, verify, milestone, progress | [harness/PLAN.md](harness/PLAN.md), [harness/agent-workflow.md](harness/agent-workflow.md) | tasks, write set, verification commands |
54
+ | Need parallel agents | parallel, dispatch, handoff, write set, dependency, status | [harness/dispatch.md](harness/dispatch.md), [harness/context-loading.md](harness/context-loading.md), [harness/PLAN.md](harness/PLAN.md) | dispatch table, agent roles, read/write sets |
55
+ | Adding stack-specific agents/skills | extension, agent, skill, rule, hook, stack-specific, compatibility | [harness/extension.md](harness/extension.md), [harness/dispatch.md](harness/dispatch.md) | compatible agents, skills, rules, hooks |
56
+ | Need subagents | subagent, role pack, context, inject, return format | [harness/context-loading.md](harness/context-loading.md) | role-specific context pack |
57
+ | Need feature work | feature, implementation, TDD, test, review, closeout | [features/_template.md](features/_template.md), [harness/agent-workflow.md](harness/agent-workflow.md) | feature doc, tests, implementation loop |
58
+ | Flow or failure behavior changes | data flow, event, failure, retry, recovery, caller behavior | [harness/data-flow.md](harness/data-flow.md) | happy path, failure path, caller behavior |
59
+ | Stateful behavior changes | state, transition, guard, illegal transition, state machine | [harness/state-machines.md](harness/state-machines.md) | states, transitions, illegal transitions |
60
+ | Review or release check | review, release, finding, risk, evidence, verification | [harness/agent-workflow.md](harness/agent-workflow.md), current feature doc | findings, verification evidence |
61
+ | Harness readiness check | validate, readiness, placeholder, missing file, release gate | `scripts/validate-harness.mjs`, `scripts/validate-harness.mjs --strict` | missing files and unresolved project placeholders |
62
+
63
+ ## Gates
64
+
65
+ - Move phases in order unless the user asks for a fast lane.
66
+ - Do not code before the PRD has MVP, non-goals, and acceptance criteria.
67
+ - Do not cross a layer boundary without updating architecture or ports.
68
+ - Do not spawn a subagent without a role, read boundary, write boundary, and return contract.
69
+ - Do not run writing agents in parallel unless write sets are disjoint.
70
+ - Do not add stack-specific agents or skills without following `harness/extension.md`.
71
+ - Do not close work without tests or recorded manual verification.
72
+ - Do not mark work `Verified` until evidence is recorded in `docs/harness/PLAN.md` or the feature doc.
73
+ - Run `node scripts/validate-harness.mjs` for scaffold structure; run `node scripts/validate-harness.mjs --strict` after bootstrap and before release.
74
+ - If a doc still has `{{...}}`, treat that section as a template, not project fact.
75
+
76
+ ## Doc Map
77
+
78
+ ```text
79
+ docs/README.md router only
80
+ docs/harness/PLAN.md active execution plan
81
+ docs/harness/lifecycle.md 0-1 product flow
82
+ docs/harness/context-loading.md dynamic loading and subagent packs
83
+ docs/harness/dispatch.md lightweight parallel dispatch protocol
84
+ docs/harness/extension.md stack-specific asset contract
85
+ docs/harness/agent-workflow.md build/review/test loop
86
+ docs/harness/architecture.md layer boundaries
87
+ docs/harness/data-flow.md runtime/failure paths
88
+ docs/harness/state-machines.md state transitions
89
+ docs/domain/ports.md cross-layer contracts
90
+ docs/features/_template.md feature work packet
91
+ docs/research/README.md research protocol
92
+ docs/research/PRD.md product scope
93
+ docs/research/research-results.md research results
94
+ scripts/validate-harness.mjs lightweight harness gate
95
+ .claude/agents/* built-in common agents
96
+ .claude/skills/* skill-style dynamic loaders
97
+ ```
@@ -1,73 +1,73 @@
1
- # 端口协议 — {{projectName}}
1
+ # Port Contracts — {{projectName}}
2
2
 
3
- > **职责**:定义跨层接口契约。这是分层架构的"法律合同"。每个端口不仅写签名,还写前置条件、后置条件、错误语义。
3
+ > **Responsibility**: Define cross-layer interface contracts. These are the "legal contracts" of a layered architecture. Each port documents not only its signature, but also preconditions, postconditions, and error semantics.
4
4
  >
5
- > **原则**:端口文档 != API 参考文档。它是一个合同(contract),指定调用方义务和实现方保证。
5
+ > **Principle**: Port documentation != API reference documentation. It is a contract that specifies caller obligations and implementer guarantees.
6
6
  >
7
- > 哲学来源:Bertrand Meyer Design by Contract (Eiffel) + Alistair Cockburn 的六边形架构端口文档。
7
+ > Philosophical origins: Bertrand Meyer's Design by Contract (Eiffel) + Alistair Cockburn's hexagonal architecture port documentation.
8
8
 
9
9
  ---
10
10
 
11
- ## 1. 端口分类
11
+ ## 1. Port Classification
12
12
 
13
- ### 1.1 驱动端口(Inbound — 外部调用应用)
13
+ ### 1.1 Driving Ports (Inbound — external calls application)
14
14
 
15
- | 端口 | 定义位置 | 用途 |
15
+ | Port | Definition Location | Purpose |
16
16
  | --- | --- | --- |
17
17
  | `{{INBOUND_PORT_1}}` | `{{LOCATION}}` | {{DESCRIPTION}} |
18
18
 
19
- ### 1.2 被驱动端口(Outbound — 应用调用外部)
19
+ ### 1.2 Driven Ports (Outbound — application calls external)
20
20
 
21
- | 端口 | 定义位置 | 用途 |
21
+ | Port | Definition Location | Purpose |
22
22
  | --- | --- | --- |
23
23
  | `{{OUTBOUND_PORT_1}}` | `{{LOCATION}}` | {{DESCRIPTION}} |
24
24
 
25
25
  ---
26
26
 
27
- ## 2. 端口定义模板
27
+ ## 2. Port Definition Template
28
28
 
29
- 每个端口按以下格式填写:
29
+ Fill in each port using the format below:
30
30
 
31
- - **类别**:驱动 / 被驱动
32
- - **定义位置**:`{{FILE_PATH}}`
33
- - **协议类**:`{{CLASS_OR_INTERFACE}}`
31
+ - **Category**: Driving / Driven
32
+ - **Definition Location**: `{{FILE_PATH}}`
33
+ - **Contract Class**: `{{CLASS_OR_INTERFACE}}`
34
34
 
35
- ### 用途
35
+ ### Purpose
36
36
 
37
37
  {{WHAT_THIS_PORT_DOES}}
38
38
 
39
- ### 方法
39
+ ### Methods
40
40
 
41
- **前置条件**(调用方必须保证):
41
+ **Preconditions** (caller must guarantee):
42
42
  - {{PRECONDITION_1}}
43
43
  - {{PRECONDITION_2}}
44
44
 
45
- **后置条件**(实现方保证):
45
+ **Postconditions** (implementer guarantees):
46
46
  - {{POSTCONDITION_1}}
47
47
  - {{POSTCONDITION_2}}
48
48
 
49
- **错误语义**:
49
+ **Error Semantics**:
50
50
 
51
- | 异常类型 | 触发条件 | 调用方应 |
51
+ | Exception Type | Trigger Condition | Caller Should |
52
52
  | --- | --- | --- |
53
53
  | `{{EXCEPTION_TYPE}}` | {{CONDITION}} | {{CALLER_ACTION}} |
54
54
 
55
- **幂等性**:{{YES_NO_AND_DETAILS}}
55
+ **Idempotency**: {{YES_NO_AND_DETAILS}}
56
56
 
57
- ### 已知实现
57
+ ### Known Implementations
58
58
 
59
- | 适配器 | 位置 | 用途 |
59
+ | Adapter | Location | Purpose |
60
60
  | --- | --- | --- |
61
61
  | `{{ADAPTER_NAME}}` | `{{LOCATION}}` | {{PURPOSE}} |
62
62
 
63
63
  ---
64
64
 
65
- ## 3. 跨端口不变量
65
+ ## 3. Cross-Port Invariants
66
66
 
67
67
  - {{INVARIANT_1}}
68
68
  - {{INVARIANT_2}}
69
- - 新增端口必须定义在 `domain/ports` 中,适配器放在 `infrastructure/`。
69
+ - New ports must be defined in `domain/ports`; adapters go in `infrastructure/`.
70
70
 
71
71
  ---
72
72
 
73
- > **提示**:当前 ports.md 是模板。请根据你的项目领域替换 `{{...}}` 占位符。参考 `docs/harness/data-flow.md` 了解端口如何被编排。
73
+ > **Note**: The current ports.md is a template. Replace `{{...}}` placeholders with your project's domain details. Refer to `docs/harness/data-flow.md` to understand how ports are orchestrated.
@@ -1,29 +1,31 @@
1
1
  # {{FEATURE_NAME}}
2
2
 
3
- > **状态**:Draft / In Progress / Blocked / Done
4
- > **创建日期**:{{YYYY-MM-DD}}
5
- > **负责人**:{{OWNER_OR_AGENT}}
6
- > **关联文档**:{{PRD_OR_ARCH_DOC_LINKS}}
3
+ > **When to use**: During the PRD phase, every new feature identified in `research/PRD.md` must have its own features document created from this template. One feature = one doc = one implementation unit. Do not code a PRD scope item without a corresponding features doc.
4
+
5
+ > **Status**: Draft / In Progress / Blocked / Done
6
+ > **Created**: {{YYYY-MM-DD}}
7
+ > **Owner**: {{OWNER_OR_AGENT}}
8
+ > **Related Docs**: {{PRD_OR_ARCH_DOC_LINKS}}
7
9
 
8
10
  ---
9
11
 
10
12
  ## 1. Requirements
11
13
 
12
- ### 1.1 背景
14
+ ### 1.1 Background
13
15
 
14
16
  {{WHY_THIS_FEATURE_EXISTS}}
15
17
 
16
- ### 1.2 目标
18
+ ### 1.2 Goals
17
19
 
18
20
  - {{GOAL_1}}
19
21
  - {{GOAL_2}}
20
22
 
21
- ### 1.3 非目标
23
+ ### 1.3 Non-Goals
22
24
 
23
25
  - {{NON_GOAL_1}}
24
26
  - {{NON_GOAL_2}}
25
27
 
26
- ### 1.4 验收标准
28
+ ### 1.4 Acceptance Criteria
27
29
 
28
30
  - [ ] {{ACCEPTANCE_CRITERION_1}}
29
31
  - [ ] {{ACCEPTANCE_CRITERION_2}}
@@ -33,9 +35,9 @@
33
35
 
34
36
  ## 2. Design
35
37
 
36
- ### 2.1 影响范围
38
+ ### 2.1 Impact Scope
37
39
 
38
- | 区域 | 是否影响 | 说明 |
40
+ | Area | Impacted? | Notes |
39
41
  | --- | --- | --- |
40
42
  | `harness/architecture.md` | {{YES_NO}} | {{NOTE}} |
41
43
  | `domain/ports.md` | {{YES_NO}} | {{NOTE}} |
@@ -53,20 +55,20 @@
53
55
  - `{{PATH_OR_BEHAVIOR_1}}`
54
56
  - `{{PATH_OR_BEHAVIOR_2}}`
55
57
 
56
- ### 2.4 方案
58
+ ### 2.4 Approach
57
59
 
58
- #### 候选方案
60
+ #### Candidate Approaches
59
61
 
60
- | 方案 | 优点 | 缺点 | 结论 |
62
+ | Approach | Pros | Cons | Decision |
61
63
  | --- | --- | --- | --- |
62
64
  | {{OPTION_A}} | {{PROS_A}} | {{CONS_A}} | {{ACCEPT_REJECT}} |
63
65
  | {{OPTION_B}} | {{PROS_B}} | {{CONS_B}} | {{ACCEPT_REJECT}} |
64
66
 
65
- #### 选择理由
67
+ #### Rationale
66
68
 
67
69
  {{SELECTED_DESIGN_AND_RATIONALE}}
68
70
 
69
- ### 2.5 边界条件
71
+ ### 2.5 Edge Cases
70
72
 
71
73
  - {{EDGE_CASE_1}} -> {{EXPECTED_BEHAVIOR_1}}
72
74
  - {{EDGE_CASE_2}} -> {{EXPECTED_BEHAVIOR_2}}
@@ -75,7 +77,7 @@
75
77
 
76
78
  ## 3. Tasks
77
79
 
78
- > 每个 task 必须有验证方式。需要 subagent 时,先写清角色和 write set
80
+ > Every task must have a verification method. When a subagent is needed, define its role and write set first.
79
81
 
80
82
  | # | Task | Owner | Write Set | Verify |
81
83
  | --- | --- | --- | --- | --- |
@@ -83,15 +85,22 @@
83
85
  | 2 | {{IMPLEMENT_MINIMAL_CHANGE}} | {{OWNER}} | `{{PATH}}` | `{{COMMAND_OR_CHECK}}` |
84
86
  | 3 | {{SYNC_DOCS_OR_BOUNDARIES}} | {{OWNER}} | `{{PATH}}` | `{{COMMAND_OR_CHECK}}` |
85
87
 
86
- ### Subagent Plan
88
+ ### Subagent Plan (required — justify if all No)
87
89
 
88
- | Role | Needed? | Scope |
89
- | --- | --- | --- |
90
- | Explorer | {{YES_NO}} | {{READ_ONLY_SCOPE}} |
91
- | Test Writer | {{YES_NO}} | {{TEST_WRITE_SET}} |
92
- | Implementer | {{YES_NO}} | {{IMPLEMENTATION_WRITE_SET}} |
93
- | Reviewer | {{YES_NO}} | {{REVIEW_SCOPE}} |
94
- | Verifier | {{YES_NO}} | {{VERIFY_COMMANDS}} |
90
+ Estimate the context budget for this feature. If the main agent would need to read >5 files or modify >3 files, subagents are mandatory per `.claude/rules/ecc/common.md`.
91
+
92
+ | Agent / Pass | Required? | Mode | Read Boundary | Write Set | Verify |
93
+ | --- | --- | --- | --- | --- | --- |
94
+ | Planner | {{YES_NO}} | Parallel Read | `{{SCOPE}}` | none | `{{CHECK}}` |
95
+ | Researcher / Docs Researcher | {{YES_NO}} | Parallel Read | `{{SCOPE}}` | none | `{{CHECK}}` |
96
+ | Architect | {{YES_NO}} | Parallel Read | `{{SCOPE}}` | none | `{{CHECK}}` |
97
+ | Explorer Pass | {{YES_NO}} | Parallel Read | `{{SCOPE}}` | none | `{{CHECK}}` |
98
+ | Test Writer | {{YES_NO}} | Serial Write | `{{SCOPE}}` | `{{PATH}}` | `{{COMMAND}}` |
99
+ | Implementer / Debugger | {{YES_NO}} | Serial Write | `{{SCOPE}}` | `{{PATH}}` | `{{COMMAND}}` |
100
+ | Reviewer | {{YES_NO}} | Parallel Read | `{{SCOPE}}` | none | `{{CHECK}}` |
101
+ | Verifier | {{YES_NO}} | Parallel Read | `{{SCOPE}}` | none | `{{COMMANDS}}` |
102
+
103
+ **If all roles are No, justify:** {{WHY_MAIN_AGENT_CAN_HANDLE_ALONE}}
95
104
 
96
105
  ---
97
106
 
@@ -114,7 +123,7 @@
114
123
  - [ ] `domain/ports.md`
115
124
  - [ ] `harness/data-flow.md`
116
125
  - [ ] `harness/state-machines.md`
117
- - [ ] `research/scaffolds.md`
126
+ - [ ] `research/research-results.md`
118
127
  - [ ] Not needed because {{REASON}}
119
128
 
120
129
  ### 4.4 Decision Log
@@ -0,0 +1,80 @@
1
+ # PLAN.md - Active Execution Plan
2
+
3
+ Use this file when work spans more than one step, one file, or one agent.
4
+
5
+ ## Current Goal
6
+
7
+ {{CURRENT_GOAL}}
8
+
9
+ ## Phase
10
+
11
+ Choose one: Idea / Research / PRD / Architecture / Plan / Build / Verify / Feedback.
12
+
13
+ Current: {{CURRENT_PHASE}}
14
+
15
+ ## Progress Rules
16
+
17
+ - Phase tracks lifecycle progress.
18
+ - Task status tracks execution progress.
19
+ - Update before handoff, after verification, and when blocked.
20
+
21
+ Allowed task statuses: Pending / In Progress / Blocked / Done / Verified.
22
+
23
+ - Pending: not started.
24
+ - In Progress: active work.
25
+ - Blocked: needs user input or external change.
26
+ - Done: task complete, evidence not final.
27
+ - Verified: verification evidence is recorded.
28
+
29
+ ## Success Criteria
30
+
31
+ - [ ] {{CRITERION_1}}
32
+ - [ ] {{CRITERION_2}}
33
+ - [ ] {{CRITERION_3}}
34
+
35
+ ## Scope
36
+
37
+ Allowed write set:
38
+ - `{{PATH_OR_GLOB}}`
39
+
40
+ Forbidden:
41
+ - {{OUT_OF_SCOPE}}
42
+
43
+ ## Loaded Context
44
+
45
+ Keep this list short. Add only docs/files used for the current phase.
46
+
47
+ - `docs/README.md`
48
+ - `{{LOADED_DOC_OR_FILE}}`
49
+
50
+ ## Tasks
51
+
52
+ | # | Task | Owner | Verify | Status |
53
+ | --- | --- | --- | --- | --- |
54
+ | 1 | {{TASK}} | {{OWNER}} | `{{COMMAND_OR_CHECK}}` | Pending |
55
+
56
+ ## Parallel Dispatch
57
+
58
+ Use [dispatch.md](dispatch.md) when more than one agent or bounded pass is useful.
59
+
60
+ | Task | Agent | Mode | Read Set | Write Set | Depends On | Output | Status |
61
+ | --- | --- | --- | --- | --- | --- | --- | --- |
62
+ | {{TASK}} | {{AGENT}} | Parallel Read / Serial Write / Isolated Worktree | `{{READ_SET}}` | `{{WRITE_SET_OR_NONE}}` | {{DEPENDENCY_OR_NONE}} | {{EXPECTED_OUTPUT}} | Pending |
63
+
64
+ ## Agent Handoffs
65
+
66
+ | Agent | Role | Context Pack | Result |
67
+ | --- | --- | --- | --- |
68
+ | {{AGENT}} | {{ROLE}} | {{DOCS_OR_FILES}} | {{SUMMARY}} |
69
+
70
+ ## Decisions
71
+
72
+ | Date | Decision | Reason |
73
+ | --- | --- | --- |
74
+ | {{YYYY-MM-DD}} | {{DECISION}} | {{REASON}} |
75
+
76
+ ## Verification
77
+
78
+ | Check | Result | Notes |
79
+ | --- | --- | --- |
80
+ | `{{CHECK}}` | Not run | {{NOTES}} |