create-harness-vibe-coding 0.8.16 → 0.8.18
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/CHANGELOG.md +18 -0
- package/README-CN.md +100 -127
- package/README.md +63 -42
- package/package.json +1 -1
- package/src/generator.js +628 -121
- package/src/index.js +174 -43
- package/src/prompts.js +18 -0
- package/templates/common/.claude/commands/wf-auto-spark.md +16 -0
- package/templates/common/.claude/commands/wf-auto.md +16 -0
- package/templates/{optional/skills/browser-e2e/.opencode → common/.claude}/commands/wf-browser.md +1 -1
- package/templates/common/.claude/commands/wf-command-create.md +58 -0
- package/templates/common/.claude/commands/wf-help.md +13 -6
- package/templates/common/.claude/commands/wf-learn.md +16 -0
- package/templates/common/.claude/commands/wf-max.md +20 -0
- package/templates/common/.claude/commands/wf-readme.md +16 -0
- package/templates/common/.claude/commands/wf-remove.md +16 -0
- package/templates/common/.claude/commands/wf-review.md +16 -0
- package/templates/common/.claude/commands/wf-task-archive.md +26 -0
- package/templates/common/.claude/commands/wf-task-list.md +24 -0
- package/templates/common/.claude/commands/wf-task-record.md +24 -0
- package/templates/common/.claude/commands/wf.md +16 -0
- package/templates/common/.claude/rules/ecc/common.md +1 -1
- package/templates/common/.claude/skills/wf-agents-docs/SKILL.md +15 -30
- package/templates/common/.claude/skills/wf-browser/SKILL.md +176 -0
- package/templates/common/.claude/skills/wf-command-create/SKILL.md +37 -0
- package/templates/common/.claude/skills/wf-help/SKILL.md +30 -0
- package/templates/common/.claude/skills/wf-max/SKILL.md +22 -8
- package/templates/common/.claude/skills/wf-review/SKILL.md +29 -2
- package/templates/common/.claude/skills/wf-task-archive/SKILL.md +28 -0
- package/templates/common/.claude/skills/wf-task-list/SKILL.md +28 -0
- package/templates/common/.claude/skills/wf-task-record/SKILL.md +28 -0
- package/templates/common/.codex/config.toml +3 -5
- package/templates/common/.harness-version +108 -41
- package/templates/common/.opencode/agents/architect-manager.md +7 -1
- package/templates/common/.opencode/agents/explore-manager.md +10 -1
- package/templates/common/.opencode/agents/implement-manager.md +5 -3
- package/templates/common/.opencode/agents/review-manager.md +5 -2
- package/templates/common/.opencode/commands/wf-browser.md +16 -0
- package/templates/common/.opencode/commands/wf-command-create.md +61 -0
- package/templates/common/.opencode/commands/wf-help.md +13 -6
- package/templates/common/.opencode/commands/wf-max.md +12 -7
- package/templates/common/.opencode/commands/wf-task-archive.md +29 -0
- package/templates/common/.opencode/commands/wf-task-list.md +27 -0
- package/templates/common/.opencode/commands/wf-task-record.md +27 -0
- package/templates/common/CLAUDE.md +9 -7
- package/templates/common/Harness/MEMORY.md +12 -3
- package/templates/common/Harness/README.md +23 -41
- package/templates/common/Harness/ownership.manifest.json +162 -14
- package/templates/common/Harness/scripts/archive-tasks.mjs +12 -220
- package/templates/common/Harness/scripts/scan-clean.mjs +3 -9
- package/templates/common/Harness/scripts/task-state.mjs +1279 -0
- package/templates/common/Harness/scripts/validate-harness.mjs +635 -65
- package/templates/common/Harness/scripts/wf-remove.mjs +37 -5
- package/templates/common/Harness/scripts/wf-update-check.mjs +3 -0
- package/templates/common/Harness/specs/guides/SETUP.md +10 -2
- package/templates/common/Harness/specs/protocols/MEMORY_PROTOCOL.md +15 -0
- package/templates/common/Harness/specs/protocols/TASK_ARCHIVE.md +49 -23
- package/templates/common/Harness/specs/runtime/command-surface.json +215 -0
- package/templates/common/Harness/specs/runtime/dispatch.md +2 -2
- package/templates/common/Harness/specs/runtime/subagents.md +15 -5
- package/templates/common/Harness/specs/workflows/WF-AUTO.md +6 -6
- package/templates/common/Harness/specs/workflows/WF-KERNEL.md +1 -1
- package/templates/common/Harness/specs/workflows/WF-MAX.md +35 -2
- package/templates/common/Harness/specs/workflows/WF-STATE.md +155 -36
- package/templates/common/Harness/tasks/_template/STATE.json +6 -0
- package/templates/common/opencode.json +1 -0
- package/templates/optional/catalog.json +2 -9
- package/templates/optional/skills/browser-e2e/.claude/skills/browser-e2e/SKILL.md +0 -42
- package/templates/optional/skills/browser-e2e/.claude/skills/wf-browser/SKILL.md +0 -201
- package/templates/optional/skills/browser-e2e/Harness/workflows/browser-e2e.md +0 -119
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Record a task into a Harness task capsule
|
|
3
|
+
---
|
|
4
|
+
# /wf-task-record
|
|
5
|
+
|
|
6
|
+
Record a task into a Harness task capsule. Do not invoke a skill or start WF mode.
|
|
7
|
+
|
|
8
|
+
## Classification
|
|
9
|
+
|
|
10
|
+
DIRECT command. Wraps `node Harness/scripts/task-state.mjs record`. Never loads Harness/MEMORY.md.
|
|
11
|
+
|
|
12
|
+
## Usage
|
|
13
|
+
|
|
14
|
+
/wf-task-record [<task-id>] [--title <slug>] [--note <text>] [--context <text>] [--new] [--create] [--status <status>] [--mode <mode>] [--text "description"]
|
|
15
|
+
|
|
16
|
+
- With <task-id>: record to that task (existing semantics).
|
|
17
|
+
- Without <task-id>: --title/--note/--context required. Deterministically matches open tasks; updates if unique match found; creates new if no match; fails if ambiguous unless --new.
|
|
18
|
+
- Never uses LLM or embeddings — slug + keyword overlap only.
|
|
19
|
+
|
|
20
|
+
## Execution
|
|
21
|
+
|
|
22
|
+
Run: `node Harness/scripts/task-state.mjs record [<task-id>] [--title <slug>] [--note <text>] [--context <text>] [--new] [--create] [--apply] [--text "..."] [--status <status>] [--mode <mode>] [--json]`
|
|
23
|
+
|
|
24
|
+
## Return
|
|
25
|
+
|
|
26
|
+
- Output of `node Harness/scripts/task-state.mjs record ... --json`
|
|
27
|
+
- If the command fails, report the error and do not retry.
|
|
@@ -14,9 +14,9 @@ In direct mode, do not load the full Harness router. Inspect only the files need
|
|
|
14
14
|
|
|
15
15
|
Complex work may use direct planning, task capsules, tests, and subagents without entering WF. WF execution modes are explicit only: the user must type `/wf`, `$wf`, `/skills wf`, `/wf-max`, `$wf-max`, `/skills wf-max`, `/wf-auto`, `$wf-auto`, `/skills wf-auto`, `/wf-auto-spark`, `$wf-auto-spark`, or `/skills wf-auto-spark` to enter the WF kernel. No other phrasing, complexity heuristic, or inferred intent triggers WF.
|
|
16
16
|
|
|
17
|
-
`/wf-help
|
|
17
|
+
`/wf-help`, `$wf-help`, `/skills wf-help`, `/wf-update`, `$wf-update`, `/skills wf-update`, `/wf-task-record`, `$wf-task-record`, `/skills wf-task-record`, `/wf-task-list`, `$wf-task-list`, `/skills wf-task-list`, `/wf-task-archive`, `$wf-task-archive`, `/skills wf-task-archive`, `/wf-command-create`, `$wf-command-create`, and `/skills wf-command-create` are **direct/compat commands** — do NOT load `Harness/MEMORY.md`, do NOT enter WF. Claude Code and OpenCode execute the direct command files; Codex may invoke the matching compatibility skill shim.
|
|
18
18
|
|
|
19
|
-
For non-direct workflow commands (`/wf`, `/wf-max`, `/wf-auto`, `/wf-review`, `/wf-learn`, `/wf-readme`, `/wf-remove`, `/wf-browser`, `/wf-auto-spark`, and matching `$wf-*` or `/skills wf-*` forms), load `Harness/MEMORY.md` first, then `Harness/README.md`.
|
|
19
|
+
For non-direct workflow commands (`/wf`, `/wf-max`, `/wf-auto`, `/wf-review`, `/wf-learn`, `/wf-readme`, `/wf-remove`, `/wf-browser`, `/wf-auto-spark`, and matching `$wf-*` or `/skills wf-*` forms except the direct/compat commands above), load `Harness/MEMORY.md` first, then `Harness/README.md`.
|
|
20
20
|
|
|
21
21
|
### Active Task Resume
|
|
22
22
|
|
|
@@ -24,11 +24,13 @@ If the user says "continue", "resume", "last task", "current task", "status", "w
|
|
|
24
24
|
|
|
25
25
|
1. Read `Harness/PROGRESS.md` → find Active Task.
|
|
26
26
|
2. If Active Task exists, read `Harness/tasks/<active-task>/STATE.json` first.
|
|
27
|
-
3.
|
|
28
|
-
4.
|
|
29
|
-
5.
|
|
30
|
-
6.
|
|
31
|
-
7.
|
|
27
|
+
3. From STATE.json, check `links.dependsOn` — if non-empty, check whether any dependency tasks are still open (STATE.json status is non-archived) and report blocked dependencies.
|
|
28
|
+
4. From STATE.json, check `workItems[]` — if non-empty, inspect items with status `running` or `ready` for parallel dispatch candidates.
|
|
29
|
+
5. Read `Harness/tasks/<active-task>/PROGRESS.md`.
|
|
30
|
+
6. Read `Harness/tasks/<active-task>/PLAN.md` only if decisions or scope need review.
|
|
31
|
+
7. From STATE.json, recover: phase, gate, tier, ready/running/blocked/done queues, activeQuestion, nextAction.
|
|
32
|
+
8. Do NOT bulk-read `Harness/tasks/` to find context. Use the active pointer.
|
|
33
|
+
9. Direct simple tasks may skip STATE/PLAN/PROGRESS unless the user says "continue"/"resume". The `continue` keyword resolves deterministically from the active pointer plus STATE.json — it always recovers the same state.
|
|
32
34
|
|
|
33
35
|
See `Harness/specs/workflows/WF-STATE.md` for the full state machine contract. Completed/abandoned tasks are archived to `Harness/tasks/_archive/` per `Harness/specs/protocols/TASK_ARCHIVE.md`.
|
|
34
36
|
|
|
@@ -35,25 +35,33 @@ Stack-specific agents can be added after the product shape is known.
|
|
|
35
35
|
- [wf-readme](../.claude/skills/wf-readme/SKILL.md) - README preservation, append-only development sections, structured tables, and approved architecture diagrams.
|
|
36
36
|
- [wf-agents-docs](../.claude/skills/wf-agents-docs/SKILL.md) - source-backed Claude/Codex/OpenCode CLI invocation, JSON output, resume, telemetry, and automation gotchas.
|
|
37
37
|
- [wf-review](../.claude/skills/wf-review/SKILL.md) - peer review: prefer another agent CLI (Claude/Codex/OpenCode); otherwise use the installed reviewer role as an independent subagent context. Controller decides.
|
|
38
|
+
- [wf-help](../.claude/skills/wf-help/SKILL.md) - Codex compatibility shim for `$wf-help` / `/skills wf-help`; returns the direct command table without entering WF.
|
|
38
39
|
- [wf-update](../.claude/skills/wf-update/SKILL.md) - GitHub-based incremental harness update, checksum comparison, and safe in-place updates.
|
|
39
40
|
- [wf-learn](../.claude/skills/wf-learn/SKILL.md) - force memory learning cycle: context-master -> memory-master -> project + global memory.
|
|
40
41
|
- [wf-max](../.claude/skills/wf-max/SKILL.md) - WF kernel + maximum safe fan-out: WF-Max-Useful by default (fan out only where independent), WF-Max-Strict only on explicit strict request; current runtime subagents first, peer-CLI overflow when available.
|
|
41
42
|
- [wf-auto](../.claude/skills/wf-auto/SKILL.md) - perpetual adaptive auto-optimization: evidence-selected probes, dynamic obligations, intent checkpoints, evidence ledger.
|
|
42
43
|
- [wf-auto-spark](../.claude/skills/wf-auto-spark/SKILL.md) - perpetual inspiration mode: external spark search, long-term roadmap with staged milestones, <=50% deviation guard.
|
|
44
|
+
- [wf-browser](../.claude/skills/wf-browser/SKILL.md) - built-in browser automation/E2E workflow with controllable UI contracts, Browser Use, Playwright, CDP/network evidence, screenshots, traces, and validation matrix.
|
|
43
45
|
- [tdd](../.claude/skills/tdd/SKILL.md) - acceptance-driven TDD: AC-linked RED tests, real UI clicks for browser-visible behavior, Playwright/CDP evidence, and configured coverage gate.
|
|
44
46
|
- [wf-remove](../.claude/skills/wf-remove/SKILL.md) - safely remove Harness framework files (SAFE/MODIFIED/USER classes), auto-prune empty directories, backup option.
|
|
47
|
+
- [wf-task-record](../.claude/skills/wf-task-record/SKILL.md) - Codex compatibility: use $wf-task-record or /skills wf-task-record to wrap task-state.mjs record.
|
|
48
|
+
- [wf-task-list](../.claude/skills/wf-task-list/SKILL.md) - Codex compatibility: use $wf-task-list or /skills wf-task-list to wrap task-state.mjs list.
|
|
49
|
+
- [wf-task-archive](../.claude/skills/wf-task-archive/SKILL.md) - Codex compatibility: use $wf-task-archive or /skills wf-task-archive to wrap task-state.mjs archive.
|
|
50
|
+
- [wf-command-create](../.claude/skills/wf-command-create/SKILL.md) - Codex compatibility: use $wf-command-create or /skills wf-command-create to update command surfaces from `command-surface.json`.
|
|
45
51
|
|
|
46
52
|
Codex repo-skill mirrors live under `../.agents/skills/` with the same skill names.
|
|
47
53
|
|
|
48
54
|
## Direct Commands
|
|
49
55
|
|
|
50
|
-
- [wf-help](../.claude/commands/wf-help.md) - direct `/wf-help` command that returns a WF command table without
|
|
56
|
+
- [wf-help](../.claude/commands/wf-help.md) - direct `/wf-help` command that returns a WF command table; Codex mirror skill supports `$wf-help` without entering WF.
|
|
51
57
|
- [wf-update](../.claude/commands/wf-update.md) - direct `/wf-update` command for script-driven update checks, safe apply, conflict handling, and release highlights.
|
|
58
|
+
- [wf-task-record](../.claude/commands/wf-task-record.md) - direct `/wf-task-record` command that wraps `node Harness/scripts/task-state.mjs record`.
|
|
59
|
+
- [wf-task-list](../.claude/commands/wf-task-list.md) - direct `/wf-task-list` command that wraps `node Harness/scripts/task-state.mjs list`.
|
|
60
|
+
- [wf-task-archive](../.claude/commands/wf-task-archive.md) - direct `/wf-task-archive` command that wraps `node Harness/scripts/task-state.mjs archive`.
|
|
61
|
+
- [wf-command-create](../.claude/commands/wf-command-create.md) - direct `/wf-command-create` command for task-backed wf-* command surface changes.
|
|
52
62
|
|
|
53
63
|
Stack-specific skills can be added after the product shape is known.
|
|
54
64
|
|
|
55
|
-
- [browser-e2e](workflows/browser-e2e.md)
|
|
56
|
-
|
|
57
65
|
## Rules (Harness Constraints)
|
|
58
66
|
|
|
59
67
|
Located under `.claude/rules/ecc/`, auto-loaded by the CC engine:
|
|
@@ -79,6 +87,7 @@ Located under `.claude/rules/ecc/`, auto-loaded by the CC engine:
|
|
|
79
87
|
- [Context loading protocol](specs/runtime/context-loading.md)
|
|
80
88
|
- [Dispatch protocol](specs/runtime/dispatch.md)
|
|
81
89
|
- [Subagent orchestration](specs/runtime/subagents.md)
|
|
90
|
+
- [Command surface registry](specs/runtime/command-surface.json)
|
|
82
91
|
- [Extension contract](specs/guides/extension.md)
|
|
83
92
|
- [Architecture docs](project/architecture.md)
|
|
84
93
|
- [Agent workflow](specs/runtime/agent-workflow.md)
|
|
@@ -4,7 +4,7 @@ Purpose: route humans and agents to the smallest useful context. `CLAUDE.md` is
|
|
|
4
4
|
|
|
5
5
|
Default load: `CLAUDE.md`. For workflow commands (`/wf`, `/wf-max`, `/wf-auto`, `/wf-review`, `/wf-learn`, `/wf-readme`, `/wf-remove`, `/wf-browser`, `/wf-auto-spark`), also load `Harness/MEMORY.md` (index only per Memory Preflight), this file, and `Harness/PROGRESS.md` when work is active.
|
|
6
6
|
|
|
7
|
-
`/wf-help
|
|
7
|
+
`/wf-help`, `$wf-help`, `/skills wf-help`, `/wf-update`, `$wf-update`, `/skills wf-update`, `/wf-task-record`, `$wf-task-record`, `/skills wf-task-record`, `/wf-task-list`, `$wf-task-list`, `/skills wf-task-list`, `/wf-task-archive`, `$wf-task-archive`, `/skills wf-task-archive`, `/wf-command-create`, `$wf-command-create`, and `/skills wf-command-create` are **direct/compat commands**: skip the router, do NOT load `Harness/MEMORY.md`, do NOT enter WF. Claude Code and OpenCode execute direct command files; Codex uses the matching compatibility skill shim.
|
|
8
8
|
|
|
9
9
|
Do not read the whole `Harness/` tree.
|
|
10
10
|
|
|
@@ -23,21 +23,24 @@ On session start (new window, reopen, resume):
|
|
|
23
23
|
- blocked — what's blocking?
|
|
24
24
|
- nextAction — what to do next
|
|
25
25
|
4. Do NOT discover context by reading all task directories. Use the active pointer.
|
|
26
|
-
5.
|
|
26
|
+
5. Check `links.dependsOn` and `links.blocks` in STATE.json for cross-task
|
|
27
|
+
dependency resolution — read only the listed tasks' STATE.json, not all
|
|
28
|
+
task capsules.
|
|
29
|
+
6. Direct simple tasks may skip STATE/PLAN/PROGRESS unless the user says "continue"/"resume".
|
|
27
30
|
|
|
28
|
-
See `Harness/specs/workflows/WF-STATE.md` for the full state machine contract and enums.
|
|
31
|
+
See `Harness/specs/workflows/WF-STATE.md` for the full state machine contract and enums. `/wf-task-list` exposes dependencies and open tasks.
|
|
29
32
|
|
|
30
33
|
## Direct Mode (Degradation Path)
|
|
31
34
|
|
|
32
|
-
When the user does NOT explicitly invoke `/wf-*`, `$wf-*`, `/skills wf
|
|
35
|
+
When the user does NOT explicitly invoke `/wf-*`, `$wf-*`, `/skills wf-*`, or say `wf` / `wf-max`, the request is handled in **direct mode**. Skip the router entirely. Execute the task. Do not load `Harness/MEMORY.md`, `Harness/README.md`, or `Harness/PROGRESS.md`.
|
|
33
36
|
|
|
34
37
|
Complex work may use direct planning, task capsules, tests, and subagents without entering WF.
|
|
35
38
|
|
|
36
39
|
Escalate to the router (next section) only when:
|
|
37
40
|
- User explicitly invokes `/wf`, `/wf-max`, `$wf`, `$wf-max`, `/skills wf`, `/skills wf-max`, or says `wf` / `wf-max`
|
|
38
|
-
- User invokes another workflow `/wf
|
|
41
|
+
- User invokes another workflow `/wf-*`, `$wf-*`, or `/skills wf-*` command, excluding direct/compat commands listed in `Harness/specs/runtime/command-surface.json`
|
|
39
42
|
|
|
40
|
-
|
|
43
|
+
Direct/compat commands are executed immediately without router load.
|
|
41
44
|
|
|
42
45
|
## 0-1 Flow
|
|
43
46
|
|
|
@@ -99,7 +102,7 @@ Routing priority: **direct mode is the default** when no explicit WF token is pr
|
|
|
99
102
|
| Need market/tech direction | research, market, competitor, stack, library, pricing, policy | [research/README.md](research/README.md), [research/research-results.md](research/research-results.md) | research protocol, adopted/rejected choices |
|
|
100
103
|
| Need MVP/spec | PRD, MVP, scope, requirement, acceptance, non-goal | [research/PRD.md](research/PRD.md), [ACCEPTANCE_PROTOCOL.md](specs/protocols/ACCEPTANCE_PROTOCOL.md) | Mini PRD with AC IDs and verifiable acceptance criteria |
|
|
101
104
|
| Need architecture or boundaries | architecture, boundary, layer, port, adapter, dependency | [architecture.md](project/architecture.md) | layer map, ports, constraints |
|
|
102
|
-
| Need WF command help | /wf-help, wf help, command list, list wf commands | `.claude/commands/wf-help.md` |
|
|
105
|
+
| Need WF command help | /wf-help, $wf-help, /skills wf-help, wf help, command list, list wf commands | `.claude/commands/wf-help.md`, `.opencode/commands/wf-help.md`, `.claude/skills/wf-help/SKILL.md`, `.agents/skills/wf-help/SKILL.md` | static command table; Codex shim may invoke a minimal skill, but no WF/router load |
|
|
103
106
|
| Need WF mode (explicit only) | /wf, $wf, /skills wf (explicit user token only) | [WF.md](specs/workflows/WF.md), [WF-KERNEL.md](specs/workflows/WF-KERNEL.md), [PROGRESS.md](PROGRESS.md), the current task `tasks/<id>/PROGRESS.md` and `tasks/<id>/PLAN.md` | dynamic ready-queue orchestration, tier-gated acceptance |
|
|
104
107
|
| Need perpetual auto-optimization | /wf-auto, $wf-auto, /skills wf-auto (explicit user token only) | [WF-AUTO.md](specs/workflows/WF-AUTO.md), [WF-AUTO-ANGLES.md](specs/workflows/WF-AUTO-ANGLES.md), [subagents.md](specs/runtime/subagents.md), [dispatch.md](specs/runtime/dispatch.md) | perpetual loop, adaptive probe selection, dynamic risk obligations, spark search, intent checkpoint, evidence ledger; CEO never writes code |
|
|
105
108
|
| Need perpetual inspiration mode | /wf-auto-spark, $wf-auto-spark, /skills wf-auto-spark (explicit user token only) | [WF-AUTO-SPARK.md](specs/workflows/WF-AUTO-SPARK.md), [WF-AUTO.md](specs/workflows/WF-AUTO.md), [subagents.md](specs/runtime/subagents.md), [dispatch.md](specs/runtime/dispatch.md) | roadmap-anchored: North Star + milestones; external spark search; <=50% deviation guard; never auto-stops |
|
|
@@ -108,7 +111,7 @@ Routing priority: **direct mode is the default** when no explicit WF token is pr
|
|
|
108
111
|
| Adding harness to existing project | existing project, onboarding, migrate, bootstrap, preserve, conflict | [extension.md](specs/guides/extension.md), [PROGRESS.md](PROGRESS.md), root `README.md` and package/CI files | discovered project facts, preserved config, manual registration plan |
|
|
109
112
|
| README optimization | README, docs, quickstart, install docs, architecture diagram, command table, documentation polish | root `README.md`, `.claude/skills/wf-readme/SKILL.md`, [PROGRESS.md](PROGRESS.md), [architecture.md](project/architecture.md) as needed | approved README mode, preserved sections, proposed diff plan |
|
|
110
113
|
| Need implementation plan | plan, task, write set, verify, milestone, progress | [PROGRESS.md](PROGRESS.md), the current task `tasks/<id>/PROGRESS.md` and `tasks/<id>/PLAN.md`, [agent-workflow.md](specs/runtime/agent-workflow.md), [ACCEPTANCE_PROTOCOL.md](specs/protocols/ACCEPTANCE_PROTOCOL.md) | tasks, AC IDs, write set, verification commands |
|
|
111
|
-
| Browser E2E testing or automation | /wf-browser, browser, e2e, web automation, form fill, screenshot verify, page test, browser test, Playwright AI, Browser Use, CDP | browser-
|
|
114
|
+
| Browser E2E testing or automation | /wf-browser, $wf-browser, /skills wf-browser, browser, e2e, web automation, form fill, screenshot verify, page test, browser test, Playwright AI, Browser Use, CDP | `.claude/skills/wf-browser/SKILL.md`, `.agents/skills/wf-browser/SKILL.md`, [HARNESS_BRIDGE.md](specs/protocols/HARNESS_BRIDGE.md), Browser Use skill | controllable UI contract, Browser Use/Playwright/CDP commands, screenshots, traces, validation matrix |
|
|
112
115
|
| Optional workflow installed | workflow, optional, ui-ux-review, github-pr-review, python-backend, ts-react-frontend | matching `workflows/*.md` (if installed), [extension.md](specs/guides/extension.md) | workflow-specific evidence, commands, fallback path |
|
|
113
116
|
| Need durable memory or reflection | memory, remember, preference, correction, tool failure, lesson, reflection, scenario memory | [MEMORY.md](MEMORY.md), [MEMORY_PROTOCOL.md](specs/protocols/MEMORY_PROTOCOL.md), `Harness/memory/tool-usage-reflections.md`, `Harness/memory/user-corrections-preferences.md`, `Harness/memory/agent-lessons-patterns.md` | concise newest-first memory entry, scenario memory hint, or no-op rationale |
|
|
114
117
|
| Need context/cache/token efficiency | cache, token, context, prompt cache, tool search, cache hit | [context-loading.md](specs/runtime/context-loading.md), [WF-KERNEL.md](specs/workflows/WF-KERNEL.md), [dispatch.md](specs/runtime/dispatch.md), `scripts/l2-cache-telemetry.mjs` | cache-first context layout, deferred skills/tools, bounded summaries, L2 telemetry plan |
|
|
@@ -119,6 +122,10 @@ Routing priority: **direct mode is the default** when no explicit WF token is pr
|
|
|
119
122
|
| Harness readiness check | validate, readiness, placeholder, missing file, release gate | `Harness/scripts/validate-harness.mjs`, `Harness/scripts/validate-harness.mjs --strict` | structural install check; strict bootstrap/release placeholder check |
|
|
120
123
|
| Need harness update | /wf-update, $wf-update, update, check for updates, harness version | `.claude/commands/wf-update.md`, `.opencode/commands/wf-update.md`, `Harness/.harness-version`, `Harness/scripts/wf-update-check.mjs`; Codex fallback: `.claude/skills/wf-update/SKILL.md` | script-driven comparison, SAFE/CONFLICT/PRESERVE classification, changelog release highlights, user decides conflicts |
|
|
121
124
|
| Need harness removal | /wf-remove, $wf-remove, wf remove, remove harness, uninstall harness | `.claude/skills/wf-remove/SKILL.md`, `.agents/skills/wf-remove/SKILL.md`, `Harness/scripts/wf-remove.mjs` | safe removal plan: auto-remove SAFE, confirm MODIFIED, never touch USER DATA |
|
|
125
|
+
| Need task record | /wf-task-record, $wf-task-record, /skills wf-task-record, task record, record work, log progress | `tasks/<id>/PROGRESS.md`, `tasks/<id>/PLAN.md` | progress record, decision log, evidence pointer; direct/compat — do NOT load Harness/MEMORY.md |
|
|
126
|
+
| Need task list | /wf-task-list, $wf-task-list, /skills wf-task-list, list tasks, show tasks, task table, dependency view | `Harness/PROGRESS.md`, `Harness/specs/workflows/WF-STATE.md` | task index, dependency graph, open tasks list; direct/compat — do NOT load Harness/MEMORY.md |
|
|
127
|
+
| Need task archive | /wf-task-archive, $wf-task-archive, /skills wf-task-archive, archive task, cleanup tasks | `Harness/scripts/task-state.mjs`, `Harness/specs/protocols/TASK_ARCHIVE.md` | archive execution plan; direct/compat — do NOT load Harness/MEMORY.md |
|
|
128
|
+
| Need command surface change | /wf-command-create, $wf-command-create, /skills wf-command-create, add command, command surface | `.claude/commands/wf-command-create.md`, `Harness/specs/runtime/command-surface.json` | task-backed command creation checklist; direct/compat — do NOT load Harness/MEMORY.md |
|
|
122
129
|
|
|
123
130
|
## Gates
|
|
124
131
|
|
|
@@ -127,7 +134,7 @@ Routing priority: **direct mode is the default** when no explicit WF token is pr
|
|
|
127
134
|
- Use `/wf-auto` for perpetual self-directed optimization. It selects probes from project evidence and stops only after dynamic risk obligations and two different empty confirmation passes are recorded.
|
|
128
135
|
- **WF-MAX Role Contract**: Three-layer architecture: global mode (`wf-max`), agent role (`ceo|manager|worker|verifier|reviewer|reflector`), dispatch permission (`writeSet`, `forbidden`, `verification`). CEO never writes source code. Workers edit only dispatch.writeSet. Compliance is checked through dispatch packets, independent review, validation evidence, and task capsules. See `CLAUDE.md#1a`.
|
|
129
136
|
- **WF-REVIEW Independence**: Prefer a peer CLI (`claude`, `codex`, or `opencode`) that is not the current runtime. If none exists, dispatch the installed `reviewer` role as a separate subagent context. Same-runtime fallback is independent-context review, not cross-model review; the main agent owns final decisions.
|
|
130
|
-
- WF-MAX has no runtime hook state.
|
|
137
|
+
- WF-MAX role enforcement has no runtime hook state. Durable WF state remains the task capsule, dispatch table, review findings, and validation evidence. Startup update-check hooks do not enforce roles, write sets, or agent identity. The `/wf-auto` bounded tick hook is described in `WF-AUTO.md`.
|
|
131
138
|
- Do not code before PRD-GATE, AC-GATE, CONTRACT-GATE, and TEST-GATE are satisfied or explicitly compressed into a documented fast lane.
|
|
132
139
|
- PRD-derived Acceptance Criteria are the source of truth. Code, tests, reviews, validation, debug, and memory must trace to AC IDs.
|
|
133
140
|
- No acceptance criteria, no tests. No acceptance criteria, no code.
|
|
@@ -145,42 +152,17 @@ Routing priority: **direct mode is the default** when no explicit WF token is pr
|
|
|
145
152
|
- Run `node Harness/scripts/validate-harness.mjs` for install-complete scaffold structure; run `node Harness/scripts/validate-harness.mjs --strict` only after bootstrap resolves project-fact placeholders and before release.
|
|
146
153
|
- If a doc still has `{{...}}`, treat that section as a template, not project fact.
|
|
147
154
|
|
|
148
|
-
## Doc Map
|
|
149
|
-
|
|
150
|
-
| Category | Files |
|
|
151
|
-
|----------|-------|
|
|
152
|
-
| **Router + Index** | `README.md`, `MEMORY.md`, `PROGRESS.md` |
|
|
153
|
-
| **Task Capsule** | `tasks/<id>/PROGRESS.md`, `tasks/<id>/PLAN.md`, `tasks/<id>/STATE.json`, `tasks/_template/` |
|
|
154
|
-
| **Workflows** | `specs/workflows/WF.md`, `specs/workflows/WF-KERNEL.md`, `specs/workflows/WF-STATE.md`, `specs/workflows/WF-MAX.md`, `specs/workflows/WF-AUTO.md`, `specs/workflows/WF-AUTO-SPARK.md` |
|
|
155
|
-
| **Protocols** | `specs/protocols/ACCEPTANCE_PROTOCOL.md`, `specs/protocols/AGENT_ISOLATION.md`, `specs/protocols/HARNESS_BRIDGE.md`, `specs/protocols/DEBUG_PROTOCOL.md`, `specs/protocols/MEMORY_PROTOCOL.md` |
|
|
156
|
-
| **Guides** | `specs/guides/ECC-GUIDE.md`, `specs/guides/lifecycle.md`, `specs/guides/extension.md`, `project/architecture.md`, `specs/protocols/TDD-GUIDE.md`, `specs/protocols/TASK_ARCHIVE.md` |
|
|
157
|
-
| **Orchestration** | `specs/runtime/subagents.md`, `specs/runtime/context-loading.md`, `specs/runtime/dispatch.md`, `specs/runtime/agent-workflow.md`, `specs/workflows/WF-STATE.md` |
|
|
158
|
-
| **Research** | `research/README.md`, `research/PRD.md`, `research/research-results.md` |
|
|
159
|
-
| **Acceptance Templates** | `templates/PRD.template.md`, `templates/ACCEPTANCE.template.md`, `templates/UI_CONTRACT.template.md`, `templates/API_CONTRACT.template.md`, `templates/TEST_PLAN.template.md`, `templates/PLAYWRIGHT_SPEC.template.ts`, `templates/VALIDATION_REPORT.template.md` |
|
|
160
|
-
| **Memory** | `memory/tool-usage-reflections.md`, `memory/user-corrections-preferences.md`, `memory/agent-lessons-patterns.md` |
|
|
161
|
-
| **Scripts** | `scripts/validate-harness.mjs`, `scripts/context-budget.mjs`, `scripts/l2-cache-telemetry.mjs`, `scripts/wf-update-check.mjs`, `scripts/wf-remove.mjs`, `scripts/archive-tasks.mjs` |
|
|
162
|
-
| **Runtime + Config** | `.harness-version`, `ownership.manifest.json`, `settings.json` |
|
|
163
|
-
| **Agents + Skills** | `.claude/agents/*`, `.claude/skills/*`, `.agents/skills/*` |
|
|
164
|
-
| **Direct Commands** | `.claude/commands/wf-help.md`, `.claude/commands/wf-update.md`, `.opencode/commands/wf-help.md`, `.opencode/commands/wf-update.md` |
|
|
165
|
-
|
|
166
155
|
## Direct Commands
|
|
167
156
|
|
|
168
157
|
| Command | Purpose |
|
|
169
158
|
|---|---|
|
|
170
|
-
| `/wf-help` |
|
|
171
|
-
| `/wf-update` | Script-driven harness update: fetch + compare + apply + report release highlights. Direct command for Claude Code and OpenCode; skill path available for Codex compatibility. |
|
|
159
|
+
| `/wf-help`, `$wf-help` | Returns a table of all Harness WF commands, usage, and purpose. Claude Code/OpenCode use direct command files; Codex uses the minimal `wf-help` skill shim. It never starts WF. |
|
|
160
|
+
| `/wf-update`, `$wf-update` | Script-driven harness update: fetch + compare + apply + report release highlights. Direct command for Claude Code and OpenCode; skill path available for Codex compatibility. |
|
|
161
|
+
| `/wf-task-record`, `$wf-task-record` | Record progress, decisions, and evidence to the active task capsule. Direct/compat — no Harness/MEMORY.md load. |
|
|
162
|
+
| `/wf-task-list`, `$wf-task-list` | List tasks with dependency view, open tasks filter, and archive summary. Direct/compat — no Harness/MEMORY.md load. |
|
|
163
|
+
| `/wf-task-archive`, `$wf-task-archive` | Archive completed/verified task capsules. Direct/compat — no Harness/MEMORY.md load. |
|
|
164
|
+
| `/wf-command-create`, `$wf-command-create` | Create or modify wf-* command surfaces from `command-surface.json`. Direct/compat — creates/resumes a task capsule, no Harness/MEMORY.md load. |
|
|
172
165
|
|
|
173
166
|
## Skill Commands
|
|
174
167
|
|
|
175
|
-
|
|
176
|
-
|---|---|---|
|
|
177
|
-
| `/wf <task>` | `$wf <task>` | Tiered WF: WF-Light (low-risk, planner/test/verifier), WF-Standard (multi-file, compact ACs), WF-Full (high-risk/cross-layer, full role chain) |
|
|
178
|
-
| `/wf-max [task]` | `$wf-max [task]` | WF-Max-Useful default (fan-out only where independent), WF-Max-Strict override (unconditional fan-out) |
|
|
179
|
-
| `/wf-auto` | `$wf-auto` | Perpetual adaptive auto-optimization: dynamic probes, risk obligations, evidence-based exhaustion |
|
|
180
|
-
| `/wf-auto-spark` | `$wf-auto-spark` | Perpetual inspiration: spark search, roadmap-anchored, <=50% deviation guard, never auto-stops |
|
|
181
|
-
| `/wf-review [focus]` | `$wf-review [focus]` | Peer CLI review via Claude/Codex/OpenCode, or installed reviewer subagent fallback |
|
|
182
|
-
| `/wf-learn` | `$wf-learn` | Force learning cycle: context-master -> memory-master |
|
|
183
|
-
| `/wf-browser [task]` | `$wf-browser [task]` | AI-driven browser automation for E2E testing |
|
|
184
|
-
| `/wf-readme [task]` | `$wf-readme [task]` | README preservation, merge, and documentation improvement workflow |
|
|
185
|
-
| `/wf-update` | `$wf-update` | Script-driven harness update: fetch + compare + apply + report release highlights |
|
|
186
|
-
| `/wf-remove` | `$wf-remove` | Safe harness removal: auto-delete SAFE, confirm MODIFIED, preserve USER DATA |
|
|
168
|
+
Workflow commands: `/wf`, `/wf-max`, `/wf-auto`, `/wf-auto-spark`, `/wf-review`, `/wf-learn`, `/wf-browser`, `/wf-readme`, `/wf-remove` with matching Codex `$...` and `/skills ...` forms. They load `Harness/MEMORY.md` and follow the registered task capsule policy. `/wf-update` remains direct.
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"schemaVersion": 1,
|
|
3
|
-
"generator": "0.8.
|
|
3
|
+
"generator": "0.8.18",
|
|
4
4
|
"source": "https://raw.githubusercontent.com/LiWeny16/create-harness-vibe-coding/main/templates/common/",
|
|
5
|
-
"generated": "2026-07-
|
|
5
|
+
"generated": "2026-07-29T06:33:44.000Z",
|
|
6
6
|
"preserve": [
|
|
7
7
|
"Harness/PROGRESS.md",
|
|
8
8
|
"Harness/tasks/**",
|
|
@@ -191,6 +191,21 @@
|
|
|
191
191
|
"kind": "skill",
|
|
192
192
|
"overwrite": "safe"
|
|
193
193
|
},
|
|
194
|
+
{
|
|
195
|
+
"path": ".agents/skills/wf-browser/SKILL.md",
|
|
196
|
+
"kind": "skill",
|
|
197
|
+
"overwrite": "safe"
|
|
198
|
+
},
|
|
199
|
+
{
|
|
200
|
+
"path": ".agents/skills/wf-command-create/SKILL.md",
|
|
201
|
+
"kind": "skill",
|
|
202
|
+
"overwrite": "safe"
|
|
203
|
+
},
|
|
204
|
+
{
|
|
205
|
+
"path": ".agents/skills/wf-help/SKILL.md",
|
|
206
|
+
"kind": "skill",
|
|
207
|
+
"overwrite": "safe"
|
|
208
|
+
},
|
|
194
209
|
{
|
|
195
210
|
"path": ".agents/skills/wf-learn/SKILL.md",
|
|
196
211
|
"kind": "skill",
|
|
@@ -216,6 +231,21 @@
|
|
|
216
231
|
"kind": "skill",
|
|
217
232
|
"overwrite": "safe"
|
|
218
233
|
},
|
|
234
|
+
{
|
|
235
|
+
"path": ".agents/skills/wf-task-archive/SKILL.md",
|
|
236
|
+
"kind": "skill",
|
|
237
|
+
"overwrite": "safe"
|
|
238
|
+
},
|
|
239
|
+
{
|
|
240
|
+
"path": ".agents/skills/wf-task-list/SKILL.md",
|
|
241
|
+
"kind": "skill",
|
|
242
|
+
"overwrite": "safe"
|
|
243
|
+
},
|
|
244
|
+
{
|
|
245
|
+
"path": ".agents/skills/wf-task-record/SKILL.md",
|
|
246
|
+
"kind": "skill",
|
|
247
|
+
"overwrite": "safe"
|
|
248
|
+
},
|
|
219
249
|
{
|
|
220
250
|
"path": ".agents/skills/wf-update/SKILL.md",
|
|
221
251
|
"kind": "skill",
|
|
@@ -321,16 +351,81 @@
|
|
|
321
351
|
"kind": "agent",
|
|
322
352
|
"overwrite": "safe"
|
|
323
353
|
},
|
|
354
|
+
{
|
|
355
|
+
"path": ".claude/commands/wf-auto-spark.md",
|
|
356
|
+
"kind": "command",
|
|
357
|
+
"overwrite": "safe"
|
|
358
|
+
},
|
|
359
|
+
{
|
|
360
|
+
"path": ".claude/commands/wf-auto.md",
|
|
361
|
+
"kind": "command",
|
|
362
|
+
"overwrite": "safe"
|
|
363
|
+
},
|
|
364
|
+
{
|
|
365
|
+
"path": ".claude/commands/wf-browser.md",
|
|
366
|
+
"kind": "command",
|
|
367
|
+
"overwrite": "safe"
|
|
368
|
+
},
|
|
369
|
+
{
|
|
370
|
+
"path": ".claude/commands/wf-command-create.md",
|
|
371
|
+
"kind": "command",
|
|
372
|
+
"overwrite": "safe"
|
|
373
|
+
},
|
|
324
374
|
{
|
|
325
375
|
"path": ".claude/commands/wf-help.md",
|
|
326
376
|
"kind": "command",
|
|
327
377
|
"overwrite": "safe"
|
|
328
378
|
},
|
|
379
|
+
{
|
|
380
|
+
"path": ".claude/commands/wf-learn.md",
|
|
381
|
+
"kind": "command",
|
|
382
|
+
"overwrite": "safe"
|
|
383
|
+
},
|
|
384
|
+
{
|
|
385
|
+
"path": ".claude/commands/wf-max.md",
|
|
386
|
+
"kind": "command",
|
|
387
|
+
"overwrite": "safe"
|
|
388
|
+
},
|
|
389
|
+
{
|
|
390
|
+
"path": ".claude/commands/wf-readme.md",
|
|
391
|
+
"kind": "command",
|
|
392
|
+
"overwrite": "safe"
|
|
393
|
+
},
|
|
394
|
+
{
|
|
395
|
+
"path": ".claude/commands/wf-remove.md",
|
|
396
|
+
"kind": "command",
|
|
397
|
+
"overwrite": "safe"
|
|
398
|
+
},
|
|
399
|
+
{
|
|
400
|
+
"path": ".claude/commands/wf-review.md",
|
|
401
|
+
"kind": "command",
|
|
402
|
+
"overwrite": "safe"
|
|
403
|
+
},
|
|
404
|
+
{
|
|
405
|
+
"path": ".claude/commands/wf-task-archive.md",
|
|
406
|
+
"kind": "command",
|
|
407
|
+
"overwrite": "safe"
|
|
408
|
+
},
|
|
409
|
+
{
|
|
410
|
+
"path": ".claude/commands/wf-task-list.md",
|
|
411
|
+
"kind": "command",
|
|
412
|
+
"overwrite": "safe"
|
|
413
|
+
},
|
|
414
|
+
{
|
|
415
|
+
"path": ".claude/commands/wf-task-record.md",
|
|
416
|
+
"kind": "command",
|
|
417
|
+
"overwrite": "safe"
|
|
418
|
+
},
|
|
329
419
|
{
|
|
330
420
|
"path": ".claude/commands/wf-update.md",
|
|
331
421
|
"kind": "command",
|
|
332
422
|
"overwrite": "safe"
|
|
333
423
|
},
|
|
424
|
+
{
|
|
425
|
+
"path": ".claude/commands/wf.md",
|
|
426
|
+
"kind": "command",
|
|
427
|
+
"overwrite": "safe"
|
|
428
|
+
},
|
|
334
429
|
{
|
|
335
430
|
"path": ".claude/rules/ecc/common.md",
|
|
336
431
|
"kind": "config",
|
|
@@ -366,6 +461,21 @@
|
|
|
366
461
|
"kind": "skill",
|
|
367
462
|
"overwrite": "safe"
|
|
368
463
|
},
|
|
464
|
+
{
|
|
465
|
+
"path": ".claude/skills/wf-browser/SKILL.md",
|
|
466
|
+
"kind": "skill",
|
|
467
|
+
"overwrite": "safe"
|
|
468
|
+
},
|
|
469
|
+
{
|
|
470
|
+
"path": ".claude/skills/wf-command-create/SKILL.md",
|
|
471
|
+
"kind": "skill",
|
|
472
|
+
"overwrite": "safe"
|
|
473
|
+
},
|
|
474
|
+
{
|
|
475
|
+
"path": ".claude/skills/wf-help/SKILL.md",
|
|
476
|
+
"kind": "skill",
|
|
477
|
+
"overwrite": "safe"
|
|
478
|
+
},
|
|
369
479
|
{
|
|
370
480
|
"path": ".claude/skills/wf-learn/SKILL.md",
|
|
371
481
|
"kind": "skill",
|
|
@@ -391,6 +501,21 @@
|
|
|
391
501
|
"kind": "skill",
|
|
392
502
|
"overwrite": "safe"
|
|
393
503
|
},
|
|
504
|
+
{
|
|
505
|
+
"path": ".claude/skills/wf-task-archive/SKILL.md",
|
|
506
|
+
"kind": "skill",
|
|
507
|
+
"overwrite": "safe"
|
|
508
|
+
},
|
|
509
|
+
{
|
|
510
|
+
"path": ".claude/skills/wf-task-list/SKILL.md",
|
|
511
|
+
"kind": "skill",
|
|
512
|
+
"overwrite": "safe"
|
|
513
|
+
},
|
|
514
|
+
{
|
|
515
|
+
"path": ".claude/skills/wf-task-record/SKILL.md",
|
|
516
|
+
"kind": "skill",
|
|
517
|
+
"overwrite": "safe"
|
|
518
|
+
},
|
|
394
519
|
{
|
|
395
520
|
"path": ".claude/skills/wf-update/SKILL.md",
|
|
396
521
|
"kind": "skill",
|
|
@@ -516,6 +641,16 @@
|
|
|
516
641
|
"kind": "command",
|
|
517
642
|
"overwrite": "safe"
|
|
518
643
|
},
|
|
644
|
+
{
|
|
645
|
+
"path": ".opencode/commands/wf-browser.md",
|
|
646
|
+
"kind": "command",
|
|
647
|
+
"overwrite": "safe"
|
|
648
|
+
},
|
|
649
|
+
{
|
|
650
|
+
"path": ".opencode/commands/wf-command-create.md",
|
|
651
|
+
"kind": "command",
|
|
652
|
+
"overwrite": "safe"
|
|
653
|
+
},
|
|
519
654
|
{
|
|
520
655
|
"path": ".opencode/commands/wf-help.md",
|
|
521
656
|
"kind": "command",
|
|
@@ -546,6 +681,21 @@
|
|
|
546
681
|
"kind": "command",
|
|
547
682
|
"overwrite": "safe"
|
|
548
683
|
},
|
|
684
|
+
{
|
|
685
|
+
"path": ".opencode/commands/wf-task-archive.md",
|
|
686
|
+
"kind": "command",
|
|
687
|
+
"overwrite": "safe"
|
|
688
|
+
},
|
|
689
|
+
{
|
|
690
|
+
"path": ".opencode/commands/wf-task-list.md",
|
|
691
|
+
"kind": "command",
|
|
692
|
+
"overwrite": "safe"
|
|
693
|
+
},
|
|
694
|
+
{
|
|
695
|
+
"path": ".opencode/commands/wf-task-record.md",
|
|
696
|
+
"kind": "command",
|
|
697
|
+
"overwrite": "safe"
|
|
698
|
+
},
|
|
549
699
|
{
|
|
550
700
|
"path": ".opencode/commands/wf-update.md",
|
|
551
701
|
"kind": "command",
|
|
@@ -591,6 +741,11 @@
|
|
|
591
741
|
"kind": "script",
|
|
592
742
|
"overwrite": "safe"
|
|
593
743
|
},
|
|
744
|
+
{
|
|
745
|
+
"path": "Harness/scripts/task-state.mjs",
|
|
746
|
+
"kind": "script",
|
|
747
|
+
"overwrite": "safe"
|
|
748
|
+
},
|
|
594
749
|
{
|
|
595
750
|
"path": "Harness/scripts/validate-harness.mjs",
|
|
596
751
|
"kind": "script",
|
|
@@ -671,6 +826,11 @@
|
|
|
671
826
|
"kind": "doc",
|
|
672
827
|
"overwrite": "safe"
|
|
673
828
|
},
|
|
829
|
+
{
|
|
830
|
+
"path": "Harness/specs/runtime/command-surface.json",
|
|
831
|
+
"kind": "config",
|
|
832
|
+
"overwrite": "safe"
|
|
833
|
+
},
|
|
674
834
|
{
|
|
675
835
|
"path": "Harness/specs/runtime/context-loading.md",
|
|
676
836
|
"kind": "doc",
|
|
@@ -763,18 +923,6 @@
|
|
|
763
923
|
}
|
|
764
924
|
],
|
|
765
925
|
"optionalOwned": [
|
|
766
|
-
{
|
|
767
|
-
"option": "browser-e2e",
|
|
768
|
-
"paths": [
|
|
769
|
-
".agents/skills/browser-e2e/SKILL.md",
|
|
770
|
-
".agents/skills/wf-browser/SKILL.md",
|
|
771
|
-
".claude/skills/browser-e2e/SKILL.md",
|
|
772
|
-
".claude/skills/wf-browser/SKILL.md",
|
|
773
|
-
".opencode/commands/wf-browser.md",
|
|
774
|
-
"Harness/workflows/browser-e2e.md"
|
|
775
|
-
],
|
|
776
|
-
"overwrite": "safe-if-installed"
|
|
777
|
-
},
|
|
778
926
|
{
|
|
779
927
|
"option": "github-pr-review",
|
|
780
928
|
"paths": [
|