create-harness-vibe-coding 0.8.3 → 0.8.5
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 +2 -2
- package/README.md +2 -3
- package/package.json +1 -2
- package/src/generator.js +4 -5
- package/templates/common/.claude/agents/context-master.md +3 -2
- package/templates/common/.claude/agents/memory-master.md +3 -2
- package/templates/common/.claude/agents/tdd-guide.md +45 -19
- package/templates/common/.claude/agents/test-writer.md +52 -38
- package/templates/common/.claude/commands/wf-help.md +21 -0
- package/templates/common/.claude/rules/ecc/common.md +1 -1
- package/templates/common/.claude/settings.json +33 -90
- package/templates/common/.claude/skills/tdd/SKILL.md +18 -11
- package/templates/common/.claude/skills/wf-auto/SKILL.md +1 -1
- package/templates/common/.claude/skills/wf-remove/SKILL.md +26 -13
- package/templates/common/.codex/config.toml +0 -2
- package/templates/common/.harness-version +57 -39
- package/templates/common/AGENTS.md +7 -6
- package/templates/common/CLAUDE.md +3 -4
- package/templates/common/Harness/ACCEPTANCE_PROTOCOL.md +170 -0
- package/templates/common/Harness/AGENT_ISOLATION.md +73 -0
- package/templates/common/Harness/DEBUG_PROTOCOL.md +64 -0
- package/templates/common/Harness/ECC-GUIDE.md +4 -4
- package/templates/common/Harness/HARNESS_BRIDGE.md +128 -0
- package/templates/common/Harness/MEMORY_PROTOCOL.md +114 -0
- package/templates/common/Harness/README.md +31 -16
- package/templates/common/Harness/TDD-GUIDE.md +138 -56
- package/templates/common/Harness/WF-AUTO.md +77 -16
- package/templates/common/Harness/WF-MAX.md +81 -22
- package/templates/common/Harness/WF.md +38 -18
- package/templates/common/Harness/agent-workflow.md +47 -22
- package/templates/common/Harness/context-loading.md +33 -32
- package/templates/common/Harness/dispatch.md +10 -4
- package/templates/common/Harness/extension.md +3 -3
- package/templates/common/Harness/lifecycle.md +19 -13
- package/templates/common/Harness/research/PRD.md +18 -9
- package/templates/common/Harness/subagents.md +41 -14
- package/templates/common/Harness/tasks/_template/NAMING.md +2 -2
- package/templates/common/Harness/tasks/_template/PLAN.md +53 -11
- package/templates/common/Harness/templates/ACCEPTANCE.template.md +20 -0
- package/templates/common/Harness/templates/API_CONTRACT.template.md +40 -0
- package/templates/common/Harness/templates/PLAYWRIGHT_SPEC.template.ts +21 -0
- package/templates/common/Harness/templates/PRD.template.md +45 -0
- package/templates/common/Harness/templates/TEST_PLAN.template.md +14 -0
- package/templates/common/Harness/templates/UI_CONTRACT.template.md +11 -0
- package/templates/common/Harness/templates/VALIDATION_REPORT.template.md +20 -0
- package/templates/common/MEMORY.md +14 -3
- package/templates/common/README.md +1 -1
- package/templates/common/SETUP.md +24 -20
- package/templates/common/scripts/validate-harness.mjs +137 -41
- package/templates/common/scripts/wf-remove.mjs +123 -56
- package/templates/optional/skills/browser-e2e/Harness/workflows/browser-e2e.md +11 -3
- package/templates/optional/skills/ts-react-frontend/Harness/workflows/ts-react-frontend.md +1 -1
- package/templates/common/.codex/hooks.json +0 -59
- package/templates/common/scripts/wf-mode-hook.mjs +0 -642
- package/templates/common/scripts/wf-statusline.ps1 +0 -62
- package/templates/common/scripts/wf-statusline.sh +0 -67
package/README-CN.md
CHANGED
|
@@ -29,7 +29,7 @@ npx create-harness-vibe-coding@latest my-project
|
|
|
29
29
|
| `Harness/tasks/` + `Harness/PROGRESS.md` | 跨会话任务状态 |
|
|
30
30
|
| `.claude/skills/` | Claude Code workflow skill 入口 |
|
|
31
31
|
| `.agents/skills/` | Codex repo skill 入口 |
|
|
32
|
-
| `.codex/` | Codex
|
|
32
|
+
| `.codex/` | Codex config |
|
|
33
33
|
| `/wf` / `$wf` | 长任务 workflow |
|
|
34
34
|
| `/wf-max` / `$wf-max` | 最大并行 workflow |
|
|
35
35
|
| `/wf-review` / `$wf-review` | 交叉审查 workflow |
|
|
@@ -41,7 +41,7 @@ Claude Code 和 Codex 共用同一套核心 Harness 文档,但发现入口不
|
|
|
41
41
|
|
|
42
42
|
- Claude Code:`.claude/skills/<name>/SKILL.md`,通常用 `/wf` 调用。
|
|
43
43
|
- Codex:`.agents/skills/<name>/SKILL.md`,通常用 `$wf` 或 `/skills` 调用。
|
|
44
|
-
- `.codex/` 只放 Codex
|
|
44
|
+
- `.codex/` 只放 Codex 配置;runtime hooks 默认不存在,只有 `/wf-auto` 可以显式使用 bounded tick hook 辅助长链路运行。不要再使用根目录 `commands/*.toml` 伪装 Codex slash command。
|
|
45
45
|
|
|
46
46
|
## 安装或升级路径
|
|
47
47
|
|
package/README.md
CHANGED
|
@@ -234,12 +234,11 @@ my-project/
|
|
|
234
234
|
│ └── rules/ ← Universal coding rules
|
|
235
235
|
├── .agents/
|
|
236
236
|
│ └── skills/ ← Codex repo skills
|
|
237
|
-
├── .codex/
|
|
238
|
-
│ └── hooks.json ← Codex hook bridge
|
|
237
|
+
├── .codex/ ← Codex config
|
|
239
238
|
└── tests/
|
|
240
239
|
```
|
|
241
240
|
|
|
242
|
-
`Harness/` holds all harness docs. Tool-discovery folders stay at root: `.claude/` for Claude Code, `.agents/skills/` for Codex repo skills, and `.codex/` for Codex config
|
|
241
|
+
`Harness/` holds all harness docs. Tool-discovery folders stay at root: `.claude/` for Claude Code, `.agents/skills/` for Codex repo skills, and `.codex/` for Codex config. Runtime hooks are absent by default; only `/wf-auto` may opt into a bounded tick hook.
|
|
243
242
|
|
|
244
243
|
---
|
|
245
244
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "create-harness-vibe-coding",
|
|
3
|
-
"version": "0.8.
|
|
3
|
+
"version": "0.8.5",
|
|
4
4
|
"description": "Scaffold a 0-1 product harness for AI-assisted research, PRD, planning, architecture, build, test, and feedback loops",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|
|
@@ -16,7 +16,6 @@
|
|
|
16
16
|
"start": "node src/index.js",
|
|
17
17
|
"build:version": "node scripts/build-version.mjs",
|
|
18
18
|
"prepush": "node scripts/pre-push-check.mjs",
|
|
19
|
-
"prepush:install": "node scripts/pre-push-check.mjs --install",
|
|
20
19
|
"test": "node --test tests/*.test.js",
|
|
21
20
|
"test:smoke": "node --test tests/cli-smoke.test.js",
|
|
22
21
|
"pack:smoke": "node --test tests/pack-smoke.test.js"
|
package/src/generator.js
CHANGED
|
@@ -67,11 +67,10 @@ const pkg = JSON.parse(fs.readFileSync(path.resolve(__dirname, '../package.json'
|
|
|
67
67
|
const TEMPLATES_DIR = path.resolve(__dirname, '..', 'templates', 'common');
|
|
68
68
|
const OPTIONAL_DIR = path.resolve(__dirname, '..', 'templates', 'optional');
|
|
69
69
|
const OPTIONAL_CATALOG = path.join(OPTIONAL_DIR, 'catalog.json');
|
|
70
|
-
const VALID_CONFLICT_POLICIES = new Set(['fail', 'skip', 'backup', 'overwrite']);
|
|
71
|
-
const EMPTY_DIRS = [
|
|
72
|
-
'
|
|
73
|
-
|
|
74
|
-
];
|
|
70
|
+
const VALID_CONFLICT_POLICIES = new Set(['fail', 'skip', 'backup', 'overwrite']);
|
|
71
|
+
const EMPTY_DIRS = [
|
|
72
|
+
'tests',
|
|
73
|
+
];
|
|
75
74
|
|
|
76
75
|
export function harnessDest(file) {
|
|
77
76
|
if (file === '.harness-version') return 'Harness/.harness-version';
|
|
@@ -11,8 +11,9 @@ You are a context analysis agent. You analyze the current conversation and proje
|
|
|
11
11
|
|
|
12
12
|
Load first:
|
|
13
13
|
|
|
14
|
-
- `Harness/MEMORY.md`
|
|
15
|
-
- `Harness/
|
|
14
|
+
- `Harness/MEMORY.md`
|
|
15
|
+
- `Harness/MEMORY_PROTOCOL.md`
|
|
16
|
+
- `Harness/tasks/<task-id>/PROGRESS.md` and `Harness/tasks/<task-id>/PLAN.md` when available
|
|
16
17
|
- The current feature doc (if one exists)
|
|
17
18
|
- `Harness/memory/` files for dedup checking
|
|
18
19
|
|
|
@@ -11,8 +11,9 @@ You are a memory management agent for this project harness. You own durable memo
|
|
|
11
11
|
|
|
12
12
|
Load first:
|
|
13
13
|
|
|
14
|
-
- `Harness/MEMORY.md`
|
|
15
|
-
- `Harness/
|
|
14
|
+
- `Harness/MEMORY.md`
|
|
15
|
+
- `Harness/MEMORY_PROTOCOL.md`
|
|
16
|
+
- `Harness/memory/tool-usage-reflections.md`
|
|
16
17
|
- `Harness/memory/user-corrections-preferences.md`
|
|
17
18
|
- `Harness/memory/agent-lessons-patterns.md`
|
|
18
19
|
- `Harness/tasks/<task-id>/PROGRESS.md` and `Harness/tasks/<task-id>/PLAN.md` for current task context
|
|
@@ -1,55 +1,81 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: tdd-guide
|
|
3
|
-
description: Test-Driven Development specialist enforcing write-tests-first methodology. Use PROACTIVELY when writing new features, fixing bugs,
|
|
3
|
+
description: Test-Driven Development specialist enforcing AC-linked write-tests-first methodology. Use PROACTIVELY when writing new features, fixing bugs, refactoring code, or adding browser-visible behavior.
|
|
4
4
|
tools: Read, Write, Edit, Bash, Grep, Glob
|
|
5
5
|
model: sonnet
|
|
6
6
|
---
|
|
7
7
|
|
|
8
8
|
# TDD Guide Agent
|
|
9
9
|
|
|
10
|
-
Enforces TDD
|
|
10
|
+
Enforces acceptance-driven TDD. Load these before writing tests:
|
|
11
|
+
|
|
12
|
+
1. `Harness/ACCEPTANCE_PROTOCOL.md`
|
|
13
|
+
2. `Harness/HARNESS_BRIDGE.md`
|
|
14
|
+
3. `Harness/AGENT_ISOLATION.md`
|
|
15
|
+
4. `Harness/TDD-GUIDE.md`
|
|
16
|
+
5. ECC testing rules for the project stack
|
|
17
|
+
6. Current task `PLAN.md`
|
|
11
18
|
|
|
12
19
|
## Inputs Required
|
|
13
20
|
|
|
14
|
-
- Task description and acceptance criteria from PLAN.md
|
|
15
|
-
-
|
|
16
|
-
-
|
|
21
|
+
- Task description, Mini PRD, and acceptance criteria from PLAN.md
|
|
22
|
+
- UI/API/state contracts for affected behavior
|
|
23
|
+
- Current test coverage status and configured threshold
|
|
24
|
+
- Stack-specific testing tools such as Playwright, Jest, Vitest, Pytest, or Go test
|
|
17
25
|
|
|
18
26
|
## Workflow
|
|
19
27
|
|
|
20
|
-
1.
|
|
21
|
-
2.
|
|
22
|
-
3.
|
|
23
|
-
4.
|
|
28
|
+
1. Read AC IDs, contracts, and verification commands.
|
|
29
|
+
2. Choose the correct test layer for each AC.
|
|
30
|
+
3. For browser-visible ACs, write Playwright/CDP or documented real-browser tests that perform real user actions.
|
|
31
|
+
4. For API ACs, write request/response contract tests, including error cases.
|
|
32
|
+
5. Run the target tests and verify RED for the expected product reason.
|
|
33
|
+
6. Report test file paths, AC IDs, expected failures, and required evidence to the Implementer.
|
|
34
|
+
|
|
35
|
+
Do NOT write implementation code. Only tests, fixtures, mocks, and test configuration.
|
|
36
|
+
|
|
37
|
+
## Browser Acceptance Rules
|
|
24
38
|
|
|
25
|
-
|
|
39
|
+
- Syntax checks, type checks, imports, shallow renders, and snapshots are not acceptance tests for browser-visible behavior.
|
|
40
|
+
- Tests must interact through stable selectors such as `data-testid` or accessible roles.
|
|
41
|
+
- Tests must click, type, submit, navigate, or otherwise exercise the real user path.
|
|
42
|
+
- Tests must assert visible DOM plus relevant route/state/localStorage changes.
|
|
43
|
+
- Frontend-backend flows must assert network URL, method, payload, response handling, and duplicate-request behavior when applicable.
|
|
44
|
+
- Evidence must include screenshot, trace, video, log, or validation report path.
|
|
26
45
|
|
|
27
46
|
## Allowed Write Set
|
|
28
47
|
|
|
29
|
-
- Test files only (`*.test.ts`, `*.test.tsx`, `test_*.py`, `*_test.go`, etc.)
|
|
30
|
-
- Test fixtures and mocks
|
|
48
|
+
- Test files only (`*.test.ts`, `*.test.tsx`, `*.spec.ts`, `test_*.py`, `*_test.go`, etc.)
|
|
49
|
+
- Test fixtures, test data seeders, and mocks
|
|
31
50
|
- Test configuration files
|
|
32
51
|
|
|
33
52
|
## Forbidden
|
|
34
53
|
|
|
35
54
|
- Production/source code changes
|
|
55
|
+
- Reading implementation code to reverse-engineer acceptance tests
|
|
56
|
+
- Modifying PRD, acceptance criteria, UI contracts, or API contracts
|
|
36
57
|
- Loosening existing test assertions
|
|
58
|
+
- Replacing real UI acceptance with syntax-only assertions
|
|
37
59
|
- Deleting existing tests without explicit approval
|
|
38
60
|
|
|
39
61
|
## Verification
|
|
40
62
|
|
|
41
|
-
- Test MUST fail before handing off to Implementer
|
|
42
|
-
- Test MUST cover
|
|
43
|
-
-
|
|
63
|
+
- Test MUST fail before handing off to Implementer.
|
|
64
|
+
- Test MUST cover AC IDs, happy path, error path, and relevant empty/loading/disabled states.
|
|
65
|
+
- Browser-visible ACs MUST use real user actions through Playwright/CDP or documented real-browser validation.
|
|
66
|
+
- Run the smallest target command for RED evidence, then report the broader verification command expected after implementation.
|
|
44
67
|
|
|
45
68
|
## Return Format
|
|
46
69
|
|
|
47
70
|
```text
|
|
48
71
|
Agent: tdd-guide
|
|
49
72
|
Task: <task-id>
|
|
73
|
+
AC IDs covered: <AC-001, AC-002, ...>
|
|
50
74
|
Tests written: <file paths>
|
|
51
|
-
Coverage before:
|
|
52
|
-
Expected coverage after:
|
|
53
|
-
Failing tests: <
|
|
54
|
-
|
|
75
|
+
Coverage before: <value or unknown>
|
|
76
|
+
Expected coverage after: <value or threshold>
|
|
77
|
+
Failing tests: <test names and expected failure reasons>
|
|
78
|
+
UI evidence required: <screenshot/trace/video/log paths or N/A>
|
|
79
|
+
Network assertions required: <URL/method/payload/response assertions or N/A>
|
|
80
|
+
Next: Dispatch Implementer to make AC-linked tests pass without modifying truth files
|
|
55
81
|
```
|
|
@@ -1,38 +1,52 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: test-writer
|
|
3
|
-
description: Use to define or write failing tests and manual verification steps before implementation.
|
|
4
|
-
tools: Read, Grep, Glob, Write, Edit, MultiEdit, Bash
|
|
5
|
-
model: sonnet
|
|
6
|
-
---
|
|
7
|
-
|
|
8
|
-
# Test Writer
|
|
9
|
-
|
|
10
|
-
You are a test-first agent for this project harness.
|
|
11
|
-
|
|
12
|
-
Load first:
|
|
13
|
-
|
|
14
|
-
- current PRD or feature doc
|
|
15
|
-
- `Harness/
|
|
16
|
-
- `Harness/
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
-
|
|
28
|
-
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
-
|
|
36
|
-
-
|
|
37
|
-
-
|
|
38
|
-
-
|
|
1
|
+
---
|
|
2
|
+
name: test-writer
|
|
3
|
+
description: Use to define or write AC-linked failing tests and manual verification steps before implementation.
|
|
4
|
+
tools: Read, Grep, Glob, Write, Edit, MultiEdit, Bash
|
|
5
|
+
model: sonnet
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# Test Writer
|
|
9
|
+
|
|
10
|
+
You are a test-first agent for this project harness. You write tests from PRD-derived Acceptance Criteria, not from implementation code.
|
|
11
|
+
|
|
12
|
+
Load first:
|
|
13
|
+
|
|
14
|
+
- current PRD or feature doc
|
|
15
|
+
- `Harness/ACCEPTANCE_PROTOCOL.md`
|
|
16
|
+
- `Harness/HARNESS_BRIDGE.md` for UI/API/browser flows
|
|
17
|
+
- `Harness/AGENT_ISOLATION.md`
|
|
18
|
+
- `Harness/TDD-GUIDE.md`
|
|
19
|
+
- `Harness/tasks/<task-id>/PROGRESS.md` and `Harness/tasks/<task-id>/PLAN.md` when available
|
|
20
|
+
- `Harness/agent-workflow.md`
|
|
21
|
+
|
|
22
|
+
Inputs you must receive:
|
|
23
|
+
|
|
24
|
+
- AC IDs and acceptance criteria
|
|
25
|
+
- UI/API/state contracts, if behavior crosses those boundaries
|
|
26
|
+
- test write set
|
|
27
|
+
- forbidden scope
|
|
28
|
+
- verification command or manual check target
|
|
29
|
+
|
|
30
|
+
Rules:
|
|
31
|
+
|
|
32
|
+
- Write only inside the declared test write set.
|
|
33
|
+
- Do not write production code.
|
|
34
|
+
- Do not read implementation code to reverse-engineer expected behavior.
|
|
35
|
+
- Prefer the smallest failing test that proves the AC.
|
|
36
|
+
- Include AC IDs in test names, comments, or the validation matrix.
|
|
37
|
+
- For browser-visible behavior, syntax checks, imports, shallow renders, snapshots, and type/lint/build checks are not acceptance tests.
|
|
38
|
+
- For browser-visible behavior, write a real user-path test: open the page, click/type/select/submit through stable selectors, then assert visible DOM plus route/state/storage changes.
|
|
39
|
+
- For frontend-backend behavior, assert network URL, method, payload, response handling, and duplicate-request behavior with Playwright request capture, CDP, or Harness Bridge.
|
|
40
|
+
- If automation is not feasible yet, write a concrete manual browser check with selectors, user actions, expected DOM/state/API evidence, and screenshot/trace requirements.
|
|
41
|
+
- Do not weaken existing tests.
|
|
42
|
+
- Do not modify PRD, acceptance criteria, UI contracts, or API contracts.
|
|
43
|
+
|
|
44
|
+
Return:
|
|
45
|
+
|
|
46
|
+
- AC IDs covered
|
|
47
|
+
- changed test files or manual check
|
|
48
|
+
- expected RED failure before implementation
|
|
49
|
+
- verification command
|
|
50
|
+
- required evidence paths: screenshot, trace, video, log, or report
|
|
51
|
+
- network assertions, if applicable
|
|
52
|
+
- risks or gaps
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
# /wf-help
|
|
2
|
+
|
|
3
|
+
Return this help table directly. Do not invoke a skill, do not start WF mode,
|
|
4
|
+
do not dispatch agents, and do not edit files.
|
|
5
|
+
|
|
6
|
+
| Command | Type | Usage | Purpose |
|
|
7
|
+
| --- | --- | --- | --- |
|
|
8
|
+
| `/wf-help` | direct command | `/wf-help` | Show this command table. |
|
|
9
|
+
| `/wf <task>` | workflow skill | `/wf fix failing login flow` | Standard acceptance-driven workflow for long, uncertain, multi-file, browser/API, or recovery work. |
|
|
10
|
+
| `/wf-max <task>` | workflow skill | `/wf-max refactor auth module` | Maximum-parallelism workflow with CEO -> Manager -> Worker dispatch, write-set coloring, independent review, and validation. |
|
|
11
|
+
| `/wf-auto` | workflow skill | `/wf-auto` | Perpetual auto-optimization loop using bounded cycles, 8-angle exhaustion, evidence ledger, and optional wf-auto-only tick hook. |
|
|
12
|
+
| `/wf-auto-spark` | workflow skill | `/wf-auto-spark` | Perpetual inspiration mode with roadmap anchoring and external spark search. |
|
|
13
|
+
| `/wf-review <focus>` | workflow skill | `/wf-review security and test coverage` | Cross-model peer review through the other CLI; use for second opinions and risk checks. |
|
|
14
|
+
| `/wf-learn` | workflow skill | `/wf-learn` | Force context-master -> memory-master learning cycle after repeated failures or closeout. |
|
|
15
|
+
| `/wf-browser <task>` | optional workflow skill | `/wf-browser verify checkout flow` | Browser automation/E2E workflow with real UI interaction, screenshots, traces, and CDP/network evidence when installed. |
|
|
16
|
+
| `/wf-readme <task>` | workflow skill | `/wf-readme polish quickstart` | Preserve, merge, or improve README docs without trampling existing project documentation. |
|
|
17
|
+
| `/wf-update` | workflow skill | `/wf-update` | Check/apply Harness scaffold updates with safe file classification and conflict handling. |
|
|
18
|
+
| `/wf-remove` | workflow skill | `/wf-remove` | Safely remove Harness files while preserving project/user data unless explicitly purged. |
|
|
19
|
+
|
|
20
|
+
Source of truth: `Harness/README.md#Skill Commands` plus installed skills under
|
|
21
|
+
`.claude/skills/`.
|
|
@@ -25,7 +25,7 @@ alwaysApply: true
|
|
|
25
25
|
- Use `Harness/subagents.md` before orchestrating multiple agents.
|
|
26
26
|
- Use `Harness/context-loading.md` before spawning.
|
|
27
27
|
- Use `Harness/dispatch.md` before parallel or multi-agent work.
|
|
28
|
-
- Use `Harness/extension.md` before adding stack-specific agents, skills,
|
|
28
|
+
- Use `Harness/extension.md` before adding stack-specific agents, skills, or rules.
|
|
29
29
|
- Every subagent needs role, task, read boundary, write boundary, and return format.
|
|
30
30
|
- Writing agents must run serially unless write sets are disjoint.
|
|
31
31
|
- If the runtime cannot spawn subagents, emulate the same role pack in a separate bounded pass.
|
|
@@ -1,90 +1,33 @@
|
|
|
1
|
-
{
|
|
2
|
-
"$schema": "https://json.schemastore.org/claude-code-settings.json",
|
|
3
|
-
"permissions": {
|
|
4
|
-
"allow": [
|
|
5
|
-
"Bash(git *)",
|
|
6
|
-
"Bash(npm *)",
|
|
7
|
-
"Bash(npx *)",
|
|
8
|
-
"Bash(python *)",
|
|
9
|
-
"Bash(pytest *)",
|
|
10
|
-
"Bash(pip *)",
|
|
11
|
-
"Bash(go *)",
|
|
12
|
-
"Bash(cargo *)",
|
|
13
|
-
"Bash(node *)",
|
|
14
|
-
"Read",
|
|
15
|
-
"Glob",
|
|
16
|
-
"Grep",
|
|
17
|
-
"WebFetch",
|
|
18
|
-
"WebSearch"
|
|
19
|
-
],
|
|
20
|
-
"deny": [
|
|
21
|
-
"EnterPlanMode",
|
|
22
|
-
"Bash(rm -rf *)",
|
|
23
|
-
"Bash(sudo *)",
|
|
24
|
-
"Bash(curl *)",
|
|
25
|
-
"Bash(wget *)",
|
|
26
|
-
"Bash(> *)",
|
|
27
|
-
"Read(.env*)",
|
|
28
|
-
"Read(**/secrets/**)",
|
|
29
|
-
"Read(**/*.key)",
|
|
30
|
-
"Read(**/*.pem)"
|
|
31
|
-
]
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
"SessionStart": [
|
|
35
|
-
{
|
|
36
|
-
"matcher": "",
|
|
37
|
-
"hooks": [
|
|
38
|
-
{
|
|
39
|
-
"type": "command",
|
|
40
|
-
"command": "node Harness/scripts/wf-mode-hook.mjs"
|
|
41
|
-
}
|
|
42
|
-
]
|
|
43
|
-
}
|
|
44
|
-
],
|
|
45
|
-
"UserPromptSubmit": [
|
|
46
|
-
{
|
|
47
|
-
"matcher": "",
|
|
48
|
-
"hooks": [
|
|
49
|
-
{
|
|
50
|
-
"type": "command",
|
|
51
|
-
"command": "node Harness/scripts/wf-mode-hook.mjs"
|
|
52
|
-
}
|
|
53
|
-
]
|
|
54
|
-
}
|
|
55
|
-
],
|
|
56
|
-
"PreToolUse": [
|
|
57
|
-
{
|
|
58
|
-
"matcher": "Edit|Write|MultiEdit|Bash",
|
|
59
|
-
"hooks": [
|
|
60
|
-
{
|
|
61
|
-
"type": "command",
|
|
62
|
-
"command": "node Harness/scripts/wf-mode-hook.mjs"
|
|
63
|
-
}
|
|
64
|
-
]
|
|
65
|
-
}
|
|
66
|
-
],
|
|
67
|
-
"PostToolUse": [
|
|
68
|
-
{
|
|
69
|
-
"matcher": "",
|
|
70
|
-
"hooks": [
|
|
71
|
-
{
|
|
72
|
-
"type": "command",
|
|
73
|
-
"command": "node Harness/scripts/wf-mode-hook.mjs"
|
|
74
|
-
}
|
|
75
|
-
]
|
|
76
|
-
}
|
|
77
|
-
],
|
|
78
|
-
"Stop": [
|
|
79
|
-
{
|
|
80
|
-
"matcher": "",
|
|
81
|
-
"hooks": [
|
|
82
|
-
{
|
|
83
|
-
"type": "command",
|
|
84
|
-
"command": "node Harness/scripts/wf-mode-hook.mjs"
|
|
85
|
-
}
|
|
86
|
-
]
|
|
87
|
-
}
|
|
88
|
-
]
|
|
89
|
-
}
|
|
90
|
-
}
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json.schemastore.org/claude-code-settings.json",
|
|
3
|
+
"permissions": {
|
|
4
|
+
"allow": [
|
|
5
|
+
"Bash(git *)",
|
|
6
|
+
"Bash(npm *)",
|
|
7
|
+
"Bash(npx *)",
|
|
8
|
+
"Bash(python *)",
|
|
9
|
+
"Bash(pytest *)",
|
|
10
|
+
"Bash(pip *)",
|
|
11
|
+
"Bash(go *)",
|
|
12
|
+
"Bash(cargo *)",
|
|
13
|
+
"Bash(node *)",
|
|
14
|
+
"Read",
|
|
15
|
+
"Glob",
|
|
16
|
+
"Grep",
|
|
17
|
+
"WebFetch",
|
|
18
|
+
"WebSearch"
|
|
19
|
+
],
|
|
20
|
+
"deny": [
|
|
21
|
+
"EnterPlanMode",
|
|
22
|
+
"Bash(rm -rf *)",
|
|
23
|
+
"Bash(sudo *)",
|
|
24
|
+
"Bash(curl *)",
|
|
25
|
+
"Bash(wget *)",
|
|
26
|
+
"Bash(> *)",
|
|
27
|
+
"Read(.env*)",
|
|
28
|
+
"Read(**/secrets/**)",
|
|
29
|
+
"Read(**/*.key)",
|
|
30
|
+
"Read(**/*.pem)"
|
|
31
|
+
]
|
|
32
|
+
}
|
|
33
|
+
}
|
|
@@ -14,17 +14,24 @@ Thin tool adapter. Authoritative guide: `Harness/TDD-GUIDE.md`.
|
|
|
14
14
|
|
|
15
15
|
## Load
|
|
16
16
|
|
|
17
|
-
1. `Harness/
|
|
18
|
-
2.
|
|
19
|
-
3.
|
|
17
|
+
1. `Harness/ACCEPTANCE_PROTOCOL.md`
|
|
18
|
+
2. `Harness/HARNESS_BRIDGE.md`
|
|
19
|
+
3. `Harness/AGENT_ISOLATION.md`
|
|
20
|
+
4. `Harness/TDD-GUIDE.md`
|
|
21
|
+
5. ECC stack-specific testing rules (for example `typescript/testing.md`, `python/testing.md`)
|
|
22
|
+
6. Current task `PLAN.md`
|
|
20
23
|
|
|
21
24
|
## Rules
|
|
22
25
|
|
|
23
|
-
1. **
|
|
24
|
-
2. **
|
|
25
|
-
3. **
|
|
26
|
-
4. **
|
|
27
|
-
5. **
|
|
28
|
-
6. **
|
|
29
|
-
7. **
|
|
30
|
-
8. **
|
|
26
|
+
1. **AC first**: Tests are derived from PRD acceptance criteria and must reference AC IDs.
|
|
27
|
+
2. **RED first**: Write failing tests before ANY implementation code.
|
|
28
|
+
3. **UI means real user path**: Browser-visible behavior requires Playwright/CDP or documented real-browser clicks, typing, navigation, and visible assertions.
|
|
29
|
+
4. **No syntax-only acceptance**: Typecheck, lint, build, import tests, shallow renders, and snapshots cannot satisfy browser-visible ACs by themselves.
|
|
30
|
+
5. **Network-aware**: Frontend-backend ACs require URL, method, payload, response, and duplicate-request assertions when applicable.
|
|
31
|
+
6. **GREEN minimal**: Write only enough implementation to pass the AC-linked tests.
|
|
32
|
+
7. **REFACTOR safe**: Improve code while keeping all tests green.
|
|
33
|
+
8. **Coverage gate**: Meet the configured project coverage threshold before marking task complete.
|
|
34
|
+
9. **AAA structure**: Arrange -> Act -> Assert.
|
|
35
|
+
10. **Role isolation**: Test Writer must not reverse-engineer tests from implementation code. Implementer must not modify PRD, AC, UI contract, or API contract except through Change Request.
|
|
36
|
+
11. **Evidence required**: Record RED, GREEN, full-check output, and for UI flows screenshot/trace/video/log evidence plus an AC-by-AC result matrix.
|
|
37
|
+
12. **WF-MAX**: Acceptance/Test Writer wave completes before any Implementer wave starts.
|
|
@@ -7,7 +7,7 @@ description: Perpetual auto-optimization mode. Never stops — continuously impr
|
|
|
7
7
|
|
|
8
8
|
## Load (authoritative specs)
|
|
9
9
|
|
|
10
|
-
- `Harness/WF-AUTO.md` — full spec: perpetual loop, state machine, 8-angle exhaustion gate, cross-model oracle, spark candidate provider, Value Gate scoring, evidence ledger, Intent Checkpoints, anti-patterns, safety controls
|
|
10
|
+
- `Harness/WF-AUTO.md` — full spec: perpetual loop, state machine, 8-angle exhaustion gate, cross-model oracle, spark candidate provider, Value Gate scoring, evidence ledger, Intent Checkpoints, anti-patterns, safety controls
|
|
11
11
|
- `Harness/subagents.md` — agent roster, controller role, efficiency ladder
|
|
12
12
|
- `Harness/dispatch.md` — handoff format, File claim, Concurrency group fields
|
|
13
13
|
- `Harness/agent-workflow.md` — build/review/test loop, cohesion rule, completion gate
|
|
@@ -1,14 +1,17 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: wf-remove
|
|
3
|
-
description: Use for /wf-remove in Claude Code, $wf-remove or /skills wf-remove in Codex, or any request to uninstall Harness safely.
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
# WF Remove Adapter
|
|
7
|
-
|
|
1
|
+
---
|
|
2
|
+
name: wf-remove
|
|
3
|
+
description: Use for /wf-remove in Claude Code, $wf-remove or /skills wf-remove in Codex, or any request to uninstall Harness safely.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# WF Remove Adapter
|
|
7
|
+
|
|
8
8
|
## Invocation
|
|
9
9
|
|
|
10
10
|
- Claude Code: use `/wf-remove` or select the `wf-remove` skill.
|
|
11
11
|
- Codex CLI or IDE: use `$wf-remove` or `/skills` then choose `wf-remove`.
|
|
12
|
+
- User-facing removal is the slash/skill command. The Node commands below are
|
|
13
|
+
agent-internal execution steps; do not ask the user to copy/paste them unless
|
|
14
|
+
the agent has no shell/tool access.
|
|
12
15
|
|
|
13
16
|
## Load
|
|
14
17
|
|
|
@@ -17,21 +20,31 @@ description: Use for /wf-remove in Claude Code, $wf-remove or /skills wf-remove
|
|
|
17
20
|
|
|
18
21
|
## Flow
|
|
19
22
|
|
|
20
|
-
1.
|
|
21
|
-
plan.
|
|
22
|
-
2. Auto-remove only SAFE files that still match stored checksums
|
|
23
|
+
1. On plain `/wf-remove`, run `node Harness/scripts/wf-remove.mjs --json` for
|
|
24
|
+
the machine-readable plan, then run the safe default apply command yourself.
|
|
25
|
+
2. Auto-remove only SAFE files that still match stored checksums or exact
|
|
26
|
+
built-in Harness discovery files recognized by the script.
|
|
23
27
|
3. Ask the user before every MODIFIED or uncertain file.
|
|
24
28
|
4. Preserve USER DATA by default. For an explicit thorough uninstall, use
|
|
25
29
|
`--purge-user-data` (alias `--purge`); add `--keep-tasks` when the user wants task records
|
|
26
30
|
retained while project-fact Harness docs are removed.
|
|
27
|
-
5. Run the script, not manual deletes:
|
|
31
|
+
5. Run the script yourself, not manual deletes and not user-side command copy:
|
|
28
32
|
- safe default: `node Harness/scripts/wf-remove.mjs --apply --yes`
|
|
29
33
|
- thorough but keep tasks: `node Harness/scripts/wf-remove.mjs --apply --yes --purge-user-data --keep-tasks`
|
|
30
34
|
- exact modified decisions: add `--delete-modified <path>` for each
|
|
31
35
|
user-approved MODIFIED file.
|
|
36
|
+
6. After apply, verify residual discovery folders:
|
|
37
|
+
- `.claude/agents`
|
|
38
|
+
- `.claude/skills`
|
|
39
|
+
- `.claude/commands`
|
|
40
|
+
- `.claude/rules`
|
|
41
|
+
- `.agents/skills`
|
|
42
|
+
- `.codex`
|
|
43
|
+
Built-in Harness files in these locations should be gone. Custom user skills
|
|
44
|
+
or user-owned files may remain and must be reported, not blindly deleted.
|
|
32
45
|
|
|
33
46
|
## Return
|
|
34
47
|
|
|
35
48
|
Report SAFE removals, MODIFIED keep/delete decisions, preserved USER DATA,
|
|
36
|
-
PURGE removals, directory cleanup,
|
|
37
|
-
status, and `git status` guidance.
|
|
49
|
+
PURGE removals, directory cleanup, `.claude` / `.agents` / `.codex` residual
|
|
50
|
+
status, `.harness-version` status, and `git status` guidance.
|