create-harness-vibe-coding 0.8.7 → 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.
Files changed (126) hide show
  1. package/README-CN.md +163 -105
  2. package/README.md +179 -244
  3. package/bin/create-harness-vibe-coding.js +2 -2
  4. package/docs/images/harness-architecture-light.png +0 -0
  5. package/docs/images/harness-architecture.drawio +164 -0
  6. package/docs/images/harness-icon.png +0 -0
  7. package/package.json +47 -44
  8. package/src/generator.js +41 -5
  9. package/src/index.js +86 -13
  10. package/src/prompts.js +37 -37
  11. package/templates/common/.claude/agents/architect-manager.md +45 -45
  12. package/templates/common/.claude/agents/architect.md +31 -31
  13. package/templates/common/.claude/agents/codebase-explorer.md +45 -0
  14. package/templates/common/.claude/agents/context-master.md +75 -75
  15. package/templates/common/.claude/agents/debugger.md +41 -41
  16. package/templates/common/.claude/agents/docs-researcher.md +41 -41
  17. package/templates/common/.claude/agents/explore-manager.md +41 -41
  18. package/templates/common/.claude/agents/implement-manager.md +49 -49
  19. package/templates/common/.claude/agents/implementer.md +40 -40
  20. package/templates/common/.claude/agents/memory-master.md +82 -64
  21. package/templates/common/.claude/agents/planner.md +34 -34
  22. package/templates/common/.claude/agents/researcher.md +41 -41
  23. package/templates/common/.claude/agents/review-manager.md +56 -56
  24. package/templates/common/.claude/agents/reviewer.md +34 -34
  25. package/templates/common/.claude/agents/task-scribe.md +70 -0
  26. package/templates/common/.claude/agents/verifier.md +29 -29
  27. package/templates/common/.claude/commands/wf-help.md +9 -5
  28. package/templates/common/.claude/commands/wf-update.md +24 -0
  29. package/templates/common/.claude/rules/ecc/common.md +57 -44
  30. package/templates/common/.claude/settings.json +13 -0
  31. package/templates/common/.claude/skills/subagent-orchestrator/SKILL.md +8 -4
  32. package/templates/common/.claude/skills/wf/SKILL.md +15 -8
  33. package/templates/common/.claude/skills/wf-auto/SKILL.md +10 -7
  34. package/templates/common/.claude/skills/wf-learn/SKILL.md +9 -2
  35. package/templates/common/.claude/skills/wf-max/SKILL.md +23 -5
  36. package/templates/common/.claude/skills/wf-readme/SKILL.md +49 -49
  37. package/templates/common/.claude/skills/wf-remove/SKILL.md +7 -7
  38. package/templates/common/.claude/skills/wf-update/SKILL.md +15 -2
  39. package/templates/common/.codex/hooks.json +17 -0
  40. package/templates/common/.harness-version +130 -45
  41. package/templates/common/.opencode/agents/architect-manager.md +52 -0
  42. package/templates/common/.opencode/agents/architect.md +35 -0
  43. package/templates/common/.opencode/agents/codebase-explorer.md +45 -0
  44. package/templates/common/.opencode/agents/context-master.md +81 -0
  45. package/templates/common/.opencode/agents/debugger.md +43 -0
  46. package/templates/common/.opencode/agents/docs-researcher.md +42 -0
  47. package/templates/common/.opencode/agents/explore-manager.md +49 -0
  48. package/templates/common/.opencode/agents/implement-manager.md +56 -0
  49. package/templates/common/.opencode/agents/implementer.md +42 -0
  50. package/templates/common/.opencode/agents/memory-master.md +88 -0
  51. package/templates/common/.opencode/agents/planner.md +38 -0
  52. package/templates/common/.opencode/agents/reflector.md +39 -0
  53. package/templates/common/.opencode/agents/researcher.md +42 -0
  54. package/templates/common/.opencode/agents/review-manager.md +63 -0
  55. package/templates/common/.opencode/agents/reviewer.md +37 -0
  56. package/templates/common/.opencode/agents/task-scribe.md +70 -0
  57. package/templates/common/.opencode/agents/tdd-guide.md +83 -0
  58. package/templates/common/.opencode/agents/test-writer.md +54 -0
  59. package/templates/common/.opencode/agents/verifier.md +37 -0
  60. package/templates/common/.opencode/commands/wf-auto-spark.md +15 -0
  61. package/templates/common/.opencode/commands/wf-auto.md +15 -0
  62. package/templates/common/.opencode/commands/wf-help.md +27 -0
  63. package/templates/common/.opencode/commands/wf-learn.md +15 -0
  64. package/templates/common/.opencode/commands/wf-max.md +15 -0
  65. package/templates/common/.opencode/commands/wf-readme.md +15 -0
  66. package/templates/common/.opencode/commands/wf-remove.md +15 -0
  67. package/templates/common/.opencode/commands/wf-review.md +15 -0
  68. package/templates/common/.opencode/commands/wf-update.md +24 -0
  69. package/templates/common/.opencode/commands/wf.md +15 -0
  70. package/templates/common/.opencode/plugins/harness-wf-status.mjs +135 -0
  71. package/templates/common/AGENTS.md +2 -29
  72. package/templates/common/CLAUDE.md +114 -88
  73. package/templates/common/Harness/ACCEPTANCE_PROTOCOL.md +2 -2
  74. package/templates/common/{MEMORY.md → Harness/MEMORY.md} +17 -4
  75. package/templates/common/Harness/MEMORY_PROTOCOL.md +80 -30
  76. package/templates/common/Harness/PROGRESS.md +17 -17
  77. package/templates/common/Harness/README.md +58 -19
  78. package/templates/common/{SETUP.md → Harness/SETUP.md} +278 -276
  79. package/templates/common/Harness/TASK_ARCHIVE.md +56 -0
  80. package/templates/common/Harness/WF-AUTO-ANGLES.md +170 -0
  81. package/templates/common/Harness/WF-AUTO-SPARK.md +10 -19
  82. package/templates/common/Harness/WF-AUTO.md +93 -167
  83. package/templates/common/Harness/WF-KERNEL.md +189 -0
  84. package/templates/common/Harness/WF-MAX.md +60 -328
  85. package/templates/common/Harness/WF-STATE.md +83 -0
  86. package/templates/common/Harness/WF.md +117 -237
  87. package/templates/common/Harness/agent-workflow.md +2 -2
  88. package/templates/common/Harness/architecture.md +124 -124
  89. package/templates/common/Harness/context-loading.md +111 -111
  90. package/templates/common/Harness/dispatch.md +43 -35
  91. package/templates/common/Harness/extension.md +66 -66
  92. package/templates/common/Harness/lifecycle.md +20 -20
  93. package/templates/common/Harness/research/PRD.md +56 -56
  94. package/templates/common/Harness/research/README.md +169 -169
  95. package/templates/common/Harness/research/research-results.md +66 -66
  96. package/templates/common/Harness/scripts/archive-tasks.mjs +239 -0
  97. package/templates/common/{scripts → Harness/scripts}/scan-clean.mjs +443 -416
  98. package/templates/common/{scripts → Harness/scripts}/validate-harness.mjs +691 -452
  99. package/templates/common/Harness/scripts/wf-auto-update-prompt.mjs +258 -0
  100. package/templates/common/{scripts → Harness/scripts}/wf-remove.mjs +56 -39
  101. package/templates/common/{scripts → Harness/scripts}/wf-update-check.mjs +632 -599
  102. package/templates/common/Harness/subagents.md +215 -214
  103. package/templates/common/Harness/tasks/_template/ARTIFACTS.md +2 -2
  104. package/templates/common/Harness/tasks/_template/NOTES.md +2 -2
  105. package/templates/common/Harness/tasks/_template/PLAN.md +5 -0
  106. package/templates/common/Harness/tasks/_template/STATE.json +23 -0
  107. package/templates/common/README.md +37 -37
  108. package/templates/common/memory/agent-lessons-patterns.md +22 -21
  109. package/templates/common/memory/routes.md +43 -0
  110. package/templates/common/memory/startup-hints.md +32 -0
  111. package/templates/common/memory/tool-usage-reflections.md +22 -21
  112. package/templates/common/memory/user-corrections-preferences.md +23 -21
  113. package/templates/common/opencode.json +19 -0
  114. package/templates/optional/catalog.json +49 -33
  115. package/templates/optional/skills/browser-e2e/.claude/skills/browser-e2e/SKILL.md +42 -42
  116. package/templates/optional/skills/browser-e2e/.claude/skills/wf-browser/SKILL.md +193 -193
  117. package/templates/optional/skills/browser-e2e/.opencode/commands/wf-browser.md +15 -0
  118. package/templates/optional/skills/browser-e2e/Harness/workflows/browser-e2e.md +48 -48
  119. package/templates/optional/skills/github-pr-review/.claude/skills/github-pr-review/SKILL.md +40 -40
  120. package/templates/optional/skills/github-pr-review/Harness/workflows/github-pr-review.md +28 -28
  121. package/templates/optional/skills/python-backend/.claude/skills/python-backend/SKILL.md +40 -40
  122. package/templates/optional/skills/python-backend/Harness/workflows/python-backend.md +34 -34
  123. package/templates/optional/skills/ts-react-frontend/.claude/skills/ts-react-frontend/SKILL.md +43 -43
  124. package/templates/optional/skills/ts-react-frontend/Harness/workflows/ts-react-frontend.md +34 -34
  125. package/templates/optional/skills/ui-ux-review/.claude/skills/ui-ux-review/SKILL.md +40 -40
  126. package/templates/optional/skills/ui-ux-review/Harness/workflows/ui-ux-review.md +26 -26
@@ -0,0 +1,43 @@
1
+ # Memory Routes (L3 Route Index)
2
+
3
+ > L3 = 详细 durable memory 路由索引。不是详细 memory,而是命中规则索引。
4
+ > 详细 memory 文件按 scenario 匹配后按需加载。
5
+
6
+ | id | signals | load | avoid |
7
+ | --- | --- | --- | --- |
8
+ | explicit-user-preference | remember, next time, 下次, 记住, 不要再, never, always, I prefer | user-corrections-preferences.md | current-task-only notes, transient mood |
9
+ | hooks-only-wf-auto | hook, runtime hook, .claude/settings.json, .codex/hooks.json, WF-AUTO.md | agent-lessons-patterns.md#only-wf-auto-may-use-runtime-hooks | non-runtime docs, broad hook designs |
10
+ | tool-repeat-failure | same command fails 3x, error signature repeats | tool-usage-reflections.md | one-off command failures |
11
+ | review-debug-lesson | reusable review/debug/validation pattern | agent-lessons-patterns.md | task-specific logs |
12
+ | startup-digest | new session, startup | startup-hints.md | full MEMORY.md index |
13
+ | wf-closeout | /wf-learn, workflow closeout | all memory files via context-master -> memory-master | premature writes before extraction |
14
+
15
+ ## Matching Algorithm
16
+
17
+ 1. 把当前请求压缩成 **scenario pack**: intent / files / commands / signals / risk
18
+ 2. 与上表 Signals 列匹配,计算 score:
19
+ - +4 exact file/path match
20
+ - +3 explicit trigger phrase match
21
+ - +3 command/error signature match
22
+ - +2 workflow/mode match
23
+ - +1 keyword overlap
24
+ - -4 avoid match
25
+ 3. 阈值:
26
+ - score >= 5: 加载对应 memory entry/file section
27
+ - score 3-4: 只加载 route 摘要,必要时再读详细文件
28
+ - score < 3: 不加载
29
+ 4. Hard trigger 优先:
30
+ - 用户显式记忆语句 -> user-corrections-preferences.md
31
+ - 同命令失败 3 次 -> tool-usage-reflections.md
32
+ - review/debug/validation 可复用 lesson -> agent-lessons-patterns.md
33
+ - 修改 hook 相关文件 -> 加载 only-wf-auto hook lesson
34
+ - /wf-learn -> 完整 learning cycle
35
+
36
+ ## Load Logging
37
+
38
+ 每次加载 memory hints 需说明原因:
39
+ ```
40
+ memory hints loaded: <id> because <signal>
41
+ ```
42
+
43
+ 不使用 embedding;保持稳定、可解释、省 token。
@@ -0,0 +1,32 @@
1
+ # Startup Hints (L2 Memory Digest)
2
+
3
+ > L2 = 启动极简 memory digest。每次 Harness 会话启动可读此文件,但不要加载完整 Harness/MEMORY.md 或 Harness/README.md。
4
+
5
+ ## Core Principles
6
+
7
+ - Memory 是短场景规则,不是 task log。
8
+ - 时间戳默认不要写;只有 superseded / conflict / time-sensitive 才写。
9
+ - Broad runtime hooks 禁止;只有 `/wf-auto` bounded tick hook 例外。
10
+ - Direct mode 不加载完整 Harness router,但 startup-hints 是允许的轻量启动提示。
11
+ - 详细 memory 仍按 `MEMORY_PROTOCOL.md` 场景命中后再读。
12
+
13
+ ## Memory Candidate Detection
14
+
15
+ 用户说以下触发词时,识别为 memory candidate:
16
+
17
+ **英文**: remember, next time, don't, do not, never, always, I prefer, I want you to
18
+ **中文**: 记住, 下次, 以后, 不要再, 总是, 永远不要, 我偏好, 我希望你以后
19
+
20
+ ## When to Write Memory
21
+
22
+ - **Explicit user preference**: 清晰、安全、场景明确时,可立即写入 L3,不必等 `/wf-learn`。
23
+ - **Repeated implicit correction**: 同一假设/模式被纠正 2+ 次。
24
+ - **Tool/command failure**: 同类工具/命令失败 3+ 次。
25
+ - **Review/debug lesson**: 只有可复用、能防回归时才写。
26
+
27
+ ## What NOT to Write
28
+
29
+ - Task log、过程总结、一次性情绪
30
+ - Raw logs、transcripts
31
+ - Secrets, tokens, credentials, private data
32
+ - 临时偏好、无复用价值的笔记
@@ -1,21 +1,22 @@
1
- # Tool Usage Reflections
2
-
3
- Purpose: record repeated tool failures, better command patterns, and environment-specific fixes.
4
-
5
- Write here when:
6
- - The same tool/use pattern fails 3+ times in one task or across repeated tasks.
7
- - A more reliable command pattern replaces a brittle one.
8
- - The environment needs a durable fix, flag, path rule, shell syntax, or startup sequence.
9
-
10
- Entry format, newest first:
11
-
12
- ```markdown
13
- ## YYYY-MM-DD - Short Pattern Name
14
-
15
- - Trigger: what failed or repeated.
16
- - Better pattern: the command, tool usage, or sequence to use next time.
17
- - Evidence: command output summary, error text, or affected environment.
18
- - Scope: when this applies and when it does not.
19
- ```
20
-
21
- Keep entries concise. Do not record secrets, credentials, private tokens, or one-off noise.
1
+ # Tool Usage Reflections
2
+
3
+ Purpose: record repeated tool failures, better command patterns, and environment-specific fixes.
4
+
5
+ Write here when:
6
+ - The same tool/use pattern fails 3+ times in one task or across repeated tasks.
7
+ - A more reliable command pattern replaces a brittle one.
8
+ - The environment needs a durable fix, flag, path rule, shell syntax, or startup sequence.
9
+
10
+ Entry format (compact, default no date):
11
+
12
+ ```markdown
13
+ - When <scenario>: <rule>. Avoid <over-application>. Signals: <signals>.
14
+ ```
15
+
16
+ Only use date/timestamp headings when:
17
+ - Entry supersedes prior conflicting guidance
18
+ - Time-sensitive context (version, deprecation)
19
+ - Conflict resolution needed
20
+
21
+ Never record one-off command failures. Never store secrets, credentials, or private tokens.
22
+ - Entry supersedes prior conflicting guidance: add date stamp.
@@ -1,21 +1,23 @@
1
- # User Corrections And Preferences
2
-
3
- Purpose: record repeated user corrections, durable preferences, and common-sense course corrections.
4
-
5
- Write here when:
6
- - The user says "remember", "never", "next time", "always", or "I prefer".
7
- - The user corrects the same assumption/pattern 2+ times.
8
- - A correction changes how future work should be scoped, explained, verified, or handed off.
9
-
10
- Entry format, newest first:
11
-
12
- ```markdown
13
- ## YYYY-MM-DD - Short Preference Name
14
-
15
- - Correction/preference: the durable instruction.
16
- - Trigger: what prompted the correction.
17
- - Apply when: future contexts where this should guide behavior.
18
- - Avoid: contexts where this should not be over-applied.
19
- ```
20
-
21
- Do not record ordinary chat. If the preference is ambiguous, ask before writing it. Never store secrets.
1
+ # User Corrections And Preferences
2
+
3
+ Purpose: record repeated user corrections, durable preferences, and common-sense course corrections.
4
+
5
+ Write here when:
6
+ - The user says "remember", "never", "next time", "always", "I prefer", "记住", "下次", "不要再" etc.
7
+ - Explicit, safe, scoped user preferences can be written immediately without `/wf-learn`.
8
+ - The user corrects the same assumption/pattern 2+ times.
9
+ - A correction changes how future work should be scoped, explained, verified, or handed off.
10
+
11
+ Entry format (compact, default no date):
12
+
13
+ ```markdown
14
+ - When <scenario>: <rule>. Avoid <over-application>. Signals: <signals>.
15
+ ```
16
+
17
+ Only use date/timestamp headings when:
18
+ - Entry supersedes prior conflicting guidance
19
+ - Time-sensitive context (version, deprecation)
20
+ - Conflict resolution needed
21
+
22
+ Do not record ordinary chat, task logs, process summaries, one-time emotions, or transient preferences. If the preference is ambiguous, ask before writing it. Never store secrets.
23
+ - Entry supersedes prior conflicting guidance: add date stamp.
@@ -0,0 +1,19 @@
1
+ {
2
+ "$schema": "https://opencode.ai/config.json",
3
+ "instructions": [".claude/rules/ecc/common.md"],
4
+ "permission": {
5
+ "bash": {
6
+ "*": "ask",
7
+ "rm -rf *": "deny",
8
+ "sudo *": "deny",
9
+ "curl *": "deny",
10
+ "wget *": "deny"
11
+ },
12
+ "read": {
13
+ "**/.env*": "deny",
14
+ "**/secrets/**": "deny",
15
+ "**/*.key": "deny",
16
+ "**/*.pem": "deny"
17
+ }
18
+ }
19
+ }
@@ -1,41 +1,41 @@
1
- {
2
- "skills": [
3
- {
1
+ {
2
+ "skills": [
3
+ {
4
4
  "id": "browser-e2e",
5
5
  "title": "Browser E2E",
6
6
  "description": "Mandatory real-browser smoke workflow using Playwright, Chrome DevTools/CDP, or documented manual evidence.",
7
7
  "files": ["skills/browser-e2e"],
8
8
  "tags": ["e2e", "browser", "playwright", "cdp"]
9
- },
10
- {
11
- "id": "ui-ux-review",
12
- "title": "UI/UX Review",
13
- "description": "Screenshot-driven responsive, accessibility, and visual polish review workflow.",
14
- "files": ["skills/ui-ux-review"],
15
- "tags": ["ui", "ux", "accessibility", "review"]
16
- },
17
- {
18
- "id": "github-pr-review",
19
- "title": "GitHub PR Review",
20
- "description": "GitHub CLI based PR diff, checks, review findings, and CI evidence workflow.",
21
- "files": ["skills/github-pr-review"],
22
- "tags": ["github", "pr", "review", "ci"]
23
- },
24
- {
25
- "id": "python-backend",
26
- "title": "Python Backend",
27
- "description": "Python backend workflow for FastAPI or similar APIs with unittest or pytest verification.",
28
- "files": ["skills/python-backend"],
29
- "tags": ["python", "fastapi", "unittest", "pytest", "api"]
30
- },
31
- {
32
- "id": "ts-react-frontend",
33
- "title": "TypeScript React Frontend",
34
- "description": "TypeScript React workflow for typecheck, component tests, builds, and browser smoke.",
35
- "files": ["skills/ts-react-frontend"],
36
- "tags": ["typescript", "react", "vite", "frontend"]
37
- }
38
- ],
9
+ },
10
+ {
11
+ "id": "ui-ux-review",
12
+ "title": "UI/UX Review",
13
+ "description": "Screenshot-driven responsive, accessibility, and visual polish review workflow.",
14
+ "files": ["skills/ui-ux-review"],
15
+ "tags": ["ui", "ux", "accessibility", "review"]
16
+ },
17
+ {
18
+ "id": "github-pr-review",
19
+ "title": "GitHub PR Review",
20
+ "description": "GitHub CLI based PR diff, checks, review findings, and CI evidence workflow.",
21
+ "files": ["skills/github-pr-review"],
22
+ "tags": ["github", "pr", "review", "ci"]
23
+ },
24
+ {
25
+ "id": "python-backend",
26
+ "title": "Python Backend",
27
+ "description": "Python backend workflow for FastAPI or similar APIs with unittest or pytest verification.",
28
+ "files": ["skills/python-backend"],
29
+ "tags": ["python", "fastapi", "unittest", "pytest", "api"]
30
+ },
31
+ {
32
+ "id": "ts-react-frontend",
33
+ "title": "TypeScript React Frontend",
34
+ "description": "TypeScript React workflow for typecheck, component tests, builds, and browser smoke.",
35
+ "files": ["skills/ts-react-frontend"],
36
+ "tags": ["typescript", "react", "vite", "frontend"]
37
+ }
38
+ ],
39
39
  "presets": {
40
40
  "web-app": ["ts-react-frontend", "browser-e2e", "ui-ux-review"],
41
41
  "fullstack": ["ts-react-frontend", "python-backend", "browser-e2e", "github-pr-review"]
@@ -72,6 +72,22 @@
72
72
  "installMode": "recommend-only",
73
73
  "url": "https://github.com/colbymchenry/codegraph",
74
74
  "tags": ["code graph", "architecture", "analysis"]
75
+ },
76
+ {
77
+ "id": "grill-me",
78
+ "title": "Grill Me",
79
+ "description": "External Matt Pocock skill for relentlessly interviewing a plan or design before implementation.",
80
+ "installMode": "recommend-only",
81
+ "url": "https://github.com/mattpocock/skills/tree/main/skills/productivity/grill-me",
82
+ "tags": ["planning", "design", "interview", "skills"]
83
+ },
84
+ {
85
+ "id": "oh-my-openagent",
86
+ "title": "oh-my-openagent",
87
+ "description": "Community OpenCode plugin harness: curated agents (Sisyphus/Prometheus/Hephaestus), lifecycle hooks, hash-anchored edits, and Team Mode. For OpenCode and Codex CLI.",
88
+ "installMode": "recommend-only",
89
+ "url": "https://github.com/code-yeongyu/oh-my-openagent",
90
+ "tags": ["opencode", "agents", "harness", "ecosystem"]
75
91
  }
76
92
  ]
77
93
  }
@@ -1,42 +1,42 @@
1
- ---
2
- name: browser-e2e
3
- description: Mandatory real-browser smoke and end-to-end verification using Playwright, Chrome DevTools/CDP, or documented manual browser evidence.
4
- ---
5
-
6
- # Browser E2E
7
-
8
- ## When To Use
9
-
10
- Use this skill when a change affects browser-visible behavior, navigation, forms, routing, layout, or client-side integration. Web/UI acceptance requires loading the app in a real browser before claiming the UI is done.
11
-
12
- ## Docs To Load
13
-
14
- - `Harness/workflows/browser-e2e.md`
15
- - `Harness/PROGRESS.md` and current task `tasks/<id>/PLAN.md`
16
- - Existing project test, build, and run instructions.
17
-
18
- ## Required Inputs
19
-
20
- - Target URL or command to start the app.
21
- - User flows or pages to verify.
22
- - Expected behavior and supported viewport/browser scope.
23
- - Selector contract: stable accessible labels/roles and `data-testid` hooks for critical inputs, buttons, filters, rows, empty/error/loading states, and other targetable UI states.
24
-
25
- ## Allowed Writes
26
-
27
- - Browser test files in the project's existing test locations.
28
- - Evidence artifacts such as screenshots, traces, or reports in existing artifact folders.
29
- - Notes in current task plan when the active task asks for plan tracking.
30
-
31
- ## Output Format
32
-
33
- Return changed files, commands run, browser evidence paths, verified flows, failures, and follow-up risks.
34
- Include the selectors used for CDP/Playwright/manual verification.
35
-
36
- ## PROGRESS.md & Task PLAN.md Updates
37
-
38
- Update `Harness/tasks/<task-id>/PLAN.md` only when executing a tracked plan item or recording evidence requested by the current task.
39
-
40
- ## dispatch.md Usage
41
-
42
- Use `Harness/dispatch.md` only when splitting independent browser checks across workers is explicitly useful.
1
+ ---
2
+ name: browser-e2e
3
+ description: Mandatory real-browser smoke and end-to-end verification using Playwright, Chrome DevTools/CDP, or documented manual browser evidence.
4
+ ---
5
+
6
+ # Browser E2E
7
+
8
+ ## When To Use
9
+
10
+ Use this skill when a change affects browser-visible behavior, navigation, forms, routing, layout, or client-side integration. Web/UI acceptance requires loading the app in a real browser before claiming the UI is done.
11
+
12
+ ## Docs To Load
13
+
14
+ - `Harness/workflows/browser-e2e.md`
15
+ - `Harness/PROGRESS.md` and current task `tasks/<id>/PLAN.md`
16
+ - Existing project test, build, and run instructions.
17
+
18
+ ## Required Inputs
19
+
20
+ - Target URL or command to start the app.
21
+ - User flows or pages to verify.
22
+ - Expected behavior and supported viewport/browser scope.
23
+ - Selector contract: stable accessible labels/roles and `data-testid` hooks for critical inputs, buttons, filters, rows, empty/error/loading states, and other targetable UI states.
24
+
25
+ ## Allowed Writes
26
+
27
+ - Browser test files in the project's existing test locations.
28
+ - Evidence artifacts such as screenshots, traces, or reports in existing artifact folders.
29
+ - Notes in current task plan when the active task asks for plan tracking.
30
+
31
+ ## Output Format
32
+
33
+ Return changed files, commands run, browser evidence paths, verified flows, failures, and follow-up risks.
34
+ Include the selectors used for CDP/Playwright/manual verification.
35
+
36
+ ## PROGRESS.md & Task PLAN.md Updates
37
+
38
+ Update `Harness/tasks/<task-id>/PLAN.md` only when executing a tracked plan item or recording evidence requested by the current task.
39
+
40
+ ## dispatch.md Usage
41
+
42
+ Use `Harness/dispatch.md` only when splitting independent browser checks across workers is explicitly useful.