@fitlab-ai/agent-infra 0.9.12 → 0.9.14
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 +11 -11
- package/README.zh-CN.md +11 -11
- package/bin/cli.ts +26 -9
- package/dist/bin/cli.js +173 -157
- package/dist/bin/internal-cli.js +66 -40
- package/dist/lib/agent-client.js +5 -0
- package/dist/lib/agent-clients/next-steps.js +6 -1
- package/dist/lib/decide.js +3 -3
- package/dist/lib/internal/agent-client.js +5 -2
- package/dist/lib/internal/cli-route-inventory.js +152 -0
- package/dist/lib/internal/codex-lifecycle.js +9 -6
- package/dist/lib/internal/codex-sandbox-controller.js +8 -2
- package/dist/lib/internal/git-workflow.js +10 -6
- package/dist/lib/internal/platform-checks.js +19 -7
- package/dist/lib/internal/platform-comment.js +25 -13
- package/dist/lib/internal/platform-context.js +6 -3
- package/dist/lib/internal/platform-issue.js +20 -13
- package/dist/lib/internal/platform-metadata.js +88 -0
- package/dist/lib/internal/platform-pr-review.js +26 -13
- package/dist/lib/internal/platform-pr.js +84 -31
- package/dist/lib/internal/platform-release-notes.js +9 -6
- package/dist/lib/internal/platform-security.js +93 -0
- package/dist/lib/internal/pr-review-grade.js +25 -12
- package/dist/lib/internal/release-workflow.js +23 -9
- package/dist/lib/internal/sandbox-control.js +50 -7
- package/dist/lib/internal/task-activity.js +16 -7
- package/dist/lib/internal/task-artifact.js +235 -24
- package/dist/lib/internal/task-context.js +4 -1
- package/dist/lib/internal/task-create.js +50 -17
- package/dist/lib/internal/task-delivery.js +4 -1
- package/dist/lib/internal/task-event.js +10 -4
- package/dist/lib/internal/task-finalization.js +6 -3
- package/dist/lib/internal/task-invalidation.js +63 -0
- package/dist/lib/internal/task-ledger.js +20 -6
- package/dist/lib/internal/task-lifecycle.js +6 -3
- package/dist/lib/internal/task-operation-registry.js +421 -0
- package/dist/lib/internal/task-orchestration.js +12 -0
- package/dist/lib/internal/task-override.js +14 -7
- package/dist/lib/internal/task-qualification.js +90 -0
- package/dist/lib/internal/task-review.js +7 -4
- package/dist/lib/internal/task-short-id.js +11 -1
- package/dist/lib/internal/task-snapshot.js +4 -1
- package/dist/lib/internal/task-validate.js +7 -2
- package/dist/lib/internal/task-verify.js +11 -7
- package/dist/lib/internal/task-warning.js +11 -4
- package/dist/lib/platform/adapters.js +1 -3
- package/dist/lib/platform/change-request-git-evidence.js +27 -7
- package/dist/lib/platform/comment-safety.js +226 -0
- package/dist/lib/platform/completion-backfill.js +6 -5
- package/dist/lib/platform/context.js +70 -130
- package/dist/lib/platform/github-client.js +1 -1
- package/dist/lib/platform/github-provider.js +1130 -0
- package/dist/lib/platform/in-label-sync.js +143 -0
- package/dist/lib/platform/issue-comments.js +237 -72
- package/dist/lib/platform/issues.js +335 -189
- package/dist/lib/platform/metadata-labels.js +6 -2
- package/dist/lib/platform/none-provider.js +28 -0
- package/dist/lib/platform/pr-change-report.js +545 -0
- package/dist/lib/platform/pr-checks.js +119 -104
- package/dist/lib/platform/pr-review.js +88 -72
- package/dist/lib/platform/pr-summary.js +541 -50
- package/dist/lib/platform/provider-bridge.js +45 -0
- package/dist/lib/platform/provider-contract.d.ts +553 -0
- package/dist/lib/platform/provider-contract.js +99 -0
- package/dist/lib/platform/provider-loader.js +251 -0
- package/dist/lib/platform/provider-validation.js +577 -0
- package/dist/lib/platform/pull-request-metadata.js +8 -6
- package/dist/lib/platform/pull-requests.js +734 -543
- package/dist/lib/platform/release-notes.js +78 -55
- package/dist/lib/platform/releases.js +79 -50
- package/dist/lib/platform/repository-metadata.js +377 -0
- package/dist/lib/platform/resource-identity.d.ts +26 -0
- package/dist/lib/platform/resource-identity.js +92 -0
- package/dist/lib/platform/security-alerts.js +155 -0
- package/dist/lib/platform/task-identities.js +31 -0
- package/dist/lib/platform/verification-required.js +11 -12
- package/dist/lib/platform/verification-sync.js +129 -248
- package/dist/lib/pr-review/evidence-grading.js +19 -6
- package/dist/lib/process-data/index.js +7 -0
- package/dist/lib/run/index.js +68 -23
- package/dist/lib/sandbox/commands/control-status.js +22 -0
- package/dist/lib/sandbox/commands/create.js +32 -6
- package/dist/lib/sandbox/commands/ls.js +5 -0
- package/dist/lib/sandbox/commands/rm.js +827 -120
- package/dist/lib/sandbox/commands/show.js +16 -0
- package/dist/lib/sandbox/control/client.js +174 -19
- package/dist/lib/sandbox/control/completed-reentry.js +85 -0
- package/dist/lib/sandbox/control/container-identity.js +28 -31
- package/dist/lib/sandbox/control/executor.js +151 -16
- package/dist/lib/sandbox/control/lifecycle.js +621 -127
- package/dist/lib/sandbox/control/native-file-lock.js +177 -0
- package/dist/lib/sandbox/control/protocol.js +77 -0
- package/dist/lib/sandbox/control/server.js +677 -34
- package/dist/lib/sandbox/control/state.js +209 -4
- package/dist/lib/sandbox/control/task-view.js +183 -0
- package/dist/lib/sandbox/engines/authority.js +289 -0
- package/dist/lib/sandbox/engines/docker-exact-discovery.js +97 -0
- package/dist/lib/sandbox/index.js +5 -0
- package/dist/lib/sandbox/recovery.js +21 -1
- package/dist/lib/sandbox/workspace-view.js +2 -1
- package/dist/lib/sandbox/worktree-safety.js +4 -1
- package/dist/lib/server/index.js +8 -0
- package/dist/lib/server/protocol.js +38 -1
- package/dist/lib/task/activity-log.js +8 -1
- package/dist/lib/task/artifact-lifecycle.js +75 -18
- package/dist/lib/task/artifact-operations.js +520 -0
- package/dist/lib/task/artifact-repair-intent.js +59 -0
- package/dist/lib/task/artifact-schema.js +135 -0
- package/dist/lib/task/capabilities.js +310 -0
- package/dist/lib/task/commands/status.js +32 -0
- package/dist/lib/task/commit-operation.js +12 -1
- package/dist/lib/task/control-authority.js +12 -5
- package/dist/lib/task/create-service.js +111 -12
- package/dist/lib/task/create.js +25 -0
- package/dist/lib/task/current-contract.js +5 -1
- package/dist/lib/task/decision-details.js +1 -1
- package/dist/lib/task/events.js +416 -17
- package/dist/lib/task/finalization.js +37 -13
- package/dist/lib/task/human-override.js +58 -36
- package/dist/lib/task/index.js +11 -3
- package/dist/lib/task/invalidation-command.js +86 -0
- package/dist/lib/task/invalidation.js +260 -0
- package/dist/lib/task/ledger-intents.js +37 -0
- package/dist/lib/task/local-artifact-finalization.js +299 -0
- package/dist/lib/task/orchestration.js +240 -144
- package/dist/lib/task/pr-delivery-fact.js +102 -101
- package/dist/lib/task/qualification-audit.js +490 -0
- package/dist/lib/task/qualification-confirmation.js +109 -0
- package/dist/lib/task/qualification-intents.js +148 -0
- package/dist/lib/task/review-artifacts.js +22 -23
- package/dist/lib/task/review-finalization.js +121 -4
- package/dist/lib/task/review-fingerprint.js +24 -2
- package/dist/lib/task/rework-intent.js +138 -0
- package/dist/lib/task/sections.js +6 -4
- package/dist/lib/task/skill-scope.js +23 -0
- package/dist/lib/task/task-execution-lock.js +27 -17
- package/dist/lib/task/verification-config.js +11 -0
- package/dist/lib/task/verification-engine.js +93 -16
- package/dist/lib/task/verification.js +3 -3
- package/dist/lib/task/workflow-warning-intents.js +1 -1
- package/dist/lib/task/write.js +11 -0
- package/dist/lib/version.js +11 -1
- package/dist/lifecycle-build-manifest.json +3 -3
- package/lib/agent-client.ts +9 -0
- package/lib/agent-clients/next-steps.ts +6 -1
- package/lib/decide.ts +3 -3
- package/lib/init.ts +1 -1
- package/lib/internal/agent-client.ts +4 -2
- package/lib/internal/cli-route-inventory.ts +140 -0
- package/lib/internal/codex-lifecycle.ts +8 -6
- package/lib/internal/codex-sandbox-controller.ts +7 -2
- package/lib/internal/git-workflow.ts +9 -6
- package/lib/internal/platform-checks.ts +14 -6
- package/lib/internal/platform-comment.ts +20 -12
- package/lib/internal/platform-context.ts +5 -3
- package/lib/internal/platform-issue.ts +17 -11
- package/lib/internal/platform-metadata.ts +70 -0
- package/lib/internal/platform-pr-review.ts +23 -12
- package/lib/internal/platform-pr.ts +65 -27
- package/lib/internal/platform-release-notes.ts +8 -6
- package/lib/internal/platform-security.ts +83 -0
- package/lib/internal/pr-review-grade.ts +20 -11
- package/lib/internal/release-workflow.ts +21 -9
- package/lib/internal/sandbox-control.ts +44 -6
- package/lib/internal/task-activity.ts +15 -7
- package/lib/internal/task-artifact.ts +204 -22
- package/lib/internal/task-context.ts +3 -1
- package/lib/internal/task-create.ts +78 -17
- package/lib/internal/task-delivery.ts +3 -1
- package/lib/internal/task-event.ts +9 -4
- package/lib/internal/task-finalization.ts +6 -4
- package/lib/internal/task-invalidation.ts +41 -0
- package/lib/internal/task-ledger.ts +21 -8
- package/lib/internal/task-lifecycle.ts +5 -3
- package/lib/internal/task-operation-registry.ts +482 -0
- package/lib/internal/task-orchestration.ts +12 -0
- package/lib/internal/task-override.ts +15 -9
- package/lib/internal/task-qualification.ts +61 -0
- package/lib/internal/task-review.ts +6 -4
- package/lib/internal/task-short-id.ts +10 -1
- package/lib/internal/task-snapshot.ts +3 -1
- package/lib/internal/task-validate.ts +6 -2
- package/lib/internal/task-verify.ts +10 -7
- package/lib/internal/task-warning.ts +10 -4
- package/lib/platform/adapters.ts +3 -2
- package/lib/platform/change-request-git-evidence.ts +36 -9
- package/lib/platform/comment-safety.ts +250 -0
- package/lib/platform/completion-backfill.ts +9 -8
- package/lib/platform/context.ts +97 -134
- package/lib/platform/github-client.ts +2 -2
- package/lib/platform/github-provider.ts +1132 -0
- package/lib/platform/in-label-sync.ts +208 -0
- package/lib/platform/issue-comments.ts +255 -80
- package/lib/platform/issues.ts +344 -174
- package/lib/platform/metadata-labels.ts +5 -2
- package/lib/platform/none-provider.ts +35 -0
- package/lib/platform/pr-change-report.ts +639 -0
- package/lib/platform/pr-checks.ts +126 -106
- package/lib/platform/pr-review.ts +88 -85
- package/lib/platform/pr-summary.ts +581 -53
- package/lib/platform/provider-bridge.ts +82 -0
- package/lib/platform/provider-contract.ts +611 -0
- package/lib/platform/provider-loader.ts +307 -0
- package/lib/platform/provider-validation.ts +611 -0
- package/lib/platform/pull-request-metadata.ts +10 -7
- package/lib/platform/pull-requests.ts +781 -550
- package/lib/platform/release-notes.ts +76 -59
- package/lib/platform/releases.ts +77 -43
- package/lib/platform/repository-metadata.ts +453 -0
- package/lib/platform/resource-identity.ts +121 -0
- package/lib/platform/security-alerts.ts +191 -0
- package/lib/platform/task-identities.ts +40 -0
- package/lib/platform/types.ts +4 -2
- package/lib/platform/verification-required.ts +11 -13
- package/lib/platform/verification-sync.ts +128 -304
- package/lib/pr-review/evidence-grading.ts +25 -8
- package/lib/process-data/index.ts +7 -0
- package/lib/run/index.ts +62 -22
- package/lib/sandbox/commands/control-status.ts +26 -0
- package/lib/sandbox/commands/create.ts +46 -6
- package/lib/sandbox/commands/ls.ts +7 -0
- package/lib/sandbox/commands/rm.ts +1000 -87
- package/lib/sandbox/commands/show.ts +16 -0
- package/lib/sandbox/control/client.ts +203 -19
- package/lib/sandbox/control/completed-reentry.ts +98 -0
- package/lib/sandbox/control/container-identity.ts +27 -43
- package/lib/sandbox/control/executor.ts +180 -15
- package/lib/sandbox/control/lifecycle.ts +629 -17
- package/lib/sandbox/control/native-file-lock.ts +209 -0
- package/lib/sandbox/control/protocol.ts +118 -2
- package/lib/sandbox/control/server.ts +724 -34
- package/lib/sandbox/control/state.ts +257 -4
- package/lib/sandbox/control/task-view.ts +240 -0
- package/lib/sandbox/engines/authority.ts +365 -0
- package/lib/sandbox/engines/docker-exact-discovery.ts +132 -0
- package/lib/sandbox/index.ts +7 -0
- package/lib/sandbox/recovery.ts +21 -1
- package/lib/sandbox/workspace-view.ts +9 -3
- package/lib/sandbox/worktree-safety.ts +4 -1
- package/lib/server/index.ts +10 -0
- package/lib/server/protocol.ts +36 -1
- package/lib/task/activity-log.ts +8 -0
- package/lib/task/artifact-lifecycle.ts +70 -22
- package/lib/task/artifact-operations.ts +626 -0
- package/lib/task/artifact-repair-intent.ts +71 -0
- package/lib/task/artifact-schema.ts +192 -0
- package/lib/task/capabilities.ts +331 -0
- package/lib/task/commands/status.ts +38 -0
- package/lib/task/commit-operation.ts +12 -1
- package/lib/task/control-authority.ts +22 -9
- package/lib/task/create-service.ts +139 -14
- package/lib/task/create.ts +27 -0
- package/lib/task/current-contract.ts +6 -1
- package/lib/task/decision-details.ts +6 -2
- package/lib/task/events.ts +392 -16
- package/lib/task/finalization.ts +50 -14
- package/lib/task/human-override.ts +70 -46
- package/lib/task/index.ts +16 -3
- package/lib/task/invalidation-command.ts +86 -0
- package/lib/task/invalidation.ts +332 -0
- package/lib/task/ledger-intents.ts +35 -1
- package/lib/task/local-artifact-finalization.ts +432 -0
- package/lib/task/orchestration.ts +223 -133
- package/lib/task/pr-delivery-fact.ts +131 -148
- package/lib/task/qualification-audit.ts +599 -0
- package/lib/task/qualification-confirmation.ts +117 -0
- package/lib/task/qualification-intents.ts +150 -0
- package/lib/task/review-artifacts.ts +21 -22
- package/lib/task/review-finalization.ts +133 -4
- package/lib/task/review-fingerprint.ts +23 -2
- package/lib/task/rework-intent.ts +165 -0
- package/lib/task/sections.ts +6 -4
- package/lib/task/skill-scope.ts +24 -0
- package/lib/task/task-execution-lock.ts +23 -14
- package/lib/task/verification-config.ts +12 -0
- package/lib/task/verification-engine.ts +103 -17
- package/lib/task/verification.ts +4 -4
- package/lib/task/workflow-warning-intents.ts +1 -1
- package/lib/task/write.ts +19 -0
- package/lib/update.ts +1 -1
- package/lib/version.ts +15 -1
- package/package.json +12 -1
- package/templates/.agents/rules/README.en.md +3 -1
- package/templates/.agents/rules/README.zh-CN.md +3 -1
- package/templates/.agents/rules/decision-qualification.en.md +22 -0
- package/templates/.agents/rules/decision-qualification.zh-CN.md +22 -0
- package/templates/.agents/rules/evidence-reporting.en.md +28 -0
- package/templates/.agents/rules/evidence-reporting.zh-CN.md +28 -0
- package/templates/.agents/rules/issue-pr-commands.en.md +1 -1
- package/templates/.agents/rules/issue-pr-commands.zh-CN.md +1 -1
- package/templates/.agents/rules/issue-sync.en.md +2 -0
- package/templates/.agents/rules/issue-sync.zh-CN.md +2 -0
- package/templates/.agents/rules/label-milestone-setup.en.md +7 -7
- package/templates/.agents/rules/label-milestone-setup.zh-CN.md +7 -7
- package/templates/.agents/rules/local-artifact-repair.en.md +13 -2
- package/templates/.agents/rules/local-artifact-repair.zh-CN.md +13 -2
- package/templates/.agents/rules/pr-sync.en.md +10 -4
- package/templates/.agents/rules/pr-sync.zh-CN.md +17 -4
- package/templates/.agents/rules/security-alerts.en.md +8 -8
- package/templates/.agents/rules/security-alerts.zh-CN.md +8 -8
- package/templates/.agents/rules/task-short-id.en.md +1 -4
- package/templates/.agents/rules/task-short-id.zh-CN.md +1 -3
- package/templates/.agents/skills/analyze-task/SKILL.en.md +28 -5
- package/templates/.agents/skills/analyze-task/SKILL.zh-CN.md +29 -5
- package/templates/.agents/skills/analyze-task/config/verify.en.json +1 -12
- package/templates/.agents/skills/analyze-task/config/verify.zh-CN.json +1 -12
- package/templates/.agents/skills/check-task/SKILL.en.md +16 -37
- package/templates/.agents/skills/check-task/SKILL.zh-CN.md +16 -37
- package/templates/.agents/skills/close-codescan/SKILL.en.md +2 -2
- package/templates/.agents/skills/close-codescan/SKILL.zh-CN.md +2 -2
- package/templates/.agents/skills/close-dependabot/SKILL.en.md +2 -2
- package/templates/.agents/skills/close-dependabot/SKILL.zh-CN.md +2 -2
- package/templates/.agents/skills/code-task/SKILL.en.md +41 -9
- package/templates/.agents/skills/code-task/SKILL.zh-CN.md +43 -11
- package/templates/.agents/skills/code-task/config/verify.en.json +6 -14
- package/templates/.agents/skills/code-task/config/verify.zh-CN.json +6 -14
- package/templates/.agents/skills/code-task/reference/code-rules.en.md +5 -4
- package/templates/.agents/skills/code-task/reference/code-rules.zh-CN.md +5 -4
- package/templates/.agents/skills/code-task/reference/dual-mode.en.md +1 -1
- package/templates/.agents/skills/code-task/reference/dual-mode.zh-CN.md +1 -1
- package/templates/.agents/skills/code-task/reference/fix-mode.en.md +3 -1
- package/templates/.agents/skills/code-task/reference/fix-mode.zh-CN.md +3 -1
- package/templates/.agents/skills/code-task/reference/report-template.en.md +42 -15
- package/templates/.agents/skills/code-task/reference/report-template.zh-CN.md +39 -12
- package/templates/.agents/skills/commit/reference/issue-metadata-sync.en.md +2 -0
- package/templates/.agents/skills/commit/reference/issue-metadata-sync.zh-CN.md +2 -0
- package/templates/.agents/skills/commit/reference/pr-summary-sync.en.md +3 -3
- package/templates/.agents/skills/commit/reference/pr-summary-sync.zh-CN.md +3 -3
- package/templates/.agents/skills/complete-manual-validation/SKILL.en.md +10 -4
- package/templates/.agents/skills/complete-manual-validation/SKILL.zh-CN.md +10 -4
- 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 +4 -3
- package/templates/.agents/skills/complete-manual-validation/reference/summary-update.zh-CN.md +4 -3
- package/templates/.agents/skills/complete-task/SKILL.en.md +26 -21
- package/templates/.agents/skills/complete-task/SKILL.zh-CN.md +25 -21
- package/templates/.agents/skills/create-pr/SKILL.en.md +7 -6
- package/templates/.agents/skills/create-pr/SKILL.zh-CN.md +7 -7
- package/templates/.agents/skills/create-pr/config/verify.json +1 -0
- package/templates/.agents/skills/create-pr/reference/change-report.en.md +16 -4
- package/templates/.agents/skills/create-pr/reference/change-report.zh-CN.md +16 -4
- package/templates/.agents/skills/create-pr/reference/comment-publish.en.md +5 -3
- package/templates/.agents/skills/create-pr/reference/comment-publish.zh-CN.md +5 -3
- package/templates/.agents/skills/create-pr/reference/pr-body-template.en.md +1 -1
- package/templates/.agents/skills/create-pr/reference/pr-body-template.zh-CN.md +1 -1
- package/templates/.agents/skills/create-pr/scripts/change-report.mjs +3 -0
- package/templates/.agents/skills/create-task/SKILL.en.md +8 -0
- package/templates/.agents/skills/create-task/SKILL.zh-CN.md +7 -0
- package/templates/.agents/skills/import-codescan/SKILL.en.md +1 -1
- package/templates/.agents/skills/import-codescan/SKILL.zh-CN.md +1 -1
- package/templates/.agents/skills/import-dependabot/SKILL.en.md +1 -1
- package/templates/.agents/skills/import-dependabot/SKILL.zh-CN.md +1 -1
- package/templates/.agents/skills/init-labels/SKILL.en.md +8 -8
- package/templates/.agents/skills/init-labels/SKILL.zh-CN.md +8 -8
- package/templates/.agents/skills/init-milestones/SKILL.en.md +9 -11
- package/templates/.agents/skills/init-milestones/SKILL.zh-CN.md +9 -11
- package/templates/.agents/skills/plan-task/SKILL.en.md +27 -4
- package/templates/.agents/skills/plan-task/SKILL.zh-CN.md +26 -4
- package/templates/.agents/skills/plan-task/config/verify.en.json +4 -14
- package/templates/.agents/skills/plan-task/config/verify.zh-CN.json +4 -14
- package/templates/.agents/skills/review-analysis/SKILL.en.md +17 -4
- package/templates/.agents/skills/review-analysis/SKILL.zh-CN.md +17 -4
- package/templates/.agents/skills/review-analysis/config/verify.en.json +1 -18
- package/templates/.agents/skills/review-analysis/config/verify.zh-CN.json +1 -18
- package/templates/.agents/skills/review-analysis/reference/report-template.en.md +50 -23
- package/templates/.agents/skills/review-analysis/reference/report-template.zh-CN.md +45 -18
- package/templates/.agents/skills/review-code/SKILL.en.md +18 -5
- package/templates/.agents/skills/review-code/SKILL.zh-CN.md +18 -5
- package/templates/.agents/skills/review-code/config/verify.en.json +1 -23
- package/templates/.agents/skills/review-code/config/verify.zh-CN.json +1 -23
- package/templates/.agents/skills/review-code/reference/report-template.en.md +49 -22
- package/templates/.agents/skills/review-code/reference/report-template.zh-CN.md +45 -18
- package/templates/.agents/skills/review-plan/SKILL.en.md +17 -4
- package/templates/.agents/skills/review-plan/SKILL.zh-CN.md +17 -4
- package/templates/.agents/skills/review-plan/config/verify.en.json +1 -18
- package/templates/.agents/skills/review-plan/config/verify.zh-CN.json +1 -18
- package/templates/.agents/skills/review-plan/reference/report-template.en.md +49 -22
- package/templates/.agents/skills/review-plan/reference/report-template.zh-CN.md +45 -18
- package/templates/.agents/skills/review-pr/SKILL.en.md +5 -1
- package/templates/.agents/skills/review-pr/SKILL.zh-CN.md +5 -1
- package/templates/.agents/skills/review-pr/reference/report-template.en.md +4 -3
- package/templates/.agents/skills/review-pr/reference/report-template.zh-CN.md +4 -3
- package/templates/.agents/skills/run-manual-validation/SKILL.en.md +9 -3
- package/templates/.agents/skills/run-manual-validation/SKILL.zh-CN.md +9 -3
- package/templates/.agents/skills/run-manual-validation/reference/report-template.en.md +3 -1
- package/templates/.agents/skills/run-manual-validation/reference/report-template.zh-CN.md +3 -1
- package/templates/.agents/skills/test/SKILL.en.md +13 -2
- package/templates/.agents/skills/test/SKILL.zh-CN.md +13 -2
- package/templates/.agents/skills/update-agent-infra/scripts/sync-templates.js +14 -0
- package/templates/.agents/skills/watch-pr/SKILL.en.md +2 -2
- package/templates/.agents/skills/watch-pr/SKILL.zh-CN.md +2 -2
- package/templates/.agents/skills/watch-pr/reference/monitor-and-heal.en.md +6 -0
- package/templates/.agents/skills/watch-pr/reference/monitor-and-heal.zh-CN.md +6 -0
- package/templates/.agents/templates/task.en.md +24 -1
- package/templates/.agents/templates/task.zh-CN.md +24 -1
- package/templates/.github/workflows/pr-label.yml +7 -26
- package/templates/.agents/scripts/security-alerts.github.sh +0 -151
- package/templates/.agents/scripts/security-alerts.sh +0 -31
- package/templates/.agents/skills/init-labels/scripts/init-labels.github.sh +0 -146
- package/templates/.agents/skills/init-labels/scripts/init-labels.sh +0 -32
- package/templates/.agents/skills/init-milestones/scripts/init-milestones.github.sh +0 -294
- package/templates/.agents/skills/init-milestones/scripts/init-milestones.sh +0 -6
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
# 审查报告模板
|
|
2
2
|
|
|
3
|
+
> 写入本报告前,先用 `task-artifact init --family review-code` 创建骨架,并保留每个 `artifact-section` marker;骨架不包含审查结论。
|
|
4
|
+
|
|
3
5
|
编写 `review-code.md` 或 `review-code-r{N}.md` 时使用本模板。
|
|
4
6
|
|
|
5
7
|
## 输出模板
|
|
@@ -12,11 +14,31 @@
|
|
|
12
14
|
- **审查输入**:
|
|
13
15
|
- `{code-artifact}`(本轮实际检视的最高轮实现产物——含如存在的最高轮修复产物,如 `code-r2.md`;无法可靠取得则留空)
|
|
14
16
|
|
|
15
|
-
##
|
|
17
|
+
## 审查摘要
|
|
16
18
|
|
|
17
|
-
|
|
19
|
+
## 资格审计复核
|
|
18
20
|
|
|
19
|
-
|
|
21
|
+
> 按 `.agents/rules/decision-qualification.md` 复核:约束依赖、候选资格、分类结果、上游关系和依赖快照五张表。
|
|
22
|
+
|
|
23
|
+
### 约束依赖
|
|
24
|
+
| constraint_id | constraint_digest | role | evidence |
|
|
25
|
+
| --- | --- | --- | --- |
|
|
26
|
+
|
|
27
|
+
### 候选资格
|
|
28
|
+
| candidate_id | status | impact | constraint_ids | evidence |
|
|
29
|
+
| --- | --- | --- | --- | --- |
|
|
30
|
+
|
|
31
|
+
### 分类结果
|
|
32
|
+
| decision_id | classification | evidence |
|
|
33
|
+
| --- | --- | --- |
|
|
34
|
+
|
|
35
|
+
### 上游关系
|
|
36
|
+
| upstream_family | upstream_artifact | upstream_round | upstream_sha256 | relation |
|
|
37
|
+
| --- | --- | --- | --- | --- |
|
|
38
|
+
|
|
39
|
+
### 依赖快照
|
|
40
|
+
| task_input_digest | non_constraint_input_digest | upstream_artifact_digest |
|
|
41
|
+
| --- | --- | --- |
|
|
20
42
|
|
|
21
43
|
- **审查者**:{reviewer-name}
|
|
22
44
|
- **审查时间**:{timestamp}
|
|
@@ -117,19 +139,29 @@
|
|
|
117
139
|
> 如本轮无人工校验项,保留段落标题并写「(无)」。
|
|
118
140
|
|
|
119
141
|
|
|
120
|
-
##
|
|
142
|
+
## 结论与建议
|
|
121
143
|
|
|
122
|
-
|
|
123
|
-
|
|
144
|
+
### 审查决定
|
|
145
|
+
- [ ] 通过
|
|
146
|
+
- [ ] 需要修改
|
|
147
|
+
- [ ] 拒绝
|
|
148
|
+
|
|
149
|
+
### 下一步
|
|
150
|
+
{recommended next step}
|
|
151
|
+
|
|
152
|
+
## 状态核对
|
|
153
|
+
|
|
154
|
+
> 记录状态核对命令、审查范围、关键结果和未覆盖部分;每条命令以 `$ ` 开头。
|
|
155
|
+
> 按 `.agents/rules/evidence-reporting.md` 同时记录审查范围、关键结果和未覆盖部分;正常成功不粘贴完整 stdout。
|
|
124
156
|
|
|
125
157
|
## 证据原文
|
|
126
158
|
|
|
127
|
-
>
|
|
159
|
+
> 遵循 `.agents/rules/evidence-reporting.md`:每条断言配对 `$ ` 命令和相称结果摘要;Blocker、失败、阻塞或争议必须保留可复现证据、准确位置和决定性摘录;无法复现的判断须降级或移入「自我质疑」。
|
|
128
160
|
|
|
129
161
|
- 断言:{verified claim}
|
|
130
162
|
```text
|
|
131
163
|
$ {command}
|
|
132
|
-
{
|
|
164
|
+
{result summary or decisive excerpt}
|
|
133
165
|
```
|
|
134
166
|
|
|
135
167
|
## 自我质疑
|
|
@@ -138,6 +170,11 @@ $ {command}
|
|
|
138
170
|
|
|
139
171
|
- {未直接验证的结论或推断;说明为何未验证、若被推翻的影响}
|
|
140
172
|
|
|
173
|
+
## 审查分歧账本回写
|
|
174
|
+
|
|
175
|
+
> 本段记录将提交的结构化意图:新 finding 用 `task-ledger finding-upsert`,上一轮响应复核用 `finding-review`;由核心分配 `CD-N` 并校验状态机,禁止手写 task.md 表格。
|
|
176
|
+
> 凡升级为 `needs-human-decision` 的 finding,必须按 `.agents/rules/human-decision-context.md` 在本报告中提供自足详情块,并让 evidence 指向该稳定锚点。
|
|
177
|
+
|
|
141
178
|
## 亮点
|
|
142
179
|
|
|
143
180
|
- {what went well}
|
|
@@ -146,14 +183,4 @@ $ {command}
|
|
|
146
183
|
|
|
147
184
|
- [ ] 实现与技术方案一致
|
|
148
185
|
- [ ] 没有意外的范围扩张
|
|
149
|
-
|
|
150
|
-
## 结论与建议
|
|
151
|
-
|
|
152
|
-
### 审查决定
|
|
153
|
-
- [ ] 通过
|
|
154
|
-
- [ ] 需要修改
|
|
155
|
-
- [ ] 拒绝
|
|
156
|
-
|
|
157
|
-
### 下一步
|
|
158
|
-
{recommended next step}
|
|
159
186
|
```
|
|
@@ -9,12 +9,17 @@ description: >
|
|
|
9
9
|
# Technical Plan Review
|
|
10
10
|
> `--agent` values are defined in `.agents/rules/task-management.md` under “Collaborator Token Specification”.
|
|
11
11
|
|
|
12
|
-
If the entry operands contain `--orchestrated`, bind `{execution-flag}` to `--orchestrated` and forward it unchanged to both the summary finalizer and completed event; otherwise bind it to an empty value. Never infer it from `orchestration.json`, environment variables, or prior artifacts.
|
|
12
|
+
If the entry operands contain `--orchestrated`, bind `{execution-flag}` to `--orchestrated` and forward it unchanged to both the summary finalizer and completed event; otherwise bind it to an empty value. Never infer it from `orchestration.json`, environment variables, or prior artifacts. Lifecycle events also require explicit trigger data: use `{trigger-initiator}=orchestrator` for orchestration and `model` otherwise; `{request-id}` is a stable single-line identifier for this task and artifact round, and `{reason-code}` is `user-request` or `review-finding`. Reuse the same values for started and completed.
|
|
13
13
|
|
|
14
14
|
Review the latest plan artifact and produce `review-plan.md` or `review-plan-r{N}.md`.
|
|
15
15
|
|
|
16
16
|
## Boundary / Critical Rules
|
|
17
17
|
|
|
18
|
+
### Persisted Report Evidence
|
|
19
|
+
|
|
20
|
+
Before generating the review report, read `.agents/rules/evidence-reporting.md`. Normal inspection records the command, scope, structured result, actual conclusion, and uncovered parts; findings, blocking conditions, or disputes retain reproducible locations and decisive excerpts, while identity fields remain exact.
|
|
21
|
+
|
|
22
|
+
- When reviewing candidate qualification or `HD-N`, read `.agents/rules/decision-qualification.md` and check the five qualification-audit tables, digests, QCR, and upstream relations; do not treat a process label as identity authentication
|
|
18
23
|
- This skill only reviews plan artifacts and writes a report; it does not modify product code.
|
|
19
24
|
- Before generating task or lifecycle Markdown that will be synchronized to an Issue, read `.agents/rules/sync-content-generation.md` and apply its producer-side constraints; the sync path does not parse or rewrite the body
|
|
20
25
|
- After executing this skill, you **must** immediately update task.md.
|
|
@@ -25,7 +30,7 @@ Version stamp rule: when creating or updating `task.md` frontmatter, read `.agen
|
|
|
25
30
|
|
|
26
31
|
After loading workflow / skill / rules instructions, and before any task-state judgment or user-visible conclusion, run the state check first.
|
|
27
32
|
|
|
28
|
-
Run these commands and
|
|
33
|
+
Run these commands and record the task/artifact scope, key result, and uncovered parts in this round's `## State Check` section; do not paste complete directory listings or task tails on normal success. Retain decisive raw lines only for failures, blocking conditions, identity mismatches, or disputes:
|
|
29
34
|
|
|
30
35
|
```bash
|
|
31
36
|
agent-infra-internal task-snapshot {task-id} --format text
|
|
@@ -39,7 +44,7 @@ agent-infra-internal task-snapshot {task-id} --format text
|
|
|
39
44
|
|
|
40
45
|
## Step Start: Write the started Marker
|
|
41
46
|
|
|
42
|
-
After resolving the artifact context and before this round's first artifact action, run `agent-infra-internal task-event {task-id} review-plan.started --agent {standard-agent-token}`.
|
|
47
|
+
After resolving the artifact context and before this round's first artifact action, run `agent-infra-internal task-event {task-id} review-plan.started --agent {standard-agent-token} --initiator {trigger-initiator} --request-id {request-id} --reason-code {reason-code}`.
|
|
43
48
|
|
|
44
49
|
## Steps
|
|
45
50
|
|
|
@@ -64,6 +69,14 @@ Check simplicity, executability, risk control, test strategy, file coverage, and
|
|
|
64
69
|
|
|
65
70
|
### 5. Write Review Report
|
|
66
71
|
|
|
72
|
+
Before writing this round's `{review-artifact}`, create the controlled review skeleton:
|
|
73
|
+
|
|
74
|
+
```bash
|
|
75
|
+
agent-infra-internal task-artifact {task-id} init --family review-plan --artifact {review-artifact} --locale en
|
|
76
|
+
```
|
|
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, call `task-artifact {task-id} repair --family review-plan --artifact {review-artifact} --expected-sha256 {artifact-sha256} --expected-semantic-digest {semantic-digest}`, then rerun the original finalizer.
|
|
79
|
+
|
|
67
80
|
Create `.agents/workspace/active/{task-id}/{review-artifact}`.
|
|
68
81
|
|
|
69
82
|
> Read `reference/report-template.md` before writing the report.
|
|
@@ -80,7 +93,7 @@ Bind and reuse this structured mapping from that one response:
|
|
|
80
93
|
{unresolved-minor} = stageStatus.unresolvedFindingCounts.minor
|
|
81
94
|
```
|
|
82
95
|
|
|
83
|
-
The intent atomically finalizes the report summary and returns the same ledger snapshot. Do not call `stage-status`, replace placeholders manually, or rescan the finding list. After a failure, the model may edit the same controlled artifact and rerun the same intent only when the shared rule's mechanical gates pass; reassess convergence after every failure. The final complete result determines the verdict and counts from that same snapshot: `stageStatus.canAdvance=true` with an Approved conclusion permits cross-stage advancement; `stageStatus.canAdvance=false` still requires `agent-infra-internal task-event {task-id} review-plan.completed --agent {standard-agent-token} --artifact {review-artifact} --verdict {approved|changes-requested|rejected} --blockers {unresolved-blockers} --major {unresolved-major} --minor {unresolved-minor} --manual-validation {n} {execution-flag}`, using `changes-requested` and routing to same-stage revision/review (use `rejected` when the report explicitly rejects). On failure, model stop, lack of progress, or the emergency cap, do not publish a completion event or cross-stage command; use the `repair-stop` scenario in `reference/output-templates.md` to show existing summary/findings, the artifact, actual repair attempts, the last diagnostic, and the stop reason.
|
|
96
|
+
The intent atomically finalizes the report summary and returns the same ledger snapshot. Do not call `stage-status`, replace placeholders manually, or rescan the finding list. After a failure, the model may edit the same controlled artifact and rerun the same intent only when the shared rule's mechanical gates pass; reassess convergence after every failure. The final complete result determines the verdict and counts from that same snapshot: `stageStatus.canAdvance=true` with an Approved conclusion permits cross-stage advancement; `stageStatus.canAdvance=false` still requires `agent-infra-internal task-event {task-id} review-plan.completed --agent {standard-agent-token} --initiator {trigger-initiator} --request-id {request-id} --reason-code {reason-code} --artifact {review-artifact} --verdict {approved|changes-requested|rejected} --blockers {unresolved-blockers} --major {unresolved-major} --minor {unresolved-minor} --manual-validation {n} {execution-flag}`, using `changes-requested` and routing to same-stage revision/review (use `rejected` when the report explicitly rejects). On failure, model stop, lack of progress, or the emergency cap, do not publish a completion event or cross-stage command; use the `repair-stop` scenario in `reference/output-templates.md` to show existing summary/findings, the artifact, actual repair attempts, the last diagnostic, and the stop reason.
|
|
84
97
|
|
|
85
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.
|
|
86
99
|
|
|
@@ -9,12 +9,17 @@ description: >
|
|
|
9
9
|
# 技术方案审查
|
|
10
10
|
> `--agent` 取值见 `.agents/rules/task-management.md`「合作者 token 规范」。
|
|
11
11
|
|
|
12
|
-
若入口业务操作数包含 `--orchestrated`,绑定 `{execution-flag}` = `--orchestrated` 并原样转发给 summary finalizer 与 completed 事件;否则绑定为空。不得从 `orchestration.json
|
|
12
|
+
若入口业务操作数包含 `--orchestrated`,绑定 `{execution-flag}` = `--orchestrated` 并原样转发给 summary finalizer 与 completed 事件;否则绑定为空。不得从 `orchestration.json`、环境变量或历史产物推断该标记。生命周期事件还必须携带显式触发信息:编排调用使用 `{trigger-initiator}=orchestrator`,否则使用 `model`;`{request-id}` 是本任务与本轮产物的稳定单行标识,`{reason-code}` 使用 `user-request` 或 `review-finding`;started 与 completed 使用同一组值。
|
|
13
13
|
|
|
14
14
|
审查最新技术方案产物,并产出 `review-plan.md` 或 `review-plan-r{N}.md`。
|
|
15
15
|
|
|
16
16
|
## 行为边界 / 关键规则
|
|
17
17
|
|
|
18
|
+
### 持久化报告证据
|
|
19
|
+
|
|
20
|
+
生成审查报告时,先读取 `.agents/rules/evidence-reporting.md`。正常检视记录命令、范围、结构化结果、实际结论和未覆盖部分;finding、阻塞或争议保留可复现位置与决定性摘录,身份字段必须精确保留。
|
|
21
|
+
|
|
22
|
+
- 审查候选资格或 `HD-N` 判断时,先读取 `.agents/rules/decision-qualification.md`,逐项复核产物中的五张资格审计表、digest、QCR 和上游关系;不得把流程标签当作身份认证
|
|
18
23
|
- 本技能只审查方案产物并写报告,不修改业务代码
|
|
19
24
|
- 生成会同步到 Issue 的任务或生命周期 Markdown 前,先读取 `.agents/rules/sync-content-generation.md` 并遵循其中的生成端约束;同步端不解析或改写正文
|
|
20
25
|
- 执行本技能后,你**必须**立即更新 task.md
|
|
@@ -25,7 +30,7 @@ description: >
|
|
|
25
30
|
|
|
26
31
|
在加载 workflow / skill / rules 指令之后、做任何任务状态判断或用户可见结论之前,必须先执行状态核对。指令类文件读取不算对外动作或结论。
|
|
27
32
|
|
|
28
|
-
|
|
33
|
+
运行以下命令,并在本轮产物的 `## 状态核对` 段记录任务/产物范围、关键结果和未覆盖部分;正常成功不粘贴完整目录清单或 `task.md` 尾部。失败、阻塞、身份不一致或争议时,附决定性原文行:
|
|
29
34
|
|
|
30
35
|
```bash
|
|
31
36
|
agent-infra-internal task-snapshot {task-id} --format text
|
|
@@ -41,7 +46,7 @@ agent-infra-internal task-snapshot {task-id} --format text
|
|
|
41
46
|
|
|
42
47
|
## 步骤开始:声明 started 事件
|
|
43
48
|
|
|
44
|
-
确认前置条件和产物上下文后、本轮第一个产出动作之前执行 `agent-infra-internal task-event {task-id} review-plan.started --agent {standard-agent-token}`。
|
|
49
|
+
确认前置条件和产物上下文后、本轮第一个产出动作之前执行 `agent-infra-internal task-event {task-id} review-plan.started --agent {standard-agent-token} --initiator {trigger-initiator} --request-id {request-id} --reason-code {reason-code}`。
|
|
45
50
|
|
|
46
51
|
## 执行步骤
|
|
47
52
|
### 1. 验证前置条件
|
|
@@ -67,6 +72,14 @@ agent-infra-internal task-snapshot {task-id} --format text
|
|
|
67
72
|
|
|
68
73
|
### 5. 编写审查报告
|
|
69
74
|
|
|
75
|
+
在首次写入本轮 `{review-artifact}` 前,先创建受控审查骨架:
|
|
76
|
+
|
|
77
|
+
```bash
|
|
78
|
+
agent-infra-internal task-artifact {task-id} init --family review-plan --artifact {review-artifact}
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
骨架不生成审查结论、发现或计数;完成审查内容后才能进入 summary finalizer。结构 finalizer 返回可证明的单个错误时,使用其 SHA 和 semantic digest 调用 `task-artifact {task-id} repair --family review-plan --artifact {review-artifact} --expected-sha256 {artifact-sha256} --expected-semantic-digest {semantic-digest}`,再重跑原 finalizer。
|
|
82
|
+
|
|
70
83
|
创建 `.agents/workspace/active/{task-id}/{review-artifact}`。
|
|
71
84
|
|
|
72
85
|
> 报告格式见 `reference/report-template.md`。写报告前先读取 `reference/report-template.md`。
|
|
@@ -83,7 +96,7 @@ agent-infra-internal task-snapshot {task-id} --format text
|
|
|
83
96
|
{unresolved-minor} = stageStatus.unresolvedFindingCounts.minor
|
|
84
97
|
```
|
|
85
98
|
|
|
86
|
-
该 intent 原子最终化报告摘要并返回同一次账本快照;不得再调用 `stage-status`、手工替换占位符或扫描问题清单。失败后,模型只能在共享规则的机械安全门通过时修改同一个受控 artifact,并完整重跑相同 intent;每次失败都重新判断是否收敛。最终一次完整成功返回决定同一快照的 verdict 和计数:`stageStatus.canAdvance=true` 且结论为 Approved 时允许跨阶段推进;`stageStatus.canAdvance=false` 时仍须执行 `agent-infra-internal task-event {task-id} review-plan.completed --agent {standard-agent-token} --artifact {review-artifact} --verdict {approved|changes-requested|rejected} --blockers {unresolved-blockers} --major {unresolved-major} --minor {unresolved-minor} --manual-validation {n} {execution-flag}`,使用 `changes-requested` 并路由到同阶段修订/复审(报告明确拒绝时使用 `rejected`)。失败、模型停止、无进展或紧急熔断时,不发布完成事件或跨阶段命令,但必须按 `reference/output-templates.md` 的 `repair-stop` 场景展示已有 summary/findings、artifact、实际修复次数、最后诊断和停止原因。
|
|
99
|
+
该 intent 原子最终化报告摘要并返回同一次账本快照;不得再调用 `stage-status`、手工替换占位符或扫描问题清单。失败后,模型只能在共享规则的机械安全门通过时修改同一个受控 artifact,并完整重跑相同 intent;每次失败都重新判断是否收敛。最终一次完整成功返回决定同一快照的 verdict 和计数:`stageStatus.canAdvance=true` 且结论为 Approved 时允许跨阶段推进;`stageStatus.canAdvance=false` 时仍须执行 `agent-infra-internal task-event {task-id} review-plan.completed --agent {standard-agent-token} --initiator {trigger-initiator} --request-id {request-id} --reason-code {reason-code} --artifact {review-artifact} --verdict {approved|changes-requested|rejected} --blockers {unresolved-blockers} --major {unresolved-major} --minor {unresolved-minor} --manual-validation {n} {execution-flag}`,使用 `changes-requested` 并路由到同阶段修订/复审(报告明确拒绝时使用 `rejected`)。失败、模型停止、无进展或紧急熔断时,不发布完成事件或跨阶段命令,但必须按 `reference/output-templates.md` 的 `repair-stop` 场景展示已有 summary/findings、artifact、实际修复次数、最后诊断和停止原因。
|
|
87
100
|
|
|
88
101
|
`manual-validation` 是 `ai task log` 中 review 行「人工校验点」(EN `Manual-validation`)计数的数据源;不要新增并行人工验证字段。
|
|
89
102
|
|
|
@@ -17,24 +17,7 @@
|
|
|
17
17
|
},
|
|
18
18
|
"artifact": {
|
|
19
19
|
"file_pattern": "review-plan.md|review-plan-r{N}.md",
|
|
20
|
-
"
|
|
21
|
-
"Review Summary",
|
|
22
|
-
"Review Coverage Declaration",
|
|
23
|
-
"Technical Plan Architecture Coverage",
|
|
24
|
-
"Traceability Matrix",
|
|
25
|
-
"Findings",
|
|
26
|
-
"Non-blocking Advisories",
|
|
27
|
-
"Manual Validation Items",
|
|
28
|
-
"Conclusion and Recommendations",
|
|
29
|
-
"State Check",
|
|
30
|
-
"Evidence",
|
|
31
|
-
"Self-Doubt",
|
|
32
|
-
"Review Disagreement Ledger Writeback"
|
|
33
|
-
],
|
|
34
|
-
"required_patterns": [
|
|
35
|
-
"^### Approval Decision$",
|
|
36
|
-
"^\\$ "
|
|
37
|
-
]
|
|
20
|
+
"schema": "review-plan"
|
|
38
21
|
},
|
|
39
22
|
"decision-details": {},
|
|
40
23
|
"review-summary": {
|
|
@@ -17,24 +17,7 @@
|
|
|
17
17
|
},
|
|
18
18
|
"artifact": {
|
|
19
19
|
"file_pattern": "review-plan.md|review-plan-r{N}.md",
|
|
20
|
-
"
|
|
21
|
-
"审查摘要",
|
|
22
|
-
"检视覆盖声明",
|
|
23
|
-
"技术方案架构覆盖",
|
|
24
|
-
"追踪矩阵",
|
|
25
|
-
"问题清单",
|
|
26
|
-
"非阻塞建议",
|
|
27
|
-
"人工校验项",
|
|
28
|
-
"结论与建议",
|
|
29
|
-
"状态核对",
|
|
30
|
-
"证据原文",
|
|
31
|
-
"自我质疑",
|
|
32
|
-
"审查分歧账本回写"
|
|
33
|
-
],
|
|
34
|
-
"required_patterns": [
|
|
35
|
-
"^### 审查决定$",
|
|
36
|
-
"^\\$ "
|
|
37
|
-
]
|
|
20
|
+
"schema": "review-plan"
|
|
38
21
|
},
|
|
39
22
|
"decision-details": {},
|
|
40
23
|
"review-summary": {
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
# Review Report Template
|
|
2
2
|
|
|
3
|
+
> Before writing this report, use `task-artifact init --family review-plan` to create the skeleton and preserve every `artifact-section` marker; the skeleton contains no review conclusion.
|
|
4
|
+
|
|
3
5
|
Use this template when writing `review-plan.md` or `review-plan-r{N}.md`.
|
|
4
6
|
|
|
5
7
|
## Output Template
|
|
@@ -12,11 +14,31 @@ Use this template when writing `review-plan.md` or `review-plan-r{N}.md`.
|
|
|
12
14
|
- **Review Input**:
|
|
13
15
|
- `{plan-artifact}` (the highest-round technical-plan artifact actually reviewed, e.g. `plan-r2.md`; leave blank if it cannot be reliably determined)
|
|
14
16
|
|
|
15
|
-
##
|
|
17
|
+
## Review Summary
|
|
16
18
|
|
|
17
|
-
|
|
19
|
+
## Qualification Audit Review
|
|
18
20
|
|
|
19
|
-
|
|
21
|
+
> Use `.agents/rules/decision-qualification.md` to review the five tables: constraint dependencies, candidate qualification, classification results, upstream relations, and dependency snapshot.
|
|
22
|
+
|
|
23
|
+
### Constraint Dependencies
|
|
24
|
+
| constraint_id | constraint_digest | role | evidence |
|
|
25
|
+
| --- | --- | --- | --- |
|
|
26
|
+
|
|
27
|
+
### Candidate Qualification
|
|
28
|
+
| candidate_id | status | impact | constraint_ids | evidence |
|
|
29
|
+
| --- | --- | --- | --- | --- |
|
|
30
|
+
|
|
31
|
+
### Classification Results
|
|
32
|
+
| decision_id | classification | evidence |
|
|
33
|
+
| --- | --- | --- |
|
|
34
|
+
|
|
35
|
+
### Upstream Relations
|
|
36
|
+
| upstream_family | upstream_artifact | upstream_round | upstream_sha256 | relation |
|
|
37
|
+
| --- | --- | --- | --- | --- |
|
|
38
|
+
|
|
39
|
+
### Dependency Snapshot
|
|
40
|
+
| task_input_digest | non_constraint_input_digest | upstream_artifact_digest |
|
|
41
|
+
| --- | --- | --- |
|
|
20
42
|
|
|
21
43
|
- **Reviewer**: {reviewer-name}
|
|
22
44
|
- **Review Time**: {timestamp}
|
|
@@ -24,7 +46,7 @@ Use this template when writing `review-plan.md` or `review-plan-r{N}.md`.
|
|
|
24
46
|
- **Overall Verdict**: {Approved / Changes Requested / Rejected}
|
|
25
47
|
- **Findings (AI-actionable)**: {unresolved-blockers} blockers, {unresolved-major} majors, {unresolved-minor} minors / **Manual validation**: 0
|
|
26
48
|
|
|
27
|
-
##
|
|
49
|
+
## Inspection Coverage
|
|
28
50
|
|
|
29
51
|
| pass_id | scope | evidence | result | gaps_or_assumptions |
|
|
30
52
|
|---------|-------|----------|--------|---------------------|
|
|
@@ -102,7 +124,7 @@ Use this template when writing `review-plan.md` or `review-plan-r{N}.md`.
|
|
|
102
124
|
**File**: `{file-path}:{line-number}`
|
|
103
125
|
**Suggestion**: {improvement suggestion}
|
|
104
126
|
|
|
105
|
-
## Non-blocking
|
|
127
|
+
## Non-blocking Suggestions
|
|
106
128
|
|
|
107
129
|
> Record only future optimizations that do not affect the current artifact's completeness, correctness, or acceptance. Advisories do not enter the disagreement ledger, finding counts, or verdict.
|
|
108
130
|
|
|
@@ -121,27 +143,42 @@ Use this template when writing `review-plan.md` or `review-plan-r{N}.md`.
|
|
|
121
143
|
> If this round has no Manual validation items, keep the section heading and write "None".
|
|
122
144
|
|
|
123
145
|
|
|
124
|
-
##
|
|
146
|
+
## Conclusion and Recommendation
|
|
125
147
|
|
|
126
|
-
|
|
127
|
-
|
|
148
|
+
### Approval Decision
|
|
149
|
+
- [ ] Approved
|
|
150
|
+
- [ ] Changes Requested
|
|
151
|
+
- [ ] Rejected
|
|
152
|
+
|
|
153
|
+
### Next Steps
|
|
154
|
+
{recommended next step}
|
|
155
|
+
|
|
156
|
+
## State Check
|
|
128
157
|
|
|
129
|
-
|
|
158
|
+
> Record the state-check command, review scope, key result, and uncovered parts; each command starts with `$ `.
|
|
159
|
+
> Follow `.agents/rules/evidence-reporting.md`: record review scope, key result, and uncovered parts; do not paste complete successful stdout.
|
|
130
160
|
|
|
131
|
-
|
|
161
|
+
## Raw Evidence
|
|
162
|
+
|
|
163
|
+
> Follow `.agents/rules/evidence-reporting.md`: pair each claim with a `$ ` command and proportionate result summary; Blockers, failures, blocking conditions, or disputes require a reproducible command, exact location, and decisive excerpt; a judgment that cannot be reproduced must be downgraded or moved to Self-Doubt.
|
|
132
164
|
|
|
133
165
|
- Claim: {verified claim}
|
|
134
166
|
```text
|
|
135
167
|
$ {command}
|
|
136
|
-
{
|
|
168
|
+
{result summary or decisive excerpt}
|
|
137
169
|
```
|
|
138
170
|
|
|
139
|
-
## Self-
|
|
171
|
+
## Self-critique
|
|
140
172
|
|
|
141
173
|
> Explicitly declare conclusions, inferences, and assumptions in this review that were **not directly verified**; downstream can rebut them on this basis. Write "None" if there are none.
|
|
142
174
|
|
|
143
175
|
- {an unverified conclusion or inference; note why it was not verified and the impact if it is overturned}
|
|
144
176
|
|
|
177
|
+
## Review Disagreement Ledger Write-back
|
|
178
|
+
|
|
179
|
+
> Record the structured intents to submit: use `task-ledger finding-upsert` for new findings and `finding-review` for prior responses. The core allocates `PL-N` and validates transitions; do not edit task.md table rows.
|
|
180
|
+
> Every finding escalated to `needs-human-decision` must include a self-contained detail block per `.agents/rules/human-decision-context.md`, with evidence pointing to that stable anchor.
|
|
181
|
+
|
|
145
182
|
## Highlights
|
|
146
183
|
|
|
147
184
|
- {what went well}
|
|
@@ -150,14 +187,4 @@ $ {command}
|
|
|
150
187
|
|
|
151
188
|
- [ ] Implementation matches the technical plan
|
|
152
189
|
- [ ] No unintended scope expansion
|
|
153
|
-
|
|
154
|
-
## Conclusion and Recommendation
|
|
155
|
-
|
|
156
|
-
### Approval Decision
|
|
157
|
-
- [ ] Approved
|
|
158
|
-
- [ ] Changes Requested
|
|
159
|
-
- [ ] Rejected
|
|
160
|
-
|
|
161
|
-
### Next Steps
|
|
162
|
-
{recommended next step}
|
|
163
190
|
```
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
# 审查报告模板
|
|
2
2
|
|
|
3
|
+
> 写入本报告前,先用 `task-artifact init --family review-plan` 创建骨架,并保留每个 `artifact-section` marker;骨架不包含审查结论。
|
|
4
|
+
|
|
3
5
|
编写 `review-plan.md` 或 `review-plan-r{N}.md` 时使用本模板。
|
|
4
6
|
|
|
5
7
|
## 输出模板
|
|
@@ -12,11 +14,31 @@
|
|
|
12
14
|
- **审查输入**:
|
|
13
15
|
- `{plan-artifact}`(本轮实际检视的最高轮技术方案产物,如 `plan-r2.md`;无法可靠取得则留空)
|
|
14
16
|
|
|
15
|
-
##
|
|
17
|
+
## 审查摘要
|
|
16
18
|
|
|
17
|
-
|
|
19
|
+
## 资格审计复核
|
|
18
20
|
|
|
19
|
-
|
|
21
|
+
> 按 `.agents/rules/decision-qualification.md` 复核:约束依赖、候选资格、分类结果、上游关系和依赖快照五张表。
|
|
22
|
+
|
|
23
|
+
### 约束依赖
|
|
24
|
+
| constraint_id | constraint_digest | role | evidence |
|
|
25
|
+
| --- | --- | --- | --- |
|
|
26
|
+
|
|
27
|
+
### 候选资格
|
|
28
|
+
| candidate_id | status | impact | constraint_ids | evidence |
|
|
29
|
+
| --- | --- | --- | --- | --- |
|
|
30
|
+
|
|
31
|
+
### 分类结果
|
|
32
|
+
| decision_id | classification | evidence |
|
|
33
|
+
| --- | --- | --- |
|
|
34
|
+
|
|
35
|
+
### 上游关系
|
|
36
|
+
| upstream_family | upstream_artifact | upstream_round | upstream_sha256 | relation |
|
|
37
|
+
| --- | --- | --- | --- | --- |
|
|
38
|
+
|
|
39
|
+
### 依赖快照
|
|
40
|
+
| task_input_digest | non_constraint_input_digest | upstream_artifact_digest |
|
|
41
|
+
| --- | --- | --- |
|
|
20
42
|
|
|
21
43
|
- **审查者**:{reviewer-name}
|
|
22
44
|
- **审查时间**:{timestamp}
|
|
@@ -121,19 +143,29 @@
|
|
|
121
143
|
> 如本轮无人工校验项,保留段落标题并写「(无)」。
|
|
122
144
|
|
|
123
145
|
|
|
124
|
-
##
|
|
146
|
+
## 结论与建议
|
|
125
147
|
|
|
126
|
-
|
|
127
|
-
|
|
148
|
+
### 审查决定
|
|
149
|
+
- [ ] 通过
|
|
150
|
+
- [ ] 需要修改
|
|
151
|
+
- [ ] 拒绝
|
|
152
|
+
|
|
153
|
+
### 下一步
|
|
154
|
+
{recommended next step}
|
|
155
|
+
|
|
156
|
+
## 状态核对
|
|
157
|
+
|
|
158
|
+
> 记录状态核对命令、审查范围、关键结果和未覆盖部分;每条命令以 `$ ` 开头。
|
|
159
|
+
> 按 `.agents/rules/evidence-reporting.md` 同时记录审查范围、关键结果和未覆盖部分;正常成功不粘贴完整 stdout。
|
|
128
160
|
|
|
129
161
|
## 证据原文
|
|
130
162
|
|
|
131
|
-
>
|
|
163
|
+
> 遵循 `.agents/rules/evidence-reporting.md`:每条断言配对 `$ ` 命令和相称结果摘要;Blocker、失败、阻塞或争议必须保留可复现命令、准确位置和决定性摘录;无法复现的判断须降级或移入「自我质疑」。
|
|
132
164
|
|
|
133
165
|
- 断言:{verified claim}
|
|
134
166
|
```text
|
|
135
167
|
$ {command}
|
|
136
|
-
{
|
|
168
|
+
{result summary or decisive excerpt}
|
|
137
169
|
```
|
|
138
170
|
|
|
139
171
|
## 自我质疑
|
|
@@ -142,6 +174,11 @@ $ {command}
|
|
|
142
174
|
|
|
143
175
|
- {未直接验证的结论或推断;说明为何未验证、若被推翻的影响}
|
|
144
176
|
|
|
177
|
+
## 审查分歧账本回写
|
|
178
|
+
|
|
179
|
+
> 本段记录将提交的结构化意图:新 finding 用 `task-ledger finding-upsert`,上一轮响应复核用 `finding-review`;由核心分配 `PL-N` 并校验状态机,禁止手写 task.md 表格。
|
|
180
|
+
> 凡升级为 `needs-human-decision` 的 finding,必须按 `.agents/rules/human-decision-context.md` 在本报告中提供自足详情块,并让 evidence 指向该稳定锚点。
|
|
181
|
+
|
|
145
182
|
## 亮点
|
|
146
183
|
|
|
147
184
|
- {what went well}
|
|
@@ -150,14 +187,4 @@ $ {command}
|
|
|
150
187
|
|
|
151
188
|
- [ ] 实现与技术方案一致
|
|
152
189
|
- [ ] 没有意外的范围扩张
|
|
153
|
-
|
|
154
|
-
## 结论与建议
|
|
155
|
-
|
|
156
|
-
### 审查决定
|
|
157
|
-
- [ ] 通过
|
|
158
|
-
- [ ] 需要修改
|
|
159
|
-
- [ ] 拒绝
|
|
160
|
-
|
|
161
|
-
### 下一步
|
|
162
|
-
{recommended next step}
|
|
163
190
|
```
|
|
@@ -12,6 +12,10 @@ Based on the target PR's lifecycle-evidence completeness and change risk, select
|
|
|
12
12
|
|
|
13
13
|
## Boundary / Critical Rules
|
|
14
14
|
|
|
15
|
+
### Persisted Report Evidence
|
|
16
|
+
|
|
17
|
+
Before generating the PR review report, read `.agents/rules/evidence-reporting.md`. Normal review records the command, scope, structured result, actual conclusion, and uncovered parts; formal Review, findings, blocking conditions, or disputes retain exact identity fields and decisive evidence.
|
|
18
|
+
|
|
15
19
|
- Strictly follow the fixed evidence-grading decision flow: host resolution → evidence classification → freshness/alignment → risk grading → mode selection
|
|
16
20
|
- `pr-review*` is an independent artifact family: it does not join the analysis/plan/code stage chain and never changes `current_step`
|
|
17
21
|
- Only a formal PR Review (head SHA, conclusion, findings, receipt, Issue artifact link) is published on the PR; no second full process copy goes to a regular PR comment
|
|
@@ -41,7 +45,7 @@ Before making any task-state judgment or user-visible conclusion, run the state
|
|
|
41
45
|
agent-infra-internal task-snapshot {task-id} --format text
|
|
42
46
|
```
|
|
43
47
|
|
|
44
|
-
The task-anchored path records the current task directory and existing `pr-review*` rounds before starting; the one-shot path (no task) records the PR number and target directory.
|
|
48
|
+
The task-anchored path records the current task directory and existing `pr-review*` rounds before starting; the one-shot path (no task) records the PR number and target directory. Record the command, PR/head, review scope, key result, and uncovered parts in this round's `## State Check` section; do not paste complete directory listings or task tails on normal success, and retain decisive raw lines for identity mismatches, failures, blocking conditions, or disputes.
|
|
45
49
|
|
|
46
50
|
## Steps
|
|
47
51
|
|
|
@@ -12,6 +12,10 @@ description: >
|
|
|
12
12
|
|
|
13
13
|
## 行为边界 / 关键规则
|
|
14
14
|
|
|
15
|
+
### 持久化报告证据
|
|
16
|
+
|
|
17
|
+
生成 PR 审查报告时,先读取 `.agents/rules/evidence-reporting.md`。正常审查记录命令、范围、结构化结果、实际结论和未覆盖部分;正式 Review、finding、阻塞或争议的身份字段和决定性证据必须精确保留。
|
|
18
|
+
|
|
15
19
|
- 严格遵循方案中固化的证据分级主决策流:宿主解析 → 证据分类 → 新鲜度/对齐 → 风险分级 → 模式选择
|
|
16
20
|
- `pr-review*` 是独立 artifact family:不接入 analysis/plan/code 阶段依赖链,不修改 `current_step`
|
|
17
21
|
- PR 上只发布正式 PR Review(head SHA、结论、finding、receipt、Issue artifact 链接),不发第二份完整过程原文到 PR 普通评论
|
|
@@ -41,7 +45,7 @@ description: >
|
|
|
41
45
|
agent-infra-internal task-snapshot {task-id} --format text
|
|
42
46
|
```
|
|
43
47
|
|
|
44
|
-
任务锚定路径在开始前记录当前任务目录与既有 `pr-review*` 轮次;一次性路径(无任务)记录 PR
|
|
48
|
+
任务锚定路径在开始前记录当前任务目录与既有 `pr-review*` 轮次;一次性路径(无任务)记录 PR 编号与目标目录。将命令、PR/head、审查范围、关键结果和未覆盖部分写入本轮产物 `pr-review-rN.md` 的 `## 状态核对` 段;正常成功不粘贴完整目录清单或 `task.md` 尾部,身份不一致、失败、阻塞或争议时保留决定性原文行。
|
|
45
49
|
|
|
46
50
|
## 执行步骤
|
|
47
51
|
|
|
@@ -11,7 +11,8 @@ Use the following structure when creating `pr-review.md` or `pr-review-r{N}.md`.
|
|
|
11
11
|
|
|
12
12
|
## State Check
|
|
13
13
|
|
|
14
|
-
>
|
|
14
|
+
> Record the state-check command, PR/head, review scope, key result, and uncovered parts; each command starts with `$ `.
|
|
15
|
+
> Follow `.agents/rules/evidence-reporting.md`: record PR, head, review scope, key result, and uncovered parts; do not paste complete successful stdout.
|
|
15
16
|
|
|
16
17
|
## Identity
|
|
17
18
|
|
|
@@ -76,10 +77,10 @@ Land the following in order before the line-level findings, without impersonatin
|
|
|
76
77
|
|
|
77
78
|
## Evidence
|
|
78
79
|
|
|
79
|
-
>
|
|
80
|
+
> Follow `.agents/rules/evidence-reporting.md`: pair every assertion with a `$ ` command and proportionate result summary; formal Review, failures, blocking conditions, or disputes retain exact identity and decisive excerpts.
|
|
80
81
|
|
|
81
82
|
- Assertion: {verified claim}
|
|
82
83
|
```text
|
|
83
84
|
$ {command}
|
|
84
|
-
{
|
|
85
|
+
{result summary or decisive excerpt}
|
|
85
86
|
```
|
|
@@ -11,7 +11,8 @@
|
|
|
11
11
|
|
|
12
12
|
## 状态核对
|
|
13
13
|
|
|
14
|
-
>
|
|
14
|
+
> 记录状态核对命令、PR/head、审查范围、关键结果和未覆盖部分;每条命令以 `$ ` 开头。
|
|
15
|
+
> 按 `.agents/rules/evidence-reporting.md` 同时记录 PR、head、审查范围、关键结果和未覆盖部分;正常成功不粘贴完整 stdout。
|
|
15
16
|
|
|
16
17
|
## 身份信息
|
|
17
18
|
|
|
@@ -76,10 +77,10 @@
|
|
|
76
77
|
|
|
77
78
|
## 证据原文
|
|
78
79
|
|
|
79
|
-
>
|
|
80
|
+
> 遵循 `.agents/rules/evidence-reporting.md`:每条断言配对 `$ ` 命令和相称结果摘要;正式 Review、失败、阻塞或争议保留准确身份和决定性摘录。
|
|
80
81
|
|
|
81
82
|
- 断言:{verified claim}
|
|
82
83
|
```text
|
|
83
84
|
$ {command}
|
|
84
|
-
{
|
|
85
|
+
{result summary or decisive excerpt}
|
|
85
86
|
```
|
|
@@ -8,12 +8,18 @@ description: >
|
|
|
8
8
|
|
|
9
9
|
# Run Manual Validation
|
|
10
10
|
|
|
11
|
+
Lifecycle events require explicit trigger data: use `{trigger-initiator}=orchestrator` for orchestration and `model` otherwise; `{request-id}` is a stable single-line identifier for this task and artifact round, and `{reason-code}` is `user-request` or `validation-rerun`. Reuse the same values for started and completed.
|
|
12
|
+
|
|
11
13
|
## Task Context Resolution
|
|
12
14
|
|
|
13
15
|
The entry point may omit the task ref; explicit task scope accepts only `--task <ref>` or `-t <ref>`, and positional task refs are not interpreted. Parse `--scope`, `--timeout`, and `--format` before `--`, preserve the user command after `--` verbatim, then call `agent-infra-internal task-context resolve {task-scope}`. Pass through resolution failures without scanning tasks locally. The internal `task-validate` protocol continues to use a positional task ref.
|
|
14
16
|
|
|
15
17
|
## Boundary
|
|
16
18
|
|
|
19
|
+
### Persisted Report Evidence
|
|
20
|
+
|
|
21
|
+
Before generating a validation report, read `.agents/rules/evidence-reporting.md`. Record only the command name, target scope, exit status, sanitized result, and coverage gap; never record complete argv, environment variables, tokens, absolute paths, or a raw sensitive transcript.
|
|
22
|
+
|
|
17
23
|
- Select the validation mode, call the sole mechanical entry point, and record evidence; do not mark PR manual validation complete.
|
|
18
24
|
- `complete-manual-validation` remains the maintainer's final registration after coverage is judged sufficient.
|
|
19
25
|
- Never manipulate temporary worktrees, leases, or containers directly; only call `agent-infra-internal task-validate`.
|
|
@@ -22,7 +28,7 @@ The entry point may omit the task ref; explicit task scope accepts only `--task
|
|
|
22
28
|
|
|
23
29
|
## Step 0: State Check (pre-execution hard gate)
|
|
24
30
|
|
|
25
|
-
Resolve the task reference, then run this command and
|
|
31
|
+
Resolve the task reference, then run this command and record the task/artifact scope, key result, and uncovered parts in the artifact; do not paste complete directory listings or task tails on normal success. Retain decisive raw lines only for failures, blocking conditions, identity mismatches, or disputes:
|
|
26
32
|
|
|
27
33
|
```bash
|
|
28
34
|
agent-infra-internal task-snapshot {task-id} --format text
|
|
@@ -32,10 +38,10 @@ agent-infra-internal task-snapshot {task-id} --format text
|
|
|
32
38
|
|
|
33
39
|
1. Read `reference/discovery-and-execution.md` and parse the input mode. Stop before started without an artifact for invalid or partial input.
|
|
34
40
|
2. Run `agent-infra-internal task-artifact {task-id} inspect --family validation-run` and read the latest review-code manual-validation items. Then run `agent-infra-internal platform-pr inspect {task-id}` and use the reference status matrix to discover, merge, and number items. Only automatic mode stops before started when reliable sources are empty or the sole possible source is unreadable; valid explicit mode always continues with the user command as effective work.
|
|
35
|
-
3. Take the round and artifact name from the core result. After confirming valid explicit work or a non-empty discovered list, run `agent-infra-internal task-event {task-id} validation-run.started --agent {standard-agent-token}` and classify each item as `executable|unavailable|unknown|unsafe|unresolved`.
|
|
41
|
+
3. Take the round and artifact name from the core result. After confirming valid explicit work or a non-empty discovered list, run `agent-infra-internal task-event {task-id} validation-run.started --agent {standard-agent-token} --initiator {trigger-initiator} --request-id {request-id} --reason-code {reason-code}` and classify each item as `executable|unavailable|unknown|unsafe|unresolved`.
|
|
36
42
|
4. Invoke every executable item separately with `agent-infra-internal task-validate {task-ref} --scope snapshot --format json -- {command...}`. Only make a second explicit inplace invocation for that item when evidence proves it is required. If no item is executable, run no fabricated command but still produce coverage-gap evidence.
|
|
37
43
|
5. Read `reference/report-template.md`, create `validation-run.md|validation-run-r{N}.md`, and record the input mode, discovered list, per-item results, CLI JSON allowlist, and sanitized summaries.
|
|
38
|
-
6. Run `agent-infra-internal task-event {task-id} validation-run.completed --agent {standard-agent-token} --artifact {artifact}`. When an Issue exists, run `agent-infra-internal platform-comment sync {task-id} --kind task --agent {standard-agent-token}` and then `agent-infra-internal platform-comment sync {task-id} --kind artifact --artifact {artifact} --agent {standard-agent-token}`.
|
|
44
|
+
6. Run `agent-infra-internal task-event {task-id} validation-run.completed --agent {standard-agent-token} --initiator {trigger-initiator} --request-id {request-id} --reason-code {reason-code} --artifact {artifact}`. When an Issue exists, run `agent-infra-internal platform-comment sync {task-id} --kind task --agent {standard-agent-token}` and then `agent-infra-internal platform-comment sync {task-id} --kind artifact --artifact {artifact} --agent {standard-agent-token}`.
|
|
39
45
|
7. Run `agent-infra-internal task-verify {task-id} validation-run.completed --artifact {artifact} --format text`; fix failures and rerun it.
|
|
40
46
|
8. Report the evidence path, coverage gaps, and verification result; explicitly leave the decision to run `complete-manual-validation` to the maintainer. Read `.agents/rules/next-step-output.md` and end with `Completed at`.
|
|
41
47
|
|