create-harness-vibe-coding 0.8.8 → 0.8.9
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-CN.md +7 -1
- package/README.md +21 -2
- package/docs/images/harness-icon.png +0 -0
- package/package.json +2 -1
- package/src/generator.js +36 -0
- package/src/index.js +72 -4
- package/templates/common/.claude/agents/architect.md +31 -31
- package/templates/common/.claude/agents/codebase-explorer.md +45 -0
- package/templates/common/.claude/agents/docs-researcher.md +41 -41
- package/templates/common/.claude/agents/memory-master.md +26 -8
- package/templates/common/.claude/agents/reviewer.md +34 -34
- package/templates/common/.claude/agents/task-scribe.md +70 -0
- package/templates/common/.claude/commands/wf-help.md +8 -4
- package/templates/common/.claude/commands/wf-update.md +24 -0
- package/templates/common/.claude/rules/ecc/common.md +15 -2
- package/templates/common/.claude/settings.json +13 -0
- package/templates/common/.claude/skills/subagent-orchestrator/SKILL.md +8 -4
- package/templates/common/.claude/skills/wf/SKILL.md +15 -8
- package/templates/common/.claude/skills/wf-auto/SKILL.md +3 -2
- package/templates/common/.claude/skills/wf-learn/SKILL.md +9 -2
- package/templates/common/.claude/skills/wf-max/SKILL.md +23 -5
- package/templates/common/.claude/skills/wf-update/SKILL.md +15 -2
- package/templates/common/.codex/hooks.json +17 -0
- package/templates/common/.harness-version +89 -44
- package/templates/common/.opencode/agents/architect.md +24 -24
- package/templates/common/.opencode/agents/codebase-explorer.md +45 -0
- package/templates/common/.opencode/agents/docs-researcher.md +34 -34
- package/templates/common/.opencode/agents/memory-master.md +26 -8
- package/templates/common/.opencode/agents/reviewer.md +27 -27
- package/templates/common/.opencode/agents/task-scribe.md +70 -0
- package/templates/common/.opencode/commands/wf-auto-spark.md +15 -0
- package/templates/common/.opencode/commands/wf-auto.md +15 -0
- package/templates/common/.opencode/commands/wf-help.md +8 -4
- package/templates/common/.opencode/commands/wf-learn.md +15 -0
- package/templates/common/.opencode/commands/wf-max.md +15 -0
- package/templates/common/.opencode/commands/wf-readme.md +15 -0
- package/templates/common/.opencode/commands/wf-remove.md +15 -0
- package/templates/common/.opencode/commands/wf-review.md +15 -0
- package/templates/common/.opencode/commands/wf-update.md +24 -0
- package/templates/common/.opencode/commands/wf.md +15 -0
- package/templates/common/.opencode/plugins/harness-wf-status.mjs +135 -0
- package/templates/common/AGENTS.md +2 -29
- package/templates/common/CLAUDE.md +35 -6
- package/templates/common/Harness/ACCEPTANCE_PROTOCOL.md +2 -2
- package/templates/common/{MEMORY.md → Harness/MEMORY.md} +16 -3
- package/templates/common/Harness/MEMORY_PROTOCOL.md +80 -30
- package/templates/common/Harness/README.md +50 -22
- package/templates/common/{SETUP.md → Harness/SETUP.md} +278 -276
- package/templates/common/Harness/TASK_ARCHIVE.md +56 -0
- package/templates/common/Harness/WF-AUTO-SPARK.md +5 -14
- package/templates/common/Harness/WF-AUTO.md +13 -76
- package/templates/common/Harness/WF-KERNEL.md +189 -0
- package/templates/common/Harness/WF-MAX.md +60 -328
- package/templates/common/Harness/WF-STATE.md +83 -0
- package/templates/common/Harness/WF.md +117 -237
- package/templates/common/Harness/agent-workflow.md +2 -2
- package/templates/common/Harness/context-loading.md +3 -3
- package/templates/common/Harness/dispatch.md +43 -35
- package/templates/common/Harness/scripts/archive-tasks.mjs +239 -0
- package/templates/common/{scripts → Harness/scripts}/scan-clean.mjs +28 -1
- package/templates/common/{scripts → Harness/scripts}/validate-harness.mjs +909 -699
- package/templates/common/Harness/scripts/wf-auto-update-prompt.mjs +258 -0
- package/templates/common/{scripts → Harness/scripts}/wf-update-check.mjs +40 -7
- package/templates/common/Harness/subagents.md +28 -27
- package/templates/common/Harness/tasks/_template/PLAN.md +5 -0
- package/templates/common/Harness/tasks/_template/STATE.json +23 -0
- package/templates/common/README.md +1 -1
- package/templates/common/memory/agent-lessons-patterns.md +9 -8
- package/templates/common/memory/routes.md +43 -0
- package/templates/common/memory/startup-hints.md +32 -0
- package/templates/common/memory/tool-usage-reflections.md +9 -8
- package/templates/common/memory/user-corrections-preferences.md +11 -9
- package/templates/optional/catalog.json +8 -0
- package/templates/optional/skills/browser-e2e/.claude/skills/browser-e2e/SKILL.md +42 -42
- package/templates/optional/skills/browser-e2e/.opencode/commands/wf-browser.md +15 -0
- 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/{scripts → Harness/scripts}/wf-remove.mjs +0 -0
|
@@ -1,39 +1,39 @@
|
|
|
1
|
-
# SETUP.md - Bootstrap This Product Harness
|
|
2
|
-
|
|
3
|
-
Temporary file. Delete after the first vertical slice is verified.
|
|
4
|
-
|
|
5
|
-
## What This Is
|
|
6
|
-
|
|
7
|
-
This scaffold is a 0-1 product harness:
|
|
8
|
-
|
|
9
|
-
- short agent entry files
|
|
10
|
-
- dynamic docs router
|
|
1
|
+
# SETUP.md - Bootstrap This Product Harness
|
|
2
|
+
|
|
3
|
+
Temporary file. Delete after the first vertical slice is verified.
|
|
4
|
+
|
|
5
|
+
## What This Is
|
|
6
|
+
|
|
7
|
+
This scaffold is a 0-1 product harness:
|
|
8
|
+
|
|
9
|
+
- short agent entry files
|
|
10
|
+
- dynamic docs router
|
|
11
11
|
- Mini PRD, acceptance protocol, UI/API contracts, research protocol, architecture, ports, data-flow, state templates
|
|
12
|
-
- active `Harness/PROGRESS.md`
|
|
13
|
-
- `Harness/MEMORY.md` plus a `Harness/memory/` folder for durable self-learning, user corrections, and tool reflections
|
|
14
|
-
- built-in common agents
|
|
15
|
-
- subagent orchestration and context-loading protocol
|
|
16
|
-
- skill-style dynamic loaders in `.claude/skills/` for Claude Code and `.agents/skills/` for Codex
|
|
17
|
-
- lightweight harness validator
|
|
12
|
+
- active `Harness/PROGRESS.md`
|
|
13
|
+
- `Harness/MEMORY.md` plus a `Harness/memory/` folder for durable self-learning, user corrections, and tool reflections
|
|
14
|
+
- built-in common agents
|
|
15
|
+
- subagent orchestration and context-loading protocol
|
|
16
|
+
- skill-style dynamic loaders in `.claude/skills/` for Claude Code and `.agents/skills/` for Codex
|
|
17
|
+
- lightweight harness validator
|
|
18
18
|
- acceptance/test/review/debug/memory loop
|
|
19
|
-
|
|
20
|
-
It does not guess your stack or business domain. The agent MUST detect or ask, then install the right ECC rules for the project.
|
|
21
|
-
|
|
22
|
-
## Bootstrap Prompt
|
|
23
|
-
|
|
24
|
-
Start Claude Code or Codex, then say:
|
|
25
|
-
|
|
26
|
-
```text
|
|
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.
|
|
19
|
+
|
|
20
|
+
It does not guess your stack or business domain. The agent MUST detect or ask, then install the right ECC rules for the project.
|
|
21
|
+
|
|
22
|
+
## Bootstrap Prompt
|
|
23
|
+
|
|
24
|
+
Start Claude Code or Codex, then say:
|
|
25
|
+
|
|
26
|
+
```text
|
|
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
29
|
First clarify the idea, then create Mini PRD, acceptance criteria, UI/API contracts, test plan, research, architecture, Harness/PROGRESS.md, the first per-task plan, and the first vertical-slice task.
|
|
30
|
-
```
|
|
31
|
-
|
|
32
|
-
## Required Bootstrap Sequence
|
|
33
|
-
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
## Required Bootstrap Sequence
|
|
33
|
+
|
|
34
34
|
Claude or Codex must follow this order during bootstrap. This sequence is broader than installation; if the user only asked to install/configure the harness in an existing project, follow the "Existing Project Fast Path" below and stop after the non-strict validator passes.
|
|
35
|
-
|
|
36
|
-
0. **ECC Stack Configuration** — Detect the project's tech stack. If the repo is empty or has no stack markers (`package.json`, `go.mod`, `pyproject.toml`, `Cargo.toml`, `Gemfile`, `composer.json`, `build.gradle`, etc.), ask the user: "What's your tech stack? (language/framework)" Then install the matching ECC rule sets from `~/.claude/rules/ecc/`. See `Harness/ECC-GUIDE.md` for the stack→rules mapping. Minimum: always install `common/`. Verify with `ls .claude/rules/ecc/`.
|
|
35
|
+
|
|
36
|
+
0. **ECC Stack Configuration** — Detect the project's tech stack. If the repo is empty or has no stack markers (`package.json`, `go.mod`, `pyproject.toml`, `Cargo.toml`, `Gemfile`, `composer.json`, `build.gradle`, etc.), ask the user: "What's your tech stack? (language/framework)" Then install the matching ECC rule sets from `~/.claude/rules/ecc/`. See `Harness/ECC-GUIDE.md` for the stack→rules mapping. Minimum: always install `common/`. Verify with `ls .claude/rules/ecc/`.
|
|
37
37
|
1. Read `CLAUDE.md`, `Harness/MEMORY.md`, `Harness/README.md`, `Harness/lifecycle.md`, and `Harness/ACCEPTANCE_PROTOCOL.md`. Load `Harness/memory/*` only when the router or memory trigger applies.
|
|
38
38
|
2. Ask up to 3 blocking product questions. If not blocked, record assumptions in `Harness/tasks/<task-id>/PLAN.md`.
|
|
39
39
|
3. Fill `Harness/research/PRD.md` or the first task PLAN with Mini PRD fields: goal, scope, non-scope, user flow, UI elements, API behavior, acceptance criteria, and verification commands.
|
|
@@ -47,18 +47,18 @@ Claude or Codex must follow this order during bootstrap. This sequence is broade
|
|
|
47
47
|
11. For `/wf-auto` or memory scenario hints, read `Harness/WF-AUTO.md` and `Harness/MEMORY_PROTOCOL.md`; do not enable a background runner by default. The only allowed runtime hook is the optional `/wf-auto` bounded tick hook.
|
|
48
48
|
12. Run `node Harness/scripts/validate-harness.mjs --strict` after project-fact placeholders are resolved.
|
|
49
49
|
13. Record final verification and next feedback step in `Harness/tasks/<task-id>/PROGRESS.md`. If repeated tool failures, repeated user corrections, or reusable review/debug lessons appeared, record the concise reflection in the relevant `Harness/memory/` file.
|
|
50
|
-
|
|
51
|
-
## Install or Upgrade Path
|
|
52
|
-
|
|
53
|
-
Before writing, identify the project state:
|
|
54
|
-
|
|
55
|
-
| Project state | Required action |
|
|
56
|
-
| --- | --- |
|
|
57
|
-
| Empty or new project | Run the scaffold, then follow this file for 0-1 bootstrap |
|
|
58
|
-
| Existing project, no `Harness/` | Scan project facts first, run `--dry-run`, preserve existing files, merge only missing Harness guidance |
|
|
59
|
-
| Legacy architecture or older project docs | Treat existing code/docs as source of truth, dry-run first, then fill PRD, research, architecture, and task plans from observed facts |
|
|
60
|
-
| Existing `Harness/` | Do not use `npx` as an updater; ask whether to run `/wf-update`, `$wf-update`, `node Harness/scripts/wf-update-check.mjs`, keep untouched, or remove/reinstall after approval |
|
|
61
|
-
|
|
50
|
+
|
|
51
|
+
## Install or Upgrade Path
|
|
52
|
+
|
|
53
|
+
Before writing, identify the project state:
|
|
54
|
+
|
|
55
|
+
| Project state | Required action |
|
|
56
|
+
| --- | --- |
|
|
57
|
+
| Empty or new project | Run the scaffold, then follow this file for 0-1 bootstrap |
|
|
58
|
+
| Existing project, no `Harness/` | Scan project facts first, run `--dry-run`, preserve existing files, merge only missing Harness guidance |
|
|
59
|
+
| Legacy architecture or older project docs | Treat existing code/docs as source of truth, dry-run first, then fill PRD, research, architecture, and task plans from observed facts |
|
|
60
|
+
| Existing `Harness/` | Do not use `npx` as an updater; ask whether to run `/wf-update`, `$wf-update`, `node Harness/scripts/wf-update-check.mjs`, keep untouched, or remove/reinstall after approval |
|
|
61
|
+
|
|
62
62
|
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.
|
|
63
63
|
|
|
64
64
|
### Existing Project Fast Path
|
|
@@ -72,254 +72,256 @@ Use this path when the user asks only to install or configure the harness in an
|
|
|
72
72
|
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`.
|
|
73
73
|
6. Run `node Harness/scripts/validate-harness.mjs` as the install-complete gate.
|
|
74
74
|
7. Defer `node Harness/scripts/validate-harness.mjs --strict` until bootstrap removes project-fact placeholders. If placeholders intentionally remain, report strict validation as deferred rather than treating install as failed.
|
|
75
|
-
|
|
76
|
-
`npx create-harness-vibe-coding` is an install/safe-merge entry, not an update engine for a project that already has an installed Harness. If `Harness/` already exists, use `/wf-update`, `$wf-update`, or `node Harness/scripts/wf-update-check.mjs`; root entry files and user-modified Harness docs require agent-mediated merge decisions.
|
|
77
|
-
|
|
78
|
-
### Agent-Link Install Intake
|
|
79
|
-
|
|
75
|
+
|
|
76
|
+
`npx create-harness-vibe-coding` is an install/safe-merge entry, not an update engine for a project that already has an installed Harness. If `Harness/` already exists, use `/wf-update`, `$wf-update`, or `node Harness/scripts/wf-update-check.mjs`; root entry files and user-modified Harness docs require agent-mediated merge decisions.
|
|
77
|
+
|
|
78
|
+
### Agent-Link Install Intake
|
|
79
|
+
|
|
80
80
|
When the user installs by pasting the GitHub link into an agent, get the JSON install report before editing or asking generic questions. Do not fetch full template files or read package source until `agent.aiMergeRequired` names a file that needs semantic comparison. Summarize `scan.markers`, then 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.
|
|
81
|
-
|
|
82
|
-
| Topic | Ask When | Default If Unanswered |
|
|
83
|
-
| --- | --- | --- |
|
|
84
|
-
| Root agent entry | `CLAUDE.md`, `AGENTS.md`, `.claude/`, `.agents/`, `.codex/`, or other agent entry files already exist | Preserve files; ask before merging the Harness entry contract |
|
|
85
|
-
| Existing Harness | `Harness/` already exists | Stop and ask whether to run `/wf-update`, dry-run merge missing files, keep it untouched, or remove/reinstall after approval |
|
|
86
|
-
| Harness location | Always | Use root `Harness/`; do not write harness docs into `docs/` |
|
|
87
|
-
| README ownership | root `README.md` is a public product page, package docs, or heavily customized | Preserve existing README and propose a minimal Development section |
|
|
88
|
-
| README optimization | existing README is stale, sparse, missing command tables, or the user asks for diagrams/polished docs | Offer `wf-readme`; default to append-only Development notes until the user approves a structure pass or full rewrite |
|
|
89
|
-
| Extensions | ECC, custom rules, or stack-specific skills may be useful | Scan installed skills/plugins/rules first; recommend only missing capabilities; install only after user approval |
|
|
90
|
-
| Optional capabilities | stack is known or the user wants setup guidance | Offer local workflows plus recommendation-only GitHub links: Superpowers, Caveman, agent research, and code graph; do not duplicate already-installed capabilities |
|
|
91
|
-
| Skills | stack is known and optional skills could improve testing, frontend, backend, review, or browser evidence | Install 1-2 relevant local workflows only after user approval |
|
|
92
|
-
| CI/CD | CI config exists or the project lacks a test/build gate | Document existing commands first; add CI/CD only after user approval |
|
|
93
|
-
| Verification depth | browser-visible, API, database, auth, payment, or deployment behavior is affected | Require real command evidence; require browser/API evidence when relevant |
|
|
94
|
-
| Memory/privacy | repo contains sensitive domain data, customer data, secrets, or private workflows | Enable memory index only; never record secrets or private data |
|
|
95
|
-
| Branch/worktree | project has uncommitted changes, risky migration, or parallel implementation lanes | Preserve current worktree; propose branch/worktree before broad edits |
|
|
96
|
-
| Package manager/stack | multiple package managers, monorepo apps, or unclear stack boundaries exist | Ask which workspace/app is in scope before writing |
|
|
97
|
-
|
|
98
|
-
### Agent Conflict Resolution Protocol
|
|
99
|
-
|
|
100
|
-
When `--on-conflict skip` leaves existing files untouched, the script still owns file creation and the agent resolves only the files named in `agent.aiMergeRequired`.
|
|
101
|
-
|
|
102
|
-
**Workflow:**
|
|
103
|
-
|
|
104
|
-
1. Run the harness tool in planning mode to get the conflict list:
|
|
105
|
-
```
|
|
106
|
-
npx create-harness-vibe-coding@latest . . -y --dry-run --on-conflict skip --json
|
|
107
|
-
```
|
|
108
|
-
Parse the JSON output. Files in `plan.create[]` are handled automatically by the script. If `agent.aiMergeRequired[]` is empty, do not read package source or templates; run the safe merge command from `agent.safeMergeCommand`.
|
|
109
|
-
|
|
110
|
-
2. For each file in `agent.aiMergeRequired[]`, use its `templateHint` to locate the harness template counterpart only when semantic comparison is needed:
|
|
111
|
-
- From npm: `node_modules/create-harness-vibe-coding/<templateHint>`
|
|
112
|
-
- From GitHub: `https://raw.githubusercontent.com/zingspark/create-harness-vibe-coding/main/<templateHint>`
|
|
113
|
-
|
|
114
|
-
3. For each skipped file:
|
|
115
|
-
- Read the existing project file.
|
|
116
|
-
- Read the harness template counterpart only for that file.
|
|
117
|
-
- 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.
|
|
118
|
-
- 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.
|
|
119
|
-
- 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.
|
|
120
|
-
- Present each gap to the user as a choice:
|
|
121
|
-
- **[Merge]** — Edit the existing file to add only the missing sections. Preserve all existing content, ordering, and formatting.
|
|
122
|
-
- **[Overwrite]** — Replace with the template version. Optionally backup the original first (`--on-conflict backup`).
|
|
123
|
-
- **[Keep]** — Leave the existing file as-is. Skip this file.
|
|
124
|
-
|
|
81
|
+
|
|
82
|
+
| Topic | Ask When | Default If Unanswered |
|
|
83
|
+
| --- | --- | --- |
|
|
84
|
+
| Root agent entry | `CLAUDE.md`, `AGENTS.md`, `.claude/`, `.agents/`, `.codex/`, or other agent entry files already exist | Preserve files; ask before merging the Harness entry contract |
|
|
85
|
+
| Existing Harness | `Harness/` already exists | Stop and ask whether to run `/wf-update`, dry-run merge missing files, keep it untouched, or remove/reinstall after approval |
|
|
86
|
+
| Harness location | Always | Use root `Harness/`; do not write harness docs into `docs/` |
|
|
87
|
+
| README ownership | root `README.md` is a public product page, package docs, or heavily customized | Preserve existing README and propose a minimal Development section |
|
|
88
|
+
| README optimization | existing README is stale, sparse, missing command tables, or the user asks for diagrams/polished docs | Offer `wf-readme`; default to append-only Development notes until the user approves a structure pass or full rewrite |
|
|
89
|
+
| Extensions | ECC, custom rules, or stack-specific skills may be useful | Scan installed skills/plugins/rules first; recommend only missing capabilities; install only after user approval |
|
|
90
|
+
| Optional capabilities | stack is known or the user wants setup guidance | Offer local workflows plus recommendation-only GitHub links: Superpowers, Caveman, agent research, and code graph; do not duplicate already-installed capabilities |
|
|
91
|
+
| Skills | stack is known and optional skills could improve testing, frontend, backend, review, or browser evidence | Install 1-2 relevant local workflows only after user approval |
|
|
92
|
+
| CI/CD | CI config exists or the project lacks a test/build gate | Document existing commands first; add CI/CD only after user approval |
|
|
93
|
+
| Verification depth | browser-visible, API, database, auth, payment, or deployment behavior is affected | Require real command evidence; require browser/API evidence when relevant |
|
|
94
|
+
| Memory/privacy | repo contains sensitive domain data, customer data, secrets, or private workflows | Enable memory index only; never record secrets or private data |
|
|
95
|
+
| Branch/worktree | project has uncommitted changes, risky migration, or parallel implementation lanes | Preserve current worktree; propose branch/worktree before broad edits |
|
|
96
|
+
| Package manager/stack | multiple package managers, monorepo apps, or unclear stack boundaries exist | Ask which workspace/app is in scope before writing |
|
|
97
|
+
|
|
98
|
+
### Agent Conflict Resolution Protocol
|
|
99
|
+
|
|
100
|
+
When `--on-conflict skip` leaves existing files untouched, the script still owns file creation and the agent resolves only the files named in `agent.aiMergeRequired`.
|
|
101
|
+
|
|
102
|
+
**Workflow:**
|
|
103
|
+
|
|
104
|
+
1. Run the harness tool in planning mode to get the conflict list:
|
|
105
|
+
```
|
|
106
|
+
npx create-harness-vibe-coding@latest . . -y --dry-run --on-conflict skip --json
|
|
107
|
+
```
|
|
108
|
+
Parse the JSON output. Files in `plan.create[]` are handled automatically by the script. If `agent.aiMergeRequired[]` is empty, do not read package source or templates; run the safe merge command from `agent.safeMergeCommand`.
|
|
109
|
+
|
|
110
|
+
2. For each file in `agent.aiMergeRequired[]`, use its `templateHint` to locate the harness template counterpart only when semantic comparison is needed:
|
|
111
|
+
- From npm: `node_modules/create-harness-vibe-coding/<templateHint>`
|
|
112
|
+
- From GitHub: `https://raw.githubusercontent.com/zingspark/create-harness-vibe-coding/main/<templateHint>`
|
|
113
|
+
|
|
114
|
+
3. For each skipped file:
|
|
115
|
+
- Read the existing project file.
|
|
116
|
+
- Read the harness template counterpart only for that file.
|
|
117
|
+
- 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.
|
|
118
|
+
- 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.
|
|
119
|
+
- 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.
|
|
120
|
+
- Present each gap to the user as a choice:
|
|
121
|
+
- **[Merge]** — Edit the existing file to add only the missing sections. Preserve all existing content, ordering, and formatting.
|
|
122
|
+
- **[Overwrite]** — Replace with the template version. Optionally backup the original first (`--on-conflict backup`).
|
|
123
|
+
- **[Keep]** — Leave the existing file as-is. Skip this file.
|
|
124
|
+
|
|
125
125
|
4. For Merge: use targeted edits, not a full-file rewrite. In Codex, use `apply_patch` or an equivalent patch operation. Only insert sections, headings, and text that are structurally required. Do not reorder or modify existing content. Do not remove custom project-specific registrations. After merging `CLAUDE.md` or `AGENTS.md`, inspect the heading outline and remove duplicate headings or repeated bullets introduced by the merge.
|
|
126
126
|
|
|
127
127
|
5. After all install merges, run `node Harness/scripts/validate-harness.mjs`. Run `node Harness/scripts/validate-harness.mjs --strict` only after project-fact placeholders are resolved during bootstrap or release preparation.
|
|
128
|
-
|
|
129
|
-
**File-specific gap checklists:**
|
|
130
|
-
|
|
131
|
-
The harness validator checks for specific structural invariants. When comparing existing files against templates, verify these are present. Most other template content can vary; only the items below are required.
|
|
132
|
-
|
|
133
|
-
| File | Required check |
|
|
134
|
-
|------|----------------|
|
|
135
|
-
| `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 |
|
|
136
|
-
| `AGENTS.md` | Root agent entry points to `CLAUDE.md` and `Harness/README.md`; for existing projects, merge only after explicit user consent |
|
|
137
|
-
| `README.md` | Existing README is project-owned. Preserve by default; ask whether to append only Development notes or run `wf-readme` for a structure pass with tables/diagrams before broad edits |
|
|
138
|
-
| `Harness/MEMORY.md` | All 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 |
|
|
128
|
+
|
|
129
|
+
**File-specific gap checklists:**
|
|
130
|
+
|
|
131
|
+
The harness validator checks for specific structural invariants. When comparing existing files against templates, verify these are present. Most other template content can vary; only the items below are required.
|
|
132
|
+
|
|
133
|
+
| File | Required check |
|
|
134
|
+
|------|----------------|
|
|
135
|
+
| `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 |
|
|
136
|
+
| `AGENTS.md` | Root agent entry points to `CLAUDE.md` and `Harness/README.md`; for existing projects, merge only after explicit user consent |
|
|
137
|
+
| `README.md` | Existing README is project-owned. Preserve by default; ask whether to append only Development notes or run `wf-readme` for a structure pass with tables/diagrams before broad edits |
|
|
138
|
+
| `Harness/MEMORY.md` | All 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 |
|
|
139
139
|
| `.claude/rules/ecc/common.md` | Required project-local universal rules. Keep it even when global `~/.claude/rules/ecc/common/` exists; that directory and this file have different scopes. Required sections: `## Context` with the durable communication invariant (`project files are the only durable communication channel`); `## Memory` with three reflection file entries; `## Security` |
|
|
140
|
-
| `Harness/README.md` | `## Keyword Routing` heading; `## Load By Task` table with at minimum the rows: "Need WF mode", "Adding harness to existing project", "Need implementation plan", "Need parallel agents", "Need subagents", "Need durable memory or reflection"; WF routing keywords include `/wf`,
|
|
141
|
-
| `Harness/WF.md` | `WF
|
|
142
|
-
| `Harness/
|
|
140
|
+
| `Harness/README.md` | `## Keyword Routing` heading; `## Load By Task` table with at minimum the rows: "Need WF mode (explicit only)", "Adding harness to existing project", "Need implementation plan", "Need parallel agents", "Need subagents", "Need durable memory or reflection"; WF routing keywords include `/wf`, `$wf`, `/skills wf`, `/wf-max`, `$wf-max`, `/skills wf-max`; explicit WF entry only — no auto-triggering from task complexity, failure count, or old aliases; `## Doc Map` with `memory/` and `subagents.md` entries; the durable communication invariant text; `Harness/README.md is the primary Harness documentation router` |
|
|
141
|
+
| `Harness/WF.md` | `WF is explicit only`; tier-aware contract: `WF-Light` (planner/test/verifier, no mandatory cross-review/reflector), `WF-Standard` (adds research + one review lens), `WF-Full` (complete role chain with cross-review + reflector PASS); `Collaboration tier guide`; `Heartbeat Protocol` |
|
|
142
|
+
| `Harness/WF-MAX.md` | `WF-MAX is explicit only`; `WF-Max-Useful` (default, fan-out only where independent); `WF-Max-Strict` (explicit strict override); three-layer architecture; D-GATE; span formula |
|
|
143
|
+
| `Harness/extension.md` | `## Non-Invasive Extension Rules` section with the "Preserve existing" rule; `## Agent Contract` section; `## Registration` section |
|
|
143
144
|
| `Harness/dispatch.md` | The durable communication invariant; registered common agent entries; `## Handoff Format` heading |
|
|
144
|
-
| `Harness/context-loading.md` | The durable communication invariant; `Harness/README.md is the primary router`; all 12 subagent context packs (Explorer Pass, Planner, Researcher, Docs Researcher, Architect, Test Writer, Implementer, Reviewer, Debugger, Verifier, Memory Master, Context Master) |
|
|
145
|
-
| `Harness/subagents.md` | `## Source Attribution`; `## Built-in Agent Roster`; `## WF Default Fan-Out`; `Controller Role`; `Efficiency Ladder`; `Review Gates`; `collaboration decision tree`; source markers for `npx skills find`, `dispatching-parallel-agents`, and `subagent-driven-development` |
|
|
146
|
-
| `Harness/architecture.md` | `## 2. Interface Decoupling`; `## 3. State Design`; `Avoid speculative abstraction`; layer constraints derived from actual project facts |
|
|
147
|
-
| `Harness/PROGRESS.md` | global task index with Active Task and task history; cross-task decisions |
|
|
148
|
-
| `Harness/tasks/<id>/PROGRESS.md` | `## Current Goal`, `## Phase`, `## Heartbeat`, `## Loaded Context` headings |
|
|
149
|
-
| `Harness/tasks/<id>/PLAN.md` | `## Tasks`, `## Parallel Dispatch`, `## Subagent Synthesis`, `## Verification` headings |
|
|
150
|
-
| `Harness/SETUP.md` | Temporary install/bootstrap guide for new projects, existing projects, legacy upgrades, and Harness update decisions. If kept, ensure "Install or Upgrade Path" is present. |
|
|
151
|
-
| `Harness/workflows/browser-e2e.md` (if installed as optional) | `data-testid`, `accessible labels/roles`, and `inputs, buttons, filters, rows, empty/error/loading states` requirement |
|
|
152
|
-
| `Harness/workflows/ts-react-frontend.md` (if installed as optional) | Same UI selector contract as above |
|
|
153
|
-
|
|
145
|
+
| `Harness/context-loading.md` | The durable communication invariant; `Harness/README.md is the primary Harness documentation router`; all 12 subagent context packs (Explorer Pass, Planner, Researcher, Docs Researcher, Architect, Test Writer, Implementer, Reviewer, Debugger, Verifier, Memory Master, Context Master) |
|
|
146
|
+
| `Harness/subagents.md` | `## Source Attribution`; `## Built-in Agent Roster`; `## WF Default Fan-Out`; `Controller Role`; `Efficiency Ladder`; `Review Gates`; `collaboration decision tree`; source markers for `npx skills find`, `dispatching-parallel-agents`, and `subagent-driven-development` |
|
|
147
|
+
| `Harness/architecture.md` | `## 2. Interface Decoupling`; `## 3. State Design`; `Avoid speculative abstraction`; layer constraints derived from actual project facts |
|
|
148
|
+
| `Harness/PROGRESS.md` | global task index with Active Task and task history; cross-task decisions |
|
|
149
|
+
| `Harness/tasks/<id>/PROGRESS.md` | `## Current Goal`, `## Phase`, `## Heartbeat`, `## Loaded Context` headings |
|
|
150
|
+
| `Harness/tasks/<id>/PLAN.md` | `## Tasks`, `## Parallel Dispatch`, `## Subagent Synthesis`, `## Verification` headings |
|
|
151
|
+
| `Harness/SETUP.md` | Temporary install/bootstrap guide for new projects, existing projects, legacy upgrades, and Harness update decisions. If kept, ensure "Install or Upgrade Path" is present. |
|
|
152
|
+
| `Harness/workflows/browser-e2e.md` (if installed as optional) | `data-testid`, `accessible labels/roles`, and `inputs, buttons, filters, rows, empty/error/loading states` requirement |
|
|
153
|
+
| `Harness/workflows/ts-react-frontend.md` (if installed as optional) | Same UI selector contract as above |
|
|
154
|
+
|
|
154
155
|
**Files that do NOT need manual merge when the path does not already exist (auto-created by harness):**
|
|
155
156
|
|
|
156
157
|
The generated file list is authoritative by path, not by stale count labels. Current common scaffolds include WF-MAX manager agents and `tdd-guide`; keep every file created by the scaffold unless a removal workflow explicitly classifies it as safe to remove.
|
|
157
|
-
|
|
158
|
-
- `Harness/memory/tool-usage-reflections.md`, `Harness/memory/user-corrections-preferences.md`, `Harness/memory/agent-lessons-patterns.md` — these are new empty files
|
|
158
|
+
|
|
159
|
+
- `Harness/memory/tool-usage-reflections.md`, `Harness/memory/user-corrections-preferences.md`, `Harness/memory/agent-lessons-patterns.md` — these are new empty files
|
|
159
160
|
- `.claude/agents/*.md` - all built-in common agent files, including WF-MAX managers and `tdd-guide`
|
|
160
|
-
- `.claude/skills/*.md` and mirrored `.agents/skills/*.md` — Claude Code and Codex skill adapters over the same Harness docs
|
|
161
|
+
- `.claude/skills/*.md` and mirrored `.agents/skills/*.md` — Claude Code and Codex skill adapters over the same Harness docs
|
|
161
162
|
- `.claude/rules/ecc/common.md` - required project-local universal rules. Do not delete this file as a duplicate of a global `~/.claude/rules/ecc/common/` directory; they are different scopes.
|
|
162
|
-
- `.claude/settings.json` — harness settings
|
|
163
|
-
- `Harness/WF.md`, `Harness/lifecycle.md`, `Harness/subagents.md`, `Harness/agent-workflow.md`, `Harness/architecture.md` — harness runtime docs
|
|
164
|
-
- `Harness/research/*.md` — research protocol and templates
|
|
165
|
-
- `AGENTS.md` — agent registry; if it already exists, ask for user consent before merging or replacing it
|
|
166
|
-
- `Harness/scripts/validate-harness.mjs` and `tests/.gitkeep` — tooling
|
|
167
|
-
|
|
168
|
-
Optional workflow examples:
|
|
169
|
-
|
|
170
|
-
```bash
|
|
171
|
-
npx create-harness-vibe-coding@latest my-app ./my-app -y --with browser-e2e,ts-react-frontend
|
|
172
|
-
npx create-harness-vibe-coding@latest my-app ./my-app -y --preset web-app
|
|
173
|
-
npx create-harness-vibe-coding@latest my-app ./my-app -y --recommend superpowers,codegraph
|
|
174
|
-
```
|
|
175
|
-
|
|
176
|
-
`--recommend` records recommendation-only external capability links in this file. It does not install third-party skills or plugins.
|
|
177
|
-
|
|
178
|
-
### Template Fill Guide
|
|
179
|
-
|
|
180
|
-
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/tasks/<task-id>/PLAN.md`.
|
|
181
|
-
|
|
182
|
-
**`Harness/research/PRD.md`** — Product scope. Fill with product facts from user input, not guesses:
|
|
183
|
-
- `{{WHY_THIS_PROJECT_EXISTS}}`: one-sentence motivation
|
|
184
|
-
- `{{MUST_1..3}}`: concrete, testable MVP items (checkbox form)
|
|
185
|
-
- `{{NON_GOAL_1..3}}`: explicitly out-of-scope items
|
|
186
|
-
- `{{USER_ROLE}}`, `{{SCENARIO}}`, `{{FREQUENCY}}`, `{{PAIN}}`: one row per user type
|
|
163
|
+
- `.claude/settings.json` — harness settings
|
|
164
|
+
- `Harness/WF.md`, `Harness/lifecycle.md`, `Harness/subagents.md`, `Harness/agent-workflow.md`, `Harness/architecture.md` — harness runtime docs
|
|
165
|
+
- `Harness/research/*.md` — research protocol and templates
|
|
166
|
+
- `AGENTS.md` — agent registry; if it already exists, ask for user consent before merging or replacing it
|
|
167
|
+
- `Harness/scripts/validate-harness.mjs` and `tests/.gitkeep` — tooling
|
|
168
|
+
|
|
169
|
+
Optional workflow examples:
|
|
170
|
+
|
|
171
|
+
```bash
|
|
172
|
+
npx create-harness-vibe-coding@latest my-app ./my-app -y --with browser-e2e,ts-react-frontend
|
|
173
|
+
npx create-harness-vibe-coding@latest my-app ./my-app -y --preset web-app
|
|
174
|
+
npx create-harness-vibe-coding@latest my-app ./my-app -y --recommend superpowers,codegraph
|
|
175
|
+
```
|
|
176
|
+
|
|
177
|
+
`--recommend` records recommendation-only external capability links in this file. It does not install third-party skills or plugins.
|
|
178
|
+
|
|
179
|
+
### Template Fill Guide
|
|
180
|
+
|
|
181
|
+
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/tasks/<task-id>/PLAN.md`.
|
|
182
|
+
|
|
183
|
+
**`Harness/research/PRD.md`** — Product scope. Fill with product facts from user input, not guesses:
|
|
184
|
+
- `{{WHY_THIS_PROJECT_EXISTS}}`: one-sentence motivation
|
|
185
|
+
- `{{MUST_1..3}}`: concrete, testable MVP items (checkbox form)
|
|
186
|
+
- `{{NON_GOAL_1..3}}`: explicitly out-of-scope items
|
|
187
|
+
- `{{USER_ROLE}}`, `{{SCENARIO}}`, `{{FREQUENCY}}`, `{{PAIN}}`: one row per user type
|
|
187
188
|
- `AC-001..003`: verifiable project-level acceptance criteria written as Given/When/Then summaries
|
|
188
189
|
- UI/API contract requirements: stable selectors, endpoint contracts, state changes, and evidence methods for relevant AC IDs
|
|
189
190
|
- `{{DIMENSION}}`, `{{TARGET}}`, `{{MEASUREMENT}}`: non-functional requirements (perf, security, etc.)
|
|
190
|
-
|
|
191
|
-
**`Harness/research/research-results.md`** — Tech decisions. Research before filling:
|
|
192
|
-
- Use `Harness/research/README.md` as the research protocol.
|
|
193
|
-
- `{{CANDIDATE_1..3}}`: each candidate (framework, library, architecture style) with Purpose/Strength/Weakness/Decision/Link.
|
|
194
|
-
- `{{Architecture Style}}`: the chosen architectural style (e.g., Hexagonal, Modular Monolith).
|
|
195
|
-
- `{{CONSTRAINT_1..3}}`: hard technical constraints derived from research.
|
|
196
|
-
- `{{ALTERNATIVE_1..2}}`: rejected candidates worth watching for future.
|
|
197
|
-
|
|
198
|
-
**`Harness/architecture.md`** — Layer structure. Derive from research-results:
|
|
199
|
-
- Fill the ASCII layer diagram with actual layer names. Do NOT add layers without a proven need.
|
|
200
|
-
- `Interface Decoupling`: document only real boundaries and ports. Do not add speculative factories, plugin systems, generic repositories, or config layers.
|
|
201
|
-
- `State Design`: name state owners, persistence level, legal transitions, and recovery behavior for long-running workflows.
|
|
202
|
-
- `Harness Core Components`: describe each core component (Runner, Permission Policy, Event Bus, State Store, Tool Registry) in project-specific terms.
|
|
203
|
-
- `Architectural Constraints`: add project-specific non-negotiables. Keep the domain/harness purity rules.
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
**Constraint**: If the research does not give you enough confidence to fill a section, leave the `{{...}}` placeholder and record the open question in `Harness/tasks/<task-id>/PLAN.md`. The strict validator will catch it.
|
|
207
|
-
|
|
208
|
-
## User Confirmation Protocol (Non-Negotiable)
|
|
209
|
-
|
|
210
|
-
> This harness is a design partner, not a solo builder. The user owns product intent.
|
|
211
|
-
|
|
212
|
-
When user intent is unclear or ambiguous:
|
|
213
|
-
|
|
214
|
-
- **Maximum 3 blocking questions per decision point.** Ask the highest-impact questions first.
|
|
215
|
-
- **Do not act on assumptions that affect architecture, scope, stack, or user-facing behavior.**
|
|
216
|
-
- **You must have ≥95% confidence before writing implementation code.** If below that threshold, stop and ask.
|
|
217
|
-
- **Record every assumption explicitly** in `Harness/tasks/<task-id>/PLAN.md` so the user can correct it later.
|
|
218
|
-
- **Silent picks are forbidden.** If two valid approaches exist and you cannot decide with high confidence, present both to the user with trade-offs.
|
|
219
|
-
|
|
220
|
-
False confidence is worse than a question. If you catch yourself thinking "this is probably what they want," stop and ask.
|
|
221
|
-
|
|
222
|
-
## How to Find Proper Skills
|
|
223
|
-
|
|
191
|
+
|
|
192
|
+
**`Harness/research/research-results.md`** — Tech decisions. Research before filling:
|
|
193
|
+
- Use `Harness/research/README.md` as the research protocol.
|
|
194
|
+
- `{{CANDIDATE_1..3}}`: each candidate (framework, library, architecture style) with Purpose/Strength/Weakness/Decision/Link.
|
|
195
|
+
- `{{Architecture Style}}`: the chosen architectural style (e.g., Hexagonal, Modular Monolith).
|
|
196
|
+
- `{{CONSTRAINT_1..3}}`: hard technical constraints derived from research.
|
|
197
|
+
- `{{ALTERNATIVE_1..2}}`: rejected candidates worth watching for future.
|
|
198
|
+
|
|
199
|
+
**`Harness/architecture.md`** — Layer structure. Derive from research-results:
|
|
200
|
+
- Fill the ASCII layer diagram with actual layer names. Do NOT add layers without a proven need.
|
|
201
|
+
- `Interface Decoupling`: document only real boundaries and ports. Do not add speculative factories, plugin systems, generic repositories, or config layers.
|
|
202
|
+
- `State Design`: name state owners, persistence level, legal transitions, and recovery behavior for long-running workflows.
|
|
203
|
+
- `Harness Core Components`: describe each core component (Runner, Permission Policy, Event Bus, State Store, Tool Registry) in project-specific terms.
|
|
204
|
+
- `Architectural Constraints`: add project-specific non-negotiables. Keep the domain/harness purity rules.
|
|
205
|
+
|
|
206
|
+
|
|
207
|
+
**Constraint**: If the research does not give you enough confidence to fill a section, leave the `{{...}}` placeholder and record the open question in `Harness/tasks/<task-id>/PLAN.md`. The strict validator will catch it.
|
|
208
|
+
|
|
209
|
+
## User Confirmation Protocol (Non-Negotiable)
|
|
210
|
+
|
|
211
|
+
> This harness is a design partner, not a solo builder. The user owns product intent.
|
|
212
|
+
|
|
213
|
+
When user intent is unclear or ambiguous:
|
|
214
|
+
|
|
215
|
+
- **Maximum 3 blocking questions per decision point.** Ask the highest-impact questions first.
|
|
216
|
+
- **Do not act on assumptions that affect architecture, scope, stack, or user-facing behavior.**
|
|
217
|
+
- **You must have ≥95% confidence before writing implementation code.** If below that threshold, stop and ask.
|
|
218
|
+
- **Record every assumption explicitly** in `Harness/tasks/<task-id>/PLAN.md` so the user can correct it later.
|
|
219
|
+
- **Silent picks are forbidden.** If two valid approaches exist and you cannot decide with high confidence, present both to the user with trade-offs.
|
|
220
|
+
|
|
221
|
+
False confidence is worse than a question. If you catch yourself thinking "this is probably what they want," stop and ask.
|
|
222
|
+
|
|
223
|
+
## How to Find Proper Skills
|
|
224
|
+
|
|
224
225
|
After the architecture stage reveals your stack, inspect existing `.claude/skills/`, `.agents/skills/`, plugins, and custom rules before recommending anything. Skills teach Claude Code and Codex domain-specific patterns, testing conventions, and design rules, but duplicate skills create routing noise.
|
|
225
|
-
|
|
226
|
-
**Built-in route**: invoke the `/find-skills` skill (or say "help me find skills for X"). Examples:
|
|
227
|
-
|
|
228
|
-
```text
|
|
229
|
-
"Find skills for React TypeScript frontend testing."
|
|
230
|
-
"Find skills for Python FastAPI backend development."
|
|
231
|
-
"What skills exist for Playwright e2e testing?"
|
|
232
|
-
"I need a skill for PostgreSQL schema design."
|
|
233
|
-
```
|
|
234
|
-
|
|
235
|
-
**External recommendation links**:
|
|
236
|
-
|
|
237
|
-
| Recommendation | Source | Purpose |
|
|
238
|
-
| --- | --- | --- |
|
|
239
|
-
| Superpowers | <https://github.com/obra/Superpowers> | **[RECOMMENDED]** community skill registry for agent workflows. Installed alongside ECC — Superpowers teaches *how to execute*, ECC defines *what standards to meet*. |
|
|
240
|
-
| Caveman | <https://github.com/JuliusBrussee/caveman> | terse, low-token agent behavior and memory compression |
|
|
241
|
-
| Agent Research | <https://github.com/lingzhi227/agent-research-skills> | research-agent skills for literature, product, dependency, and ecosystem investigation |
|
|
242
|
-
| CodeGraph | <https://github.com/colbymchenry/codegraph> | code graph or repository-map tooling |
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
226
|
+
|
|
227
|
+
**Built-in route**: invoke the `/find-skills` skill (or say "help me find skills for X"). Examples:
|
|
228
|
+
|
|
229
|
+
```text
|
|
230
|
+
"Find skills for React TypeScript frontend testing."
|
|
231
|
+
"Find skills for Python FastAPI backend development."
|
|
232
|
+
"What skills exist for Playwright e2e testing?"
|
|
233
|
+
"I need a skill for PostgreSQL schema design."
|
|
234
|
+
```
|
|
235
|
+
|
|
236
|
+
**External recommendation links**:
|
|
237
|
+
|
|
238
|
+
| Recommendation | Source | Purpose |
|
|
239
|
+
| --- | --- | --- |
|
|
240
|
+
| Superpowers | <https://github.com/obra/Superpowers> | **[RECOMMENDED]** community skill registry for agent workflows. Installed alongside ECC — Superpowers teaches *how to execute*, ECC defines *what standards to meet*. |
|
|
241
|
+
| Caveman | <https://github.com/JuliusBrussee/caveman> | terse, low-token agent behavior and memory compression |
|
|
242
|
+
| Agent Research | <https://github.com/lingzhi227/agent-research-skills> | research-agent skills for literature, product, dependency, and ecosystem investigation |
|
|
243
|
+
| CodeGraph | <https://github.com/colbymchenry/codegraph> | code graph or repository-map tooling |
|
|
244
|
+
| Grill Me | <https://github.com/mattpocock/skills/tree/main/skills/productivity/grill-me> | plan/design stress-test through a relentless interview before implementation |
|
|
245
|
+
|
|
246
|
+
These are links for the user's agent to evaluate. This scaffold does not maintain third-party install steps. If a user selects one, first check whether an equivalent capability is already installed; then present the GitHub link and ask for approval before the user's agent follows that project's own README.
|
|
247
|
+
|
|
248
|
+
### ECC (Rules) vs Superpowers (Skills) — Complementary, Not Redundant
|
|
249
|
+
|
|
250
|
+
ECC and Superpowers overlap ~80% in topic coverage but serve different purposes:
|
|
251
|
+
|
|
252
|
+
| | ECC Rules | Superpowers Skills |
|
|
253
|
+
|---|------|------|
|
|
254
|
+
| **Role** | Coding STANDARD (what to enforce) | Coding GUIDE (how to execute) |
|
|
253
255
|
| **Enforcement** | Validator plus documented command evidence | Agent self-discipline |
|
|
254
|
-
| **Scope** | Universal + per-language (TS/Python/Go/...) | Universal (no language specifics) |
|
|
255
|
-
| **TDD** | `testing.md`: coverage ≥80%, AAA pattern | `test-driven-development`: red-green-refactor workflow |
|
|
256
|
-
| **Code Review** | `code-review.md`: severity levels, checklist | `requesting-code-review`: dispatch reviewer subagent |
|
|
257
|
-
| **Subagents** | `subagents.md` + `dispatch.md`: role packs, write sets | `subagent-driven-development`: two-stage review after each task |
|
|
258
|
-
| **Verification** | `testing.md` + `agent-workflow.md`: evidence before claims | `verification-before-completion`: verification before claiming done |
|
|
256
|
+
| **Scope** | Universal + per-language (TS/Python/Go/...) | Universal (no language specifics) |
|
|
257
|
+
| **TDD** | `testing.md`: coverage ≥80%, AAA pattern | `test-driven-development`: red-green-refactor workflow |
|
|
258
|
+
| **Code Review** | `code-review.md`: severity levels, checklist | `requesting-code-review`: dispatch reviewer subagent |
|
|
259
|
+
| **Subagents** | `subagents.md` + `dispatch.md`: role packs, write sets | `subagent-driven-development`: two-stage review after each task |
|
|
260
|
+
| **Verification** | `testing.md` + `agent-workflow.md`: evidence before claims | `verification-before-completion`: verification before claiming done |
|
|
259
261
|
| **Unique** | Design quality, performance budgets, security CSP, per-language idioms | Brainstorming, git worktrees |
|
|
260
|
-
|
|
261
|
-
**Installation rule:**
|
|
262
|
-
1. **ECC is mandatory.** Install `common/` + stack-specific rules during bootstrap step 0. See `Harness/ECC-GUIDE.md`.
|
|
263
|
-
2. **Superpowers is recommended.** Install after ECC. It adds ~14 workflow skills that teach agents *how* to execute ECC standards.
|
|
264
|
-
3. **No duplicates from other sources.** If a Superpowers skill has an ECC equivalent, keep both — they don't conflict. ECC sets the bar, Superpowers shows the path.
|
|
265
|
-
4. **Priority**: ECC rules take precedence when there's a conflict. ECC is the contract; Superpowers is the training manual.
|
|
266
|
-
|
|
267
|
-
**Manual discovery**: search GitHub and npm directly using patterns from `Harness/research/README.md#Architecture Decision References`.
|
|
268
|
-
|
|
269
|
-
**Priority order**:
|
|
270
|
-
1. Existing project skills/plugins/rules first - do not recommend duplicates.
|
|
271
|
-
2. `/find-skills` or the runtime's local skill discovery - fastest and respects the user's tool environment.
|
|
272
|
-
3. Selected external GitHub links - let the user's agent read that project's README and install only after approval.
|
|
273
|
-
4. GitHub search - when the first three miss niche domains.
|
|
274
|
-
|
|
275
|
-
**What to install**: after finding skills, add the canonical copy to `.claude/skills/<name>/SKILL.md` and mirror the same file to `.agents/skills/<name>/SKILL.md` when Codex should discover it. Follow `Harness/extension.md` for compatibility. Start with 1-2 skills per stack area; more is not better.
|
|
276
|
-
|
|
277
|
-
This scaffold includes built-in harness skills in `.claude/skills/*` and mirrored Codex repo skills in `.agents/skills/*`. Keep those. Add stack-specific ones alongside them.
|
|
278
|
-
|
|
279
|
-
## Optional Agent Assets
|
|
280
|
-
|
|
262
|
+
|
|
263
|
+
**Installation rule:**
|
|
264
|
+
1. **ECC is mandatory.** Install `common/` + stack-specific rules during bootstrap step 0. See `Harness/ECC-GUIDE.md`.
|
|
265
|
+
2. **Superpowers is recommended.** Install after ECC. It adds ~14 workflow skills that teach agents *how* to execute ECC standards.
|
|
266
|
+
3. **No duplicates from other sources.** If a Superpowers skill has an ECC equivalent, keep both — they don't conflict. ECC sets the bar, Superpowers shows the path.
|
|
267
|
+
4. **Priority**: ECC rules take precedence when there's a conflict. ECC is the contract; Superpowers is the training manual.
|
|
268
|
+
|
|
269
|
+
**Manual discovery**: search GitHub and npm directly using patterns from `Harness/research/README.md#Architecture Decision References`.
|
|
270
|
+
|
|
271
|
+
**Priority order**:
|
|
272
|
+
1. Existing project skills/plugins/rules first - do not recommend duplicates.
|
|
273
|
+
2. `/find-skills` or the runtime's local skill discovery - fastest and respects the user's tool environment.
|
|
274
|
+
3. Selected external GitHub links - let the user's agent read that project's README and install only after approval.
|
|
275
|
+
4. GitHub search - when the first three miss niche domains.
|
|
276
|
+
|
|
277
|
+
**What to install**: after finding skills, add the canonical copy to `.claude/skills/<name>/SKILL.md` and mirror the same file to `.agents/skills/<name>/SKILL.md` when Codex should discover it. Follow `Harness/extension.md` for compatibility. Start with 1-2 skills per stack area; more is not better.
|
|
278
|
+
|
|
279
|
+
This scaffold includes built-in harness skills in `.claude/skills/*` and mirrored Codex repo skills in `.agents/skills/*`. Keep those. Add stack-specific ones alongside them.
|
|
280
|
+
|
|
281
|
+
## Optional Agent Assets
|
|
282
|
+
|
|
281
283
|
After the product shape is known, Claude Code may also install or copy stack-specific agents and rules into `.claude/`. Codex-discoverable workflow skills belong in `.agents/skills/`. Follow `Harness/extension.md` for every added asset.
|
|
282
|
-
|
|
283
|
-
Examples:
|
|
284
|
-
|
|
285
|
-
```text
|
|
286
|
-
This is a React TypeScript SaaS app. Add frontend testing and review agents.
|
|
287
|
-
This is a Python data product. Add data pipeline and pytest workflow agents.
|
|
288
|
-
This is a Go service. Add API, security, and integration-test agents.
|
|
289
|
-
```
|
|
290
|
-
|
|
291
|
-
## Cleanup (Isolate & Remove)
|
|
292
|
-
|
|
293
|
-
This file is designed to be orphaned. When all configuration is complete:
|
|
294
|
-
|
|
295
|
-
1. Open `CLAUDE.md`.
|
|
296
|
-
2. Delete this file.
|
|
297
|
-
|
|
298
|
-
```bash
|
|
299
|
-
rm Harness/SETUP.md
|
|
300
|
-
```
|
|
301
|
-
|
|
302
|
-
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.
|
|
303
|
-
|
|
304
|
-
---
|
|
305
|
-
|
|
306
|
-
## For Agents (Self-Bootstrapping)
|
|
307
|
-
|
|
308
|
-
If you are an AI agent running `create-harness-vibe-coding` to scaffold your own project harness, use non-interactive mode:
|
|
309
|
-
|
|
310
|
-
```bash
|
|
311
|
-
npx create-harness-vibe-coding@latest <project-name> <target-dir> -y --on-conflict skip --json
|
|
312
|
-
```
|
|
313
|
-
|
|
314
|
-
Example:
|
|
315
|
-
|
|
316
|
-
```bash
|
|
317
|
-
npx create-harness-vibe-coding@latest my-agent-project ./my-agent-project -y --on-conflict skip --json
|
|
318
|
-
```
|
|
319
|
-
|
|
320
|
-
After scaffolding, use the JSON output first. Files in `plan.create[]` were handled by the script; only files in `agent.aiMergeRequired[]` need AI merge work. Then bootstrap the harness yourself:
|
|
321
|
-
|
|
322
|
-
1. Read `CLAUDE.md`, `Harness/MEMORY.md`, and `Harness/README.md`.
|
|
323
|
-
2. Follow the Required Bootstrap Sequence above.
|
|
284
|
+
|
|
285
|
+
Examples:
|
|
286
|
+
|
|
287
|
+
```text
|
|
288
|
+
This is a React TypeScript SaaS app. Add frontend testing and review agents.
|
|
289
|
+
This is a Python data product. Add data pipeline and pytest workflow agents.
|
|
290
|
+
This is a Go service. Add API, security, and integration-test agents.
|
|
291
|
+
```
|
|
292
|
+
|
|
293
|
+
## Cleanup (Isolate & Remove)
|
|
294
|
+
|
|
295
|
+
This file is designed to be orphaned. When all configuration is complete:
|
|
296
|
+
|
|
297
|
+
1. Open `CLAUDE.md`. Confirm the setup line reads the bootstrap-only contract (starts with: ``Harness/SETUP.md` is a bootstrap-only document``). It stays valid after this file is deleted.
|
|
298
|
+
2. Delete this file.
|
|
299
|
+
|
|
300
|
+
```bash
|
|
301
|
+
rm Harness/SETUP.md
|
|
302
|
+
```
|
|
303
|
+
|
|
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.
|
|
305
|
+
|
|
306
|
+
---
|
|
307
|
+
|
|
308
|
+
## For Agents (Self-Bootstrapping)
|
|
309
|
+
|
|
310
|
+
If you are an AI agent running `create-harness-vibe-coding` to scaffold your own project harness, use non-interactive mode:
|
|
311
|
+
|
|
312
|
+
```bash
|
|
313
|
+
npx create-harness-vibe-coding@latest <project-name> <target-dir> -y --on-conflict skip --json
|
|
314
|
+
```
|
|
315
|
+
|
|
316
|
+
Example:
|
|
317
|
+
|
|
318
|
+
```bash
|
|
319
|
+
npx create-harness-vibe-coding@latest my-agent-project ./my-agent-project -y --on-conflict skip --json
|
|
320
|
+
```
|
|
321
|
+
|
|
322
|
+
After scaffolding, use the JSON output first. Files in `plan.create[]` were handled by the script; only files in `agent.aiMergeRequired[]` need AI merge work. Then bootstrap the harness yourself:
|
|
323
|
+
|
|
324
|
+
1. Read `CLAUDE.md`, `Harness/MEMORY.md`, and `Harness/README.md`.
|
|
325
|
+
2. Follow the Required Bootstrap Sequence above.
|
|
324
326
|
3. Run `node Harness/scripts/validate-harness.mjs` after install. Run `node Harness/scripts/validate-harness.mjs --strict` after bootstrap resolves project-fact placeholders.
|
|
325
|
-
4. Delete `Harness/SETUP.md`.
|
|
327
|
+
4. Delete `Harness/SETUP.md`.
|