coding-agent-harness 1.0.1 → 1.0.4
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 +44 -0
- package/CONTRIBUTING.md +98 -0
- package/README.en-US.md +14 -0
- package/README.md +230 -80
- package/README.zh-CN.md +290 -0
- package/SKILL.md +132 -198
- package/docs-release/README.md +80 -9
- package/docs-release/architecture/overview.md +298 -28
- package/docs-release/architecture/overview.zh-CN.md +292 -0
- package/docs-release/assets/dashboard-overview.png +0 -0
- package/docs-release/assets/harness-architecture.svg +163 -0
- package/docs-release/assets/harness-workflow.svg +64 -0
- package/docs-release/guides/agent-installation.en-US.md +237 -0
- package/docs-release/guides/agent-installation.md +149 -27
- package/docs-release/guides/contributing.md +100 -0
- package/docs-release/guides/contributing.zh-CN.md +99 -0
- package/docs-release/guides/document-audience-and-surfaces.en-US.md +113 -0
- package/docs-release/guides/document-audience-and-surfaces.md +113 -0
- package/docs-release/guides/full-legacy-migration-subagent-strategy.md +334 -0
- package/docs-release/guides/full-legacy-migration-subagent-strategy.zh-CN.md +334 -0
- package/docs-release/guides/legacy-migration-agent-prompt.md +373 -0
- package/docs-release/guides/legacy-migration-agent-prompt.zh-CN.md +350 -0
- package/docs-release/guides/migration-playbook.en-US.md +324 -0
- package/docs-release/guides/migration-playbook.md +328 -0
- package/docs-release/guides/parent-control-repository-pattern.en-US.md +254 -0
- package/docs-release/guides/parent-control-repository-pattern.md +254 -0
- package/docs-release/guides/preset-development.md +214 -0
- package/docs-release/guides/repository-operating-models.en-US.md +197 -0
- package/docs-release/guides/repository-operating-models.md +197 -0
- package/docs-release/guides/task-state-machine.en-US.md +207 -0
- package/docs-release/guides/task-state-machine.md +214 -0
- package/docs-release/intl/README.md +15 -0
- package/docs-release/intl/de-DE.md +18 -0
- package/docs-release/intl/en-US.md +18 -0
- package/docs-release/intl/es-ES.md +18 -0
- package/docs-release/intl/fr-FR.md +18 -0
- package/docs-release/intl/ja-JP.md +18 -0
- package/docs-release/intl/ko-KR.md +18 -0
- package/docs-release/intl/zh-CN.md +18 -0
- package/examples/minimal-project/docs/09-PLANNING/TASKS/demo-task/brief.md +13 -0
- package/examples/minimal-project/docs/09-PLANNING/TASKS/demo-task/findings.md +7 -0
- package/examples/minimal-project/docs/09-PLANNING/TASKS/demo-task/lesson_candidates.md +24 -0
- package/examples/minimal-project/docs/09-PLANNING/TASKS/demo-task/progress.md +1 -1
- package/examples/minimal-project/docs/09-PLANNING/TASKS/demo-task/task_plan.md +4 -2
- package/examples/minimal-project/docs/09-PLANNING/TASKS/demo-task/{visual_roadmap.md → visual_map.md} +9 -1
- package/package.json +10 -3
- package/presets/legacy-migration/checks/preset-check.mjs +3 -0
- package/presets/legacy-migration/preset.yaml +134 -0
- package/presets/legacy-migration/scripts/plan-work-queue.mjs +4 -0
- package/presets/legacy-migration/scripts/scaffold-task-contracts.mjs +4 -0
- package/presets/legacy-migration/templates/execution_strategy.append.md +18 -0
- package/presets/legacy-migration/templates/findings.seed.md +17 -0
- package/presets/legacy-migration/templates/review.seed.md +12 -0
- package/presets/legacy-migration/templates/task_plan.append.md +9 -0
- package/presets/legacy-migration/templates/visual_map.append.md +12 -0
- package/presets/legacy-migration/workbench/dashboard-panels.yaml +2 -0
- package/presets/legacy-migration/workbench/migration-queue.schema.json +23 -0
- package/presets/lesson-sedimentation/preset.yaml +23 -0
- package/presets/lesson-sedimentation/templates/prompt.md +23 -0
- package/presets/module/preset.yaml +25 -0
- package/presets/module/templates/execution_strategy.append.md +8 -0
- package/presets/module/templates/task_plan.append.md +17 -0
- package/presets/standard-task/preset.yaml +31 -0
- package/presets/standard-task/templates/task_plan.append.md +7 -0
- package/references/adversarial-review-standard.md +2 -2
- package/references/agents-md-pattern.md +5 -5
- package/references/delivery-operating-model-standard.md +3 -3
- package/references/docs-directory-standard.md +53 -10
- package/references/external-source-intake-standard.md +75 -0
- package/references/harness-ledger.md +53 -94
- package/references/legacy-12-phase-bootstrap.md +41 -0
- package/references/lessons-governance.md +100 -88
- package/references/module-parallel-standard.md +14 -14
- package/references/planning-loop.md +51 -7
- package/references/project-onboarding-audit.md +10 -0
- package/references/pull-request-standard.md +118 -0
- package/references/repo-governance-standard.md +12 -1
- package/references/review-routing-standard.md +7 -1
- package/references/ssot-governance.md +67 -59
- package/references/taskr-gap-analysis.md +600 -0
- package/references/testing-standard.md +50 -0
- package/references/walkthrough-closeout.md +10 -9
- package/scripts/check-harness.mjs +111 -331
- package/scripts/commands/dashboard-command.mjs +67 -0
- package/scripts/commands/migration-command.mjs +96 -0
- package/scripts/commands/preset-command.mjs +73 -0
- package/scripts/commands/task-command.mjs +327 -0
- package/scripts/harness.mjs +106 -20
- package/scripts/lib/capability-registry.mjs +591 -0
- package/scripts/lib/check-module-parallel.mjs +237 -0
- package/scripts/lib/check-profiles.mjs +418 -0
- package/scripts/lib/check-task-contracts.mjs +47 -0
- package/scripts/lib/core-shared.mjs +196 -0
- package/scripts/lib/dashboard-data.mjs +412 -0
- package/scripts/lib/dashboard-workbench.mjs +257 -0
- package/scripts/lib/dashboard-writer.mjs +107 -4
- package/scripts/lib/git-status-summary.mjs +46 -0
- package/scripts/lib/governance-index-generator.mjs +174 -0
- package/scripts/lib/governance-sync.mjs +514 -0
- package/scripts/lib/governance-table-boundary.mjs +175 -0
- package/scripts/lib/harness-core.mjs +15 -1318
- package/scripts/lib/lesson-maintenance.mjs +152 -0
- package/scripts/lib/markdown-utils.mjs +158 -0
- package/scripts/lib/migration-planner.mjs +478 -0
- package/scripts/lib/migration-support.mjs +312 -0
- package/scripts/lib/preset-audit-contracts.mjs +37 -0
- package/scripts/lib/preset-engine.mjs +497 -0
- package/scripts/lib/preset-registry.mjs +627 -0
- package/scripts/lib/preset-resource-contracts.mjs +83 -0
- package/scripts/lib/review-confirm-git-gate.mjs +248 -0
- package/scripts/lib/status-dashboard-renderer.mjs +102 -0
- package/scripts/lib/subagent-authorization-audit.mjs +196 -0
- package/scripts/lib/task-completion-consistency.mjs +16 -0
- package/scripts/lib/task-index.mjs +93 -0
- package/scripts/lib/task-lesson-candidates.mjs +242 -0
- package/scripts/lib/task-lesson-sedimentation.mjs +326 -0
- package/scripts/lib/task-lifecycle/review-confirm.mjs +101 -0
- package/scripts/lib/task-lifecycle/review-gates.mjs +70 -0
- package/scripts/lib/task-lifecycle/text-utils.mjs +24 -0
- package/scripts/lib/task-lifecycle.mjs +649 -0
- package/scripts/lib/task-review-model.mjs +469 -0
- package/scripts/lib/task-scanner.mjs +576 -0
- package/scripts/lib/task-tombstone-commands.mjs +140 -0
- package/scripts/postinstall.mjs +14 -0
- package/skills/preset-creator/SKILL.md +179 -0
- package/skills/preset-creator/references/complex-task-skeleton/README.md +31 -0
- package/skills/preset-creator/references/complex-task-skeleton/artifacts/INDEX.md +12 -0
- package/skills/preset-creator/references/complex-task-skeleton/brief.md +32 -0
- package/skills/preset-creator/references/complex-task-skeleton/execution_strategy.md +71 -0
- package/skills/preset-creator/references/complex-task-skeleton/findings.md +24 -0
- package/skills/preset-creator/references/complex-task-skeleton/lesson_candidates.md +70 -0
- package/skills/preset-creator/references/complex-task-skeleton/long-running-task-contract.md +76 -0
- package/skills/preset-creator/references/complex-task-skeleton/progress.md +33 -0
- package/skills/preset-creator/references/complex-task-skeleton/references/INDEX.md +13 -0
- package/skills/preset-creator/references/complex-task-skeleton/review.md +107 -0
- package/skills/preset-creator/references/complex-task-skeleton/task_plan.md +111 -0
- package/{templates/planning/visual_roadmap.md → skills/preset-creator/references/complex-task-skeleton/visual_map.md} +24 -2
- package/skills/preset-creator/references/preset-package-skeleton.md +296 -0
- package/templates/AGENTS.md.template +51 -36
- package/templates/architecture/Architecture-SSoT.md +21 -0
- package/templates/architecture/README.md +49 -0
- package/templates/architecture/critical-flows.md +22 -0
- package/templates/architecture/local-repo-context.md +20 -0
- package/templates/architecture/service-catalog.md +17 -0
- package/templates/architecture/services/service-template.md +31 -0
- package/templates/architecture/system-map.md +22 -0
- package/templates/dashboard/assets/app-src/00-state.js +42 -0
- package/templates/dashboard/assets/app-src/10-router.js +77 -0
- package/templates/dashboard/assets/app-src/20-overview.js +241 -0
- package/templates/dashboard/assets/app-src/30-tasks.js +409 -0
- package/templates/dashboard/assets/app-src/35-task-detail.js +246 -0
- package/templates/dashboard/assets/app-src/40-modules.js +58 -0
- package/templates/dashboard/assets/app-src/45-review.js +347 -0
- package/templates/dashboard/assets/app-src/50-migration.js +183 -0
- package/templates/dashboard/assets/app-src/60-shared.js +61 -0
- package/templates/dashboard/assets/app-src/90-bindings.js +524 -0
- package/templates/dashboard/assets/app.css +3107 -300
- package/templates/dashboard/assets/app.css.manifest.json +9 -0
- package/templates/dashboard/assets/app.js +2068 -306
- package/templates/dashboard/assets/app.manifest.json +12 -0
- package/templates/dashboard/assets/css-src/00-foundation.css +342 -0
- package/templates/dashboard/assets/css-src/10-panels-flow.css +236 -0
- package/templates/dashboard/assets/css-src/20-briefs-controls.css +398 -0
- package/templates/dashboard/assets/css-src/30-task-index.css +739 -0
- package/templates/dashboard/assets/css-src/35-review-workspace.css +507 -0
- package/templates/dashboard/assets/css-src/40-detail-modules-migration.css +427 -0
- package/templates/dashboard/assets/css-src/50-responsive-overrides.css +551 -0
- package/templates/dashboard/assets/i18n.js +531 -44
- package/templates/dashboard/assets/mermaid-renderer.js +58 -8
- package/templates/development/README.md +52 -0
- package/templates/development/codebase-map.md +11 -0
- package/templates/development/cross-repo-debugging.md +18 -0
- package/templates/development/external-context/service-template.md +33 -0
- package/templates/development/external-source-packs/README.md +24 -0
- package/templates/development/external-source-packs/digest-template.md +28 -0
- package/templates/development/local-setup.md +16 -0
- package/templates/development/stubs-and-mocks.md +11 -0
- package/templates/integrations/README.md +40 -0
- package/templates/integrations/api-contract.md +42 -0
- package/templates/integrations/event-contract.md +46 -0
- package/templates/integrations/third-party/vendor-template.md +42 -0
- package/templates/integrations/webhook-contract.md +41 -0
- package/templates/ledger/Harness-Ledger.md +13 -25
- package/templates/lessons/lesson-arch-process-change.md +1 -1
- package/templates/lessons/lesson-new-doc.md +1 -1
- package/templates/lessons/lesson-ref-change.md +1 -1
- package/templates/planning/brief.md +32 -0
- package/templates/planning/execution_strategy.md +31 -0
- package/templates/planning/lesson_candidates.md +70 -0
- package/templates/planning/long-running-task-contract.md +7 -0
- package/templates/planning/module_brief.md +25 -0
- package/templates/planning/module_session_prompt.md +6 -0
- package/templates/planning/optional/artifacts/INDEX.md +3 -3
- package/templates/planning/optional/references/INDEX.md +3 -3
- package/templates/planning/review.md +59 -0
- package/templates/planning/task_plan.md +40 -15
- package/templates/planning/visual_map.md +50 -0
- package/templates/reference/docs-library-standard.md +31 -0
- package/templates/reference/execution-workflow-standard.md +5 -2
- package/templates/reference/external-source-intake-standard.md +82 -0
- package/templates/reference/harness-ledger-standard.md +1 -0
- package/templates/reference/pull-request-standard.md +80 -0
- package/templates/reference/repo-governance-standard.md +8 -5
- package/templates/reference/review-routing-standard.md +6 -0
- package/templates/reference/walkthrough-standard.md +3 -1
- package/templates/verifier/verifier-output.md +1 -1
- package/templates/walkthrough/walkthrough-template.md +2 -2
- package/templates-zh-CN/AGENTS.md.template +73 -70
- package/templates-zh-CN/architecture/Architecture-SSoT.md +21 -0
- package/templates-zh-CN/architecture/README.md +51 -0
- package/templates-zh-CN/architecture/critical-flows.md +24 -0
- package/templates-zh-CN/architecture/local-repo-context.md +20 -0
- package/templates-zh-CN/architecture/service-catalog.md +17 -0
- package/templates-zh-CN/architecture/services/service-template.md +31 -0
- package/templates-zh-CN/architecture/system-map.md +22 -0
- package/templates-zh-CN/development/README.md +54 -0
- package/templates-zh-CN/development/codebase-map.md +11 -0
- package/templates-zh-CN/development/cross-repo-debugging.md +18 -0
- package/templates-zh-CN/development/external-context/service-template.md +33 -0
- package/templates-zh-CN/development/external-source-packs/README.md +24 -0
- package/templates-zh-CN/development/external-source-packs/digest-template.md +28 -0
- package/templates-zh-CN/development/local-setup.md +16 -0
- package/templates-zh-CN/development/stubs-and-mocks.md +11 -0
- package/templates-zh-CN/integrations/README.md +42 -0
- package/templates-zh-CN/integrations/api-contract.md +42 -0
- package/templates-zh-CN/integrations/event-contract.md +46 -0
- package/templates-zh-CN/integrations/third-party/vendor-template.md +42 -0
- package/templates-zh-CN/integrations/webhook-contract.md +41 -0
- package/templates-zh-CN/ledger/Harness-Ledger.md +17 -40
- package/templates-zh-CN/planning/brief.md +32 -0
- package/templates-zh-CN/planning/execution_strategy.md +30 -0
- package/templates-zh-CN/planning/lesson_candidates.md +70 -0
- package/templates-zh-CN/planning/long-running-task-contract.md +1 -1
- package/templates-zh-CN/planning/module_brief.md +25 -0
- package/templates-zh-CN/planning/module_plan.md +2 -2
- package/templates-zh-CN/planning/module_session_prompt.md +4 -3
- package/templates-zh-CN/planning/review.md +59 -1
- package/templates-zh-CN/planning/task_plan.md +37 -11
- package/templates-zh-CN/planning/{visual_roadmap.md → visual_map.md} +21 -2
- package/templates-zh-CN/reference/adversarial-review-standard.md +1 -1
- package/templates-zh-CN/reference/docs-library-standard.md +36 -1
- package/templates-zh-CN/reference/execution-workflow-standard.md +10 -2
- package/templates-zh-CN/reference/external-source-intake-standard.md +82 -0
- package/templates-zh-CN/reference/harness-ledger-standard.md +7 -4
- package/templates-zh-CN/reference/pull-request-standard.md +106 -0
- package/templates-zh-CN/reference/repo-governance-standard.md +4 -1
- package/templates-zh-CN/reference/review-routing-standard.md +8 -1
- package/templates-zh-CN/reference/walkthrough-standard.md +6 -5
- package/templates-zh-CN/walkthrough/Closeout-SSoT.md +2 -2
- package/templates-zh-CN/walkthrough/walkthrough-template.md +2 -2
- package/scripts/smoke-dashboard.mjs +0 -70
- package/scripts/test-harness.mjs +0 -483
- package/templates/ssot/Feature-SSoT.md +0 -43
- package/templates/ssot/Lessons-SSoT.md +0 -44
- package/templates-zh-CN/dashboard/assets/app.css +0 -399
- package/templates-zh-CN/dashboard/assets/app.js +0 -435
- package/templates-zh-CN/dashboard/assets/i18n.js +0 -47
- package/templates-zh-CN/dashboard/assets/markdown-reader.js +0 -116
- package/templates-zh-CN/dashboard/assets/mermaid-renderer.js +0 -59
- package/templates-zh-CN/dashboard/index.html +0 -18
- package/templates-zh-CN/ssot/Feature-SSoT.md +0 -49
- package/templates-zh-CN/ssot/Lessons-SSoT.md +0 -49
|
@@ -0,0 +1,163 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="100%" viewBox="0 0 1400 760" role="img" aria-labelledby="title desc">
|
|
2
|
+
<title id="title">Prompt, context, and harness engineering comparison</title>
|
|
3
|
+
<desc id="desc">A side-by-side architecture diagram comparing prompt engineering, context engineering, and harness engineering for coding agents.</desc>
|
|
4
|
+
<defs>
|
|
5
|
+
<marker id="arrowhead" markerWidth="18" markerHeight="18" refX="15" refY="9" orient="auto" markerUnits="strokeWidth">
|
|
6
|
+
<path d="M2 2L16 9L2 16Z" fill="#476b32"/>
|
|
7
|
+
</marker>
|
|
8
|
+
<filter id="paperShadow" x="-4%" y="-4%" width="108%" height="108%">
|
|
9
|
+
<feDropShadow dx="0" dy="1" stdDeviation="1.4" flood-color="#000000" flood-opacity="0.12"/>
|
|
10
|
+
</filter>
|
|
11
|
+
</defs>
|
|
12
|
+
<style>
|
|
13
|
+
.outer{fill:#fffdf9;stroke:#ddd5c7;stroke-width:2}
|
|
14
|
+
.dash{fill:none;stroke:#2f332e;stroke-width:2;stroke-dasharray:8 7}
|
|
15
|
+
.arrow-band{fill:#d7e1de;opacity:.95}
|
|
16
|
+
.arrow-stroke{fill:none;stroke:#476b32;stroke-width:0}
|
|
17
|
+
.prompt-band{fill:#fee8a7;stroke:#111;stroke-width:4}
|
|
18
|
+
.context-band{fill:#b7d2eb;stroke:#111;stroke-width:4}
|
|
19
|
+
.harness-band{fill:#c5dfb2;stroke:#111;stroke-width:4}
|
|
20
|
+
.prompt-col{fill:#f8f0d8}
|
|
21
|
+
.context-col{fill:#eaf3fb}
|
|
22
|
+
.harness-col{fill:#eaf3e3}
|
|
23
|
+
.prompt-floor{fill:#c6b47a}
|
|
24
|
+
.context-floor{fill:#8ba6bd}
|
|
25
|
+
.harness-floor{fill:#8fa887}
|
|
26
|
+
.card{fill:#fff;stroke:#efe9de;stroke-width:1.2;filter:url(#paperShadow)}
|
|
27
|
+
.card-round{fill:#fff;stroke:#e8ece9;stroke-width:1.2;filter:url(#paperShadow)}
|
|
28
|
+
.prompt-text{fill:#846500}.context-text{fill:#21557f}.harness-text{fill:#3f672e}
|
|
29
|
+
.prompt-icon{stroke:#d79a00}.context-icon{stroke:#2d65ad}.harness-icon{stroke:#5c9d42}
|
|
30
|
+
.ink{fill:#111}.muted{fill:#727272}.caption{fill:#777b82}
|
|
31
|
+
.heading{font-family:Georgia, 'Times New Roman', serif;font-size:31px;font-weight:700}
|
|
32
|
+
.sub{font-family:Georgia, 'Times New Roman', serif;font-size:25px}
|
|
33
|
+
.band{font-family:'Courier New', ui-monospace, monospace;font-size:25px;font-weight:700;letter-spacing:.5px}
|
|
34
|
+
.card-title{font-family:Georgia, 'Times New Roman', serif;font-size:26px;font-weight:700}
|
|
35
|
+
.card-sub{font-family:system-ui,-apple-system,'Segoe UI',sans-serif;font-size:18px;font-style:italic;font-weight:500}
|
|
36
|
+
.small{font-family:system-ui,-apple-system,'Segoe UI',sans-serif;font-size:16px}
|
|
37
|
+
.caption-text{font-family:system-ui,-apple-system,'Segoe UI',sans-serif;font-size:24px;font-style:italic}
|
|
38
|
+
.icon{fill:none;stroke-width:3.2;stroke-linecap:round;stroke-linejoin:round}
|
|
39
|
+
</style>
|
|
40
|
+
|
|
41
|
+
<rect x="48" y="42" width="1304" height="636" rx="8" class="outer"/>
|
|
42
|
+
<rect x="56" y="88" width="1288" height="70" class="arrow-band"/>
|
|
43
|
+
<path d="M56 88H1288L1342 123L1288 158H56Z" fill="#d7e1de"/>
|
|
44
|
+
<rect x="56" y="88" width="1288" height="70" class="dash"/>
|
|
45
|
+
|
|
46
|
+
<rect x="82" y="97" width="360" height="52" rx="14" class="prompt-band"/>
|
|
47
|
+
<text x="262" y="131" text-anchor="middle" class="ink band">Prompt Engineering</text>
|
|
48
|
+
<rect x="490" y="97" width="388" height="52" rx="14" class="context-band"/>
|
|
49
|
+
<text x="684" y="131" text-anchor="middle" class="ink band">Context Engineering</text>
|
|
50
|
+
<rect x="926" y="97" width="390" height="52" rx="14" class="harness-band"/>
|
|
51
|
+
<text x="1121" y="131" text-anchor="middle" class="ink band">Harness Engineering</text>
|
|
52
|
+
|
|
53
|
+
<rect x="82" y="158" width="360" height="486" class="prompt-col"/>
|
|
54
|
+
<rect x="82" y="612" width="360" height="32" class="prompt-floor"/>
|
|
55
|
+
<rect x="490" y="158" width="388" height="486" class="context-col"/>
|
|
56
|
+
<rect x="490" y="612" width="388" height="32" class="context-floor"/>
|
|
57
|
+
<rect x="926" y="158" width="390" height="486" class="harness-col"/>
|
|
58
|
+
<rect x="926" y="612" width="390" height="32" class="harness-floor"/>
|
|
59
|
+
|
|
60
|
+
<text x="262" y="187" text-anchor="middle" class="prompt-text heading">Single-call</text>
|
|
61
|
+
<text x="262" y="223" text-anchor="middle" class="prompt-text sub">Optimize the model input</text>
|
|
62
|
+
<text x="684" y="187" text-anchor="middle" class="context-text heading">Multi-step context</text>
|
|
63
|
+
<text x="684" y="223" text-anchor="middle" class="context-text sub">Optimize what the model sees</text>
|
|
64
|
+
<text x="1121" y="187" text-anchor="middle" class="harness-text heading">System-level</text>
|
|
65
|
+
<text x="1121" y="223" text-anchor="middle" class="harness-text sub">Optimize how the agent runs</text>
|
|
66
|
+
|
|
67
|
+
<rect x="124" y="250" width="276" height="94" class="card"/>
|
|
68
|
+
<g transform="translate(148 274)" class="icon prompt-icon">
|
|
69
|
+
<rect x="0" y="0" width="39" height="48" rx="3"/>
|
|
70
|
+
<path d="M9 12H29M9 23H25M9 34H20"/>
|
|
71
|
+
<path d="M33 36L48 51M48 51L58 36M48 51V18"/>
|
|
72
|
+
</g>
|
|
73
|
+
<text x="376" y="288" text-anchor="end" class="prompt-text card-title">Instruction</text>
|
|
74
|
+
<text x="376" y="315" text-anchor="end" class="muted card-sub">role, task, constraints</text>
|
|
75
|
+
|
|
76
|
+
<rect x="124" y="386" width="276" height="94" class="card"/>
|
|
77
|
+
<g transform="translate(147 410)" class="icon prompt-icon">
|
|
78
|
+
<rect x="0" y="0" width="24" height="24" rx="3"/>
|
|
79
|
+
<rect x="33" y="0" width="24" height="24" rx="3"/>
|
|
80
|
+
<rect x="0" y="34" width="24" height="24" rx="3"/>
|
|
81
|
+
<rect x="33" y="34" width="24" height="24" rx="3"/>
|
|
82
|
+
<path d="M7 12H17M40 12H50M7 46H17M40 46H50"/>
|
|
83
|
+
</g>
|
|
84
|
+
<text x="376" y="424" text-anchor="end" class="prompt-text card-title">Examples</text>
|
|
85
|
+
<text x="376" y="451" text-anchor="end" class="muted card-sub">format and persona</text>
|
|
86
|
+
|
|
87
|
+
<rect x="124" y="522" width="276" height="94" class="card"/>
|
|
88
|
+
<g transform="translate(149 545)" class="icon prompt-icon">
|
|
89
|
+
<circle cx="29" cy="29" r="24"/>
|
|
90
|
+
<circle cx="29" cy="29" r="9"/>
|
|
91
|
+
<path d="M29 5V18M53 29H40M29 53V40M5 29H18"/>
|
|
92
|
+
<path d="M49 8L57 1M57 1L57 12M57 1H46"/>
|
|
93
|
+
</g>
|
|
94
|
+
<text x="376" y="560" text-anchor="end" class="prompt-text card-title">Iteration</text>
|
|
95
|
+
<text x="376" y="587" text-anchor="end" class="muted card-sub">refine wording</text>
|
|
96
|
+
|
|
97
|
+
<rect x="522" y="250" width="324" height="94" rx="28" class="card-round"/>
|
|
98
|
+
<g transform="translate(545 274)" class="icon context-icon">
|
|
99
|
+
<ellipse cx="25" cy="8" rx="22" ry="8"/>
|
|
100
|
+
<path d="M3 8V38C3 43 13 48 25 48S47 43 47 38V8"/>
|
|
101
|
+
<path d="M3 23C3 28 13 33 25 33S47 28 47 23"/>
|
|
102
|
+
<circle cx="58" cy="43" r="13"/>
|
|
103
|
+
<path d="M68 53L81 66"/>
|
|
104
|
+
</g>
|
|
105
|
+
<text x="820" y="288" text-anchor="end" class="context-text card-title">Retrieval</text>
|
|
106
|
+
<text x="820" y="315" text-anchor="end" class="muted card-sub">load files, docs, outputs</text>
|
|
107
|
+
|
|
108
|
+
<rect x="522" y="386" width="324" height="94" rx="28" class="card-round"/>
|
|
109
|
+
<g transform="translate(548 411)" class="icon context-icon">
|
|
110
|
+
<rect x="12" y="8" width="48" height="48" rx="4"/>
|
|
111
|
+
<path d="M22 0V8M34 0V8M46 0V8M22 56V64M34 56V64M46 56V64M4 18H12M4 32H12M4 46H12M60 18H68M60 32H68M60 46H68"/>
|
|
112
|
+
</g>
|
|
113
|
+
<text x="820" y="424" text-anchor="end" class="context-text card-title">Memory</text>
|
|
114
|
+
<text x="820" y="451" text-anchor="end" class="muted card-sub">progress and decisions</text>
|
|
115
|
+
|
|
116
|
+
<rect x="522" y="522" width="324" height="94" rx="28" class="card-round"/>
|
|
117
|
+
<g transform="translate(547 546)" class="icon context-icon">
|
|
118
|
+
<path d="M0 8H64L44 31V56L22 66V31Z"/>
|
|
119
|
+
<path d="M13 8V0M32 8V0M51 8V0"/>
|
|
120
|
+
<path d="M16 21H48"/>
|
|
121
|
+
</g>
|
|
122
|
+
<text x="820" y="560" text-anchor="end" class="context-text card-title">Filtering</text>
|
|
123
|
+
<text x="820" y="587" text-anchor="end" class="muted card-sub">remove stale context</text>
|
|
124
|
+
|
|
125
|
+
<rect x="958" y="244" width="326" height="76" rx="34" class="card-round"/>
|
|
126
|
+
<g transform="translate(982 266) scale(.78)" class="icon harness-icon">
|
|
127
|
+
<path d="M12 12L24 24M24 24L12 36M24 24H58"/>
|
|
128
|
+
<rect x="58" y="8" width="42" height="32" rx="5"/>
|
|
129
|
+
<path d="M69 24H90"/>
|
|
130
|
+
</g>
|
|
131
|
+
<text x="1258" y="276" text-anchor="end" class="harness-text card-title">CLI & tools</text>
|
|
132
|
+
<text x="1258" y="301" text-anchor="end" class="muted card-sub">init, status, check</text>
|
|
133
|
+
|
|
134
|
+
<rect x="958" y="340" width="326" height="76" rx="34" class="card-round"/>
|
|
135
|
+
<g transform="translate(984 364) scale(.78)" class="icon harness-icon">
|
|
136
|
+
<rect x="0" y="0" width="68" height="44" rx="4"/>
|
|
137
|
+
<path d="M10 32L26 20L38 27L58 11"/>
|
|
138
|
+
<circle cx="26" cy="20" r="3"/><circle cx="38" cy="27" r="3"/><circle cx="58" cy="11" r="3"/>
|
|
139
|
+
</g>
|
|
140
|
+
<text x="1258" y="372" text-anchor="end" class="harness-text card-title">Dashboard</text>
|
|
141
|
+
<text x="1258" y="397" text-anchor="end" class="muted card-sub">inspect status and risks</text>
|
|
142
|
+
|
|
143
|
+
<rect x="958" y="436" width="326" height="76" rx="34" class="card-round"/>
|
|
144
|
+
<g transform="translate(985 459) scale(.78)" class="icon harness-icon">
|
|
145
|
+
<path d="M35 4L65 16V36C65 55 52 68 35 73C18 68 5 55 5 36V16Z"/>
|
|
146
|
+
<path d="M22 39L32 49L52 27"/>
|
|
147
|
+
</g>
|
|
148
|
+
<text x="1258" y="468" text-anchor="end" class="harness-text card-title">Guardrails</text>
|
|
149
|
+
<text x="1258" y="493" text-anchor="end" class="muted card-sub">boundaries and approvals</text>
|
|
150
|
+
|
|
151
|
+
<rect x="958" y="532" width="326" height="76" rx="34" class="card-round"/>
|
|
152
|
+
<g transform="translate(985 555) scale(.78)" class="icon harness-icon">
|
|
153
|
+
<path d="M8 34C8 19 20 8 36 8S64 19 64 34S52 60 36 60"/>
|
|
154
|
+
<path d="M36 60H16M16 60L25 50M16 60L25 70"/>
|
|
155
|
+
<path d="M28 31L36 39L50 24"/>
|
|
156
|
+
</g>
|
|
157
|
+
<text x="1258" y="564" text-anchor="end" class="harness-text card-title">Review loop</text>
|
|
158
|
+
<text x="1258" y="589" text-anchor="end" class="muted card-sub">regression, closeout, lessons</text>
|
|
159
|
+
|
|
160
|
+
<path d="M442 123H490" stroke="#2f332e" stroke-width="2" fill="none"/>
|
|
161
|
+
<path d="M878 123H926" stroke="#2f332e" stroke-width="2" fill="none"/>
|
|
162
|
+
<text x="700" y="725" text-anchor="middle" class="caption caption-text">From optimizing one prompt, to managing context, to engineering the agent's operating system.</text>
|
|
163
|
+
</svg>
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="100%" viewBox="0 0 1400 420" role="img" aria-labelledby="title desc">
|
|
2
|
+
<title id="title">Harness adoption workflow</title>
|
|
3
|
+
<desc id="desc">A six-step workflow diagram for adopting Coding Agent Harness: diagnose, decide, scaffold, configure, verify, and deliver.</desc>
|
|
4
|
+
<defs>
|
|
5
|
+
<marker id="arrow" viewBox="0 0 10 10" refX="8" refY="5" markerWidth="7" markerHeight="7" orient="auto-start-reverse">
|
|
6
|
+
<path d="M2 1L8 5L2 9" fill="none" stroke="context-stroke" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
|
|
7
|
+
</marker>
|
|
8
|
+
<filter id="shadow" x="-4%" y="-4%" width="108%" height="108%">
|
|
9
|
+
<feDropShadow dx="0" dy="1" stdDeviation="1.2" flood-color="#000000" flood-opacity="0.12"/>
|
|
10
|
+
</filter>
|
|
11
|
+
</defs>
|
|
12
|
+
<style>
|
|
13
|
+
.outer{fill:#fffdf9;stroke:#ddd5c7;stroke-width:2}
|
|
14
|
+
.dash{fill:none;stroke:#2f332e;stroke-width:2;stroke-dasharray:8 7}
|
|
15
|
+
.track{fill:#eef2ed}
|
|
16
|
+
.card{fill:#fff;stroke:#eee6d9;stroke-width:1.2;filter:url(#shadow)}
|
|
17
|
+
.teal{fill:#e5f3ed;stroke:#1d9e75}.blue{fill:#e6f1fb;stroke:#378add}.amber{fill:#faeeda;stroke:#ba7517}.green{fill:#eaf3de;stroke:#639922}
|
|
18
|
+
.ink{fill:#111}.muted{fill:#686868}.teal-text{fill:#0f6e56}.blue-text{fill:#185fa5}.amber-text{fill:#854f0b}.green-text{fill:#3b6d11}
|
|
19
|
+
.title{font-family:Georgia,'Times New Roman',serif;font-size:32px;font-weight:700}
|
|
20
|
+
.sub{font-family:system-ui,-apple-system,'Segoe UI',sans-serif;font-size:18px;font-style:italic;font-weight:500}
|
|
21
|
+
.mono{font-family:'Courier New',ui-monospace,monospace;font-size:22px;font-weight:700}
|
|
22
|
+
.small{font-family:system-ui,-apple-system,'Segoe UI',sans-serif;font-size:16px}
|
|
23
|
+
.connector{stroke:#777;stroke-width:2;fill:none}
|
|
24
|
+
</style>
|
|
25
|
+
|
|
26
|
+
<rect x="58" y="44" width="1284" height="316" rx="8" class="outer"/>
|
|
27
|
+
<text x="86" y="86" class="ink mono">Harness adoption workflow</text>
|
|
28
|
+
<text x="86" y="116" class="muted small">Use the same path for a clean install or a legacy project migration.</text>
|
|
29
|
+
<rect x="86" y="144" width="1228" height="72" rx="0" class="track"/>
|
|
30
|
+
<rect x="86" y="144" width="1228" height="72" class="dash"/>
|
|
31
|
+
|
|
32
|
+
<rect x="110" y="132" width="170" height="96" rx="12" class="card teal"/>
|
|
33
|
+
<text x="195" y="166" text-anchor="middle" class="teal-text title">Diagnose</text>
|
|
34
|
+
<text x="195" y="194" text-anchor="middle" class="muted sub">read repo facts</text>
|
|
35
|
+
|
|
36
|
+
<rect x="320" y="132" width="170" height="96" rx="12" class="card blue"/>
|
|
37
|
+
<text x="405" y="166" text-anchor="middle" class="blue-text title">Decide</text>
|
|
38
|
+
<text x="405" y="194" text-anchor="middle" class="muted sub">choose mode</text>
|
|
39
|
+
|
|
40
|
+
<rect x="530" y="132" width="170" height="96" rx="12" class="card amber"/>
|
|
41
|
+
<text x="615" y="166" text-anchor="middle" class="amber-text title">Scaffold</text>
|
|
42
|
+
<text x="615" y="194" text-anchor="middle" class="muted sub">write docs</text>
|
|
43
|
+
|
|
44
|
+
<rect x="740" y="132" width="170" height="96" rx="12" class="card blue"/>
|
|
45
|
+
<text x="825" y="166" text-anchor="middle" class="blue-text title">Configure</text>
|
|
46
|
+
<text x="825" y="194" text-anchor="middle" class="muted sub">capabilities</text>
|
|
47
|
+
|
|
48
|
+
<rect x="950" y="132" width="170" height="96" rx="12" class="card amber"/>
|
|
49
|
+
<text x="1035" y="166" text-anchor="middle" class="amber-text title">Verify</text>
|
|
50
|
+
<text x="1035" y="194" text-anchor="middle" class="muted sub">checks pass</text>
|
|
51
|
+
|
|
52
|
+
<rect x="1160" y="132" width="130" height="96" rx="12" class="card green"/>
|
|
53
|
+
<text x="1225" y="166" text-anchor="middle" class="green-text title">Deliver</text>
|
|
54
|
+
<text x="1225" y="194" text-anchor="middle" class="muted sub">PR / handoff</text>
|
|
55
|
+
|
|
56
|
+
<path d="M280 180H320" class="connector" marker-end="url(#arrow)"/>
|
|
57
|
+
<path d="M490 180H530" class="connector" marker-end="url(#arrow)"/>
|
|
58
|
+
<path d="M700 180H740" class="connector" marker-end="url(#arrow)"/>
|
|
59
|
+
<path d="M910 180H950" class="connector" marker-end="url(#arrow)"/>
|
|
60
|
+
<path d="M1120 180H1160" class="connector" marker-end="url(#arrow)"/>
|
|
61
|
+
|
|
62
|
+
<rect x="204" y="272" width="992" height="44" rx="22" fill="#fff" stroke="#ddd5c7" stroke-width="1.2" filter="url(#shadow)"/>
|
|
63
|
+
<text x="700" y="300" text-anchor="middle" class="muted sub">Dashboard, session.json, review records, and regression evidence make the handoff inspectable.</text>
|
|
64
|
+
</svg>
|
|
@@ -0,0 +1,237 @@
|
|
|
1
|
+
# Agent Installation Guide
|
|
2
|
+
|
|
3
|
+
Chinese source: `docs-release/guides/agent-installation.md`
|
|
4
|
+
|
|
5
|
+
This guide is written for coding agents that install or upgrade Harness inside a target project. The README keeps only the human-facing positioning, quick start, and minimum commands. Operational details live here and in `SKILL.md`.
|
|
6
|
+
|
|
7
|
+
## Operating Contract
|
|
8
|
+
|
|
9
|
+
The main operator for this CLI is usually an agent inside the target project, not the end user. The agent should not ask the user to study command flags, template folders, or capability choices. Those decisions must happen during Diagnose / Decide and be explained in the delivery summary.
|
|
10
|
+
|
|
11
|
+
Commands in this guide are written with an installed `harness` command. The agent must first check `command -v harness`. If the target environment does not have `harness`, do not silently install globally. Ask the user whether `npm install -g coding-agent-harness` is allowed. Run that global install only after explicit approval. If the user does not approve or does not respond, run the same CLI with `npx --yes coding-agent-harness <command>`. Maintainers debugging from the source checkout can replace the same command with `node scripts/harness.mjs`.
|
|
12
|
+
|
|
13
|
+
`harness init` does not add this npm package to the target project's dependencies. It only writes Harness docs, templates, and the registry. Delivery summaries must not imply that the target project now has an npm dependency installed. The first `npx` run downloads the package into npm cache; it is not a project dependency or a global command install. When CLI access is needed, keep using `npx --yes coding-agent-harness ...`, a user-approved global `harness`, or `node scripts/harness.mjs` from the source checkout.
|
|
14
|
+
|
|
15
|
+
`npx skills add FairladyZ625/coding-agent-harness --skill coding-agent-harness`
|
|
16
|
+
is not a zero-write operation. It copies the Skill into `.agents/skills/coding-agent-harness/`
|
|
17
|
+
inside the target project and writes `skills-lock.json`. If the user asks for a strict
|
|
18
|
+
read-only scan, skip Skill installation first and use `npx --yes coding-agent-harness status`
|
|
19
|
+
/ `migrate-plan` for the scan; install the Skill or run write commands only after the user
|
|
20
|
+
confirms write access.
|
|
21
|
+
|
|
22
|
+
This repository also publishes the nested `preset-creator` Skill for agents that author
|
|
23
|
+
reusable Harness preset packages. Since the repository has both a root `SKILL.md` and a
|
|
24
|
+
nested Skill, list or install it with `--full-depth`:
|
|
25
|
+
|
|
26
|
+
```bash
|
|
27
|
+
npx skills add FairladyZ625/coding-agent-harness --list --full-depth
|
|
28
|
+
npx skills add FairladyZ625/coding-agent-harness --skill preset-creator --full-depth
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
Use `coding-agent-harness` to operate Harness in a target project. Use `preset-creator`
|
|
32
|
+
only when the agent is designing a reusable preset for a repeatable task family with
|
|
33
|
+
shared references, artifacts, evidence, or complex-task overlays.
|
|
34
|
+
|
|
35
|
+
Use the v1.0 six-phase flow:
|
|
36
|
+
|
|
37
|
+
1. Diagnose: scan project structure, language, existing docs, CI, collaboration model, external dependencies, and risk surfaces.
|
|
38
|
+
2. Decide: choose locale, delivery model, capability packs, and whether external source intake is needed.
|
|
39
|
+
3. Scaffold: run `harness init` or `harness add-capability`.
|
|
40
|
+
4. Configure: adapt generated docs to project facts. Do not present templates as customized standards.
|
|
41
|
+
5. Verify: run CLI checks and native project evidence.
|
|
42
|
+
6. Deliver: report residuals, owners, and next actions.
|
|
43
|
+
|
|
44
|
+
If Diagnose finds a microservice, multi-repo, split frontend/backend, or platform subsystem, or the code references external services, SDKs, API gateways, message queues, webhooks, contracts, schemas, or mocks, the agent must ask the user whether external source material exists. Small source sets can be linked from `Source Evidence`; large source sets use `docs/11-REFERENCE/external-source-intake-standard.md` and `docs/04-DEVELOPMENT/external-source-packs/<source-key>/`, then project stable conclusions into `03/04/06`.
|
|
45
|
+
|
|
46
|
+
## Locale Rules
|
|
47
|
+
|
|
48
|
+
- When the user is present, ask whether Harness docs should use Chinese or English.
|
|
49
|
+
- Non-interactive installation must pass `--locale zh-CN` or `--locale en-US`; do not rely on the default.
|
|
50
|
+
- Use `zh-CN` for Chinese users or Chinese-first projects.
|
|
51
|
+
- Use `en-US` for English teams, English-first repositories, or explicit English requests.
|
|
52
|
+
- Do not mix `templates/` and `templates-zh-CN/` in one target project. Schema fields, filenames, status enums, commands, and cross-tool protocol tokens may remain English.
|
|
53
|
+
|
|
54
|
+
## New Project Initialization
|
|
55
|
+
|
|
56
|
+
Use this path when the target project has no legacy Harness:
|
|
57
|
+
|
|
58
|
+
```bash
|
|
59
|
+
harness init \
|
|
60
|
+
--locale zh-CN \
|
|
61
|
+
--capabilities core,dashboard \
|
|
62
|
+
/path/to/project
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
If the target environment does not have `harness`, ask the user whether global installation is allowed. If approved, run `npm install -g coding-agent-harness`. Without approval, use:
|
|
66
|
+
|
|
67
|
+
```bash
|
|
68
|
+
npx --yes coding-agent-harness init \
|
|
69
|
+
--locale zh-CN \
|
|
70
|
+
--capabilities core,dashboard \
|
|
71
|
+
/path/to/project
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
Choose capabilities conservatively:
|
|
75
|
+
|
|
76
|
+
| Capability | Default | When to choose |
|
|
77
|
+
| --- | --- | --- |
|
|
78
|
+
| `core` | Yes | Always install. This is the document kernel. |
|
|
79
|
+
| `dashboard` | No | A user or agent needs a local status page, static evidence snapshot, or localhost dynamic workbench. |
|
|
80
|
+
| `safe-adoption` | No | A legacy Harness project adopts v1.0 while preserving history. |
|
|
81
|
+
| `adversarial-review` | No | Release, architecture, security, data, or policy risk needs independent review artifacts. |
|
|
82
|
+
| `long-running-task` | No | An agent needs to execute across many turns without asking the user at every step. |
|
|
83
|
+
| `module-parallel` | No | Two or more independent modules need owners, a registry, and synchronization rules. |
|
|
84
|
+
| `subagent-worker` | No | Code-editing subagents need independent worktrees and commit-backed handoff; requires `module-parallel`. |
|
|
85
|
+
|
|
86
|
+
The JSON output from `init` includes a `report`. The delivery summary must include:
|
|
87
|
+
|
|
88
|
+
- locale
|
|
89
|
+
- selected capabilities and the reason for every optional capability
|
|
90
|
+
- created / skipped files
|
|
91
|
+
- the recommended daily entry from `nextCommands`, such as `harness dev` or `npx --yes coding-agent-harness dev .`
|
|
92
|
+
- project-specific edits made during Configure
|
|
93
|
+
- verification commands and results
|
|
94
|
+
- residual owner / action / status
|
|
95
|
+
- whether anything was committed, and whether dogfood artifacts were cleaned
|
|
96
|
+
|
|
97
|
+
`init` does not modify `package.json` by default. Use `--add-npm-scripts` only when the user explicitly wants npm scripts in the target project. That option requires an existing `package.json` and does not overwrite existing `harness:dev` or `harness:dashboard` scripts.
|
|
98
|
+
|
|
99
|
+
## External Source Intake
|
|
100
|
+
|
|
101
|
+
When a project depends on external microservices, repositories, or external-team documents, agents should not drop those materials directly into `03-ARCHITECTURE`, `04-DEVELOPMENT`, or `06-INTEGRATIONS`. Use this order:
|
|
102
|
+
|
|
103
|
+
```text
|
|
104
|
+
Inventory -> Classify -> Sanitize -> Digest -> Project -> Verify -> Residual
|
|
105
|
+
```
|
|
106
|
+
|
|
107
|
+
Rules:
|
|
108
|
+
|
|
109
|
+
- Ask the user for external architecture docs, API docs, diagrams, meeting notes, links, source paths, or exported packets.
|
|
110
|
+
- Confirm whether the material may be copied into the repository; non-committable material is represented by path, URL, owner, access condition, and digest only.
|
|
111
|
+
- If there are more than 5 external documents, multiple topics, or continuing growth, create `docs/04-DEVELOPMENT/external-source-packs/<source-key>/`.
|
|
112
|
+
- `external-source-packs/` stores source indexes, digests, and projection status only.
|
|
113
|
+
- Stable facts must be written back to `03-ARCHITECTURE/services/<service-key>.md`, `04-DEVELOPMENT/external-context/<service-key>.md`, or `06-INTEGRATIONS/<contract>.md`.
|
|
114
|
+
- Unconfirmed or conflicting material stays in the source pack or `Do Not Assume`.
|
|
115
|
+
|
|
116
|
+
## User-Level Registration
|
|
117
|
+
|
|
118
|
+
If the user already has the `harness` CLI from npm or source, register this skill into user-level agent directories so each project does not need a copied skill:
|
|
119
|
+
|
|
120
|
+
```bash
|
|
121
|
+
harness install-user --agent codex --global
|
|
122
|
+
harness doctor-user --agent codex
|
|
123
|
+
```
|
|
124
|
+
|
|
125
|
+
`npm install -g coding-agent-harness`, `harness install-user`, and `harness init`
|
|
126
|
+
seed bundled presets:
|
|
127
|
+
|
|
128
|
+
- User presets: `~/.coding-agent-harness/presets/<preset-id>/`
|
|
129
|
+
- Project presets: `<target>/.coding-agent-harness/presets/<preset-id>/`
|
|
130
|
+
|
|
131
|
+
Before initializing or taking over a task, agents must run
|
|
132
|
+
`harness preset list --json [target]` and choose `--preset` only after checking
|
|
133
|
+
the available presets. To repair missing bundled presets, run
|
|
134
|
+
`harness preset seed` or `harness preset seed --project <target>`.
|
|
135
|
+
|
|
136
|
+
Supported agent targets:
|
|
137
|
+
|
|
138
|
+
| Agent | User directory |
|
|
139
|
+
| --- | --- |
|
|
140
|
+
| `codex` | `~/.codex/skills/coding-agent-harness` |
|
|
141
|
+
| `claude` | `~/.claude/skills/coding-agent-harness` |
|
|
142
|
+
| `gemini` | `~/.gemini/skills/coding-agent-harness` |
|
|
143
|
+
| `openclaw` | `~/.openclaw/skills/coding-agent-harness` |
|
|
144
|
+
| `agents` | `~/.agents/skills/coding-agent-harness` |
|
|
145
|
+
| `all` | install into every directory above |
|
|
146
|
+
|
|
147
|
+
Safety rules:
|
|
148
|
+
|
|
149
|
+
- Interactive confirmation is the default. Non-interactive runs must pass `--yes` or first use `--dry-run`.
|
|
150
|
+
- Existing files are not overwritten by default; only missing files are added.
|
|
151
|
+
- Use `--force` only for explicit forced updates.
|
|
152
|
+
- `doctor-user` checks that `SKILL.md`, templates, references, bundled presets, CLI scripts, this guide, and the user-level preset seed exist.
|
|
153
|
+
|
|
154
|
+
## Legacy Harness Migration
|
|
155
|
+
|
|
156
|
+
Use this path when the target project already has an older Harness. Do not rebuild the old docs tree and do not hand-assemble the process with `add-capability`. Start with the verifiable migration rail:
|
|
157
|
+
|
|
158
|
+
```bash
|
|
159
|
+
harness migrate-run \
|
|
160
|
+
--locale zh-CN \
|
|
161
|
+
--session-dir /tmp/cah-migration-project \
|
|
162
|
+
--out-dir /tmp/cah-migration-project/dashboard \
|
|
163
|
+
/path/to/old-project
|
|
164
|
+
|
|
165
|
+
harness migrate-verify \
|
|
166
|
+
/tmp/cah-migration-project/session.json
|
|
167
|
+
```
|
|
168
|
+
|
|
169
|
+
Rules:
|
|
170
|
+
|
|
171
|
+
- Do not overwrite existing `AGENTS.md`, `CLAUDE.md`, `docs/Harness-Ledger.md`, SSoTs, walkthroughs, task progress, or historical task plans.
|
|
172
|
+
- When the old project mixes Chinese and English, explicitly pass `--locale zh-CN` or `--locale en-US`.
|
|
173
|
+
- Only add the missing v1.0 templates and capability registry.
|
|
174
|
+
- Existing project facts may be merged, appended, or recorded as residuals. They must not be replaced with generic templates.
|
|
175
|
+
- Historical contract gaps become `adoption-needed` warnings in normal mode.
|
|
176
|
+
- `--strict` must still fail on legacy checker failures or unresolved historical contract gaps.
|
|
177
|
+
- Archive old global tables and module indexes first, then regenerate them with `harness governance rebuild --archive --apply`; those tables are agent indexes, while humans should use the Dashboard for status.
|
|
178
|
+
- `migrate-verify` must pass before the migration output is reported as usable, and the dashboard path must be HTML.
|
|
179
|
+
- For detailed migration strategy, read `docs-release/guides/migration-playbook.md` or `docs-release/guides/migration-playbook.en-US.md`. If the user requires proof that the old project is fully migrated, also read `docs-release/guides/full-legacy-migration-subagent-strategy.md` or `docs-release/guides/full-legacy-migration-subagent-strategy.zh-CN.md`.
|
|
180
|
+
|
|
181
|
+
The agent must read `session.json` and `migrate-plan.json`, then migrate active tasks, current reviews, and truly adopted capabilities step by step. Subagent review must prove dashboard brief coverage, strict check, and final session all pass.
|
|
182
|
+
|
|
183
|
+
## Task Lifecycle
|
|
184
|
+
|
|
185
|
+
After initialization or migration, agents should not manually copy task folders. Use lifecycle commands:
|
|
186
|
+
|
|
187
|
+
```bash
|
|
188
|
+
harness new-task phase-2-lifecycle \
|
|
189
|
+
--title "Phase 2 task lifecycle" \
|
|
190
|
+
--locale en-US \
|
|
191
|
+
/path/to/project
|
|
192
|
+
|
|
193
|
+
harness task-start phase-2-lifecycle \
|
|
194
|
+
--message "Start lifecycle slice implementation" \
|
|
195
|
+
/path/to/project
|
|
196
|
+
|
|
197
|
+
harness task-log phase-2-lifecycle \
|
|
198
|
+
--message "Completed CLI and template updates" \
|
|
199
|
+
--evidence "command:TARGET:npm-test:passed" \
|
|
200
|
+
/path/to/project
|
|
201
|
+
|
|
202
|
+
harness review-confirm TASKS/phase-2-lifecycle \
|
|
203
|
+
--reviewer "Human Reviewer" \
|
|
204
|
+
--confirm phase-2-lifecycle \
|
|
205
|
+
/path/to/project
|
|
206
|
+
|
|
207
|
+
harness task-complete phase-2-lifecycle \
|
|
208
|
+
--message "Verification loop completed" \
|
|
209
|
+
/path/to/project
|
|
210
|
+
```
|
|
211
|
+
|
|
212
|
+
Rules:
|
|
213
|
+
|
|
214
|
+
- Do not manually copy task templates or create partial task folders. `harness check` enforces the file set created by `new-task`.
|
|
215
|
+
- `new-task --budget simple` creates `brief.md`, `task_plan.md`, `visual_map.md`, and `progress.md`.
|
|
216
|
+
- `new-task` defaults to `standard` and creates the simple files plus `execution_strategy.md`, `findings.md`, `lesson_candidates.md`, and `review.md`.
|
|
217
|
+
- `new-task --budget complex` creates the standard files plus `references/INDEX.md` and `artifacts/INDEX.md`.
|
|
218
|
+
- Existing task directories are not overwritten. Renaming or continuing old tasks is a coordinator decision.
|
|
219
|
+
- `task-start`, `task-block`, and `task-complete` only update lifecycle status and logs in `progress.md`.
|
|
220
|
+
- `task-log` only appends execution records. Evidence uses `type:PATH:summary`, for example `command:TARGET:npm-test:passed`.
|
|
221
|
+
- `review-confirm` appends a human review confirmation to `review.md` and a log entry to `progress.md`. It must reject open P0/P1/P2 findings marked `Open: yes` or `Blocks Release: yes`.
|
|
222
|
+
- CLI-owned lifecycle and lesson commands auto-commit allowlisted writes in a clean Git root. Dirty state appears in `status` / dashboard warnings and blocks those mechanical commits. Agent-owned manual edits still need proactive commits; deferred commits must record the no-commit reason, owner, and next step.
|
|
223
|
+
- `status --json` keeps old `task.state` for compatibility and adds `lifecycleState`, `reviewStatus`, `closeoutStatus`, and `stateConflicts`. `done` means implementation finished; it does not mean `closed`.
|
|
224
|
+
- For human operation, start the local HTML workbench with `harness dev /path/to/project`. It binds to `127.0.0.1`, chooses a port automatically, opens the browser, and refreshes when docs change. In headless or CI contexts, use `harness dev --no-open /path/to/project`.
|
|
225
|
+
- The lower-level compatible entry point remains `harness dashboard --workbench --out-dir /tmp/harness-workbench /path/to/project`. Static dashboard files remain read-only and must not host human confirmation actions.
|
|
226
|
+
- `task-list --json` and `status --json` are the read entry points for dashboards, reviewers, and later agents.
|
|
227
|
+
|
|
228
|
+
## Verification Commands
|
|
229
|
+
|
|
230
|
+
Before closing installation or upgrade, run at least:
|
|
231
|
+
|
|
232
|
+
```bash
|
|
233
|
+
harness check --profile target-project /path/to/project
|
|
234
|
+
harness status --json /path/to/project
|
|
235
|
+
harness dev --no-open --out-dir /tmp/harness-workbench /path/to/project
|
|
236
|
+
harness dashboard --out /tmp/harness-dashboard.html /path/to/project
|
|
237
|
+
```
|