create-harness-vibe-coding 0.8.6 → 0.8.7

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 (38) hide show
  1. package/package.json +1 -1
  2. package/src/generator.js +30 -11
  3. package/src/index.js +129 -5
  4. package/templates/common/.claude/agents/reflector.md +35 -0
  5. package/templates/common/.claude/agents/verifier.md +5 -3
  6. package/templates/common/.claude/commands/wf-help.md +1 -2
  7. package/templates/common/.claude/skills/subagent-orchestrator/SKILL.md +10 -4
  8. package/templates/common/.claude/skills/wf/SKILL.md +7 -3
  9. package/templates/common/.claude/skills/wf-auto/SKILL.md +59 -107
  10. package/templates/common/.claude/skills/wf-auto-spark/SKILL.md +19 -17
  11. package/templates/common/.claude/skills/wf-max/SKILL.md +40 -21
  12. package/templates/common/.claude/skills/wf-update/SKILL.md +9 -4
  13. package/templates/common/.codex/config.toml +5 -0
  14. package/templates/common/.harness-version +36 -34
  15. package/templates/common/AGENTS.md +26 -25
  16. package/templates/common/CLAUDE.md +10 -9
  17. package/templates/common/Harness/ACCEPTANCE_PROTOCOL.md +12 -4
  18. package/templates/common/Harness/README.md +10 -11
  19. package/templates/common/Harness/WF-AUTO-SPARK.md +18 -1
  20. package/templates/common/Harness/WF-AUTO.md +518 -492
  21. package/templates/common/Harness/WF-MAX.md +284 -232
  22. package/templates/common/Harness/WF.md +47 -29
  23. package/templates/common/Harness/agent-workflow.md +108 -76
  24. package/templates/common/Harness/dispatch.md +96 -95
  25. package/templates/common/Harness/extension.md +1 -1
  26. package/templates/common/Harness/subagents.md +78 -56
  27. package/templates/common/Harness/tasks/_template/ARTIFACTS.md +1 -1
  28. package/templates/common/Harness/tasks/_template/NOTES.md +1 -1
  29. package/templates/common/Harness/tasks/_template/PLAN.md +53 -60
  30. package/templates/common/Harness/tasks/_template/PROGRESS.md +26 -29
  31. package/templates/common/MEMORY.md +26 -29
  32. package/templates/common/SETUP.md +1 -1
  33. package/templates/common/scripts/scan-clean.mjs +80 -41
  34. package/templates/common/scripts/validate-harness.mjs +101 -31
  35. package/templates/common/scripts/wf-remove.mjs +279 -278
  36. package/templates/common/scripts/wf-update-check.mjs +395 -195
  37. package/templates/optional/skills/browser-e2e/.claude/skills/wf-browser/SKILL.md +1 -1
  38. package/templates/optional/skills/browser-e2e/Harness/workflows/browser-e2e.md +57 -21
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: wf-browser
3
- description: AI-driven browser automation for E2E testing, web scraping, form filling, and UI verification. Powered by Browser Use (89.1% WebVoyager benchmark). Use for /wf-browser, browser testing, web automation, page interaction, form filling, screenshot verification, or any task requiring real browser control. Dual mode: CLI (fast iteration, no LLM needed) + Python Agent API (complex multi-step workflows with AI reasoning).
3
+ description: AI-driven browser automation for E2E testing, web scraping, form filling, and UI verification. Powered by Browser Use (89.1% WebVoyager benchmark). Use for Claude /wf-browser, Codex $wf-browser, browser testing, web automation, page interaction, form filling, screenshot verification, or any task requiring real browser control. Dual mode: CLI (fast iteration, no LLM needed) + Python Agent API (complex multi-step workflows with AI reasoning).
4
4
  ---
5
5
 
6
6
  # WF Browser — AI Browser Automation
@@ -11,25 +11,13 @@ This workflow is active when:
11
11
 
12
12
  ## Contract
13
13
 
14
- Browser evidence in this project follows the contract:
15
-
16
- 1. **Every browser claim needs real-browser evidence** screenshot, state snapshot, or console output
17
- 2. **CLI mode is preferred for deterministic steps** use `browser-use open/state/click/screenshot` for predictable flows
18
- 3. **Agent mode is for dynamic exploration** use Browser Use Agent API when the page structure is unknown or changing
19
- 4. **Evidence goes to the task directory** `Harness/tasks/<task-id>/evidence/*.png`
20
- 5. **Stable UI selector contract** — Stable accessible labels/roles and stable test selectors such as `data-testid` are required for critical UI controls and states: inputs, buttons, filters, rows, empty/error/loading states.
21
-
22
- ## Chrome DevTools / CDP / MCP Checklist
23
-
24
- - [ ] record the URL and port
25
- - [ ] Verify available CDP, MCP, browser automation, or manual tooling
26
- - [ ] Check not just HTTP 200
27
- - [ ] Verify no runtime exceptions, console errors, and failed network requests
28
- - [ ] Confirm stable accessible labels/roles or `data-testid` on interactive elements
29
- - [ ] Test critical flow end-to-end
30
- - [ ] Capture screenshot, trace, video, or result artifact paths
31
- - [ ] Clean up any dev server or browser processes
32
-
14
+ Browser evidence in this project follows the contract:
15
+
16
+ 1. **Every browser claim needs real-browser evidence** - screenshot, state snapshot, or console output
17
+ 2. **CLI mode is preferred for deterministic steps** - use `browser-use open/state/click/screenshot` for predictable flows
18
+ 3. **Agent mode is for dynamic exploration** - use Browser Use Agent API when the page structure is unknown or changing
19
+ 4. **Evidence goes to the task directory** - `Harness/tasks/<task-id>/evidence/*.png`
20
+
33
21
  ### Harness Bridge
34
22
 
35
23
  For frontend-backend flows, use `Harness/HARNESS_BRIDGE.md` to validate UI
@@ -37,6 +25,54 @@ selectors, API payloads, seeded data, runtime state probes, and CDP/network
37
25
  traces. Browser validation must produce an AC-by-AC result matrix when the task
38
26
  has acceptance criteria.
39
27
 
28
+ ### Stable UI Selector Contract
29
+
30
+ All browser automation and E2E tests in this project use a stable selector contract. Selectors must be written against **public, stable attributes** that survive refactors, not against ephemeral class names or DOM indices.
31
+
32
+ **Required selector priority (most stable first):**
33
+
34
+ 1. **`data-testid`** - the primary stable anchor for automated tests
35
+ 2. **accessible labels/roles** - `getByRole`, `getByLabelText`, `getByPlaceholderText` (ARIA roles, `<label>` associations, placeholder text)
36
+ 3. **Text content** - `getByText` for visible user-facing strings
37
+
38
+ **Required coverage targets.** Every interactive page tested by browser automation must cover: inputs, buttons, filters, rows, empty/error/loading states.
39
+
40
+ | Category | Examples |
41
+ |---|---|
42
+ | **Inputs** | text fields, textareas, selects, checkboxes, radios, file uploads |
43
+ | **Buttons** | submit buttons, icon-only buttons, toggle buttons, CTA buttons |
44
+ | **Filters** | search inputs, dropdown filters, date range pickers, filter chips/tags |
45
+ | **Rows** | table rows, list items, card containers - the repeating data unit |
46
+ | **Empty state** | "no results" message, empty illustration, zero-state CTA |
47
+ | **Error state** | inline validation errors, toast notifications, server error banners |
48
+ | **Loading state** | spinners, skeletons, progress bars, "Loading..." text |
49
+
50
+ **Selector format examples:**
51
+
52
+ ```
53
+ data-testid="search-input"
54
+ data-testid="submit-btn"
55
+ data-testid="filter-status"
56
+ data-testid="result-row"
57
+ data-testid="empty-state"
58
+ data-testid="error-banner"
59
+ data-testid="loading-spinner"
60
+ ```
61
+
62
+ **Rationale:** `data-testid` attributes are decoupled from styling and layout - they survive CSS refactors, component renames, and DOM restructuring. Accessible labels and roles are the fallback when `data-testid` is not available, and they double as a11y coverage. Class-name and XPath selectors are not accepted in test automation because they break on cosmetic changes.
63
+
64
+ ## Chrome DevTools / CDP / MCP Checklist
65
+
66
+ - [ ] record the URL and port
67
+ - [ ] Verify available CDP, MCP, browser automation, or manual tooling
68
+ - [ ] Check not just HTTP 200
69
+ - [ ] Verify no runtime exceptions, console errors, and failed network requests
70
+ - [ ] Confirm stable accessible labels/roles or `data-testid` on interactive elements
71
+ - [ ] Test critical flow end-to-end
72
+ - [ ] Capture screenshot, trace, video, or result artifact paths
73
+ - [ ] Produce an AC-by-AC validation matrix
74
+ - [ ] Clean up any dev server or browser processes
75
+
40
76
  ## Quick Install
41
77
 
42
78
  ```bash
@@ -69,7 +105,7 @@ If `browser-use` is not installed, fall back to:
69
105
  - **Harness Bridge**: use `Harness/HARNESS_BRIDGE.md` for UI contract, API contract, seeded test data, runtime state probes, and network trace collection.
70
106
  - **wf-browser**: Claude Code uses `.claude/skills/wf-browser/SKILL.md`; Codex uses `.agents/skills/wf-browser/SKILL.md`. Both load this workflow.
71
107
  - **MEMORY.md**: registered as optional workflow skill
72
- - **README.md**: routing table row "Browser E2E testing or automation" browser-e2e
108
+ - **README.md**: routing table row "Browser E2E testing or automation" -> browser-e2e
73
109
 
74
110
  ## File Locations
75
111
 
@@ -77,7 +113,7 @@ If `browser-use` is not installed, fall back to:
77
113
  |------|---------|
78
114
  | `.claude/skills/wf-browser/SKILL.md` | Claude Code skill adapter |
79
115
  | `.agents/skills/wf-browser/SKILL.md` | Codex repo skill adapter |
80
- | `Harness/workflows/browser-e2e.md` | This file workflow contract and install guide |
116
+ | `Harness/workflows/browser-e2e.md` | This file - workflow contract and install guide |
81
117
  | `~/.claude/skills/browser-use/SKILL.md` | Official Browser Use skill (user-level, auto-downloaded) |
82
118
  | `pip show browser-use \| findstr Location` | Python package install location (run to find) |
83
119
  | `~/.browser-use/` | Daemon state and browser profiles |