create-harness-vibe-coding 0.8.13 → 0.8.17
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 +174 -0
- package/README-CN.md +110 -107
- package/README.md +93 -44
- package/package.json +2 -1
- package/src/generator.js +609 -489
- package/src/index.js +5 -5
- 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-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 +3 -2
- package/templates/common/.claude/commands/wf-help.md +9 -5
- 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-update.md +68 -10
- package/templates/common/.claude/commands/wf.md +16 -0
- 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-browser/SKILL.md +176 -0
- package/templates/common/.claude/skills/wf-help/SKILL.md +30 -0
- package/templates/common/.claude/skills/wf-learn/SKILL.md +6 -0
- package/templates/common/.claude/skills/wf-max/SKILL.md +43 -14
- 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/.codex/config.toml +3 -5
- package/templates/common/.harness-version +326 -131
- package/templates/common/.opencode/agents/architect-manager.md +8 -1
- 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 +11 -1
- package/templates/common/.opencode/agents/implement-manager.md +6 -3
- 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 +6 -2
- 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-browser.md +16 -0
- package/templates/common/.opencode/commands/wf-help.md +9 -5
- package/templates/common/.opencode/commands/wf-learn.md +3 -2
- package/templates/common/.opencode/commands/wf-max.md +12 -6
- 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 +15 -13
- package/templates/common/Harness/MEMORY.md +24 -21
- package/templates/common/Harness/README.md +50 -47
- package/templates/common/Harness/ownership.manifest.json +878 -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/archive-tasks.mjs +12 -220
- 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 +16 -12
- package/templates/common/Harness/scripts/task-state.mjs +889 -0
- package/templates/common/Harness/scripts/validate-harness.mjs +553 -191
- package/templates/common/Harness/scripts/wf-remove.mjs +61 -35
- package/templates/common/Harness/scripts/wf-update-check.mjs +358 -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} +34 -37
- 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/specs/protocols/TASK_ARCHIVE.md +76 -0
- 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} +4 -3
- package/templates/common/Harness/{subagents.md → specs/runtime/subagents.md} +19 -10
- 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} +12 -7
- package/templates/common/Harness/{WF-KERNEL.md → specs/workflows/WF-KERNEL.md} +11 -1
- package/templates/common/Harness/{WF-MAX.md → specs/workflows/WF-MAX.md} +40 -7
- package/templates/common/Harness/specs/workflows/WF-STATE.md +141 -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/common/opencode.json +1 -0
- package/templates/optional/catalog.json +2 -9
- 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/TASK_ARCHIVE.md +0 -56
- package/templates/common/Harness/WF-STATE.md +0 -83
- 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 -194
- package/templates/optional/skills/browser-e2e/Harness/workflows/browser-e2e.md +0 -119
- /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/{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/CHANGELOG.md
ADDED
|
@@ -0,0 +1,174 @@
|
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
## [0.8.17] - 2026-07-26
|
|
4
|
+
|
|
5
|
+
- Add HarnessBench v0.2 as an external-only lifecycle proof: 15 runs per mode, direct file writes safe in 3/15 runs, Harness safe path safe in 15/15 runs.
|
|
6
|
+
- Keep benchmark fixtures, raw results, and scorer scripts out of generated installs and npm package files while publishing the summary in README and README-CN.
|
|
7
|
+
- Make `wf-browser` the built-in browser automation entry and retire `browser-e2e` as a warning no-op optional id.
|
|
8
|
+
- Add `wf-help` compatibility surfaces for Claude, Codex, and OpenCode with guards against nonexistent OpenCode skill paths.
|
|
9
|
+
- Harden WF-MAX fan-out docs and OpenCode manager allowlists while preserving the Codex config guard against unsupported scalar subagent caps.
|
|
10
|
+
- Add deterministic task-state/archive reconciliation tooling and validators for active task consistency.
|
|
11
|
+
|
|
12
|
+
## [0.8.16] - 2026-07-23
|
|
13
|
+
|
|
14
|
+
- Fix `scan-clean` default source selection so it honors the installed `Harness/.harness-version.source` before falling back to npm/GitHub, preventing false dead-file reports before npm publish catches up.
|
|
15
|
+
- Register `/wf-update` in `Harness/MEMORY.md` as a direct command and add validator coverage for the route.
|
|
16
|
+
- Clean `wf-remove.mjs` human-readable output to remove replacement characters and add a validator guard against future encoding pollution.
|
|
17
|
+
|
|
18
|
+
## [0.8.15] - 2026-07-23
|
|
19
|
+
|
|
20
|
+
- Add real Claude Code L2 prompt-cache telemetry via `Harness/scripts/l2-cache-telemetry.mjs`, including bounded provider-control, thin-startup, and `/wf` light-route probes.
|
|
21
|
+
- Record the measured cache result in README: harness-thin warm median cache read `98.7%` (`+5.4` percentage points vs provider-control) and `/wf` wf-light `99.1%` (`+5.8` percentage points), with the raw local report path and the exact usage-field formula.
|
|
22
|
+
- Add cache regression gates: L0 structure checks, L1 SHA-256 stable-prefix simulation, L2 claim-gated provider telemetry, and context-budget guards for route profiles.
|
|
23
|
+
- Tighten startup routing: normal sessions stay thin (`CLAUDE.md` + `Harness/memory/startup-hints.md`), `Harness/specs/guides/SETUP.md` is retained only as install/bootstrap/migration/upgrade reference, and `Harness/README.md` remains the routed workflow router.
|
|
24
|
+
- Add `wf-agents-docs` CLI invocation guidance for Claude Code, Codex, and OpenCode automation, including JSON telemetry parsing and cache-attribution boundaries.
|
|
25
|
+
- Align `/wf-update` direct commands with the 8-step safe update flow: safe apply first, script-recorded conflict decisions, finalize only after conflicts are resolved, then validate and scan.
|
|
26
|
+
- Harden update/remove consistency: remove script recognizes new built-in agents/skills, updater keeps `Harness/specs/guides/SETUP.md` instead of treating it as disposable bootstrap debt, and validators catch route/cache/update drift.
|
|
27
|
+
|
|
28
|
+
## [0.8.14] - 2026-07-22
|
|
29
|
+
|
|
30
|
+
- Introduce `Harness/ownership.manifest.json` as the machine-readable source of truth for install/update file classification; auto-generated by `node scripts/build-version.mjs` from `templates/common/` + `templates/optional/catalog.json`, manifest-first with content-marker fallback for old installs.
|
|
31
|
+
- Fix optional-skill collision: user same-name skills (e.g. `browser-e2e`) are no longer overwritten when the option is not installed (`optionalOwned` → `safe-if-installed`).
|
|
32
|
+
- Normalize line endings via `.gitattributes` so `git diff --check` stays clean across Windows/POSIX.
|
|
33
|
+
- Release gate reminder: legacy `zingspark` mirror sync AND `npm publish` must both complete before announcing an update as available to existing users.
|
|
34
|
+
- Install collision guard: same-name user-authored agents/commands/skills are preserved under overwrite/backup/skip and surface as conflicts under fail; only files carrying a Harness ownership marker upgrade, and a warning names each preserved user file.
|
|
35
|
+
- Tighten Harness-ownership detection: drop the broad `/wf` substring marker that false-matched user files merely mentioning `/wf`; frontmatter and specific identity markers remain.
|
|
36
|
+
- Docs: align `/wf-update` command and skill with updater behavior — carry-forward covers all merge-tier files (CLAUDE.md, AGENTS.md, MEMORY.md, Harness/MEMORY.md, Harness/README.md), root README.md is PRESERVE while Harness/README.md is merge-tier, and safe-apply covers SAFE/NEW/adopted files.
|
|
37
|
+
- Release gate: legacy mirror must also publish the tag's GitHub Release, not only commit/tag/manifest.
|
|
38
|
+
- Carry forward unchanged accepted CLAUDE.md/AGENTS.md conflict decisions so update checks do not re-ask for the same keep-local choice every release.
|
|
39
|
+
- Detect existing untracked Harness-owned agent/command/skill files by content markers before overwriting; same-name user files remain real conflicts.
|
|
40
|
+
- Add `harness: wf-agent` markers to built-in agent frontmatter for future content-based ownership checks.
|
|
41
|
+
- Prepare SAFE/NEW update files concurrently while preserving all-or-nothing checksum validation before writing.
|
|
42
|
+
|
|
43
|
+
## [0.8.13] - 2026-07-22
|
|
44
|
+
|
|
45
|
+
- Make Harness updates resolve from npm `create-harness-vibe-coding@latest` first, with `LiWeny16/create-harness-vibe-coding` as the canonical GitHub fallback and `zingspark/create-harness-vibe-coding` as the legacy mirror fallback.
|
|
46
|
+
- Keep generated installs on the canonical `LiWeny16` source while requiring `zingspark` legacy mirror sync for old updaters.
|
|
47
|
+
- Make `--apply-safe` validate all remote hashes before writing any SAFE/NEW files.
|
|
48
|
+
- Force the latest install CLI's existing-Harness update switch to pass the canonical `LiWeny16` source to older updater scripts.
|
|
49
|
+
|
|
50
|
+
## [0.8.12] - 2026-07-22
|
|
51
|
+
|
|
52
|
+
- Harden `/wf-auto-spark` with documented search fallbacks, reflector escalation, and drift/delegation anti-pattern guards.
|
|
53
|
+
- Make task-scribe the default process-file writer for spark and WF-MAX task-state updates.
|
|
54
|
+
- Add validator and generator coverage for the new spark protocol contract.
|
|
55
|
+
- Refresh the homepage 3D Act 1 opening layout and interaction refinements.
|
|
56
|
+
|
|
57
|
+
## [0.8.11] - 2026-07-21
|
|
58
|
+
|
|
59
|
+
- Move repository metadata, README links, and Harness update sources to `LiWeny16/create-harness-vibe-coding`.
|
|
60
|
+
- Prepare personal-repo maintenance as the canonical public source.
|
|
61
|
+
|
|
62
|
+
## [0.8.10] - 2026-07-21
|
|
63
|
+
|
|
64
|
+
- Move Harness update reminders to startup-only hooks for Claude, Codex, and OpenCode.
|
|
65
|
+
- Harden `wf-update-check.mjs` so stable updates prefer a usable GitHub release, ignore prerelease generators, and fall back to `main` when release metadata is stale.
|
|
66
|
+
- Add validator, generator, E2E, pack-smoke, and CI/pre-push coverage for startup-only update checks.
|
|
67
|
+
- Reject drive-letter paths in Harness update/remove/clean scripts across platforms.
|
|
68
|
+
|
|
69
|
+
## [0.8.9] - 2026-07-17
|
|
70
|
+
|
|
71
|
+
- Add safe recovery for older Harness installs missing `wf-update-check.mjs`.
|
|
72
|
+
- Tighten update-check JSON output and WF-AUTO hook output to keep default agent context small.
|
|
73
|
+
- Add L2 startup memory hints and L3 memory route indexing to generated Harness installs.
|
|
74
|
+
- Add symlink write-path protection and P0 regressions for scaffold safety.
|
|
75
|
+
- Include the README icon in the published npm package.
|
|
76
|
+
|
|
77
|
+
## [0.5.0] - 2026-06-25
|
|
78
|
+
|
|
79
|
+
- `/wf-learn` command: force memory learning cycle (context-master → memory-master → project + global memory).
|
|
80
|
+
- Fix auto-trigger: replace unreliable "3x failure" rule with mandatory closeout gate in wf-mode.
|
|
81
|
+
- Register `/wf-learn` in all routers (CLAUDE.md, MEMORY.md, README.md).
|
|
82
|
+
|
|
83
|
+
## [0.4.3] - 2026-06-25
|
|
84
|
+
|
|
85
|
+
- Add CHANGELOG.md with full version history (0.1.4 → 0.4.2).
|
|
86
|
+
- Create git tags v0.3.0–v0.4.2 and GitHub Releases for all major versions.
|
|
87
|
+
- Bump harness-version to 0.4.2.
|
|
88
|
+
|
|
89
|
+
## [0.4.2] - 2026-06-25
|
|
90
|
+
|
|
91
|
+
- Simplify CLAUDE.md Section 7: route to WF.md/WF-MAX.md instead of inline dispatch rules.
|
|
92
|
+
|
|
93
|
+
## [0.4.1] - 2026-06-25
|
|
94
|
+
|
|
95
|
+
- CEO must not write code directly in `/wf` or `/wf-max` mode — delegate only.
|
|
96
|
+
- Reinforce CEO constraint in WF-MAX.md.
|
|
97
|
+
|
|
98
|
+
## [0.4.0] - 2026-06-25
|
|
99
|
+
|
|
100
|
+
- `/wf <task/mission>`: command now accepts a required task argument.
|
|
101
|
+
- `/wf-max [task]`: renamed from `/wf max`, accepts an optional task argument.
|
|
102
|
+
- Remove `wf-mode` as a standalone slash command (skill still handles natural-language triggers).
|
|
103
|
+
- CEO must not call `EnterPlanMode` — delegate planning to `planner` subagents.
|
|
104
|
+
- Sync all trigger keywords across CLAUDE.md, Harness docs, validators, and templates.
|
|
105
|
+
|
|
106
|
+
## [0.3.4] - 2026-06-25
|
|
107
|
+
|
|
108
|
+
- Fix markdown bold syntax — move punctuation outside `**` markers.
|
|
109
|
+
- Full README rewrite: concise, punchy, scannable.
|
|
110
|
+
- Sync README EN/CN: agent prompt top, full CN alignment.
|
|
111
|
+
|
|
112
|
+
## [0.3.3] - 2026-06-24
|
|
113
|
+
|
|
114
|
+
- WF-MAX cross-reference integrity fix.
|
|
115
|
+
- Sync harness dogfood to 0.3.3: version bump, SETUP.md, recompute checksums.
|
|
116
|
+
|
|
117
|
+
## [0.3.2] - 2026-06-24
|
|
118
|
+
|
|
119
|
+
- `/wf max`: three-tier enterprise hierarchy (CEO → Managers → Workers).
|
|
120
|
+
- Span formula, leaf condition, wave orchestration, manager synthesis protocol.
|
|
121
|
+
|
|
122
|
+
## [0.3.1] - 2026-06-23
|
|
123
|
+
|
|
124
|
+
- Fix README-CN mermaid syntax.
|
|
125
|
+
- Sync README-CN with English, add mermaid workflow diagram.
|
|
126
|
+
|
|
127
|
+
## [0.3.0] - 2026-06-23
|
|
128
|
+
|
|
129
|
+
- PROGRESS.md + tasks/ task capsules.
|
|
130
|
+
- WF update mechanism (`/wf update`).
|
|
131
|
+
- memory-master and context-master agents.
|
|
132
|
+
- Cohesion rule (feature doc < Worker granularity).
|
|
133
|
+
|
|
134
|
+
## [0.2.1] - 2026-06-22
|
|
135
|
+
|
|
136
|
+
- WF multi-agent routing with subagent orchestration.
|
|
137
|
+
|
|
138
|
+
## [0.2.0] - 2026-06-22
|
|
139
|
+
|
|
140
|
+
- Harness root workflow (`/wf`).
|
|
141
|
+
- CLAUDE.md, Harness/ docs structure, and initial agent roster.
|
|
142
|
+
|
|
143
|
+
## [0.1.10] - 2026-06-21
|
|
144
|
+
|
|
145
|
+
- Non-invasive harness bootstrap.
|
|
146
|
+
- Optional skills catalog.
|
|
147
|
+
- `--json` output flag.
|
|
148
|
+
|
|
149
|
+
## [0.1.9] - 2026-06-21
|
|
150
|
+
|
|
151
|
+
- Feature versioning: iterate vs new based on 85% overlap rule.
|
|
152
|
+
|
|
153
|
+
## [0.1.8] - 2026-06-21
|
|
154
|
+
|
|
155
|
+
- Template Fill Guide in SETUP.md: map every placeholder to expected content.
|
|
156
|
+
|
|
157
|
+
## [0.1.7] - 2026-06-21
|
|
158
|
+
|
|
159
|
+
- Skill-discovery guide.
|
|
160
|
+
- CLAUDE.md renumbering.
|
|
161
|
+
- SETUP.md isolation.
|
|
162
|
+
|
|
163
|
+
## [0.1.6] - 2026-06-20
|
|
164
|
+
|
|
165
|
+
- Wire architecture research refs, seed repos, and user-confirmation protocol into harness.
|
|
166
|
+
|
|
167
|
+
## [0.1.5] - 2026-06-20
|
|
168
|
+
|
|
169
|
+
- Add `-y`/`--yes` and `-h`/`--help` flags.
|
|
170
|
+
- Document agent self-bootstrapping.
|
|
171
|
+
|
|
172
|
+
## [0.1.4] - 2026-06-20
|
|
173
|
+
|
|
174
|
+
- Initial public release.
|
package/README-CN.md
CHANGED
|
@@ -11,166 +11,182 @@
|
|
|
11
11
|
|
|
12
12
|
<h1 align="center">create-harness-vibe-coding</h1>
|
|
13
13
|
<p align="center">
|
|
14
|
-
<b
|
|
15
|
-
<sub
|
|
14
|
+
<b>给 AI coding agent 一个仓库内的执行契约。</b><br>
|
|
15
|
+
<sub>支持 Claude Code、Codex 和 OpenCode</sub>
|
|
16
16
|
</p>
|
|
17
17
|
|
|
18
18
|
<p align="center">
|
|
19
|
-
<a href="README.md">English</a>
|
|
20
|
-
<a href="https://github.com/LiWeny16/create-harness-vibe-coding">GitHub</a>
|
|
19
|
+
<a href="README.md">English</a> |
|
|
20
|
+
<a href="https://github.com/LiWeny16/create-harness-vibe-coding">GitHub</a> |
|
|
21
21
|
<a href="https://www.npmjs.com/package/create-harness-vibe-coding">npm</a>
|
|
22
22
|
</p>
|
|
23
23
|
|
|
24
|
-
---
|
|
25
|
-
|
|
26
24
|
## 这是什么?
|
|
27
25
|
|
|
28
|
-
`create-harness-vibe-coding` 是一个 Node.js CLI
|
|
26
|
+
`create-harness-vibe-coding` 是一个 Node.js CLI。它在仓库里生成 Harness:一套给 AI coding agent 使用的工作契约,覆盖目标、上下文、写入边界、验证、任务状态和长期记忆。
|
|
27
|
+
|
|
28
|
+
它不是模型、不是 prompt 集,也不会生成业务代码。它解决的是工程流程问题:agent 在长任务里容易忘记上下文、扩大改动范围、跳过验证,或者中断后重新扫描仓库。
|
|
29
|
+
|
|
30
|
+
## 当前实测
|
|
29
31
|
|
|
30
|
-
|
|
32
|
+
0.8.16 这版只写已经跑出来的数据:
|
|
31
33
|
|
|
32
|
-
|
|
34
|
+
- HarnessBench v0.2 本地生命周期 benchmark:每个模式 15 轮。直接写文件 baseline 安全完成 3/15;Harness safe path 安全完成 15/15。
|
|
35
|
+
- 受保护文件覆盖次数:baseline 21 次;Harness safe path 0 次。
|
|
36
|
+
- Claude Code L2 prompt-cache 样本:`harness-thin` warm median cache read 为 `98.7%`,比 provider-control 高 `+5.4` 个百分点;`/wf` wf-light 为 `99.1%`,高 `+5.8` 个百分点。
|
|
37
|
+
- 启动和更新链路:正常会话保持 thin startup,`Harness/specs/guides/SETUP.md` 只作为安装、迁移、升级参考;`/wf-update` 要汇报 `agent.releaseHighlights` 和验证结果。
|
|
33
38
|
|
|
34
|
-
|
|
39
|
+
完整的模型任务成功率 A/B 还没有发布。要对外说“模型解题成功率提升”,必须用同一个模型、同一个 fixture、同一个 prompt、同一个预算和同一套验证命令跑完 raw logs。
|
|
40
|
+
|
|
41
|
+
## 一句话安装
|
|
42
|
+
|
|
43
|
+
把下面这句话交给当前正在使用的 Agent:
|
|
35
44
|
|
|
36
45
|
> 请根据 https://github.com/LiWeny16/create-harness-vibe-coding/blob/main/README-CN.md 安装 Harness 框架。
|
|
37
46
|
|
|
38
47
|
## 安装说明(Agent instruction)
|
|
39
48
|
|
|
40
|
-
Agent 读取本 README
|
|
49
|
+
Agent 读取本 README 后,按项目状态选择路径:
|
|
41
50
|
|
|
42
51
|
| 项目状态 | Agent 执行 |
|
|
43
52
|
|---|---|
|
|
44
53
|
| 新项目 | `npx create-harness-vibe-coding@latest my-project -y` |
|
|
45
54
|
| 已有项目 | `npx create-harness-vibe-coding@latest my-project . -y --on-conflict skip --json` |
|
|
46
|
-
| 已有 `Harness/` 且存在 `Harness/scripts/wf-update-check.mjs` | `node Harness/scripts/wf-update-check.mjs --json
|
|
55
|
+
| 已有 `Harness/` 且存在 `Harness/scripts/wf-update-check.mjs` | `node Harness/scripts/wf-update-check.mjs --json`,走更新流程,不要重复安装;apply/finalize 后汇报 `agent.releaseHighlights` 和验证结果 |
|
|
47
56
|
| 已有 `Harness/` 但缺少 `Harness/scripts/wf-update-check.mjs` | `npx create-harness-vibe-coding@latest my-project . -y --on-conflict skip --json`。然后执行 `node Harness/scripts/wf-update-check.mjs --json` |
|
|
48
57
|
| 安装或更新完成 | `node Harness/scripts/validate-harness.mjs --strict` |
|
|
49
58
|
|
|
50
|
-
|
|
59
|
+
用户不需要手动执行这些命令。Agent 负责安装、冲突处理、校验和汇报。
|
|
60
|
+
|
|
61
|
+
安装后的入口按阶段区分:
|
|
51
62
|
|
|
52
|
-
|
|
63
|
+
- 正常会话入口是 `CLAUDE.md`。
|
|
64
|
+
- `Harness/specs/guides/SETUP.md` 只用于安装、bootstrap、迁移或升级决策。
|
|
65
|
+
- 需要 Harness 工作流路由时再读 `Harness/README.md`。
|
|
53
66
|
|
|
54
67
|
## WF 命令怎么选
|
|
55
68
|
|
|
56
|
-
|
|
69
|
+
不确定时,用 `/wf-help`。在 Codex 里用 `$wf-help`。它只返回命令说明,不会启动工作流。
|
|
57
70
|
|
|
58
|
-
| 命令 | 什么时候用 |
|
|
71
|
+
| 命令 | 什么时候用 | 做什么 | 示例 |
|
|
59
72
|
|---|---|---|---|
|
|
60
|
-
| `/wf <任务>` | 多文件、架构、迁移、风险较高或反复失败 | 研究
|
|
61
|
-
| `/wf-max <任务>` |
|
|
62
|
-
| `/wf-auto` | 希望 Agent
|
|
73
|
+
| `/wf <任务>` | 多文件、架构、迁移、风险较高或反复失败 | 研究 -> 计划 -> 实现 -> 测试 -> 审查 -> 验证 -> 复盘 | `/wf 重构支付模块并补齐测试` |
|
|
74
|
+
| `/wf-max <任务>` | 任务能拆成互不冲突的部分,需要最大并行度 | 在 WF 链路上增加 CEO -> Manager -> Worker 分工和并行波次 | `/wf-max 并行升级前端、后端和文档` |
|
|
75
|
+
| `/wf-auto` | 希望 Agent 持续自我优化 | 连续执行优化循环,每轮保留计划、证据和反馈 | `/wf-auto 优化这个项目的稳定性` |
|
|
63
76
|
| `/wf-auto-spark` | 需要外部灵感、竞品方向或长期路线图 | 搜索外部 spark,绑定 North Star 和里程碑,限制偏离范围 | `/wf-auto-spark 探索产品增长方向` |
|
|
64
|
-
| `/wf-review [重点]` | 需要第二意见、同行审查或上线前复核 | 优先调用可用 peer CLI;没有时使用独立 reviewer
|
|
65
|
-
| `/wf-learn` | 同类错误反复出现,或一次任务结束后要沉淀经验 |
|
|
66
|
-
| `/wf-browser <任务>` | 浏览器冒烟、E2E、截图、表单或页面验证 |
|
|
67
|
-
| `/wf-readme <任务>` | README
|
|
68
|
-
| `/wf-update` |
|
|
77
|
+
| `/wf-review [重点]` | 需要第二意见、同行审查或上线前复核 | 优先调用可用 peer CLI;没有时使用独立 reviewer 角色 | `/wf-review 重点检查安全和数据丢失` |
|
|
78
|
+
| `/wf-learn` | 同类错误反复出现,或一次任务结束后要沉淀经验 | 汇总上下文、记忆和项目经验 | `/wf-learn 总结这次返修原因` |
|
|
79
|
+
| `/wf-browser <任务>` | 浏览器冒烟、E2E、截图、表单或页面验证 | 使用真实浏览器并提供截图、trace 或状态证据 | `/wf-browser 验证登录和支付流程` |
|
|
80
|
+
| `/wf-readme <任务>` | README、安装文档、架构图或项目说明需要整理 | 保留事实,整理结构,补充安装和使用说明 | `/wf-readme 优化中文 README` |
|
|
81
|
+
| `/wf-update` | 已安装 Harness,需要检查和应用框架更新 | 比较版本,自动处理安全变更,把语义冲突留给 Agent | `/wf-update` |
|
|
69
82
|
| `/wf-remove` | 需要卸载 Harness | 自动清理安全文件,保留用户数据,冲突文件先确认 | `/wf-remove` |
|
|
70
|
-
| `/wf-help` | 不知道该用哪个命令 | 只返回命令、用途和用法,不启动工作流 | `/wf-help` |
|
|
71
83
|
|
|
72
|
-
Claude Code 使用 `/wf-*`;Codex 使用对应的 `$wf-*`;OpenCode
|
|
73
|
-
|
|
74
|
-
常见场景可以这样起步:Web/API 先看正确性、安全、可靠性和验证;CLI/SDK 先看契约、兼容性、错误体验和文档;AI Agent 先看上下文质量、工具安全、评测和恢复;数据任务先看幂等性、失败恢复和可观测性。完整的自适应选择规则见 [WF-AUTO-ANGLES.md](Harness/WF-AUTO-ANGLES.md)。
|
|
84
|
+
Claude Code 使用 `/wf-*`;Codex 使用对应的 `$wf-*`;OpenCode 使用已注册命令或 Agent instruction。常见任务起点见 [WF-AUTO-ANGLES.md](Harness/specs/workflows/WF-AUTO-ANGLES.md)。
|
|
75
85
|
|
|
76
86
|
## 它改变了什么?
|
|
77
87
|
|
|
78
|
-
|
|
|
79
|
-
|
|
80
|
-
|
|
|
81
|
-
|
|
|
82
|
-
|
|
|
83
|
-
|
|
|
84
|
-
|
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
需求
|
|
94
|
-
↓
|
|
95
|
-
研究 → PRD → 架构 → 验收条件
|
|
96
|
-
↓
|
|
97
|
-
任务拆分 → 实现 → 测试 → 审查
|
|
98
|
-
↓
|
|
99
|
-
验证 → 学习 → 更新下一次任务
|
|
88
|
+
| 问题 | 没有 Harness | 使用 Harness |
|
|
89
|
+
|---|---|---|
|
|
90
|
+
| 完成标准 | 看起来能跑就结束 | 验收条件、测试、validator 和 review 一起决定是否完成 |
|
|
91
|
+
| 文件边界 | 靠 agent 临场判断 | 写入前先分类 create / skip / backup / overwrite / conflict |
|
|
92
|
+
| 中断恢复 | 重新扫描仓库和历史决策 | `Harness/PROGRESS.md`、任务状态和 Memory 提供接力信息 |
|
|
93
|
+
| 人工纠偏 | 人不断补上下文、盯冲突、催验证 | 人主要处理语义冲突和关键决策,`humanInterventions` 可记录 |
|
|
94
|
+
| 成本 | 前期省步骤,后期返工不可见 | 初始化成本明确,duration、token 和验证证据可记录 |
|
|
95
|
+
|
|
96
|
+
## HarnessBench 本地生命周期 benchmark
|
|
97
|
+
|
|
98
|
+
2026-07-26,本仓库运行 v0.2 本地 benchmark:
|
|
99
|
+
|
|
100
|
+
```bash
|
|
101
|
+
node scripts/harness-bench-local.mjs --output benchmarks/results/harnessbench-local-v0.2.json
|
|
102
|
+
node scripts/harness-bench.mjs --input benchmarks/results/harnessbench-local-v0.2.json --markdown
|
|
100
103
|
```
|
|
101
104
|
|
|
102
|
-
|
|
105
|
+
| Mode | Tasks | Runs | Verified safe | Protected overwrites | Repair-triggering runs | Manual repair events | Required-file misses | Benchmark leaks | Boundary violations |
|
|
106
|
+
|---|---:|---:|---:|---:|---:|---:|---:|---:|---:|
|
|
107
|
+
| No Harness baseline (direct file writes) (`direct-run`) | 5 | 15 | 3/15 (20%) | 21 | 12 | 21 | 0 | 0 | 12 |
|
|
108
|
+
| Harness safe path (`harness-wf`) | 5 | 15 | 15/15 (100%) | 0 | 0 | 0 | 0 | 0 | 0 |
|
|
103
109
|
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
110
|
+
这组数据只证明本仓库内可复现的生命周期能力:新项目安装、已有 README/agent entry 保护、用户同名 skill 保护、旧 Harness 缺 updater 的恢复、以及 benchmark 不进入生成产物。
|
|
111
|
+
|
|
112
|
+
它还不能证明任意前端、后端或嵌入式任务的模型成功率提升。完整 HarnessBench 会继续覆盖 Web/API、前端交互、嵌入式 UART/I2C/watchdog,以及生命周期恢复任务。未发布 raw logs 前,README 不写泛化成功率。
|
|
113
|
+
|
|
114
|
+
Benchmark runner、fixture、scorer 和 raw JSON 都是外部证明材料,不会打进用户安装后的 Harness。
|
|
115
|
+
|
|
116
|
+
## Prompt-cache L2 样本
|
|
117
|
+
|
|
118
|
+
2026-07-23,本 dogfood 仓库运行了一次有预算上限的 Claude Code L2 prompt-cache probe:
|
|
119
|
+
|
|
120
|
+
```bash
|
|
121
|
+
node Harness/scripts/l2-cache-telemetry.mjs --groups provider-control,harness-thin,wf-light --turns 11 --turn-budget-usd 0.32 --total-budget-usd 1.20 --timeout-ms 240000
|
|
122
|
+
```
|
|
123
|
+
|
|
124
|
+
数据来自 Claude Code JSON usage 字段,尤其是 `usage.cache_read_input_tokens` 和 `usage.cache_creation_input_tokens`。读缓存比例按 `cache_read_input_tokens / (input_tokens + cache_creation_input_tokens + cache_read_input_tokens)` 计算。原始本地报告不提交进仓库,位置是 `~/.claude/cache-telemetry/harness-l2-claim-20260723-130331.json`。
|
|
125
|
+
|
|
126
|
+
| 路由 | Turns | 成功率 | Warm median cache read | Warm 区间 | Warm median latency | 相对 provider-control |
|
|
127
|
+
|---|---:|---:|---:|---:|---:|---:|
|
|
128
|
+
| provider-control | 11 | 11/11 | 93.3% | 91.1%-95.4% | 2123.5 ms | baseline |
|
|
129
|
+
| harness-thin | 11 | 11/11 | 98.7% | 98.1%-99.2% | 1786.5 ms | +5.4 个百分点 |
|
|
130
|
+
| `/wf` wf-light | 11 | 11/11 | 99.1% | 98.7%-99.7% | 2900 ms | +5.8 个百分点 |
|
|
131
|
+
|
|
132
|
+
边界:这只说明本次 Claude Code 受控样本里有真实缓存读取,并测到了提升;不是对所有模型、仓库、任务或 provider 的承诺。
|
|
107
133
|
|
|
108
134
|
## 架构图
|
|
109
135
|
|
|
110
136
|
<p align="center">
|
|
111
137
|
<a href="docs/images/harness-architecture-light.png">
|
|
112
|
-
<img src="docs/images/harness-architecture-light.png" alt="Harness Light
|
|
138
|
+
<img src="docs/images/harness-architecture-light.png" alt="Harness Light 架构图:开发者请求经过目标与约束、上下文、分解与反馈,进入执行、验证、学习、更新闭环" width="100%">
|
|
113
139
|
</a>
|
|
114
140
|
<br>
|
|
115
141
|
<sub>
|
|
116
|
-
Light 风格架构图
|
|
142
|
+
Light 风格架构图 | <a href="docs/images/harness-architecture.drawio">可编辑 Drawio 源文件</a>
|
|
117
143
|
</sub>
|
|
118
144
|
</p>
|
|
119
145
|
|
|
146
|
+
三个核心支柱:
|
|
147
|
+
|
|
148
|
+
1. **目标与约束**:明确要解决什么、不能改什么、怎样算完成。
|
|
149
|
+
2. **上下文与记忆**:通过路由、按需加载和持久记忆,把正确的信息交给正确的 agent。
|
|
150
|
+
3. **分解与反馈**:把长任务切成有边界的小任务,每一步都留下验证和恢复入口。
|
|
151
|
+
|
|
120
152
|
## 你会得到什么
|
|
121
153
|
|
|
122
154
|
| 目录或文件 | 作用 |
|
|
123
155
|
|---|---|
|
|
124
|
-
| `CLAUDE.md`、`AGENTS.md` | agent
|
|
125
|
-
| `Harness/README.md`、`Harness/MEMORY.md` |
|
|
156
|
+
| `CLAUDE.md`、`AGENTS.md` | agent 会话入口契约和兼容指针 |
|
|
157
|
+
| `Harness/README.md`、`Harness/MEMORY.md` | Harness 工作流路由和资源索引 |
|
|
126
158
|
| `Harness/tasks/`、`Harness/PROGRESS.md` | 跨会话保存任务状态和接力信息 |
|
|
127
|
-
| `.claude/`、`.agents/`、`.codex/`、`.opencode/` | 不同 coding agent 的发现入口和配置 |
|
|
159
|
+
| `.claude/`、`.agents/skills/`、`.codex/`、`.opencode/` | 不同 coding agent 的发现入口和配置 |
|
|
128
160
|
| `templates/common/`、`templates/optional/` | 可生成脚手架的声明式源文件 |
|
|
129
161
|
| `Harness/scripts/validate-harness.mjs` | 检查脚手架结构和 bootstrap 完整度 |
|
|
130
162
|
|
|
131
|
-
生成项目不会替你选择业务技术栈,也不会生成业务代码。你可以在 bootstrap
|
|
132
|
-
|
|
133
|
-
## 稳定性、返修率与人工纠偏:别让 Agent 靠运气交付
|
|
163
|
+
生成项目不会替你选择业务技术栈,也不会生成业务代码。你可以在 bootstrap 后选择 React、FastAPI、嵌入式 C/C++ 或其他技术栈。
|
|
134
164
|
|
|
135
|
-
|
|
165
|
+
## 和相邻工具相比
|
|
136
166
|
|
|
137
|
-
|
|
167
|
+
Harness 是 repo-local operating contract,可以叠在 Claude Code、Codex、OpenCode 或其他 agent 之上,不替代模型或编辑器本身。
|
|
138
168
|
|
|
139
|
-
|
|
|
140
|
-
|---|---|---|---|
|
|
141
|
-
| 稳定性 | 能跑就算完成,覆盖文件和漏验证常常事后才发现 | 写入前分类冲突,完成后必须经过测试、校验和审查 | 验证通过率、未授权覆盖次数、安全事故数 |
|
|
142
|
-
| 返修率 | 返工藏在下一轮 prompt 里,没人知道到底重做了多少 | 任务胶囊、验收条件和验证闭环把返修显性化 | 后续纠偏运行次数 ÷ 已完成任务数 |
|
|
143
|
-
| 人工纠偏 | 人类不断补上下文、盯进度、救火 | 人类只处理语义冲突和关键决策 | 每个任务的 `humanInterventions` |
|
|
144
|
-
| 中断恢复 | Agent 重新扫描仓库,决策和背景再来一遍 | `PROGRESS.md`、任务状态和持久记忆直接接力 | 恢复时间、重复发现时间 |
|
|
145
|
-
| 成本 | 前期省几分钟,后期可能付出几小时返工 | 有明确初始化成本,但时间、token 和验证开销可记录 | duration、tokenEstimate、验证命令 |
|
|
146
|
-
|
|
147
|
-
当前仓库能直接验证的是工程底座:冲突策略、写入边界、验证器、任务记录和 `humanInterventions` 指标已经存在;收益百分比要由 HarnessBench 实测产生。详见 [HarnessBench v0.1 评分设计](Harness/tasks/task-framework-metrics-and-entry-contract/PLAN.md#5-metrics-and-scoring)。
|
|
148
|
-
|
|
149
|
-
## 为什么人们会需要它
|
|
150
|
-
|
|
151
|
-
用三个真实顾虑来理解它:
|
|
152
|
-
|
|
153
|
-
| 顾虑 | 你担心什么 | Harness 怎么回答 |
|
|
169
|
+
| 对比对象 | 主要层级 | Harness 的重点 |
|
|
154
170
|
|---|---|---|
|
|
155
|
-
|
|
|
156
|
-
|
|
|
157
|
-
|
|
|
171
|
+
| Direct agent run | 一次 prompt 加临时上下文 | 持久任务状态、显式写入边界、验证 gate、可恢复 handoff |
|
|
172
|
+
| [Claude Code](https://code.claude.com/docs/en/overview)、[Codex](https://developers.openai.com/codex)、[OpenCode](https://opencode.ai/docs/) | Coding agent / runtime | 跨 runtime 的同一套 repo contract、命令面、memory 形状、validator 和更新策略 |
|
|
173
|
+
| [Aider](https://github.com/aider-ai/aider) | Terminal pair-programming、repo map、git/test loop | 安装/更新安全、任务胶囊、外部 benchmark 证据和多 runtime 工作流路由 |
|
|
174
|
+
| [Superpowers](https://github.com/obra/Superpowers) | Skills-based development methodology | npm scaffold、机器可读 ownership/version manifest、安全合并/更新脚本和生成后的 repo-local state |
|
|
158
175
|
|
|
159
176
|
## 可选工作流
|
|
160
177
|
|
|
161
178
|
把需求直接交给 Agent:
|
|
162
179
|
|
|
163
|
-
> 请为当前 Harness 项目加入 `
|
|
180
|
+
> 请为当前 Harness 项目加入 `ui-ux-review` 和 `ts-react-frontend`,保留已有文件,完成后运行严格校验,并准确汇报发生了什么变化。
|
|
164
181
|
|
|
165
182
|
| 工作流 | 适合场景 |
|
|
166
183
|
|---|---|
|
|
167
|
-
| `browser-e2e` | 浏览器截图、追踪、冒烟测试 |
|
|
168
184
|
| `ui-ux-review` | 响应式、无障碍和界面打磨 |
|
|
169
185
|
| `ts-react-frontend` | TypeScript、React、Vite 项目 |
|
|
170
186
|
| `python-backend` | FastAPI、pytest 项目 |
|
|
171
187
|
| `github-pr-review` | PR diff 审查和 CI 证据 |
|
|
172
188
|
|
|
173
|
-
外部推荐只会记录到 `Harness/SETUP.md`,不会自动安装:
|
|
189
|
+
外部推荐只会记录到 `Harness/specs/guides/SETUP.md`,不会自动安装:
|
|
174
190
|
|
|
175
191
|
| 推荐 | 用途 | 来源 |
|
|
176
192
|
|---|---|---|
|
|
@@ -196,39 +212,26 @@ node Harness/scripts/validate-harness.mjs --strict
|
|
|
196
212
|
npm run check:mirrors
|
|
197
213
|
```
|
|
198
214
|
|
|
215
|
+
## 所有权清单
|
|
216
|
+
|
|
217
|
+
`Harness/ownership.manifest.json` 是安装和更新时文件分类的机器可读事实来源,由 `node scripts/build-version.mjs` 从 `templates/common/` 和 `templates/optional/catalog.json` 生成。框架拥有的文件走安全升级;用户数据(tasks、memory、research、README、package、PROGRESS)保留;CLAUDE、AGENTS、Harness README 走合并;同名用户 agent、command、skill(无 marker)不会被覆盖。
|
|
218
|
+
|
|
199
219
|
## 发布门禁
|
|
200
220
|
|
|
201
|
-
|
|
221
|
+
每次 Harness 更新发版都必须同时保持两个更新通道可用:
|
|
202
222
|
|
|
203
223
|
- Canonical:npm `create-harness-vibe-coding@latest` 和 `https://github.com/LiWeny16/create-harness-vibe-coding`
|
|
204
224
|
- 低版本兼容镜像:`https://github.com/zingspark/create-harness-vibe-coding`
|
|
205
225
|
|
|
206
|
-
低版本用户的 updater 可能已经硬编码到旧的 `zingspark` 仓库。发布不能只更新新仓库;必须等 legacy mirror 拥有同一份 commit
|
|
226
|
+
低版本用户的 updater 可能已经硬编码到旧的 `zingspark` 仓库。发布不能只更新新仓库;必须等 legacy mirror 拥有同一份 `main` 分支 commit、版本 tag、生成后的 template manifest(`templates/common/.harness-version` 与 `templates/common/Harness/ownership.manifest.json`),且该 tag 对应的 GitHub Release artifact 已在 legacy mirror 上发布,且全部与 canonical 一致,才算发版完成。新安装生成的 `Harness/.harness-version` 仍然记录 canonical `LiWeny16` source;`zingspark` 只作为旧用户兼容镜像保留。
|
|
227
|
+
|
|
228
|
+
“代码就绪”不等于“用户可更新”。已发布 npm 的用户只有在 `npm publish` 完成、GitHub release/tag 已创建、且两个镜像都已同步之后,才能拿到新版本。在三者全部完成之前,不要向现有用户宣布更新可用。
|
|
207
229
|
|
|
208
230
|
## 适配范围与体积
|
|
209
231
|
|
|
210
232
|
- 支持 Claude Code、Codex 和 OpenCode 的共享 Harness 工作流。
|
|
211
|
-
- Node.js
|
|
233
|
+
- Node.js >= 18。
|
|
212
234
|
- 运行时无额外依赖;CLI 依赖 `@clack/prompts` 和 `picocolors`。
|
|
213
235
|
- 生成的是工作基础设施,不是业务应用代码。
|
|
214
236
|
|
|
215
|
-
## 项目结构
|
|
216
|
-
|
|
217
|
-
```text
|
|
218
|
-
my-project/
|
|
219
|
-
├── CLAUDE.md / AGENTS.md ← agent 入口
|
|
220
|
-
├── Harness/
|
|
221
|
-
│ ├── README.md ← 文档路由器
|
|
222
|
-
│ ├── SETUP.md ← bootstrap 指南
|
|
223
|
-
│ ├── MEMORY.md ← 资源索引
|
|
224
|
-
│ ├── PROGRESS.md ← 任务追踪器
|
|
225
|
-
│ ├── tasks/ ← 任务胶囊
|
|
226
|
-
│ ├── research/ ← PRD 与研究模板
|
|
227
|
-
│ └── scripts/ ← 校验器
|
|
228
|
-
├── .claude/ ← Claude Code 配置
|
|
229
|
-
├── .agents/skills/ ← Codex repo skills
|
|
230
|
-
├── .codex/ ← Codex 配置
|
|
231
|
-
└── .opencode/ ← OpenCode 配置
|
|
232
|
-
```
|
|
233
|
-
|
|
234
237
|
MIT © [LiWeny16](https://github.com/LiWeny16)
|