create-harness-vibe-coding 0.8.13 → 0.8.16
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 +165 -0
- package/README-CN.md +41 -9
- package/README.md +39 -9
- package/package.json +2 -1
- package/src/generator.js +601 -472
- package/src/index.js +4 -4
- package/templates/common/.claude/agents/architect-manager.md +1 -0
- package/templates/common/.claude/agents/architect.md +2 -1
- package/templates/common/.claude/agents/codebase-explorer.md +1 -0
- package/templates/common/.claude/agents/context-master.md +2 -1
- package/templates/common/.claude/agents/debugger.md +1 -0
- package/templates/common/.claude/agents/docs-researcher.md +2 -1
- package/templates/common/.claude/agents/explore-manager.md +1 -0
- package/templates/common/.claude/agents/implement-manager.md +1 -0
- package/templates/common/.claude/agents/implementer.md +1 -0
- package/templates/common/.claude/agents/memory-master.md +2 -1
- package/templates/common/.claude/agents/planner.md +3 -2
- package/templates/common/.claude/agents/reflector.md +1 -0
- package/templates/common/.claude/agents/researcher.md +1 -0
- package/templates/common/.claude/agents/review-manager.md +1 -0
- package/templates/common/.claude/agents/reviewer.md +2 -1
- package/templates/common/.claude/agents/task-scribe.md +1 -0
- package/templates/common/.claude/agents/tdd-guide.md +5 -4
- package/templates/common/.claude/agents/test-writer.md +6 -5
- package/templates/common/.claude/agents/verifier.md +1 -0
- package/templates/common/.claude/commands/wf-help.md +1 -0
- package/templates/common/.claude/commands/wf-update.md +68 -10
- package/templates/common/.claude/rules/ecc/common.md +6 -5
- package/templates/common/.claude/skills/subagent-orchestrator/SKILL.md +12 -6
- package/templates/common/.claude/skills/tdd/SKILL.md +5 -5
- package/templates/common/.claude/skills/wf/SKILL.md +13 -5
- package/templates/common/.claude/skills/wf-agents-docs/SKILL.md +119 -0
- package/templates/common/.claude/skills/wf-auto/SKILL.md +27 -7
- package/templates/common/.claude/skills/wf-auto-spark/SKILL.md +12 -5
- package/templates/common/.claude/skills/wf-learn/SKILL.md +6 -0
- package/templates/common/.claude/skills/wf-max/SKILL.md +22 -7
- package/templates/common/.claude/skills/wf-readme/SKILL.md +8 -2
- package/templates/common/.claude/skills/wf-remove/SKILL.md +6 -0
- package/templates/common/.claude/skills/wf-review/SKILL.md +10 -3
- package/templates/common/.claude/skills/wf-update/SKILL.md +41 -4
- package/templates/common/.harness-version +290 -128
- package/templates/common/.opencode/agents/architect-manager.md +1 -0
- package/templates/common/.opencode/agents/architect.md +2 -1
- package/templates/common/.opencode/agents/codebase-explorer.md +1 -0
- package/templates/common/.opencode/agents/context-master.md +2 -1
- package/templates/common/.opencode/agents/debugger.md +1 -0
- package/templates/common/.opencode/agents/docs-researcher.md +2 -1
- package/templates/common/.opencode/agents/explore-manager.md +1 -0
- package/templates/common/.opencode/agents/implement-manager.md +1 -0
- package/templates/common/.opencode/agents/implementer.md +1 -0
- package/templates/common/.opencode/agents/memory-master.md +2 -1
- package/templates/common/.opencode/agents/planner.md +3 -2
- package/templates/common/.opencode/agents/reflector.md +1 -0
- package/templates/common/.opencode/agents/researcher.md +1 -0
- package/templates/common/.opencode/agents/review-manager.md +1 -0
- package/templates/common/.opencode/agents/reviewer.md +2 -1
- package/templates/common/.opencode/agents/task-scribe.md +1 -0
- package/templates/common/.opencode/agents/tdd-guide.md +5 -4
- package/templates/common/.opencode/agents/test-writer.md +6 -5
- package/templates/common/.opencode/agents/verifier.md +1 -0
- package/templates/common/.opencode/commands/wf-auto-spark.md +3 -2
- package/templates/common/.opencode/commands/wf-auto.md +3 -2
- package/templates/common/.opencode/commands/wf-help.md +1 -0
- package/templates/common/.opencode/commands/wf-learn.md +3 -2
- package/templates/common/.opencode/commands/wf-max.md +3 -2
- package/templates/common/.opencode/commands/wf-readme.md +3 -2
- package/templates/common/.opencode/commands/wf-remove.md +3 -2
- package/templates/common/.opencode/commands/wf-review.md +3 -2
- package/templates/common/.opencode/commands/wf-update.md +68 -10
- package/templates/common/.opencode/commands/wf.md +3 -2
- package/templates/common/CLAUDE.md +14 -12
- package/templates/common/Harness/MEMORY.md +21 -18
- package/templates/common/Harness/README.md +41 -39
- package/templates/common/Harness/ownership.manifest.json +815 -0
- package/templates/common/Harness/{architecture.md → project/architecture.md} +1 -1
- package/templates/common/Harness/research/README.md +3 -3
- package/templates/common/Harness/scripts/context-budget.mjs +95 -0
- package/templates/common/Harness/scripts/l2-cache-telemetry.mjs +703 -0
- package/templates/common/Harness/scripts/scan-clean.mjs +13 -3
- package/templates/common/Harness/scripts/validate-harness.mjs +332 -175
- package/templates/common/Harness/scripts/wf-remove.mjs +60 -34
- package/templates/common/Harness/scripts/wf-update-check.mjs +355 -45
- package/templates/common/Harness/settings.json +43 -0
- package/templates/common/Harness/{ECC-GUIDE.md → specs/guides/ECC-GUIDE.md} +4 -4
- package/templates/common/Harness/{SETUP.md → specs/guides/SETUP.md} +32 -35
- package/templates/common/Harness/{extension.md → specs/guides/extension.md} +3 -3
- package/templates/common/Harness/{lifecycle.md → specs/guides/lifecycle.md} +2 -2
- package/templates/common/Harness/{agent-workflow.md → specs/runtime/agent-workflow.md} +6 -6
- package/templates/common/Harness/{context-loading.md → specs/runtime/context-loading.md} +85 -21
- package/templates/common/Harness/{dispatch.md → specs/runtime/dispatch.md} +3 -2
- package/templates/common/Harness/{subagents.md → specs/runtime/subagents.md} +10 -5
- package/templates/common/Harness/{WF-AUTO-SPARK.md → specs/workflows/WF-AUTO-SPARK.md} +2 -2
- package/templates/common/Harness/{WF-AUTO.md → specs/workflows/WF-AUTO.md} +6 -1
- package/templates/common/Harness/{WF-KERNEL.md → specs/workflows/WF-KERNEL.md} +10 -0
- package/templates/common/Harness/{WF-MAX.md → specs/workflows/WF-MAX.md} +10 -5
- package/templates/common/Harness/{WF-STATE.md → specs/workflows/WF-STATE.md} +5 -0
- package/templates/common/Harness/{WF.md → specs/workflows/WF.md} +12 -1
- package/templates/common/README.md +8 -6
- package/templates/common/memory/startup-hints.md +19 -17
- package/templates/optional/skills/browser-e2e/.claude/skills/browser-e2e/SKILL.md +1 -1
- package/templates/optional/skills/browser-e2e/.claude/skills/wf-browser/SKILL.md +7 -0
- package/templates/optional/skills/browser-e2e/.opencode/commands/wf-browser.md +3 -2
- package/templates/optional/skills/browser-e2e/Harness/workflows/browser-e2e.md +4 -4
- package/templates/optional/skills/github-pr-review/.claude/skills/github-pr-review/SKILL.md +1 -1
- package/templates/optional/skills/python-backend/.claude/skills/python-backend/SKILL.md +1 -1
- package/templates/optional/skills/ts-react-frontend/.claude/skills/ts-react-frontend/SKILL.md +1 -1
- package/templates/optional/skills/ui-ux-review/.claude/skills/ui-ux-review/SKILL.md +1 -1
- /package/templates/common/Harness/{ACCEPTANCE_PROTOCOL.md → specs/protocols/ACCEPTANCE_PROTOCOL.md} +0 -0
- /package/templates/common/Harness/{AGENT_ISOLATION.md → specs/protocols/AGENT_ISOLATION.md} +0 -0
- /package/templates/common/Harness/{DEBUG_PROTOCOL.md → specs/protocols/DEBUG_PROTOCOL.md} +0 -0
- /package/templates/common/Harness/{HARNESS_BRIDGE.md → specs/protocols/HARNESS_BRIDGE.md} +0 -0
- /package/templates/common/Harness/{MEMORY_PROTOCOL.md → specs/protocols/MEMORY_PROTOCOL.md} +0 -0
- /package/templates/common/Harness/{TASK_ARCHIVE.md → specs/protocols/TASK_ARCHIVE.md} +0 -0
- /package/templates/common/Harness/{TDD-GUIDE.md → specs/protocols/TDD-GUIDE.md} +0 -0
- /package/templates/common/Harness/{WF-AUTO-ANGLES.md → specs/workflows/WF-AUTO-ANGLES.md} +0 -0
package/src/index.js
CHANGED
|
@@ -294,9 +294,9 @@ function printResult(result, targetDir) {
|
|
|
294
294
|
console.log(` ${pc.cyan('claude')} # Start Claude Code`);
|
|
295
295
|
console.log(` ${pc.cyan('codex')} # Or start Codex`);
|
|
296
296
|
console.log(` ${pc.cyan('opencode')} # Or start OpenCode`);
|
|
297
|
-
console.log(` Tell your agent: "${pc.yellow('Read Harness/SETUP.md. Bootstrap this project from idea to first vertical slice.')}"`);
|
|
297
|
+
console.log(` Tell your agent: "${pc.yellow('Read Harness/specs/guides/SETUP.md. Bootstrap this project from idea to first vertical slice.')}"`);
|
|
298
298
|
console.log('');
|
|
299
|
-
console.log(pc.dim(' Harness/SETUP.md
|
|
299
|
+
console.log(pc.dim(' Keep Harness/specs/guides/SETUP.md as a setup reference; normal sessions start at CLAUDE.md, with Harness/README.md as the routed workflow router.'));
|
|
300
300
|
console.log('');
|
|
301
301
|
|
|
302
302
|
} else {
|
|
@@ -742,7 +742,7 @@ function createAgentGuidance(result, { projectName, targetDir, options, scan })
|
|
|
742
742
|
} else if (result.success) {
|
|
743
743
|
next.push({
|
|
744
744
|
action: 'bootstrap',
|
|
745
|
-
command: 'Read Harness/SETUP.md and use this JSON plan before opening any package templates.',
|
|
745
|
+
command: 'Read Harness/specs/guides/SETUP.md and use this JSON plan before opening any package templates.',
|
|
746
746
|
reason: 'Scaffold files were written; bootstrap project facts from local evidence.',
|
|
747
747
|
});
|
|
748
748
|
} else {
|
|
@@ -820,7 +820,7 @@ function createFileGuidance(file) {
|
|
|
820
820
|
}
|
|
821
821
|
|
|
822
822
|
function templateHintFor(file) {
|
|
823
|
-
if (file === 'Harness/SETUP.md') return 'templates/common/SETUP.md';
|
|
823
|
+
if (file === 'Harness/specs/guides/SETUP.md') return 'templates/common/Harness/specs/guides/SETUP.md';
|
|
824
824
|
return `templates/common/${file}`;
|
|
825
825
|
}
|
|
826
826
|
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
---
|
|
2
|
+
harness: wf-agent
|
|
2
3
|
name: architect-manager
|
|
3
4
|
description: WF-MAX Manager for W1 architecture wave. Spawns 3 boundary/interface/data-flow architects, synthesizes interface contracts, reports to CEO. Read-only + Agent spawn; no Edit/Write.
|
|
4
5
|
tools: Read, Grep, Glob, Agent, Bash(git *), Bash(ls *), Bash(dir *)
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
---
|
|
2
|
+
harness: wf-agent
|
|
2
3
|
name: architect
|
|
3
4
|
description: Use to review layer boundaries, ports, data flow, state machines, dependency direction, and architecture impact before implementation.
|
|
4
5
|
tools: Read, Grep, Glob
|
|
@@ -11,7 +12,7 @@ You are an architecture review agent for this project harness.
|
|
|
11
12
|
|
|
12
13
|
Load first:
|
|
13
14
|
|
|
14
|
-
- `Harness/architecture.md`
|
|
15
|
+
- `Harness/project/architecture.md`
|
|
15
16
|
- current PRD or feature doc
|
|
16
17
|
|
|
17
18
|
Rules:
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
---
|
|
2
|
+
harness: wf-agent
|
|
2
3
|
name: codebase-explorer
|
|
3
4
|
description: Use for scoped read-only source exploration, file discovery, symbol tracing, and simple codebase summaries before planning or implementation.
|
|
4
5
|
tools: Read, Grep, Glob, Bash(rg *), Bash(git grep *), Bash(git ls-files *)
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
---
|
|
2
|
+
harness: wf-agent
|
|
2
3
|
name: context-master
|
|
3
4
|
description: Use when context exceeds ~85% of the window, or during WF closeout to extract durable knowledge before compression. Read-only analysis except for writing compression suggestions to PROGRESS.md#Heartbeat.
|
|
4
5
|
tools: Read, Grep, Glob, Write
|
|
@@ -12,7 +13,7 @@ You are a context analysis agent. You analyze the current conversation and proje
|
|
|
12
13
|
Load first:
|
|
13
14
|
|
|
14
15
|
- `Harness/MEMORY.md`
|
|
15
|
-
- `Harness/MEMORY_PROTOCOL.md`
|
|
16
|
+
- `Harness/specs/protocols/MEMORY_PROTOCOL.md`
|
|
16
17
|
- `Harness/tasks/<task-id>/PROGRESS.md` and `Harness/tasks/<task-id>/PLAN.md` when available
|
|
17
18
|
- The current feature doc (if one exists)
|
|
18
19
|
- `Harness/memory/` files for dedup checking
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
---
|
|
2
|
+
harness: wf-agent
|
|
2
3
|
name: docs-researcher
|
|
3
4
|
description: Use to verify official documentation, APIs, SDK behavior, config options, version changes, limits, error semantics, and examples before implementation.
|
|
4
5
|
tools: Read, Grep, Glob, WebSearch, WebFetch, Bash
|
|
@@ -12,7 +13,7 @@ You are a documentation verification agent for this project harness.
|
|
|
12
13
|
Load first:
|
|
13
14
|
|
|
14
15
|
- `Harness/research/README.md`
|
|
15
|
-
- `Harness/architecture.md` when boundaries may change
|
|
16
|
+
- `Harness/project/architecture.md` when boundaries may change
|
|
16
17
|
- `Harness/tasks/<task-id>/PROGRESS.md` and `Harness/tasks/<task-id>/PLAN.md` when available
|
|
17
18
|
|
|
18
19
|
Inputs you must receive:
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
---
|
|
2
|
+
harness: wf-agent
|
|
2
3
|
name: explore-manager
|
|
3
4
|
description: WF-MAX Manager for W0 exploration wave. Spawns 5-10 read-only researchers/explorers, synthesizes findings, reports to CEO. Read-only + Agent spawn; no Edit/Write.
|
|
4
5
|
tools: Read, Grep, Glob, Agent, Bash(git *), Bash(ls *), Bash(dir *), Bash(tree *)
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
---
|
|
2
|
+
harness: wf-agent
|
|
2
3
|
name: implement-manager
|
|
3
4
|
description: WF-MAX Manager for W2 implementation wave. Spawns 5-7 implementers (one file_claim each), merges results, reports to CEO. Agent spawn + synthesis only; does NOT write code directly.
|
|
4
5
|
tools: Read, Grep, Glob, Agent, Bash(git *), Bash(node *), Bash(npm *)
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
---
|
|
2
|
+
harness: wf-agent
|
|
2
3
|
name: memory-master
|
|
3
4
|
description: Use when a repeated failure, user correction, or WF recovery loop triggers memory writing; also use during WF closeout for consolidation. Writes to Harness/memory/*, Harness/MEMORY.md, and cross-project global memory.
|
|
4
5
|
tools: Read, Grep, Glob, Write, Edit
|
|
@@ -12,7 +13,7 @@ You are a memory management agent for this project harness. You own durable memo
|
|
|
12
13
|
Load first:
|
|
13
14
|
|
|
14
15
|
- `Harness/MEMORY.md`
|
|
15
|
-
- `Harness/MEMORY_PROTOCOL.md`
|
|
16
|
+
- `Harness/specs/protocols/MEMORY_PROTOCOL.md`
|
|
16
17
|
- `Harness/memory/tool-usage-reflections.md`
|
|
17
18
|
- `Harness/memory/user-corrections-preferences.md`
|
|
18
19
|
- `Harness/memory/agent-lessons-patterns.md`
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
---
|
|
2
|
+
harness: wf-agent
|
|
2
3
|
name: planner
|
|
3
4
|
description: Use to split a goal into tasks, dependencies, write sets, verification steps, and a Parallel Dispatch table before multi-step work.
|
|
4
5
|
tools: Read, Grep, Glob
|
|
@@ -12,8 +13,8 @@ You are a planning agent for this project harness.
|
|
|
12
13
|
Load first:
|
|
13
14
|
|
|
14
15
|
- `Harness/tasks/<task-id>/PROGRESS.md` and `Harness/tasks/<task-id>/PLAN.md` when available
|
|
15
|
-
- `Harness/lifecycle.md`
|
|
16
|
-
- `Harness/dispatch.md`
|
|
16
|
+
- `Harness/specs/guides/lifecycle.md`
|
|
17
|
+
- `Harness/specs/runtime/dispatch.md`
|
|
17
18
|
- current PRD or feature doc if present
|
|
18
19
|
|
|
19
20
|
Rules:
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
---
|
|
2
|
+
harness: wf-agent
|
|
2
3
|
name: review-manager
|
|
3
4
|
description: WF-MAX Manager for W2R review wave. Spawns 3-4 parallel reviewers (spec/code/security/perf), deduplicates findings, assigns severity, reports to CEO. Read-only + Agent spawn; no Edit/Write.
|
|
4
5
|
tools: Read, Grep, Glob, Agent, Bash(git *), Bash(git diff *), Bash(node *)
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
---
|
|
2
|
+
harness: wf-agent
|
|
2
3
|
name: reviewer
|
|
3
4
|
description: Use for read-only review of diffs, tests, architecture boundaries, regressions, and missing verification before closeout.
|
|
4
5
|
tools: Read, Grep, Glob, Bash
|
|
@@ -13,7 +14,7 @@ Load first:
|
|
|
13
14
|
|
|
14
15
|
- diff or changed file list
|
|
15
16
|
- current PRD or feature doc
|
|
16
|
-
- `Harness/agent-workflow.md`
|
|
17
|
+
- `Harness/specs/runtime/agent-workflow.md`
|
|
17
18
|
- architecture docs when affected
|
|
18
19
|
|
|
19
20
|
Rules:
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
---
|
|
2
|
+
harness: wf-agent
|
|
2
3
|
name: tdd-guide
|
|
3
4
|
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
5
|
tools: Read, Write, Edit, Bash, Grep, Glob
|
|
@@ -9,10 +10,10 @@ model: sonnet
|
|
|
9
10
|
|
|
10
11
|
Enforces acceptance-driven TDD. Load these before writing tests:
|
|
11
12
|
|
|
12
|
-
1. `Harness/ACCEPTANCE_PROTOCOL.md`
|
|
13
|
-
2. `Harness/HARNESS_BRIDGE.md`
|
|
14
|
-
3. `Harness/AGENT_ISOLATION.md`
|
|
15
|
-
4. `Harness/TDD-GUIDE.md`
|
|
13
|
+
1. `Harness/specs/protocols/ACCEPTANCE_PROTOCOL.md`
|
|
14
|
+
2. `Harness/specs/protocols/HARNESS_BRIDGE.md`
|
|
15
|
+
3. `Harness/specs/protocols/AGENT_ISOLATION.md`
|
|
16
|
+
4. `Harness/specs/protocols/TDD-GUIDE.md`
|
|
16
17
|
5. ECC testing rules for the project stack
|
|
17
18
|
6. Current task `PLAN.md`
|
|
18
19
|
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
---
|
|
2
|
+
harness: wf-agent
|
|
2
3
|
name: test-writer
|
|
3
4
|
description: Use to define or write AC-linked failing tests and manual verification steps before implementation.
|
|
4
5
|
tools: Read, Grep, Glob, Write, Edit, MultiEdit, Bash
|
|
@@ -12,12 +13,12 @@ You are a test-first agent for this project harness. You write tests from PRD-de
|
|
|
12
13
|
Load first:
|
|
13
14
|
|
|
14
15
|
- 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`
|
|
16
|
+
- `Harness/specs/protocols/ACCEPTANCE_PROTOCOL.md`
|
|
17
|
+
- `Harness/specs/protocols/HARNESS_BRIDGE.md` for UI/API/browser flows
|
|
18
|
+
- `Harness/specs/protocols/AGENT_ISOLATION.md`
|
|
19
|
+
- `Harness/specs/protocols/TDD-GUIDE.md`
|
|
19
20
|
- `Harness/tasks/<task-id>/PROGRESS.md` and `Harness/tasks/<task-id>/PLAN.md` when available
|
|
20
|
-
- `Harness/agent-workflow.md`
|
|
21
|
+
- `Harness/specs/runtime/agent-workflow.md`
|
|
21
22
|
|
|
22
23
|
Inputs you must receive:
|
|
23
24
|
|
|
@@ -12,6 +12,7 @@ do not dispatch agents, and do not edit files.
|
|
|
12
12
|
| `/wf-auto-spark` | workflow skill | `/wf-auto-spark` | Perpetual inspiration mode with roadmap anchoring and external spark search. |
|
|
13
13
|
| `/wf-review <focus>` | workflow skill | `/wf-review security and test coverage` | Peer CLI review through Claude/Codex/OpenCode, with reviewer subagent fallback. |
|
|
14
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. |
|
|
15
16
|
| `/wf-readme <task>` | workflow skill | `/wf-readme polish quickstart` | Preserve, merge, or improve README docs without trampling existing project documentation. |
|
|
16
17
|
| `/wf-update` | direct command | `/wf-update` | Check/apply Harness scaffold updates with safe file classification and conflict handling. |
|
|
17
18
|
| `/wf-remove` | workflow skill | `/wf-remove` | Safely remove Harness files while preserving project/user data unless explicitly purged. |
|
|
@@ -2,29 +2,87 @@
|
|
|
2
2
|
|
|
3
3
|
Run the Harness update checker script. Do not invoke a skill or start WF mode.
|
|
4
4
|
|
|
5
|
+
## Classification
|
|
6
|
+
|
|
7
|
+
MANIFEST-FIRST. The installer and updater read `Harness/ownership.manifest.json`:
|
|
8
|
+
|
|
9
|
+
- `preserve[]` - existing user data is never overwritten (tasks, memory, research, root README, package, architecture). Missing scaffold starter files may be created when no local user data exists. `Harness/tasks/**` is always preserved.
|
|
10
|
+
- `merge[]` - CLAUDE.md, AGENTS.md, MEMORY.md, Harness/MEMORY.md, Harness/README.md -> merge or accept-local; prior accepted decisions carry forward.
|
|
11
|
+
- `frameworkOwned[]` - safe overwrite-upgrade fast path (concurrent fetch + hash + all-or-nothing write after checksum validation).
|
|
12
|
+
- `optionalOwned[]` - upgraded only when that option is installed.
|
|
13
|
+
|
|
14
|
+
Content markers (`harness: wf-agent`, `project harness`, `Harness/...`) are the fallback when no manifest exists (old installs) and the instance-ownership signal that protects a user's same-name file at a Harness path. A same-name user file with no marker and no manifest declaration becomes conflict/skip + warning, never overwritten.
|
|
15
|
+
|
|
16
|
+
## Cache Discipline
|
|
17
|
+
|
|
18
|
+
Follow `Harness/specs/runtime/context-loading.md#Cache-First Context Contract`: keep updater
|
|
19
|
+
scripts and ownership docs stable, consume compact `--json` agent plans first,
|
|
20
|
+
and avoid pasting verbose diffs or full remote files unless a conflict requires
|
|
21
|
+
targeted inspection.
|
|
22
|
+
|
|
5
23
|
## Flow
|
|
6
24
|
|
|
7
|
-
1. Run `node Harness/scripts/wf-update-check.mjs --json` and use the
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
25
|
+
1. Run `node Harness/scripts/wf-update-check.mjs --json` first and use the
|
|
26
|
+
`agent` block as the action plan. Preserve `agent.releaseHighlights` for the
|
|
27
|
+
user-facing update summary. Current updaters try npm
|
|
28
|
+
`create-harness-vibe-coding@latest` first, then the canonical GitHub source
|
|
29
|
+
`LiWeny16/create-harness-vibe-coding`, then the legacy compatibility mirror
|
|
30
|
+
`zingspark/create-harness-vibe-coding`.
|
|
31
|
+
2. Preserve all existing PRESERVE files. Never overwrite user task, memory,
|
|
32
|
+
research, root README.md, package, or architecture files. Missing scaffold
|
|
33
|
+
starter files may be created, and checksum-matching legacy architecture can
|
|
34
|
+
move to `Harness/project/architecture.md`. Harness/README.md is merge-tier,
|
|
35
|
+
not PRESERVE.
|
|
36
|
+
3. If `agent.safeApplyCommand` is present, run it to apply SAFE, NEW, and
|
|
37
|
+
adopted metadata-only files before spending AI time on conflicts. Default
|
|
38
|
+
command: `node Harness/scripts/wf-update-check.mjs --apply-safe`.
|
|
39
|
+
Framework-owned templates, commands, skills, agents, and scripts are
|
|
40
|
+
script-owned and should be overwritten by the updater after checksum
|
|
41
|
+
validation.
|
|
42
|
+
4. Previously accepted decisions for any merge-tier file (CLAUDE.md, AGENTS.md,
|
|
43
|
+
MEMORY.md, Harness/MEMORY.md, Harness/README.md) are carried forward
|
|
44
|
+
automatically when both the local hash and remote template hash are
|
|
45
|
+
unchanged.
|
|
46
|
+
5. If a new agent/command/skill path collides with an existing file, do not
|
|
47
|
+
decide by filename alone. Treat it as Harness-owned only when the file
|
|
48
|
+
content has Harness/WF markers such as `harness: wf-agent`,
|
|
49
|
+
`project harness`, or `Harness/...`; otherwise leave it as a real conflict.
|
|
50
|
+
6. For every remaining `agent.aiMergeRequired` entry, compare the local file
|
|
51
|
+
with `templateHint` or `remoteUrl`, then choose merge, keep-local, or
|
|
52
|
+
overwrite-from-template. Record the decision through the script with
|
|
53
|
+
`--accept-local <file>`, `--accept-merged <file>`, or
|
|
54
|
+
`--accept-template <file>`; do not hand-edit `Harness/.harness-version`.
|
|
55
|
+
Ask the user only when the intent is ambiguous.
|
|
56
|
+
7. Run `node Harness/scripts/wf-update-check.mjs --finalize` after all
|
|
57
|
+
conflicts have script-recorded decisions. Use strict `--apply` only when the
|
|
58
|
+
JSON plan has zero conflicts.
|
|
59
|
+
8. After update, run `node Harness/scripts/validate-harness.mjs` and then
|
|
60
|
+
`node Harness/scripts/scan-clean.mjs`.
|
|
13
61
|
|
|
14
|
-
Codex users without a direct command surface: use `$wf-update` (skill path) or
|
|
62
|
+
Codex users without a direct command surface: use `$wf-update` (skill path) or
|
|
63
|
+
`node Harness/scripts/wf-update-check.mjs`.
|
|
15
64
|
|
|
16
65
|
## Recovery
|
|
17
66
|
|
|
18
|
-
If
|
|
67
|
+
If `Harness/scripts/wf-update-check.mjs` is missing (old install without updater), or `Harness/.harness-version` is missing or corrupted, do NOT reinstall from scratch. Recover by regenerating missing infrastructure:
|
|
19
68
|
|
|
20
69
|
```
|
|
21
70
|
npx create-harness-vibe-coding@latest <project-name> . -y --on-conflict skip
|
|
22
71
|
```
|
|
23
72
|
|
|
24
|
-
|
|
73
|
+
The `--on-conflict skip` policy preserves all existing user files (CLAUDE.md, README.md, tasks, memory, research, architecture) and only creates missing Harness infrastructure files. After recovery, re-run the update check.
|
|
25
74
|
|
|
26
|
-
If an old updater reports only `0.8.10`, run the latest installer command above
|
|
75
|
+
If an old updater reports only `0.8.10`, run the latest installer command above
|
|
76
|
+
or re-run the checker with:
|
|
27
77
|
|
|
28
78
|
```
|
|
29
79
|
node Harness/scripts/wf-update-check.mjs --json --source-base https://raw.githubusercontent.com/LiWeny16/create-harness-vibe-coding/main/templates/common/
|
|
30
80
|
```
|
|
81
|
+
|
|
82
|
+
## Return
|
|
83
|
+
|
|
84
|
+
Report version, SAFE/NEW updates, conflicts and decisions, preserved files,
|
|
85
|
+
partialUpdate status if any, validation output, scan-clean result, and remaining
|
|
86
|
+
risks. Also report the core release highlights from `agent.releaseHighlights`
|
|
87
|
+
or `releaseNotes.highlights` so the user understands what changed in this
|
|
88
|
+
Harness version, not only which files changed.
|
|
@@ -8,7 +8,7 @@ alwaysApply: true
|
|
|
8
8
|
## Context
|
|
9
9
|
|
|
10
10
|
- Start with `CLAUDE.md`. When `Harness/` exists, also read `Harness/memory/startup-hints.md` (L2 lightweight digest, not full router).
|
|
11
|
-
- When the user explicitly invokes a `/wf-*` command, load `Harness/MEMORY.md` and `Harness/README.md`.
|
|
11
|
+
- When the user explicitly invokes a `/wf-*` workflow command, excluding `/wf-help` and `/wf-update`, load `Harness/MEMORY.md` and `Harness/README.md`.
|
|
12
12
|
- For simple single-step tasks without `/wf-*`, operate in direct mode: skip the Harness router and execute directly.
|
|
13
13
|
- Do not bulk-read `Harness/`. Load by router trigger.
|
|
14
14
|
- Keep `Harness/tasks/<task-id>/PROGRESS.md` and `Harness/tasks/<task-id>/PLAN.md` current when work has multiple steps, files, or agents.
|
|
@@ -24,6 +24,7 @@ alwaysApply: true
|
|
|
24
24
|
|
|
25
25
|
## Low-Noise Progress
|
|
26
26
|
|
|
27
|
+
- Match the user's language for user-facing prose. Use the latest user message's dominant language unless the user asks otherwise; preserve code, commands, file paths, logs, and quoted source text exactly.
|
|
27
28
|
- Keep intermediate user updates to 1-2 short sentences.
|
|
28
29
|
- Do not recap plans, paste logs, or narrate obvious file reads while working.
|
|
29
30
|
- Put the detailed summary in the final response: files changed, verification, risks, and commit hash when relevant.
|
|
@@ -31,10 +32,10 @@ alwaysApply: true
|
|
|
31
32
|
|
|
32
33
|
## Subagents
|
|
33
34
|
|
|
34
|
-
- Use `Harness/subagents.md` before orchestrating multiple agents.
|
|
35
|
-
- Use `Harness/context-loading.md` before spawning.
|
|
36
|
-
- Use `Harness/dispatch.md` before parallel or multi-agent work.
|
|
37
|
-
- Use `Harness/extension.md` before adding stack-specific agents, skills, or rules.
|
|
35
|
+
- Use `Harness/specs/runtime/subagents.md` before orchestrating multiple agents.
|
|
36
|
+
- Use `Harness/specs/runtime/context-loading.md` before spawning.
|
|
37
|
+
- Use `Harness/specs/runtime/dispatch.md` before parallel or multi-agent work.
|
|
38
|
+
- Use `Harness/specs/guides/extension.md` before adding stack-specific agents, skills, or rules.
|
|
38
39
|
- Every subagent needs role, task, read boundary, write boundary, and return format.
|
|
39
40
|
- Writing agents must run serially unless write sets are disjoint.
|
|
40
41
|
- If the runtime cannot spawn subagents, emulate the same role pack in a separate bounded pass.
|
|
@@ -16,13 +16,19 @@ subagent surfaces; follow the same Harness role contract either way.
|
|
|
16
16
|
|
|
17
17
|
## Load
|
|
18
18
|
|
|
19
|
-
- `Harness/subagents.md`
|
|
20
|
-
- `Harness/dispatch.md`
|
|
21
|
-
- `Harness/context-loading.md`
|
|
22
|
-
- `Harness/agent-workflow.md`
|
|
19
|
+
- `Harness/specs/runtime/subagents.md`
|
|
20
|
+
- `Harness/specs/runtime/dispatch.md`
|
|
21
|
+
- `Harness/specs/runtime/context-loading.md`
|
|
22
|
+
- `Harness/specs/runtime/agent-workflow.md`
|
|
23
23
|
- `Harness/PROGRESS.md`
|
|
24
24
|
- Active `Harness/tasks/<task-id>/PROGRESS.md` and `PLAN.md`, when present
|
|
25
|
-
- `Harness/WF.md` when in explicit `/wf`, `$wf`, or `/skills wf`
|
|
25
|
+
- `Harness/specs/workflows/WF.md` when in explicit `/wf`, `$wf`, or `/skills wf`
|
|
26
|
+
|
|
27
|
+
## Cache Discipline
|
|
28
|
+
|
|
29
|
+
Follow `Harness/specs/runtime/context-loading.md#Cache-First Context Contract`: inject only
|
|
30
|
+
routed docs and selected files, keep dispatch packet fields deterministic, defer
|
|
31
|
+
unused skill/tool schemas, and require bounded summaries instead of transcripts.
|
|
26
32
|
|
|
27
33
|
## Runtime Mapping
|
|
28
34
|
|
|
@@ -42,7 +48,7 @@ subagent surfaces; follow the same Harness role contract either way.
|
|
|
42
48
|
integrates returns, and owns final verification.
|
|
43
49
|
- Subagents or bounded passes are readers and reporters unless a write set is
|
|
44
50
|
explicitly assigned and disjoint.
|
|
45
|
-
- Explicit WF/WF-MAX requires tier-specific role coverage per `Harness/WF.md`.
|
|
51
|
+
- Explicit WF/WF-MAX requires tier-specific role coverage per `Harness/specs/workflows/WF.md`.
|
|
46
52
|
- Every dispatch needs role, goal, mode, read set, write set, forbidden scope,
|
|
47
53
|
injected docs, dependencies, evidence, stop condition, and return format.
|
|
48
54
|
- Prefer parallel read-only exploration first. Serialize writers unless write
|
|
@@ -5,7 +5,7 @@ description: Test-driven development. Use when the user wants to build features
|
|
|
5
5
|
|
|
6
6
|
# TDD Adapter
|
|
7
7
|
|
|
8
|
-
Thin tool adapter. Authoritative guide: `Harness/TDD-GUIDE.md`.
|
|
8
|
+
Thin tool adapter. Authoritative guide: `Harness/specs/protocols/TDD-GUIDE.md`.
|
|
9
9
|
|
|
10
10
|
## Invocation
|
|
11
11
|
|
|
@@ -14,10 +14,10 @@ Thin tool adapter. Authoritative guide: `Harness/TDD-GUIDE.md`.
|
|
|
14
14
|
|
|
15
15
|
## Load
|
|
16
16
|
|
|
17
|
-
1. `Harness/ACCEPTANCE_PROTOCOL.md`
|
|
18
|
-
2. `Harness/HARNESS_BRIDGE.md`
|
|
19
|
-
3. `Harness/AGENT_ISOLATION.md`
|
|
20
|
-
4. `Harness/TDD-GUIDE.md`
|
|
17
|
+
1. `Harness/specs/protocols/ACCEPTANCE_PROTOCOL.md`
|
|
18
|
+
2. `Harness/specs/protocols/HARNESS_BRIDGE.md`
|
|
19
|
+
3. `Harness/specs/protocols/AGENT_ISOLATION.md`
|
|
20
|
+
4. `Harness/specs/protocols/TDD-GUIDE.md`
|
|
21
21
|
5. ECC stack-specific testing rules (for example `typescript/testing.md`, `python/testing.md`)
|
|
22
22
|
6. Current task `PLAN.md`
|
|
23
23
|
|
|
@@ -6,7 +6,7 @@ description: Use for /wf in Claude Code, $wf or /skills wf in Codex. WF is expli
|
|
|
6
6
|
# WF Mode Adapter
|
|
7
7
|
|
|
8
8
|
This skill is a thin tool adapter. The authoritative workflow lives in
|
|
9
|
-
`Harness/WF.md`; do not duplicate or override it here.
|
|
9
|
+
`Harness/specs/workflows/WF.md`; do not duplicate or override it here.
|
|
10
10
|
|
|
11
11
|
## Invocation
|
|
12
12
|
|
|
@@ -27,14 +27,22 @@ This skill is a thin tool adapter. The authoritative workflow lives in
|
|
|
27
27
|
2. `Harness/MEMORY.md` (index only per Memory Preflight)
|
|
28
28
|
3. `Harness/README.md`
|
|
29
29
|
4. `Harness/PROGRESS.md`
|
|
30
|
-
5. `Harness/WF.md`
|
|
31
|
-
6. `Harness/subagents.md` before any role split
|
|
30
|
+
5. `Harness/specs/workflows/WF.md`
|
|
31
|
+
6. `Harness/specs/runtime/subagents.md` before any role split
|
|
32
|
+
|
|
33
|
+
## Cache Discipline
|
|
34
|
+
|
|
35
|
+
Follow `Harness/specs/runtime/context-loading.md#Cache-First Context Contract`: keep the
|
|
36
|
+
listed loads in order, load only routed skills/tools, append task state and
|
|
37
|
+
latest tool output after stable docs, and return compact evidence instead of
|
|
38
|
+
logs or transcripts.
|
|
32
39
|
|
|
33
40
|
## Rules
|
|
34
41
|
|
|
35
|
-
- Create or update a task capsule under `Harness/tasks/<task-id
|
|
42
|
+
- Create or update a task capsule under `Harness/tasks/<task-id>/`; new task
|
|
43
|
+
ids MUST match `task-<verb>-<noun>[-detail]`.
|
|
36
44
|
- Select the right WF tier: WF-Light (low-risk, planner/test/verifier), WF-Standard (multi-file, compact ACs, one review lens), WF-Full (high-risk/cross-layer, full role chain).
|
|
37
|
-
- Run the WF loop from `Harness/WF.md`: intake, bounded exploration, second
|
|
45
|
+
- Run the WF loop from `Harness/specs/workflows/WF.md`: intake, bounded exploration, second
|
|
38
46
|
plan, implementation, review, verification, recovery, and closeout.
|
|
39
47
|
- **Tier-aware acceptance**:
|
|
40
48
|
- **WF-Light**: planner + test-writer + implementer + verifier suffice. Verification passes = closeout. Cross-review and reflector are NOT mandatory unless risk triggers them.
|
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: wf-agents-docs
|
|
3
|
+
description: Source-backed CLI invocation guide for Claude Code, Codex, and OpenCode automation. Use when invoking peer CLIs, writing batch tests, collecting cache telemetry, debugging command-line flags, or documenting cross-runtime agent usage for Harness workflows.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# WF Agents Docs
|
|
7
|
+
|
|
8
|
+
Use this skill before shelling out to `claude`, `codex`, or `opencode` from Harness workflows, peer review, cache tests, or automation scripts.
|
|
9
|
+
|
|
10
|
+
## Source Order
|
|
11
|
+
|
|
12
|
+
1. Prefer installed help: `claude --help`, `codex exec --help`, `opencode run --help`.
|
|
13
|
+
2. Check official docs for flags that affect cost, auth, JSON, resume, tools/MCP, or telemetry.
|
|
14
|
+
3. When adding automation, record command, source, stdout/stderr shape, and failed patterns.
|
|
15
|
+
|
|
16
|
+
## Claude Code CLI
|
|
17
|
+
|
|
18
|
+
- Interactive: `claude`.
|
|
19
|
+
- Non-interactive JSON: pipe ASCII or UTF-8-safe stdin into `claude -p --output-format json`.
|
|
20
|
+
- Stream JSON requires verbose mode: `claude -p --output-format stream-json --verbose`.
|
|
21
|
+
- Continue/resume: `claude -c -p "..."` or `claude -p --resume <session-id> "..."`; for PowerShell automation, prefer stdin and validate non-empty JSON before parsing.
|
|
22
|
+
- Use `--max-budget-usd <amount>` in scripted probes.
|
|
23
|
+
- Use `--strict-mcp-config` without `--mcp-config` to ignore configured MCP servers for a run. Use `--safe-mode` only to disable project customizations. Use `--bare` only for minimal CLI probes, not for Harness/cache attribution, because it skips `CLAUDE.md`, skills, plugins, MCP, hooks, and auto memory.
|
|
24
|
+
- Use `--tools "Read,Grep,Glob"` or explicit `--allowedTools`/`--disallowedTools` for read-only probes.
|
|
25
|
+
- Prompt-cache telemetry appears in JSON `usage.cache_read_input_tokens` / `usage.cache_creation_input_tokens`, and in statusline `context_window.current_usage.*`.
|
|
26
|
+
|
|
27
|
+
## Codex CLI
|
|
28
|
+
|
|
29
|
+
- Interactive: `codex`.
|
|
30
|
+
- Non-interactive: `codex exec "task"`.
|
|
31
|
+
- Read stdin as the full prompt: `cat prompt.txt | codex exec -`.
|
|
32
|
+
- Prompt plus stdin context: `some-command | codex exec "summarize this output"`.
|
|
33
|
+
- Machine output: `codex exec --json "task"` emits JSONL events; parse `turn.completed.usage`, including `cached_input_tokens` when present.
|
|
34
|
+
- Resume: `codex exec resume --last "..."` or `codex exec resume <SESSION_ID> "..."`.
|
|
35
|
+
- Permissions: default is read-only; set `--sandbox workspace-write` only when edits are required. Use `--ignore-user-config` / `--ignore-rules` for controlled automation.
|
|
36
|
+
|
|
37
|
+
## OpenCode CLI
|
|
38
|
+
|
|
39
|
+
- Interactive: `opencode`.
|
|
40
|
+
- Non-interactive: `opencode run [message..]`.
|
|
41
|
+
- JSON events: `opencode run --format json "task"`.
|
|
42
|
+
- Resume: `opencode run --continue "..."` or `opencode run --session <id> "..."`.
|
|
43
|
+
- Peer role: `opencode run --agent reviewer --dir . "review prompt"`.
|
|
44
|
+
- Reuse a server to avoid MCP cold boot: `opencode serve`, then `opencode run --attach http://localhost:4096 "task"`.
|
|
45
|
+
- On Windows, first verify `opencode` exists before writing automation around it.
|
|
46
|
+
|
|
47
|
+
## PowerShell Automation Rules
|
|
48
|
+
|
|
49
|
+
- Prefer stdin over trailing prompt args for `claude -p` in PowerShell.
|
|
50
|
+
- Use ASCII prompts or explicitly UTF-8-safe input for automated probes.
|
|
51
|
+
- Do not trust exit code alone. Fail on empty/non-JSON stdout or error/budget terminal fields.
|
|
52
|
+
- Avoid naming function parameters `$Args`; PowerShell treats `$Args` specially.
|
|
53
|
+
- Store telemetry outside the repo, e.g. `$HOME/.claude/cache-telemetry/*.json`, so git status does not perturb prefixes.
|
|
54
|
+
|
|
55
|
+
## Evidence-Packet Review Pattern
|
|
56
|
+
|
|
57
|
+
For peer review, route smokes, cache analysis, and audits, gather evidence
|
|
58
|
+
first; the peer judges only the bounded packet.
|
|
59
|
+
|
|
60
|
+
- Gather paths, line snippets, command names, exits, and invariants with `rg`,
|
|
61
|
+
`node` scripts, validators, or small reads.
|
|
62
|
+
- Send only that packet. Exclude full docs, raw logs, timestamps, session IDs,
|
|
63
|
+
and screenshots unless they are the evidence.
|
|
64
|
+
- Prefer no tools for judgment-only review; otherwise allow only read-only
|
|
65
|
+
tools and name the exact read set.
|
|
66
|
+
- Controller accepts, rejects, or escalates findings. Peers do not own scope.
|
|
67
|
+
|
|
68
|
+
## No Scratch-File Rule
|
|
69
|
+
|
|
70
|
+
- Do not write CLI probe output under `%TEMP%`, `$env:TEMP`, `/tmp`, or other
|
|
71
|
+
system temp directories.
|
|
72
|
+
- Prefer stdout, JSON/JSONL streaming, or in-memory parsing.
|
|
73
|
+
- Persistent repo evidence goes under `Harness/tasks/<task-id>/evidence/`.
|
|
74
|
+
- Cache telemetry may live under `$HOME/.claude/cache-telemetry/` to avoid repo
|
|
75
|
+
prompt-cache churn.
|
|
76
|
+
- Do not create prompt temp files. Use stdin.
|
|
77
|
+
|
|
78
|
+
## Subagent Output Contract
|
|
79
|
+
|
|
80
|
+
Require bounded structured returns:
|
|
81
|
+
|
|
82
|
+
```text
|
|
83
|
+
Agent: <claude|codex|opencode|role name>
|
|
84
|
+
Probe: <what was tested or reviewed>
|
|
85
|
+
Mode: <read-only|review|telemetry|implementation>
|
|
86
|
+
Files examined: <exact paths or none>
|
|
87
|
+
Evidence: <commands, exit codes, paths, line refs>
|
|
88
|
+
Passes: <confirmed invariants>
|
|
89
|
+
Findings: <severity, file/path, reason, suggested fix>
|
|
90
|
+
Risks: <residual uncertainty or none>
|
|
91
|
+
Tool/CLI issues: <auth, timeout, budget, JSON parse, MCP, or none>
|
|
92
|
+
Verdict: PASS | FAIL | BLOCKED
|
|
93
|
+
Next: <smallest next controller action>
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
For JSON, use the same keys. Do not return transcripts, full file bodies, decorative logs, or speculation.
|
|
97
|
+
|
|
98
|
+
## Cache Discipline
|
|
99
|
+
|
|
100
|
+
Follow `Harness/specs/runtime/context-loading.md#Cache-First Context Contract`: stable instructions first, volatile output in the dynamic suffix, and no provider cache claims without telemetry. Claude Code L2 uses `cache_read_input_tokens`; Codex JSONL may emit `cached_input_tokens`.
|
|
101
|
+
|
|
102
|
+
## Batch-Test Pattern
|
|
103
|
+
|
|
104
|
+
1. Probe command availability with `Get-Command claude,codex,opencode -ErrorAction SilentlyContinue`.
|
|
105
|
+
2. Build a compact evidence packet before invoking peer agents; use the peer
|
|
106
|
+
only for judgment unless the test explicitly requires live agent discovery.
|
|
107
|
+
3. Run a cold turn and capture session id.
|
|
108
|
+
4. Resume that session for two warm turns.
|
|
109
|
+
5. For each turn record input, cache creation, cache read, ratio, cost, model/session id, and exact flags.
|
|
110
|
+
6. Compare against a control mode. Do not attribute a provider-wide cache feature to Harness unless the Harness-shaped run improves or stabilizes cache behavior against a comparable baseline.
|
|
111
|
+
|
|
112
|
+
## Official References
|
|
113
|
+
|
|
114
|
+
- Claude Code CLI reference: https://code.claude.com/docs/en/cli-reference
|
|
115
|
+
- Claude Code prompt caching: https://code.claude.com/docs/en/prompt-caching
|
|
116
|
+
- Claude Code status line schema: https://code.claude.com/docs/en/statusline
|
|
117
|
+
- Codex CLI: https://developers.openai.com/codex/cli
|
|
118
|
+
- Codex non-interactive mode: https://learn.chatgpt.com/docs/non-interactive-mode
|
|
119
|
+
- OpenCode CLI: https://opencode.ai/docs/cli/
|