coding-agent-harness 1.0.5 → 1.0.6
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/CONTRIBUTING.md +2 -2
- package/README.md +63 -3
- package/README.zh-CN.md +52 -3
- package/SKILL.md +43 -43
- package/dist/build-dist.mjs +189 -0
- package/dist/check-dist-observation.mjs +428 -0
- package/dist/check-harness.mjs +489 -0
- package/dist/check-import-graph.mjs +511 -0
- package/dist/check-runtime-emit.mjs +304 -0
- package/dist/check-type-boundaries.mjs +139 -0
- package/dist/commands/dashboard-command.mjs +80 -0
- package/dist/commands/migration-command.mjs +152 -0
- package/dist/commands/preset-command.mjs +91 -0
- package/dist/commands/task-command.mjs +324 -0
- package/dist/harness.mjs +304 -0
- package/dist/lib/capability-registry.mjs +643 -0
- package/dist/lib/check-module-parallel.mjs +227 -0
- package/dist/lib/check-profiles.mjs +414 -0
- package/dist/lib/check-task-contracts.mjs +54 -0
- package/dist/lib/core-shared.mjs +254 -0
- package/dist/lib/dashboard-data.mjs +608 -0
- package/dist/lib/dashboard-workbench.mjs +334 -0
- package/dist/lib/dashboard-writer.mjs +200 -0
- package/dist/lib/git-status-summary.mjs +45 -0
- package/dist/lib/governance-index-generator.mjs +236 -0
- package/dist/lib/governance-sync.mjs +617 -0
- package/dist/lib/governance-table-boundary.mjs +161 -0
- package/{scripts → dist}/lib/harness-core.mjs +2 -0
- package/dist/lib/harness-paths.mjs +338 -0
- package/dist/lib/lesson-maintenance.mjs +139 -0
- package/dist/lib/markdown-utils.mjs +193 -0
- package/dist/lib/migration-planner.mjs +439 -0
- package/dist/lib/migration-support.mjs +317 -0
- package/dist/lib/phase-kind.mjs +46 -0
- package/dist/lib/preset-audit-contracts.mjs +40 -0
- package/dist/lib/preset-engine.mjs +516 -0
- package/dist/lib/preset-registry.mjs +831 -0
- package/dist/lib/preset-resource-contracts.mjs +83 -0
- package/dist/lib/review-confirm-git-gate.mjs +244 -0
- package/dist/lib/status-builder.mjs +87 -0
- package/{scripts → dist}/lib/status-dashboard-renderer.mjs +44 -46
- package/dist/lib/structure-migration.mjs +404 -0
- package/dist/lib/subagent-authorization-audit.mjs +198 -0
- package/dist/lib/task-audit-metadata.mjs +376 -0
- package/dist/lib/task-audit-migration.mjs +355 -0
- package/dist/lib/task-completion-consistency.mjs +29 -0
- package/dist/lib/task-index.mjs +133 -0
- package/dist/lib/task-lesson-candidates.mjs +239 -0
- package/dist/lib/task-lesson-sedimentation.mjs +300 -0
- package/dist/lib/task-lifecycle/create-task-helpers.mjs +84 -0
- package/dist/lib/task-lifecycle/phase-sync.mjs +82 -0
- package/dist/lib/task-lifecycle/review-confirm.mjs +93 -0
- package/dist/lib/task-lifecycle/review-gates.mjs +62 -0
- package/dist/lib/task-lifecycle/review-submission.mjs +52 -0
- package/dist/lib/task-lifecycle/scaffold-provenance.mjs +54 -0
- package/dist/lib/task-lifecycle/template-files.mjs +52 -0
- package/dist/lib/task-lifecycle/text-utils.mjs +26 -0
- package/dist/lib/task-lifecycle.mjs +611 -0
- package/dist/lib/task-metadata.mjs +116 -0
- package/dist/lib/task-review-model.mjs +474 -0
- package/dist/lib/task-scanner.mjs +439 -0
- package/dist/lib/task-tombstone-commands.mjs +125 -0
- package/dist/postinstall.mjs +14 -0
- package/dist/run-built-tests.mjs +84 -0
- package/docs-release/README.md +1 -0
- package/docs-release/architecture/overview.md +12 -12
- package/docs-release/architecture/overview.zh-CN.md +12 -12
- package/docs-release/architecture/system-explainer/01-system-overview.md +15 -14
- package/docs-release/architecture/system-explainer/02-module-dependency.md +8 -8
- package/docs-release/architecture/system-explainer/03-task-lifecycle.md +3 -3
- package/docs-release/architecture/system-explainer/04-check-and-governance.md +9 -7
- package/docs-release/architecture/system-explainer/05-data-flow.md +5 -5
- package/docs-release/architecture/system-explainer/06-preset-and-migration.md +1 -4
- package/docs-release/architecture/system-explainer/en-US/01-system-overview.md +15 -14
- package/docs-release/architecture/system-explainer/en-US/02-module-dependency.md +8 -8
- package/docs-release/architecture/system-explainer/en-US/03-task-lifecycle.md +3 -3
- package/docs-release/architecture/system-explainer/en-US/04-check-and-governance.md +10 -8
- package/docs-release/architecture/system-explainer/en-US/05-data-flow.md +5 -5
- package/docs-release/architecture/system-explainer/en-US/06-preset-and-migration.md +1 -4
- package/docs-release/guides/agent-installation.en-US.md +14 -8
- package/docs-release/guides/agent-installation.md +14 -8
- package/docs-release/guides/contributing.md +3 -3
- package/docs-release/guides/contributing.zh-CN.md +3 -3
- package/docs-release/guides/document-audience-and-surfaces.en-US.md +10 -10
- package/docs-release/guides/document-audience-and-surfaces.md +10 -10
- package/docs-release/guides/legacy-migration-agent-prompt.md +25 -2
- package/docs-release/guides/legacy-migration-agent-prompt.zh-CN.md +25 -2
- package/docs-release/guides/migration-playbook.en-US.md +63 -1
- package/docs-release/guides/migration-playbook.md +59 -1
- package/docs-release/guides/parent-control-repository-pattern.en-US.md +25 -25
- package/docs-release/guides/parent-control-repository-pattern.md +25 -25
- package/docs-release/guides/preset-development.md +2 -2
- package/docs-release/guides/repository-operating-models.en-US.md +21 -21
- package/docs-release/guides/repository-operating-models.md +21 -21
- package/docs-release/guides/task-state-machine.en-US.md +5 -5
- package/docs-release/guides/task-state-machine.md +5 -5
- package/docs-release/guides/typescript-runtime-migration-closeout.md +96 -0
- package/examples/minimal-project/AGENTS.md +2 -2
- package/examples/minimal-project/coding-agent-harness/harness.yaml +14 -0
- package/examples/minimal-project/coding-agent-harness/planning/tasks/demo-task/progress.md +11 -0
- package/examples/minimal-project/{docs/09-PLANNING/TASKS → coding-agent-harness/planning/tasks}/demo-task/review.md +1 -1
- package/package.json +20 -12
- package/presets/legacy-migration/preset.yaml +5 -5
- package/presets/legacy-migration/templates/execution_strategy.append.md +1 -1
- package/presets/lesson-sedimentation/preset.yaml +3 -3
- package/presets/module/preset.yaml +2 -2
- package/presets/module/templates/execution_strategy.append.md +1 -1
- package/presets/module/templates/task_plan.append.md +3 -3
- package/presets/standard-task/preset.yaml +2 -2
- package/references/adversarial-review-standard.md +2 -2
- package/references/agents-md-pattern.md +14 -14
- package/references/cadence-ledger.md +1 -1
- package/references/ci-cd-standard.md +1 -1
- package/references/delivery-operating-model-standard.md +4 -4
- package/references/docs-directory-standard.md +65 -159
- package/references/external-source-intake-standard.md +10 -10
- package/references/harness-ledger.md +5 -5
- package/references/legacy-12-phase-bootstrap.md +2 -2
- package/references/lessons-governance.md +15 -15
- package/references/long-running-task-standard.md +6 -6
- package/references/module-parallel-standard.md +34 -34
- package/references/planning-loop.md +6 -6
- package/references/project-onboarding-audit.md +4 -4
- package/references/regression-system.md +2 -2
- package/references/repo-governance-standard.md +4 -4
- package/references/review-routing-standard.md +1 -1
- package/references/ssot-governance.md +19 -19
- package/references/taskr-gap-analysis.md +5 -5
- package/references/walkthrough-closeout.md +14 -14
- package/references/worktree-parallel.md +3 -3
- package/skills/preset-creator/references/complex-task-skeleton/task_plan.md +1 -1
- package/skills/preset-creator/references/preset-package-skeleton.md +5 -5
- package/templates/AGENTS.md.template +26 -26
- package/templates/architecture/README.md +4 -4
- package/templates/architecture/service-catalog.md +2 -2
- package/templates/architecture/services/service-template.md +1 -1
- package/templates/dashboard/assets/app-src/20-overview.js +11 -5
- package/templates/dashboard/assets/app-src/40-modules.js +1 -1
- package/templates/dashboard/assets/app.js +12 -6
- package/templates/dashboard/assets/i18n.js +4 -2
- package/templates/development/README.md +10 -10
- package/templates/development/cross-repo-debugging.md +3 -3
- package/templates/development/external-context/service-template.md +2 -2
- package/templates/development/external-source-packs/README.md +4 -4
- package/templates/integrations/README.md +4 -4
- package/templates/integrations/api-contract.md +2 -2
- package/templates/integrations/event-contract.md +2 -2
- package/templates/integrations/third-party/vendor-template.md +2 -2
- package/templates/integrations/webhook-contract.md +2 -2
- package/templates/ledger/Harness-Ledger.md +1 -1
- package/templates/planning/INDEX.md +1 -0
- package/templates/planning/module_session_prompt.md +1 -1
- package/templates/planning/task_plan.md +1 -1
- package/templates/planning/walkthrough.md +47 -0
- package/templates/reference/docs-library-standard.md +8 -8
- package/templates/reference/external-source-intake-standard.md +15 -15
- package/templates/reference/repo-governance-standard.md +1 -1
- package/templates/ssot/Module-Registry.md +1 -1
- package/templates/walkthrough/walkthrough-template.md +2 -2
- package/templates-zh-CN/AGENTS.md.template +26 -26
- package/templates-zh-CN/CLAUDE.md.template +1 -1
- package/templates-zh-CN/architecture/README.md +4 -4
- package/templates-zh-CN/architecture/service-catalog.md +2 -2
- package/templates-zh-CN/architecture/services/service-template.md +1 -1
- package/templates-zh-CN/development/README.md +10 -10
- package/templates-zh-CN/development/cross-repo-debugging.md +3 -3
- package/templates-zh-CN/development/external-context/service-template.md +2 -2
- package/templates-zh-CN/development/external-source-packs/README.md +4 -4
- package/templates-zh-CN/integrations/README.md +4 -4
- package/templates-zh-CN/integrations/api-contract.md +2 -2
- package/templates-zh-CN/integrations/event-contract.md +2 -2
- package/templates-zh-CN/integrations/third-party/vendor-template.md +2 -2
- package/templates-zh-CN/integrations/webhook-contract.md +2 -2
- package/templates-zh-CN/ledger/Harness-Ledger.md +1 -1
- package/templates-zh-CN/lessons/lesson-arch-process-change.md +1 -1
- package/templates-zh-CN/lessons/lesson-new-doc.md +3 -3
- package/templates-zh-CN/lessons/lesson-ref-change.md +4 -4
- package/templates-zh-CN/planning/module_session_prompt.md +11 -11
- package/templates-zh-CN/planning/walkthrough.md +47 -0
- package/templates-zh-CN/reference/adversarial-review-standard.md +2 -2
- package/templates-zh-CN/reference/delivery-operating-model-standard.md +3 -3
- package/templates-zh-CN/reference/docs-library-standard.md +28 -28
- package/templates-zh-CN/reference/execution-workflow-standard.md +1 -1
- package/templates-zh-CN/reference/external-source-intake-standard.md +16 -16
- package/templates-zh-CN/reference/harness-ledger-standard.md +6 -6
- package/templates-zh-CN/reference/regression-ssot-governance.md +2 -2
- package/templates-zh-CN/reference/repo-governance-standard.md +1 -1
- package/templates-zh-CN/reference/review-routing-standard.md +1 -1
- package/templates-zh-CN/reference/walkthrough-standard.md +7 -7
- package/templates-zh-CN/reference/worktree-standard.md +1 -1
- package/templates-zh-CN/regression/Cadence-Ledger.md +2 -2
- package/templates-zh-CN/ssot/Delivery-SSoT.md +3 -3
- package/templates-zh-CN/ssot/Module-Registry.md +3 -3
- package/templates-zh-CN/ssot/Regression-SSoT.md +2 -2
- package/templates-zh-CN/walkthrough/walkthrough-template.md +5 -5
- package/tsconfig.dist.json +16 -0
- package/tsconfig.json +25 -0
- package/tsconfig.runtime.json +24 -0
- package/examples/minimal-project/.harness-capabilities.json +0 -8
- package/examples/minimal-project/docs/09-PLANNING/TASKS/demo-task/progress.md +0 -11
- package/scripts/check-harness.mjs +0 -508
- package/scripts/commands/dashboard-command.mjs +0 -67
- package/scripts/commands/migration-command.mjs +0 -126
- package/scripts/commands/preset-command.mjs +0 -73
- package/scripts/commands/task-command.mjs +0 -328
- package/scripts/harness.mjs +0 -291
- package/scripts/lib/capability-registry.mjs +0 -587
- package/scripts/lib/check-module-parallel.mjs +0 -230
- package/scripts/lib/check-profiles.mjs +0 -372
- package/scripts/lib/check-task-contracts.mjs +0 -55
- package/scripts/lib/core-shared.mjs +0 -249
- package/scripts/lib/dashboard-data.mjs +0 -520
- package/scripts/lib/dashboard-workbench.mjs +0 -336
- package/scripts/lib/dashboard-writer.mjs +0 -202
- package/scripts/lib/git-status-summary.mjs +0 -46
- package/scripts/lib/governance-index-generator.mjs +0 -174
- package/scripts/lib/governance-sync.mjs +0 -611
- package/scripts/lib/governance-table-boundary.mjs +0 -175
- package/scripts/lib/lesson-maintenance.mjs +0 -152
- package/scripts/lib/markdown-utils.mjs +0 -191
- package/scripts/lib/migration-planner.mjs +0 -476
- package/scripts/lib/migration-support.mjs +0 -312
- package/scripts/lib/phase-kind.mjs +0 -50
- package/scripts/lib/preset-audit-contracts.mjs +0 -37
- package/scripts/lib/preset-engine.mjs +0 -494
- package/scripts/lib/preset-registry.mjs +0 -776
- package/scripts/lib/preset-resource-contracts.mjs +0 -83
- package/scripts/lib/review-confirm-git-gate.mjs +0 -248
- package/scripts/lib/status-builder.mjs +0 -88
- package/scripts/lib/subagent-authorization-audit.mjs +0 -196
- package/scripts/lib/task-audit-metadata.mjs +0 -385
- package/scripts/lib/task-audit-migration.mjs +0 -350
- package/scripts/lib/task-completion-consistency.mjs +0 -26
- package/scripts/lib/task-index.mjs +0 -93
- package/scripts/lib/task-lesson-candidates.mjs +0 -242
- package/scripts/lib/task-lesson-sedimentation.mjs +0 -326
- package/scripts/lib/task-lifecycle/create-task-helpers.mjs +0 -67
- package/scripts/lib/task-lifecycle/phase-sync.mjs +0 -88
- package/scripts/lib/task-lifecycle/review-confirm.mjs +0 -112
- package/scripts/lib/task-lifecycle/review-gates.mjs +0 -73
- package/scripts/lib/task-lifecycle/review-submission.mjs +0 -63
- package/scripts/lib/task-lifecycle/scaffold-provenance.mjs +0 -49
- package/scripts/lib/task-lifecycle/template-files.mjs +0 -53
- package/scripts/lib/task-lifecycle/text-utils.mjs +0 -24
- package/scripts/lib/task-lifecycle.mjs +0 -616
- package/scripts/lib/task-metadata.mjs +0 -118
- package/scripts/lib/task-review-model.mjs +0 -455
- package/scripts/lib/task-scanner.mjs +0 -503
- package/scripts/lib/task-tombstone-commands.mjs +0 -140
- package/scripts/postinstall.mjs +0 -14
- package/templates/walkthrough/Closeout-SSoT.md +0 -43
- package/templates-zh-CN/walkthrough/Closeout-SSoT.md +0 -42
- /package/examples/minimal-project/{docs → coding-agent-harness/governance/generated}/Harness-Ledger.md +0 -0
- /package/examples/minimal-project/{docs/09-PLANNING/TASKS → coding-agent-harness/planning/tasks}/demo-task/INDEX.md +0 -0
- /package/examples/minimal-project/{docs/09-PLANNING/TASKS → coding-agent-harness/planning/tasks}/demo-task/brief.md +0 -0
- /package/examples/minimal-project/{docs/09-PLANNING/TASKS → coding-agent-harness/planning/tasks}/demo-task/execution_strategy.md +0 -0
- /package/examples/minimal-project/{docs/09-PLANNING/TASKS → coding-agent-harness/planning/tasks}/demo-task/findings.md +0 -0
- /package/examples/minimal-project/{docs/09-PLANNING/TASKS → coding-agent-harness/planning/tasks}/demo-task/lesson_candidates.md +0 -0
- /package/examples/minimal-project/{docs/09-PLANNING/TASKS → coding-agent-harness/planning/tasks}/demo-task/task_plan.md +0 -0
- /package/examples/minimal-project/{docs/09-PLANNING/TASKS → coding-agent-harness/planning/tasks}/demo-task/visual_map.md +0 -0
|
@@ -16,7 +16,7 @@
|
|
|
16
16
|
| 定位 | Repo-local **任务协议** + 轻量工作流 | 项目级 **工程方法论** + 完整 harness 体系 |
|
|
17
17
|
| 粒度 | 单任务卡片级别(一个 md 文件 = 一个任务) | 项目 / wave / feature 级别(多文件协作体系) |
|
|
18
18
|
| 目标用户 | 任何用 AI coding agent 的人 | 需要长程项目工程化支撑的团队 |
|
|
19
|
-
| 核心产出 | `.taskr/tasks/*.md` | `
|
|
19
|
+
| 核心产出 | `.taskr/tasks/*.md` | `coding-agent-harness/` 完整骨架 + SSoT + Ledger + Walkthrough |
|
|
20
20
|
| 产品形态 | Skill + npm CLI + 本地看板 + VS Code 插件 | Skill(纯文档协议,无代码工具) |
|
|
21
21
|
| 默认重量 | **轻量优先**(checklist 够了就不加仪式) | **完整优先**(12 个 Phase 全走一遍) |
|
|
22
22
|
|
|
@@ -211,7 +211,7 @@ verification:
|
|
|
211
211
|
**建议吸收方式**:
|
|
212
212
|
扩展为 Harness 级别的 doctor,检查项包括:
|
|
213
213
|
- `AGENTS.md` / `CLAUDE.md` 存在且非空
|
|
214
|
-
- `
|
|
214
|
+
- `coding-agent-harness/` 目录结构是否符合标准
|
|
215
215
|
- 三张 SSoT 文件存在
|
|
216
216
|
- Harness Ledger 存在
|
|
217
217
|
- 任务目录下的 task_plan 是否通过 validate
|
|
@@ -345,9 +345,9 @@ verification:
|
|
|
345
345
|
|
|
346
346
|
**建议吸收方式**(两条路选一条):
|
|
347
347
|
|
|
348
|
-
**路线 A(轻量)**:扩展现有 `harness-dashboard.html`,增加任务视图页签,读 `
|
|
348
|
+
**路线 A(轻量)**:扩展现有 `harness-dashboard.html`,增加任务视图页签,读 `coding-agent-harness/planning/tasks/` 目录下的任务文件。
|
|
349
349
|
|
|
350
|
-
**路线 B(对齐)**:把 Taskr 的 board 直接集成进来,让它同时读 `.taskr/` 和我们的 `
|
|
350
|
+
**路线 B(对齐)**:把 Taskr 的 board 直接集成进来,让它同时读 `.taskr/` 和我们的 `coding-agent-harness/planning/tasks/`。Taskr 是 MIT 开源,可以直接用。
|
|
351
351
|
|
|
352
352
|
**注意**:Board 是 nice-to-have,不是核心方法论差异。核心价值在 3.1-3.6。
|
|
353
353
|
|
|
@@ -504,7 +504,7 @@ Footer 格式:`Taskr: <task-id>`(注意不是旧的 `[taskr:<id>]` subject-l
|
|
|
504
504
|
|
|
505
505
|
| Taskr 特性 | 不吸收的原因 |
|
|
506
506
|
|------------|-------------|
|
|
507
|
-
| `.taskr/` 目录名 | 我们用 `
|
|
507
|
+
| `.taskr/` 目录名 | 我们用 `coding-agent-harness/planning/tasks/`,已是 harness 骨架的一部分,不应再搞一套平行目录 |
|
|
508
508
|
| 6-section 固定结构(Request/AC/Plan/ProgressLog/AgentNotes/CompletionSummary) | 我们的三件套(plan/findings/progress)更细粒度;但可以考虑对齐 section 名 |
|
|
509
509
|
| 无 SSoT / 无 Regression / 无 Lessons | 这是 Taskr 的定位选择(轻量),不代表我们该砍掉已有能力 |
|
|
510
510
|
| HTML-in-Markdown 片段 | 我们的任务文件面向 agent 消费,不需要富渲染 |
|
|
@@ -36,7 +36,7 @@
|
|
|
36
36
|
- 有没有反复出现、跨页面/跨模块/跨阶段的共性问题:[有/无,写一句理由]
|
|
37
37
|
- 有没有下次 agent 也可能重复踩的坑:[有/无,写一句理由]
|
|
38
38
|
- Lessons 结果:[checked-created: L-YYYY-MM-DD-NNN / queued-promotion: LC-YYYYMMDD-NNN / checked-candidate: LC-YYYYMMDD-NNN / checked-none: 一句话原因]
|
|
39
|
-
- Lessons Detail Doc:[如 checked-created,填 `
|
|
39
|
+
- Lessons Detail Doc:[如 checked-created,填 `coding-agent-harness/governance/lessons/...md`;如 queued/checked-candidate,填 `lesson_candidates.md` 和任务本地 `lessons/LC-...md`;否则写"无"]
|
|
40
40
|
|
|
41
41
|
## 相关文件
|
|
42
42
|
- Task Plan: [路径]
|
|
@@ -48,13 +48,13 @@
|
|
|
48
48
|
## 存放位置
|
|
49
49
|
|
|
50
50
|
```
|
|
51
|
-
|
|
51
|
+
walkthrough.md.md
|
|
52
52
|
```
|
|
53
53
|
|
|
54
|
-
Closeout
|
|
54
|
+
Closeout Index:
|
|
55
55
|
|
|
56
56
|
```text
|
|
57
|
-
|
|
57
|
+
coding-agent-harness/governance/generated/Closeout-Index.md
|
|
58
58
|
```
|
|
59
59
|
|
|
60
60
|
## 规则
|
|
@@ -67,15 +67,15 @@ docs/10-WALKTHROUGH/Closeout-SSoT.md
|
|
|
67
67
|
6. **Walkthrough 不是代码注释** — 不需要逐行解释代码,重点是决策、验证和可复用教训
|
|
68
68
|
7. **Walkthrough 完成后必须执行经验沉淀检查** — 见下方“经验沉淀检查”章节
|
|
69
69
|
8. **收口后必须更新 Harness Ledger** — 记录本轮上下文回写是否完成
|
|
70
|
-
9. **收口后必须更新 Closeout
|
|
70
|
+
9. **收口后必须更新 Closeout Index** — 每个 `closed` / `closed-with-residual` / `closed-local-only` 的 Harness Ledger row 必须有 Closeout Index row
|
|
71
71
|
|
|
72
|
-
## Closeout
|
|
72
|
+
## Closeout Index 规则
|
|
73
73
|
|
|
74
|
-
`Closeout-
|
|
74
|
+
`Closeout-Index.md` 是 walkthrough 是否写入的硬门槛,不是目录索引。
|
|
75
75
|
|
|
76
76
|
每个 closed 任务必须满足一项:
|
|
77
77
|
|
|
78
|
-
1. `Walkthrough` 列写入 `
|
|
78
|
+
1. `Walkthrough` 列写入 `walkthrough.md.md`
|
|
79
79
|
2. `Walkthrough` 列写入受控 skip reason
|
|
80
80
|
|
|
81
81
|
允许的 skip reason 只有:
|
|
@@ -106,27 +106,27 @@ docs/10-WALKTHROUGH/Closeout-SSoT.md
|
|
|
106
106
|
|
|
107
107
|
如果任何一条答案是“有”:
|
|
108
108
|
|
|
109
|
-
1. 查找任务本地 `lesson_candidates.md`、任务本地 `lessons/LC-*.md` 和 `
|
|
109
|
+
1. 查找任务本地 `lesson_candidates.md`、任务本地 `lessons/LC-*.md` 和 `coding-agent-harness/governance/lessons/*.md`
|
|
110
110
|
2. 按 `references/lessons-governance.md` 中的规则处理冲突
|
|
111
111
|
3. 先在任务目录 `lesson_candidates.md` 中登记候选;候选进入 `needs-promotion` 时同步写任务本地 `lessons/LC-*.md` 详情文件并在 `Detail Artifact` 链接
|
|
112
|
-
4. 人工确认后,如需沉淀,使用 maintenance CLI 写入 `
|
|
113
|
-
5. 在 Closeout
|
|
112
|
+
4. 人工确认后,如需沉淀,使用 maintenance CLI 写入 `coding-agent-harness/governance/lessons/` promoted 详情文档
|
|
113
|
+
5. 在 Closeout Index 和 Harness Ledger 中记录 `queued-promotion: LC-...` 或 `checked-created: L-YYYY-MM-DD-NNN`
|
|
114
114
|
|
|
115
|
-
如果所有答案都是“没有”,不能静默跳过;在 Closeout
|
|
115
|
+
如果所有答案都是“没有”,不能静默跳过;在 Closeout Index 和 Harness Ledger 中记录
|
|
116
116
|
新任务在 `lesson_candidates.md` 中写 `no-candidate-accepted` 和 No-Candidate Reason;旧任务可记录
|
|
117
117
|
`checked-none: <一句话原因>`。
|
|
118
118
|
|
|
119
119
|
## Harness Ledger 回写
|
|
120
120
|
|
|
121
121
|
写完 Walkthrough、更新 Regression SSoT 或其他本轮实际触达的非任务生命周期 SSoT,并完成 Lessons 检查后,Agent 必须更新
|
|
122
|
-
`
|
|
122
|
+
`coding-agent-harness/governance/generated/Closeout-Index.md`;任务生命周期总账由 CLI 重新生成 `coding-agent-harness/governance/generated/Harness-Ledger.md`:
|
|
123
123
|
|
|
124
124
|
1. 为本轮任务追加或更新对应 `HL-*` 条目
|
|
125
125
|
2. 记录 Task Plan、Regression SSoT、Review Report、Walkthrough、Lessons Check 的结果
|
|
126
126
|
3. 列出本轮触碰的 harness 文档
|
|
127
127
|
4. 如有未完成项,使用 `missing` 或 `skipped-with-reason` 并写明 residual
|
|
128
128
|
|
|
129
|
-
没有 Harness Ledger 条目或 Closeout
|
|
129
|
+
没有 Harness Ledger 条目或 Closeout Index 条目的 wave,不视为完整 closed。
|
|
130
130
|
|
|
131
131
|
## 为什么 Walkthrough 有效
|
|
132
132
|
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
|
|
7
7
|
但 worktree 只是 `solo-orchestrator` 或单仓并行的一种实现。若项目是多人团队、
|
|
8
8
|
前后端分仓、program 多仓或瀑布 stage-gate,必须先读
|
|
9
|
-
`
|
|
9
|
+
`coding-agent-harness/governance/standards/delivery-operating-model-standard.md`,再决定使用 worktree、
|
|
10
10
|
feature branch、contract branch、release branch 或跨仓 paired PR。
|
|
11
11
|
|
|
12
12
|
## 什么时候必须开 worktree
|
|
@@ -39,7 +39,7 @@ feature branch、contract branch、release branch 或跨仓 paired PR。
|
|
|
39
39
|
- `fix/` — Bug 修复
|
|
40
40
|
- `refactor/` — 重构
|
|
41
41
|
- `test/` — 测试相关
|
|
42
|
-
- `
|
|
42
|
+
- `coding-agent-harness/` — 文档相关
|
|
43
43
|
|
|
44
44
|
示例:
|
|
45
45
|
- `feat/user-auth-oauth2`
|
|
@@ -135,7 +135,7 @@ Coordinator 集成规则:
|
|
|
135
135
|
|
|
136
136
|
## 并发上限
|
|
137
137
|
|
|
138
|
-
项目必须在 `
|
|
138
|
+
项目必须在 `coding-agent-harness/governance/standards/repo-governance-standard.md` 的 Worktree Concurrency
|
|
139
139
|
中定义 max active worktrees、merge ordering rule 和 cleanup owner。
|
|
140
140
|
|
|
141
141
|
未定义并发上限时,不应启动多 agent 并行开发。
|
|
@@ -108,4 +108,4 @@ File purposes:
|
|
|
108
108
|
|
|
109
109
|
- Global sync owner: coordinator / n/a
|
|
110
110
|
- Global sync status: pending-coordinator-pass / synced / n/a
|
|
111
|
-
- Shared updates needed: [Module Registry / Harness Ledger / Closeout
|
|
111
|
+
- Shared updates needed: [Module Registry / Harness Ledger / Closeout Index / Regression SSoT / none]
|
|
@@ -33,7 +33,7 @@ task:
|
|
|
33
33
|
entrypoints:
|
|
34
34
|
newTask:
|
|
35
35
|
type: template
|
|
36
|
-
writes: [docs/
|
|
36
|
+
writes: [docs/coding-agent-harness/planning/tasks/**]
|
|
37
37
|
audit: true
|
|
38
38
|
templates:
|
|
39
39
|
taskPlanAppend: templates/task_plan.append.md
|
|
@@ -90,7 +90,7 @@ audit:
|
|
|
90
90
|
evidenceFiles: [preset-audit.json, preset-manifest.json, write-scope.json]
|
|
91
91
|
writeScopes:
|
|
92
92
|
taskDocs:
|
|
93
|
-
path: docs/
|
|
93
|
+
path: docs/coding-agent-harness/planning/tasks/**
|
|
94
94
|
access: write
|
|
95
95
|
```
|
|
96
96
|
|
|
@@ -173,7 +173,7 @@ task:
|
|
|
173
173
|
entrypoints:
|
|
174
174
|
newTask:
|
|
175
175
|
type: template
|
|
176
|
-
writes: [docs/
|
|
176
|
+
writes: [docs/coding-agent-harness/planning/tasks/**]
|
|
177
177
|
audit: true
|
|
178
178
|
templates:
|
|
179
179
|
taskPlanAppend: templates/task_plan.append.md
|
|
@@ -196,7 +196,7 @@ audit:
|
|
|
196
196
|
evidenceFiles: [preset-audit.json, preset-manifest.json, write-scope.json]
|
|
197
197
|
writeScopes:
|
|
198
198
|
taskDocs:
|
|
199
|
-
path: docs/
|
|
199
|
+
path: docs/coding-agent-harness/planning/tasks/**
|
|
200
200
|
access: write
|
|
201
201
|
```
|
|
202
202
|
|
|
@@ -267,7 +267,7 @@ Open `references/INDEX.md`, then read these preset-provided references before im
|
|
|
267
267
|
|
|
268
268
|
| Reference | Path | Why |
|
|
269
269
|
| --- | --- | --- |
|
|
270
|
-
| REF-001 | TARGET:docs/
|
|
270
|
+
| REF-001 | TARGET:docs/coding-agent-harness/planning/tasks/<task-folder>/references/upstream-contract.md | [rendered summary] |
|
|
271
271
|
```
|
|
272
272
|
|
|
273
273
|
The same `REF-001` and exact `TARGET:` path must also appear in `references/INDEX.md`.
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
This file is the operating entry point for agents working in this repository.
|
|
4
4
|
Keep it as a charter and routing index. Detailed rules belong in
|
|
5
|
-
`
|
|
5
|
+
`coding-agent-harness/governance/standards/`, not in this file.
|
|
6
6
|
|
|
7
7
|
## Project Profile
|
|
8
8
|
|
|
@@ -14,9 +14,9 @@ Keep it as a charter and routing index. Detailed rules belong in
|
|
|
14
14
|
|
|
15
15
|
## Non-Negotiable Rules
|
|
16
16
|
|
|
17
|
-
1. Preserve architecture boundaries documented in `
|
|
17
|
+
1. Preserve architecture boundaries documented in `coding-agent-harness/governance/standards/engineering-standard.md`.
|
|
18
18
|
2. Do not commit secrets, credentials, private endpoints, or user data.
|
|
19
|
-
3. Start non-trivial work with a Harness CLI-created task directory under `
|
|
19
|
+
3. Start non-trivial work with a Harness CLI-created task directory under `coding-agent-harness/planning/tasks/`.
|
|
20
20
|
4. Record evidence before claiming completion.
|
|
21
21
|
5. Protect unrelated working-tree changes; never revert files outside the assigned scope.
|
|
22
22
|
6. Commit verified, meaningful work slices proactively. Do not leave completed work only as dirty files unless the user explicitly pauses commits, checks fail, dirty ownership is unclear, or a security boundary prevents a clean commit; in those cases record the no-commit reason, owner, and next step in progress, handoff, or closeout notes. Never mix unrelated dirty changes into a task commit.
|
|
@@ -28,23 +28,23 @@ Read the smallest context that can answer the task.
|
|
|
28
28
|
|
|
29
29
|
| Work Type | Read First |
|
|
30
30
|
| --- | --- |
|
|
31
|
-
| Architecture or core module change | `
|
|
32
|
-
| System map, service responsibility, or external system relationship | `
|
|
33
|
-
| Local development, mocks, stubs, or cross-repo debugging | `
|
|
34
|
-
| API, event, webhook, SDK, or third-party contract | `
|
|
35
|
-
| Tests, smoke, or regression | `
|
|
36
|
-
| Execution, commit, PR, or release work | `
|
|
37
|
-
| Creating or advancing a task | Current task directory under `
|
|
31
|
+
| Architecture or core module change | `coding-agent-harness/governance/standards/engineering-standard.md` |
|
|
32
|
+
| System map, service responsibility, or external system relationship | `coding-agent-harness/context/architecture/README.md`, `coding-agent-harness/context/architecture/service-catalog.md` |
|
|
33
|
+
| Local development, mocks, stubs, or cross-repo debugging | `coding-agent-harness/context/development/README.md`, `coding-agent-harness/context/development/codebase-map.md` |
|
|
34
|
+
| API, event, webhook, SDK, or third-party contract | `coding-agent-harness/context/integrations/README.md` and the related contract file |
|
|
35
|
+
| Tests, smoke, or regression | `coding-agent-harness/governance/standards/testing-standard.md`, `coding-agent-harness/governance/regression/Regression-SSoT.md` |
|
|
36
|
+
| Execution, commit, PR, or release work | `coding-agent-harness/governance/standards/execution-workflow-standard.md`, `coding-agent-harness/governance/standards/repo-governance-standard.md`, `coding-agent-harness/governance/standards/pull-request-standard.md`, `coding-agent-harness/governance/standards/ci-cd-standard.md` |
|
|
37
|
+
| Creating or advancing a task | Current task directory under `coding-agent-harness/planning/tasks/`; use `harness new-task` / lifecycle commands when this project has the Harness CLI configured |
|
|
38
38
|
| Brief, Execution Strategy, or Visual Map | Current task `brief.md`, `execution_strategy.md`, and `visual_map.md` |
|
|
39
|
-
| Long-running task | `
|
|
40
|
-
| Reviewer, subagent, or adversarial review | `
|
|
41
|
-
| Team, multi-repo, or staged delivery | `
|
|
42
|
-
| Module-parallel work | `
|
|
43
|
-
| Documentation governance or Harness update | `
|
|
44
|
-
| External source material intake | `
|
|
45
|
-
| Regression SSoT maintenance | `
|
|
46
|
-
| Walkthrough, closeout, or lessons | `
|
|
47
|
-
| Worktree operations | `
|
|
39
|
+
| Long-running task | Current task `long-running-task-contract.md` when present |
|
|
40
|
+
| Reviewer, subagent, or adversarial review | Current task `review.md`, `coding-agent-harness/governance/standards/review-routing-standard.md` |
|
|
41
|
+
| Team, multi-repo, or staged delivery | `coding-agent-harness/governance/standards/delivery-operating-model-standard.md`, `coding-agent-harness/planning/Delivery-SSoT.md` |
|
|
42
|
+
| Module-parallel work | `coding-agent-harness/planning/modules/Module-Registry.md` and the related module plan |
|
|
43
|
+
| Documentation governance or Harness update | `coding-agent-harness/governance/standards/docs-library-standard.md`, `coding-agent-harness/harness.yaml` |
|
|
44
|
+
| External source material intake | `coding-agent-harness/governance/standards/external-source-intake-standard.md` |
|
|
45
|
+
| Regression SSoT maintenance | `coding-agent-harness/governance/standards/regression-ssot-governance.md` |
|
|
46
|
+
| Walkthrough, closeout, or lessons | `coding-agent-harness/governance/standards/walkthrough-standard.md`, current task `walkthrough.md`, current task `lesson_candidates.md`, `coding-agent-harness/governance/lessons/` |
|
|
47
|
+
| Worktree operations | `coding-agent-harness/governance/standards/worktree-standard.md` |
|
|
48
48
|
|
|
49
49
|
## Standard Execution Flow
|
|
50
50
|
|
|
@@ -73,14 +73,14 @@ Read the smallest context that can answer the task.
|
|
|
73
73
|
|
|
74
74
|
## Single Sources Of Truth
|
|
75
75
|
|
|
76
|
-
- Delivery SSoT: `
|
|
77
|
-
- Module Registry: `
|
|
78
|
-
- Regression SSoT: `
|
|
79
|
-
- Cadence Ledger: `
|
|
76
|
+
- Delivery SSoT: `coding-agent-harness/planning/Delivery-SSoT.md`
|
|
77
|
+
- Module Registry: `coding-agent-harness/planning/modules/Module-Registry.md`
|
|
78
|
+
- Regression SSoT: `coding-agent-harness/governance/regression/Regression-SSoT.md`
|
|
79
|
+
- Cadence Ledger: `coding-agent-harness/governance/regression/Cadence-Ledger.md`
|
|
80
80
|
- Lesson Candidates: current task `lesson_candidates.md`
|
|
81
|
-
- Lesson Detail Docs: `
|
|
82
|
-
- Closeout
|
|
83
|
-
- Harness Ledger: `
|
|
81
|
+
- Lesson Detail Docs: `coding-agent-harness/governance/lessons/`
|
|
82
|
+
- Generated Closeout Index: `coding-agent-harness/governance/generated/Closeout-Index.md`
|
|
83
|
+
- Harness Ledger: `coding-agent-harness/governance/generated/Harness-Ledger.md`
|
|
84
84
|
|
|
85
85
|
## Local Commands
|
|
86
86
|
|
|
@@ -22,8 +22,8 @@ This folder is the system-structure source of truth. It explains what the curren
|
|
|
22
22
|
## Boundary
|
|
23
23
|
|
|
24
24
|
- Put system structure, service responsibility, ownership, and critical flows here.
|
|
25
|
-
- Put payload bodies, endpoint parameters, event schemas, and SDK details in `
|
|
26
|
-
- Put local setup, mocks, stubs, and cross-repo debugging notes in `
|
|
25
|
+
- Put payload bodies, endpoint parameters, event schemas, and SDK details in `coding-agent-harness/context/integrations/`.
|
|
26
|
+
- Put local setup, mocks, stubs, and cross-repo debugging notes in `coding-agent-harness/context/development/`.
|
|
27
27
|
|
|
28
28
|
## Structure Contract
|
|
29
29
|
|
|
@@ -44,6 +44,6 @@ Each `services/<service-key>.md` answers only three questions:
|
|
|
44
44
|
|
|
45
45
|
1. What does this service own, including data ownership.
|
|
46
46
|
2. How does it relate to this repository.
|
|
47
|
-
3. Which `
|
|
47
|
+
3. Which `context/development` and `context/integrations` docs must an agent read before changing this repository.
|
|
48
48
|
|
|
49
|
-
Do not put interface fields, mock instructions, or temporary debugging notes in `
|
|
49
|
+
Do not put interface fields, mock instructions, or temporary debugging notes in `context/architecture`. Those belong in `context/integrations` and `context/development`.
|
|
@@ -12,6 +12,6 @@ Confidence: low
|
|
|
12
12
|
|
|
13
13
|
## Boundary Rule
|
|
14
14
|
|
|
15
|
-
This catalog gives interface summaries and links only. Put payload bodies, auth rules, error codes, and event schemas in `
|
|
15
|
+
This catalog gives interface summaries and links only. Put payload bodies, auth rules, error codes, and event schemas in `coding-agent-harness/context/integrations/`.
|
|
16
16
|
|
|
17
|
-
Each service or microservice gets one row. If the service affects development or task decisions in this repository, add links to `services/<service-key>.md`, `
|
|
17
|
+
Each service or microservice gets one row. If the service affects development or task decisions in this repository, add links to `services/<service-key>.md`, `coding-agent-harness/context/development/external-context/<service-key>.md`, and the relevant `coding-agent-harness/context/integrations/<contract>.md`.
|
|
@@ -9,7 +9,7 @@ Confidence: low
|
|
|
9
9
|
|
|
10
10
|
| Catalog Row | Development Context | Source Pack | Integration Contracts | Last Verified | Confidence |
|
|
11
11
|
| --- | --- | --- | --- | --- | --- |
|
|
12
|
-
| `
|
|
12
|
+
| `coding-agent-harness/context/architecture/service-catalog.md` | `coding-agent-harness/context/development/external-context/<service-key>.md` | `coding-agent-harness/context/development/external-source-packs/<source-key>/README.md` or N/A | `coding-agent-harness/context/integrations/<contract>.md` | unknown | low |
|
|
13
13
|
|
|
14
14
|
## Responsibility
|
|
15
15
|
|
|
@@ -17,8 +17,8 @@ function overview() {
|
|
|
17
17
|
function statusStrip() {
|
|
18
18
|
const status = bundle.status?.checkState?.status || "unknown";
|
|
19
19
|
const validationMode = bundle.status?.checkState?.validationMode || "validated";
|
|
20
|
-
const
|
|
21
|
-
const displayState =
|
|
20
|
+
const snapshotOnly = validationMode === "data-only" && !isWorkbenchRuntime();
|
|
21
|
+
const displayState = snapshotOnly ? "snapshot" : status;
|
|
22
22
|
const failures = bundle.status?.checkState?.failures || 0;
|
|
23
23
|
const warnings = bundle.status?.checkState?.warnings || 0;
|
|
24
24
|
const tasks = bundle.status?.tasks || [];
|
|
@@ -27,8 +27,8 @@ function statusStrip() {
|
|
|
27
27
|
const withBrief = tasks.filter((task) => task.briefSource === "standalone").length;
|
|
28
28
|
return `<section class="status-card-group">
|
|
29
29
|
<div class="status-primary ${displayState}">
|
|
30
|
-
<span>${
|
|
31
|
-
<strong>${
|
|
30
|
+
<span>${snapshotOnly ? t("snapshotStatus") : t("readiness")}</span>
|
|
31
|
+
<strong>${snapshotOnly ? t("snapshot") : label(status)}</strong>
|
|
32
32
|
<p>${nextActionText()}</p>
|
|
33
33
|
</div>
|
|
34
34
|
<div class="metrics-grid">
|
|
@@ -49,16 +49,22 @@ function metric(labelText, value) {
|
|
|
49
49
|
}
|
|
50
50
|
|
|
51
51
|
function nextActionText() {
|
|
52
|
-
|
|
52
|
+
const dataOnly = (bundle.status?.checkState?.validationMode || "validated") === "data-only";
|
|
53
|
+
if (dataOnly && !isWorkbenchRuntime()) return t("snapshotNotValidated");
|
|
53
54
|
const failures = bundle.status?.checkState?.failures || 0;
|
|
54
55
|
if (failures > 0) return t("resolveBlockers");
|
|
55
56
|
const missingBriefs = (bundle.status?.tasks || []).filter((task) => task.briefSource !== "standalone").length;
|
|
56
57
|
if (missingBriefs > 0) return `${missingBriefs} ${t("missingBriefs")}`;
|
|
57
58
|
const warnings = bundle.status?.checkState?.warnings || 0;
|
|
58
59
|
if (warnings > 0) return t("reviewAdvice");
|
|
60
|
+
if (dataOnly) return t("workbenchDataOnly");
|
|
59
61
|
return t("noBlockers");
|
|
60
62
|
}
|
|
61
63
|
|
|
64
|
+
function isWorkbenchRuntime() {
|
|
65
|
+
return window.__HARNESS_WORKBENCH__ === true || state.runtime?.mode === "workbench";
|
|
66
|
+
}
|
|
67
|
+
|
|
62
68
|
function flowPanel() {
|
|
63
69
|
const tasks = bundle.status?.tasks || [];
|
|
64
70
|
const total = tasks.length;
|
|
@@ -35,7 +35,7 @@ function moduleCard(module) {
|
|
|
35
35
|
const pageCount = Math.ceil(tasks.length / 8) || 1;
|
|
36
36
|
const visibleTasks = tasks.slice((currentPage - 1) * 8, currentPage * 8);
|
|
37
37
|
|
|
38
|
-
const brief = findDocument(`TARGET:
|
|
38
|
+
const brief = findDocument(module.briefPath || `TARGET:coding-agent-harness/planning/modules/${moduleKey}/brief.md`);
|
|
39
39
|
|
|
40
40
|
let pagerHtml = "";
|
|
41
41
|
if (tasks.length > 8) {
|
|
@@ -153,8 +153,8 @@ function overview() {
|
|
|
153
153
|
function statusStrip() {
|
|
154
154
|
const status = bundle.status?.checkState?.status || "unknown";
|
|
155
155
|
const validationMode = bundle.status?.checkState?.validationMode || "validated";
|
|
156
|
-
const
|
|
157
|
-
const displayState =
|
|
156
|
+
const snapshotOnly = validationMode === "data-only" && !isWorkbenchRuntime();
|
|
157
|
+
const displayState = snapshotOnly ? "snapshot" : status;
|
|
158
158
|
const failures = bundle.status?.checkState?.failures || 0;
|
|
159
159
|
const warnings = bundle.status?.checkState?.warnings || 0;
|
|
160
160
|
const tasks = bundle.status?.tasks || [];
|
|
@@ -163,8 +163,8 @@ function statusStrip() {
|
|
|
163
163
|
const withBrief = tasks.filter((task) => task.briefSource === "standalone").length;
|
|
164
164
|
return `<section class="status-card-group">
|
|
165
165
|
<div class="status-primary ${displayState}">
|
|
166
|
-
<span>${
|
|
167
|
-
<strong>${
|
|
166
|
+
<span>${snapshotOnly ? t("snapshotStatus") : t("readiness")}</span>
|
|
167
|
+
<strong>${snapshotOnly ? t("snapshot") : label(status)}</strong>
|
|
168
168
|
<p>${nextActionText()}</p>
|
|
169
169
|
</div>
|
|
170
170
|
<div class="metrics-grid">
|
|
@@ -185,16 +185,22 @@ function metric(labelText, value) {
|
|
|
185
185
|
}
|
|
186
186
|
|
|
187
187
|
function nextActionText() {
|
|
188
|
-
|
|
188
|
+
const dataOnly = (bundle.status?.checkState?.validationMode || "validated") === "data-only";
|
|
189
|
+
if (dataOnly && !isWorkbenchRuntime()) return t("snapshotNotValidated");
|
|
189
190
|
const failures = bundle.status?.checkState?.failures || 0;
|
|
190
191
|
if (failures > 0) return t("resolveBlockers");
|
|
191
192
|
const missingBriefs = (bundle.status?.tasks || []).filter((task) => task.briefSource !== "standalone").length;
|
|
192
193
|
if (missingBriefs > 0) return `${missingBriefs} ${t("missingBriefs")}`;
|
|
193
194
|
const warnings = bundle.status?.checkState?.warnings || 0;
|
|
194
195
|
if (warnings > 0) return t("reviewAdvice");
|
|
196
|
+
if (dataOnly) return t("workbenchDataOnly");
|
|
195
197
|
return t("noBlockers");
|
|
196
198
|
}
|
|
197
199
|
|
|
200
|
+
function isWorkbenchRuntime() {
|
|
201
|
+
return window.__HARNESS_WORKBENCH__ === true || state.runtime?.mode === "workbench";
|
|
202
|
+
}
|
|
203
|
+
|
|
198
204
|
function flowPanel() {
|
|
199
205
|
const tasks = bundle.status?.tasks || [];
|
|
200
206
|
const total = tasks.length;
|
|
@@ -1114,7 +1120,7 @@ function moduleCard(module) {
|
|
|
1114
1120
|
const pageCount = Math.ceil(tasks.length / 8) || 1;
|
|
1115
1121
|
const visibleTasks = tasks.slice((currentPage - 1) * 8, currentPage * 8);
|
|
1116
1122
|
|
|
1117
|
-
const brief = findDocument(`TARGET:
|
|
1123
|
+
const brief = findDocument(module.briefPath || `TARGET:coding-agent-harness/planning/modules/${moduleKey}/brief.md`);
|
|
1118
1124
|
|
|
1119
1125
|
let pagerHtml = "";
|
|
1120
1126
|
if (tasks.length > 8) {
|
|
@@ -26,6 +26,7 @@ window.HarnessI18n = {
|
|
|
26
26
|
"reviewAdvice": "Continue, but keep adoption advice visible.",
|
|
27
27
|
"noBlockers": "No blockers in this snapshot.",
|
|
28
28
|
"snapshotNotValidated": "Snapshot only; run validated status before release decisions.",
|
|
29
|
+
"workbenchDataOnly": "Workbench is active; run validated status before release decisions.",
|
|
29
30
|
"firstLook": "First look",
|
|
30
31
|
"projectFlow": "Project Flow",
|
|
31
32
|
"projectProgress": "Project Progress",
|
|
@@ -258,7 +259,7 @@ window.HarnessI18n = {
|
|
|
258
259
|
"noReviewTasks": "No tasks are currently in review.",
|
|
259
260
|
"reviewAlreadyConfirmed": "Human review is already confirmed.",
|
|
260
261
|
"reviewBlocked": "Close P0-P2 open or release-blocking findings before confirming.",
|
|
261
|
-
"reviewWalkthroughRequired": "Add
|
|
262
|
+
"reviewWalkthroughRequired": "Add the task-local walkthrough.md before confirming human review.",
|
|
262
263
|
"reviewQueueRequired": "This task is not in the canonical Review queue.",
|
|
263
264
|
"reviewWorkbenchReady": "Confirm the human review when the evidence and findings are checked.",
|
|
264
265
|
"reviewConfirmChecklist": "I checked the walkthrough, task review evidence, and open findings.",
|
|
@@ -361,6 +362,7 @@ window.HarnessI18n = {
|
|
|
361
362
|
"reviewAdvice": "可以继续,但升级建议必须保持可见。",
|
|
362
363
|
"noBlockers": "当前快照没有阻塞项。",
|
|
363
364
|
"snapshotNotValidated": "这里只是快照;发布决策前请运行完整验证状态。",
|
|
365
|
+
"workbenchDataOnly": "动态 Workbench 已连接;发布决策前请运行完整验证状态。",
|
|
364
366
|
"firstLook": "第一眼",
|
|
365
367
|
"projectFlow": "项目流程图",
|
|
366
368
|
"projectProgress": "项目进度",
|
|
@@ -593,7 +595,7 @@ window.HarnessI18n = {
|
|
|
593
595
|
"noReviewTasks": "当前没有处在审查阶段的任务。",
|
|
594
596
|
"reviewAlreadyConfirmed": "人工审查已经确认。",
|
|
595
597
|
"reviewBlocked": "先关闭 P0-P2 开放项或阻塞发布的发现,再确认审查。",
|
|
596
|
-
"reviewWalkthroughRequired": "
|
|
598
|
+
"reviewWalkthroughRequired": "先补齐任务本地 walkthrough.md,再确认人工审查。",
|
|
597
599
|
"reviewQueueRequired": "这个任务不在 canonical Review 队列中。",
|
|
598
600
|
"reviewWorkbenchReady": "确认前请核对审查证据与开放发现。",
|
|
599
601
|
"reviewConfirmChecklist": "我已核对 Walkthrough、任务审查证据和开放发现。",
|
|
@@ -12,8 +12,8 @@ This folder is the development input pack. It tells agents how to work in this r
|
|
|
12
12
|
## Boundary
|
|
13
13
|
|
|
14
14
|
- Put local setup, codebase map, external service development summaries, mocks, stubs, and cross-repo debugging here.
|
|
15
|
-
- Put long-lived system structure in `
|
|
16
|
-
- Put concrete API/event/webhook contracts in `
|
|
15
|
+
- Put long-lived system structure in `coding-agent-harness/context/architecture/`.
|
|
16
|
+
- Put concrete API/event/webhook contracts in `coding-agent-harness/context/integrations/`.
|
|
17
17
|
|
|
18
18
|
## Structure Contract
|
|
19
19
|
|
|
@@ -30,21 +30,21 @@ This folder is the development input pack. It tells agents how to work in this r
|
|
|
30
30
|
|
|
31
31
|
If this repository depends on multiple microservices, do not write all external knowledge into one large document. For any external service that affects local development or testing, create:
|
|
32
32
|
|
|
33
|
-
- `
|
|
34
|
-
- `
|
|
35
|
-
- `
|
|
33
|
+
- `coding-agent-harness/context/architecture/services/<service-key>.md`: what the service is and what it owns.
|
|
34
|
+
- `coding-agent-harness/context/development/external-context/<service-key>.md`: how this repository mocks, stubs, or debugs it.
|
|
35
|
+
- `coding-agent-harness/context/integrations/<contract>.md`: concrete API/event/webhook contracts.
|
|
36
36
|
|
|
37
|
-
`
|
|
37
|
+
`context/development` only answers how to work with the external service during development. Do not maintain full system topology here, and do not put payload schemas here.
|
|
38
38
|
|
|
39
39
|
## External Source Pack Rule
|
|
40
40
|
|
|
41
|
-
If an external team provides many documents, screenshots, exported packets, meeting notes, or links, do not place them directly into `
|
|
41
|
+
If an external team provides many documents, screenshots, exported packets, meeting notes, or links, do not place them directly into `context/{architecture,development,integrations}`. Read `coding-agent-harness/governance/standards/external-source-intake-standard.md` first, then decide whether `external-source-packs/<source-key>/` is needed.
|
|
42
42
|
|
|
43
43
|
`external-source-packs/` owns source indexes, digests, and projection status only. Stable conclusions must be written back to:
|
|
44
44
|
|
|
45
|
-
- `
|
|
46
|
-
- `
|
|
47
|
-
- `
|
|
45
|
+
- `coding-agent-harness/context/architecture/services/<service-key>.md`
|
|
46
|
+
- `coding-agent-harness/context/development/external-context/<service-key>.md`
|
|
47
|
+
- `coding-agent-harness/context/integrations/<contract>.md`
|
|
48
48
|
|
|
49
49
|
## External Context Index
|
|
50
50
|
|
|
@@ -8,9 +8,9 @@ Confidence: low
|
|
|
8
8
|
## Debug Flow
|
|
9
9
|
|
|
10
10
|
1. Identify the failing interface or flow.
|
|
11
|
-
2. Read `
|
|
12
|
-
3. Read the matching `
|
|
13
|
-
4. Use the matching `
|
|
11
|
+
2. Read `coding-agent-harness/context/architecture/service-catalog.md` for ownership and upstream/downstream services.
|
|
12
|
+
3. Read the matching `coding-agent-harness/context/integrations/` contract.
|
|
13
|
+
4. Use the matching `coding-agent-harness/context/development/external-context/<service-key>.md` notes for mocks and local debugging.
|
|
14
14
|
|
|
15
15
|
## Known Failure Modes
|
|
16
16
|
|
|
@@ -9,7 +9,7 @@ Confidence: low
|
|
|
9
9
|
|
|
10
10
|
| Service Profile | Source Pack | Integration Contracts | Last Verified | Confidence |
|
|
11
11
|
| --- | --- | --- | --- | --- |
|
|
12
|
-
| `
|
|
12
|
+
| `coding-agent-harness/context/architecture/services/<service-key>.md` | `coding-agent-harness/context/development/external-source-packs/<source-key>/README.md` or N/A | `coding-agent-harness/context/integrations/<contract>.md` | unknown | low |
|
|
13
13
|
|
|
14
14
|
## Development Use
|
|
15
15
|
|
|
@@ -30,4 +30,4 @@ Confidence: low
|
|
|
30
30
|
|
|
31
31
|
## Placement Rule
|
|
32
32
|
|
|
33
|
-
This file only covers local development, testing, and debugging context for this external service. Put service responsibility in `
|
|
33
|
+
This file only covers local development, testing, and debugging context for this external service. Put service responsibility in `context/architecture`; put interface fields and schemas in `context/integrations`.
|
|
@@ -7,18 +7,18 @@ Confidence: low
|
|
|
7
7
|
|
|
8
8
|
## Purpose
|
|
9
9
|
|
|
10
|
-
This directory is only for external source intake, indexing, and digests. Stable facts become Harness execution context only after they are projected into `
|
|
10
|
+
This directory is only for external source intake, indexing, and digests. Stable facts become Harness execution context only after they are projected into `context/architecture`, `coding-agent-harness/context/development/external-context`, or `context/integrations`.
|
|
11
11
|
|
|
12
|
-
Read `
|
|
12
|
+
Read `coding-agent-harness/governance/standards/external-source-intake-standard.md` before adding a source pack.
|
|
13
13
|
|
|
14
14
|
## Source Packs
|
|
15
15
|
|
|
16
|
-
| Source Key | External Project / Service | Raw Storage Mode | Source Count | Digest Status | Projected To
|
|
16
|
+
| Source Key | External Project / Service | Raw Storage Mode | Source Count | Digest Status | Projected To context/{architecture,development,integrations} | Owner | Last Verified | Confidence |
|
|
17
17
|
| --- | --- | --- | --- | --- | --- | --- | --- | --- |
|
|
18
18
|
|
|
19
19
|
## Placement Rule
|
|
20
20
|
|
|
21
|
-
- If there are fewer than 5 source documents, prefer linking them from `Source Evidence` in `
|
|
21
|
+
- If there are fewer than 5 source documents, prefer linking them from `Source Evidence` in `context/{architecture,development,integrations}`; a source pack may be unnecessary.
|
|
22
22
|
- If the material is large, multi-topic, or expected to grow, create `<source-key>/README.md` and `digests/`.
|
|
23
23
|
- `raw/` may contain only commit-safe material with no secrets, personal data, or customer data.
|
|
24
24
|
- Non-committable material should be represented by external path, owner, access condition, and digest only.
|
|
@@ -11,8 +11,8 @@ This folder owns concrete interface contracts: APIs, events, webhooks, SDK usage
|
|
|
11
11
|
|
|
12
12
|
## Boundary
|
|
13
13
|
|
|
14
|
-
- Put service topology and ownership in `
|
|
15
|
-
- Put development mocks and debugging notes in `
|
|
14
|
+
- Put service topology and ownership in `coding-agent-harness/context/architecture/`.
|
|
15
|
+
- Put development mocks and debugging notes in `coding-agent-harness/context/development/`.
|
|
16
16
|
- Put endpoint, payload, error, auth, event, webhook, and SDK contracts here.
|
|
17
17
|
|
|
18
18
|
## Structure Contract
|
|
@@ -28,8 +28,8 @@ This folder owns concrete interface contracts: APIs, events, webhooks, SDK usage
|
|
|
28
28
|
|
|
29
29
|
Every interface contract must be its own file and link back to the related service:
|
|
30
30
|
|
|
31
|
-
- Service ownership and topology: `
|
|
32
|
-
- Local mocks, stubs, and debugging: `
|
|
31
|
+
- Service ownership and topology: `coding-agent-harness/context/architecture/service-catalog.md` or `services/<service-key>.md`
|
|
32
|
+
- Local mocks, stubs, and debugging: `coding-agent-harness/context/development/external-context/<service-key>.md`
|
|
33
33
|
- Concrete payloads, auth, errors, and contract tests: this folder
|
|
34
34
|
|
|
35
35
|
Do not mix multiple services into one large "integration notes" document. Multi-service systems should have multiple contract files; the Contract Index below is the navigation layer for humans and agents.
|
|
@@ -13,7 +13,7 @@ API
|
|
|
13
13
|
|
|
14
14
|
| Service Profile | Development Context | Contract Index | Last Verified | Confidence |
|
|
15
15
|
| --- | --- | --- | --- | --- |
|
|
16
|
-
| `
|
|
16
|
+
| `coding-agent-harness/context/architecture/services/<service-key>.md` | `coding-agent-harness/context/development/external-context/<service-key>.md` | `coding-agent-harness/context/integrations/README.md` | unknown | low |
|
|
17
17
|
|
|
18
18
|
## Auth
|
|
19
19
|
|
|
@@ -39,4 +39,4 @@ API
|
|
|
39
39
|
|
|
40
40
|
## Placement Rule
|
|
41
41
|
|
|
42
|
-
This file describes one API contract only. Put service responsibility in `
|
|
42
|
+
This file describes one API contract only. Put service responsibility in `context/architecture`; put local mock/stub/debug details in `context/development`.
|