@fitlab-ai/agent-infra 0.9.14 → 0.10.0
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/README.md +10 -0
- package/README.zh-CN.md +10 -0
- package/bin/internal-cli.sh +45 -0
- package/dist/bin/internal-cli.js +93 -30
- package/dist/lib/agent-clients/adapters/codex-lifecycle/capability-store.js +165 -27
- package/dist/lib/agent-clients/adapters/codex-lifecycle/sandbox-controller.js +9 -4
- package/dist/lib/agent-clients/adapters/codex-lifecycle/store.js +43 -3
- package/dist/lib/defaults.json +103 -103
- package/dist/lib/fs/durable-write.js +39 -0
- package/dist/lib/fs/file-lock.js +111 -0
- package/dist/lib/host-control/audit.js +19 -0
- package/dist/lib/host-control/client.js +142 -0
- package/dist/lib/host-control/command.js +49 -0
- package/dist/lib/host-control/path.js +160 -0
- package/dist/lib/host-control/secure-fs.js +140 -0
- package/dist/lib/host-control/server.js +159 -0
- package/dist/lib/host-control/service.js +112 -0
- package/dist/lib/init.js +11 -2
- package/dist/lib/internal/cli-route-inventory.js +4 -2
- package/dist/lib/internal/codex-lifecycle.js +6 -6
- package/dist/lib/internal/demo-promotion.js +322 -0
- package/dist/lib/internal/demo-transcript.js +454 -0
- package/dist/lib/internal/host-control.js +28 -0
- package/dist/lib/internal/manual-validation.js +331 -0
- package/dist/lib/internal/platform-pr.js +18 -4
- package/dist/lib/internal/release-workflow.js +63 -84
- package/dist/lib/internal/sandbox-control.js +149 -2
- package/dist/lib/internal/task-artifact.js +16 -263
- package/dist/lib/internal/task-create.js +6 -5
- package/dist/lib/internal/task-event.js +37 -37
- package/dist/lib/internal/task-lifecycle.js +2 -2
- package/dist/lib/internal/task-operation-registry.js +101 -4
- package/dist/lib/internal/task-review.js +11 -56
- package/dist/lib/internal/task-validate.js +30 -10
- package/dist/lib/owned-path.js +33 -0
- package/dist/lib/platform/check-status.js +11 -0
- package/dist/lib/platform/comment-safety.js +4 -1
- package/dist/lib/platform/completion-backfill.js +1 -1
- package/dist/lib/platform/github-data.js +241 -0
- package/dist/lib/platform/github-provider.js +15 -20
- package/dist/lib/platform/issue-comments.js +18 -12
- package/dist/lib/platform/issues.js +2 -180
- package/dist/lib/platform/pr-change-report.js +5 -4
- package/dist/lib/platform/pr-checks.js +12 -65
- package/dist/lib/platform/pr-summary.js +117 -33
- package/dist/lib/platform/pull-requests.js +5 -108
- package/dist/lib/platform/snapshots.js +2 -0
- package/dist/lib/platform/task-identities.js +2 -9
- package/dist/lib/platform/verification-sync.js +132 -143
- package/dist/lib/pr-review/evidence-grading.js +4 -8
- package/dist/lib/release/workflow.js +1 -1
- package/dist/lib/sandbox/commands/create.js +7 -2
- package/dist/lib/sandbox/commands/rm.js +19 -1511
- package/dist/lib/sandbox/control/audit.js +203 -0
- package/dist/lib/sandbox/control/client.js +93 -54
- package/dist/lib/sandbox/control/executor.js +129 -65
- package/dist/lib/sandbox/control/finalization-response.js +27 -0
- package/dist/lib/sandbox/control/identity-sentinel.js +107 -0
- package/dist/lib/sandbox/control/lifecycle.js +36 -2
- package/dist/lib/sandbox/control/native-file-lock.js +6 -98
- package/dist/lib/sandbox/control/protocol.js +55 -4
- package/dist/lib/sandbox/control/server.js +518 -127
- package/dist/lib/sandbox/control/state.js +64 -0
- package/dist/lib/sandbox/control/task-workflow.js +74 -0
- package/dist/lib/sandbox/control/workflow-executor.js +89 -0
- package/dist/lib/sandbox/index.js +1 -2
- package/dist/lib/sandbox/recovery.js +28 -4
- package/dist/lib/sandbox/removal.js +822 -0
- package/dist/lib/sandbox/task-cleanup.js +217 -0
- package/dist/lib/sandbox/workspace-identity.js +17 -1
- package/dist/lib/sandbox/workspace-view.js +13 -14
- package/dist/lib/task/activity-intent.js +2 -1
- package/dist/lib/task/activity-log.js +30 -24
- package/dist/lib/task/artifact-command.js +79 -0
- package/dist/lib/task/artifact-lifecycle.js +30 -28
- package/dist/lib/task/artifact-name.js +36 -0
- package/dist/lib/task/artifact-operations.js +29 -289
- package/dist/lib/task/artifact-receipts.js +3 -15
- package/dist/lib/task/artifact-recovery.js +430 -0
- package/dist/lib/task/artifact-repair-intent.js +134 -29
- package/dist/lib/task/artifact-schema.js +6 -14
- package/dist/lib/task/capabilities.js +12 -19
- package/dist/lib/task/codex-orchestration.js +71 -25
- package/dist/lib/task/commit-identity.js +28 -0
- package/dist/lib/task/commit-operation.js +33 -20
- package/dist/lib/task/control-authority.js +403 -6
- package/dist/lib/task/control-recovery.js +140 -0
- package/dist/lib/task/create-service.js +1 -8
- package/dist/lib/task/create.js +62 -9
- package/dist/lib/task/decision-details.js +2 -46
- package/dist/lib/task/delegation-receipts.js +64 -3
- package/dist/lib/task/events.js +275 -22
- package/dist/lib/task/finalization-state.js +9 -0
- package/dist/lib/task/human-override.js +8 -14
- package/dist/lib/task/implementation-inputs.js +3 -3
- package/dist/lib/task/intermediate-cleanup.js +441 -0
- package/dist/lib/task/invalidation.js +18 -65
- package/dist/lib/task/ledger-intents.js +7 -22
- package/dist/lib/task/ledger.js +1 -3
- package/dist/lib/task/lifecycle-recovery.js +549 -0
- package/dist/lib/task/lifecycle.js +31 -4
- package/dist/lib/task/local-artifact-finalization.js +197 -197
- package/dist/lib/task/manual-validation-completion.js +26 -0
- package/dist/lib/task/manual-validation-evidence.js +130 -0
- package/dist/lib/task/manual-validation-receipt.js +105 -0
- package/dist/lib/task/manual-validation-shared.js +40 -0
- package/dist/lib/task/manual-validation-transaction.js +243 -0
- package/dist/lib/task/markdown.js +47 -0
- package/dist/lib/task/orchestration.js +66 -19
- package/dist/lib/task/pr-delivery-fact.js +12 -56
- package/dist/lib/task/qualification-audit.js +20 -34
- package/dist/lib/task/recovery-warning.js +19 -0
- package/dist/lib/task/review-artifacts.js +2 -18
- package/dist/lib/task/review-command.js +26 -0
- package/dist/lib/task/review-finalization.js +175 -216
- package/dist/lib/task/review-fingerprint.js +2 -2
- package/dist/lib/task/sections.js +34 -56
- package/dist/lib/task/short-id.js +15 -7
- package/dist/lib/task/task-execution-lock.js +1 -1
- package/dist/lib/task/verification-engine.js +119 -337
- package/dist/lib/task/verification.js +1 -1
- package/dist/lib/task/workflow-command.js +16 -0
- package/dist/lib/task/workflow-warning-intents.js +0 -16
- package/dist/lib/task/workflow-warnings.js +28 -2
- package/dist/lib/update.js +2 -0
- package/dist/lib/version.js +1 -11
- package/dist/lifecycle-build-manifest.json +3 -3
- package/lib/agent-clients/adapters/codex-lifecycle/capability-store.ts +223 -33
- package/lib/agent-clients/adapters/codex-lifecycle/sandbox-controller.ts +10 -4
- package/lib/agent-clients/adapters/codex-lifecycle/store.ts +55 -3
- package/lib/fs/durable-write.ts +30 -0
- package/lib/fs/file-lock.ts +113 -0
- package/lib/host-control/audit.ts +22 -0
- package/lib/host-control/client.ts +172 -0
- package/lib/host-control/command.ts +60 -0
- package/lib/host-control/path.ts +167 -0
- package/lib/host-control/secure-fs.ts +135 -0
- package/lib/host-control/server.ts +180 -0
- package/lib/host-control/service.ts +133 -0
- package/lib/init.ts +15 -2
- package/lib/internal/cli-route-inventory.ts +4 -2
- package/lib/internal/codex-lifecycle.ts +6 -6
- package/lib/internal/demo-promotion.ts +354 -0
- package/lib/internal/demo-transcript.ts +419 -0
- package/lib/internal/host-control.ts +28 -0
- package/lib/internal/manual-validation.ts +315 -0
- package/lib/internal/platform-pr.ts +15 -4
- package/lib/internal/release-workflow.ts +74 -82
- package/lib/internal/sandbox-control.ts +162 -1
- package/lib/internal/task-artifact.ts +14 -217
- package/lib/internal/task-create.ts +5 -5
- package/lib/internal/task-event.ts +20 -11
- package/lib/internal/task-lifecycle.ts +4 -3
- package/lib/internal/task-operation-registry.ts +111 -4
- package/lib/internal/task-review.ts +9 -54
- package/lib/internal/task-validate.ts +26 -10
- package/lib/owned-path.ts +26 -0
- package/lib/platform/check-status.ts +9 -0
- package/lib/platform/comment-safety.ts +5 -0
- package/lib/platform/completion-backfill.ts +1 -1
- package/lib/platform/github-data.ts +322 -0
- package/lib/platform/github-provider.ts +15 -20
- package/lib/platform/issue-comments.ts +21 -14
- package/lib/platform/issues.ts +5 -246
- package/lib/platform/pr-change-report.ts +7 -5
- package/lib/platform/pr-checks.ts +13 -77
- package/lib/platform/pr-summary.ts +123 -35
- package/lib/platform/pull-requests.ts +6 -173
- package/lib/platform/snapshots.ts +53 -0
- package/lib/platform/task-identities.ts +3 -14
- package/lib/platform/verification-sync.ts +150 -156
- package/lib/pr-review/evidence-grading.ts +4 -9
- package/lib/release/workflow.ts +3 -3
- package/lib/sandbox/commands/create.ts +7 -6
- package/lib/sandbox/commands/rm.ts +21 -1895
- package/lib/sandbox/control/audit.ts +253 -0
- package/lib/sandbox/control/client.ts +109 -66
- package/lib/sandbox/control/executor.ts +134 -74
- package/lib/sandbox/control/finalization-response.ts +29 -0
- package/lib/sandbox/control/identity-sentinel.ts +137 -0
- package/lib/sandbox/control/lifecycle.ts +45 -3
- package/lib/sandbox/control/native-file-lock.ts +6 -107
- package/lib/sandbox/control/protocol.ts +80 -6
- package/lib/sandbox/control/server.ts +567 -132
- package/lib/sandbox/control/state.ts +86 -0
- package/lib/sandbox/control/task-workflow.ts +95 -0
- package/lib/sandbox/control/workflow-executor.ts +92 -0
- package/lib/sandbox/index.ts +1 -2
- package/lib/sandbox/recovery.ts +28 -5
- package/lib/sandbox/removal.ts +1142 -0
- package/lib/sandbox/task-cleanup.ts +209 -0
- package/lib/sandbox/workspace-identity.ts +19 -3
- package/lib/sandbox/workspace-view.ts +17 -15
- package/lib/task/activity-intent.ts +2 -2
- package/lib/task/activity-log.ts +27 -19
- package/lib/task/artifact-command.ts +85 -0
- package/lib/task/artifact-lifecycle.ts +31 -26
- package/lib/task/artifact-name.ts +55 -0
- package/lib/task/artifact-operations.ts +34 -310
- package/lib/task/artifact-receipts.ts +3 -14
- package/lib/task/artifact-recovery.ts +519 -0
- package/lib/task/artifact-repair-intent.ts +162 -33
- package/lib/task/artifact-schema.ts +5 -34
- package/lib/task/capabilities.ts +13 -22
- package/lib/task/codex-orchestration.ts +85 -24
- package/lib/task/commit-identity.ts +31 -0
- package/lib/task/commit-operation.ts +37 -20
- package/lib/task/control-authority.ts +540 -10
- package/lib/task/control-recovery.ts +186 -0
- package/lib/task/create-service.ts +1 -10
- package/lib/task/create.ts +63 -8
- package/lib/task/decision-details.ts +3 -71
- package/lib/task/delegation-receipts.ts +73 -2
- package/lib/task/events.ts +309 -24
- package/lib/task/finalization-state.ts +11 -0
- package/lib/task/human-override.ts +8 -16
- package/lib/task/implementation-inputs.ts +3 -3
- package/lib/task/intermediate-cleanup.ts +493 -0
- package/lib/task/invalidation.ts +18 -62
- package/lib/task/ledger-intents.ts +7 -24
- package/lib/task/ledger.ts +1 -3
- package/lib/task/lifecycle-recovery.ts +691 -0
- package/lib/task/lifecycle.ts +30 -5
- package/lib/task/local-artifact-finalization.ts +244 -234
- package/lib/task/manual-validation-completion.ts +40 -0
- package/lib/task/manual-validation-evidence.ts +209 -0
- package/lib/task/manual-validation-receipt.ts +156 -0
- package/lib/task/manual-validation-shared.ts +50 -0
- package/lib/task/manual-validation-transaction.ts +304 -0
- package/lib/task/markdown.ts +70 -0
- package/lib/task/orchestration.ts +84 -19
- package/lib/task/pr-delivery-fact.ts +15 -62
- package/lib/task/qualification-audit.ts +22 -33
- package/lib/task/recovery-warning.ts +21 -0
- package/lib/task/review-artifacts.ts +1 -20
- package/lib/task/review-command.ts +24 -0
- package/lib/task/review-finalization.ts +183 -292
- package/lib/task/review-fingerprint.ts +2 -2
- package/lib/task/sections.ts +33 -54
- package/lib/task/short-id.ts +27 -5
- package/lib/task/task-execution-lock.ts +1 -1
- package/lib/task/verification-engine.ts +113 -383
- package/lib/task/verification-types.ts +15 -0
- package/lib/task/verification.ts +1 -1
- package/lib/task/workflow-command.ts +17 -0
- package/lib/task/workflow-warning-intents.ts +0 -13
- package/lib/task/workflow-warnings.ts +21 -2
- package/lib/update.ts +6 -0
- package/lib/version.ts +1 -15
- package/package.json +6 -6
- package/templates/.agents/hooks/lifecycle-delegation.js +6 -6
- package/templates/.agents/rules/create-issue.en.md +1 -1
- package/templates/.agents/rules/create-issue.zh-CN.md +1 -1
- package/templates/.agents/rules/issue-sync.en.md +4 -2
- package/templates/.agents/rules/issue-sync.zh-CN.md +4 -3
- package/templates/.agents/rules/local-artifact-repair.en.md +46 -39
- package/templates/.agents/rules/local-artifact-repair.zh-CN.md +43 -36
- package/templates/.agents/rules/testing-discipline.en.md +2 -0
- package/templates/.agents/rules/testing-discipline.zh-CN.md +2 -0
- package/templates/.agents/scripts/package.json +3 -0
- package/templates/.agents/skills/analyze-task/SKILL.en.md +6 -6
- package/templates/.agents/skills/analyze-task/SKILL.zh-CN.md +6 -6
- package/templates/.agents/skills/analyze-task/config/verify.en.json +1 -1
- package/templates/.agents/skills/analyze-task/config/verify.zh-CN.json +1 -1
- package/templates/.agents/skills/block-task/SKILL.en.md +2 -2
- package/templates/.agents/skills/block-task/SKILL.zh-CN.md +2 -2
- package/templates/.agents/skills/block-task/config/verify.json +1 -1
- package/templates/.agents/skills/cancel-task/SKILL.en.md +3 -3
- package/templates/.agents/skills/cancel-task/SKILL.zh-CN.md +3 -3
- package/templates/.agents/skills/cancel-task/config/verify.json +1 -1
- package/templates/.agents/skills/code-task/SKILL.en.md +7 -7
- package/templates/.agents/skills/code-task/SKILL.zh-CN.md +7 -7
- package/templates/.agents/skills/code-task/config/verify.en.json +1 -1
- package/templates/.agents/skills/code-task/config/verify.zh-CN.json +1 -1
- package/templates/.agents/skills/commit/reference/issue-metadata-sync.en.md +1 -1
- package/templates/.agents/skills/commit/reference/issue-metadata-sync.zh-CN.md +1 -1
- package/templates/.agents/skills/complete-manual-validation/SKILL.en.md +33 -21
- package/templates/.agents/skills/complete-manual-validation/SKILL.zh-CN.md +33 -21
- package/templates/.agents/skills/complete-manual-validation/config/verify.en.json +1 -1
- package/templates/.agents/skills/complete-manual-validation/config/verify.zh-CN.json +1 -1
- package/templates/.agents/skills/complete-manual-validation/reference/report-template.en.md +2 -0
- package/templates/.agents/skills/complete-manual-validation/reference/report-template.zh-CN.md +2 -0
- package/templates/.agents/skills/complete-manual-validation/reference/summary-update.en.md +16 -7
- package/templates/.agents/skills/complete-manual-validation/reference/summary-update.zh-CN.md +16 -7
- package/templates/.agents/skills/complete-task/SKILL.en.md +3 -3
- package/templates/.agents/skills/complete-task/SKILL.zh-CN.md +3 -3
- package/templates/.agents/skills/complete-task/config/verify.en.json +2 -2
- package/templates/.agents/skills/complete-task/config/verify.zh-CN.json +2 -2
- package/templates/.agents/skills/complete-task/reference/external-delivery.en.md +1 -1
- package/templates/.agents/skills/complete-task/reference/external-delivery.zh-CN.md +1 -1
- package/templates/.agents/skills/create-pr/SKILL.en.md +2 -2
- package/templates/.agents/skills/create-pr/SKILL.zh-CN.md +2 -2
- package/templates/.agents/skills/create-pr/config/verify.json +1 -1
- package/templates/.agents/skills/create-pr/reference/pr-body-template.en.md +2 -2
- package/templates/.agents/skills/create-pr/reference/pr-body-template.zh-CN.md +2 -2
- package/templates/.agents/skills/create-task/SKILL.en.md +5 -5
- package/templates/.agents/skills/create-task/SKILL.zh-CN.md +5 -5
- package/templates/.agents/skills/create-task/config/verify.json +1 -1
- package/templates/.agents/skills/import-issue/SKILL.en.md +8 -8
- package/templates/.agents/skills/import-issue/SKILL.zh-CN.md +8 -8
- package/templates/.agents/skills/import-issue/config/verify.json +2 -2
- package/templates/.agents/skills/plan-task/SKILL.en.md +4 -4
- package/templates/.agents/skills/plan-task/SKILL.zh-CN.md +4 -4
- package/templates/.agents/skills/plan-task/config/verify.en.json +1 -1
- package/templates/.agents/skills/plan-task/config/verify.zh-CN.json +1 -1
- package/templates/.agents/skills/release/SKILL.en.md +7 -3
- package/templates/.agents/skills/release/SKILL.zh-CN.md +7 -3
- package/templates/.agents/skills/restore-task/SKILL.en.md +2 -2
- package/templates/.agents/skills/restore-task/SKILL.zh-CN.md +2 -2
- package/templates/.agents/skills/restore-task/config/verify.json +1 -1
- package/templates/.agents/skills/review-analysis/SKILL.en.md +2 -2
- package/templates/.agents/skills/review-analysis/SKILL.zh-CN.md +2 -2
- package/templates/.agents/skills/review-analysis/config/verify.en.json +1 -1
- package/templates/.agents/skills/review-analysis/config/verify.zh-CN.json +1 -1
- package/templates/.agents/skills/review-analysis/reference/report-template.en.md +7 -7
- package/templates/.agents/skills/review-analysis/reference/report-template.zh-CN.md +6 -6
- package/templates/.agents/skills/review-code/SKILL.en.md +2 -2
- package/templates/.agents/skills/review-code/SKILL.zh-CN.md +2 -2
- package/templates/.agents/skills/review-code/config/verify.en.json +1 -1
- package/templates/.agents/skills/review-code/config/verify.zh-CN.json +1 -1
- package/templates/.agents/skills/review-code/reference/report-template.en.md +12 -12
- package/templates/.agents/skills/review-code/reference/report-template.zh-CN.md +12 -12
- package/templates/.agents/skills/review-plan/SKILL.en.md +2 -2
- package/templates/.agents/skills/review-plan/SKILL.zh-CN.md +2 -2
- package/templates/.agents/skills/review-plan/config/verify.en.json +1 -1
- package/templates/.agents/skills/review-plan/config/verify.zh-CN.json +1 -1
- package/templates/.agents/skills/review-plan/reference/report-template.en.md +7 -7
- package/templates/.agents/skills/review-plan/reference/report-template.zh-CN.md +7 -7
- package/templates/.agents/skills/review-pr/config/verify.en.json +1 -1
- package/templates/.agents/skills/review-pr/config/verify.zh-CN.json +1 -1
- package/templates/.agents/skills/review-pr/reference/evidence-grading.en.md +3 -3
- package/templates/.agents/skills/review-pr/reference/evidence-grading.zh-CN.md +3 -3
- package/templates/.agents/skills/run-manual-validation/SKILL.en.md +20 -3
- package/templates/.agents/skills/run-manual-validation/SKILL.zh-CN.md +20 -3
- package/templates/.agents/skills/run-manual-validation/config/verify.en.json +1 -1
- package/templates/.agents/skills/run-manual-validation/config/verify.zh-CN.json +1 -1
- package/templates/.agents/skills/run-manual-validation/reference/discovery-and-execution.en.md +4 -1
- package/templates/.agents/skills/run-manual-validation/reference/discovery-and-execution.zh-CN.md +4 -1
- package/templates/.agents/skills/run-manual-validation/reference/report-template.en.md +2 -0
- package/templates/.agents/skills/run-manual-validation/reference/report-template.zh-CN.md +2 -0
- package/templates/.agents/skills/run-task/SKILL.en.md +1 -1
- package/templates/.agents/skills/run-task/SKILL.zh-CN.md +1 -1
- package/templates/.agents/skills/test/SKILL.en.md +17 -6
- package/templates/.agents/skills/test/SKILL.zh-CN.md +17 -6
- package/templates/.agents/templates/task.en.md +1 -1
- package/templates/.agents/templates/task.zh-CN.md +1 -1
- package/templates/.claude/commands/import-issue.en.md +1 -1
- package/templates/.claude/commands/import-issue.zh-CN.md +1 -1
- package/templates/.claude/commands/restore-task.en.md +1 -1
- package/templates/.claude/commands/restore-task.zh-CN.md +1 -1
- package/templates/.claude/commands/run-manual-validation.en.md +1 -1
- package/templates/.claude/commands/run-manual-validation.zh-CN.md +1 -1
- package/dist/lib/platform/adapters.js +0 -56
- package/lib/platform/adapters.ts +0 -197
|
@@ -19,15 +19,19 @@ Require one canonical SemVer `{version}` and a satisfied entropy checkpoint.
|
|
|
19
19
|
agent-infra-internal release-workflow inspect {version}
|
|
20
20
|
```
|
|
21
21
|
|
|
22
|
-
Run prepare and inspect again only when the snapshot is not prepared. Reuse prepared or partially published facts. Unknown state is blocked.
|
|
22
|
+
Preserve and present the complete non-empty stdout. Run prepare and inspect again only when the snapshot is not prepared. Reuse prepared or partially published facts. Unknown state is blocked.
|
|
23
23
|
|
|
24
24
|
```bash
|
|
25
25
|
agent-infra-internal release-workflow prepare {version} --entropy-report {path}
|
|
26
26
|
```
|
|
27
27
|
|
|
28
|
+
Present the prepare `status`, `error`, and `operations`, including milestone closure and creation of the next planning milestones. Stop on `failed` or `blocked`; do not request publish authorization. Continue only after a successful prepare and a fresh inspect.
|
|
29
|
+
|
|
30
|
+
Inspect again after prepare.
|
|
31
|
+
|
|
28
32
|
## 3. Present and Confirm
|
|
29
33
|
|
|
30
|
-
Present the latest snapshot. Only an unambiguous affirmative reply for that snapshot in the current session authorizes publishing. A denial, adjustment, question, ambiguity, interruption, or changed snapshot stops the write and requires a new preview.
|
|
34
|
+
Present the complete latest snapshot JSON, including every channel state. Only an unambiguous affirmative reply for that snapshot in the current session authorizes publishing. A denial, adjustment, question, ambiguity, interruption, or changed snapshot stops the write and requires a new preview.
|
|
31
35
|
|
|
32
36
|
## 4. Publish and Reinspect
|
|
33
37
|
|
|
@@ -35,7 +39,7 @@ Present the latest snapshot. Only an unambiguous affirmative reply for that snap
|
|
|
35
39
|
agent-infra-internal release-workflow publish {version}
|
|
36
40
|
```
|
|
37
41
|
|
|
38
|
-
Push refs normally, preserve partial success for replay, never force push, and inspect again after the operation.
|
|
42
|
+
Push refs normally, preserve partial success for replay, never force push, and inspect again after the operation. Explicitly list any incomplete platform release, npm, Homebrew, or smoke state; a successful Git ref push is not a complete release.
|
|
39
43
|
|
|
40
44
|
## 5. Report Facts
|
|
41
45
|
|
|
@@ -19,15 +19,19 @@ description: >
|
|
|
19
19
|
agent-infra-internal release-workflow inspect {version}
|
|
20
20
|
```
|
|
21
21
|
|
|
22
|
-
|
|
22
|
+
保留并展示该命令的完整非空 stdout。未 prepared 时执行 prepare 并重新 inspect;已准备或部分发布时复用当前事实。unknown 必须 blocked。
|
|
23
23
|
|
|
24
24
|
```bash
|
|
25
25
|
agent-infra-internal release-workflow prepare {version} --entropy-report {path}
|
|
26
26
|
```
|
|
27
27
|
|
|
28
|
+
展示 prepare 的 `status`、`error` 和 `operations`,包括里程碑关闭与后续里程碑创建结果。`failed` 或 `blocked` 时停止,不得请求发布授权;只有 prepare 成功且重新 inspect 得到的最新快照才可继续。
|
|
29
|
+
|
|
30
|
+
prepare 后必须重新 inspect。
|
|
31
|
+
|
|
28
32
|
## 3. 展示快照并确认
|
|
29
33
|
|
|
30
|
-
展示最新 snapshot
|
|
34
|
+
展示最新 snapshot 的完整 JSON,包括所有渠道状态。只有当前会话中针对该快照的无歧义明确肯定答复才授权发布;否定、调整、疑问、歧义或中断均停止。快照变化后重新确认。
|
|
31
35
|
|
|
32
36
|
## 4. 发布并复核
|
|
33
37
|
|
|
@@ -35,7 +39,7 @@ agent-infra-internal release-workflow prepare {version} --entropy-report {path}
|
|
|
35
39
|
agent-infra-internal release-workflow publish {version}
|
|
36
40
|
```
|
|
37
41
|
|
|
38
|
-
逐 ref 普通 push;部分成功可重放,禁止 force push。操作后重新 inspect
|
|
42
|
+
逐 ref 普通 push;部分成功可重放,禁止 force push。操作后重新 inspect,并明确列出仍未完成的平台 Release、npm、Homebrew 或 smoke 项。
|
|
39
43
|
|
|
40
44
|
## 5. 输出事实摘要
|
|
41
45
|
|
|
@@ -33,7 +33,7 @@ Comment parsing must not write the formal active directory. Step 6 declares one
|
|
|
33
33
|
### 1. Verify Input and Environment
|
|
34
34
|
|
|
35
35
|
Check:
|
|
36
|
-
- required `{issue-
|
|
36
|
+
- required `{issue-token}`
|
|
37
37
|
- optional `{task-id}`
|
|
38
38
|
- read `.agents/rules/issue-pr-commands.md` first and use its authentication commands to verify current platform access
|
|
39
39
|
|
|
@@ -41,7 +41,7 @@ If the user provided `{task-id}`, validate the `TASK-{yyyyMMdd-HHmmss}` format.
|
|
|
41
41
|
|
|
42
42
|
### 2. Fetch Issue Comments
|
|
43
43
|
|
|
44
|
-
Run `agent-infra-internal platform-comment list --issue {issue-
|
|
44
|
+
Run `agent-infra-internal platform-comment list --issue {issue-token}` to read all paginated comments while preserving order and comment IDs; the intent owns platform context, authentication, and upstream resolution.
|
|
45
45
|
|
|
46
46
|
### 3. Determine the task-id and Files to Restore
|
|
47
47
|
|
|
@@ -32,7 +32,7 @@ description: >
|
|
|
32
32
|
### 1. 验证输入与环境
|
|
33
33
|
|
|
34
34
|
检查:
|
|
35
|
-
- 必填参数 `{issue-
|
|
35
|
+
- 必填参数 `{issue-token}`
|
|
36
36
|
- 可选参数 `{task-id}`
|
|
37
37
|
- 执行前先读取 `.agents/rules/issue-pr-commands.md`,并按其中的认证命令验证当前平台访问能力
|
|
38
38
|
|
|
@@ -40,7 +40,7 @@ description: >
|
|
|
40
40
|
|
|
41
41
|
### 2. 获取 Issue 评论
|
|
42
42
|
|
|
43
|
-
调用 `agent-infra-internal platform-comment list --issue {issue-
|
|
43
|
+
调用 `agent-infra-internal platform-comment list --issue {issue-token}` 读取全部分页评论,保留原始顺序和评论 ID;平台上下文、认证和 upstream 由 internal intent 处理。
|
|
44
44
|
|
|
45
45
|
### 3. 确定 task-id 与待恢复文件
|
|
46
46
|
|
|
@@ -75,7 +75,7 @@ Before writing this round's `{review-artifact}`, create the controlled review sk
|
|
|
75
75
|
agent-infra-internal task-artifact {task-id} init --family review-analysis --artifact {review-artifact} --locale en
|
|
76
76
|
```
|
|
77
77
|
|
|
78
|
-
The skeleton contains identity metadata, stable section markers, and required headings only; complete review content is required before summary finalization. If structural finalization returns one provably safe error,
|
|
78
|
+
The skeleton contains identity metadata, stable section markers, and required headings only; complete review content is required before summary finalization. If structural finalization returns one provably safe error, it returns a controlled recovery candidate; edit only its `candidatePath`, then rerun the original finalizer with the same `recoveryId`. Candidate-only is a protocol authorization boundary, not OS isolation; arbitrary same-UID host writers are outside the protocol's protection claim, and fingerprint/state checks fail closed on anomalies.
|
|
79
79
|
|
|
80
80
|
Create `.agents/workspace/active/{task-id}/{review-artifact}`.
|
|
81
81
|
|
|
@@ -97,7 +97,7 @@ The intent atomically finalizes the report summary and returns the same ledger s
|
|
|
97
97
|
|
|
98
98
|
`manual-validation` is the data source for the `Manual-validation` count folded into review rows in `ai task log`; do not add a parallel manual-verification field.
|
|
99
99
|
|
|
100
|
-
If task.md has a valid `
|
|
100
|
+
If task.md has a valid `platform_issue_identity`, run `agent-infra-internal platform-comment sync {task-id} --kind task --agent {standard-agent-token}`, then `agent-infra-internal platform-comment sync {task-id} --kind artifact --artifact {review-artifact} --agent {standard-agent-token}`.
|
|
101
101
|
|
|
102
102
|
Before writing the summary, the finalization intent checks decision-detail ids; any visible duplicate returns a structured failure and preserves the artifact bytes, while the model decides whether a minimal edit is safe under the shared rule. If the safety gates fail, diagnostics repeat, no byte-level progress occurs, or the emergency cap is reached, stop before the completion event; the stop path must still show the existing review result instead of hiding the artifact.
|
|
103
103
|
|
|
@@ -78,7 +78,7 @@ agent-infra-internal task-snapshot {task-id} --format text
|
|
|
78
78
|
agent-infra-internal task-artifact {task-id} init --family review-analysis --artifact {review-artifact}
|
|
79
79
|
```
|
|
80
80
|
|
|
81
|
-
骨架不生成审查结论、发现或计数;完成审查内容后才能进入 summary finalizer。结构 finalizer
|
|
81
|
+
骨架不生成审查结论、发现或计数;完成审查内容后才能进入 summary finalizer。结构 finalizer 返回可证明的单个错误时,会返回受控 recovery candidate;只能编辑返回的 `candidatePath`,然后使用同一个 `recoveryId` 重跑原 finalizer。candidate-only 是协议授权边界,不是操作系统隔离;同 UID 的任意宿主写入者不在本协议的防护承诺内,异常由指纹/状态校验失败关闭。
|
|
82
82
|
|
|
83
83
|
创建 `.agents/workspace/active/{task-id}/{review-artifact}`。
|
|
84
84
|
|
|
@@ -100,7 +100,7 @@ agent-infra-internal task-artifact {task-id} init --family review-analysis --art
|
|
|
100
100
|
|
|
101
101
|
`manual-validation` 是 `ai task log` 中 review 行「人工校验点」(EN `Manual-validation`)计数的数据源;不要新增并行人工验证字段。
|
|
102
102
|
|
|
103
|
-
如果 task.md 中存在有效的 `
|
|
103
|
+
如果 task.md 中存在有效的 `platform_issue_identity`,调用 `agent-infra-internal platform-comment sync {task-id} --kind task --agent {standard-agent-token}`,再调用 `agent-infra-internal platform-comment sync {task-id} --kind artifact --artifact {review-artifact} --agent {standard-agent-token}`;失败按 `.agents/rules/issue-sync.md` 记录 warning。
|
|
104
104
|
|
|
105
105
|
最终化 intent 会在写入摘要前检查详情块 ID;任何可见重复都返回结构化失败并保持 artifact 字节不变,由模型按共享规则判断是否进行最小编辑。无法通过安全门、诊断重复、没有实际字节变化或达到紧急熔断时,停止在完成事件之前;停止路径仍必须展示已有审查结果,不得吞掉 artifact 内容。
|
|
106
106
|
|
|
@@ -27,7 +27,7 @@
|
|
|
27
27
|
"expected_action_pattern": "(Review Analysis|Analysis Review) \\(Round \\d+\\)"
|
|
28
28
|
},
|
|
29
29
|
"platform-sync": {
|
|
30
|
-
"when": "
|
|
30
|
+
"when": "platform_issue_identity_exists",
|
|
31
31
|
"expected_status_label": "status: pending-design-work",
|
|
32
32
|
"expected_comment_marker": "<!-- sync-issue:{task-id}:{artifact-stem} -->",
|
|
33
33
|
"verify_comment_content": true,
|
|
@@ -27,7 +27,7 @@
|
|
|
27
27
|
"expected_action_pattern": "(Review Analysis|Analysis Review) \\(Round \\d+\\)"
|
|
28
28
|
},
|
|
29
29
|
"platform-sync": {
|
|
30
|
-
"when": "
|
|
30
|
+
"when": "platform_issue_identity_exists",
|
|
31
31
|
"expected_status_label": "status: pending-design-work",
|
|
32
32
|
"expected_comment_marker": "<!-- sync-issue:{task-id}:{artifact-stem} -->",
|
|
33
33
|
"verify_comment_content": true,
|
|
@@ -7,7 +7,7 @@ Use this template when writing `review-analysis.md` or `review-analysis-r{N}.md`
|
|
|
7
7
|
## Output Template
|
|
8
8
|
|
|
9
9
|
```markdown
|
|
10
|
-
#
|
|
10
|
+
# Analysis Review Report
|
|
11
11
|
|
|
12
12
|
- **Review Round**: Round {review-round}
|
|
13
13
|
- **Artifact File**: `{review-artifact}`
|
|
@@ -16,6 +16,12 @@ Use this template when writing `review-analysis.md` or `review-analysis-r{N}.md`
|
|
|
16
16
|
|
|
17
17
|
## Review Summary
|
|
18
18
|
|
|
19
|
+
- **Reviewer**: {reviewer-name}
|
|
20
|
+
- **Review Time**: {timestamp}
|
|
21
|
+
- **Scope**: {file-count and major modules}
|
|
22
|
+
- **Overall Verdict**: {Approved / Changes Requested / Rejected}
|
|
23
|
+
- **Findings (AI-actionable)**: {unresolved-blockers} blockers, {unresolved-major} majors, {unresolved-minor} minors / **Manual validation**: 0
|
|
24
|
+
|
|
19
25
|
## Qualification Audit Review
|
|
20
26
|
|
|
21
27
|
> Use `.agents/rules/decision-qualification.md` to review the five tables: constraint dependencies, candidate qualification, classification results, upstream relations, and dependency snapshot.
|
|
@@ -40,12 +46,6 @@ Use this template when writing `review-analysis.md` or `review-analysis-r{N}.md`
|
|
|
40
46
|
| task_input_digest | non_constraint_input_digest | upstream_artifact_digest |
|
|
41
47
|
| --- | --- | --- |
|
|
42
48
|
|
|
43
|
-
- **Reviewer**: {reviewer-name}
|
|
44
|
-
- **Review Time**: {timestamp}
|
|
45
|
-
- **Scope**: {file-count and major modules}
|
|
46
|
-
- **Overall Verdict**: {Approved / Changes Requested / Rejected}
|
|
47
|
-
- **Findings (AI-actionable)**: {unresolved-blockers} blockers, {unresolved-major} majors, {unresolved-minor} minors / **Manual validation**: 0
|
|
48
|
-
|
|
49
49
|
## Inspection Coverage
|
|
50
50
|
|
|
51
51
|
| pass_id | scope | evidence | result | gaps_or_assumptions |
|
|
@@ -16,6 +16,12 @@
|
|
|
16
16
|
|
|
17
17
|
## 审查摘要
|
|
18
18
|
|
|
19
|
+
- **审查者**:{reviewer-name}
|
|
20
|
+
- **审查时间**:{timestamp}
|
|
21
|
+
- **审查范围**:{file-count and major modules}
|
|
22
|
+
- **总体结论**:{通过 / 需要修改 / 拒绝}
|
|
23
|
+
- **发现(AI 可处理)**:{unresolved-blockers} 阻塞项,{unresolved-major} 主要,{unresolved-minor} 次要 / **人工校验**:0
|
|
24
|
+
|
|
19
25
|
## 资格审计复核
|
|
20
26
|
|
|
21
27
|
> 按 `.agents/rules/decision-qualification.md` 复核:约束依赖、候选资格、分类结果、上游关系和依赖快照五张表。
|
|
@@ -40,12 +46,6 @@
|
|
|
40
46
|
| task_input_digest | non_constraint_input_digest | upstream_artifact_digest |
|
|
41
47
|
| --- | --- | --- |
|
|
42
48
|
|
|
43
|
-
- **审查者**:{reviewer-name}
|
|
44
|
-
- **审查时间**:{timestamp}
|
|
45
|
-
- **审查范围**:{file-count and major modules}
|
|
46
|
-
- **总体结论**:{通过 / 需要修改 / 拒绝}
|
|
47
|
-
- **发现(AI 可处理)**:{unresolved-blockers} 阻塞项,{unresolved-major} 主要,{unresolved-minor} 次要 / **人工校验**:0
|
|
48
|
-
|
|
49
49
|
## 检视覆盖声明
|
|
50
50
|
|
|
51
51
|
| pass_id | scope | evidence | result | gaps_or_assumptions |
|
|
@@ -102,7 +102,7 @@ Before writing this round's `{review-artifact}`, create the controlled review sk
|
|
|
102
102
|
agent-infra-internal task-artifact {task-id} init --family review-code --artifact {review-artifact} --locale en
|
|
103
103
|
```
|
|
104
104
|
|
|
105
|
-
The skeleton does not generate a verdict, findings, or counts; complete review content is required before summary finalization. If structural finalization returns one provably safe error,
|
|
105
|
+
The skeleton does not generate a verdict, findings, or counts; complete review content is required before summary finalization. If structural finalization returns one provably safe error, it returns a controlled recovery candidate; edit only its `candidatePath`, then rerun the original finalizer with the same `recoveryId`. Candidate-only is a protocol authorization boundary, not OS isolation; arbitrary same-UID host writers are outside the protocol's protection claim, and fingerprint/state checks fail closed on anomalies.
|
|
106
106
|
|
|
107
107
|
Create `.agents/workspace/active/{task-id}/{review-artifact}`.
|
|
108
108
|
|
|
@@ -130,7 +130,7 @@ Update task.md:
|
|
|
130
130
|
Always include the `Manual-validation: {n}` field in the done log, including when it is 0.
|
|
131
131
|
`manual-validation` is the data source for the `Manual-validation` count folded into review rows in `ai task log`; do not add a parallel manual-verification field.
|
|
132
132
|
|
|
133
|
-
If task.md contains a valid `
|
|
133
|
+
If task.md contains a valid `platform_issue_identity`, perform these sync actions (skip and continue on any failure):
|
|
134
134
|
- Run `agent-infra-internal platform-issue sync {task-id} --agent {standard-agent-token} --status in-progress`
|
|
135
135
|
- Run `agent-infra-internal platform-comment sync {task-id} --kind task --agent {standard-agent-token}`
|
|
136
136
|
- Run `agent-infra-internal platform-comment sync {task-id} --kind artifact --artifact {review-artifact} --agent {standard-agent-token}`
|
|
@@ -101,7 +101,7 @@ agent-infra-internal task-snapshot {task-id} --format text
|
|
|
101
101
|
agent-infra-internal task-artifact {task-id} init --family review-code --artifact {review-artifact}
|
|
102
102
|
```
|
|
103
103
|
|
|
104
|
-
骨架不生成审查结论、发现或计数;完成审查内容后才能进入 summary finalizer。结构 finalizer
|
|
104
|
+
骨架不生成审查结论、发现或计数;完成审查内容后才能进入 summary finalizer。结构 finalizer 返回可证明的单个错误时,会返回受控 recovery candidate;只能编辑返回的 `candidatePath`,然后使用同一个 `recoveryId` 重跑原 finalizer。candidate-only 是协议授权边界,不是操作系统隔离;同 UID 的任意宿主写入者不在本协议的防护承诺内,异常由指纹/状态校验失败关闭。
|
|
105
105
|
|
|
106
106
|
创建 `.agents/workspace/active/{task-id}/{review-artifact}`。
|
|
107
107
|
|
|
@@ -128,7 +128,7 @@ agent-infra-internal task-artifact {task-id} init --family review-code --artifac
|
|
|
128
128
|
完成日志必须始终写入 `Manual-validation: {n}` 字段,0 也保留。
|
|
129
129
|
`manual-validation` 是 `ai task log` 中 review 行「人工校验点」(EN `Manual-validation`)计数的数据源;不要新增并行人工验证字段。
|
|
130
130
|
|
|
131
|
-
如果 task.md 中存在有效的 `
|
|
131
|
+
如果 task.md 中存在有效的 `platform_issue_identity`,执行以下同步操作(任一失败则跳过并继续):
|
|
132
132
|
- 调用 `agent-infra-internal platform-issue sync {task-id} --agent {standard-agent-token} --status in-progress`
|
|
133
133
|
- 调用 `agent-infra-internal platform-comment sync {task-id} --kind task --agent {standard-agent-token}`
|
|
134
134
|
- 调用 `agent-infra-internal platform-comment sync {task-id} --kind artifact --artifact {review-artifact} --agent {standard-agent-token}`
|
|
@@ -28,7 +28,7 @@
|
|
|
28
28
|
"expected_action_pattern": "(Review Code|Code Review) \\(Round \\d+\\)"
|
|
29
29
|
},
|
|
30
30
|
"platform-sync": {
|
|
31
|
-
"when": "
|
|
31
|
+
"when": "platform_issue_identity_exists",
|
|
32
32
|
"expected_status_label": "status: in-progress",
|
|
33
33
|
"expected_comment_marker": "<!-- sync-issue:{task-id}:{artifact-stem} -->",
|
|
34
34
|
"verify_comment_content": true,
|
|
@@ -28,7 +28,7 @@
|
|
|
28
28
|
"expected_action_pattern": "(Review Code|Code Review) \\(Round \\d+\\)"
|
|
29
29
|
},
|
|
30
30
|
"platform-sync": {
|
|
31
|
-
"when": "
|
|
31
|
+
"when": "platform_issue_identity_exists",
|
|
32
32
|
"expected_status_label": "status: in-progress",
|
|
33
33
|
"expected_comment_marker": "<!-- sync-issue:{task-id}:{artifact-stem} -->",
|
|
34
34
|
"verify_comment_content": true,
|
|
@@ -16,6 +16,18 @@ Use this template when writing `review-code.md` or `review-code-r{N}.md`.
|
|
|
16
16
|
|
|
17
17
|
## Review Summary
|
|
18
18
|
|
|
19
|
+
- **Reviewer**: {reviewer-name}
|
|
20
|
+
- **Review Time**: {timestamp}
|
|
21
|
+
- **Scope**: {file-count and major modules}
|
|
22
|
+
- **Review Target Commit**: {target branch SHA M read once from the task-bound remote/base at review start; never overwritten by a later live target}
|
|
23
|
+
- **Reviewed Head**: {local HEAD R captured once for this round; must equal this round's HEAD}
|
|
24
|
+
- **Review Baseline Commit**: {compatibility display of R; must equal Reviewed Head}
|
|
25
|
+
- **Reviewed Diff Base**: {D used for the complete diff/fingerprint; must equal merge-base(R, saved M)}
|
|
26
|
+
- **Reviewed Diff Fingerprint**: {fingerprint field from git-workflow snapshot}
|
|
27
|
+
- **Reviewed Snapshot Tree**: {tree field from git-workflow snapshot}
|
|
28
|
+
- **Overall Verdict**: {Approved / Changes Requested / Rejected}
|
|
29
|
+
- **Findings (AI-actionable)**: {unresolved-blockers} blockers, {unresolved-major} majors, {unresolved-minor} minors / **Manual validation**: 0
|
|
30
|
+
|
|
19
31
|
## Qualification Audit Review
|
|
20
32
|
|
|
21
33
|
> Use `.agents/rules/decision-qualification.md` to review the five tables: constraint dependencies, candidate qualification, classification results, upstream relations, and dependency snapshot.
|
|
@@ -40,18 +52,6 @@ Use this template when writing `review-code.md` or `review-code-r{N}.md`.
|
|
|
40
52
|
| task_input_digest | non_constraint_input_digest | upstream_artifact_digest |
|
|
41
53
|
| --- | --- | --- |
|
|
42
54
|
|
|
43
|
-
- **Reviewer**: {reviewer-name}
|
|
44
|
-
- **Review Time**: {timestamp}
|
|
45
|
-
- **Scope**: {file-count and major modules}
|
|
46
|
-
- **Review Target Commit**: {target branch SHA M read once from the task-bound remote/base at review start; never overwritten by a later live target}
|
|
47
|
-
- **Reviewed Head**: {local HEAD R captured once for this round; must equal this round's HEAD}
|
|
48
|
-
- **Review Baseline Commit**: {compatibility display of R; must equal Reviewed Head}
|
|
49
|
-
- **Reviewed Diff Base**: {D used for the complete diff/fingerprint; must equal merge-base(R, saved M)}
|
|
50
|
-
- **Reviewed Diff Fingerprint**: {fingerprint field from git-workflow snapshot}
|
|
51
|
-
- **Reviewed Snapshot Tree**: {tree field from git-workflow snapshot}
|
|
52
|
-
- **Overall Verdict**: {Approved / Changes Requested / Rejected} (pick exactly one; combined phrases will fail the verify gate)
|
|
53
|
-
- **Findings (AI-actionable)**: {unresolved-blockers} blockers, {unresolved-major} majors, {unresolved-minor} minors / **Manual validation**: 0
|
|
54
|
-
|
|
55
55
|
## Inspection Coverage
|
|
56
56
|
|
|
57
57
|
| pass_id | scope | evidence | result | gaps_or_assumptions |
|
|
@@ -16,6 +16,18 @@
|
|
|
16
16
|
|
|
17
17
|
## 审查摘要
|
|
18
18
|
|
|
19
|
+
- **审查者**:{reviewer-name}
|
|
20
|
+
- **审查时间**:{timestamp}
|
|
21
|
+
- **审查范围**:{file-count and major modules}
|
|
22
|
+
- **审查目标提交**:{本轮一次性从任务绑定 remote/base 读取的目标分支 SHA M;不可被后续实时目标覆盖}
|
|
23
|
+
- **审查已检视提交**:{本轮一次性捕获的本地 HEAD R;必须等于本轮 HEAD}
|
|
24
|
+
- **审查基线提交**:{R 的兼容显示字段;必须与审查已检视提交相同}
|
|
25
|
+
- **审查差异基线**:{用于完整 diff/fingerprint 的 D;必须等于 merge-base(R, saved M)}
|
|
26
|
+
- **审查差异指纹**:{git-workflow snapshot 输出的 fingerprint 字段}
|
|
27
|
+
- **审查快照树**:{git-workflow snapshot 输出的 tree 字段}
|
|
28
|
+
- **总体结论**:{通过 / 需要修改 / 拒绝}
|
|
29
|
+
- **发现(AI 可处理)**:{unresolved-blockers} 阻塞项,{unresolved-major} 主要,{unresolved-minor} 次要 / **人工校验**:0
|
|
30
|
+
|
|
19
31
|
## 资格审计复核
|
|
20
32
|
|
|
21
33
|
> 按 `.agents/rules/decision-qualification.md` 复核:约束依赖、候选资格、分类结果、上游关系和依赖快照五张表。
|
|
@@ -40,18 +52,6 @@
|
|
|
40
52
|
| task_input_digest | non_constraint_input_digest | upstream_artifact_digest |
|
|
41
53
|
| --- | --- | --- |
|
|
42
54
|
|
|
43
|
-
- **审查者**:{reviewer-name}
|
|
44
|
-
- **审查时间**:{timestamp}
|
|
45
|
-
- **审查范围**:{file-count and major modules}
|
|
46
|
-
- **审查目标提交**:{本轮一次性从任务绑定 remote/base 读取的目标分支 SHA M;不可被后续实时目标覆盖}
|
|
47
|
-
- **审查已检视提交**:{本轮一次性捕获的本地 HEAD R;必须等于本轮 HEAD}
|
|
48
|
-
- **审查基线提交**:{R 的兼容显示字段;必须与审查已检视提交相同}
|
|
49
|
-
- **审查差异基线**:{用于完整 diff/fingerprint 的 D;必须等于 merge-base(R, saved M)}
|
|
50
|
-
- **审查差异指纹**:{git-workflow snapshot 输出的 fingerprint 字段}
|
|
51
|
-
- **审查快照树**:{git-workflow snapshot 输出的 tree 字段}
|
|
52
|
-
- **总体结论**:{通过 / 需要修改 / 拒绝}(恰取一个;禁止写组合短语,否则 verify gate 失败)
|
|
53
|
-
- **发现(AI 可处理)**:{unresolved-blockers} 阻塞项,{unresolved-major} 主要,{unresolved-minor} 次要 / **人工校验**:0
|
|
54
|
-
|
|
55
55
|
## 检视覆盖声明
|
|
56
56
|
|
|
57
57
|
| pass_id | scope | evidence | result | gaps_or_assumptions |
|
|
@@ -75,7 +75,7 @@ Before writing this round's `{review-artifact}`, create the controlled review sk
|
|
|
75
75
|
agent-infra-internal task-artifact {task-id} init --family review-plan --artifact {review-artifact} --locale en
|
|
76
76
|
```
|
|
77
77
|
|
|
78
|
-
The skeleton contains identity metadata, stable section markers, and required headings only; complete review content is required before summary finalization. If structural finalization returns one provably safe error,
|
|
78
|
+
The skeleton contains identity metadata, stable section markers, and required headings only; complete review content is required before summary finalization. If structural finalization returns one provably safe error, it returns a controlled recovery candidate; edit only its `candidatePath`, then rerun the original finalizer with the same `recoveryId`. Candidate-only is a protocol authorization boundary, not OS isolation; arbitrary same-UID host writers are outside the protocol's protection claim, and fingerprint/state checks fail closed on anomalies.
|
|
79
79
|
|
|
80
80
|
Create `.agents/workspace/active/{task-id}/{review-artifact}`.
|
|
81
81
|
|
|
@@ -97,7 +97,7 @@ The intent atomically finalizes the report summary and returns the same ledger s
|
|
|
97
97
|
|
|
98
98
|
`manual-validation` is the data source for the `Manual-validation` count folded into review rows in `ai task log`; do not add a parallel manual-verification field.
|
|
99
99
|
|
|
100
|
-
If task.md has a valid `
|
|
100
|
+
If task.md has a valid `platform_issue_identity`, run `agent-infra-internal platform-comment sync {task-id} --kind task --agent {standard-agent-token}`, then `agent-infra-internal platform-comment sync {task-id} --kind artifact --artifact {review-artifact} --agent {standard-agent-token}`.
|
|
101
101
|
|
|
102
102
|
Before writing the summary, the finalization intent checks decision-detail ids; any visible duplicate returns a structured failure and preserves the artifact bytes, while the model decides whether a minimal edit is safe under the shared rule. If the safety gates fail, diagnostics repeat, no byte-level progress occurs, or the emergency cap is reached, stop before the completion event; the stop path must still show the existing review result instead of hiding the artifact.
|
|
103
103
|
|
|
@@ -78,7 +78,7 @@ agent-infra-internal task-snapshot {task-id} --format text
|
|
|
78
78
|
agent-infra-internal task-artifact {task-id} init --family review-plan --artifact {review-artifact}
|
|
79
79
|
```
|
|
80
80
|
|
|
81
|
-
骨架不生成审查结论、发现或计数;完成审查内容后才能进入 summary finalizer。结构 finalizer
|
|
81
|
+
骨架不生成审查结论、发现或计数;完成审查内容后才能进入 summary finalizer。结构 finalizer 返回可证明的单个错误时,会返回受控 recovery candidate;只能编辑返回的 `candidatePath`,然后使用同一个 `recoveryId` 重跑原 finalizer。candidate-only 是协议授权边界,不是操作系统隔离;同 UID 的任意宿主写入者不在本协议的防护承诺内,异常由指纹/状态校验失败关闭。
|
|
82
82
|
|
|
83
83
|
创建 `.agents/workspace/active/{task-id}/{review-artifact}`。
|
|
84
84
|
|
|
@@ -100,7 +100,7 @@ agent-infra-internal task-artifact {task-id} init --family review-plan --artifac
|
|
|
100
100
|
|
|
101
101
|
`manual-validation` 是 `ai task log` 中 review 行「人工校验点」(EN `Manual-validation`)计数的数据源;不要新增并行人工验证字段。
|
|
102
102
|
|
|
103
|
-
如果 task.md 中存在有效的 `
|
|
103
|
+
如果 task.md 中存在有效的 `platform_issue_identity`,调用 `agent-infra-internal platform-comment sync {task-id} --kind task --agent {standard-agent-token}`,再调用 `agent-infra-internal platform-comment sync {task-id} --kind artifact --artifact {review-artifact} --agent {standard-agent-token}`;失败按 `.agents/rules/issue-sync.md` 记录 warning。
|
|
104
104
|
|
|
105
105
|
最终化 intent 会在写入摘要前检查详情块 ID;任何可见重复都返回结构化失败并保持 artifact 字节不变,由模型按共享规则判断是否进行最小编辑。无法通过安全门、诊断重复、没有实际字节变化或达到紧急熔断时,停止在完成事件之前;停止路径仍必须展示已有审查结果,不得吞掉 artifact 内容。
|
|
106
106
|
|
|
@@ -27,7 +27,7 @@
|
|
|
27
27
|
"expected_action_pattern": "(Review Plan|Plan Review) \\(Round \\d+\\)"
|
|
28
28
|
},
|
|
29
29
|
"platform-sync": {
|
|
30
|
-
"when": "
|
|
30
|
+
"when": "platform_issue_identity_exists",
|
|
31
31
|
"expected_status_label": "status: pending-design-work",
|
|
32
32
|
"expected_comment_marker": "<!-- sync-issue:{task-id}:{artifact-stem} -->",
|
|
33
33
|
"verify_comment_content": true,
|
|
@@ -27,7 +27,7 @@
|
|
|
27
27
|
"expected_action_pattern": "(Review Plan|Plan Review) \\(Round \\d+\\)"
|
|
28
28
|
},
|
|
29
29
|
"platform-sync": {
|
|
30
|
-
"when": "
|
|
30
|
+
"when": "platform_issue_identity_exists",
|
|
31
31
|
"expected_status_label": "status: pending-design-work",
|
|
32
32
|
"expected_comment_marker": "<!-- sync-issue:{task-id}:{artifact-stem} -->",
|
|
33
33
|
"verify_comment_content": true,
|
|
@@ -7,7 +7,7 @@ Use this template when writing `review-plan.md` or `review-plan-r{N}.md`.
|
|
|
7
7
|
## Output Template
|
|
8
8
|
|
|
9
9
|
```markdown
|
|
10
|
-
#
|
|
10
|
+
# Plan Review Report
|
|
11
11
|
|
|
12
12
|
- **Review Round**: Round {review-round}
|
|
13
13
|
- **Artifact File**: `{review-artifact}`
|
|
@@ -16,6 +16,12 @@ Use this template when writing `review-plan.md` or `review-plan-r{N}.md`.
|
|
|
16
16
|
|
|
17
17
|
## Review Summary
|
|
18
18
|
|
|
19
|
+
- **Reviewer**: {reviewer-name}
|
|
20
|
+
- **Review Time**: {timestamp}
|
|
21
|
+
- **Scope**: {file-count and major modules}
|
|
22
|
+
- **Overall Verdict**: {Approved / Changes Requested / Rejected}
|
|
23
|
+
- **Findings (AI-actionable)**: {unresolved-blockers} blockers, {unresolved-major} majors, {unresolved-minor} minors / **Manual validation**: 0
|
|
24
|
+
|
|
19
25
|
## Qualification Audit Review
|
|
20
26
|
|
|
21
27
|
> Use `.agents/rules/decision-qualification.md` to review the five tables: constraint dependencies, candidate qualification, classification results, upstream relations, and dependency snapshot.
|
|
@@ -40,12 +46,6 @@ Use this template when writing `review-plan.md` or `review-plan-r{N}.md`.
|
|
|
40
46
|
| task_input_digest | non_constraint_input_digest | upstream_artifact_digest |
|
|
41
47
|
| --- | --- | --- |
|
|
42
48
|
|
|
43
|
-
- **Reviewer**: {reviewer-name}
|
|
44
|
-
- **Review Time**: {timestamp}
|
|
45
|
-
- **Scope**: {file-count and major modules}
|
|
46
|
-
- **Overall Verdict**: {Approved / Changes Requested / Rejected}
|
|
47
|
-
- **Findings (AI-actionable)**: {unresolved-blockers} blockers, {unresolved-major} majors, {unresolved-minor} minors / **Manual validation**: 0
|
|
48
|
-
|
|
49
49
|
## Inspection Coverage
|
|
50
50
|
|
|
51
51
|
| pass_id | scope | evidence | result | gaps_or_assumptions |
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
## 输出模板
|
|
8
8
|
|
|
9
9
|
```markdown
|
|
10
|
-
#
|
|
10
|
+
# 技术方案审查报告
|
|
11
11
|
|
|
12
12
|
- **审查轮次**:第 {review-round} 轮
|
|
13
13
|
- **产物文件**:`{review-artifact}`
|
|
@@ -16,6 +16,12 @@
|
|
|
16
16
|
|
|
17
17
|
## 审查摘要
|
|
18
18
|
|
|
19
|
+
- **审查者**:{reviewer-name}
|
|
20
|
+
- **审查时间**:{timestamp}
|
|
21
|
+
- **审查范围**:{file-count and major modules}
|
|
22
|
+
- **总体结论**:{通过 / 需要修改 / 拒绝}
|
|
23
|
+
- **发现(AI 可处理)**:{unresolved-blockers} 阻塞项,{unresolved-major} 主要,{unresolved-minor} 次要 / **人工校验**:0
|
|
24
|
+
|
|
19
25
|
## 资格审计复核
|
|
20
26
|
|
|
21
27
|
> 按 `.agents/rules/decision-qualification.md` 复核:约束依赖、候选资格、分类结果、上游关系和依赖快照五张表。
|
|
@@ -40,12 +46,6 @@
|
|
|
40
46
|
| task_input_digest | non_constraint_input_digest | upstream_artifact_digest |
|
|
41
47
|
| --- | --- | --- |
|
|
42
48
|
|
|
43
|
-
- **审查者**:{reviewer-name}
|
|
44
|
-
- **审查时间**:{timestamp}
|
|
45
|
-
- **审查范围**:{file-count and major modules}
|
|
46
|
-
- **总体结论**:{通过 / 需要修改 / 拒绝}
|
|
47
|
-
- **发现(AI 可处理)**:{unresolved-blockers} 阻塞项,{unresolved-major} 主要,{unresolved-minor} 次要 / **人工校验**:0
|
|
48
|
-
|
|
49
49
|
## 检视覆盖声明
|
|
50
50
|
|
|
51
51
|
| pass_id | scope | evidence | result | gaps_or_assumptions |
|
|
@@ -24,7 +24,7 @@
|
|
|
24
24
|
"expected_action_pattern": "Review PR \\(Round \\d+\\)"
|
|
25
25
|
},
|
|
26
26
|
"platform-sync": {
|
|
27
|
-
"when": "
|
|
27
|
+
"when": "platform_issue_identity_exists",
|
|
28
28
|
"expected_comment_marker": "<!-- sync-issue:{task-id}:{artifact-stem} -->",
|
|
29
29
|
"verify_comment_content": true,
|
|
30
30
|
"verify_task_comment_content": true,
|
|
@@ -24,7 +24,7 @@
|
|
|
24
24
|
"expected_action_pattern": "Review PR \\(Round \\d+\\)"
|
|
25
25
|
},
|
|
26
26
|
"platform-sync": {
|
|
27
|
-
"when": "
|
|
27
|
+
"when": "platform_issue_identity_exists",
|
|
28
28
|
"expected_comment_marker": "<!-- sync-issue:{task-id}:{artifact-stem} -->",
|
|
29
29
|
"verify_comment_content": true,
|
|
30
30
|
"verify_task_comment_content": true,
|
|
@@ -17,13 +17,13 @@ Evidence scenario classification (S1/S2/S3) → freshness/alignment → risk gra
|
|
|
17
17
|
|
|
18
18
|
- Exactly one hit → `unique`; multiple without a unique winner → `ambiguous` (candidate list); zero hits → `none`.
|
|
19
19
|
- Ambiguous hosts fail closed and never enter evidence classification. `pr-review-grade resolve-host --pr <N>` returns a typed `HostResolution`, and `decide` explicitly rejects `ambiguous`.
|
|
20
|
-
- `Closes/Fixes #N` in the PR body (case-insensitive, comma/space separated, lists supported) is parsed by `extractClosingIssueNumbers`; a local `active/*/task.md` verified `pr_delivery_fact.identity.number`
|
|
20
|
+
- `Closes/Fixes #N` in the PR body (case-insensitive, comma/space separated, lists supported) is parsed by `extractClosingIssueNumbers`; a local `active/*/task.md` canonical `platform_issue_identity` numeric projection and verified `pr_delivery_fact.identity.number` are used for matching, and a task hit via both paths deduplicates to a single candidate.
|
|
21
21
|
|
|
22
22
|
## Evidence Scenario Classification (S1 → S2 → S3)
|
|
23
23
|
|
|
24
24
|
| Scenario | Criteria |
|
|
25
25
|
|----------|----------|
|
|
26
|
-
| S1 complete & trusted | unique task with
|
|
26
|
+
| S1 complete & trusted | unique task with a canonical Issue identity whose numeric projection matches + complete `analysis`/`plan`/`code` and all three review families + latest `pr-review*` reviewed head == current head + trusted source |
|
|
27
27
|
| S2 partial / suspect | task exists but key artifacts are missing, or the head drifted, or the source is untrusted / cannot prove alignment with the current head |
|
|
28
28
|
| S3 PR-only | no host; or unique task with no lifecycle artifacts at all and no prior `pr-review*` |
|
|
29
29
|
|
|
@@ -33,7 +33,7 @@ Evidence scenario classification (S1/S2/S3) → freshness/alignment → risk gra
|
|
|
33
33
|
## Freshness and Alignment
|
|
34
34
|
|
|
35
35
|
- Freshness benchmark = the reviewed head SHA recorded by the latest `pr-review*`, compared character-for-character with the current head: match → `fresh`, otherwise → `stale`.
|
|
36
|
-
- Alignment = freshness is `fresh` and the
|
|
36
|
+
- Alignment = freshness is `fresh` and the canonical Issue identity numeric projection / verified `pr_delivery_fact.identity.number` match the resolution result.
|
|
37
37
|
- No prior `pr-review*` → `n/a` / `n/a` (first-review special case).
|
|
38
38
|
|
|
39
39
|
## Risk Grading (pure evidence)
|
|
@@ -17,13 +17,13 @@
|
|
|
17
17
|
|
|
18
18
|
- 唯一命中 → `unique`;多个且无法唯一 → `ambiguous`(候选列表);零命中 → `none`。
|
|
19
19
|
- 多宿主歧义即 fail closed:不进入证据分类;由 `pr-review-grade resolve-host --pr <N>` 返回 typed `HostResolution`,`decide` 对 `ambiguous` 显式拒绝。
|
|
20
|
-
- PR body 的 `Closes/Fixes #N`(大小写不敏感、逗号/空格分隔、支持列表)经 `extractClosingIssueNumbers` 解析;本地 `active/*/task.md` 的 verified `pr_delivery_fact.identity.number`
|
|
20
|
+
- PR body 的 `Closes/Fixes #N`(大小写不敏感、逗号/空格分隔、支持列表)经 `extractClosingIssueNumbers` 解析;本地 `active/*/task.md` 的 canonical `platform_issue_identity` numeric projection 与 verified `pr_delivery_fact.identity.number` 用于匹配,同一任务按单候选去重。
|
|
21
21
|
|
|
22
22
|
## 证据场景分类(S1 → S2 → S3)
|
|
23
23
|
|
|
24
24
|
| 场景 | 判据 |
|
|
25
25
|
|------|------|
|
|
26
|
-
| S1 完整可信 | 唯一任务且
|
|
26
|
+
| S1 完整可信 | 唯一任务且 canonical Issue identity 的 numeric projection 与远端一致 + `analysis`/`plan`/`code` 及三族 review 齐全 + 最新 `pr-review*` 被审 head == 当前 head + 来源受信 |
|
|
27
27
|
| S2 部分/可疑 | 任务存在但 artifact 缺失关键产物,或 head 漂移,或来源不可信 / 无法证明与当前 head 对齐 |
|
|
28
28
|
| S3 仅 PR | 无宿主;或任务唯一但无任何生命周期 artifact 且无先前 `pr-review*` |
|
|
29
29
|
|
|
@@ -33,7 +33,7 @@
|
|
|
33
33
|
## 新鲜度与对齐
|
|
34
34
|
|
|
35
35
|
- 新鲜度基准 = 上一轮 `pr-review*` 记录的被审 head SHA,与当前 head 逐字符比对:一致 → `fresh`,否则 → `stale`。
|
|
36
|
-
- 对齐 = freshness 为 fresh 且
|
|
36
|
+
- 对齐 = freshness 为 fresh 且 canonical Issue identity 的 numeric projection / verified `pr_delivery_fact.identity.number` 与解析结果一致。
|
|
37
37
|
- 无先前 `pr-review*` → `n/a` / `n/a`(首轮特例)。
|
|
38
38
|
|
|
39
39
|
## 风险分级(纯证据口径)
|