coding-agent-harness 1.0.1 → 1.0.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +44 -0
- package/CONTRIBUTING.md +98 -0
- package/README.en-US.md +14 -0
- package/README.md +230 -80
- package/README.zh-CN.md +290 -0
- package/SKILL.md +132 -198
- package/docs-release/README.md +80 -9
- package/docs-release/architecture/overview.md +298 -28
- package/docs-release/architecture/overview.zh-CN.md +292 -0
- package/docs-release/assets/dashboard-overview.png +0 -0
- package/docs-release/assets/harness-architecture.svg +163 -0
- package/docs-release/assets/harness-workflow.svg +64 -0
- package/docs-release/guides/agent-installation.en-US.md +237 -0
- package/docs-release/guides/agent-installation.md +149 -27
- package/docs-release/guides/contributing.md +100 -0
- package/docs-release/guides/contributing.zh-CN.md +99 -0
- package/docs-release/guides/document-audience-and-surfaces.en-US.md +113 -0
- package/docs-release/guides/document-audience-and-surfaces.md +113 -0
- package/docs-release/guides/full-legacy-migration-subagent-strategy.md +334 -0
- package/docs-release/guides/full-legacy-migration-subagent-strategy.zh-CN.md +334 -0
- package/docs-release/guides/legacy-migration-agent-prompt.md +373 -0
- package/docs-release/guides/legacy-migration-agent-prompt.zh-CN.md +350 -0
- package/docs-release/guides/migration-playbook.en-US.md +324 -0
- package/docs-release/guides/migration-playbook.md +328 -0
- package/docs-release/guides/parent-control-repository-pattern.en-US.md +254 -0
- package/docs-release/guides/parent-control-repository-pattern.md +254 -0
- package/docs-release/guides/preset-development.md +214 -0
- package/docs-release/guides/repository-operating-models.en-US.md +197 -0
- package/docs-release/guides/repository-operating-models.md +197 -0
- package/docs-release/guides/task-state-machine.en-US.md +207 -0
- package/docs-release/guides/task-state-machine.md +214 -0
- package/docs-release/intl/README.md +15 -0
- package/docs-release/intl/de-DE.md +18 -0
- package/docs-release/intl/en-US.md +18 -0
- package/docs-release/intl/es-ES.md +18 -0
- package/docs-release/intl/fr-FR.md +18 -0
- package/docs-release/intl/ja-JP.md +18 -0
- package/docs-release/intl/ko-KR.md +18 -0
- package/docs-release/intl/zh-CN.md +18 -0
- package/examples/minimal-project/docs/09-PLANNING/TASKS/demo-task/brief.md +13 -0
- package/examples/minimal-project/docs/09-PLANNING/TASKS/demo-task/findings.md +7 -0
- package/examples/minimal-project/docs/09-PLANNING/TASKS/demo-task/lesson_candidates.md +24 -0
- package/examples/minimal-project/docs/09-PLANNING/TASKS/demo-task/progress.md +1 -1
- package/examples/minimal-project/docs/09-PLANNING/TASKS/demo-task/task_plan.md +4 -2
- package/examples/minimal-project/docs/09-PLANNING/TASKS/demo-task/{visual_roadmap.md → visual_map.md} +9 -1
- package/package.json +10 -3
- package/presets/legacy-migration/checks/preset-check.mjs +3 -0
- package/presets/legacy-migration/preset.yaml +134 -0
- package/presets/legacy-migration/scripts/plan-work-queue.mjs +4 -0
- package/presets/legacy-migration/scripts/scaffold-task-contracts.mjs +4 -0
- package/presets/legacy-migration/templates/execution_strategy.append.md +18 -0
- package/presets/legacy-migration/templates/findings.seed.md +17 -0
- package/presets/legacy-migration/templates/review.seed.md +12 -0
- package/presets/legacy-migration/templates/task_plan.append.md +9 -0
- package/presets/legacy-migration/templates/visual_map.append.md +12 -0
- package/presets/legacy-migration/workbench/dashboard-panels.yaml +2 -0
- package/presets/legacy-migration/workbench/migration-queue.schema.json +23 -0
- package/presets/lesson-sedimentation/preset.yaml +23 -0
- package/presets/lesson-sedimentation/templates/prompt.md +23 -0
- package/presets/module/preset.yaml +25 -0
- package/presets/module/templates/execution_strategy.append.md +8 -0
- package/presets/module/templates/task_plan.append.md +17 -0
- package/presets/standard-task/preset.yaml +31 -0
- package/presets/standard-task/templates/task_plan.append.md +7 -0
- package/references/adversarial-review-standard.md +2 -2
- package/references/agents-md-pattern.md +5 -5
- package/references/delivery-operating-model-standard.md +3 -3
- package/references/docs-directory-standard.md +53 -10
- package/references/external-source-intake-standard.md +75 -0
- package/references/harness-ledger.md +53 -94
- package/references/legacy-12-phase-bootstrap.md +41 -0
- package/references/lessons-governance.md +100 -88
- package/references/module-parallel-standard.md +14 -14
- package/references/planning-loop.md +51 -7
- package/references/project-onboarding-audit.md +10 -0
- package/references/pull-request-standard.md +118 -0
- package/references/repo-governance-standard.md +12 -1
- package/references/review-routing-standard.md +7 -1
- package/references/ssot-governance.md +67 -59
- package/references/taskr-gap-analysis.md +600 -0
- package/references/testing-standard.md +50 -0
- package/references/walkthrough-closeout.md +10 -9
- package/scripts/check-harness.mjs +111 -331
- package/scripts/commands/dashboard-command.mjs +67 -0
- package/scripts/commands/migration-command.mjs +96 -0
- package/scripts/commands/preset-command.mjs +73 -0
- package/scripts/commands/task-command.mjs +327 -0
- package/scripts/harness.mjs +106 -20
- package/scripts/lib/capability-registry.mjs +591 -0
- package/scripts/lib/check-module-parallel.mjs +237 -0
- package/scripts/lib/check-profiles.mjs +418 -0
- package/scripts/lib/check-task-contracts.mjs +47 -0
- package/scripts/lib/core-shared.mjs +196 -0
- package/scripts/lib/dashboard-data.mjs +412 -0
- package/scripts/lib/dashboard-workbench.mjs +257 -0
- package/scripts/lib/dashboard-writer.mjs +107 -4
- package/scripts/lib/git-status-summary.mjs +46 -0
- package/scripts/lib/governance-index-generator.mjs +174 -0
- package/scripts/lib/governance-sync.mjs +514 -0
- package/scripts/lib/governance-table-boundary.mjs +175 -0
- package/scripts/lib/harness-core.mjs +15 -1318
- package/scripts/lib/lesson-maintenance.mjs +152 -0
- package/scripts/lib/markdown-utils.mjs +158 -0
- package/scripts/lib/migration-planner.mjs +478 -0
- package/scripts/lib/migration-support.mjs +312 -0
- package/scripts/lib/preset-audit-contracts.mjs +37 -0
- package/scripts/lib/preset-engine.mjs +497 -0
- package/scripts/lib/preset-registry.mjs +627 -0
- package/scripts/lib/preset-resource-contracts.mjs +83 -0
- package/scripts/lib/review-confirm-git-gate.mjs +248 -0
- package/scripts/lib/status-dashboard-renderer.mjs +102 -0
- package/scripts/lib/subagent-authorization-audit.mjs +196 -0
- package/scripts/lib/task-completion-consistency.mjs +16 -0
- package/scripts/lib/task-index.mjs +93 -0
- package/scripts/lib/task-lesson-candidates.mjs +242 -0
- package/scripts/lib/task-lesson-sedimentation.mjs +326 -0
- package/scripts/lib/task-lifecycle/review-confirm.mjs +101 -0
- package/scripts/lib/task-lifecycle/review-gates.mjs +70 -0
- package/scripts/lib/task-lifecycle/text-utils.mjs +24 -0
- package/scripts/lib/task-lifecycle.mjs +649 -0
- package/scripts/lib/task-review-model.mjs +469 -0
- package/scripts/lib/task-scanner.mjs +576 -0
- package/scripts/lib/task-tombstone-commands.mjs +140 -0
- package/scripts/postinstall.mjs +14 -0
- package/skills/preset-creator/SKILL.md +179 -0
- package/skills/preset-creator/references/complex-task-skeleton/README.md +31 -0
- package/skills/preset-creator/references/complex-task-skeleton/artifacts/INDEX.md +12 -0
- package/skills/preset-creator/references/complex-task-skeleton/brief.md +32 -0
- package/skills/preset-creator/references/complex-task-skeleton/execution_strategy.md +71 -0
- package/skills/preset-creator/references/complex-task-skeleton/findings.md +24 -0
- package/skills/preset-creator/references/complex-task-skeleton/lesson_candidates.md +70 -0
- package/skills/preset-creator/references/complex-task-skeleton/long-running-task-contract.md +76 -0
- package/skills/preset-creator/references/complex-task-skeleton/progress.md +33 -0
- package/skills/preset-creator/references/complex-task-skeleton/references/INDEX.md +13 -0
- package/skills/preset-creator/references/complex-task-skeleton/review.md +107 -0
- package/skills/preset-creator/references/complex-task-skeleton/task_plan.md +111 -0
- package/{templates/planning/visual_roadmap.md → skills/preset-creator/references/complex-task-skeleton/visual_map.md} +24 -2
- package/skills/preset-creator/references/preset-package-skeleton.md +296 -0
- package/templates/AGENTS.md.template +51 -36
- package/templates/architecture/Architecture-SSoT.md +21 -0
- package/templates/architecture/README.md +49 -0
- package/templates/architecture/critical-flows.md +22 -0
- package/templates/architecture/local-repo-context.md +20 -0
- package/templates/architecture/service-catalog.md +17 -0
- package/templates/architecture/services/service-template.md +31 -0
- package/templates/architecture/system-map.md +22 -0
- package/templates/dashboard/assets/app-src/00-state.js +42 -0
- package/templates/dashboard/assets/app-src/10-router.js +77 -0
- package/templates/dashboard/assets/app-src/20-overview.js +241 -0
- package/templates/dashboard/assets/app-src/30-tasks.js +409 -0
- package/templates/dashboard/assets/app-src/35-task-detail.js +246 -0
- package/templates/dashboard/assets/app-src/40-modules.js +58 -0
- package/templates/dashboard/assets/app-src/45-review.js +347 -0
- package/templates/dashboard/assets/app-src/50-migration.js +183 -0
- package/templates/dashboard/assets/app-src/60-shared.js +61 -0
- package/templates/dashboard/assets/app-src/90-bindings.js +524 -0
- package/templates/dashboard/assets/app.css +3107 -300
- package/templates/dashboard/assets/app.css.manifest.json +9 -0
- package/templates/dashboard/assets/app.js +2068 -306
- package/templates/dashboard/assets/app.manifest.json +12 -0
- package/templates/dashboard/assets/css-src/00-foundation.css +342 -0
- package/templates/dashboard/assets/css-src/10-panels-flow.css +236 -0
- package/templates/dashboard/assets/css-src/20-briefs-controls.css +398 -0
- package/templates/dashboard/assets/css-src/30-task-index.css +739 -0
- package/templates/dashboard/assets/css-src/35-review-workspace.css +507 -0
- package/templates/dashboard/assets/css-src/40-detail-modules-migration.css +427 -0
- package/templates/dashboard/assets/css-src/50-responsive-overrides.css +551 -0
- package/templates/dashboard/assets/i18n.js +531 -44
- package/templates/dashboard/assets/mermaid-renderer.js +58 -8
- package/templates/development/README.md +52 -0
- package/templates/development/codebase-map.md +11 -0
- package/templates/development/cross-repo-debugging.md +18 -0
- package/templates/development/external-context/service-template.md +33 -0
- package/templates/development/external-source-packs/README.md +24 -0
- package/templates/development/external-source-packs/digest-template.md +28 -0
- package/templates/development/local-setup.md +16 -0
- package/templates/development/stubs-and-mocks.md +11 -0
- package/templates/integrations/README.md +40 -0
- package/templates/integrations/api-contract.md +42 -0
- package/templates/integrations/event-contract.md +46 -0
- package/templates/integrations/third-party/vendor-template.md +42 -0
- package/templates/integrations/webhook-contract.md +41 -0
- package/templates/ledger/Harness-Ledger.md +13 -25
- package/templates/lessons/lesson-arch-process-change.md +1 -1
- package/templates/lessons/lesson-new-doc.md +1 -1
- package/templates/lessons/lesson-ref-change.md +1 -1
- package/templates/planning/brief.md +32 -0
- package/templates/planning/execution_strategy.md +31 -0
- package/templates/planning/lesson_candidates.md +70 -0
- package/templates/planning/long-running-task-contract.md +7 -0
- package/templates/planning/module_brief.md +25 -0
- package/templates/planning/module_session_prompt.md +6 -0
- package/templates/planning/optional/artifacts/INDEX.md +3 -3
- package/templates/planning/optional/references/INDEX.md +3 -3
- package/templates/planning/review.md +59 -0
- package/templates/planning/task_plan.md +40 -15
- package/templates/planning/visual_map.md +50 -0
- package/templates/reference/docs-library-standard.md +31 -0
- package/templates/reference/execution-workflow-standard.md +5 -2
- package/templates/reference/external-source-intake-standard.md +82 -0
- package/templates/reference/harness-ledger-standard.md +1 -0
- package/templates/reference/pull-request-standard.md +80 -0
- package/templates/reference/repo-governance-standard.md +8 -5
- package/templates/reference/review-routing-standard.md +6 -0
- package/templates/reference/walkthrough-standard.md +3 -1
- package/templates/verifier/verifier-output.md +1 -1
- package/templates/walkthrough/walkthrough-template.md +2 -2
- package/templates-zh-CN/AGENTS.md.template +73 -70
- package/templates-zh-CN/architecture/Architecture-SSoT.md +21 -0
- package/templates-zh-CN/architecture/README.md +51 -0
- package/templates-zh-CN/architecture/critical-flows.md +24 -0
- package/templates-zh-CN/architecture/local-repo-context.md +20 -0
- package/templates-zh-CN/architecture/service-catalog.md +17 -0
- package/templates-zh-CN/architecture/services/service-template.md +31 -0
- package/templates-zh-CN/architecture/system-map.md +22 -0
- package/templates-zh-CN/development/README.md +54 -0
- package/templates-zh-CN/development/codebase-map.md +11 -0
- package/templates-zh-CN/development/cross-repo-debugging.md +18 -0
- package/templates-zh-CN/development/external-context/service-template.md +33 -0
- package/templates-zh-CN/development/external-source-packs/README.md +24 -0
- package/templates-zh-CN/development/external-source-packs/digest-template.md +28 -0
- package/templates-zh-CN/development/local-setup.md +16 -0
- package/templates-zh-CN/development/stubs-and-mocks.md +11 -0
- package/templates-zh-CN/integrations/README.md +42 -0
- package/templates-zh-CN/integrations/api-contract.md +42 -0
- package/templates-zh-CN/integrations/event-contract.md +46 -0
- package/templates-zh-CN/integrations/third-party/vendor-template.md +42 -0
- package/templates-zh-CN/integrations/webhook-contract.md +41 -0
- package/templates-zh-CN/ledger/Harness-Ledger.md +17 -40
- package/templates-zh-CN/planning/brief.md +32 -0
- package/templates-zh-CN/planning/execution_strategy.md +30 -0
- package/templates-zh-CN/planning/lesson_candidates.md +70 -0
- package/templates-zh-CN/planning/long-running-task-contract.md +1 -1
- package/templates-zh-CN/planning/module_brief.md +25 -0
- package/templates-zh-CN/planning/module_plan.md +2 -2
- package/templates-zh-CN/planning/module_session_prompt.md +4 -3
- package/templates-zh-CN/planning/review.md +59 -1
- package/templates-zh-CN/planning/task_plan.md +37 -11
- package/templates-zh-CN/planning/{visual_roadmap.md → visual_map.md} +21 -2
- package/templates-zh-CN/reference/adversarial-review-standard.md +1 -1
- package/templates-zh-CN/reference/docs-library-standard.md +36 -1
- package/templates-zh-CN/reference/execution-workflow-standard.md +10 -2
- package/templates-zh-CN/reference/external-source-intake-standard.md +82 -0
- package/templates-zh-CN/reference/harness-ledger-standard.md +7 -4
- package/templates-zh-CN/reference/pull-request-standard.md +106 -0
- package/templates-zh-CN/reference/repo-governance-standard.md +4 -1
- package/templates-zh-CN/reference/review-routing-standard.md +8 -1
- package/templates-zh-CN/reference/walkthrough-standard.md +6 -5
- package/templates-zh-CN/walkthrough/Closeout-SSoT.md +2 -2
- package/templates-zh-CN/walkthrough/walkthrough-template.md +2 -2
- package/scripts/smoke-dashboard.mjs +0 -70
- package/scripts/test-harness.mjs +0 -483
- package/templates/ssot/Feature-SSoT.md +0 -43
- package/templates/ssot/Lessons-SSoT.md +0 -44
- package/templates-zh-CN/dashboard/assets/app.css +0 -399
- package/templates-zh-CN/dashboard/assets/app.js +0 -435
- package/templates-zh-CN/dashboard/assets/i18n.js +0 -47
- package/templates-zh-CN/dashboard/assets/markdown-reader.js +0 -116
- package/templates-zh-CN/dashboard/assets/mermaid-renderer.js +0 -59
- package/templates-zh-CN/dashboard/index.html +0 -18
- package/templates-zh-CN/ssot/Feature-SSoT.md +0 -49
- package/templates-zh-CN/ssot/Lessons-SSoT.md +0 -49
|
@@ -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
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
# {{TASK_TITLE}} - Lesson Candidates
|
|
2
|
+
|
|
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
|
+
|
|
5
|
+
## Candidate Status
|
|
6
|
+
|
|
7
|
+
| Field | Value |
|
|
8
|
+
| --- | --- |
|
|
9
|
+
| Schema version | lesson-candidate-v1 |
|
|
10
|
+
| Task-level status | pending-review |
|
|
11
|
+
| Review gate | candidate-file-present |
|
|
12
|
+
| Review decision | pending-human-review |
|
|
13
|
+
| Promotion state | not-promoted |
|
|
14
|
+
| Closeout token | pending |
|
|
15
|
+
| Source task | {{TASK_ID}} |
|
|
16
|
+
| Owner | coordinator |
|
|
17
|
+
| Last updated | {{DATE}} |
|
|
18
|
+
|
|
19
|
+
## Schema
|
|
20
|
+
|
|
21
|
+
Allowed task-level status:
|
|
22
|
+
|
|
23
|
+
- `missing`: candidate file is absent.
|
|
24
|
+
- `pending-review`: candidate file exists, but human decision is not complete.
|
|
25
|
+
- `no-candidate-accepted`: human accepted the agent's no-candidate reason.
|
|
26
|
+
- `needs-promotion`: at least one candidate is queued for governance promotion.
|
|
27
|
+
- `promoted`: all accepted candidates were promoted to the agreed governance target.
|
|
28
|
+
- `rejected`: all candidates were rejected or archived with reasons.
|
|
29
|
+
|
|
30
|
+
Allowed row status:
|
|
31
|
+
|
|
32
|
+
- `ready-for-review`: agent believes this candidate may matter.
|
|
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
|
+
- `rejected`: human rejected the candidate with a reason.
|
|
36
|
+
|
|
37
|
+
Aggregation rule:
|
|
38
|
+
|
|
39
|
+
- Any `ready-for-review` row keeps task-level status `pending-review`.
|
|
40
|
+
- Any `needs-promotion` row sets task-level status `needs-promotion` unless another row is still `ready-for-review`.
|
|
41
|
+
- All rows `promoted` sets task-level status `promoted`.
|
|
42
|
+
- All rows `rejected` sets task-level status `rejected`.
|
|
43
|
+
- A no-candidate task must use task-level status `no-candidate-accepted` and fill `No-Candidate Reason`.
|
|
44
|
+
|
|
45
|
+
## Candidates
|
|
46
|
+
|
|
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
|
+
|
|
50
|
+
## No-Candidate Reason
|
|
51
|
+
|
|
52
|
+
Not decided yet. Fill this only when review accepts that the task produced no reusable lesson candidate.
|
|
53
|
+
|
|
54
|
+
## Promotion Notes
|
|
55
|
+
|
|
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`.
|
|
59
|
+
- If human review rejects a candidate, mark the row `rejected` and keep the reason in the review decision.
|
|
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. |
|
|
@@ -18,6 +18,12 @@
|
|
|
18
18
|
|
|
19
19
|
- [Shared files that may conflict with other work, or none]
|
|
20
20
|
|
|
21
|
+
## Primary Caller / Entry
|
|
22
|
+
|
|
23
|
+
- Primary caller: [CLI / local agent / UI / API / automation / integration / other]
|
|
24
|
+
- Entries this task must support: [list]
|
|
25
|
+
- Entries explicitly not required: [list]
|
|
26
|
+
|
|
21
27
|
## Permission Boundaries
|
|
22
28
|
|
|
23
29
|
- Continuous execution allowed: yes / no
|
|
@@ -50,6 +56,7 @@
|
|
|
50
56
|
- [ ] Runtime verification: [URL / command / log]
|
|
51
57
|
- [ ] Review report: `review.md` / n/a
|
|
52
58
|
- [ ] Residual risks recorded: yes / no
|
|
59
|
+
- [ ] Lesson candidate review recorded: `lesson_candidates.md` uses `no-candidate-accepted`, `needs-promotion`, `promoted`, or `rejected`
|
|
53
60
|
|
|
54
61
|
## Stop Conditions
|
|
55
62
|
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
# {{TASK_TITLE}} Module
|
|
2
|
+
|
|
3
|
+
## Brief
|
|
4
|
+
|
|
5
|
+
## Module Key
|
|
6
|
+
|
|
7
|
+
`{{TASK_ID}}`
|
|
8
|
+
|
|
9
|
+
## Created
|
|
10
|
+
|
|
11
|
+
{{DATE}}
|
|
12
|
+
|
|
13
|
+
## Role
|
|
14
|
+
|
|
15
|
+
State what this module owns and why it exists.
|
|
16
|
+
|
|
17
|
+
## Boundaries
|
|
18
|
+
|
|
19
|
+
- Owns: directories, services, or document areas under this module.
|
|
20
|
+
- Shared surfaces: files that require coordinator sync.
|
|
21
|
+
- Does not own: adjacent modules or global files outside the declared scope.
|
|
22
|
+
|
|
23
|
+
## Current Work
|
|
24
|
+
|
|
25
|
+
List the active module tasks or point to `module_plan.md`.
|
|
@@ -30,6 +30,12 @@ Do not edit shared SSoT files, coordinator-owned integration files, or unrelated
|
|
|
30
30
|
- Residual risks
|
|
31
31
|
- Coordinator updates needed
|
|
32
32
|
|
|
33
|
+
## Review And State Rule
|
|
34
|
+
|
|
35
|
+
- Keep `task.state`, `lifecycleState`, `reviewStatus`, and `closeoutStatus` separate when reporting progress.
|
|
36
|
+
- `done` means the implementation step finished. It is not `closed` until closeout evidence is recorded.
|
|
37
|
+
- If review is required, update `review.md`. Human review completion must be confirmed through the local dashboard workbench or by the coordinator with `harness review-confirm`; do not mark it complete while open P0/P1/P2 findings remain.
|
|
38
|
+
|
|
33
39
|
## Shared Sync Rule
|
|
34
40
|
|
|
35
41
|
Do not update Module Registry, Harness Ledger, Closeout SSoT, Regression SSoT, or Cadence Ledger from a worker session unless the coordinator assigned the shared lock.
|
|
@@ -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.]
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
# [Task Name]
|
|
2
2
|
|
|
3
|
+
Task Contract: harness-task/v1
|
|
4
|
+
|
|
3
5
|
## Goal
|
|
4
6
|
|
|
5
7
|
[State the outcome this task must deliver in one sentence.]
|
|
@@ -13,12 +15,11 @@
|
|
|
13
15
|
|
|
14
16
|
| Budget | Use When | Required Structure |
|
|
15
17
|
| --- | --- | --- |
|
|
16
|
-
| simple | One owner, no subagent, L0/L1 evidence |
|
|
17
|
-
| standard | Normal feature, fix, or documentation change |
|
|
18
|
-
|
|
|
19
|
-
| module-parallel | Independent module slices | Add `module_plan.md`, module registry updates, and worker handoff |
|
|
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 | `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` |
|
|
20
21
|
|
|
21
|
-
Selected budget:
|
|
22
|
+
Selected budget: {{TASK_BUDGET}}
|
|
22
23
|
|
|
23
24
|
## Context Packet
|
|
24
25
|
|
|
@@ -28,14 +29,39 @@ Selected budget: [simple / standard / long-running / module-parallel]
|
|
|
28
29
|
|
|
29
30
|
## Required Files
|
|
30
31
|
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
|
36
|
-
|
|
|
37
|
-
| `
|
|
38
|
-
|
|
|
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 |
|
|
39
65
|
|
|
40
66
|
## Steps
|
|
41
67
|
|
|
@@ -73,10 +99,9 @@ Selected budget: [simple / standard / long-running / module-parallel]
|
|
|
73
99
|
|
|
74
100
|
## Links
|
|
75
101
|
|
|
76
|
-
- Feature SSoT entry: [reference]
|
|
77
102
|
- Related Regression Gate: [reference]
|
|
78
103
|
- Review Report: [path / n/a]
|
|
79
|
-
-
|
|
104
|
+
- Generated Ledger: rebuilt by lifecycle CLI / `harness governance rebuild`
|
|
80
105
|
- Prerequisite tasks: [reference or none]
|
|
81
106
|
|
|
82
107
|
## Coordinator Handoff
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
# [Task Name] - Visual Map
|
|
2
|
+
|
|
3
|
+
Visual Map Contract: v1.0
|
|
4
|
+
|
|
5
|
+
This file is the task's diagram collection. It is not only a phase roadmap.
|
|
6
|
+
Include only diagrams that materially help a human or agent understand the task.
|
|
7
|
+
|
|
8
|
+
## Map Index
|
|
9
|
+
|
|
10
|
+
| ID | Type | Purpose | Required For Understanding | Source Evidence | Promotion Candidate |
|
|
11
|
+
| --- | --- | --- | --- | --- | --- |
|
|
12
|
+
| MAP-01 | phase | Show the execution phases and dependencies | yes | `task_plan.md` | no |
|
|
13
|
+
|
|
14
|
+
## Phase Graph
|
|
15
|
+
|
|
16
|
+
```mermaid
|
|
17
|
+
flowchart LR
|
|
18
|
+
PH01["PH-01 Plan"] --> PH02["PH-02 Implement"]
|
|
19
|
+
PH02 --> PH03["PH-03 Verify"]
|
|
20
|
+
PH03 --> PH04["PH-04 Review and Closeout"]
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
## Phase Table
|
|
24
|
+
|
|
25
|
+
| Phase ID | Depends On | State | Completion | Output | Required Evidence | Evidence Status | Blocking Risk | Owner / Handoff |
|
|
26
|
+
| --- | --- | --- | ---: | --- | --- | --- | --- | --- |
|
|
27
|
+
| PH-01 | none | planned | 0 | Approved task plan and execution strategy | `task_plan.md`, `execution_strategy.md` | missing | none | coordinator |
|
|
28
|
+
| PH-02 | PH-01 | planned | 0 | Scoped implementation or document update | diff, worker handoff, or artifact path | missing | [risk] | [owner] |
|
|
29
|
+
| PH-03 | PH-02 | planned | 0 | Verification evidence | commands, logs, screenshots, or runtime proof | missing | [risk] | [owner] |
|
|
30
|
+
| PH-04 | PH-03 | planned | 0 | Review disposition and closeout updates | `review.md`, progress update, ledger updates | missing | [risk] | coordinator |
|
|
31
|
+
|
|
32
|
+
Allowed Evidence Status: missing, partial, present, waived.
|
|
33
|
+
|
|
34
|
+
## Supporting Maps
|
|
35
|
+
|
|
36
|
+
Add optional diagrams only when useful:
|
|
37
|
+
|
|
38
|
+
- architecture: module, component, or service structure.
|
|
39
|
+
- sequence: frontend/backend/service/database/agent interaction.
|
|
40
|
+
- data-flow: data movement and ownership.
|
|
41
|
+
- state: state machine or lifecycle.
|
|
42
|
+
- topology: repo, service, worker, or worktree layout.
|
|
43
|
+
- decision: branch and tradeoff tree.
|
|
44
|
+
|
|
45
|
+
## Map Notes
|
|
46
|
+
|
|
47
|
+
- Use `missing` when no evidence has been checked.
|
|
48
|
+
- Use `partial` when some evidence exists but required checks remain.
|
|
49
|
+
- Use `present` when the phase has sufficient evidence for its current claim.
|
|
50
|
+
- Use `waived` only when the reason and owner are recorded in `progress.md`.
|
|
@@ -14,6 +14,35 @@ Define how the project documentation library is organized so agents can find cur
|
|
|
14
14
|
6. Do not mix private runtime state, credentials, personal notes, or generated caches into the public docs library.
|
|
15
15
|
7. Documentation updates that change process or behavior must be reflected in the relevant index or routing file.
|
|
16
16
|
|
|
17
|
+
## Architecture / Development / Integration Routing
|
|
18
|
+
|
|
19
|
+
Use these directories as a low-entropy context system:
|
|
20
|
+
|
|
21
|
+
| Directory | Owns | Must Not Own | Required Schema Signals |
|
|
22
|
+
| --- | --- | --- | --- |
|
|
23
|
+
| `docs/03-ARCHITECTURE/` | system structure, service responsibility, ownership, service catalog, critical flows, ADRs | endpoint payloads, mock instructions, task logs | `Context Doc Type`, `Source Evidence`, `Last Verified`, `Confidence` |
|
|
24
|
+
| `docs/04-DEVELOPMENT/` | local setup, codebase map, external development context, external source packs, mocks, stubs, cross-repo debugging | long-lived architecture facts, API payload contracts, undigested external document dumps | `Context Doc Type`, `Development Use`, `Do Not Assume`, `Mocks / Stubs`, `Source Evidence`, `Last Verified`, `Confidence` |
|
|
25
|
+
| `docs/06-INTEGRATIONS/` | API/event/webhook/SDK/third-party contracts, auth, payloads, errors, contract tests | global topology, service ownership catalog, debugging notes | `Context Doc Type`, `Contract Type`, `Auth`, `Payload`, `Errors`, `Contract Tests`, `Source Evidence`, `Last Verified`, `Confidence` |
|
|
26
|
+
|
|
27
|
+
Concrete split:
|
|
28
|
+
|
|
29
|
+
- `03-ARCHITECTURE/service-catalog.md` gives only the service summary and links.
|
|
30
|
+
- `06-INTEGRATIONS/<service>-api-contract.md` owns payload bodies, auth, errors, and contract tests.
|
|
31
|
+
- `04-DEVELOPMENT/external-context/<service>.md` owns mocks, stubs, unsafe assumptions, and debug notes.
|
|
32
|
+
- `04-DEVELOPMENT/external-source-packs/` owns external source indexes, digests, and projection status only; final facts must be written back to `03/04/06`.
|
|
33
|
+
|
|
34
|
+
## External Source Intake
|
|
35
|
+
|
|
36
|
+
If the target project is a microservice, multi-repo system, split frontend/backend repository, or depends on external team documents, the agent must ask the user for external source material during Diagnose / Decide. Small source sets can be linked from `Source Evidence`; large source sets must use `external-source-intake-standard.md` and a source pack.
|
|
37
|
+
|
|
38
|
+
The fixed processing order is:
|
|
39
|
+
|
|
40
|
+
```text
|
|
41
|
+
Inventory -> Classify -> Sanitize -> Digest -> Project -> Verify -> Residual
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
Raw external material that has not been digested and projected must not become execution fact.
|
|
45
|
+
|
|
17
46
|
## Required Checklist
|
|
18
47
|
|
|
19
48
|
- Entry points identify current reference standards, planning templates, SSoT files, walkthroughs, and ledgers.
|
|
@@ -22,6 +51,8 @@ Define how the project documentation library is organized so agents can find cur
|
|
|
22
51
|
- Generated or private artifacts are excluded or explicitly separated.
|
|
23
52
|
- Cross-links point to the source of truth for each subject.
|
|
24
53
|
- New standards include closeout and evidence expectations.
|
|
54
|
+
- `03/04/06` documents use the required schema signals and route misplaced content back to the correct directory.
|
|
55
|
+
- External source packs, when present, have a registry, digests, projection targets, and residuals.
|
|
25
56
|
|
|
26
57
|
## Closeout Expectations
|
|
27
58
|
|
|
@@ -12,7 +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.
|
|
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.
|
|
16
18
|
|
|
17
19
|
## Required Checklist
|
|
18
20
|
|
|
@@ -20,10 +22,11 @@ Define the standard lifecycle for non-trivial work from intake through planning,
|
|
|
20
22
|
- Current repo state and ownership boundaries were checked.
|
|
21
23
|
- Implementation notes identify changed surfaces.
|
|
22
24
|
- Required checks and evidence are captured.
|
|
25
|
+
- Verified slices have commit SHAs, or the no-commit reason, owner, and next step are written down.
|
|
23
26
|
- Review status and material findings are recorded.
|
|
24
27
|
- Residuals are explicit and assigned.
|
|
25
28
|
- Closeout artifacts are updated when required.
|
|
26
29
|
|
|
27
30
|
## Closeout Expectations
|
|
28
31
|
|
|
29
|
-
Closeout must provide a concise change summary, evidence checked, checks not run with reasons, review outcome, residual risk, and any durable docs or ledger updates made during the task.
|
|
32
|
+
Closeout must provide a concise change summary, evidence checked, checks not run with reasons, review outcome, residual risk, relevant commit SHAs or deferred-commit rationale, and any durable docs or ledger updates made during the task.
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
# External Source Intake Standard
|
|
2
|
+
|
|
3
|
+
## Purpose
|
|
4
|
+
|
|
5
|
+
This standard defines how agents receive, filter, organize, and project large external documentation sets from other projects, microservice teams, or platform owners. The goal is executable context, not a document dump.
|
|
6
|
+
|
|
7
|
+
## Core Model
|
|
8
|
+
|
|
9
|
+
```text
|
|
10
|
+
external source material -> source pack index -> digest -> 03/04/06 execution projection
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
`03-ARCHITECTURE`, `04-DEVELOPMENT`, and `06-INTEGRATIONS` only hold facts that have been distilled enough to guide work. Raw external files, long documents, screenshots, exported chats, diagrams, and historical packets first go through `docs/04-DEVELOPMENT/external-source-packs/`.
|
|
14
|
+
|
|
15
|
+
## When To Ask The User
|
|
16
|
+
|
|
17
|
+
During Diagnose / Decide, the agent must ask whether external source material exists when any of these signals appear:
|
|
18
|
+
|
|
19
|
+
- The repository is part of a multi-repo, microservice, split frontend/backend, or platform system.
|
|
20
|
+
- The code references external services, SDKs, API gateways, message queues, webhooks, contracts, schemas, or mocks.
|
|
21
|
+
- The user mentions other repositories, upstream/downstream services, interface docs, business knowledge, or system-level design.
|
|
22
|
+
- The agent cannot determine service responsibility, integration contracts, or local debugging behavior from the current repository alone.
|
|
23
|
+
|
|
24
|
+
Recommended questions:
|
|
25
|
+
|
|
26
|
+
1. Does this project depend on external services or other repositories?
|
|
27
|
+
2. Do you have architecture docs, API docs, diagrams, meeting notes, source links, code paths, or exported packets from those teams?
|
|
28
|
+
3. Can those materials be copied into this repository? If not, should the Harness store only local paths or URLs?
|
|
29
|
+
4. Which sources are authoritative, and which are historical references only?
|
|
30
|
+
|
|
31
|
+
## Storage Rules
|
|
32
|
+
|
|
33
|
+
| Case | Storage |
|
|
34
|
+
| --- | --- |
|
|
35
|
+
| Only 1-4 stable external documents | No separate source pack is required; link them from `Source Evidence` in the relevant `03/04/06` docs |
|
|
36
|
+
| More than 5 documents, multiple topics, or continuing growth | Create `docs/04-DEVELOPMENT/external-source-packs/<source-key>/` |
|
|
37
|
+
| Material contains secrets, customer data, private links, or cannot be committed | Do not copy raw files; record external location, owner, access condition, and digest only |
|
|
38
|
+
| Material is safe to commit | Raw files may go under `raw/`, but only digested facts may be projected into execution docs |
|
|
39
|
+
|
|
40
|
+
Recommended structure:
|
|
41
|
+
|
|
42
|
+
```text
|
|
43
|
+
docs/04-DEVELOPMENT/external-source-packs/<source-key>/
|
|
44
|
+
├── README.md # source index and projection status
|
|
45
|
+
├── digests/ # digest for each source or source group
|
|
46
|
+
├── raw/ # commit-safe raw material only
|
|
47
|
+
└── raw-index.md # path/URL/owner index when raw material cannot be committed
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
Do not replicate a full `03/04/06` tree for every microservice. The source pack is the intake layer. The stable execution entries remain:
|
|
51
|
+
|
|
52
|
+
- `docs/03-ARCHITECTURE/service-catalog.md`
|
|
53
|
+
- `docs/03-ARCHITECTURE/services/<service-key>.md`
|
|
54
|
+
- `docs/04-DEVELOPMENT/external-context/<service-key>.md`
|
|
55
|
+
- `docs/06-INTEGRATIONS/<contract>.md`
|
|
56
|
+
|
|
57
|
+
## Intake Flow
|
|
58
|
+
|
|
59
|
+
1. **Inventory**: list sources, owners, dates, trust level, and commit eligibility.
|
|
60
|
+
2. **Classify**: tag each source as architecture, development, integration, security, operations, product, or unknown.
|
|
61
|
+
3. **Sanitize**: check for secrets, tokens, customer data, personal information, internal accounts, and private links; keep non-committable material as references only.
|
|
62
|
+
4. **Digest**: extract facts, questions, unsafe assumptions, and evidence with the digest template.
|
|
63
|
+
5. **Project**: move stable facts into `03/04/06`, then mark the source as projected in the source pack README.
|
|
64
|
+
6. **Verify**: use code evidence, contract tests, owner confirmation, or runtime checks where feasible; update `Last Verified` and `Confidence`.
|
|
65
|
+
7. **Residual**: keep unverified or conflicting facts in the source pack or in `Do Not Assume`; do not treat them as execution facts.
|
|
66
|
+
|
|
67
|
+
## Projection Rules
|
|
68
|
+
|
|
69
|
+
| Source Content | Projection Target |
|
|
70
|
+
| --- | --- |
|
|
71
|
+
| Service responsibility, upstream/downstream relationship, owner, data ownership, topology | `03-ARCHITECTURE/service-catalog.md` or `services/<service-key>.md` |
|
|
72
|
+
| Local mocks, stubs, startup, debugging, cross-repo development behavior | `04-DEVELOPMENT/external-context/<service-key>.md` |
|
|
73
|
+
| Endpoint, payload, auth, error, event, webhook, SDK, contract test | `06-INTEGRATIONS/<contract>.md` |
|
|
74
|
+
| Unconfirmed, conflicting, stale, or background-only material | Keep in source pack README / digest; do not project into execution docs |
|
|
75
|
+
|
|
76
|
+
## Prohibited
|
|
77
|
+
|
|
78
|
+
- Do not copy large external document sets directly into `03-ARCHITECTURE`, `04-DEVELOPMENT`, or `06-INTEGRATIONS`.
|
|
79
|
+
- Do not treat an external-source digest as verified fact without `Source Evidence`, `Last Verified`, and `Confidence`.
|
|
80
|
+
- Do not keep long raw excerpts, chat logs, or meeting transcripts inside execution docs.
|
|
81
|
+
- Do not commit secrets, production tokens, customer data, personal information, or non-public raw material.
|
|
82
|
+
- Do not create one full directory tree per microservice for completeness; create source packs only for large external source sets.
|
|
@@ -13,6 +13,7 @@ Define when and how the Harness Ledger records durable changes to the agent oper
|
|
|
13
13
|
5. Do not store secrets, personal data, large logs, or raw generated output in the ledger.
|
|
14
14
|
6. If a lesson changes a reference standard, record both the lesson and the reference update.
|
|
15
15
|
7. If no ledger update is needed, closeout should say why.
|
|
16
|
+
8. New task closeout should route lesson review through `lesson_candidates.md`; record `checked-candidate:<LC-ID>`, `queued-promotion:<LC-ID>`, or `checked-created:<L-ID>` as the final lesson outcome.
|
|
16
17
|
|
|
17
18
|
## Required Artifacts
|
|
18
19
|
|