coding-agent-harness 1.0.2 → 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 +25 -0
- package/CONTRIBUTING.md +98 -0
- package/README.md +211 -86
- package/README.zh-CN.md +54 -34
- package/SKILL.md +25 -18
- package/docs-release/README.md +9 -5
- package/docs-release/architecture/overview.md +17 -5
- package/docs-release/architecture/overview.zh-CN.md +9 -5
- package/docs-release/assets/dashboard-overview.png +0 -0
- package/docs-release/guides/agent-installation.en-US.md +31 -8
- package/docs-release/guides/agent-installation.md +34 -9
- 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 +3 -2
- package/docs-release/guides/document-audience-and-surfaces.md +3 -2
- package/docs-release/guides/full-legacy-migration-subagent-strategy.md +2 -2
- package/docs-release/guides/full-legacy-migration-subagent-strategy.zh-CN.md +2 -2
- package/docs-release/guides/legacy-migration-agent-prompt.md +0 -11
- package/docs-release/guides/legacy-migration-agent-prompt.zh-CN.md +0 -11
- package/docs-release/guides/migration-playbook.en-US.md +14 -15
- package/docs-release/guides/migration-playbook.md +14 -15
- package/docs-release/guides/parent-control-repository-pattern.en-US.md +7 -5
- package/docs-release/guides/parent-control-repository-pattern.md +7 -5
- package/docs-release/guides/preset-development.md +214 -0
- package/docs-release/guides/repository-operating-models.en-US.md +5 -4
- package/docs-release/guides/repository-operating-models.md +5 -4
- 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/en-US.md +1 -1
- package/docs-release/intl/zh-CN.md +1 -1
- package/examples/minimal-project/docs/09-PLANNING/TASKS/demo-task/findings.md +7 -0
- package/package.json +8 -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 +2 -2
- package/references/delivery-operating-model-standard.md +3 -3
- package/references/docs-directory-standard.md +6 -7
- package/references/harness-ledger.md +53 -96
- package/references/lessons-governance.md +88 -93
- package/references/module-parallel-standard.md +14 -14
- package/references/planning-loop.md +12 -6
- package/references/pull-request-standard.md +118 -0
- package/references/repo-governance-standard.md +11 -2
- 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/walkthrough-closeout.md +7 -7
- package/scripts/check-harness.mjs +40 -301
- 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 +55 -260
- package/scripts/lib/capability-registry.mjs +66 -8
- package/scripts/lib/check-module-parallel.mjs +237 -0
- package/scripts/lib/check-profiles.mjs +61 -153
- package/scripts/lib/check-task-contracts.mjs +47 -0
- package/scripts/lib/core-shared.mjs +10 -0
- package/scripts/lib/dashboard-data.mjs +29 -6
- package/scripts/lib/dashboard-workbench.mjs +52 -12
- package/scripts/lib/dashboard-writer.mjs +14 -2
- 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 +5 -0
- package/scripts/lib/lesson-maintenance.mjs +36 -29
- package/scripts/lib/migration-support.mjs +1 -1
- 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 +297 -403
- package/scripts/lib/task-review-model.mjs +469 -0
- package/scripts/lib/task-scanner.mjs +130 -236
- 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/skills/preset-creator/references/complex-task-skeleton/visual_map.md +50 -0
- package/skills/preset-creator/references/preset-package-skeleton.md +296 -0
- package/templates/AGENTS.md.template +19 -15
- package/templates/dashboard/assets/app-src/00-state.js +1 -0
- package/templates/dashboard/assets/app-src/10-router.js +2 -1
- package/templates/dashboard/assets/app-src/20-overview.js +11 -5
- package/templates/dashboard/assets/app-src/30-tasks.js +92 -246
- package/templates/dashboard/assets/app-src/35-task-detail.js +246 -0
- package/templates/dashboard/assets/app-src/45-review.js +241 -22
- package/templates/dashboard/assets/app-src/50-migration.js +24 -10
- package/templates/dashboard/assets/app-src/90-bindings.js +171 -29
- package/templates/dashboard/assets/app.css +698 -156
- package/templates/dashboard/assets/app.css.manifest.json +9 -0
- package/templates/dashboard/assets/app.js +662 -91
- package/templates/dashboard/assets/app.manifest.json +1 -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 +123 -21
- 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/execution_strategy.md +31 -0
- package/templates/planning/lesson_candidates.md +18 -6
- 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 +36 -13
- package/templates/reference/execution-workflow-standard.md +4 -3
- package/templates/reference/pull-request-standard.md +80 -0
- package/templates/reference/repo-governance-standard.md +7 -6
- package/templates/reference/review-routing-standard.md +6 -0
- package/templates/reference/walkthrough-standard.md +2 -1
- package/templates/verifier/verifier-output.md +1 -1
- package/templates-zh-CN/AGENTS.md.template +20 -16
- package/templates-zh-CN/ledger/Harness-Ledger.md +17 -40
- package/templates-zh-CN/planning/execution_strategy.md +30 -0
- package/templates-zh-CN/planning/lesson_candidates.md +18 -6
- package/templates-zh-CN/planning/review.md +59 -1
- package/templates-zh-CN/planning/task_plan.md +30 -10
- package/templates-zh-CN/reference/adversarial-review-standard.md +1 -1
- package/templates-zh-CN/reference/docs-library-standard.md +1 -1
- package/templates-zh-CN/reference/execution-workflow-standard.md +4 -3
- package/templates-zh-CN/reference/harness-ledger-standard.md +2 -2
- package/templates-zh-CN/reference/pull-request-standard.md +106 -0
- package/templates-zh-CN/reference/repo-governance-standard.md +4 -3
- package/templates-zh-CN/reference/review-routing-standard.md +8 -1
- package/templates-zh-CN/reference/walkthrough-standard.md +3 -2
- package/templates-zh-CN/walkthrough/Closeout-SSoT.md +1 -1
- package/docs-release/assets/dashboard-overview-en.png +0 -0
- package/scripts/smoke-dashboard.mjs +0 -92
- package/scripts/test-harness.mjs +0 -1395
- package/templates/ssot/Feature-SSoT.md +0 -43
- package/templates/ssot/Lessons-SSoT.md +0 -44
- package/templates-zh-CN/ssot/Feature-SSoT.md +0 -49
- package/templates-zh-CN/ssot/Lessons-SSoT.md +0 -49
|
@@ -4,7 +4,7 @@ window.HarnessI18n = {
|
|
|
4
4
|
"projectCockpit": "Console",
|
|
5
5
|
"overview": "Overview",
|
|
6
6
|
"taskIndex": "Task Index",
|
|
7
|
-
"reviewQueue": "
|
|
7
|
+
"reviewQueue": "Lifecycle Queue Workbench",
|
|
8
8
|
"moduleView": "Modules",
|
|
9
9
|
"readiness": "Readiness",
|
|
10
10
|
"tasks": "Tasks",
|
|
@@ -77,12 +77,6 @@ window.HarnessI18n = {
|
|
|
77
77
|
"moduleTasks": "Module Tasks",
|
|
78
78
|
"noModuleTasks": "No module tasks.",
|
|
79
79
|
"migration": "Migration",
|
|
80
|
-
"migrationSnapshot": "Migration Snapshot",
|
|
81
|
-
"taskPreset": "Task preset",
|
|
82
|
-
"targetLevel": "Target level",
|
|
83
|
-
"achievedLevel": "Achieved level",
|
|
84
|
-
"strictDeferred": "Strict deferred",
|
|
85
|
-
"evidenceBundle": "Evidence bundle",
|
|
86
80
|
"migrationSummary": "Migration Attention",
|
|
87
81
|
"migrationWorkbench": "Migration Workbench",
|
|
88
82
|
"aggregateMigrationView": "aggregate migration view",
|
|
@@ -174,20 +168,39 @@ window.HarnessI18n = {
|
|
|
174
168
|
"layout": "View Layout",
|
|
175
169
|
"layoutList": "List View",
|
|
176
170
|
"layoutGrid": "Grid View",
|
|
171
|
+
"sortByTime": "Time order",
|
|
172
|
+
"sortNewest": "Newest first",
|
|
173
|
+
"sortOldest": "Oldest first",
|
|
174
|
+
"activeBriefCount": "{count} briefs · {order}",
|
|
175
|
+
"copyTaskName": "Copy task folder name",
|
|
176
|
+
"copyTaskNameShort": "Copy",
|
|
177
|
+
"copyTaskNameSuccess": "Copied",
|
|
178
|
+
"copyTaskNameFailed": "Failed",
|
|
177
179
|
"legacyState": "Task state",
|
|
178
180
|
"lifecycleState": "Lifecycle",
|
|
179
181
|
"reviewStatus": "Review",
|
|
180
|
-
"
|
|
182
|
+
"sedimentationStatus": "Sedimentation",
|
|
183
|
+
"closeoutStatus": "Finalization",
|
|
184
|
+
"lifecycleQueues": "Lifecycle queues",
|
|
185
|
+
"queueReasons": "Queue reasons",
|
|
181
186
|
"state_closing": "closing",
|
|
182
187
|
"state_closed": "closed",
|
|
183
188
|
"state_ready": "ready",
|
|
184
189
|
"state_in_review": "in review",
|
|
185
190
|
"state_review-blocked": "review blocked",
|
|
191
|
+
"state_closed-review-pending": "closed, review pending",
|
|
186
192
|
"state_missing": "missing",
|
|
187
193
|
"state_required": "required",
|
|
188
|
-
"
|
|
194
|
+
"state_agent-reviewed": "agent reviewed",
|
|
189
195
|
"state_confirmed": "confirmed",
|
|
190
196
|
"state_blocked-open-findings": "blocked findings",
|
|
197
|
+
"state_not-in-queue": "not in queue",
|
|
198
|
+
"state_needs-material": "needs material",
|
|
199
|
+
"state_ready-to-confirm": "ready to confirm",
|
|
200
|
+
"state_closed-debt": "closed debt",
|
|
201
|
+
"state_missing-materials": "missing materials",
|
|
202
|
+
"state_soft-deleted-superseded": "soft-deleted / superseded",
|
|
203
|
+
"state_finalized": "finalized",
|
|
191
204
|
"reviewActions": "Review Actions",
|
|
192
205
|
"reviewWorkspace": "Review Workspace",
|
|
193
206
|
"openReviewWorkspace": "Open Review Workspace",
|
|
@@ -197,14 +210,52 @@ window.HarnessI18n = {
|
|
|
197
210
|
"documentMissing": "Document missing from this snapshot.",
|
|
198
211
|
"staticReadOnly": "Static snapshot is read-only",
|
|
199
212
|
"staticReadOnlyDetail": "Use the dynamic workbench to submit review or governance actions.",
|
|
200
|
-
"reviewQueueSubtitle": "
|
|
213
|
+
"reviewQueueSubtitle": "Routes tasks by lifecycle queue so review work, repairs, blockers, lessons, finalized records, and superseded history stay separate.",
|
|
214
|
+
"reviewQueueTabs": "Lifecycle queues",
|
|
215
|
+
"queueReview": "Review",
|
|
216
|
+
"queueReviewDesc": "Only tasks whose taskQueues include review. These are ready for human review confirmation.",
|
|
217
|
+
"queueMissingMaterials": "Missing Materials",
|
|
218
|
+
"queueMissingMaterialsDesc": "Tasks missing review submissions, walkthroughs, lesson decisions, or other required materials.",
|
|
219
|
+
"queueBlocked": "Blocked",
|
|
220
|
+
"queueBlockedDesc": "Tasks with open blocking findings or state conflicts that prevent confirmation.",
|
|
221
|
+
"queueLessons": "Lessons",
|
|
222
|
+
"queueLessonsDesc": "Tasks with lesson candidates or promotion work that still needs governance routing.",
|
|
223
|
+
"queueConfirmedFinalized": "Confirmed / Finalized",
|
|
224
|
+
"queueConfirmedFinalizedDesc": "Human-confirmed tasks and finalized records kept for audit and closeout follow-through.",
|
|
225
|
+
"queueSoftDeletedSuperseded": "Soft-deleted / Superseded",
|
|
226
|
+
"queueSoftDeletedSupersededDesc": "Historical tasks with tombstones, replacements, merges, archives, or abandoned state.",
|
|
227
|
+
"reasonFilter": "Reason filter",
|
|
228
|
+
"allReasons": "All reasons",
|
|
229
|
+
"reason": "Reason",
|
|
230
|
+
"sortBy": "Sort by",
|
|
231
|
+
"sortQueuePriority": "Queue priority",
|
|
232
|
+
"sortTaskId": "Task ID",
|
|
233
|
+
"reviewSubmitted": "Review submitted",
|
|
234
|
+
"materialsReady": "Materials ready",
|
|
235
|
+
"yes": "Yes",
|
|
236
|
+
"no": "No",
|
|
237
|
+
"copyRepairPrompt": "Copy repair prompt",
|
|
238
|
+
"copyRepairPromptSuccess": "Prompt copied",
|
|
239
|
+
"copyLessonPrompt": "Copy lesson prompt",
|
|
240
|
+
"createLessonTask": "Create sedimentation task",
|
|
241
|
+
"openFollowUpTask": "Open follow-up task",
|
|
242
|
+
"lessonSedimentationActions": "Sedimentation actions",
|
|
243
|
+
"lessonWorkbenchRequired": "Creation is available in the dynamic workbench. The prompt can still be copied from this snapshot.",
|
|
244
|
+
"moreLessonCandidates": "+{count} more candidates in full workspace",
|
|
245
|
+
"lessonTaskCreating": "Creating task...",
|
|
246
|
+
"lessonTaskCreated": "Task created",
|
|
247
|
+
"lessonTaskCreateFailed": "Lesson task creation failed",
|
|
248
|
+
"noQueueTasks": "No tasks in this lifecycle queue.",
|
|
201
249
|
"reviewReady": "Ready",
|
|
250
|
+
"reviewNeedsMaterial": "Needs material",
|
|
251
|
+
"reviewClosedDebt": "Closed debt",
|
|
202
252
|
"reviewBlockedQueue": "Blocked",
|
|
203
253
|
"reviewConfirmedQueue": "Confirmed",
|
|
204
254
|
"noReviewTasks": "No tasks are currently in review.",
|
|
205
255
|
"reviewAlreadyConfirmed": "Human review is already confirmed.",
|
|
206
256
|
"reviewBlocked": "Close P0-P2 open or release-blocking findings before confirming.",
|
|
207
257
|
"reviewWalkthroughRequired": "Add and link a walkthrough in Closeout SSoT before confirming human review.",
|
|
258
|
+
"reviewQueueRequired": "This task is not in the canonical Review queue.",
|
|
208
259
|
"reviewWorkbenchReady": "Confirm the human review when the evidence and findings are checked.",
|
|
209
260
|
"reviewConfirmChecklist": "I checked the walkthrough, task review evidence, and open findings.",
|
|
210
261
|
"confirmReviewComplete": "Confirm Human Review",
|
|
@@ -219,7 +270,7 @@ window.HarnessI18n = {
|
|
|
219
270
|
"projectCockpit": "控制台",
|
|
220
271
|
"overview": "总览",
|
|
221
272
|
"taskIndex": "任务索引",
|
|
222
|
-
"reviewQueue": "
|
|
273
|
+
"reviewQueue": "生命周期队列工作台",
|
|
223
274
|
"moduleView": "模块",
|
|
224
275
|
"readiness": "发布状态",
|
|
225
276
|
"tasks": "任务",
|
|
@@ -292,12 +343,6 @@ window.HarnessI18n = {
|
|
|
292
343
|
"moduleTasks": "模块任务",
|
|
293
344
|
"noModuleTasks": "没有模块任务。",
|
|
294
345
|
"migration": "迁移",
|
|
295
|
-
"migrationSnapshot": "迁移快照",
|
|
296
|
-
"taskPreset": "任务 preset",
|
|
297
|
-
"targetLevel": "目标等级",
|
|
298
|
-
"achievedLevel": "实际完成等级",
|
|
299
|
-
"strictDeferred": "Strict deferred",
|
|
300
|
-
"evidenceBundle": "证据包",
|
|
301
346
|
"migrationSummary": "迁移关注项",
|
|
302
347
|
"migrationWorkbench": "迁移工作台",
|
|
303
348
|
"aggregateMigrationView": "聚合迁移视图",
|
|
@@ -389,20 +434,39 @@ window.HarnessI18n = {
|
|
|
389
434
|
"layout": "展示布局",
|
|
390
435
|
"layoutList": "列表布局",
|
|
391
436
|
"layoutGrid": "网格布局",
|
|
437
|
+
"sortByTime": "时间排序",
|
|
438
|
+
"sortNewest": "最新优先",
|
|
439
|
+
"sortOldest": "最早优先",
|
|
440
|
+
"activeBriefCount": "{count} 个 Brief · {order}",
|
|
441
|
+
"copyTaskName": "复制任务文件夹名",
|
|
442
|
+
"copyTaskNameShort": "复制",
|
|
443
|
+
"copyTaskNameSuccess": "已复制",
|
|
444
|
+
"copyTaskNameFailed": "失败",
|
|
392
445
|
"legacyState": "任务状态",
|
|
393
446
|
"lifecycleState": "生命周期",
|
|
394
447
|
"reviewStatus": "审查状态",
|
|
395
|
-
"
|
|
396
|
-
"
|
|
448
|
+
"sedimentationStatus": "沉淀状态",
|
|
449
|
+
"closeoutStatus": "结项状态",
|
|
450
|
+
"lifecycleQueues": "生命周期队列",
|
|
451
|
+
"queueReasons": "队列原因",
|
|
452
|
+
"state_closing": "结项中",
|
|
397
453
|
"state_closed": "已关闭",
|
|
398
454
|
"state_ready": "就绪",
|
|
399
455
|
"state_in_review": "审查中",
|
|
400
456
|
"state_review-blocked": "审查阻塞",
|
|
457
|
+
"state_closed-review-pending": "已结项待人审",
|
|
401
458
|
"state_missing": "缺失",
|
|
402
459
|
"state_required": "待审查",
|
|
403
|
-
"
|
|
460
|
+
"state_agent-reviewed": "Agent 自查",
|
|
404
461
|
"state_confirmed": "已确认",
|
|
405
462
|
"state_blocked-open-findings": "发现阻塞",
|
|
463
|
+
"state_not-in-queue": "不在队列",
|
|
464
|
+
"state_needs-material": "材料不齐",
|
|
465
|
+
"state_ready-to-confirm": "可确认",
|
|
466
|
+
"state_closed-debt": "结项待确认",
|
|
467
|
+
"state_missing-materials": "材料不齐",
|
|
468
|
+
"state_soft-deleted-superseded": "软删除 / 已替代",
|
|
469
|
+
"state_finalized": "已最终结项",
|
|
406
470
|
"reviewActions": "审查操作",
|
|
407
471
|
"reviewWorkspace": "审查工作台",
|
|
408
472
|
"openReviewWorkspace": "打开审查工作台",
|
|
@@ -412,14 +476,52 @@ window.HarnessI18n = {
|
|
|
412
476
|
"documentMissing": "当前快照中没有这个文档。",
|
|
413
477
|
"staticReadOnly": "静态快照只读",
|
|
414
478
|
"staticReadOnlyDetail": "需要提交审查或治理动作时,请使用动态 workbench。",
|
|
415
|
-
"reviewQueueSubtitle": "
|
|
479
|
+
"reviewQueueSubtitle": "按生命周期队列拆分审查、材料修复、阻塞、教训沉淀、已确认结项和已替代历史任务。",
|
|
480
|
+
"reviewQueueTabs": "生命周期队列",
|
|
481
|
+
"queueReview": "Review",
|
|
482
|
+
"queueReviewDesc": "只显示 taskQueues 包含 review 的任务,这些任务等待人工审查确认。",
|
|
483
|
+
"queueMissingMaterials": "Missing Materials",
|
|
484
|
+
"queueMissingMaterialsDesc": "缺少审查提交、Walkthrough、lesson 判定或其他必需材料的任务。",
|
|
485
|
+
"queueBlocked": "Blocked",
|
|
486
|
+
"queueBlockedDesc": "存在开放阻塞发现或状态冲突,当前不能确认审查的任务。",
|
|
487
|
+
"queueLessons": "Lessons",
|
|
488
|
+
"queueLessonsDesc": "还有 lesson candidate 或 promotion 治理动作需要处理的任务。",
|
|
489
|
+
"queueConfirmedFinalized": "Confirmed / Finalized",
|
|
490
|
+
"queueConfirmedFinalizedDesc": "已经人工确认或最终结项的任务,用于审计和结项追踪。",
|
|
491
|
+
"queueSoftDeletedSuperseded": "Soft-deleted / Superseded",
|
|
492
|
+
"queueSoftDeletedSupersededDesc": "带 tombstone、替代、合并、归档或废弃状态的历史任务。",
|
|
493
|
+
"reasonFilter": "原因筛选",
|
|
494
|
+
"allReasons": "全部原因",
|
|
495
|
+
"reason": "原因",
|
|
496
|
+
"sortBy": "排序",
|
|
497
|
+
"sortQueuePriority": "队列优先级",
|
|
498
|
+
"sortTaskId": "任务 ID",
|
|
499
|
+
"reviewSubmitted": "已提交审查",
|
|
500
|
+
"materialsReady": "材料就绪",
|
|
501
|
+
"yes": "是",
|
|
502
|
+
"no": "否",
|
|
503
|
+
"copyRepairPrompt": "复制修复提示",
|
|
504
|
+
"copyRepairPromptSuccess": "已复制提示",
|
|
505
|
+
"copyLessonPrompt": "复制沉淀提示",
|
|
506
|
+
"createLessonTask": "创建沉淀任务",
|
|
507
|
+
"openFollowUpTask": "打开后续任务",
|
|
508
|
+
"lessonSedimentationActions": "沉淀操作",
|
|
509
|
+
"lessonWorkbenchRequired": "创建任务需要使用动态 workbench;当前快照仍可复制沉淀提示。",
|
|
510
|
+
"moreLessonCandidates": "还有 {count} 个候选,请进详情查看",
|
|
511
|
+
"lessonTaskCreating": "正在创建任务...",
|
|
512
|
+
"lessonTaskCreated": "任务已创建",
|
|
513
|
+
"lessonTaskCreateFailed": "沉淀任务创建失败",
|
|
514
|
+
"noQueueTasks": "这个生命周期队列暂无任务。",
|
|
416
515
|
"reviewReady": "待确认",
|
|
516
|
+
"reviewNeedsMaterial": "材料不齐",
|
|
517
|
+
"reviewClosedDebt": "收口待确认",
|
|
417
518
|
"reviewBlockedQueue": "阻塞",
|
|
418
519
|
"reviewConfirmedQueue": "已确认",
|
|
419
520
|
"noReviewTasks": "当前没有处在审查阶段的任务。",
|
|
420
521
|
"reviewAlreadyConfirmed": "人工审查已经确认。",
|
|
421
522
|
"reviewBlocked": "先关闭 P0-P2 开放项或阻塞发布的发现,再确认审查。",
|
|
422
523
|
"reviewWalkthroughRequired": "先在 Closeout SSoT 中补充并链接 Walkthrough,再确认人工审查。",
|
|
524
|
+
"reviewQueueRequired": "这个任务不在 canonical Review 队列中。",
|
|
423
525
|
"reviewWorkbenchReady": "确认前请核对审查证据与开放发现。",
|
|
424
526
|
"reviewConfirmChecklist": "我已核对 Walkthrough、任务审查证据和开放发现。",
|
|
425
527
|
"confirmReviewComplete": "确认人工审查",
|
|
@@ -2,38 +2,26 @@
|
|
|
2
2
|
|
|
3
3
|
## Purpose
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
Generated canonical task lifecycle index. Humans should use the Dashboard for current status; agents should use `task-list`, `task-index`, or this generated ledger for low-cost lookup.
|
|
6
6
|
|
|
7
|
-
|
|
7
|
+
This file is not a hand-written work log. Do not edit lifecycle rows manually. Update task-local facts (`task_plan.md`, `progress.md`, `review.md`, `lesson_candidates.md`, closeout / walkthrough evidence), then run `harness governance rebuild --archive --apply`.
|
|
8
8
|
|
|
9
|
-
|
|
10
|
-
| --- | --- | --- |
|
|
11
|
-
| proposed | Work is identified but not accepted into active execution. | Assign an owner or reject with a reason. |
|
|
12
|
-
| planned | Scope, owner, and expected evidence are known. | Start execution or update schedule. |
|
|
13
|
-
| active | Work is in progress. | Keep task plan and evidence current. |
|
|
14
|
-
| review | Implementation is complete and waiting for review or verification. | Complete review and regression gates. |
|
|
15
|
-
| blocked | Work cannot proceed without a decision or dependency. | Record blocker owner and unblock condition. |
|
|
16
|
-
| closed | Work is complete and closeout evidence exists. | Archive only when no longer operationally useful. |
|
|
17
|
-
| archived | Entry is historical and no longer part of active coordination. | Keep a pointer to the archive location. |
|
|
9
|
+
Repo Governance / CI-CD changes remain routed through their reference standards and task evidence. Regression gates, delivery sequencing, cadence rules, closeout contracts, and module ownership remain in their dedicated governance files until explicitly replaced by equivalent scanner-supported facts.
|
|
18
10
|
|
|
19
11
|
## Active Ledger
|
|
20
12
|
|
|
21
|
-
| ID |
|
|
13
|
+
| ID | Scope | Module | Task | State | Queues | Plan | Review | Lessons Check | Closeout | Residual | Updated |
|
|
22
14
|
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
|
|
23
|
-
| HL-YYYY-MM-DD-001 | Short operational title |
|
|
15
|
+
| HL-YYYY-MM-DD-001 | task | none | Short operational title | planned | none | docs/09-PLANNING/TASKS/.../task_plan.md | pending | pending | pending | none | YYYY-MM-DD |
|
|
24
16
|
|
|
25
|
-
##
|
|
17
|
+
## Field Rules
|
|
26
18
|
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
6. A row can move to `closed` only when the walkthrough, regression evidence, review disposition, and lessons check are recorded.
|
|
19
|
+
- `Scope`: `task` for root planning tasks, `module` for module-local tasks.
|
|
20
|
+
- `Module`: module key, or `none`.
|
|
21
|
+
- `Queues`: scanner-derived lifecycle queues; query with `harness task-list --queue`.
|
|
22
|
+
- `Review`, `Lessons Check`, `Closeout`, and `Residual`: scanner-derived summaries and routes. Detailed evidence stays in task-local files.
|
|
23
|
+
- `Updated`: generation date, not a manual edit timestamp.
|
|
33
24
|
|
|
34
|
-
##
|
|
25
|
+
## Legacy Tables
|
|
35
26
|
|
|
36
|
-
-
|
|
37
|
-
- Move old closed rows to `docs/01-GOVERNANCE/archive/` or the project archive path when they no longer affect current coordination.
|
|
38
|
-
- Preserve the ledger ID, final status, closeout link, and archive date in any archive entry.
|
|
39
|
-
- Never delete a row to hide skipped verification, `accepted-risk`, or unresolved review feedback.
|
|
27
|
+
`Feature-SSoT.md` and `Private-Feature-SSoT.md` are legacy task lifecycle projections. Current Harness versions archive them during `harness governance rebuild --archive --apply` and do not regenerate them.
|
|
@@ -39,7 +39,7 @@ Describe the recurring architecture, ownership, phase-gate, or operating-process
|
|
|
39
39
|
## Acceptance Criteria
|
|
40
40
|
|
|
41
41
|
- The new rule has a durable home in a reference, template, checker, or project operating model.
|
|
42
|
-
-
|
|
42
|
+
- This promoted lesson detail doc links the applied change and the closeout record.
|
|
43
43
|
- Existing active tasks know whether the new rule applies immediately or only to future work.
|
|
44
44
|
|
|
45
45
|
## Disposition
|
|
@@ -43,7 +43,7 @@ Describe the missing reference document, template, checklist, or operating guide
|
|
|
43
43
|
|
|
44
44
|
- The new document exists at the target path and is linked from the relevant index or entrypoint.
|
|
45
45
|
- The document contains operational rules, not background essay content.
|
|
46
|
-
-
|
|
46
|
+
- This promoted lesson detail doc links the new document and the closeout record.
|
|
47
47
|
|
|
48
48
|
## Disposition
|
|
49
49
|
|
|
@@ -37,7 +37,7 @@ ref-change
|
|
|
37
37
|
## Acceptance Criteria
|
|
38
38
|
|
|
39
39
|
- The target reference, template, or checker is updated.
|
|
40
|
-
- The update is linked from
|
|
40
|
+
- The update is linked from this promoted lesson detail doc and the closeout record.
|
|
41
41
|
- Any active task affected by the rule has a migration or no-impact note.
|
|
42
42
|
|
|
43
43
|
## Disposition
|
|
@@ -4,6 +4,37 @@
|
|
|
4
4
|
|
|
5
5
|
[Describe the execution approach, including why this operating model fits the risk and scope.]
|
|
6
6
|
|
|
7
|
+
## Subagent Authorization
|
|
8
|
+
|
|
9
|
+
Read this section at the start of the task and report the current authorization state before delegating.
|
|
10
|
+
This is an audit record, not an execution sandbox.
|
|
11
|
+
|
|
12
|
+
| Role | Status | Permission | Authorized By | Authorized At | Scope | Worktree / Branch | Reuse |
|
|
13
|
+
| --- | --- | --- | --- | --- | --- | --- | --- |
|
|
14
|
+
| reviewer subagent | allowed by default | read-only | harness task policy | task creation | current task review | n/a | allowed within this task |
|
|
15
|
+
| worker subagent | not authorized | write only after user approval | pending | pending | pending | pending | allowed only within approved task/scope |
|
|
16
|
+
|
|
17
|
+
## Subagent Delegation Decision
|
|
18
|
+
|
|
19
|
+
At task start, the coordinator must make this decision from the user's goal, even if the user never mentions subagents.
|
|
20
|
+
Do not expect the user to know what a subagent or worker is. If delegation would help, explain the benefit in plain language and ask for permission once.
|
|
21
|
+
It is fine to say "subagent" or "worker" to the user; the important rule is that the agent must not wait for the user to ask for them.
|
|
22
|
+
If the task is clearly split into independent slices, decide `ask-user` before implementation. If exact file paths are still unknown, first identify the paths, then immediately ask for the independent execution helper authorization.
|
|
23
|
+
|
|
24
|
+
| Question | Decision | Reason | Next Action |
|
|
25
|
+
| --- | --- | --- | --- |
|
|
26
|
+
| Should a reviewer subagent be used? | yes / no | [why reviewer review helps or is unnecessary] | If yes, call a read-only reviewer without asking for extra permission. |
|
|
27
|
+
| Would a worker subagent materially help? | no / ask-user / already-authorized | [parallel slice, independent implementation, focused investigation, or not useful] | If ask-user, ask directly: "This task is suitable for a worker subagent. Do you authorize me to assign one worker subagent to modify only [scope] in [worktree/branch] while I coordinate and review the result?" |
|
|
28
|
+
|
|
29
|
+
## User Authorization Decision
|
|
30
|
+
|
|
31
|
+
If the worker decision above is `ask-user`, implementation is blocked until this table records the user's answer.
|
|
32
|
+
Allowed resolved states are `authorized`, `denied`, or `not-needed`. Do not leave this as `pending` after choosing `ask-user`.
|
|
33
|
+
|
|
34
|
+
| Gate | State | Decided By | Decided At | Scope | Worktree / Branch | Notes |
|
|
35
|
+
| --- | --- | --- | --- | --- | --- | --- |
|
|
36
|
+
| worker subagent | pending | pending | pending | pending | pending | Fill only after directly asking the user. |
|
|
37
|
+
|
|
7
38
|
## Operating Model
|
|
8
39
|
|
|
9
40
|
- Model: solo / team / split-repo / program / waterfall / kanban / module-parallel
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# {{TASK_TITLE}} - Lesson Candidates
|
|
2
2
|
|
|
3
|
-
This file is the task-local lesson candidate queue.
|
|
3
|
+
This file is the task-local lesson candidate queue. Human review decides whether any candidate should stay task-local, be rejected, enter dry-run promotion, become a promoted lesson detail doc, or become a separate sedimentation task.
|
|
4
4
|
|
|
5
5
|
## Candidate Status
|
|
6
6
|
|
|
@@ -24,14 +24,14 @@ Allowed task-level status:
|
|
|
24
24
|
- `pending-review`: candidate file exists, but human decision is not complete.
|
|
25
25
|
- `no-candidate-accepted`: human accepted the agent's no-candidate reason.
|
|
26
26
|
- `needs-promotion`: at least one candidate is queued for governance promotion.
|
|
27
|
-
- `promoted`: all accepted candidates were promoted to
|
|
27
|
+
- `promoted`: all accepted candidates were promoted to the agreed governance target.
|
|
28
28
|
- `rejected`: all candidates were rejected or archived with reasons.
|
|
29
29
|
|
|
30
30
|
Allowed row status:
|
|
31
31
|
|
|
32
32
|
- `ready-for-review`: agent believes this candidate may matter.
|
|
33
|
-
- `needs-promotion`: human marked the candidate worth preserving.
|
|
34
|
-
- `promoted`: maintenance CLI promoted the candidate to
|
|
33
|
+
- `needs-promotion`: human marked the candidate worth preserving through dry-run promotion or a follow-up sedimentation task.
|
|
34
|
+
- `promoted`: maintenance CLI or an approved follow-up task promoted the candidate to the agreed governance target.
|
|
35
35
|
- `rejected`: human rejected the candidate with a reason.
|
|
36
36
|
|
|
37
37
|
Aggregation rule:
|
|
@@ -44,8 +44,8 @@ Aggregation rule:
|
|
|
44
44
|
|
|
45
45
|
## Candidates
|
|
46
46
|
|
|
47
|
-
| ID | Row Status | Title | Why It Might Matter | Review Decision | Promotion Target |
|
|
48
|
-
| --- | --- | --- | --- | --- | --- |
|
|
47
|
+
| ID | Row Status | Title | Scope | Module Key | Detail Artifact | Boundary Reason | Why It Might Matter | Review Decision | Promotion Target | Conflict Check | Required Standard Update | Follow-up Task |
|
|
48
|
+
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
|
|
49
49
|
|
|
50
50
|
## No-Candidate Reason
|
|
51
51
|
|
|
@@ -54,5 +54,17 @@ Not decided yet. Fill this only when review accepts that the task produced no re
|
|
|
54
54
|
## Promotion Notes
|
|
55
55
|
|
|
56
56
|
- If human review decides a candidate is worth preserving, mark the row `needs-promotion` and record the target governance location.
|
|
57
|
+
- If a candidate is marked `needs-promotion`, write the full task-local detail artifact while the source task context is fresh, then link it in `Detail Artifact`.
|
|
58
|
+
- Use `Scope` values `task`, `module`, or `global`; module-scoped candidates must fill `Module Key`.
|
|
57
59
|
- If human review rejects a candidate, mark the row `rejected` and keep the reason in the review decision.
|
|
58
60
|
- `needs-promotion` does not block task closeout, but it must remain visible in the maintenance queue and closeout record.
|
|
61
|
+
- Default promotion behavior is dry-run or follow-up-task first. Do not write a shared Lessons table; accepted candidates become promoted lesson detail docs.
|
|
62
|
+
- A sedimentation task must classify scope, check conflicts against existing lessons and standards, propose the target change, and report verification before applying.
|
|
63
|
+
|
|
64
|
+
## Queue Routing
|
|
65
|
+
|
|
66
|
+
| Queue | When this task enters it | Exit condition |
|
|
67
|
+
| --- | --- | --- |
|
|
68
|
+
| Lessons | Any candidate is `ready-for-review` or `needs-promotion`. | Human rejects it, keeps it task-local, creates a sedimentation task, or approves promotion. |
|
|
69
|
+
| Missing Materials | The file is absent, has invalid status, or lacks a required no-candidate reason. | Agent repairs the candidate file. |
|
|
70
|
+
| Confirmed / Finalized | Human review is confirmed but a candidate still has deferred governance work. | Follow-up task or dry-run decision is recorded. |
|
|
@@ -2,9 +2,9 @@
|
|
|
2
2
|
|
|
3
3
|
Use this index for generated outputs that support the task but are not the source of truth.
|
|
4
4
|
|
|
5
|
-
|
|
|
6
|
-
| --- | --- | --- | --- |
|
|
7
|
-
| [
|
|
5
|
+
| ID | Type | Path | Summary | Produced By |
|
|
6
|
+
| --- | --- | --- | --- | --- |
|
|
7
|
+
| [artifact-id] | command / diff / fixture / screenshot / review / report | TARGET:path or URL:https://example.com | [why it exists] | coordinator |
|
|
8
8
|
|
|
9
9
|
## Retention Notes
|
|
10
10
|
|
|
@@ -2,9 +2,9 @@
|
|
|
2
2
|
|
|
3
3
|
Use this index for sources the task depends on but does not own.
|
|
4
4
|
|
|
5
|
-
|
|
|
6
|
-
| --- | --- | --- | --- |
|
|
7
|
-
| [
|
|
5
|
+
| ID | Type | Path | Summary | Used By |
|
|
6
|
+
| --- | --- | --- | --- | --- |
|
|
7
|
+
| [reference-id] | doc / link / transcript / code | TARGET:path or URL:https://example.com | [why this source is relevant] | coordinator |
|
|
8
8
|
|
|
9
9
|
## Source Rules
|
|
10
10
|
|
|
@@ -13,6 +13,36 @@
|
|
|
13
13
|
- Out of scope: [explicit exclusions]
|
|
14
14
|
- Source materials: [task plan, diff, test output, runtime evidence]
|
|
15
15
|
|
|
16
|
+
## Agent Review Submission
|
|
17
|
+
|
|
18
|
+
This section is written by the agent or coordinator when the review packet is ready.
|
|
19
|
+
It is not human approval.
|
|
20
|
+
|
|
21
|
+
| Field | Value |
|
|
22
|
+
| --- | --- |
|
|
23
|
+
| Submission ID | [generated by task-review] |
|
|
24
|
+
| Submitted At | [timestamp] |
|
|
25
|
+
| Submitted By | [agent or coordinator identity] |
|
|
26
|
+
| Task Key | {{TASK_ID}} |
|
|
27
|
+
| Materials Checklist Hash | [generated by task-review; informational, not a manual gate] |
|
|
28
|
+
| Evidence Summary | [tests, diff, runtime, and review packet evidence] |
|
|
29
|
+
| Open Findings Count | [number] |
|
|
30
|
+
| Scanner Version | [generated scanner version] |
|
|
31
|
+
|
|
32
|
+
### Material Checklist
|
|
33
|
+
|
|
34
|
+
| Material | Required? | Status | Evidence |
|
|
35
|
+
| --- | --- | --- | --- |
|
|
36
|
+
| Brief | yes / no | present / missing / incomplete | [path or reason] |
|
|
37
|
+
| Task plan | yes / no | present / missing / incomplete | [path or reason] |
|
|
38
|
+
| Progress and evidence | yes / no | present / missing / incomplete | [path or reason] |
|
|
39
|
+
| Visual map | yes / no | present / missing / incomplete | [path or reason] |
|
|
40
|
+
| Lesson candidate decision | yes / no | present / missing / incomplete | [path or reason] |
|
|
41
|
+
| Walkthrough or closeout link | yes / no | present / missing / incomplete | [path or reason] |
|
|
42
|
+
|
|
43
|
+
The scanner derives `materialsReady` from required files, sections, evidence, and this strict submission block. If materials are not ready, route the task to Missing Materials instead of Human Review Confirmation.
|
|
44
|
+
If there are open P0/P1/P2 blocking findings, route the task to Blocked instead of Human Review Confirmation.
|
|
45
|
+
|
|
16
46
|
## Confidence Challenge
|
|
17
47
|
|
|
18
48
|
Answer directly: do you have 100% confidence in the plan, implementation, and strategy?
|
|
@@ -31,6 +61,24 @@ Do not keep sample findings. If there are no material findings, leave only the h
|
|
|
31
61
|
|
|
32
62
|
[If no material findings remain, state what evidence was checked and why no material finding remains.]
|
|
33
63
|
|
|
64
|
+
## Human Review Confirmation
|
|
65
|
+
|
|
66
|
+
This section must only be completed by a human reviewer or by a command/workbench action acting on explicit human confirmation. Agent review submission, self-review, and subagent review do not satisfy this gate.
|
|
67
|
+
|
|
68
|
+
| Field | Value |
|
|
69
|
+
| --- | --- |
|
|
70
|
+
| Confirmation ID | [generated by review-confirm] |
|
|
71
|
+
| Confirmed At | [timestamp] |
|
|
72
|
+
| Reviewer | [human name] |
|
|
73
|
+
| Reviewer Email | [email, if available] |
|
|
74
|
+
| Task Key | {{TASK_ID}} |
|
|
75
|
+
| Confirm Text | [must match the task id or confirmation phrase required by the command] |
|
|
76
|
+
| Evidence Checked | [review packet / tests / diff summary] |
|
|
77
|
+
| Commit SHA | [confirmation commit SHA generated by review-confirm] |
|
|
78
|
+
| Audit Status | committed / blocked |
|
|
79
|
+
|
|
80
|
+
Do not fill this section when the task still belongs in Missing Materials, Blocked, or Lessons routing. `review-confirm` and the Dashboard Workbench must reject dirty Git state, missing commit identity, hook failures, or writes outside the current task `review.md` / `progress.md` allowlist.
|
|
81
|
+
|
|
34
82
|
## Evidence Checked
|
|
35
83
|
|
|
36
84
|
| Evidence ID | Type | Path | Summary |
|
|
@@ -43,6 +91,17 @@ Do not keep sample findings. If there are no material findings, leave only the h
|
|
|
43
91
|
| --- | --- | --- | --- |
|
|
44
92
|
| [risk] | [owner] | yes / no | [path or next action] |
|
|
45
93
|
|
|
94
|
+
## Lifecycle Queue Routing
|
|
95
|
+
|
|
96
|
+
| Queue | Applies? | Reason | Exit condition |
|
|
97
|
+
| --- | --- | --- | --- |
|
|
98
|
+
| Review | yes / no | Submitted review packet is ready for human confirmation. | Human confirms or returns it. |
|
|
99
|
+
| Missing Materials | yes / no | Required file, section, evidence, or review submission is absent/incomplete. | Agent repairs materials and resubmits review. |
|
|
100
|
+
| Blocked | yes / no | Open blocking finding, invalid state transition, failed audit, or human waiver needed. | Blocker is fixed, closed, or explicitly waived. |
|
|
101
|
+
| Lessons | yes / no | Lesson candidate needs rejection, task-local retention, dry-run promotion, or a sedimentation task. | Human decides candidate routing; promotion remains a separate maintenance task unless explicitly approved. |
|
|
102
|
+
| Confirmed / Finalized | yes / no | Human confirmation exists; closeout or governance work may still be pending. | Closeout, ledger, and lesson routing are complete. |
|
|
103
|
+
| Soft-deleted / Superseded | yes / no | Task has tombstone, superseded-by, archive, duplicate, or abandoned status. | Reopen or keep as read-only audit history. |
|
|
104
|
+
|
|
46
105
|
## Final Confidence Basis
|
|
47
106
|
|
|
48
107
|
[Explain the final confidence basis after fixes and verification. If confidence is limited, name the remaining limits and who owns them.]
|
|
@@ -16,8 +16,8 @@ Task Contract: harness-task/v1
|
|
|
16
16
|
| Budget | Use When | Required Structure |
|
|
17
17
|
| --- | --- | --- |
|
|
18
18
|
| simple | One owner, no subagent, L0/L1 evidence, no formal review gate | `brief.md`, `task_plan.md`, `visual_map.md`, `progress.md` |
|
|
19
|
-
| standard | Normal feature, fix, or documentation change |
|
|
20
|
-
| complex | Multi-hour work, L2/L3 evidence, subagent/reviewer, or optional artifact/reference indexes | Standard files plus
|
|
19
|
+
| standard | Normal feature, fix, or documentation change | `brief.md`, `task_plan.md`, `execution_strategy.md`, `visual_map.md`, `findings.md`, `lesson_candidates.md`, `progress.md`, `review.md` |
|
|
20
|
+
| complex | Multi-hour work, L2/L3 evidence, subagent/reviewer, or optional artifact/reference indexes | Standard files plus `references/INDEX.md` and `artifacts/INDEX.md` |
|
|
21
21
|
|
|
22
22
|
Selected budget: {{TASK_BUDGET}}
|
|
23
23
|
|
|
@@ -29,15 +29,39 @@ Selected budget: {{TASK_BUDGET}}
|
|
|
29
29
|
|
|
30
30
|
## Required Files
|
|
31
31
|
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
|
37
|
-
|
|
|
38
|
-
| `
|
|
39
|
-
|
|
|
40
|
-
|
|
|
32
|
+
Do not hand-copy this template to create task directories. Use `harness new-task`
|
|
33
|
+
so the selected budget creates the correct file set and `harness check` can
|
|
34
|
+
enforce it.
|
|
35
|
+
|
|
36
|
+
| Budget | Required Files |
|
|
37
|
+
| --- | --- |
|
|
38
|
+
| simple | `brief.md`, `task_plan.md`, `visual_map.md`, `progress.md` |
|
|
39
|
+
| standard | simple files plus `execution_strategy.md`, `findings.md`, `lesson_candidates.md`, `review.md` |
|
|
40
|
+
| complex | standard files plus `references/INDEX.md`, `artifacts/INDEX.md` |
|
|
41
|
+
| long-running add-on | `long-running-task-contract.md` when `--long-running` is selected |
|
|
42
|
+
|
|
43
|
+
Optional subdirectories are created only when triggered:
|
|
44
|
+
|
|
45
|
+
- `lessons/LC-*.md`: task-local detail artifacts for lesson candidates marked `needs-promotion`.
|
|
46
|
+
- `references/INDEX.md`: complex-task source package and reference index.
|
|
47
|
+
- `artifacts/INDEX.md`: complex-task generated evidence and artifact index.
|
|
48
|
+
|
|
49
|
+
File purposes:
|
|
50
|
+
|
|
51
|
+
| Contract File | Purpose |
|
|
52
|
+
| --- | --- |
|
|
53
|
+
| `brief.md` | Human-readable task summary and current context packet |
|
|
54
|
+
| `task_plan.md` | Goal, scope, budget, acceptance, and operating decisions |
|
|
55
|
+
| `execution_strategy.md` | Operating model, allocation, conflict control, and evidence strategy |
|
|
56
|
+
| `visual_map.md` | Diagram collection: phase map, optional architecture/sequence/data-flow/state diagrams, completion state, evidence state, and blocking risk |
|
|
57
|
+
| `progress.md` | Execution log, decisions, and handoff |
|
|
58
|
+
| `findings.md` | Findings, research notes, and unresolved risks |
|
|
59
|
+
| `lesson_candidates.md` | Task-local lesson candidate queue. Human review must accept no-candidate, reject candidates, or queue promotion before review confirmation |
|
|
60
|
+
| `lessons/LC-*.md` | Optional task-local lesson detail artifacts written while source context is fresh and linked from `Detail Artifact` |
|
|
61
|
+
| `review.md` | Agent review submission, adversarial review, or specialist review report |
|
|
62
|
+
| `references/INDEX.md` | Complex-task source package and reference index |
|
|
63
|
+
| `artifacts/INDEX.md` | Complex-task generated evidence and artifact index |
|
|
64
|
+
| `long-running-task-contract.md` | Continuous execution permission, loop rules, and stop conditions |
|
|
41
65
|
|
|
42
66
|
## Steps
|
|
43
67
|
|
|
@@ -75,10 +99,9 @@ Selected budget: {{TASK_BUDGET}}
|
|
|
75
99
|
|
|
76
100
|
## Links
|
|
77
101
|
|
|
78
|
-
- Feature SSoT entry: [reference]
|
|
79
102
|
- Related Regression Gate: [reference]
|
|
80
103
|
- Review Report: [path / n/a]
|
|
81
|
-
-
|
|
104
|
+
- Generated Ledger: rebuilt by lifecycle CLI / `harness governance rebuild`
|
|
82
105
|
- Prerequisite tasks: [reference or none]
|
|
83
106
|
|
|
84
107
|
## Coordinator Handoff
|
|
@@ -12,8 +12,9 @@ Define the standard lifecycle for non-trivial work from intake through planning,
|
|
|
12
12
|
4. Implement in small reviewable slices and keep the plan current when scope changes.
|
|
13
13
|
5. Run checks that match the risk surface before claiming completion.
|
|
14
14
|
6. Route material findings through review and do not bury unresolved issues in summaries.
|
|
15
|
-
7. Proactively commit each verified, meaningful slice. A completed slice should not remain only as unstaged or staged working-tree state unless the user explicitly asked to defer commits or a documented blocker prevents a clean commit.
|
|
16
|
-
8.
|
|
15
|
+
7. Proactively commit each verified, meaningful slice. A completed slice should not remain only as unstaged or staged working-tree state unless the user explicitly asked to defer commits, checks failed, dirty ownership is unclear, or a documented blocker prevents a clean commit. Deferred commits require a no-commit reason, owner, and next step.
|
|
16
|
+
8. Use CLI lifecycle commands for mechanical Harness writes whenever available. CLI-owned writes use locked, allowlisted auto-commit and refuse dirty Git state; agent-owned manual edits still need an explicit task commit or deferred-commit rationale.
|
|
17
|
+
9. Close the loop by updating walkthrough, SSoT, regression, ledger, or docs artifacts when the work changes durable project knowledge. New non-simple tasks should keep `lesson_candidates.md` reviewable before human review confirmation.
|
|
17
18
|
|
|
18
19
|
## Required Checklist
|
|
19
20
|
|
|
@@ -21,7 +22,7 @@ Define the standard lifecycle for non-trivial work from intake through planning,
|
|
|
21
22
|
- Current repo state and ownership boundaries were checked.
|
|
22
23
|
- Implementation notes identify changed surfaces.
|
|
23
24
|
- Required checks and evidence are captured.
|
|
24
|
-
- Verified slices have commit SHAs, or the reason
|
|
25
|
+
- Verified slices have commit SHAs, or the no-commit reason, owner, and next step are written down.
|
|
25
26
|
- Review status and material findings are recorded.
|
|
26
27
|
- Residuals are explicit and assigned.
|
|
27
28
|
- Closeout artifacts are updated when required.
|