coding-agent-harness 1.0.2 → 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 +32 -0
- package/CONTRIBUTING.md +98 -0
- package/LICENSE +661 -21
- package/LICENSE-EXCEPTION.md +37 -0
- package/README.md +244 -87
- package/README.zh-CN.md +77 -35
- package/SKILL.md +32 -24
- 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/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/assets/dashboard-overview.png +0 -0
- package/docs-release/guides/agent-installation.en-US.md +39 -15
- package/docs-release/guides/agent-installation.md +43 -16
- 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 +238 -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 +224 -0
- package/docs-release/guides/task-state-machine.md +231 -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/INDEX.md +60 -0
- package/examples/minimal-project/docs/09-PLANNING/TASKS/demo-task/findings.md +7 -0
- package/package.json +10 -4
- 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 +126 -0
- package/scripts/commands/preset-command.mjs +73 -0
- package/scripts/commands/task-command.mjs +328 -0
- package/scripts/harness.mjs +59 -260
- package/scripts/lib/capability-registry.mjs +82 -28
- package/scripts/lib/check-module-parallel.mjs +230 -0
- package/scripts/lib/check-profiles.mjs +90 -228
- package/scripts/lib/check-task-contracts.mjs +55 -0
- package/scripts/lib/core-shared.mjs +65 -2
- package/scripts/lib/dashboard-data.mjs +155 -24
- package/scripts/lib/dashboard-workbench.mjs +131 -12
- package/scripts/lib/dashboard-writer.mjs +20 -4
- package/scripts/lib/git-status-summary.mjs +46 -0
- package/scripts/lib/governance-index-generator.mjs +174 -0
- package/scripts/lib/governance-sync.mjs +611 -0
- package/scripts/lib/governance-table-boundary.mjs +175 -0
- package/scripts/lib/harness-core.mjs +6 -0
- package/scripts/lib/lesson-maintenance.mjs +36 -29
- package/scripts/lib/markdown-utils.mjs +33 -0
- package/scripts/lib/migration-planner.mjs +4 -6
- package/scripts/lib/migration-support.mjs +1 -1
- package/scripts/lib/phase-kind.mjs +50 -0
- package/scripts/lib/preset-audit-contracts.mjs +37 -0
- package/scripts/lib/preset-engine.mjs +494 -0
- package/scripts/lib/preset-registry.mjs +776 -0
- package/scripts/lib/preset-resource-contracts.mjs +83 -0
- package/scripts/lib/review-confirm-git-gate.mjs +248 -0
- package/scripts/lib/status-builder.mjs +88 -0
- package/scripts/lib/status-dashboard-renderer.mjs +105 -0
- package/scripts/lib/subagent-authorization-audit.mjs +196 -0
- 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 +26 -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/create-task-helpers.mjs +67 -0
- package/scripts/lib/task-lifecycle/phase-sync.mjs +88 -0
- package/scripts/lib/task-lifecycle/review-confirm.mjs +112 -0
- package/scripts/lib/task-lifecycle/review-gates.mjs +73 -0
- 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/text-utils.mjs +24 -0
- package/scripts/lib/task-lifecycle.mjs +338 -477
- package/scripts/lib/task-metadata.mjs +118 -0
- package/scripts/lib/task-review-model.mjs +455 -0
- package/scripts/lib/task-scanner.mjs +193 -372
- 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 +43 -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 +24 -18
- package/templates/dashboard/assets/app-src/00-state.js +13 -0
- package/templates/dashboard/assets/app-src/10-router.js +5 -1
- package/templates/dashboard/assets/app-src/20-overview.js +18 -8
- package/templates/dashboard/assets/app-src/30-tasks.js +92 -246
- package/templates/dashboard/assets/app-src/35-task-detail.js +286 -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/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 +302 -29
- package/templates/dashboard/assets/app.css +1501 -376
- package/templates/dashboard/assets/app.css.manifest.json +10 -0
- package/templates/dashboard/assets/app.js +1240 -101
- package/templates/dashboard/assets/app.manifest.json +2 -0
- package/templates/dashboard/assets/css-src/00-foundation.css +346 -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 +489 -0
- package/templates/dashboard/assets/css-src/45-presets.css +516 -0
- package/templates/dashboard/assets/css-src/50-responsive-overrides.css +551 -0
- package/templates/dashboard/assets/i18n.js +263 -23
- 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/INDEX.md +87 -0
- package/templates/planning/brief.md +1 -1
- package/templates/planning/execution_strategy.md +31 -0
- package/templates/planning/lesson_candidates.md +18 -6
- package/templates/planning/module_session_prompt.md +1 -0
- package/templates/planning/optional/artifacts/INDEX.md +3 -3
- package/templates/planning/optional/references/INDEX.md +3 -3
- package/templates/planning/review.md +41 -0
- package/templates/planning/task_plan.md +5 -21
- package/templates/planning/visual_map.md +13 -9
- package/templates/planning/visual_map.simple.md +52 -0
- package/templates/reference/execution-workflow-standard.md +31 -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 +25 -19
- package/templates-zh-CN/ledger/Harness-Ledger.md +17 -40
- package/templates-zh-CN/planning/INDEX.md +87 -0
- package/templates-zh-CN/planning/brief.md +1 -1
- 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/module_session_prompt.md +1 -0
- package/templates-zh-CN/planning/review.md +41 -1
- package/templates-zh-CN/planning/task_plan.md +4 -44
- 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/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 +33 -7
- 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
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
id: legacy-migration
|
|
2
|
+
version: 2
|
|
3
|
+
compatibleBudgets: [complex]
|
|
4
|
+
localeSupport: [en-US, zh-CN]
|
|
5
|
+
purpose: migrate legacy Harness projects into v1 task readability and cutover gates
|
|
6
|
+
task:
|
|
7
|
+
kind: project-migration
|
|
8
|
+
defaultTaskId: harness-v1-migration
|
|
9
|
+
defaultOutcome: Create a controlled Harness v1 migration task from the recorded migrate-run session without rewriting history automatically.
|
|
10
|
+
requiresFromSession: true
|
|
11
|
+
projectLevelOnly: true
|
|
12
|
+
migrationTargetLevel: migration-baseline
|
|
13
|
+
inputs:
|
|
14
|
+
session:
|
|
15
|
+
type: json-file
|
|
16
|
+
flag: --from-session
|
|
17
|
+
required: true
|
|
18
|
+
validateOperation: migrate-run
|
|
19
|
+
rejectPlanOnly: true
|
|
20
|
+
requireTarget: true
|
|
21
|
+
targetFromSession: true
|
|
22
|
+
templateValues:
|
|
23
|
+
preset:
|
|
24
|
+
value: legacy-migration
|
|
25
|
+
presetVersion:
|
|
26
|
+
value: 2
|
|
27
|
+
evidenceBundle:
|
|
28
|
+
from: computed.evidenceBundle
|
|
29
|
+
migrationTargetLevel:
|
|
30
|
+
from: computed.migrationTargetLevel
|
|
31
|
+
migrationAchievedLevel:
|
|
32
|
+
from: computed.migrationAchievedLevel
|
|
33
|
+
strictDeferred:
|
|
34
|
+
from: computed.strictDeferred
|
|
35
|
+
fullCutoverClaimAllowed:
|
|
36
|
+
from: computed.fullCutoverClaimAllowed
|
|
37
|
+
warnings:
|
|
38
|
+
from: computed.warnings
|
|
39
|
+
taskActions:
|
|
40
|
+
from: computed.taskActions
|
|
41
|
+
legacyResiduals:
|
|
42
|
+
from: computed.legacyResiduals
|
|
43
|
+
entrypoints:
|
|
44
|
+
newTask:
|
|
45
|
+
type: template
|
|
46
|
+
writes: [docs/09-PLANNING/TASKS/**]
|
|
47
|
+
reads: [session.json]
|
|
48
|
+
audit: true
|
|
49
|
+
templates:
|
|
50
|
+
taskPlanAppend: templates/task_plan.append.md
|
|
51
|
+
executionStrategyAppend: templates/execution_strategy.append.md
|
|
52
|
+
visualMapAppend: templates/visual_map.append.md
|
|
53
|
+
findingsSeed: templates/findings.seed.md
|
|
54
|
+
reviewSeed: templates/review.seed.md
|
|
55
|
+
plan:
|
|
56
|
+
type: script
|
|
57
|
+
command: scripts/plan-work-queue.mjs
|
|
58
|
+
writes: [docs/09-PLANNING/TASKS/**]
|
|
59
|
+
reads: [docs/**, .git/**]
|
|
60
|
+
audit: true
|
|
61
|
+
scaffold:
|
|
62
|
+
type: script
|
|
63
|
+
command: scripts/scaffold-task-contracts.mjs
|
|
64
|
+
writes: [docs/09-PLANNING/TASKS/**]
|
|
65
|
+
reads: [docs/**]
|
|
66
|
+
audit: true
|
|
67
|
+
check:
|
|
68
|
+
type: check
|
|
69
|
+
command: checks/preset-check.mjs
|
|
70
|
+
writes: [docs/09-PLANNING/TASKS/**]
|
|
71
|
+
reads: [docs/**]
|
|
72
|
+
audit: true
|
|
73
|
+
workbench:
|
|
74
|
+
panels: workbench/dashboard-panels.yaml
|
|
75
|
+
migrationQueueSchema: workbench/migration-queue.schema.json
|
|
76
|
+
evidence:
|
|
77
|
+
bundleDir: evidence
|
|
78
|
+
files:
|
|
79
|
+
session:
|
|
80
|
+
path: session.json
|
|
81
|
+
type: input-json
|
|
82
|
+
value: inputs.session
|
|
83
|
+
migratePlan:
|
|
84
|
+
path: migrate-plan.json
|
|
85
|
+
type: json
|
|
86
|
+
value: inputs.session.plan
|
|
87
|
+
normalCheck:
|
|
88
|
+
path: normal-check.json
|
|
89
|
+
type: json
|
|
90
|
+
value: inputs.session.checks.normal
|
|
91
|
+
strictCheck:
|
|
92
|
+
path: strict-check.json
|
|
93
|
+
type: json
|
|
94
|
+
value: inputs.session.checks.strict
|
|
95
|
+
migrateVerify:
|
|
96
|
+
path: migrate-verify.json
|
|
97
|
+
type: migration-verify
|
|
98
|
+
migrationLedger:
|
|
99
|
+
path: migration-ledger.json
|
|
100
|
+
type: migration-ledger
|
|
101
|
+
presetManifest:
|
|
102
|
+
path: preset-manifest.json
|
|
103
|
+
type: preset-manifest
|
|
104
|
+
presetAudit:
|
|
105
|
+
path: preset-audit.json
|
|
106
|
+
type: preset-audit
|
|
107
|
+
writeScope:
|
|
108
|
+
path: write-scope.json
|
|
109
|
+
type: write-scope
|
|
110
|
+
dashboardHash:
|
|
111
|
+
path: dashboard.hash.txt
|
|
112
|
+
type: dashboard-hash
|
|
113
|
+
targetGitStatus:
|
|
114
|
+
path: target-git-status.txt
|
|
115
|
+
type: target-git-status
|
|
116
|
+
targetCommit:
|
|
117
|
+
path: target-commit.txt
|
|
118
|
+
type: target-commit
|
|
119
|
+
harnessVersion:
|
|
120
|
+
path: harness-version.txt
|
|
121
|
+
type: harness-version
|
|
122
|
+
generatedAt:
|
|
123
|
+
path: generated-at.txt
|
|
124
|
+
type: generated-at
|
|
125
|
+
review:
|
|
126
|
+
required: true
|
|
127
|
+
materialFindingPolicy: block-open-p0-p2
|
|
128
|
+
audit:
|
|
129
|
+
manifestRequired: true
|
|
130
|
+
evidenceFiles: [preset-manifest.json, preset-audit.json, write-scope.json]
|
|
131
|
+
writeScopes:
|
|
132
|
+
taskArtifacts:
|
|
133
|
+
path: docs/09-PLANNING/TASKS/**
|
|
134
|
+
access: write
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
## Legacy Migration Preset Strategy
|
|
2
|
+
|
|
3
|
+
This preset keeps migration inside the Complex Task contract.
|
|
4
|
+
|
|
5
|
+
| Area | Rule |
|
|
6
|
+
| --- | --- |
|
|
7
|
+
| Write boundary | Do not rewrite historical task bodies unless the user explicitly confirms that phase. |
|
|
8
|
+
| Evidence source | Use `{{evidenceBundle}}/` as the handoff bundle. Absolute session paths are origin data only. |
|
|
9
|
+
| Target level | `{{migrationTargetLevel}}` |
|
|
10
|
+
| Achieved level | `{{migrationAchievedLevel}}` |
|
|
11
|
+
|
|
12
|
+
## Subagent Lane Table
|
|
13
|
+
|
|
14
|
+
Declare lanes before dispatching workers.
|
|
15
|
+
|
|
16
|
+
| Lane ID | Allowed globs | Forbidden globs | Shared file owner | Worktree / branch | Handoff path | Merge order | Verification command |
|
|
17
|
+
| --- | --- | --- | --- | --- | --- | --- | --- |
|
|
18
|
+
| coordinator | docs/09-PLANNING/TASKS/** | AGENTS.md, CLAUDE.md, docs/Harness-Ledger.md until closeout | coordinator | current | progress.md | 1 | harness check --profile target-project . |
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
## Legacy Migration Action Buckets
|
|
2
|
+
|
|
3
|
+
| Bucket | Count | Owner | Status | Next Action |
|
|
4
|
+
| --- | ---: | --- | --- | --- |
|
|
5
|
+
| warnings | {{warnings}} | coordinator | open | Triage before increasing target level |
|
|
6
|
+
| taskActions | {{taskActions}} | coordinator | open | Upgrade only current/reopened/current-evidence tasks |
|
|
7
|
+
| legacyResiduals | {{legacyResiduals}} | coordinator | open | Assign real owner before full cutover |
|
|
8
|
+
|
|
9
|
+
## Residual Policy
|
|
10
|
+
|
|
11
|
+
Residuals require reason, owner, trigger, next action, and reviewer. Placeholder owner `migration-owner` is not a real owner.
|
|
12
|
+
|
|
13
|
+
## Status Conflict Table
|
|
14
|
+
|
|
15
|
+
| Item | Competing Evidence | Chosen Classification | Confidence | Human Needed |
|
|
16
|
+
| --- | --- | --- | --- | --- |
|
|
17
|
+
| pending | session / SSoT / progress / git | pending | medium | yes |
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
## Legacy Migration Preset Gate
|
|
2
|
+
|
|
3
|
+
`migration-full-cutover` can only be claimed when the final session proves all gates:
|
|
4
|
+
|
|
5
|
+
- final session result is `complete`
|
|
6
|
+
- strict check passes
|
|
7
|
+
- `migrate-verify --full-cutover` passes
|
|
8
|
+
- warnings/actions/residuals/strictDeferred are zero
|
|
9
|
+
- dashboard evidence is readable
|
|
10
|
+
- review has no open P0/P1/P2 blocker
|
|
11
|
+
|
|
12
|
+
Current achieved level: `{{migrationAchievedLevel}}`.
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
## Legacy Migration Preset
|
|
2
|
+
|
|
3
|
+
This Complex Task uses the `{{preset}}` preset package. The preset only scaffolds the migration task and records evidence at creation time. It does not run migration, rewrite historical task bodies, stage files, or commit changes.
|
|
4
|
+
|
|
5
|
+
- Preset version: `{{presetVersion}}`
|
|
6
|
+
- Baseline session: `{{evidenceBundle}}/session.json`
|
|
7
|
+
- Migration plan: `{{evidenceBundle}}/migrate-plan.json`
|
|
8
|
+
- Strict deferred: {{strictDeferred}}
|
|
9
|
+
- Full-cutover claim allowed now: {{fullCutoverClaimAllowed}}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
## Legacy Migration Preset Flow
|
|
2
|
+
|
|
3
|
+
```mermaid
|
|
4
|
+
flowchart TD
|
|
5
|
+
A["Recorded migrate-run session"] --> B["Create Complex Task preset"]
|
|
6
|
+
B --> C["Baseline usable"]
|
|
7
|
+
C --> D{"User confirms deeper cutover?"}
|
|
8
|
+
D -- no --> E["Keep residuals owned"]
|
|
9
|
+
D -- yes --> F["Current work cutover"]
|
|
10
|
+
F --> G["Historical consolidation"]
|
|
11
|
+
G --> H["Strict / full-cutover verify"]
|
|
12
|
+
```
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schemaVersion": "legacy-migration-queue/v2",
|
|
3
|
+
"staticDashboardRole": "evidence-snapshot",
|
|
4
|
+
"workbenchRole": "human-confirmation-control-plane",
|
|
5
|
+
"requiredItemFields": [
|
|
6
|
+
"taskId",
|
|
7
|
+
"phase",
|
|
8
|
+
"mechanicalState",
|
|
9
|
+
"semanticState",
|
|
10
|
+
"evidenceSources",
|
|
11
|
+
"reviewState",
|
|
12
|
+
"confirmationState",
|
|
13
|
+
"owner",
|
|
14
|
+
"residual"
|
|
15
|
+
],
|
|
16
|
+
"allowedPhases": [
|
|
17
|
+
"baseline",
|
|
18
|
+
"mechanical-scaffold",
|
|
19
|
+
"semantic-reconstruction",
|
|
20
|
+
"cutover-review"
|
|
21
|
+
],
|
|
22
|
+
"semanticRule": "Semantic reconstruction requires evidenceSources and cannot be marked complete by scaffold-only automation."
|
|
23
|
+
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
id: lesson-sedimentation
|
|
2
|
+
version: 1
|
|
3
|
+
purpose: Create a follow-up task for reviewing and sedimenting an accepted lesson candidate into a promoted detail doc.
|
|
4
|
+
compatibleBudgets: [standard, complex]
|
|
5
|
+
localeSupport: [en-US, zh-CN]
|
|
6
|
+
task:
|
|
7
|
+
kind: lesson-sedimentation
|
|
8
|
+
projectLevelOnly: true
|
|
9
|
+
entrypoints:
|
|
10
|
+
newTask:
|
|
11
|
+
type: template
|
|
12
|
+
writes: [docs/09-PLANNING/TASKS/**]
|
|
13
|
+
reads: [docs/09-PLANNING/TASKS/**/lesson_candidates.md]
|
|
14
|
+
audit: true
|
|
15
|
+
templates:
|
|
16
|
+
prompt: templates/prompt.md
|
|
17
|
+
writeScopes:
|
|
18
|
+
taskDocs:
|
|
19
|
+
path: docs/09-PLANNING/TASKS/**
|
|
20
|
+
access: write
|
|
21
|
+
audit:
|
|
22
|
+
manifestRequired: true
|
|
23
|
+
evidenceFiles: [preset-audit.json]
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
You are executing a lesson sedimentation follow-up task.
|
|
2
|
+
|
|
3
|
+
Source task: {{sourceTaskId}}
|
|
4
|
+
Source candidate: {{candidateId}} - {{candidateTitle}}
|
|
5
|
+
Follow-up task: {{followUpTaskId}}
|
|
6
|
+
|
|
7
|
+
Candidate scope: {{candidateScope}}
|
|
8
|
+
Candidate module key: {{candidateModuleKey}}
|
|
9
|
+
Detail artifact: {{detailArtifact}}
|
|
10
|
+
Boundary reason: {{boundaryReason}}
|
|
11
|
+
Why it might matter: {{whyItMightMatter}}
|
|
12
|
+
Promotion target: {{promotionTarget}}
|
|
13
|
+
Conflict check: {{conflictCheck}}
|
|
14
|
+
Required standard update: {{requiredStandardUpdate}}
|
|
15
|
+
|
|
16
|
+
Instructions:
|
|
17
|
+
|
|
18
|
+
1. Read the source task, its review, findings, progress, lesson_candidates.md, and the task-local detail artifact.
|
|
19
|
+
2. Classify whether the lesson is task-local, module-local, or global; if module-local, preserve the module key/path.
|
|
20
|
+
3. Check for conflicts with existing lesson candidates, promoted lesson detail docs, public docs, and relevant standards.
|
|
21
|
+
4. Propose the smallest diff needed to preserve the lesson.
|
|
22
|
+
5. Do not write a shared Lessons table; accepted candidates become promoted lesson detail docs or target standard updates.
|
|
23
|
+
6. Record evidence and residual risks in the follow-up task before asking for review.
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
id: module
|
|
2
|
+
version: 1
|
|
3
|
+
purpose: Create module-scoped tasks with module context entry points and auditable preset metadata.
|
|
4
|
+
compatibleBudgets: [simple, standard, complex]
|
|
5
|
+
localeSupport: [en-US, zh-CN]
|
|
6
|
+
task:
|
|
7
|
+
kind: module-task
|
|
8
|
+
entrypoints:
|
|
9
|
+
newTask:
|
|
10
|
+
type: template
|
|
11
|
+
writes: [docs/09-PLANNING/**]
|
|
12
|
+
audit: true
|
|
13
|
+
templates:
|
|
14
|
+
taskPlanAppend: templates/task_plan.append.md
|
|
15
|
+
executionStrategyAppend: templates/execution_strategy.append.md
|
|
16
|
+
templateValues:
|
|
17
|
+
moduleKey:
|
|
18
|
+
from: task.moduleKey
|
|
19
|
+
audit:
|
|
20
|
+
manifestRequired: true
|
|
21
|
+
evidenceFiles: [preset-audit.json]
|
|
22
|
+
writeScopes:
|
|
23
|
+
planningDocs:
|
|
24
|
+
path: docs/09-PLANNING/**
|
|
25
|
+
access: write
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
## Module Preset Strategy
|
|
2
|
+
|
|
3
|
+
| Field | Value |
|
|
4
|
+
| --- | --- |
|
|
5
|
+
| Module Key | {{moduleKey}} |
|
|
6
|
+
| Module Plan | docs/09-PLANNING/MODULES/{{moduleKey}}/module_plan.md |
|
|
7
|
+
|
|
8
|
+
Keep shared module decisions in the module plan or module context files. Keep task-specific evidence in this task directory.
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
## Module Preset
|
|
2
|
+
|
|
3
|
+
This module task was created through the `module` preset.
|
|
4
|
+
|
|
5
|
+
| Field | Value |
|
|
6
|
+
| --- | --- |
|
|
7
|
+
| Module Key | {{moduleKey}} |
|
|
8
|
+
|
|
9
|
+
## Module Context Entry Points
|
|
10
|
+
|
|
11
|
+
Read these module-level entry points before changing shared module behavior. Continue into narrower context only when the task surface requires it.
|
|
12
|
+
|
|
13
|
+
| Reference | Path | Why / When |
|
|
14
|
+
| --- | --- | --- |
|
|
15
|
+
| Module brief | docs/09-PLANNING/MODULES/{{moduleKey}}/brief.md | Start here for the module purpose and current scope. |
|
|
16
|
+
| Module plan | docs/09-PLANNING/MODULES/{{moduleKey}}/module_plan.md | Use this for module steps, active task links, and handoff state. |
|
|
17
|
+
| Module visual map | docs/09-PLANNING/MODULES/{{moduleKey}}/visual_map.md | Inspect when the change affects module sequencing or dependencies. |
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
id: standard-task
|
|
2
|
+
version: 1
|
|
3
|
+
purpose: Create a standard task using the generic declarative preset engine.
|
|
4
|
+
compatibleBudgets: [standard, complex]
|
|
5
|
+
localeSupport: [en-US, zh-CN]
|
|
6
|
+
task:
|
|
7
|
+
kind: standard-task
|
|
8
|
+
defaultTaskId: standard-task
|
|
9
|
+
entrypoints:
|
|
10
|
+
newTask:
|
|
11
|
+
type: template
|
|
12
|
+
writes: [docs/09-PLANNING/TASKS/**]
|
|
13
|
+
audit: true
|
|
14
|
+
templates:
|
|
15
|
+
taskPlanAppend: templates/task_plan.append.md
|
|
16
|
+
templateValues:
|
|
17
|
+
title:
|
|
18
|
+
from: task.title
|
|
19
|
+
evidence:
|
|
20
|
+
bundleDir: artifacts/preset
|
|
21
|
+
files:
|
|
22
|
+
presetAudit:
|
|
23
|
+
path: preset-audit.json
|
|
24
|
+
type: preset-audit
|
|
25
|
+
audit:
|
|
26
|
+
manifestRequired: true
|
|
27
|
+
evidenceFiles: [preset-audit.json]
|
|
28
|
+
writeScopes:
|
|
29
|
+
taskDocs:
|
|
30
|
+
path: docs/09-PLANNING/TASKS/**
|
|
31
|
+
access: write
|
|
@@ -102,7 +102,7 @@ Reviewer 必须以找问题为目标,而不是证明实现正确。
|
|
|
102
102
|
- Progress:
|
|
103
103
|
- Findings:
|
|
104
104
|
- Regression SSoT:
|
|
105
|
-
-
|
|
105
|
+
- Lesson Candidates / Detail Docs:
|
|
106
106
|
- Walkthrough:
|
|
107
107
|
```
|
|
108
108
|
|
|
@@ -150,7 +150,7 @@ Review loop 的固定执行形态:
|
|
|
150
150
|
- `progress.md` 记录审查发生的时间和处理结果摘要
|
|
151
151
|
- `findings.md` 记录审查中产生的技术决策或研究发现
|
|
152
152
|
- `Regression-SSoT.md` 记录新增或调整的 regression surface
|
|
153
|
-
- `
|
|
153
|
+
- `lesson_candidates.md` 和 `docs/01-GOVERNANCE/lessons/*.md` 记录可复用的流程、架构或标准改进建议
|
|
154
154
|
- `walkthrough` 收口时引用 `review.md` 的 material finding 状态和 no-finding 结论
|
|
155
155
|
- `Harness Ledger` 记录本轮是否完成 review report
|
|
156
156
|
|
|
@@ -40,7 +40,7 @@ AGENTS.md 只包含两类内容:
|
|
|
40
40
|
先读 docs/11-REFERENCE/harness-ledger-standard.md
|
|
41
41
|
|
|
42
42
|
- Walkthrough / Closeout / Lessons 收口:
|
|
43
|
-
先读 docs/11-REFERENCE/walkthrough-standard.md,然后读 docs/
|
|
43
|
+
先读 docs/11-REFERENCE/walkthrough-standard.md,然后读 docs/10-WALKTHROUGH/Closeout-SSoT.md、任务本地 lesson_candidates.md 和 docs/01-GOVERNANCE/lessons/
|
|
44
44
|
|
|
45
45
|
- 开发执行 / 回写流程:
|
|
46
46
|
先读 docs/11-REFERENCE/execution-workflow-standard.md
|
|
@@ -100,7 +100,7 @@ CLAUDE.md 控制在 **10-50 行**。它只做 Claude Code 兼容入口,不应
|
|
|
100
100
|
- agent 做后端重构时,不会被前端规范干扰
|
|
101
101
|
- agent 做测试时,不会被文档治理规则分心
|
|
102
102
|
- 每种任务类型只加载它需要的上下文
|
|
103
|
-
- agent 写 walkthrough 时会被入口显式路由回
|
|
103
|
+
- agent 写 walkthrough 时会被入口显式路由回 lesson candidate / detail doc 流程,但 Lessons 全文不会塞进 AGENTS.md
|
|
104
104
|
|
|
105
105
|
这跟 OpenAI 在 Harness Engineering 实践中得出的结论一致:给 agent 一张地图,不给一本千页手册。
|
|
106
106
|
|
|
@@ -39,7 +39,7 @@ Define who breaks roadmap work into feature blocks:
|
|
|
39
39
|
| Level | Owner | Artifact | Rule |
|
|
40
40
|
|-------|-------|----------|------|
|
|
41
41
|
| Roadmap | [owner] | [SSoT / issue tracker] | [how priority is chosen] |
|
|
42
|
-
| Feature block | [owner] | `Delivery-SSoT.md` /
|
|
42
|
+
| Feature block | [owner] | `Delivery-SSoT.md` / generated Harness Ledger | [how blocks are bounded] |
|
|
43
43
|
| Task | [owner] | `docs/09-PLANNING/TASKS/<task>/task_plan.md` | [who can start work] |
|
|
44
44
|
| Review | [owner] | `review.md` / PR review | [required reviewers] |
|
|
45
45
|
| Integration | [owner] | PR / release branch / integration branch | [merge order] |
|
|
@@ -50,14 +50,14 @@ Define who breaks roadmap work into feature blocks:
|
|
|
50
50
|
|
|
51
51
|
Use when one human directs multiple agents across worktrees.
|
|
52
52
|
|
|
53
|
-
- One
|
|
53
|
+
- One generated Harness Ledger is enough for ordinary task lifecycle tracking.
|
|
54
54
|
- Worktree concurrency is central.
|
|
55
55
|
- Merge order is human-decided.
|
|
56
56
|
- Cross-task conflicts are managed by task ownership and shared-file notices.
|
|
57
57
|
|
|
58
58
|
**模块并行扩展**:当项目有 2+ 个可独立演进的功能域时,启用模块并行开发(见 `references/module-parallel-standard.md`)。此时:
|
|
59
59
|
|
|
60
|
-
- Module Registry
|
|
60
|
+
- Module Registry 管模块边界;Harness Ledger 生成全局任务生命周期索引
|
|
61
61
|
- 每个模块一个长期 worktree(`codex/<module-key>`)
|
|
62
62
|
- 模块间通过 write scope 声明避免冲突
|
|
63
63
|
- 跨模块修改走独立的基础设施 task
|
|
@@ -8,12 +8,11 @@
|
|
|
8
8
|
|
|
9
9
|
```
|
|
10
10
|
docs/
|
|
11
|
-
├── Harness-Ledger.md ←
|
|
11
|
+
├── Harness-Ledger.md ← CLI 生成的任务生命周期总账
|
|
12
12
|
├── 00-RAW-PRDS/ ← 原始需求文档、PRD、用户故事
|
|
13
13
|
│ └── _archive/ ← 本层历史文档归档(如该层会增长)
|
|
14
14
|
├── 01-GOVERNANCE/ ← 项目治理规则、决策记录、经验沉淀
|
|
15
|
-
│ ├──
|
|
16
|
-
│ ├── lessons/ ← 具体沉淀内容
|
|
15
|
+
│ ├── lessons/ ← promoted lesson 详情文档
|
|
17
16
|
│ └── _archive/ ← 已处理条目归档
|
|
18
17
|
├── 02-PRODUCT/ ← 产品设计、用户流程、功能规格
|
|
19
18
|
│ └── _archive/ ← 本层历史文档归档(如该层会增长)
|
|
@@ -34,9 +33,8 @@ docs/
|
|
|
34
33
|
│ │ └── _task-template/ ← 任务模板
|
|
35
34
|
│ ├── MODULES/ ← 模块并行开发计划(启用时)
|
|
36
35
|
│ │ └── _archive/ ← 已完成 / 暂停过久模块归档
|
|
37
|
-
│ ├── _archive/ ←
|
|
36
|
+
│ ├── _archive/ ← 历史任务、旧生命周期表明细、过期排期归档
|
|
38
37
|
│ ├── Delivery-SSoT.md ← 多人 / 多仓 / 传统流程下的交付排期和集成顺序
|
|
39
|
-
│ └── [Feature-SSoT].md ← 实施排期表
|
|
40
38
|
├── 10-WALKTHROUGH/ ← Walkthrough 收口记录与 Closeout SSoT
|
|
41
39
|
│ └── _archive/ ← 历史 walkthrough 批量归档(迁移 / 年度收束时)
|
|
42
40
|
├── 11-REFERENCE/ ← 标准文件(agent 按需加载)
|
|
@@ -133,11 +131,11 @@ Checker 规则:
|
|
|
133
131
|
|
|
134
132
|
| 对象 | 触发条件 | 归档位置 |
|
|
135
133
|
|------|----------|----------|
|
|
136
|
-
| Feature
|
|
134
|
+
| Legacy Feature / Private Feature 生命周期表 | 迁移到 ledger-only 版本 | `09-PLANNING/_archive/` |
|
|
137
135
|
| Delivery SSoT | 集成 wave 结束或 completed/superseded blocks 超过 20 条 | `09-PLANNING/_archive/` |
|
|
138
136
|
| Module Registry / module_plan | 模块 completed 或 paused 超过 60 天 | `09-PLANNING/MODULES/_archive/<key>/` |
|
|
139
137
|
| Regression SSoT | gate 废弃或长期不再运行 | `05-TEST-QA/_archive/` |
|
|
140
|
-
|
|
|
138
|
+
| Lesson detail docs | merged/rejected/superseded 详情文档超过 20 条 | `01-GOVERNANCE/_archive/` |
|
|
141
139
|
| Harness Ledger | closed/superseded 超过 50 条 | `01-GOVERNANCE/_archive/` |
|
|
142
140
|
| Walkthrough | 年度/阶段迁移或目录过大 | `10-WALKTHROUGH/_archive/` |
|
|
143
141
|
|
|
@@ -151,6 +149,7 @@ Checker 规则:
|
|
|
151
149
|
| execution-workflow-standard.md | 开发执行流程、commit 规范、PR 流程 | 是 |
|
|
152
150
|
| delivery-operating-model-standard.md | 工程组织形态、feature block 拆分、跨仓/团队协作模型 | 是 |
|
|
153
151
|
| repo-governance-standard.md | repo platform、branch protection、PR policy、required checks、worktree concurrency | 是 |
|
|
152
|
+
| pull-request-standard.md | PR 描述结构、中英双语要求、版本影响、验证、审查证据、残余风险和引用 | 是 |
|
|
154
153
|
| ci-cd-standard.md | CI/CD profile、workflow、required checks、release/CD residual | 是 |
|
|
155
154
|
| long-running-task-standard.md | 长程任务合同、连续执行权限、review loop、停止条件 | 是 |
|
|
156
155
|
| adversarial-review-standard.md | 对抗性 review 报告、finding 分级、no-finding 结论、residual 路由 | 是 |
|