coding-agent-harness 1.0.4 → 1.0.5
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 +7 -0
- package/LICENSE +661 -21
- package/LICENSE-EXCEPTION.md +37 -0
- package/README.md +33 -1
- package/README.zh-CN.md +23 -1
- package/SKILL.md +9 -8
- package/docs-release/architecture/overview.md +1 -1
- package/docs-release/architecture/overview.zh-CN.md +1 -1
- package/docs-release/architecture/system-explainer/01-system-overview.md +217 -0
- package/docs-release/architecture/system-explainer/02-module-dependency.md +257 -0
- package/docs-release/architecture/system-explainer/03-task-lifecycle.md +304 -0
- package/docs-release/architecture/system-explainer/04-check-and-governance.md +239 -0
- package/docs-release/architecture/system-explainer/05-data-flow.md +276 -0
- package/docs-release/architecture/system-explainer/06-preset-and-migration.md +303 -0
- package/docs-release/architecture/system-explainer/README.md +67 -0
- package/docs-release/architecture/system-explainer/en-US/01-system-overview.md +226 -0
- package/docs-release/architecture/system-explainer/en-US/02-module-dependency.md +263 -0
- package/docs-release/architecture/system-explainer/en-US/03-task-lifecycle.md +319 -0
- package/docs-release/architecture/system-explainer/en-US/04-check-and-governance.md +250 -0
- package/docs-release/architecture/system-explainer/en-US/05-data-flow.md +290 -0
- package/docs-release/architecture/system-explainer/en-US/06-preset-and-migration.md +323 -0
- package/docs-release/architecture/system-explainer/en-US/README.md +70 -0
- package/docs-release/guides/agent-installation.en-US.md +8 -7
- package/docs-release/guides/agent-installation.md +9 -7
- package/docs-release/guides/preset-development.md +26 -2
- package/docs-release/guides/task-state-machine.en-US.md +30 -13
- package/docs-release/guides/task-state-machine.md +30 -13
- package/examples/minimal-project/docs/09-PLANNING/TASKS/demo-task/INDEX.md +60 -0
- package/package.json +3 -2
- package/references/harness-ledger.md +1 -1
- package/scripts/commands/migration-command.mjs +30 -0
- package/scripts/commands/task-command.mjs +26 -25
- package/scripts/harness.mjs +7 -3
- package/scripts/lib/capability-registry.mjs +17 -21
- package/scripts/lib/check-module-parallel.mjs +9 -16
- package/scripts/lib/check-profiles.mjs +35 -81
- package/scripts/lib/check-task-contracts.mjs +13 -5
- package/scripts/lib/core-shared.mjs +55 -2
- package/scripts/lib/dashboard-data.mjs +126 -18
- package/scripts/lib/dashboard-workbench.mjs +80 -1
- package/scripts/lib/dashboard-writer.mjs +6 -2
- package/scripts/lib/git-status-summary.mjs +1 -1
- package/scripts/lib/governance-sync.mjs +180 -83
- package/scripts/lib/harness-core.mjs +1 -0
- package/scripts/lib/markdown-utils.mjs +33 -0
- package/scripts/lib/migration-planner.mjs +4 -6
- package/scripts/lib/phase-kind.mjs +50 -0
- package/scripts/lib/preset-engine.mjs +5 -8
- package/scripts/lib/preset-registry.mjs +188 -39
- package/scripts/lib/review-confirm-git-gate.mjs +1 -1
- package/scripts/lib/status-builder.mjs +88 -0
- package/scripts/lib/status-dashboard-renderer.mjs +7 -4
- package/scripts/lib/task-audit-metadata.mjs +385 -0
- package/scripts/lib/task-audit-migration.mjs +350 -0
- package/scripts/lib/task-completion-consistency.mjs +11 -1
- package/scripts/lib/task-lifecycle/create-task-helpers.mjs +67 -0
- package/scripts/lib/task-lifecycle/phase-sync.mjs +88 -0
- package/scripts/lib/task-lifecycle/review-confirm.mjs +40 -29
- package/scripts/lib/task-lifecycle/review-gates.mjs +13 -10
- package/scripts/lib/task-lifecycle/review-submission.mjs +63 -0
- package/scripts/lib/task-lifecycle/scaffold-provenance.mjs +49 -0
- package/scripts/lib/task-lifecycle/template-files.mjs +53 -0
- package/scripts/lib/task-lifecycle.mjs +114 -147
- package/scripts/lib/task-metadata.mjs +118 -0
- package/scripts/lib/task-review-model.mjs +54 -68
- package/scripts/lib/task-scanner.mjs +70 -143
- package/skills/preset-creator/references/complex-task-skeleton/brief.md +11 -0
- package/templates/AGENTS.md.template +7 -5
- package/templates/dashboard/assets/app-src/00-state.js +12 -0
- package/templates/dashboard/assets/app-src/10-router.js +3 -0
- package/templates/dashboard/assets/app-src/20-overview.js +7 -3
- package/templates/dashboard/assets/app-src/35-task-detail.js +46 -6
- package/templates/dashboard/assets/app-src/55-presets.js +375 -0
- package/templates/dashboard/assets/app-src/60-shared.js +3 -1
- package/templates/dashboard/assets/app-src/90-bindings.js +131 -0
- package/templates/dashboard/assets/app.css +583 -0
- package/templates/dashboard/assets/app.css.manifest.json +1 -0
- package/templates/dashboard/assets/app.js +578 -10
- package/templates/dashboard/assets/app.manifest.json +1 -0
- package/templates/dashboard/assets/css-src/00-foundation.css +4 -0
- package/templates/dashboard/assets/css-src/40-detail-modules-migration.css +62 -0
- package/templates/dashboard/assets/css-src/45-presets.css +516 -0
- package/templates/dashboard/assets/i18n.js +140 -2
- package/templates/planning/INDEX.md +87 -0
- package/templates/planning/brief.md +1 -1
- package/templates/planning/module_session_prompt.md +1 -0
- package/templates/planning/review.md +0 -18
- package/templates/planning/task_plan.md +4 -43
- package/templates/planning/visual_map.md +13 -9
- package/templates/planning/visual_map.simple.md +52 -0
- package/templates/reference/execution-workflow-standard.md +29 -2
- package/templates-zh-CN/AGENTS.md.template +7 -5
- package/templates-zh-CN/planning/INDEX.md +87 -0
- package/templates-zh-CN/planning/brief.md +1 -1
- package/templates-zh-CN/planning/module_session_prompt.md +1 -0
- package/templates-zh-CN/planning/review.md +0 -18
- package/templates-zh-CN/planning/task_plan.md +3 -63
- package/templates-zh-CN/planning/visual_map.md +14 -7
- package/templates-zh-CN/planning/visual_map.simple.md +48 -0
- package/templates-zh-CN/reference/execution-workflow-standard.md +31 -6
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
# {{TASK_TITLE}} - 任务包索引
|
|
2
|
+
|
|
3
|
+
Task Contract: harness-task/v1
|
|
4
|
+
|
|
5
|
+
## 任务身份
|
|
6
|
+
|
|
7
|
+
| Field | Value |
|
|
8
|
+
| --- | --- |
|
|
9
|
+
| Task ID | `{{TASK_ID}}` |
|
|
10
|
+
| Budget | `{{TASK_BUDGET}}` |
|
|
11
|
+
| Preset | `{{TASK_PRESET}}` |
|
|
12
|
+
| Module | `{{TASK_MODULE}}` |
|
|
13
|
+
| Long-running | `{{TASK_LONG_RUNNING}}` |
|
|
14
|
+
| Created | {{DATE}} |
|
|
15
|
+
|
|
16
|
+
## 任务审计元数据
|
|
17
|
+
|
|
18
|
+
| Field | Value |
|
|
19
|
+
| --- | --- |
|
|
20
|
+
| Created By | {{TASK_AUDIT_CREATED_BY}} |
|
|
21
|
+
| Created At | {{TASK_AUDIT_CREATED_AT}} |
|
|
22
|
+
| Command Shape | {{TASK_AUDIT_COMMAND_SHAPE}} |
|
|
23
|
+
| Budget | {{TASK_AUDIT_BUDGET}} |
|
|
24
|
+
| Template Source | {{TASK_AUDIT_TEMPLATE_SOURCE}} |
|
|
25
|
+
| Task Creator | {{TASK_AUDIT_TASK_CREATOR}} |
|
|
26
|
+
| Task Creator Source | {{TASK_AUDIT_TASK_CREATOR_SOURCE}} |
|
|
27
|
+
| Human Review Status | {{TASK_AUDIT_HUMAN_REVIEW_STATUS}} |
|
|
28
|
+
| Confirmation ID | {{TASK_AUDIT_CONFIRMATION_ID}} |
|
|
29
|
+
| Confirmed At | {{TASK_AUDIT_CONFIRMED_AT}} |
|
|
30
|
+
| Reviewer | {{TASK_AUDIT_REVIEWER}} |
|
|
31
|
+
| Reviewer Email | {{TASK_AUDIT_REVIEWER_EMAIL}} |
|
|
32
|
+
| Confirm Text | {{TASK_AUDIT_CONFIRM_TEXT}} |
|
|
33
|
+
| Evidence Checked | {{TASK_AUDIT_EVIDENCE_CHECKED}} |
|
|
34
|
+
| Review Commit SHA | {{TASK_AUDIT_REVIEW_COMMIT_SHA}} |
|
|
35
|
+
| Audit Source | {{TASK_AUDIT_AUDIT_SOURCE}} |
|
|
36
|
+
| Audit Status | {{TASK_AUDIT_AUDIT_STATUS}} |
|
|
37
|
+
| Exception Reason | {{TASK_AUDIT_EXCEPTION_REASON}} |
|
|
38
|
+
| Message | {{TASK_AUDIT_MESSAGE}} |
|
|
39
|
+
| Migration Status | {{TASK_AUDIT_MIGRATION_STATUS}} |
|
|
40
|
+
| Migrated From | {{TASK_AUDIT_MIGRATED_FROM}} |
|
|
41
|
+
| Legacy Extra Fields | {{TASK_AUDIT_LEGACY_EXTRA_FIELDS}} |
|
|
42
|
+
| Migration Notes | {{TASK_AUDIT_MIGRATION_NOTES}} |
|
|
43
|
+
|
|
44
|
+
## 核心合同文件
|
|
45
|
+
|
|
46
|
+
| 文件 | 用途 |
|
|
47
|
+
| --- | --- |
|
|
48
|
+
| `brief.md` | 面向人和下一轮 agent 的任务摘要与上下文入口。 |
|
|
49
|
+
| `task_plan.md` | 当前任务目标、范围、所选预算、验收标准和执行决策。 |
|
|
50
|
+
| `visual_map.md` | 阶段图、证据状态、下一步生命周期命令和支持性图表。 |
|
|
51
|
+
| `progress.md` | 执行日志、验证证据、决策和交接记录。 |
|
|
52
|
+
|
|
53
|
+
## 标准任务文件
|
|
54
|
+
|
|
55
|
+
standard 和 complex 任务包含以下文件。
|
|
56
|
+
|
|
57
|
+
| 文件 | 用途 |
|
|
58
|
+
| --- | --- |
|
|
59
|
+
| `execution_strategy.md` | 执行模式、owner、冲突控制和证据策略。 |
|
|
60
|
+
| `findings.md` | 发现、研究记录、已接受风险和未解决问题。 |
|
|
61
|
+
| `lesson_candidates.md` | closeout 前的任务本地 lesson candidate 决策。 |
|
|
62
|
+
| `review.md` | Agent Review Submission、对抗审查、findings、evidence 和 routing。 |
|
|
63
|
+
|
|
64
|
+
## 可选索引
|
|
65
|
+
|
|
66
|
+
| 索引 | 用途 |
|
|
67
|
+
| --- | --- |
|
|
68
|
+
| `references/INDEX.md` | 参考资料和 preset 提供的 required reads。 |
|
|
69
|
+
| `artifacts/INDEX.md` | 生成产物、证据包、截图、报告和命令输出。 |
|
|
70
|
+
|
|
71
|
+
## Preset 摘要
|
|
72
|
+
|
|
73
|
+
本节由系统渲染。Preset 不能新增自定义根级文件,也不能任意追加根 `INDEX.md` 内容。
|
|
74
|
+
|
|
75
|
+
| Field | Value |
|
|
76
|
+
| --- | --- |
|
|
77
|
+
| Preset | `{{TASK_PRESET}}` |
|
|
78
|
+
| Preset Version | `{{TASK_PRESET_VERSION}}` |
|
|
79
|
+
| Evidence Bundle | `{{TASK_EVIDENCE_BUNDLE}}` |
|
|
80
|
+
| Resource Indexes | `references/INDEX.md`; `artifacts/INDEX.md` |
|
|
81
|
+
|
|
82
|
+
## 更新规则
|
|
83
|
+
|
|
84
|
+
- 状态和决策写入 `progress.md`。
|
|
85
|
+
- 任务专属目标和验收标准写入 `task_plan.md`。
|
|
86
|
+
- 大段命令输出、截图、报告和生成文件放入 `artifacts/INDEX.md`。
|
|
87
|
+
- 源材料、外部链接和 preset required reads 放入 `references/INDEX.md`。
|
|
@@ -24,7 +24,7 @@
|
|
|
24
24
|
|
|
25
25
|
- Owner:coordinator
|
|
26
26
|
- 生命周期状态:未开始
|
|
27
|
-
- 必需文件:`task_plan.md`、`execution_strategy.md`、`visual_map.md`、`progress.md`、`findings.md`、`review.md`
|
|
27
|
+
- 必需文件:`INDEX.md`、`task_plan.md`、`execution_strategy.md`、`visual_map.md`、`progress.md`、`findings.md`、`review.md`
|
|
28
28
|
- 完成条件:验证证据必须记录到 `progress.md`
|
|
29
29
|
|
|
30
30
|
## 第一步
|
|
@@ -56,6 +56,7 @@
|
|
|
56
56
|
- 如果需要全局表更新,在 task_plan.md 或 progress.md 写 Coordinator 交接,并标记 `Global sync status: pending-coordinator-pass`。
|
|
57
57
|
- 只有 coordinator pass 或明确的 shared-lock owner 可以更新 docs/09-PLANNING/Module-Registry.md。
|
|
58
58
|
- 汇报状态时区分 `task.state`、`lifecycleState`、`reviewStatus` 和 `closeoutStatus`;`done` 只表示实现步骤完成,不等于 `closed`。
|
|
59
|
+
- 把当前任务 `visual_map.md` 阶段表作为生命周期地图。切片结束时检查当前 gate phase;只有 `Actor` 为 `agent` 的 `Exit Command` 才由 Agent 执行。
|
|
59
60
|
- 更新 docs/09-PLANNING/MODULES/<module-key>/module_plan.md。
|
|
60
61
|
- 写 review.md,或记录 review skipped-with-reason。需要人工确认审查完成时,必须通过本地 dashboard workbench,或由 coordinator 执行 `harness review-confirm`;存在开放 P0/P1/P2 finding 时不得确认。
|
|
61
62
|
- 步骤完成时写 walkthrough,并包含 Lessons 反思。
|
|
@@ -78,24 +78,6 @@ Scanner 会根据必需文件、章节、证据和这个严格提交块派生 `m
|
|
|
78
78
|
|
|
79
79
|
[如果没有重要发现,明确写:本轮已检查上述证据,未发现阻塞目标的重要发现。]
|
|
80
80
|
|
|
81
|
-
## Human Review Confirmation(人工审查确认)
|
|
82
|
-
|
|
83
|
-
本节只能由人工 reviewer,或代表明确人工确认的命令 / workbench 动作填写。Agent 提交审查、自查、subagent 审查都不能满足这个门禁。
|
|
84
|
-
|
|
85
|
-
| Field | Value |
|
|
86
|
-
| --- | --- |
|
|
87
|
-
| Confirmation ID | [由 review-confirm 生成] |
|
|
88
|
-
| Confirmed At | [timestamp] |
|
|
89
|
-
| Reviewer | [人工 reviewer 姓名] |
|
|
90
|
-
| Reviewer Email | [邮箱,如可用] |
|
|
91
|
-
| Task Key | {{TASK_ID}} |
|
|
92
|
-
| Confirm Text | [必须匹配任务 ID 或命令要求的确认短语] |
|
|
93
|
-
| Evidence Checked | [review packet / tests / diff 摘要] |
|
|
94
|
-
| Commit SHA | [由 review-confirm 生成的确认提交 SHA] |
|
|
95
|
-
| Audit Status | committed / blocked |
|
|
96
|
-
|
|
97
|
-
任务仍属于缺材料、阻塞或 Lessons 路由时,不要填写本节。`review-confirm` 与 Dashboard Workbench 必须在 Git dirty、提交身份缺失、hook 失败,或写入超出当前任务 `review.md` / `progress.md` 白名单时拒绝确认。
|
|
98
|
-
|
|
99
81
|
## 残余风险
|
|
100
82
|
|
|
101
83
|
| Risk | Owner | Accepted? | Follow-up |
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
# [任务名称]
|
|
2
2
|
|
|
3
3
|
Task Contract: harness-task/v1
|
|
4
|
+
Task Package Index: required
|
|
4
5
|
|
|
5
6
|
## 目标
|
|
6
7
|
|
|
@@ -12,24 +13,11 @@ Task Contract: harness-task/v1
|
|
|
12
13
|
- 不做什么:[明确排除的内容,避免执行中扩大范围]
|
|
13
14
|
- 主要风险:[当前已知的技术、产品、协作或验证风险]
|
|
14
15
|
|
|
15
|
-
##
|
|
16
|
-
|
|
17
|
-
| 预算 | 适用场景 | 必需结构 |
|
|
18
|
-
| --- | --- | --- |
|
|
19
|
-
| simple | 单 owner、无 subagent、证据深度为 L0/L1、不需要正式 review gate | `brief.md`、`task_plan.md`、`visual_map.md`、`progress.md` |
|
|
20
|
-
| standard | 常规功能、修复或文档改动 | `brief.md`、`task_plan.md`、`execution_strategy.md`、`visual_map.md`、`findings.md`、`lesson_candidates.md`、`progress.md`、`review.md` |
|
|
21
|
-
| complex | 需要 L2/L3 证据、subagent/reviewer、外部参考、生成产物,或超过 5 个切片 | standard 文件,并额外创建 `references/INDEX.md` 与 `artifacts/INDEX.md` |
|
|
16
|
+
## 预算选择
|
|
22
17
|
|
|
23
18
|
选择预算:{{TASK_BUDGET}}
|
|
24
19
|
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
- `lessons/LC-*.md`:进入 `needs-promotion` 的 lesson candidate 的任务本地详情文件。
|
|
28
|
-
- `references/INDEX.md`:任务本地资料、外部链接、reviewer 输入包、跨仓上下文。
|
|
29
|
-
- `artifacts/INDEX.md`:命令输出、截图、fixture、生成报告、审查记录等证据。
|
|
30
|
-
- `slices/<slice-id>/`:多切片任务。每个切片使用 `brief.md`、`evidence.md`、`review.md`。
|
|
31
|
-
|
|
32
|
-
没有真实触发条件时,不创建可选目录;已创建则必须有 index 和明确用途。
|
|
20
|
+
选择理由:[为什么本任务适合这个预算]
|
|
33
21
|
|
|
34
22
|
## 上下文包(Context Packet)
|
|
35
23
|
|
|
@@ -37,54 +25,6 @@ Task Contract: harness-task/v1
|
|
|
37
25
|
| --- | --- | --- | --- | --- |
|
|
38
26
|
| C-001 | public-doc / private-plan / external / code | PUBLIC:path 或 PRIVATE:path 或 TARGET:path 或 EXTERNAL:path 或 URL:https://example.com | [说明这份上下文如何影响任务] | coordinator / reviewer / worker |
|
|
39
27
|
|
|
40
|
-
路径前缀约定:
|
|
41
|
-
|
|
42
|
-
- `PUBLIC:`:公开源仓库中的文件。
|
|
43
|
-
- `PRIVATE:`:私有 harness 仓库中的文件。
|
|
44
|
-
- `TARGET:`:已安装目标项目中的文件。
|
|
45
|
-
- `EXTERNAL:` 或 `URL:`:外部资料。
|
|
46
|
-
|
|
47
|
-
## 执行与可视化文件
|
|
48
|
-
|
|
49
|
-
不要手工复制本模板来创建任务目录。必须使用 `harness new-task`,让所选预算自动
|
|
50
|
-
创建正确文件集,并让 `harness check` 能按同一契约校验。
|
|
51
|
-
|
|
52
|
-
`execution_strategy.md` 和 `visual_map.md` 是本任务的同级合同文件,不嵌入 `task_plan.md`。这样 dashboard 和 checker 可以稳定读取。
|
|
53
|
-
|
|
54
|
-
| 预算 | 必需文件 |
|
|
55
|
-
| --- | --- |
|
|
56
|
-
| simple | `brief.md`、`task_plan.md`、`visual_map.md`、`progress.md` |
|
|
57
|
-
| standard | simple 文件,加 `execution_strategy.md`、`findings.md`、`lesson_candidates.md`、`review.md` |
|
|
58
|
-
| complex | standard 文件,加 `references/INDEX.md`、`artifacts/INDEX.md` |
|
|
59
|
-
| long-running 附加项 | 选择 `--long-running` 时额外创建 `long-running-task-contract.md` |
|
|
60
|
-
|
|
61
|
-
文件职责:
|
|
62
|
-
|
|
63
|
-
| 合同文件 | 用途 |
|
|
64
|
-
| --- | --- |
|
|
65
|
-
| `brief.md` | 面向人和下一轮 agent 的任务摘要与上下文包 |
|
|
66
|
-
| `task_plan.md` | 目标、范围、预算、验收与执行决策 |
|
|
67
|
-
| `execution_strategy.md` | 执行模式、subagent 使用、冲突控制、证据深度、交接规则 |
|
|
68
|
-
| `visual_map.md` | 图表集合:阶段图、可选架构/时序/数据流/状态图、完成度、证据状态、阻塞风险 |
|
|
69
|
-
| `progress.md` | 执行日志、决策和交接 |
|
|
70
|
-
| `findings.md` | 发现、研究记录和未解决风险 |
|
|
71
|
-
| `lesson_candidates.md` | 任务本地教训候选队列。人工审查确认前必须接受无候选、拒绝候选,或排队 promotion |
|
|
72
|
-
| `lessons/LC-*.md` | 可选的任务本地 lesson 详情文件,趁源任务上下文还新鲜写出,并由 `Detail Artifact` 链接 |
|
|
73
|
-
| `review.md` | Agent Review Submission、对抗性审查、release review、外部 reviewer 结论 |
|
|
74
|
-
| `references/INDEX.md` | complex 任务的资料包和参考索引 |
|
|
75
|
-
| `artifacts/INDEX.md` | complex 任务的生成证据和产物索引 |
|
|
76
|
-
| `long-running-task-contract.md` | 连续执行权限、循环规则和停止条件 |
|
|
77
|
-
|
|
78
|
-
旧任务可以保留历史嵌入式段落作为 fallback;新任务必须使用独立文件。
|
|
79
|
-
|
|
80
|
-
## 产物索引(Artifact Index)
|
|
81
|
-
|
|
82
|
-
简单任务可在这里登记关键证据。产物较多时,创建 `artifacts/INDEX.md` 并在此引用 ID。
|
|
83
|
-
|
|
84
|
-
| Artifact ID | 类型 | 路径 | 摘要 |
|
|
85
|
-
| --- | --- | --- | --- |
|
|
86
|
-
| A-001 | command / diff / fixture / screenshot / review / report | PUBLIC:path 或 PRIVATE:path 或 TARGET:path 或 EXTERNAL:path 或 URL:https://example.com | [这份证据证明了什么] |
|
|
87
|
-
|
|
88
28
|
## 步骤
|
|
89
29
|
|
|
90
30
|
1. [步骤 1]
|
|
@@ -14,22 +14,29 @@ Visual Map Contract: v1.0
|
|
|
14
14
|
|
|
15
15
|
```mermaid
|
|
16
16
|
flowchart LR
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
17
|
+
INIT01["INIT-01 范围与上下文\nkind=init"] --> EXEC01["EXEC-01 实现切片\nkind=execution"]
|
|
18
|
+
EXEC01 --> GATE01["GATE-01 Agent 提交审查\nkind=gate"]
|
|
19
|
+
GATE01 --> GATE02["GATE-02 人工审查确认\nkind=gate"]
|
|
20
20
|
```
|
|
21
21
|
|
|
22
22
|
## 阶段表(Phase Table,表头供 checker 解析)
|
|
23
23
|
|
|
24
|
-
| Phase ID | Depends On | State | Completion | Output | Required Evidence | Evidence Status | Blocking Risk | Owner / Handoff |
|
|
25
|
-
| --- | --- | --- | ---: | --- | --- | --- | --- | --- |
|
|
26
|
-
|
|
|
24
|
+
| Phase ID | Kind | Depends On | State | Completion | Output | Required Evidence | Exit Command | Actor | Evidence Status | Blocking Risk | Owner / Handoff |
|
|
25
|
+
| --- | --- | --- | --- | ---: | --- | --- | --- | --- | --- | --- | --- |
|
|
26
|
+
| INIT-01 | init | none | planned | 0 | 任务计划和执行策略已确认 | `task_plan.md`; `execution_strategy.md` | `harness task-start {{TASK_ID}}` | agent | missing | none | coordinator |
|
|
27
|
+
| EXEC-01 | execution | INIT-01 | planned | 0 | 有边界的实现、文档切片和验证证据 | diff、commands、worker handoff 或 artifact path | `harness task-phase {{TASK_ID}} EXEC-01 --state done --completion 100 --evidence present` | agent | missing | [risk] | [owner] |
|
|
28
|
+
| GATE-01 | gate | EXEC-01 | planned | 0 | Agent Review Submission | `review.md`、progress update、lesson routing | `harness task-review {{TASK_ID}} --message "<summary>"` | agent | missing | [risk] | coordinator |
|
|
29
|
+
| GATE-02 | gate | GATE-01 | planned | 0 | Human Review Confirmation | review packet 和人工确认 | `harness review-confirm {{TASK_ID}} --confirm {{TASK_ID}}` | human | missing | Agent 不能代办人工确认 | human |
|
|
27
30
|
|
|
28
31
|
允许的 `State`:`planned`, `in_progress`, `review`, `blocked`, `done`, `skipped`。
|
|
29
32
|
|
|
30
33
|
允许的 `Evidence Status`:`missing`, `partial`, `present`, `waived`。
|
|
31
34
|
|
|
32
|
-
|
|
35
|
+
允许的 `Kind`:`init`, `execution`, `gate`。
|
|
36
|
+
|
|
37
|
+
允许的 `Actor`:`agent`, `human`, `coordinator`。
|
|
38
|
+
|
|
39
|
+
`Completion` 使用 `0..100` 的整数;`done` 应为 `100`,`planned` 应为 `0`,`skipped` 不计入 dashboard 总完成度。dashboard 的实现完成度只由非 skipped 的 `execution` 阶段计算;`init` 和 `gate` 阶段表达生命周期门禁、下一步命令和责任人,不拉低实现完成度。
|
|
33
40
|
|
|
34
41
|
## 支持性图表(Supporting Maps)
|
|
35
42
|
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
# Visual Map / 可视化图谱
|
|
2
|
+
|
|
3
|
+
Visual Map Contract: v1.0
|
|
4
|
+
|
|
5
|
+
本文件是任务图表集合,不只是阶段路线图。只有对人或 agent 理解任务有实际帮助的图才放进来。
|
|
6
|
+
|
|
7
|
+
## 图表索引(Map Index)
|
|
8
|
+
|
|
9
|
+
| ID | Type | Purpose | Required For Understanding | Source Evidence | Promotion Candidate |
|
|
10
|
+
| --- | --- | --- | --- | --- | --- |
|
|
11
|
+
| MAP-01 | phase | 展示执行阶段和依赖关系 | yes | `task_plan.md` | no |
|
|
12
|
+
|
|
13
|
+
## 阶段关系图(Phase Graph)
|
|
14
|
+
|
|
15
|
+
```mermaid
|
|
16
|
+
flowchart LR
|
|
17
|
+
INIT01["INIT-01 范围与上下文\nkind=init"] --> EXEC01["EXEC-01 实现切片\nkind=execution"]
|
|
18
|
+
EXEC01 --> GATE01["GATE-01 直接完成\nkind=gate"]
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
## 阶段表(Phase Table,表头供 checker 解析)
|
|
22
|
+
|
|
23
|
+
| Phase ID | Kind | Depends On | State | Completion | Output | Required Evidence | Exit Command | Actor | Evidence Status | Blocking Risk | Owner / Handoff |
|
|
24
|
+
| --- | --- | --- | --- | ---: | --- | --- | --- | --- | --- | --- | --- |
|
|
25
|
+
| INIT-01 | init | none | planned | 0 | 任务边界已清楚到可以执行 | `task_plan.md` | `harness task-start {{TASK_ID}}` | agent | missing | none | coordinator |
|
|
26
|
+
| EXEC-01 | execution | INIT-01 | planned | 0 | 简单实现或文档变更已完成 | diff、command 或 artifact path | `harness task-phase {{TASK_ID}} EXEC-01 --state done --completion 100 --evidence present` | agent | missing | [risk] | [owner] |
|
|
27
|
+
| GATE-01 | gate | EXEC-01 | planned | 0 | 直接完成任务 | progress update 和最终证据说明 | `harness task-complete {{TASK_ID}} --message "<summary>"` | agent | missing | [risk] | coordinator |
|
|
28
|
+
|
|
29
|
+
允许的 `State`:`planned`, `in_progress`, `review`, `blocked`, `done`, `skipped`。
|
|
30
|
+
|
|
31
|
+
允许的 `Evidence Status`:`missing`, `partial`, `present`, `waived`。
|
|
32
|
+
|
|
33
|
+
允许的 `Kind`:`init`, `execution`, `gate`。
|
|
34
|
+
|
|
35
|
+
允许的 `Actor`:`agent`, `human`, `coordinator`。
|
|
36
|
+
|
|
37
|
+
`Completion` 使用 `0..100` 的整数;`done` 应为 `100`,`planned` 应为 `0`,`skipped` 不计入 dashboard 总完成度。dashboard 的实现完成度只由非 skipped 的 `execution` 阶段计算;`init` 和 `gate` 阶段表达生命周期门禁、下一步命令和责任人,不拉低实现完成度。
|
|
38
|
+
|
|
39
|
+
## 支持性图表(Supporting Maps)
|
|
40
|
+
|
|
41
|
+
按需添加,不要求每类都存在:
|
|
42
|
+
|
|
43
|
+
- architecture:模块、组件、服务结构。
|
|
44
|
+
- sequence:前端、后端、服务、数据库、agent 时序。
|
|
45
|
+
- data-flow:数据流转和所有权。
|
|
46
|
+
- state:状态机或生命周期。
|
|
47
|
+
- topology:repo、服务、worker、worktree 拓扑。
|
|
48
|
+
- decision:方案分叉和决策树。
|
|
@@ -28,7 +28,31 @@
|
|
|
28
28
|
6. 遇到共享文件冲突,由 coordinator 或人工决定串行顺序。
|
|
29
29
|
7. 遇到目标失效、权限阻塞、高风险决策或 stop condition 不适用,立即暂停并记录。
|
|
30
30
|
8. 主动提交已验证的、有意义的中间成果;commit message 应说明变更类型和范围。除非用户明确要求暂不提交、检查失败、dirty 归属不清,或安全边界阻止干净提交,否则不要把已完成切片长期留在未提交状态;延期提交必须写明 no-commit reason、owner 和下一步。
|
|
31
|
-
9. 机械化 Harness 写入优先使用 CLI lifecycle 命令。CLI-owned 写入会加锁、限制 allowlist
|
|
31
|
+
9. 机械化 Harness 写入优先使用 CLI lifecycle 命令。CLI-owned 写入会加锁、限制 allowlist 并自动提交。`new-task` 可以保留无关 dirty 文件,并只提交本次命令自己的 write scope;但 write scope 重叠 dirty 或无关 staged 文件仍会阻塞命令。其他 lifecycle 命令仍可能要求 clean tree。agent-owned 手工编辑仍需要明确任务提交或延期提交理由。
|
|
32
|
+
10. 把 `visual_map.md` 当作生命周期阶段地图。`init` 阶段准备工作,`execution` 阶段定义实现完成度,`gate` 阶段定义审查、人工确认、lesson routing 和 closeout。只有当前操作者匹配阶段 `Actor` 时,才执行该阶段 `Exit Command`;Agent 不得执行 `human` gate。
|
|
33
|
+
11. 新任务目录必须在 `INDEX.md` 保留机器可读任务审计元数据。正常路径是 `Created By: harness new-task`;手工创建只能作为 `manual-exception`,并写清具体原因;历史迁移使用 `historical-backfill`。
|
|
34
|
+
|
|
35
|
+
## 任务包结构
|
|
36
|
+
|
|
37
|
+
使用 `harness new-task` 创建任务目录,不要手工复制任务文件。CLI 会按所选预算创建文件集,并在 `INDEX.md` 记录任务审计元数据,供 `harness check` 校验。
|
|
38
|
+
|
|
39
|
+
| 预算 | 必需文件 |
|
|
40
|
+
| --- | --- |
|
|
41
|
+
| simple | `INDEX.md`、`brief.md`、`task_plan.md`、`visual_map.md`、`progress.md` |
|
|
42
|
+
| standard | simple 文件,加 `execution_strategy.md`、`findings.md`、`lesson_candidates.md`、`review.md` |
|
|
43
|
+
| complex | standard 文件,加 `references/INDEX.md`、`artifacts/INDEX.md` |
|
|
44
|
+
| long-running 附加项 | 选择 `--long-running` 时额外创建 `long-running-task-contract.md` |
|
|
45
|
+
|
|
46
|
+
`INDEX.md` 是任务包导航页,也是审计元数据 SSoT。它只指向合同文件和可选索引,不替代这些文件。
|
|
47
|
+
|
|
48
|
+
可选目录只在触发时创建:
|
|
49
|
+
|
|
50
|
+
- `references/INDEX.md`:任务本地资料、外部链接、reviewer 输入包、preset 提供的 required reads。
|
|
51
|
+
- `artifacts/INDEX.md`:命令输出、截图、fixture、生成报告、审查记录和其他证据。
|
|
52
|
+
- `lessons/LC-*.md`:进入 `needs-promotion` 的 lesson candidate 的任务本地详情文件。
|
|
53
|
+
- `slices/<slice-id>/`:明确启用多切片任务包时使用。
|
|
54
|
+
|
|
55
|
+
Preset 包不能新增或替换根级 base scaffold 文档。Preset 只能追加固定基础文档的受控 section,或把隔离资源写入 `references/**` 和 `artifacts/**`。resource rows 只能登记在 `references/INDEX.md` 和 `artifacts/INDEX.md`;根 `INDEX.md` 最多显示系统渲染的 preset summary 字段。
|
|
32
56
|
|
|
33
57
|
## 完成任务后
|
|
34
58
|
|
|
@@ -39,11 +63,12 @@
|
|
|
39
63
|
5. 确认 `review.md` 没有 open P0/P1 finding;material P2 已修复或写为 `accepted-risk` 并路由。
|
|
40
64
|
6. planned task 必须完成 closeout review,或写明 `skipped-with-reason`。
|
|
41
65
|
7. 写 walkthrough,引用 task plan、review、证据、residual、Regression SSoT 和 commit。
|
|
42
|
-
8.
|
|
43
|
-
9.
|
|
44
|
-
10.
|
|
45
|
-
11.
|
|
46
|
-
12. 如使用
|
|
66
|
+
8. 确认当前 `visual_map.md` lifecycle gate 已执行,或已记录 blocker。
|
|
67
|
+
9. 执行 Lessons 检查:新任务默认先写 `lesson_candidates.md` 并交给人工审查;人工标记后可记录 `queued-promotion`,再由维护命令写 promoted lesson 详情文档。没有可复用候选时记录 `no-candidate-accepted`;旧任务兼容可记录 `checked-none: <reason>`。
|
|
68
|
+
10. 最后更新 Harness Ledger,因为它记录本轮上下文维护的最终状态。
|
|
69
|
+
11. 完成 commit / PR / release note,并确认本任务工作区没有未解释的遗留改动。
|
|
70
|
+
12. 如使用 worker,coordinator 集成 worker commit 后运行最终 gates,并记录 integration evidence。
|
|
71
|
+
13. 如使用 worktree,按 `worktree-standard.md` 清理或记录保留原因。
|
|
47
72
|
|
|
48
73
|
## 提交规范
|
|
49
74
|
|