create-harness-vibe-coding 0.8.3 → 0.8.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (55) hide show
  1. package/README-CN.md +2 -2
  2. package/README.md +2 -3
  3. package/package.json +1 -2
  4. package/src/generator.js +4 -5
  5. package/templates/common/.claude/agents/context-master.md +3 -2
  6. package/templates/common/.claude/agents/memory-master.md +3 -2
  7. package/templates/common/.claude/agents/tdd-guide.md +45 -19
  8. package/templates/common/.claude/agents/test-writer.md +52 -38
  9. package/templates/common/.claude/commands/wf-help.md +21 -0
  10. package/templates/common/.claude/rules/ecc/common.md +1 -1
  11. package/templates/common/.claude/settings.json +33 -90
  12. package/templates/common/.claude/skills/tdd/SKILL.md +18 -11
  13. package/templates/common/.claude/skills/wf-auto/SKILL.md +1 -1
  14. package/templates/common/.codex/config.toml +0 -2
  15. package/templates/common/.harness-version +55 -37
  16. package/templates/common/AGENTS.md +7 -6
  17. package/templates/common/CLAUDE.md +3 -4
  18. package/templates/common/Harness/ACCEPTANCE_PROTOCOL.md +170 -0
  19. package/templates/common/Harness/AGENT_ISOLATION.md +73 -0
  20. package/templates/common/Harness/DEBUG_PROTOCOL.md +64 -0
  21. package/templates/common/Harness/ECC-GUIDE.md +4 -4
  22. package/templates/common/Harness/HARNESS_BRIDGE.md +128 -0
  23. package/templates/common/Harness/MEMORY_PROTOCOL.md +114 -0
  24. package/templates/common/Harness/README.md +31 -16
  25. package/templates/common/Harness/TDD-GUIDE.md +138 -56
  26. package/templates/common/Harness/WF-AUTO.md +77 -16
  27. package/templates/common/Harness/WF-MAX.md +81 -22
  28. package/templates/common/Harness/WF.md +38 -18
  29. package/templates/common/Harness/agent-workflow.md +47 -22
  30. package/templates/common/Harness/context-loading.md +33 -32
  31. package/templates/common/Harness/dispatch.md +10 -4
  32. package/templates/common/Harness/extension.md +3 -3
  33. package/templates/common/Harness/lifecycle.md +19 -13
  34. package/templates/common/Harness/research/PRD.md +18 -9
  35. package/templates/common/Harness/subagents.md +41 -14
  36. package/templates/common/Harness/tasks/_template/NAMING.md +2 -2
  37. package/templates/common/Harness/tasks/_template/PLAN.md +53 -11
  38. package/templates/common/Harness/templates/ACCEPTANCE.template.md +20 -0
  39. package/templates/common/Harness/templates/API_CONTRACT.template.md +40 -0
  40. package/templates/common/Harness/templates/PLAYWRIGHT_SPEC.template.ts +21 -0
  41. package/templates/common/Harness/templates/PRD.template.md +45 -0
  42. package/templates/common/Harness/templates/TEST_PLAN.template.md +14 -0
  43. package/templates/common/Harness/templates/UI_CONTRACT.template.md +11 -0
  44. package/templates/common/Harness/templates/VALIDATION_REPORT.template.md +20 -0
  45. package/templates/common/MEMORY.md +14 -3
  46. package/templates/common/README.md +1 -1
  47. package/templates/common/SETUP.md +24 -20
  48. package/templates/common/scripts/validate-harness.mjs +134 -41
  49. package/templates/common/scripts/wf-remove.mjs +6 -2
  50. package/templates/optional/skills/browser-e2e/Harness/workflows/browser-e2e.md +11 -3
  51. package/templates/optional/skills/ts-react-frontend/Harness/workflows/ts-react-frontend.md +1 -1
  52. package/templates/common/.codex/hooks.json +0 -59
  53. package/templates/common/scripts/wf-mode-hook.mjs +0 -642
  54. package/templates/common/scripts/wf-statusline.ps1 +0 -62
  55. 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 hooks/config |
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 配置和 hooks;不要再使用根目录 `commands/*.toml` 伪装 Codex slash command。
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/hooks.
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",
3
+ "version": "0.8.4",
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
- '.claude/hooks',
73
- 'tests',
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/tasks/<task-id>/PROGRESS.md` and `Harness/tasks/<task-id>/PLAN.md` when available
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/memory/tool-usage-reflections.md`
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, or refactoring code. Ensures 80%+ test coverage.
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 workflow. Load `Harness/TDD-GUIDE.md` first, then ECC testing rules for the project stack.
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
- - Current test coverage status
16
- - Stack-specific testing tools (Jest, Pytest, Go test, etc.)
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. READ acceptance criteria
21
- 2. WRITE failing test (RED)
22
- 3. VERIFY test fails for expected reason
23
- 4. Report test file path and expected failure to Implementer
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
- Do NOT write implementation code. Only tests.
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 acceptance criteria + error paths
43
- - Run `node Harness/scripts/validate-harness.mjs` after significant test additions
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: X%
52
- Expected coverage after: Y%
53
- Failing tests: <list of test names and expected failure reasons>
54
- Next: Dispatch Implementer to make tests pass
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/tasks/<task-id>/PROGRESS.md` and `Harness/tasks/<task-id>/PLAN.md` when available
16
- - `Harness/agent-workflow.md`
17
-
18
- Inputs you must receive:
19
-
20
- - acceptance criteria
21
- - test write set
22
- - forbidden scope
23
- - verification command or manual check target
24
-
25
- Rules:
26
-
27
- - Write only inside the declared test write set.
28
- - Do not write production code.
29
- - Prefer the smallest failing test that proves the required behavior.
30
- - If automation is not feasible yet, write a concrete manual check.
31
- - Do not weaken existing tests.
32
-
33
- Return:
34
-
35
- - changed test files or manual check
36
- - expected failure before implementation
37
- - verification command
38
- - risks or gaps
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, rules, or hooks.
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
- "hooks": {
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/TDD-GUIDE.md`
18
- 2. ECC stack-specific testing rules (e.g., `typescript/testing.md`, `python/testing.md`)
19
- 3. Current task `PLAN.md`
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. **RED first**: Write failing test before ANY implementation code.
24
- 2. **GREEN minimal**: Write only enough code to pass the test.
25
- 3. **REFACTOR safe**: Improve code while keeping all tests green.
26
- 4. **Coverage gate**: ≥80% before marking task complete.
27
- 5. **Test names**: Describe behavior `test('returns X when Y')`.
28
- 6. **AAA structure**: Arrange Act Assert.
29
- 7. **Error paths**: Test failure cases, not just happy path.
30
- 8. **WF-MAX**: Test Writer agent dispatched BEFORE Implementer in every wave.
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,2 +0,0 @@
1
- [features]
2
- hooks = true