create-harness-vibe-coding 0.8.12 → 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.
Files changed (115) hide show
  1. package/CHANGELOG.md +165 -0
  2. package/README-CN.md +52 -8
  3. package/README.md +50 -8
  4. package/package.json +3 -1
  5. package/src/generator.js +601 -472
  6. package/src/index.js +12 -4
  7. package/templates/common/.claude/agents/architect-manager.md +1 -0
  8. package/templates/common/.claude/agents/architect.md +2 -1
  9. package/templates/common/.claude/agents/codebase-explorer.md +1 -0
  10. package/templates/common/.claude/agents/context-master.md +2 -1
  11. package/templates/common/.claude/agents/debugger.md +1 -0
  12. package/templates/common/.claude/agents/docs-researcher.md +2 -1
  13. package/templates/common/.claude/agents/explore-manager.md +1 -0
  14. package/templates/common/.claude/agents/implement-manager.md +1 -0
  15. package/templates/common/.claude/agents/implementer.md +1 -0
  16. package/templates/common/.claude/agents/memory-master.md +2 -1
  17. package/templates/common/.claude/agents/planner.md +3 -2
  18. package/templates/common/.claude/agents/reflector.md +1 -0
  19. package/templates/common/.claude/agents/researcher.md +1 -0
  20. package/templates/common/.claude/agents/review-manager.md +1 -0
  21. package/templates/common/.claude/agents/reviewer.md +2 -1
  22. package/templates/common/.claude/agents/task-scribe.md +1 -0
  23. package/templates/common/.claude/agents/tdd-guide.md +5 -4
  24. package/templates/common/.claude/agents/test-writer.md +6 -5
  25. package/templates/common/.claude/agents/verifier.md +1 -0
  26. package/templates/common/.claude/commands/wf-help.md +1 -0
  27. package/templates/common/.claude/commands/wf-update.md +73 -9
  28. package/templates/common/.claude/rules/ecc/common.md +6 -5
  29. package/templates/common/.claude/skills/subagent-orchestrator/SKILL.md +12 -6
  30. package/templates/common/.claude/skills/tdd/SKILL.md +5 -5
  31. package/templates/common/.claude/skills/wf/SKILL.md +13 -5
  32. package/templates/common/.claude/skills/wf-agents-docs/SKILL.md +119 -0
  33. package/templates/common/.claude/skills/wf-auto/SKILL.md +27 -7
  34. package/templates/common/.claude/skills/wf-auto-spark/SKILL.md +12 -5
  35. package/templates/common/.claude/skills/wf-learn/SKILL.md +6 -0
  36. package/templates/common/.claude/skills/wf-max/SKILL.md +22 -7
  37. package/templates/common/.claude/skills/wf-readme/SKILL.md +8 -2
  38. package/templates/common/.claude/skills/wf-remove/SKILL.md +6 -0
  39. package/templates/common/.claude/skills/wf-review/SKILL.md +10 -3
  40. package/templates/common/.claude/skills/wf-update/SKILL.md +52 -5
  41. package/templates/common/.harness-version +291 -129
  42. package/templates/common/.opencode/agents/architect-manager.md +1 -0
  43. package/templates/common/.opencode/agents/architect.md +2 -1
  44. package/templates/common/.opencode/agents/codebase-explorer.md +1 -0
  45. package/templates/common/.opencode/agents/context-master.md +2 -1
  46. package/templates/common/.opencode/agents/debugger.md +1 -0
  47. package/templates/common/.opencode/agents/docs-researcher.md +2 -1
  48. package/templates/common/.opencode/agents/explore-manager.md +1 -0
  49. package/templates/common/.opencode/agents/implement-manager.md +1 -0
  50. package/templates/common/.opencode/agents/implementer.md +1 -0
  51. package/templates/common/.opencode/agents/memory-master.md +2 -1
  52. package/templates/common/.opencode/agents/planner.md +3 -2
  53. package/templates/common/.opencode/agents/reflector.md +1 -0
  54. package/templates/common/.opencode/agents/researcher.md +1 -0
  55. package/templates/common/.opencode/agents/review-manager.md +1 -0
  56. package/templates/common/.opencode/agents/reviewer.md +2 -1
  57. package/templates/common/.opencode/agents/task-scribe.md +1 -0
  58. package/templates/common/.opencode/agents/tdd-guide.md +5 -4
  59. package/templates/common/.opencode/agents/test-writer.md +6 -5
  60. package/templates/common/.opencode/agents/verifier.md +1 -0
  61. package/templates/common/.opencode/commands/wf-auto-spark.md +3 -2
  62. package/templates/common/.opencode/commands/wf-auto.md +3 -2
  63. package/templates/common/.opencode/commands/wf-help.md +1 -0
  64. package/templates/common/.opencode/commands/wf-learn.md +3 -2
  65. package/templates/common/.opencode/commands/wf-max.md +3 -2
  66. package/templates/common/.opencode/commands/wf-readme.md +3 -2
  67. package/templates/common/.opencode/commands/wf-remove.md +3 -2
  68. package/templates/common/.opencode/commands/wf-review.md +3 -2
  69. package/templates/common/.opencode/commands/wf-update.md +73 -9
  70. package/templates/common/.opencode/commands/wf.md +3 -2
  71. package/templates/common/CLAUDE.md +14 -12
  72. package/templates/common/Harness/MEMORY.md +21 -18
  73. package/templates/common/Harness/README.md +41 -39
  74. package/templates/common/Harness/ownership.manifest.json +815 -0
  75. package/templates/common/Harness/{architecture.md → project/architecture.md} +1 -1
  76. package/templates/common/Harness/research/README.md +3 -3
  77. package/templates/common/Harness/scripts/context-budget.mjs +95 -0
  78. package/templates/common/Harness/scripts/l2-cache-telemetry.mjs +703 -0
  79. package/templates/common/Harness/scripts/scan-clean.mjs +86 -4
  80. package/templates/common/Harness/scripts/validate-harness.mjs +332 -175
  81. package/templates/common/Harness/scripts/wf-remove.mjs +60 -34
  82. package/templates/common/Harness/scripts/wf-update-check.mjs +562 -121
  83. package/templates/common/Harness/settings.json +43 -0
  84. package/templates/common/Harness/{ECC-GUIDE.md → specs/guides/ECC-GUIDE.md} +4 -4
  85. package/templates/common/Harness/{SETUP.md → specs/guides/SETUP.md} +32 -35
  86. package/templates/common/Harness/{extension.md → specs/guides/extension.md} +3 -3
  87. package/templates/common/Harness/{lifecycle.md → specs/guides/lifecycle.md} +2 -2
  88. package/templates/common/Harness/{agent-workflow.md → specs/runtime/agent-workflow.md} +6 -6
  89. package/templates/common/Harness/{context-loading.md → specs/runtime/context-loading.md} +85 -21
  90. package/templates/common/Harness/{dispatch.md → specs/runtime/dispatch.md} +3 -2
  91. package/templates/common/Harness/{subagents.md → specs/runtime/subagents.md} +10 -5
  92. package/templates/common/Harness/{WF-AUTO-SPARK.md → specs/workflows/WF-AUTO-SPARK.md} +2 -2
  93. package/templates/common/Harness/{WF-AUTO.md → specs/workflows/WF-AUTO.md} +6 -1
  94. package/templates/common/Harness/{WF-KERNEL.md → specs/workflows/WF-KERNEL.md} +10 -0
  95. package/templates/common/Harness/{WF-MAX.md → specs/workflows/WF-MAX.md} +10 -5
  96. package/templates/common/Harness/{WF-STATE.md → specs/workflows/WF-STATE.md} +5 -0
  97. package/templates/common/Harness/{WF.md → specs/workflows/WF.md} +12 -1
  98. package/templates/common/README.md +8 -6
  99. package/templates/common/memory/startup-hints.md +19 -17
  100. package/templates/optional/skills/browser-e2e/.claude/skills/browser-e2e/SKILL.md +1 -1
  101. package/templates/optional/skills/browser-e2e/.claude/skills/wf-browser/SKILL.md +7 -0
  102. package/templates/optional/skills/browser-e2e/.opencode/commands/wf-browser.md +3 -2
  103. package/templates/optional/skills/browser-e2e/Harness/workflows/browser-e2e.md +4 -4
  104. package/templates/optional/skills/github-pr-review/.claude/skills/github-pr-review/SKILL.md +1 -1
  105. package/templates/optional/skills/python-backend/.claude/skills/python-backend/SKILL.md +1 -1
  106. package/templates/optional/skills/ts-react-frontend/.claude/skills/ts-react-frontend/SKILL.md +1 -1
  107. package/templates/optional/skills/ui-ux-review/.claude/skills/ui-ux-review/SKILL.md +1 -1
  108. /package/templates/common/Harness/{ACCEPTANCE_PROTOCOL.md → specs/protocols/ACCEPTANCE_PROTOCOL.md} +0 -0
  109. /package/templates/common/Harness/{AGENT_ISOLATION.md → specs/protocols/AGENT_ISOLATION.md} +0 -0
  110. /package/templates/common/Harness/{DEBUG_PROTOCOL.md → specs/protocols/DEBUG_PROTOCOL.md} +0 -0
  111. /package/templates/common/Harness/{HARNESS_BRIDGE.md → specs/protocols/HARNESS_BRIDGE.md} +0 -0
  112. /package/templates/common/Harness/{MEMORY_PROTOCOL.md → specs/protocols/MEMORY_PROTOCOL.md} +0 -0
  113. /package/templates/common/Harness/{TASK_ARCHIVE.md → specs/protocols/TASK_ARCHIVE.md} +0 -0
  114. /package/templates/common/Harness/{TDD-GUIDE.md → specs/protocols/TDD-GUIDE.md} +0 -0
  115. /package/templates/common/Harness/{WF-AUTO-ANGLES.md → specs/workflows/WF-AUTO-ANGLES.md} +0 -0
package/src/index.js CHANGED
@@ -9,6 +9,7 @@ import { generate, getOptionalCatalog } from './generator.js';
9
9
 
10
10
  const UPDATE_SUCCESS_STATUSES = new Set(['up-to-date', 'update-available', 'partial-update']);
11
11
  const UPDATE_FAILURE_STATUSES = new Set(['error', 'offline', 'template-remote', 'downgrade-refused']);
12
+ const CANONICAL_UPDATE_SOURCE_BASE = 'https://raw.githubusercontent.com/LiWeny16/create-harness-vibe-coding/main/templates/common/';
12
13
 
13
14
  // ── CLI flags ──────────────────────────────────────────────
14
15
  const raw = process.argv.slice(2);
@@ -293,9 +294,9 @@ function printResult(result, targetDir) {
293
294
  console.log(` ${pc.cyan('claude')} # Start Claude Code`);
294
295
  console.log(` ${pc.cyan('codex')} # Or start Codex`);
295
296
  console.log(` ${pc.cyan('opencode')} # Or start OpenCode`);
296
- 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.')}"`);
297
298
  console.log('');
298
- console.log(pc.dim(' Harness/SETUP.md is temporary. Delete it after initialization.'));
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.'));
299
300
  console.log('');
300
301
 
301
302
  } else {
@@ -515,6 +516,7 @@ function runUpdateSwitch(scan, { json }) {
515
516
  console.log(pc.yellow('Existing Harness detected. Switching to wf-update check.'));
516
517
  console.log(pc.dim(`Directory ${scan.resolvedDir}`));
517
518
  console.log(pc.dim('Command node Harness/scripts/wf-update-check.mjs'));
519
+ console.log(pc.dim(`Source ${CANONICAL_UPDATE_SOURCE_BASE}`));
518
520
  console.log('');
519
521
 
520
522
  if (!updateResult.success && updateResult.error) {
@@ -555,12 +557,14 @@ function createUpdateSwitchResult(scan, { json }) {
555
557
  updateCommand: json
556
558
  ? 'node Harness/scripts/wf-update-check.mjs --json'
557
559
  : 'node Harness/scripts/wf-update-check.mjs',
560
+ updateSourceBase: CANONICAL_UPDATE_SOURCE_BASE,
558
561
  next: [
559
562
  {
560
563
  action: 'update',
561
564
  command: json
562
565
  ? 'node Harness/scripts/wf-update-check.mjs --json'
563
566
  : 'node Harness/scripts/wf-update-check.mjs',
567
+ env: { WF_SOURCE_BASE: CANONICAL_UPDATE_SOURCE_BASE },
564
568
  reason: 'Harness already exists, so updates must use the installed Harness update flow.',
565
569
  },
566
570
  ],
@@ -589,6 +593,10 @@ function createUpdateSwitchResult(scan, { json }) {
589
593
  const result = spawnSync(process.execPath, args, {
590
594
  cwd: scan.resolvedDir,
591
595
  encoding: 'utf8',
596
+ env: {
597
+ ...process.env,
598
+ WF_SOURCE_BASE: CANONICAL_UPDATE_SOURCE_BASE,
599
+ },
592
600
  });
593
601
  const stdout = result.stdout || '';
594
602
  const stderr = result.stderr || '';
@@ -734,7 +742,7 @@ function createAgentGuidance(result, { projectName, targetDir, options, scan })
734
742
  } else if (result.success) {
735
743
  next.push({
736
744
  action: 'bootstrap',
737
- 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.',
738
746
  reason: 'Scaffold files were written; bootstrap project facts from local evidence.',
739
747
  });
740
748
  } else {
@@ -812,7 +820,7 @@ function createFileGuidance(file) {
812
820
  }
813
821
 
814
822
  function templateHintFor(file) {
815
- 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';
816
824
  return `templates/common/${file}`;
817
825
  }
818
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: debugger
3
4
  description: Use to isolate a failing command, reproduce the smallest failing path, and propose the narrowest fix.
4
5
  tools: Read, Grep, Glob, Bash, Write, Edit, MultiEdit
@@ -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: implementer
3
4
  description: Use to implement the smallest change inside a declared write set after tests or manual checks are defined.
4
5
  tools: Read, Grep, Glob, Write, Edit, MultiEdit, Bash
@@ -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: reflector
3
4
  description: Use after verification and cross-review to synthesize findings, detect unresolved risk, and decide whether work may enter final acceptance.
4
5
  tools: Read, Grep, Glob
@@ -1,4 +1,5 @@
1
1
  ---
2
+ harness: wf-agent
2
3
  name: researcher
3
4
  description: Use for product, market, competitor, open-source, dependency, pricing, policy, or ecosystem research before PRD and architecture decisions.
4
5
  tools: Read, Grep, Glob, WebSearch, WebFetch, Bash
@@ -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: task-scribe
3
4
  description: Use to maintain Harness task state, heartbeat, dispatch ledger, evidence pointers, and compact PLAN/PROGRESS updates. Small-fast chore agent. Never edits source code.
4
5
  tools: Read, Grep, Glob, Write, Edit
@@ -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
 
@@ -1,4 +1,5 @@
1
1
  ---
2
+ harness: wf-agent
2
3
  name: verifier
3
4
  description: Use to run verification commands, inspect results, and record evidence. Final acceptance still waits for cross-review PASS and reflector PASS.
4
5
  tools: Read, Grep, Glob, Bash
@@ -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,23 +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 `agent` block as the action plan.
8
- 2. Preserve all PRESERVE files. Never overwrite user task, memory, research, README, package, or architecture files.
9
- 3. If `agent.safeApplyCommand` is present, run it to apply SAFE/NEW files first.
10
- 4. For conflicts, compare local with `templateHint` or `remoteUrl`, decide merge/keep-local/overwrite, and record via `--accept-local`, `--accept-merged`, or `--accept-template`.
11
- 5. Run `node Harness/scripts/wf-update-check.mjs --finalize` after all conflicts resolved.
12
- 6. After update, run `node Harness/scripts/validate-harness.mjs` and `node Harness/scripts/scan-clean.mjs`.
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 `node Harness/scripts/wf-update-check.mjs`.
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 the script reports `Harness/.harness-version not found` or the update checker script itself is missing (`Harness/scripts/wf-update-check.mjs`), the Harness install predates version-tracking. Recover by regenerating missing infrastructure without overwriting user files:
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
- This creates missing Harness files while preserving CLAUDE.md, README.md, tasks, memory, research, and all user data. After recovery, re-run the update check.
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.
74
+
75
+ If an old updater reports only `0.8.10`, run the latest installer command above
76
+ or re-run the checker with:
77
+
78
+ ```
79
+ node Harness/scripts/wf-update-check.mjs --json --source-base https://raw.githubusercontent.com/LiWeny16/create-harness-vibe-coding/main/templates/common/
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.