create-harness-vibe-coding 0.1.10 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +86 -35
- package/package.json +1 -1
- package/src/generator.js +72 -12
- package/src/index.js +30 -11
- package/templates/common/.claude/agents/architect.md +4 -4
- package/templates/common/.claude/agents/debugger.md +1 -1
- package/templates/common/.claude/agents/docs-researcher.md +4 -4
- package/templates/common/.claude/agents/implementer.md +1 -1
- package/templates/common/.claude/agents/planner.md +3 -3
- package/templates/common/.claude/agents/researcher.md +4 -4
- package/templates/common/.claude/agents/reviewer.md +1 -1
- package/templates/common/.claude/agents/test-writer.md +2 -2
- package/templates/common/.claude/agents/verifier.md +1 -1
- package/templates/common/.claude/commands/wf.md +18 -0
- package/templates/common/.claude/rules/ecc/common.md +11 -10
- package/templates/common/.claude/skills/harness-build-loop/SKILL.md +4 -3
- package/templates/common/.claude/skills/harness-context/SKILL.md +4 -3
- package/templates/common/.claude/skills/harness-lifecycle/SKILL.md +3 -3
- package/templates/common/.claude/skills/harness-research/SKILL.md +4 -4
- package/templates/common/.claude/skills/harness-router/SKILL.md +7 -5
- package/templates/common/.claude/skills/readme-optimizer/SKILL.md +48 -0
- package/templates/common/.claude/skills/subagent-orchestrator/SKILL.md +36 -0
- package/templates/common/.claude/skills/wf-mode/SKILL.md +48 -0
- package/templates/common/AGENTS.md +2 -2
- package/templates/common/CLAUDE.md +39 -73
- package/templates/common/MEMORY.md +32 -27
- package/templates/common/README.md +41 -0
- package/templates/common/SETUP.md +95 -72
- package/templates/common/docs/README.md +71 -54
- package/templates/common/docs/domain/ports.md +1 -1
- package/templates/common/docs/features/_template.md +10 -10
- package/templates/common/docs/harness/PLAN.md +25 -2
- package/templates/common/docs/harness/WF.md +136 -0
- package/templates/common/docs/harness/agent-workflow.md +8 -8
- package/templates/common/docs/harness/context-loading.md +16 -16
- package/templates/common/docs/harness/data-flow.md +1 -1
- package/templates/common/docs/harness/dispatch.md +5 -2
- package/templates/common/docs/harness/extension.md +14 -14
- package/templates/common/docs/harness/lifecycle.md +2 -2
- package/templates/common/docs/harness/subagents.md +140 -0
- package/templates/common/docs/research/PRD.md +1 -1
- package/templates/common/docs/research/README.md +5 -5
- package/templates/common/scripts/validate-harness.mjs +131 -56
- package/templates/optional/skills/browser-e2e/.claude/skills/browser-e2e/SKILL.md +5 -5
- 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 +5 -5
- package/templates/optional/skills/python-backend/.claude/skills/python-backend/SKILL.md +5 -5
- package/templates/optional/skills/ts-react-frontend/.claude/skills/ts-react-frontend/SKILL.md +5 -5
- package/templates/optional/skills/ui-ux-review/.claude/skills/ui-ux-review/SKILL.md +5 -5
|
@@ -9,10 +9,10 @@ This scaffold is a 0-1 product harness:
|
|
|
9
9
|
- short agent entry files
|
|
10
10
|
- dynamic docs router
|
|
11
11
|
- PRD, research protocol, architecture, ports, data-flow, state templates
|
|
12
|
-
- active `
|
|
13
|
-
- `MEMORY.md` plus a `memory/` folder for durable self-learning, user corrections, and tool reflections
|
|
12
|
+
- active `Harness/PLAN.md`
|
|
13
|
+
- `Harness/MEMORY.md` plus a `Harness/memory/` folder for durable self-learning, user corrections, and tool reflections
|
|
14
14
|
- built-in common agents
|
|
15
|
-
- subagent context-loading protocol
|
|
15
|
+
- subagent orchestration and context-loading protocol
|
|
16
16
|
- skill-style dynamic loaders in `.claude/skills/`
|
|
17
17
|
- lightweight harness validator
|
|
18
18
|
- test/review/feedback loop
|
|
@@ -24,37 +24,55 @@ It does not guess your stack or business domain. Claude Code should fill those t
|
|
|
24
24
|
Start Claude Code, then say:
|
|
25
25
|
|
|
26
26
|
```text
|
|
27
|
-
Read SETUP.md. Bootstrap this project as a 0-1 product harness.
|
|
28
|
-
Use
|
|
29
|
-
First clarify the idea, then create PRD, research, architecture,
|
|
27
|
+
Read Harness/SETUP.md. Bootstrap this project as a 0-1 product harness.
|
|
28
|
+
Use Harness/README.md as the router. Keep context small.
|
|
29
|
+
First clarify the idea, then create PRD, research, architecture, Harness/PLAN.md, and the first vertical-slice task.
|
|
30
30
|
```
|
|
31
31
|
|
|
32
32
|
## Required Bootstrap Sequence
|
|
33
33
|
|
|
34
34
|
Claude must follow this order:
|
|
35
35
|
|
|
36
|
-
1. Read `CLAUDE.md`, `MEMORY.md`, `
|
|
37
|
-
2. Ask up to 3 blocking product questions. If not blocked, record assumptions in `
|
|
38
|
-
3. Fill `
|
|
39
|
-
4. Read `
|
|
40
|
-
5. Fill minimum architecture: `
|
|
41
|
-
6. Create the first vertical-slice plan in `
|
|
42
|
-
7. Use `
|
|
43
|
-
8. Fill `
|
|
36
|
+
1. Read `CLAUDE.md`, `Harness/MEMORY.md`, `Harness/README.md`, and `Harness/lifecycle.md`. Load `Harness/memory/*` only when the router or memory trigger applies.
|
|
37
|
+
2. Ask up to 3 blocking product questions. If not blocked, record assumptions in `Harness/PLAN.md`.
|
|
38
|
+
3. Fill `Harness/research/PRD.md` with MVP, non-goals, and acceptance criteria.
|
|
39
|
+
4. Read `Harness/research/README.md`, then fill `Harness/research/research-results.md` with adopted/rejected research choices.
|
|
40
|
+
5. Fill minimum architecture: `Harness/architecture.md` and one port in `Harness/domain/ports.md`.
|
|
41
|
+
6. Create the first vertical-slice plan in `Harness/PLAN.md`.
|
|
42
|
+
7. Use `Harness/subagents.md`, `Harness/context-loading.md`, and `Harness/dispatch.md` when spawning subagents.
|
|
43
|
+
8. Fill `Harness/data-flow.md` or `Harness/state-machines.md` only when the slice changes runtime flow, failure behavior, or state.
|
|
44
44
|
9. Implement only after a failing test or manual verification step is defined.
|
|
45
|
-
10. Run `node scripts/validate-harness.mjs --strict`.
|
|
46
|
-
11. Record final verification and next feedback step in `
|
|
45
|
+
10. Run `node Harness/scripts/validate-harness.mjs --strict`.
|
|
46
|
+
11. Record final verification and next feedback step in `Harness/PLAN.md`. If repeated tool failures, repeated user corrections, or reusable review/debug lessons appeared, record the concise reflection in the relevant `Harness/memory/` file.
|
|
47
47
|
|
|
48
48
|
## Existing Project Bootstrap Sequence
|
|
49
49
|
|
|
50
50
|
When adding this harness to a project that already has source code, docs, CI, or tool configuration, treat the existing project as the source of truth before filling harness docs.
|
|
51
51
|
|
|
52
52
|
1. Scan existing project facts first: `README.md`, package files (`package.json`, `pyproject.toml`, `go.mod`, etc.), test commands, app entry points, CI files, existing docs, and current run/build scripts.
|
|
53
|
-
2. Record discovered facts and open questions in `
|
|
54
|
-
3. Fill `
|
|
53
|
+
2. Record discovered facts and open questions in `Harness/PLAN.md` before changing harness docs.
|
|
54
|
+
3. Fill `Harness/research/PRD.md`, `Harness/research/research-results.md`, `Harness/architecture.md`, and `Harness/domain/ports.md` from observed project facts plus explicit user input.
|
|
55
55
|
4. Existing configuration is project fact. Do not overwrite `CLAUDE.md`, `AGENTS.md`, `.claude/`, `.gitignore`, settings, hooks, package files, CI, docs routers, or workflow docs unless the user explicitly approves that exact overwrite.
|
|
56
|
-
5. When a harness file conflicts with an existing file, preserve the existing file and register any missing harness guidance manually using `
|
|
57
|
-
6. Run `node scripts/validate-harness.mjs` after registration, then run `node scripts/validate-harness.mjs --strict` only after project-fact placeholders have been resolved or intentionally recorded as open.
|
|
56
|
+
5. When a harness file conflicts with an existing file, preserve the existing file and register any missing harness guidance manually using `Harness/extension.md`.
|
|
57
|
+
6. Run `node Harness/scripts/validate-harness.mjs` after registration, then run `node Harness/scripts/validate-harness.mjs --strict` only after project-fact placeholders have been resolved or intentionally recorded as open.
|
|
58
|
+
|
|
59
|
+
### Agent-Link Install Intake
|
|
60
|
+
|
|
61
|
+
When the user installs by pasting the GitHub link into an agent, ask intake questions before editing. Ask only questions that affect writes, architecture, security, or workflow. Ask at most three blocking questions up front, record safe defaults for the rest, and ask follow-ups only when that choice becomes active.
|
|
62
|
+
|
|
63
|
+
| Topic | Ask When | Default If Unanswered |
|
|
64
|
+
| --- | --- | --- |
|
|
65
|
+
| Root agent entry | `CLAUDE.md`, `AGENTS.md`, `.claude/`, or other agent entry files already exist | Preserve files; ask before merging the Harness entry contract |
|
|
66
|
+
| Harness location | `docs/` is already used for GitHub Pages, product docs, or generated docs | Use root `Harness/`; do not write harness docs into `docs/` |
|
|
67
|
+
| README ownership | root `README.md` is a public product page, package docs, or heavily customized | Preserve existing README and propose a minimal Development section |
|
|
68
|
+
| README optimization | existing README is stale, sparse, missing command tables, or the user asks for diagrams/polished docs | Offer `readme-optimizer`; default to append-only Development notes until the user approves a structure pass or full rewrite |
|
|
69
|
+
| Extensions | ECC, Superpowers, custom rules, or stack-specific skills may be useful | Recommend first; install only after user approval |
|
|
70
|
+
| Skills | stack is known and optional skills could improve testing, frontend, backend, review, or browser evidence | Install 1-2 relevant skills only after user approval |
|
|
71
|
+
| CI/CD | CI config exists or the project lacks a test/build gate | Document existing commands first; add CI/CD only after user approval |
|
|
72
|
+
| Verification depth | browser-visible, API, database, auth, payment, or deployment behavior is affected | Require real command evidence; require browser/API evidence when relevant |
|
|
73
|
+
| Memory/privacy | repo contains sensitive domain data, customer data, secrets, or private workflows | Enable memory index only; never record secrets or private data |
|
|
74
|
+
| Branch/worktree | project has uncommitted changes, risky migration, or parallel implementation lanes | Preserve current worktree; propose branch/worktree before broad edits |
|
|
75
|
+
| Package manager/stack | multiple package managers, monorepo apps, or unclear stack boundaries exist | Ask which workspace/app is in scope before writing |
|
|
58
76
|
|
|
59
77
|
### Agent Conflict Resolution Protocol
|
|
60
78
|
|
|
@@ -76,6 +94,8 @@ When `--on-conflict skip` leaves existing files untouched, the agent resolves ea
|
|
|
76
94
|
- Read the existing project file.
|
|
77
95
|
- Read the harness template counterpart.
|
|
78
96
|
- Compare sections and headings. Identify structural sections, registration entries, and required text patterns that exist in the template but are missing from the existing file.
|
|
97
|
+
- If the skipped file is `CLAUDE.md`, tell the user that it is the root agent entry contract. Ask whether they consent to refactor or merge it before editing. Preserve project-specific rules while adding the Harness startup, memory, router, workflow, and subagent orchestration contract.
|
|
98
|
+
- If the skipped file is `AGENTS.md`, tell the user that it is part of the root agent entry contract and ask whether they consent to merge or replace it before editing.
|
|
79
99
|
- Present each gap to the user as a choice:
|
|
80
100
|
- **[Merge]** — Edit the existing file to add only the missing sections. Preserve all existing content, ordering, and formatting.
|
|
81
101
|
- **[Overwrite]** — Replace with the template version. Optionally backup the original first (`--on-conflict backup`).
|
|
@@ -83,7 +103,7 @@ When `--on-conflict skip` leaves existing files untouched, the agent resolves ea
|
|
|
83
103
|
|
|
84
104
|
4. For Merge: use Edit (not Write) to add missing content. Only insert sections, headings, and text that are structurally required. Do not reorder or modify existing content. Do not remove custom project-specific registrations.
|
|
85
105
|
|
|
86
|
-
5. After all merges, run `node scripts/validate-harness.mjs`. Fix any remaining validation errors, then run `node scripts/validate-harness.mjs --strict` only after project-fact placeholders are resolved.
|
|
106
|
+
5. After all merges, run `node Harness/scripts/validate-harness.mjs`. Fix any remaining validation errors, then run `node Harness/scripts/validate-harness.mjs --strict` only after project-fact placeholders are resolved.
|
|
87
107
|
|
|
88
108
|
**File-specific gap checklists:**
|
|
89
109
|
|
|
@@ -91,31 +111,34 @@ The harness validator checks for specific structural invariants. When comparing
|
|
|
91
111
|
|
|
92
112
|
| File | Required check |
|
|
93
113
|
|------|----------------|
|
|
94
|
-
| `CLAUDE.md` | `## 1. Startup` with `
|
|
95
|
-
| `
|
|
114
|
+
| `CLAUDE.md` | Must be merged only after user confirmation when it already exists. Required contract: `## 1. Harness Binding & Startup` with the `Harness/SETUP.md` bootstrap contract line; `## 6. Memory & Self-Learning` section; the tool reflection trigger text (`same tool/use pattern fails 3+ times`); the user correction trigger text (`user corrects the same assumption/pattern 2+ times`); `Never bulk-read Harness/` in Startup |
|
|
115
|
+
| `AGENTS.md` | Root agent entry points to `CLAUDE.md` and `Harness/README.md`; for existing projects, merge only after explicit user consent |
|
|
116
|
+
| `README.md` | Existing README is project-owned. Preserve by default; ask whether to append only Development notes or run `readme-optimizer` for a structure pass with tables/diagrams before broad edits |
|
|
117
|
+
| `Harness/MEMORY.md` | All 9 common agents registered under `## Agents`; all common harness skills registered under `## Skills`; all 3 `Harness/memory/` files registered under `## Memory Folder`; `Harness/memory/` folder usage guidance; `Project Resource Index` in title |
|
|
96
118
|
| `.claude/rules/ecc/common.md` | `## Context` section with the durable communication invariant (`project files are the only durable communication channel`); `## Memory` section with three reflection file entries; `## Security` section |
|
|
97
|
-
| `
|
|
98
|
-
| `
|
|
99
|
-
| `
|
|
100
|
-
| `
|
|
101
|
-
| `
|
|
102
|
-
| `
|
|
103
|
-
| `
|
|
104
|
-
| `
|
|
105
|
-
| `
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
119
|
+
| `Harness/README.md` | `## Keyword Routing` heading; `## Load By Task` table with at minimum the rows: "Adding harness to existing project", "Need implementation plan", "Need parallel agents", "Need subagents", "Need durable memory or reflection"; `## Doc Map` with `memory/` and `subagents.md` entries; the durable communication invariant text; `Harness/README.md is the primary router` |
|
|
120
|
+
| `Harness/extension.md` | `## Non-Invasive Extension Rules` section with the "Preserve existing" rule; `## Agent Contract` section; `## Registration` section |
|
|
121
|
+
| `Harness/dispatch.md` | The durable communication invariant; common agent entries for all 9 agents; `## Handoff Format` heading |
|
|
122
|
+
| `Harness/context-loading.md` | The durable communication invariant; `Harness/README.md is the primary router`; all 10 subagent context packs (Explorer Pass, Planner, Researcher, Docs Researcher, Architect, Test Writer, Implementer, Reviewer, Debugger, Verifier) |
|
|
123
|
+
| `Harness/subagents.md` | `## Source Attribution`; `Controller Role`; `Efficiency Ladder`; `Review Gates`; source markers for `npx skills find`, `dispatching-parallel-agents`, and `subagent-driven-development` |
|
|
124
|
+
| `Harness/PLAN.md` | `## Current Goal`, `## Phase`, `## Success Criteria`, `## Loaded Context`, `## Tasks`, `## Parallel Dispatch`, `## Subagent Synthesis`, `## Verification` headings |
|
|
125
|
+
| `Harness/SETUP.md` | Only meaningful for fresh projects. If the project has its own onboarding docs, skip this file entirely (it is temporary). If kept, ensure the "Existing Project Bootstrap Sequence" is present. |
|
|
126
|
+
| `Harness/workflows/browser-e2e.md` (if installed as optional) | `data-testid`, `accessible labels/roles`, and `inputs, buttons, filters, rows, empty/error/loading states` requirement |
|
|
127
|
+
| `Harness/workflows/ts-react-frontend.md` (if installed as optional) | Same UI selector contract as above |
|
|
128
|
+
| `Harness/features/_template.md` | `## 1.5 UI Automation Hooks` with `data-testid` table |
|
|
129
|
+
|
|
130
|
+
**Files that do NOT need manual merge when the path does not already exist (auto-created by harness):**
|
|
131
|
+
|
|
132
|
+
- `Harness/memory/tool-usage-reflections.md`, `Harness/memory/user-corrections-preferences.md`, `Harness/memory/agent-lessons-patterns.md` — these are new empty files
|
|
110
133
|
- `.claude/agents/*.md` — all 9 common agents
|
|
111
|
-
- `.claude/skills/harness-*/SKILL.md` —
|
|
134
|
+
- `.claude/skills/harness-*/SKILL.md`, `.claude/skills/wf-mode/SKILL.md`, and `.claude/skills/subagent-orchestrator/SKILL.md` — core harness skills, WF mode, and subagent orchestration
|
|
112
135
|
- `.claude/rules/ecc/common.md` — universal rules (unless the project has custom rules in this file)
|
|
113
136
|
- `.claude/settings.json` — harness settings
|
|
114
|
-
- `
|
|
115
|
-
- `
|
|
116
|
-
- `
|
|
117
|
-
- `AGENTS.md` — agent registry
|
|
118
|
-
- `scripts/validate-harness.mjs` and `tests/.gitkeep` — tooling
|
|
137
|
+
- `Harness/lifecycle.md`, `Harness/subagents.md`, `Harness/agent-workflow.md`, `Harness/architecture.md`, `Harness/data-flow.md`, `Harness/state-machines.md` — harness runtime docs
|
|
138
|
+
- `Harness/research/*.md` — research protocol and templates
|
|
139
|
+
- `Harness/domain/ports.md` — port contract template
|
|
140
|
+
- `AGENTS.md` — agent registry; if it already exists, ask for user consent before merging or replacing it
|
|
141
|
+
- `Harness/scripts/validate-harness.mjs` and `tests/.gitkeep` — tooling
|
|
119
142
|
|
|
120
143
|
Optional workflow examples:
|
|
121
144
|
|
|
@@ -126,9 +149,9 @@ npx create-harness-vibe-coding@latest my-app ./my-app -y --preset web-app
|
|
|
126
149
|
|
|
127
150
|
### Template Fill Guide
|
|
128
151
|
|
|
129
|
-
Each template doc contains `{{PLACEHOLDER}}` markers. Below is what every placeholder expects. Replace all markers in the doc before moving to the next doc. If a section does not apply yet, leave the `{{...}}` but record why in `
|
|
152
|
+
Each template doc contains `{{PLACEHOLDER}}` markers. Below is what every placeholder expects. Replace all markers in the doc before moving to the next doc. If a section does not apply yet, leave the `{{...}}` but record why in `Harness/PLAN.md`.
|
|
130
153
|
|
|
131
|
-
**`
|
|
154
|
+
**`Harness/research/PRD.md`** — Product scope. Fill with product facts from user input, not guesses:
|
|
132
155
|
- `{{WHY_THIS_PROJECT_EXISTS}}`: one-sentence motivation
|
|
133
156
|
- `{{MUST_1..3}}`: concrete, testable MVP items (checkbox form)
|
|
134
157
|
- `{{NON_GOAL_1..3}}`: explicitly out-of-scope items
|
|
@@ -136,25 +159,25 @@ Each template doc contains `{{PLACEHOLDER}}` markers. Below is what every placeh
|
|
|
136
159
|
- `{{ACCEPTANCE_1..3}}`: verifiable project-level acceptance criteria
|
|
137
160
|
- `{{DIMENSION}}`, `{{TARGET}}`, `{{MEASUREMENT}}`: non-functional requirements (perf, security, etc.)
|
|
138
161
|
|
|
139
|
-
**`
|
|
140
|
-
- Use `
|
|
162
|
+
**`Harness/research/research-results.md`** — Tech decisions. Research before filling:
|
|
163
|
+
- Use `Harness/research/README.md` as the research protocol.
|
|
141
164
|
- `{{CANDIDATE_1..3}}`: each candidate (framework, library, architecture style) with Purpose/Strength/Weakness/Decision/Link.
|
|
142
165
|
- `{{Architecture Style}}`: the chosen architectural style (e.g., Hexagonal, Modular Monolith).
|
|
143
166
|
- `{{CONSTRAINT_1..3}}`: hard technical constraints derived from research.
|
|
144
167
|
- `{{ALTERNATIVE_1..2}}`: rejected candidates worth watching for future.
|
|
145
168
|
|
|
146
|
-
**`
|
|
169
|
+
**`Harness/architecture.md`** — Layer structure. Derive from research-results:
|
|
147
170
|
- Fill the ASCII layer diagram with actual layer names. Do NOT add layers without a proven need.
|
|
148
171
|
- `2.1–2.5`: describe each harness core component (Runner, Permission Policy, Event Bus, State Store, Tool Registry) in project-specific terms.
|
|
149
172
|
- `3. Architectural Constraints`: add project-specific non-negotiables. Keep the domain/harness purity rules.
|
|
150
173
|
|
|
151
|
-
**`
|
|
174
|
+
**`Harness/domain/ports.md`** — Cross-layer contracts. One driving port + one driven port from the first slice:
|
|
152
175
|
- `{{INBOUND_PORT_1}}`: the first inbound port (e.g., "CreateOrderPort").
|
|
153
176
|
- `{{OUTBOUND_PORT_1}}`: the first outbound port (e.g., "OrderRepository").
|
|
154
177
|
- For each port: fill Purpose, Preconditions, Postconditions, Error Semantics, Idempotency.
|
|
155
178
|
- Leave remaining rows as `{{...}}` until more slices add ports.
|
|
156
179
|
|
|
157
|
-
**`
|
|
180
|
+
**`Harness/PLAN.md`** — Active execution state. Update continuously:
|
|
158
181
|
- `## Current Goal`: one sentence, what this iteration achieves.
|
|
159
182
|
- `## Phase`: current lifecycle phase (Idea/Research/PRD/Architecture/Plan/Build/Verify/Feedback).
|
|
160
183
|
- `## Success Criteria`: verifiable outcomes for this iteration.
|
|
@@ -162,18 +185,18 @@ Each template doc contains `{{PLACEHOLDER}}` markers. Below is what every placeh
|
|
|
162
185
|
- `## Parallel Dispatch`: only when spawning subagents — fill agent roles, read/write boundaries.
|
|
163
186
|
- `## Verification`: record test results, review findings, docs sync checklist.
|
|
164
187
|
|
|
165
|
-
**`memory/`** — Durable self-evolution notes:
|
|
166
|
-
- `memory/tool-usage-reflections.md`: repeated tool failures, better command patterns, environment-specific fixes.
|
|
167
|
-
- `memory/user-corrections-preferences.md`: repeated user corrections, durable preferences, common-sense course corrections.
|
|
168
|
-
- `memory/agent-lessons-patterns.md`: reusable lessons from review, debugging, validation, and handoff loops.
|
|
188
|
+
**`Harness/memory/`** — Durable self-evolution notes:
|
|
189
|
+
- `Harness/memory/tool-usage-reflections.md`: repeated tool failures, better command patterns, environment-specific fixes.
|
|
190
|
+
- `Harness/memory/user-corrections-preferences.md`: repeated user corrections, durable preferences, common-sense course corrections.
|
|
191
|
+
- `Harness/memory/agent-lessons-patterns.md`: reusable lessons from review, debugging, validation, and handoff loops.
|
|
169
192
|
|
|
170
|
-
**`
|
|
193
|
+
**`Harness/data-flow.md`** — Runtime event paths (only when first slice has async/multi-step flow):
|
|
171
194
|
- `{{EVENT_1}}`: the first event type with producer, consumers, payload fields, delivery semantics.
|
|
172
195
|
- Happy Path: fill the Mermaid sequence diagram with actual ports and actions.
|
|
173
196
|
- Failure Paths: for each failure point, document trigger, system behavior, event, caller perception, recovery.
|
|
174
197
|
- If the first slice is synchronous and stateless, leave this doc as `{{...}}` and note in PLAN.md.
|
|
175
198
|
|
|
176
|
-
**`
|
|
199
|
+
**`Harness/state-machines.md`** — State transitions (only when first slice has stateful entities):
|
|
177
200
|
- Define states, transitions, guards, and illegal transitions for the first stateful entity.
|
|
178
201
|
- If no stateful entity exists in the first slice, leave as `{{...}}` and note in PLAN.md.
|
|
179
202
|
|
|
@@ -181,11 +204,11 @@ Each template doc contains `{{PLACEHOLDER}}` markers. Below is what every placeh
|
|
|
181
204
|
- Replace `{{projectName}}` with the actual project name immediately.
|
|
182
205
|
- Never invent content for a `{{...}}` marker. If you lack facts, ask the user or leave the marker.
|
|
183
206
|
- `<!-- HTML comments -->` in templates are instructions to you. Read them. Delete them after filling the section.
|
|
184
|
-
- After filling all templates in a phase, run `node scripts/validate-harness.mjs --strict`. Any remaining `{{...}}` in project-fact files will be flagged.
|
|
207
|
+
- After filling all templates in a phase, run `node Harness/scripts/validate-harness.mjs --strict`. Any remaining `{{...}}` in project-fact files will be flagged.
|
|
185
208
|
|
|
186
209
|
## Architecture Research (Dynamic)
|
|
187
210
|
|
|
188
|
-
Do not guess the architecture. Use `
|
|
211
|
+
Do not guess the architecture. Use `Harness/research/README.md` as the protocol and the high-star repos below as seed references. Search within them; do not read them whole.
|
|
189
212
|
|
|
190
213
|
### Seed Repositories (High-Star, High-Trust)
|
|
191
214
|
|
|
@@ -202,12 +225,12 @@ Do not guess the architecture. Use `docs/research/README.md` as the protocol and
|
|
|
202
225
|
|
|
203
226
|
After research, fill these docs in order:
|
|
204
227
|
|
|
205
|
-
1. `
|
|
206
|
-
2. `
|
|
207
|
-
3. `
|
|
208
|
-
4. `
|
|
228
|
+
1. `Harness/research/research-results.md` — Record candidate architectures with Adopt / Reject / Watch decisions. Use the `## Candidate References` template.
|
|
229
|
+
2. `Harness/architecture.md` — Fill the layering diagram, core components, and constraints. Do NOT add speculative layers. One layer per proven need.
|
|
230
|
+
3. `Harness/domain/ports.md` — Define ONE driving port and ONE driven port from the first vertical slice. More ports come with more slices.
|
|
231
|
+
4. `Harness/data-flow.md` — Fill the happy path for the first slice only. Add failure paths when they differ from the happy path.
|
|
209
232
|
|
|
210
|
-
**Constraint**: If the research does not give you enough confidence to fill a section, leave the `{{...}}` placeholder and record the open question in `
|
|
233
|
+
**Constraint**: If the research does not give you enough confidence to fill a section, leave the `{{...}}` placeholder and record the open question in `Harness/PLAN.md`. The strict validator will catch it.
|
|
211
234
|
|
|
212
235
|
## User Confirmation Protocol (Non-Negotiable)
|
|
213
236
|
|
|
@@ -218,7 +241,7 @@ When user intent is unclear or ambiguous:
|
|
|
218
241
|
- **Maximum 3 blocking questions per decision point.** Ask the highest-impact questions first.
|
|
219
242
|
- **Do not act on assumptions that affect architecture, scope, stack, or user-facing behavior.**
|
|
220
243
|
- **You must have ≥95% confidence before writing implementation code.** If below that threshold, stop and ask.
|
|
221
|
-
- **Record every assumption explicitly** in `
|
|
244
|
+
- **Record every assumption explicitly** in `Harness/PLAN.md` so the user can correct it later.
|
|
222
245
|
- **Silent picks are forbidden.** If two valid approaches exist and you cannot decide with high confidence, present both to the user with trade-offs.
|
|
223
246
|
|
|
224
247
|
False confidence is worse than a question. If you catch yourself thinking "this is probably what they want," stop and ask.
|
|
@@ -244,20 +267,20 @@ npx skills search "react testing"
|
|
|
244
267
|
npx skills search "python api"
|
|
245
268
|
```
|
|
246
269
|
|
|
247
|
-
**Manual discovery**: search GitHub and npm directly using patterns from `
|
|
270
|
+
**Manual discovery**: search GitHub and npm directly using patterns from `Harness/research/README.md#Architecture Decision References`.
|
|
248
271
|
|
|
249
272
|
**Priority order**:
|
|
250
273
|
1. `/find-skills` first — fastest discovery, respects your tool environment.
|
|
251
274
|
2. Superpowers registry — broad community coverage.
|
|
252
275
|
3. GitHub search — when the first two miss niche domains.
|
|
253
276
|
|
|
254
|
-
**What to install**: after finding skills, add them to `.claude/skills/<name>/SKILL.md`. Follow `
|
|
277
|
+
**What to install**: after finding skills, add them to `.claude/skills/<name>/SKILL.md`. Follow `Harness/extension.md` for compatibility. Start with 1-2 skills per stack area; more is not better.
|
|
255
278
|
|
|
256
279
|
This scaffold includes built-in harness skills (`.claude/skills/harness-*`). Keep those. Add stack-specific ones alongside them.
|
|
257
280
|
|
|
258
281
|
## Optional Agent Assets
|
|
259
282
|
|
|
260
|
-
After the product shape is known, Claude may also install or copy stack-specific agents, rules, and hooks into `.claude/`. Follow `
|
|
283
|
+
After the product shape is known, Claude may also install or copy stack-specific agents, rules, and hooks into `.claude/`. Follow `Harness/extension.md` for every added asset.
|
|
261
284
|
|
|
262
285
|
Examples:
|
|
263
286
|
|
|
@@ -271,14 +294,14 @@ This is a Go service. Add API, security, and integration-test agents.
|
|
|
271
294
|
|
|
272
295
|
This file is designed to be orphaned. When all configuration is complete:
|
|
273
296
|
|
|
274
|
-
1. Open `CLAUDE.md`. Delete the line:
|
|
297
|
+
1. Open `CLAUDE.md`. Delete the setup bootstrap line that starts with: ``If `Harness/SETUP.md` exists, follow it before normal project work``.
|
|
275
298
|
2. Delete this file.
|
|
276
299
|
|
|
277
300
|
```bash
|
|
278
|
-
rm SETUP.md
|
|
301
|
+
rm Harness/SETUP.md
|
|
279
302
|
```
|
|
280
303
|
|
|
281
|
-
After both steps, `SETUP.md` is fully isolated — no file references it, no trace remains. You are free to delete it at any time. It is a bootstrap scaffold, not a permanent fixture.
|
|
304
|
+
After both steps, `Harness/SETUP.md` is fully isolated — no file references it, no trace remains. You are free to delete it at any time. It is a bootstrap scaffold, not a permanent fixture.
|
|
282
305
|
|
|
283
306
|
---
|
|
284
307
|
|
|
@@ -298,7 +321,7 @@ npx create-harness-vibe-coding@latest my-agent-project ./my-agent-project -y
|
|
|
298
321
|
|
|
299
322
|
After scaffolding, bootstrap the harness yourself:
|
|
300
323
|
|
|
301
|
-
1. Read `CLAUDE.md`, `MEMORY.md`, and `
|
|
324
|
+
1. Read `CLAUDE.md`, `Harness/MEMORY.md`, and `Harness/README.md`.
|
|
302
325
|
2. Follow the Required Bootstrap Sequence above.
|
|
303
|
-
3. Run `node scripts/validate-harness.mjs --strict` when done.
|
|
304
|
-
4. Delete `SETUP.md`.
|
|
326
|
+
3. Run `node Harness/scripts/validate-harness.mjs --strict` when done.
|
|
327
|
+
4. Delete `Harness/SETUP.md`.
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
# {{projectName}} - Harness Router
|
|
2
2
|
|
|
3
|
-
Purpose: route humans and agents to the smallest useful context.
|
|
3
|
+
Purpose: route humans and agents to the smallest useful context. `Harness/README.md` is the primary router.
|
|
4
4
|
|
|
5
|
-
Default load: `CLAUDE.md`, `MEMORY.md`, this file, and `
|
|
5
|
+
Default load: `CLAUDE.md`, `Harness/MEMORY.md`, this file, and `Harness/PLAN.md` when work is active. Do not read the whole `Harness/` tree.
|
|
6
6
|
|
|
7
7
|
## 0-1 Flow
|
|
8
8
|
|
|
@@ -10,21 +10,26 @@ Default load: `CLAUDE.md`, `MEMORY.md`, this file, and `docs/harness/PLAN.md` wh
|
|
|
10
10
|
Idea -> Research -> PRD -> Architecture -> Plan -> Build -> Verify -> Feedback
|
|
11
11
|
```
|
|
12
12
|
|
|
13
|
-
For the full phase contract, load [
|
|
13
|
+
For the full phase contract, load [lifecycle.md](lifecycle.md).
|
|
14
14
|
|
|
15
15
|
## Development Contract
|
|
16
16
|
|
|
17
17
|
- This file is a router, not a full spec.
|
|
18
18
|
- If the task does not clearly match a row below, search by keywords before loading more docs.
|
|
19
19
|
- project files are the only durable communication channel; chat/subagent transcript state is non-authoritative.
|
|
20
|
-
- Important assumptions, decisions, blockers, evidence, and handoffs must be written to [
|
|
20
|
+
- Important assumptions, decisions, blockers, evidence, and handoffs must be written to [PLAN.md](PLAN.md), the current feature doc, `Harness/MEMORY.md`, or `Harness/memory/*` as appropriate.
|
|
21
|
+
- Build commands, git conventions, and release notes belong in root `README.md`, not `CLAUDE.md`.
|
|
22
|
+
- README rewrites are optional project-doc work. Use `readme-optimizer` and preserve existing public docs unless the user approves a broader restructure.
|
|
23
|
+
- Code architecture belongs in [architecture.md](architecture.md) or the current feature doc, not `CLAUDE.md`.
|
|
21
24
|
- Core rules live in `CLAUDE.md` and `.claude/rules/ecc/common.md`.
|
|
22
|
-
-
|
|
23
|
-
-
|
|
24
|
-
-
|
|
25
|
-
-
|
|
26
|
-
-
|
|
27
|
-
-
|
|
25
|
+
- WF mode rules live in [WF.md](WF.md).
|
|
26
|
+
- Phase rules live in [lifecycle.md](lifecycle.md).
|
|
27
|
+
- Build, review, test, and subagent rules live in [agent-workflow.md](agent-workflow.md).
|
|
28
|
+
- Parallel dispatch rules live in [dispatch.md](dispatch.md).
|
|
29
|
+
- Subagent orchestration methodology lives in [subagents.md](subagents.md).
|
|
30
|
+
- Extension rules live in [extension.md](extension.md).
|
|
31
|
+
- Context-loading rules live in [context-loading.md](context-loading.md).
|
|
32
|
+
- Progress lives in [PLAN.md](PLAN.md) and the current feature doc.
|
|
28
33
|
|
|
29
34
|
## Keyword Routing
|
|
30
35
|
|
|
@@ -34,11 +39,11 @@ Use this only when the task is ambiguous or the matching row is unclear.
|
|
|
34
39
|
2. Search the project docs first:
|
|
35
40
|
|
|
36
41
|
```bash
|
|
37
|
-
rg -n "keyword1|keyword2|keyword3" CLAUDE.md
|
|
42
|
+
rg -n "keyword1|keyword2|keyword3" CLAUDE.md README.md Harness
|
|
38
43
|
```
|
|
39
44
|
|
|
40
45
|
3. Load only the top matching doc or the smallest matching doc pair.
|
|
41
|
-
4. If keyword search conflicts with the table below, follow the table and record the assumption in `
|
|
46
|
+
4. If keyword search conflicts with the table below, follow the table and record the assumption in `Harness/PLAN.md`.
|
|
42
47
|
|
|
43
48
|
Keywords are retrieval hints, not project facts.
|
|
44
49
|
|
|
@@ -46,64 +51,76 @@ Keywords are retrieval hints, not project facts.
|
|
|
46
51
|
|
|
47
52
|
Load the matching row only. Add adjacent docs only when the loaded doc directly names them.
|
|
48
53
|
|
|
54
|
+
Routing priority: if a request is long, difficult, uncertain, repeated-failure, migration, architecture-heavy, browser-visible, or broad multi-agent implementation work, choose the WF row first. `wf-mode` may then delegate subagent coordination to `subagent-orchestrator`.
|
|
55
|
+
|
|
49
56
|
| When to Read | Keywords | Load | Output |
|
|
50
57
|
| --- | --- | --- | --- |
|
|
51
|
-
| Raw idea or vague product request | idea, vague, clarify, goal, non-goal, lifecycle | [
|
|
58
|
+
| Raw idea or vague product request | idea, vague, clarify, goal, non-goal, lifecycle | [lifecycle.md](lifecycle.md), [research/PRD.md](research/PRD.md) | clarified goal, non-goals, first questions |
|
|
52
59
|
| 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 |
|
|
53
60
|
| Need MVP/spec | PRD, MVP, scope, requirement, acceptance, non-goal | [research/PRD.md](research/PRD.md) | one-page PRD with verifiable acceptance criteria |
|
|
54
|
-
| Need architecture or boundaries | architecture, boundary, layer, domain, port, adapter, dependency | [
|
|
55
|
-
|
|
|
56
|
-
|
|
|
57
|
-
|
|
|
58
|
-
|
|
|
59
|
-
|
|
|
60
|
-
|
|
|
61
|
-
|
|
|
62
|
-
| Need
|
|
63
|
-
|
|
|
64
|
-
|
|
|
65
|
-
|
|
|
66
|
-
|
|
|
61
|
+
| Need architecture or boundaries | architecture, boundary, layer, domain, port, adapter, dependency | [architecture.md](architecture.md), [domain/ports.md](domain/ports.md) | layer map, ports, constraints |
|
|
62
|
+
| Need WF mode | wf, /wf, workflow mode, long task, difficult, stuck, repeated failure | [WF.md](WF.md), [PLAN.md](PLAN.md) | exploration plan, second plan, heartbeat, recovery loop; load subagent docs only when needed |
|
|
63
|
+
| Adding harness to existing project | existing project, onboarding, migrate, bootstrap, preserve, conflict | [extension.md](extension.md), [PLAN.md](PLAN.md), root `README.md` and package/CI files | discovered project facts, preserved config, manual registration plan |
|
|
64
|
+
| README optimization | README, docs, quickstart, install docs, architecture diagram, command table, documentation polish | root `README.md`, `.claude/skills/readme-optimizer/SKILL.md`, [PLAN.md](PLAN.md), [architecture.md](architecture.md) as needed | approved README mode, preserved sections, proposed diff plan |
|
|
65
|
+
| Need implementation plan | plan, task, write set, verify, milestone, progress | [PLAN.md](PLAN.md), [agent-workflow.md](agent-workflow.md) | tasks, write set, verification commands |
|
|
66
|
+
| Need parallel agents | parallel, dispatch, handoff, write set, dependency, status | [subagents.md](subagents.md), [dispatch.md](dispatch.md), [context-loading.md](context-loading.md), [PLAN.md](PLAN.md) | orchestration plan, dispatch table, agent roles, read/write sets |
|
|
67
|
+
| Adding stack-specific agents/skills | extension, agent, skill, rule, hook, stack-specific, compatibility | [extension.md](extension.md), [dispatch.md](dispatch.md) | compatible agents, skills, rules, hooks |
|
|
68
|
+
| Optional workflow installed | workflow, optional, browser-e2e, ui-ux-review, github-pr-review, python-backend, ts-react-frontend | matching `workflows/*.md`, [extension.md](extension.md) | workflow-specific evidence, commands, fallback path |
|
|
69
|
+
| Need durable memory or reflection | memory, remember, preference, correction, tool failure, lesson, reflection | [MEMORY.md](MEMORY.md), `Harness/memory/tool-usage-reflections.md`, `Harness/memory/user-corrections-preferences.md`, `Harness/memory/agent-lessons-patterns.md` | concise newest-first memory entry or no-op rationale |
|
|
70
|
+
| Need subagents | subagent, role pack, context, inject, return format, orchestrator | [subagents.md](subagents.md), [context-loading.md](context-loading.md), [dispatch.md](dispatch.md) | controller plan, role-specific context pack, dispatch pack |
|
|
71
|
+
| Need feature work | feature, implementation, TDD, test, review, closeout | [features/_template.md](features/_template.md), [agent-workflow.md](agent-workflow.md) | feature doc, tests, implementation loop |
|
|
72
|
+
| Flow or failure behavior changes | data flow, event, failure, retry, recovery, caller behavior | [data-flow.md](data-flow.md) | happy path, failure path, caller behavior |
|
|
73
|
+
| Stateful behavior changes | state, transition, guard, illegal transition, state machine | [state-machines.md](state-machines.md) | states, transitions, illegal transitions |
|
|
74
|
+
| Review or release check | review, release, finding, risk, evidence, verification | [agent-workflow.md](agent-workflow.md), current feature doc | findings, verification evidence |
|
|
75
|
+
| Harness readiness check | validate, readiness, placeholder, missing file, release gate | `Harness/scripts/validate-harness.mjs`, `Harness/scripts/validate-harness.mjs --strict` | missing files and unresolved project placeholders |
|
|
67
76
|
|
|
68
77
|
## Gates
|
|
69
78
|
|
|
70
79
|
- Move phases in order unless the user asks for a fast lane.
|
|
80
|
+
- Use `/wf` when a task is long, difficult, uncertain, multi-file, or repeatedly failing.
|
|
71
81
|
- Do not code before the PRD has MVP, non-goals, and acceptance criteria.
|
|
72
82
|
- Do not cross a layer boundary without reading `domain/ports.md` and updating architecture or ports.
|
|
73
|
-
- Before adding failure paths, read `
|
|
74
|
-
- Before modifying stateful components, read `
|
|
75
|
-
- Unsure whether to open a feature doc? Read `
|
|
83
|
+
- Before adding failure paths, read `data-flow.md`.
|
|
84
|
+
- Before modifying stateful components, read `state-machines.md`.
|
|
85
|
+
- Unsure whether to open a feature doc? Read `agent-workflow.md` Section 1.
|
|
76
86
|
- Do not spawn a subagent without a role, read boundary, write boundary, and return contract.
|
|
77
87
|
- Do not run writing agents in parallel unless write sets are disjoint.
|
|
78
|
-
- Before coordinating multiple agents, fill `
|
|
79
|
-
-
|
|
88
|
+
- Before coordinating multiple agents, fill `PLAN.md#Parallel Dispatch` and follow `subagents.md` plus `dispatch.md`; if the work also matches WF triggers, enter WF mode first.
|
|
89
|
+
- In WF mode, update `PLAN.md#Heartbeat` before long commands, after failures, and at closeout.
|
|
90
|
+
- Do not add stack-specific agents or skills without following `extension.md`.
|
|
80
91
|
- Do not close work without tests or recorded manual verification.
|
|
81
|
-
- Do not mark work `Verified` until evidence is recorded in `
|
|
82
|
-
- Run `node scripts/validate-harness.mjs` for scaffold structure; run `node scripts/validate-harness.mjs --strict` after bootstrap and before release.
|
|
92
|
+
- Do not mark work `Verified` until evidence is recorded in `PLAN.md` or the feature doc.
|
|
93
|
+
- Run `node Harness/scripts/validate-harness.mjs` for scaffold structure; run `node Harness/scripts/validate-harness.mjs --strict` after bootstrap and before release.
|
|
83
94
|
- If a doc still has `{{...}}`, treat that section as a template, not project fact.
|
|
84
95
|
|
|
85
96
|
## Doc Map
|
|
86
97
|
|
|
87
98
|
```text
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
99
|
+
Harness/README.md router only
|
|
100
|
+
Harness/MEMORY.md resource index
|
|
101
|
+
Harness/PLAN.md active execution plan and heartbeat
|
|
102
|
+
Harness/WF.md long-task workflow and recovery loop
|
|
103
|
+
Harness/lifecycle.md 0-1 product flow
|
|
104
|
+
Harness/subagents.md controller-led subagent orchestration
|
|
105
|
+
Harness/context-loading.md dynamic loading and subagent packs
|
|
106
|
+
Harness/dispatch.md lightweight parallel dispatch protocol
|
|
107
|
+
Harness/extension.md stack-specific asset contract
|
|
108
|
+
Harness/agent-workflow.md build/review/test loop
|
|
109
|
+
Harness/architecture.md layer boundaries
|
|
110
|
+
Harness/data-flow.md runtime/failure paths
|
|
111
|
+
Harness/state-machines.md state transitions
|
|
112
|
+
Harness/domain/ports.md cross-layer contracts
|
|
113
|
+
Harness/features/_template.md feature work packet
|
|
114
|
+
Harness/research/README.md research protocol
|
|
115
|
+
Harness/research/PRD.md product scope
|
|
116
|
+
Harness/research/research-results.md research results
|
|
117
|
+
Harness/workflows/*.md optional workflow evidence rules
|
|
118
|
+
Harness/memory/tool-usage-reflections.md repeated tool failures and better command patterns
|
|
119
|
+
Harness/memory/user-corrections-preferences.md durable user corrections and preferences
|
|
120
|
+
Harness/memory/agent-lessons-patterns.md reusable review/debug lessons
|
|
121
|
+
Harness/scripts/validate-harness.mjs lightweight harness gate
|
|
122
|
+
.claude/agents/* built-in common agents
|
|
123
|
+
.claude/skills/* skill-style dynamic loaders
|
|
124
|
+
.claude/skills/readme-optimizer/SKILL.md README preservation and optional structure pass
|
|
125
|
+
.claude/commands/wf.md slash command bridge into wf-mode
|
|
109
126
|
```
|
|
@@ -70,4 +70,4 @@ Fill in each port using the format below:
|
|
|
70
70
|
|
|
71
71
|
---
|
|
72
72
|
|
|
73
|
-
> **Note**: The current ports.md is a template. Replace `{{...}}` placeholders with your project's domain details. Refer to `
|
|
73
|
+
> **Note**: The current ports.md is a template. Replace `{{...}}` placeholders with your project's domain details. Refer to `Harness/data-flow.md` to understand how ports are orchestrated.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# {{FEATURE_NAME}}
|
|
2
2
|
|
|
3
|
-
> **When to use**: Every PRD scope item in `research/PRD.md` Section 2 must have a feature doc — either a new one from this template, or an iteration on an existing one. Do not code a PRD scope item without a corresponding features doc.
|
|
3
|
+
> **When to use**: Every PRD scope item in `Harness/research/PRD.md` Section 2 must have a feature doc — either a new one from this template, or an iteration on an existing one. Do not code a PRD scope item without a corresponding features doc.
|
|
4
4
|
>
|
|
5
5
|
> **New vs iterate**: If the scope item has ≥85% overlap with an existing feature doc, iterate the existing doc (bump `Version`, add a `## Changelog` entry). If overlap is below 85%, create a new file from this template. When in doubt, ask the user.
|
|
6
6
|
|
|
@@ -52,10 +52,10 @@ For TS/React or browser workflows, define required stable accessible labels/role
|
|
|
52
52
|
|
|
53
53
|
| Area | Impacted? | Notes |
|
|
54
54
|
| --- | --- | --- |
|
|
55
|
-
| `
|
|
56
|
-
| `domain/ports.md` | {{YES_NO}} | {{NOTE}} |
|
|
57
|
-
| `
|
|
58
|
-
| `
|
|
55
|
+
| `Harness/architecture.md` | {{YES_NO}} | {{NOTE}} |
|
|
56
|
+
| `Harness/domain/ports.md` | {{YES_NO}} | {{NOTE}} |
|
|
57
|
+
| `Harness/data-flow.md` | {{YES_NO}} | {{NOTE}} |
|
|
58
|
+
| `Harness/state-machines.md` | {{YES_NO}} | {{NOTE}} |
|
|
59
59
|
| tests | {{YES_NO}} | {{NOTE}} |
|
|
60
60
|
|
|
61
61
|
### 2.2 Allowed Write Set
|
|
@@ -132,11 +132,11 @@ Estimate the context budget for this feature. If the main agent would need to re
|
|
|
132
132
|
|
|
133
133
|
### 4.3 Docs Sync
|
|
134
134
|
|
|
135
|
-
- [ ] `
|
|
136
|
-
- [ ] `domain/ports.md`
|
|
137
|
-
- [ ] `
|
|
138
|
-
- [ ] `
|
|
139
|
-
- [ ] `research/research-results.md`
|
|
135
|
+
- [ ] `Harness/architecture.md`
|
|
136
|
+
- [ ] `Harness/domain/ports.md`
|
|
137
|
+
- [ ] `Harness/data-flow.md`
|
|
138
|
+
- [ ] `Harness/state-machines.md`
|
|
139
|
+
- [ ] `Harness/research/research-results.md`
|
|
140
140
|
- [ ] Not needed because {{REASON}}
|
|
141
141
|
|
|
142
142
|
### 4.4 Decision Log
|