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.
- package/package.json +1 -1
- package/src/generator.js +30 -11
- package/src/index.js +129 -5
- package/templates/common/.claude/agents/reflector.md +35 -0
- package/templates/common/.claude/agents/verifier.md +5 -3
- package/templates/common/.claude/commands/wf-help.md +1 -2
- package/templates/common/.claude/skills/subagent-orchestrator/SKILL.md +10 -4
- package/templates/common/.claude/skills/wf/SKILL.md +7 -3
- package/templates/common/.claude/skills/wf-auto/SKILL.md +59 -107
- package/templates/common/.claude/skills/wf-auto-spark/SKILL.md +19 -17
- package/templates/common/.claude/skills/wf-max/SKILL.md +40 -21
- package/templates/common/.claude/skills/wf-update/SKILL.md +9 -4
- package/templates/common/.codex/config.toml +5 -0
- package/templates/common/.harness-version +36 -34
- package/templates/common/AGENTS.md +26 -25
- package/templates/common/CLAUDE.md +10 -9
- package/templates/common/Harness/ACCEPTANCE_PROTOCOL.md +12 -4
- package/templates/common/Harness/README.md +10 -11
- package/templates/common/Harness/WF-AUTO-SPARK.md +18 -1
- package/templates/common/Harness/WF-AUTO.md +518 -492
- package/templates/common/Harness/WF-MAX.md +284 -232
- package/templates/common/Harness/WF.md +47 -29
- package/templates/common/Harness/agent-workflow.md +108 -76
- package/templates/common/Harness/dispatch.md +96 -95
- package/templates/common/Harness/extension.md +1 -1
- package/templates/common/Harness/subagents.md +78 -56
- package/templates/common/Harness/tasks/_template/ARTIFACTS.md +1 -1
- package/templates/common/Harness/tasks/_template/NOTES.md +1 -1
- package/templates/common/Harness/tasks/_template/PLAN.md +53 -60
- package/templates/common/Harness/tasks/_template/PROGRESS.md +26 -29
- package/templates/common/MEMORY.md +26 -29
- package/templates/common/SETUP.md +1 -1
- package/templates/common/scripts/scan-clean.mjs +80 -41
- package/templates/common/scripts/validate-harness.mjs +101 -31
- package/templates/common/scripts/wf-remove.mjs +279 -278
- package/templates/common/scripts/wf-update-check.mjs +395 -195
- package/templates/optional/skills/browser-e2e/.claude/skills/wf-browser/SKILL.md +1 -1
- 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**
|
|
17
|
-
2. **CLI mode is preferred for deterministic steps**
|
|
18
|
-
3. **Agent mode is for dynamic exploration**
|
|
19
|
-
4. **Evidence goes to the task directory**
|
|
20
|
-
|
|
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"
|
|
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
|
|
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 |
|