@fitlab-ai/agent-infra 0.9.1 → 0.9.3
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 +24 -11
- package/README.zh-CN.md +24 -11
- package/bin/cli.ts +12 -0
- package/dist/bin/cli.js +14 -0
- package/dist/bin/internal-cli.js +30 -0
- package/dist/lib/agent-client.js +163 -0
- package/dist/lib/agent-clients/adapter.js +337 -0
- package/dist/lib/agent-clients/adapters/antigravity-cli.js +64 -0
- package/dist/lib/agent-clients/adapters/claude-code.js +71 -0
- package/dist/lib/agent-clients/adapters/codex-sandbox.js +210 -0
- package/dist/lib/agent-clients/adapters/codex.js +63 -0
- package/dist/lib/agent-clients/adapters/index.js +20 -0
- package/dist/lib/agent-clients/adapters/opencode.js +73 -0
- package/dist/lib/agent-clients/config.js +215 -0
- package/dist/lib/agent-clients/custom-tuis.js +99 -0
- package/dist/lib/agent-clients/invocation.js +9 -0
- package/dist/lib/agent-clients/next-steps.js +47 -0
- package/dist/lib/agent-clients/project-assets.js +45 -0
- package/dist/lib/agent-clients/reconcile.js +236 -0
- package/dist/lib/agent-clients/registry.js +78 -0
- package/dist/lib/agent-clients/schema.js +75 -0
- package/dist/lib/agent-clients/tokens.js +49 -0
- package/dist/lib/agent-clients/types.js +29 -0
- package/dist/lib/builtin-tuis.js +9 -14
- package/dist/lib/defaults.json +85 -73
- package/dist/lib/git/review-snapshot.js +25 -10
- package/dist/lib/git/reviewed-commit-equivalence.js +110 -0
- package/dist/lib/git/workflow.js +54 -1
- package/dist/lib/init.js +47 -91
- package/dist/lib/internal/agent-client.js +174 -0
- package/dist/lib/internal/git-workflow.js +7 -2
- package/dist/lib/internal/platform-checks.js +3 -3
- package/dist/lib/internal/platform-comment.js +29 -2
- package/dist/lib/internal/platform-issue.js +7 -0
- package/dist/lib/internal/platform-pr-review.js +132 -0
- package/dist/lib/internal/platform-pr.js +20 -2
- package/dist/lib/internal/platform-release-notes.js +52 -16
- package/dist/lib/internal/pr-review-grade.js +140 -0
- package/dist/lib/internal/release-workflow.js +82 -20
- package/dist/lib/internal/task-activity.js +73 -0
- package/dist/lib/internal/task-event.js +17 -1
- package/dist/lib/internal/task-lifecycle.js +7 -0
- package/dist/lib/internal/task-orchestration.js +196 -0
- package/dist/lib/internal/task-review.js +70 -0
- package/dist/lib/merge.js +2 -1
- package/dist/lib/platform/adapters.js +45 -1
- package/dist/lib/platform/change-request-git-evidence.js +113 -0
- package/dist/lib/platform/completion-backfill.js +122 -0
- package/dist/lib/platform/issue-comments.js +3 -2
- package/dist/lib/platform/merged-pr-equivalence.js +156 -16
- package/dist/lib/platform/pr-checks.js +101 -50
- package/dist/lib/platform/pr-review.js +166 -0
- package/dist/lib/platform/pull-requests.js +432 -7
- package/dist/lib/platform/release-notes.js +85 -3
- package/dist/lib/platform/releases.js +1 -1
- package/dist/lib/platform/verification-required.js +8 -10
- package/dist/lib/pr-review/evidence-grading.js +229 -0
- package/dist/lib/prompt.js +15 -3
- package/dist/lib/release/channels.js +4 -1
- package/dist/lib/release/workflow.js +4 -2
- package/dist/lib/remove-dir.js +25 -0
- package/dist/lib/run/tui.js +11 -7
- package/dist/lib/sandbox/agent-client-reconciler.js +234 -0
- package/dist/lib/sandbox/clipboard/linux.js +2 -1
- package/dist/lib/sandbox/commands/create.js +76 -200
- package/dist/lib/sandbox/commands/enter.js +17 -1
- package/dist/lib/sandbox/commands/prune.js +2 -2
- package/dist/lib/sandbox/commands/rm.js +3 -2
- package/dist/lib/sandbox/commands/show.js +1 -1
- package/dist/lib/sandbox/config.js +21 -4
- package/dist/lib/sandbox/constants.js +3 -0
- package/dist/lib/sandbox/dockerfile.js +2 -1
- package/dist/lib/sandbox/managed-fs.js +10 -5
- package/dist/lib/sandbox/recovery.js +52 -36
- package/dist/lib/sandbox/shell.js +1 -1
- package/dist/lib/sandbox/tool-types.js +8 -0
- package/dist/lib/sandbox/tools.js +2 -126
- package/dist/lib/task/activity-intent.js +101 -0
- package/dist/lib/task/artifact-lifecycle.js +3 -50
- package/dist/lib/task/commands/decisions.js +50 -20
- package/dist/lib/task/commands/log.js +15 -14
- package/dist/lib/task/delegation-receipts.js +128 -0
- package/dist/lib/task/events.js +146 -8
- package/dist/lib/task/finalization-artifacts.js +35 -0
- package/dist/lib/task/lifecycle-execution.js +46 -0
- package/dist/lib/task/orchestration.js +784 -0
- package/dist/lib/task/review-artifacts.js +143 -59
- package/dist/lib/task/review-finalization.js +186 -0
- package/dist/lib/task/review-fingerprint.js +4 -0
- package/dist/lib/task/task-execution-lock.js +231 -0
- package/dist/lib/task/verification-checks.js +2 -1
- package/dist/lib/task/verification-engine.js +372 -28
- package/dist/lib/task/verification-review.js +1 -1
- package/dist/lib/task/verification.js +5 -2
- package/dist/lib/task/workspace-snapshot.js +46 -0
- package/dist/lib/update.js +42 -161
- package/lib/agent-client.ts +214 -0
- package/lib/agent-clients/adapter.ts +534 -0
- package/lib/agent-clients/adapters/antigravity-cli.ts +65 -0
- package/lib/agent-clients/adapters/claude-code.ts +79 -0
- package/lib/agent-clients/adapters/codex-sandbox.ts +245 -0
- package/lib/agent-clients/adapters/codex.ts +67 -0
- package/lib/agent-clients/adapters/index.ts +27 -0
- package/lib/agent-clients/adapters/opencode.ts +75 -0
- package/lib/agent-clients/config.ts +323 -0
- package/lib/agent-clients/custom-tuis.ts +149 -0
- package/lib/agent-clients/invocation.ts +19 -0
- package/lib/agent-clients/next-steps.ts +85 -0
- package/lib/agent-clients/project-assets.ts +96 -0
- package/lib/agent-clients/reconcile.ts +325 -0
- package/lib/agent-clients/registry.ts +154 -0
- package/lib/agent-clients/schema.ts +80 -0
- package/lib/agent-clients/tokens.ts +53 -0
- package/lib/agent-clients/types.ts +92 -0
- package/lib/benchmark/schemas/v1.0.0/case-manifest.schema.json +120 -0
- package/lib/benchmark/schemas/v1.0.0/common.schema.json +109 -0
- package/lib/benchmark/schemas/v1.0.0/grader-result.schema.json +160 -0
- package/lib/benchmark/schemas/v1.0.0/run-manifest.schema.json +122 -0
- package/lib/benchmark/schemas/v1.0.0/subject.schema.json +227 -0
- package/lib/builtin-tuis.ts +16 -15
- package/lib/defaults.json +24 -12
- package/lib/git/review-snapshot.ts +39 -9
- package/lib/git/reviewed-commit-equivalence.ts +135 -0
- package/lib/git/workflow.ts +66 -2
- package/lib/init.ts +53 -121
- package/lib/internal/agent-client.ts +186 -0
- package/lib/internal/git-workflow.ts +6 -2
- package/lib/internal/platform-checks.ts +4 -4
- package/lib/internal/platform-comment.ts +17 -2
- package/lib/internal/platform-issue.ts +4 -0
- package/lib/internal/platform-pr-review.ts +104 -0
- package/lib/internal/platform-pr.ts +14 -1
- package/lib/internal/platform-release-notes.ts +59 -16
- package/lib/internal/pr-review-grade.ts +130 -0
- package/lib/internal/release-workflow.ts +79 -20
- package/lib/internal/task-activity.ts +55 -0
- package/lib/internal/task-event.ts +9 -1
- package/lib/internal/task-lifecycle.ts +4 -0
- package/lib/internal/task-orchestration.ts +171 -0
- package/lib/internal/task-review.ts +70 -0
- package/lib/merge.ts +2 -1
- package/lib/platform/adapters.ts +169 -3
- package/lib/platform/change-request-git-evidence.ts +159 -0
- package/lib/platform/completion-backfill.ts +134 -0
- package/lib/platform/issue-comments.ts +3 -2
- package/lib/platform/merged-pr-equivalence.ts +178 -19
- package/lib/platform/pr-checks.ts +121 -66
- package/lib/platform/pr-review.ts +201 -0
- package/lib/platform/pull-requests.ts +529 -27
- package/lib/platform/release-notes.ts +100 -4
- package/lib/platform/releases.ts +1 -1
- package/lib/platform/verification-required.ts +12 -10
- package/lib/pr-review/evidence-grading.ts +318 -0
- package/lib/prompt.ts +16 -3
- package/lib/release/channels.ts +4 -1
- package/lib/release/workflow.ts +4 -3
- package/lib/remove-dir.ts +28 -0
- package/lib/run/tui.ts +12 -5
- package/lib/sandbox/agent-client-reconciler.ts +378 -0
- package/lib/sandbox/clipboard/linux.ts +2 -1
- package/lib/sandbox/commands/create.ts +111 -212
- package/lib/sandbox/commands/enter.ts +23 -1
- package/lib/sandbox/commands/prune.ts +2 -2
- package/lib/sandbox/commands/rm.ts +3 -2
- package/lib/sandbox/commands/show.ts +1 -1
- package/lib/sandbox/config.ts +31 -4
- package/lib/sandbox/constants.ts +6 -0
- package/lib/sandbox/dockerfile.ts +2 -1
- package/lib/sandbox/managed-fs.ts +18 -5
- package/lib/sandbox/recovery.ts +98 -67
- package/lib/sandbox/shell.ts +1 -1
- package/lib/sandbox/tool-types.ts +143 -0
- package/lib/sandbox/tools.ts +5 -157
- package/lib/server/server.schema.json +2 -2
- package/lib/task/activity-intent.ts +128 -0
- package/lib/task/artifact-lifecycle.ts +3 -39
- package/lib/task/commands/decisions.ts +53 -20
- package/lib/task/commands/log.ts +15 -14
- package/lib/task/delegation-receipts.ts +199 -0
- package/lib/task/events.ts +164 -11
- package/lib/task/finalization-artifacts.ts +58 -0
- package/lib/task/lifecycle-execution.ts +106 -0
- package/lib/task/orchestration.ts +1022 -0
- package/lib/task/review-artifacts.ts +201 -69
- package/lib/task/review-finalization.ts +306 -0
- package/lib/task/review-fingerprint.ts +5 -0
- package/lib/task/task-execution-lock.ts +296 -0
- package/lib/task/verification-checks.ts +2 -1
- package/lib/task/verification-engine.ts +424 -28
- package/lib/task/verification-review.ts +1 -0
- package/lib/task/verification.ts +8 -3
- package/lib/task/workspace-snapshot.ts +57 -0
- package/lib/update.ts +48 -184
- package/package.json +4 -4
- package/templates/.agents/QUICKSTART.en.md +25 -8
- package/templates/.agents/QUICKSTART.zh-CN.md +25 -8
- package/templates/.agents/README.en.md +29 -25
- package/templates/.agents/README.zh-CN.md +29 -25
- package/templates/.agents/hooks/lifecycle-delegation.js +75 -0
- package/templates/.agents/rules/README.en.md +2 -0
- package/templates/.agents/rules/README.zh-CN.md +2 -0
- package/templates/.agents/rules/commit-and-pr.en.md +1 -0
- package/templates/.agents/rules/commit-and-pr.zh-CN.md +1 -0
- package/templates/.agents/rules/create-issue.github.en.md +4 -2
- package/templates/.agents/rules/create-issue.github.zh-CN.md +4 -2
- package/templates/.agents/rules/human-decision-context.en.md +14 -12
- package/templates/.agents/rules/human-decision-context.zh-CN.md +14 -12
- package/templates/.agents/rules/issue-fields.github.en.md +3 -1
- package/templates/.agents/rules/issue-fields.github.zh-CN.md +3 -1
- package/templates/.agents/rules/issue-pr-commands.en.md +5 -3
- package/templates/.agents/rules/issue-pr-commands.github.en.md +5 -3
- package/templates/.agents/rules/issue-pr-commands.github.zh-CN.md +5 -3
- package/templates/.agents/rules/issue-pr-commands.zh-CN.md +5 -3
- package/templates/.agents/rules/issue-sync.github.en.md +7 -3
- package/templates/.agents/rules/issue-sync.github.zh-CN.md +8 -4
- package/templates/.agents/rules/lifecycle-orchestration.en.md +24 -0
- package/templates/.agents/rules/lifecycle-orchestration.zh-CN.md +24 -0
- package/templates/.agents/rules/milestone-inference.github.en.md +4 -2
- package/templates/.agents/rules/milestone-inference.github.zh-CN.md +4 -2
- package/templates/.agents/rules/next-step-output.en.md +18 -0
- package/templates/.agents/rules/next-step-output.zh-CN.md +18 -0
- package/templates/.agents/rules/no-mid-flow-questions.en.md +19 -0
- package/templates/.agents/rules/no-mid-flow-questions.zh-CN.md +19 -0
- package/templates/.agents/rules/pr-checks-commands.en.md +3 -3
- package/templates/.agents/rules/pr-checks-commands.github.en.md +2 -2
- package/templates/.agents/rules/pr-checks-commands.github.zh-CN.md +2 -2
- package/templates/.agents/rules/pr-checks-commands.zh-CN.md +3 -3
- package/templates/.agents/rules/pr-sync.en.md +3 -1
- package/templates/.agents/rules/pr-sync.github.en.md +11 -1
- package/templates/.agents/rules/pr-sync.github.zh-CN.md +11 -1
- package/templates/.agents/rules/pr-sync.zh-CN.md +3 -1
- package/templates/.agents/rules/release-commands.en.md +1 -1
- package/templates/.agents/rules/release-commands.github.en.md +21 -5
- package/templates/.agents/rules/release-commands.github.zh-CN.md +21 -5
- package/templates/.agents/rules/release-commands.zh-CN.md +1 -1
- package/templates/.agents/rules/review-handshake.en.md +4 -4
- package/templates/.agents/rules/review-handshake.zh-CN.md +4 -4
- package/templates/.agents/rules/review-method.en.md +113 -0
- package/templates/.agents/rules/review-method.zh-CN.md +98 -0
- package/templates/.agents/rules/task-management.en.md +11 -0
- package/templates/.agents/rules/task-management.zh-CN.md +11 -0
- package/templates/.agents/skills/analyze-task/SKILL.en.md +15 -12
- package/templates/.agents/skills/analyze-task/SKILL.zh-CN.md +15 -12
- package/templates/.agents/skills/block-task/SKILL.en.md +11 -9
- package/templates/.agents/skills/block-task/SKILL.zh-CN.md +11 -9
- package/templates/.agents/skills/cancel-task/SKILL.en.md +10 -8
- package/templates/.agents/skills/cancel-task/SKILL.zh-CN.md +11 -9
- package/templates/.agents/skills/check-task/SKILL.en.md +16 -16
- package/templates/.agents/skills/check-task/SKILL.zh-CN.md +16 -16
- package/templates/.agents/skills/close-codescan/SKILL.en.md +7 -5
- package/templates/.agents/skills/close-codescan/SKILL.zh-CN.md +7 -5
- package/templates/.agents/skills/close-dependabot/SKILL.en.md +7 -5
- package/templates/.agents/skills/close-dependabot/SKILL.zh-CN.md +7 -5
- package/templates/.agents/skills/code-task/SKILL.en.md +10 -7
- package/templates/.agents/skills/code-task/SKILL.zh-CN.md +13 -10
- package/templates/.agents/skills/code-task/reference/fix-mode.en.md +14 -16
- package/templates/.agents/skills/code-task/reference/fix-mode.zh-CN.md +14 -16
- package/templates/.agents/skills/code-task/reference/output-template.en.md +3 -3
- package/templates/.agents/skills/code-task/reference/output-template.zh-CN.md +3 -3
- package/templates/.agents/skills/commit/SKILL.en.md +13 -1
- package/templates/.agents/skills/commit/SKILL.zh-CN.md +13 -1
- package/templates/.agents/skills/commit/reference/commit-message.en.md +1 -1
- package/templates/.agents/skills/commit/reference/commit-message.zh-CN.md +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/commit/reference/pr-summary-sync.en.md +1 -1
- package/templates/.agents/skills/commit/reference/pr-summary-sync.zh-CN.md +1 -1
- package/templates/.agents/skills/commit/reference/task-status-update.en.md +24 -28
- package/templates/.agents/skills/commit/reference/task-status-update.zh-CN.md +24 -28
- package/templates/.agents/skills/complete-manual-validation/SKILL.en.md +6 -4
- package/templates/.agents/skills/complete-manual-validation/SKILL.zh-CN.md +6 -4
- package/templates/.agents/skills/complete-manual-validation/reference/summary-update.en.md +1 -1
- package/templates/.agents/skills/complete-manual-validation/reference/summary-update.zh-CN.md +1 -1
- package/templates/.agents/skills/complete-task/SKILL.en.md +23 -8
- package/templates/.agents/skills/complete-task/SKILL.zh-CN.md +23 -8
- package/templates/.agents/skills/complete-task/config/verify.en.json +1 -0
- package/templates/.agents/skills/complete-task/config/verify.zh-CN.json +1 -0
- package/templates/.agents/skills/complete-task/reference/external-delivery.en.md +17 -0
- package/templates/.agents/skills/complete-task/reference/external-delivery.zh-CN.md +17 -0
- package/templates/.agents/skills/create-pr/SKILL.en.md +13 -11
- package/templates/.agents/skills/create-pr/SKILL.zh-CN.md +13 -11
- package/templates/.agents/skills/create-pr/reference/comment-publish.en.md +1 -1
- package/templates/.agents/skills/create-pr/reference/comment-publish.zh-CN.md +1 -1
- package/templates/.agents/skills/create-pr/reference/pr-body-template.en.md +3 -3
- package/templates/.agents/skills/create-pr/reference/pr-body-template.zh-CN.md +3 -3
- package/templates/.agents/skills/create-release-note/SKILL.en.md +17 -16
- package/templates/.agents/skills/create-release-note/SKILL.zh-CN.md +17 -16
- package/templates/.agents/skills/create-task/SKILL.en.md +16 -14
- package/templates/.agents/skills/create-task/SKILL.zh-CN.md +16 -14
- package/templates/.agents/skills/import-codescan/SKILL.en.md +5 -5
- package/templates/.agents/skills/import-codescan/SKILL.zh-CN.md +5 -5
- package/templates/.agents/skills/import-dependabot/SKILL.en.md +5 -5
- package/templates/.agents/skills/import-dependabot/SKILL.zh-CN.md +5 -5
- package/templates/.agents/skills/import-issue/SKILL.en.md +10 -8
- package/templates/.agents/skills/import-issue/SKILL.zh-CN.md +10 -8
- package/templates/.agents/skills/init-labels/SKILL.en.md +4 -4
- package/templates/.agents/skills/init-labels/SKILL.zh-CN.md +4 -4
- package/templates/.agents/skills/init-milestones/SKILL.en.md +4 -4
- package/templates/.agents/skills/init-milestones/SKILL.zh-CN.md +4 -4
- package/templates/.agents/skills/plan-task/SKILL.en.md +13 -10
- package/templates/.agents/skills/plan-task/SKILL.zh-CN.md +13 -10
- package/templates/.agents/skills/post-release/SKILL.en.md +2 -0
- package/templates/.agents/skills/post-release/SKILL.zh-CN.md +2 -0
- package/templates/.agents/skills/refine-title/SKILL.en.md +1 -1
- package/templates/.agents/skills/refine-title/SKILL.zh-CN.md +1 -1
- package/templates/.agents/skills/release/SKILL.en.md +16 -10
- package/templates/.agents/skills/release/SKILL.zh-CN.md +16 -10
- package/templates/.agents/skills/restore-task/SKILL.en.md +4 -1
- package/templates/.agents/skills/restore-task/SKILL.zh-CN.md +4 -1
- package/templates/.agents/skills/review-analysis/SKILL.en.md +18 -4
- package/templates/.agents/skills/review-analysis/SKILL.zh-CN.md +19 -5
- package/templates/.agents/skills/review-analysis/config/verify.en.json +6 -0
- package/templates/.agents/skills/review-analysis/config/verify.zh-CN.json +6 -0
- package/templates/.agents/skills/review-analysis/reference/output-templates.en.md +13 -15
- package/templates/.agents/skills/review-analysis/reference/output-templates.zh-CN.md +13 -15
- package/templates/.agents/skills/review-analysis/reference/report-template.en.md +51 -5
- package/templates/.agents/skills/review-analysis/reference/report-template.zh-CN.md +52 -6
- package/templates/.agents/skills/review-analysis/reference/review-criteria.en.md +25 -22
- package/templates/.agents/skills/review-analysis/reference/review-criteria.zh-CN.md +25 -22
- package/templates/.agents/skills/review-code/SKILL.en.md +35 -12
- package/templates/.agents/skills/review-code/SKILL.zh-CN.md +35 -12
- package/templates/.agents/skills/review-code/config/verify.en.json +7 -0
- package/templates/.agents/skills/review-code/config/verify.zh-CN.json +7 -0
- package/templates/.agents/skills/review-code/reference/concurrency-risks.en.md +25 -0
- package/templates/.agents/skills/review-code/reference/concurrency-risks.zh-CN.md +25 -0
- package/templates/.agents/skills/review-code/reference/cross-platform-risks.en.md +27 -0
- package/templates/.agents/skills/review-code/reference/cross-platform-risks.zh-CN.md +27 -0
- package/templates/.agents/skills/review-code/reference/documentation-antipatterns.en.md +13 -0
- package/templates/.agents/skills/review-code/reference/documentation-antipatterns.zh-CN.md +13 -0
- package/templates/.agents/skills/review-code/reference/migration-risks.en.md +25 -0
- package/templates/.agents/skills/review-code/reference/migration-risks.zh-CN.md +25 -0
- package/templates/.agents/skills/review-code/reference/output-templates.en.md +22 -24
- package/templates/.agents/skills/review-code/reference/output-templates.zh-CN.md +22 -24
- package/templates/.agents/skills/review-code/reference/report-template.en.md +54 -7
- package/templates/.agents/skills/review-code/reference/report-template.zh-CN.md +54 -7
- package/templates/.agents/skills/review-code/reference/review-criteria.en.md +29 -24
- package/templates/.agents/skills/review-code/reference/review-criteria.zh-CN.md +29 -24
- package/templates/.agents/skills/review-code/reference/security-risks.en.md +25 -0
- package/templates/.agents/skills/review-code/reference/security-risks.zh-CN.md +25 -0
- package/templates/.agents/skills/review-plan/SKILL.en.md +18 -4
- package/templates/.agents/skills/review-plan/SKILL.zh-CN.md +19 -5
- package/templates/.agents/skills/review-plan/config/verify.en.json +6 -0
- package/templates/.agents/skills/review-plan/config/verify.zh-CN.json +6 -0
- package/templates/.agents/skills/review-plan/reference/output-templates.en.md +13 -15
- package/templates/.agents/skills/review-plan/reference/output-templates.zh-CN.md +13 -15
- package/templates/.agents/skills/review-plan/reference/report-template.en.md +61 -5
- package/templates/.agents/skills/review-plan/reference/report-template.zh-CN.md +61 -5
- package/templates/.agents/skills/review-plan/reference/review-criteria.en.md +21 -24
- package/templates/.agents/skills/review-plan/reference/review-criteria.zh-CN.md +21 -24
- package/templates/.agents/skills/review-pr/SKILL.en.md +158 -0
- package/templates/.agents/skills/review-pr/SKILL.zh-CN.md +158 -0
- package/templates/.agents/skills/review-pr/config/verify.en.json +37 -0
- package/templates/.agents/skills/review-pr/config/verify.zh-CN.json +37 -0
- package/templates/.agents/skills/review-pr/reference/evidence-grading.en.md +65 -0
- package/templates/.agents/skills/review-pr/reference/evidence-grading.zh-CN.md +65 -0
- package/templates/.agents/skills/review-pr/reference/output-guidance.en.md +18 -0
- package/templates/.agents/skills/review-pr/reference/output-guidance.zh-CN.md +18 -0
- package/templates/.agents/skills/review-pr/reference/report-template.en.md +85 -0
- package/templates/.agents/skills/review-pr/reference/report-template.zh-CN.md +85 -0
- package/templates/.agents/skills/run-task/SKILL.en.md +22 -0
- package/templates/.agents/skills/run-task/SKILL.zh-CN.md +22 -0
- package/templates/.agents/skills/run-task/config/verify.en.json +10 -0
- package/templates/.agents/skills/run-task/config/verify.zh-CN.json +10 -0
- package/templates/.agents/skills/run-task/reference/host-validation.en.md +20 -0
- package/templates/.agents/skills/run-task/reference/host-validation.zh-CN.md +20 -0
- package/templates/.agents/skills/test/SKILL.en.md +4 -4
- package/templates/.agents/skills/test/SKILL.zh-CN.md +4 -4
- package/templates/.agents/skills/test-integration/SKILL.en.md +4 -4
- package/templates/.agents/skills/test-integration/SKILL.zh-CN.md +4 -4
- package/templates/.agents/skills/update-agent-infra/SKILL.en.md +5 -5
- package/templates/.agents/skills/update-agent-infra/SKILL.zh-CN.md +5 -5
- package/templates/.agents/skills/update-agent-infra/scripts/sync-templates.js +664 -246
- package/templates/.agents/skills/upgrade-dependency/SKILL.en.md +4 -4
- package/templates/.agents/skills/upgrade-dependency/SKILL.zh-CN.md +4 -4
- package/templates/.agents/skills/watch-pr/SKILL.en.md +21 -21
- package/templates/.agents/skills/watch-pr/SKILL.zh-CN.md +21 -21
- package/templates/.agents/skills/watch-pr/reference/monitor-and-heal.en.md +27 -6
- package/templates/.agents/skills/watch-pr/reference/monitor-and-heal.zh-CN.md +26 -5
- package/templates/.agents/templates/task.en.md +1 -1
- package/templates/.agents/templates/task.zh-CN.md +1 -1
- package/templates/.agents/workflows/bug-fix.en.yaml +3 -3
- package/templates/.agents/workflows/bug-fix.zh-CN.yaml +3 -3
- package/templates/.agents/workflows/code-review.en.yaml +1 -1
- package/templates/.agents/workflows/code-review.zh-CN.yaml +1 -1
- package/templates/.agents/workflows/feature-development.en.yaml +4 -4
- package/templates/.agents/workflows/feature-development.zh-CN.yaml +4 -4
- package/templates/.agents/workflows/refactoring.en.yaml +3 -3
- package/templates/.agents/workflows/refactoring.zh-CN.yaml +3 -3
- package/templates/.claude/agents/agent-infra-lifecycle-executor.en.md +6 -0
- package/templates/.claude/agents/agent-infra-lifecycle-executor.zh-CN.md +6 -0
- package/templates/.claude/agents/agent-infra-lifecycle-reviewer.en.md +6 -0
- package/templates/.claude/agents/agent-infra-lifecycle-reviewer.zh-CN.md +6 -0
- package/templates/.claude/commands/post-release.en.md +1 -0
- package/templates/.claude/commands/post-release.zh-CN.md +1 -0
- package/templates/.claude/commands/review-pr.en.md +8 -0
- package/templates/.claude/commands/review-pr.zh-CN.md +8 -0
- package/templates/.claude/commands/run-task.en.md +8 -0
- package/templates/.claude/commands/run-task.zh-CN.md +8 -0
- package/templates/.claude/settings.json +24 -0
- package/templates/.codex/agents/agent-infra-lifecycle-executor.en.toml +3 -0
- package/templates/.codex/agents/agent-infra-lifecycle-executor.zh-CN.toml +3 -0
- package/templates/.codex/agents/agent-infra-lifecycle-reviewer.en.toml +3 -0
- package/templates/.codex/agents/agent-infra-lifecycle-reviewer.zh-CN.toml +3 -0
- package/templates/.gemini/commands/_project_/review-pr.en.toml +10 -0
- package/templates/.gemini/commands/_project_/review-pr.zh-CN.toml +10 -0
- package/templates/.opencode/commands/post-release.en.md +2 -0
- package/templates/.opencode/commands/post-release.zh-CN.md +2 -0
- package/templates/.opencode/commands/review-pr.en.md +11 -0
- package/templates/.opencode/commands/review-pr.zh-CN.md +11 -0
- package/templates/.opencode/commands/run-task.en.md +11 -0
- package/templates/.opencode/commands/run-task.zh-CN.md +11 -0
- package/templates/.gemini/commands/_project_/analyze-task.en.toml +0 -10
- package/templates/.gemini/commands/_project_/analyze-task.zh-CN.toml +0 -10
- package/templates/.gemini/commands/_project_/archive-tasks.en.toml +0 -10
- package/templates/.gemini/commands/_project_/archive-tasks.zh-CN.toml +0 -10
- package/templates/.gemini/commands/_project_/block-task.en.toml +0 -10
- package/templates/.gemini/commands/_project_/block-task.zh-CN.toml +0 -10
- package/templates/.gemini/commands/_project_/cancel-task.en.toml +0 -10
- package/templates/.gemini/commands/_project_/cancel-task.zh-CN.toml +0 -10
- package/templates/.gemini/commands/_project_/check-task.en.toml +0 -10
- package/templates/.gemini/commands/_project_/check-task.zh-CN.toml +0 -10
- package/templates/.gemini/commands/_project_/close-codescan.en.toml +0 -8
- package/templates/.gemini/commands/_project_/close-codescan.zh-CN.toml +0 -8
- package/templates/.gemini/commands/_project_/close-dependabot.en.toml +0 -8
- package/templates/.gemini/commands/_project_/close-dependabot.zh-CN.toml +0 -8
- package/templates/.gemini/commands/_project_/code-task.en.toml +0 -10
- package/templates/.gemini/commands/_project_/code-task.zh-CN.toml +0 -10
- package/templates/.gemini/commands/_project_/commit.en.toml +0 -10
- package/templates/.gemini/commands/_project_/commit.zh-CN.toml +0 -10
- package/templates/.gemini/commands/_project_/complete-manual-validation.en.toml +0 -10
- package/templates/.gemini/commands/_project_/complete-manual-validation.zh-CN.toml +0 -10
- package/templates/.gemini/commands/_project_/complete-task.en.toml +0 -10
- package/templates/.gemini/commands/_project_/complete-task.zh-CN.toml +0 -10
- package/templates/.gemini/commands/_project_/create-pr.en.toml +0 -10
- package/templates/.gemini/commands/_project_/create-pr.zh-CN.toml +0 -10
- package/templates/.gemini/commands/_project_/create-release-note.en.toml +0 -8
- package/templates/.gemini/commands/_project_/create-release-note.zh-CN.toml +0 -8
- package/templates/.gemini/commands/_project_/create-task.en.toml +0 -8
- package/templates/.gemini/commands/_project_/create-task.zh-CN.toml +0 -8
- package/templates/.gemini/commands/_project_/import-codescan.en.toml +0 -8
- package/templates/.gemini/commands/_project_/import-codescan.zh-CN.toml +0 -8
- package/templates/.gemini/commands/_project_/import-dependabot.en.toml +0 -8
- package/templates/.gemini/commands/_project_/import-dependabot.zh-CN.toml +0 -8
- package/templates/.gemini/commands/_project_/import-issue.en.toml +0 -8
- package/templates/.gemini/commands/_project_/import-issue.zh-CN.toml +0 -8
- package/templates/.gemini/commands/_project_/init-labels.en.toml +0 -8
- package/templates/.gemini/commands/_project_/init-labels.zh-CN.toml +0 -8
- package/templates/.gemini/commands/_project_/init-milestones.en.toml +0 -10
- package/templates/.gemini/commands/_project_/init-milestones.zh-CN.toml +0 -10
- package/templates/.gemini/commands/_project_/plan-task.en.toml +0 -10
- package/templates/.gemini/commands/_project_/plan-task.zh-CN.toml +0 -10
- package/templates/.gemini/commands/_project_/post-release.en.toml +0 -6
- package/templates/.gemini/commands/_project_/post-release.zh-CN.toml +0 -6
- package/templates/.gemini/commands/_project_/refine-title.en.toml +0 -8
- package/templates/.gemini/commands/_project_/refine-title.zh-CN.toml +0 -8
- package/templates/.gemini/commands/_project_/release.en.toml +0 -8
- package/templates/.gemini/commands/_project_/release.zh-CN.toml +0 -8
- package/templates/.gemini/commands/_project_/restore-task.en.toml +0 -8
- package/templates/.gemini/commands/_project_/restore-task.zh-CN.toml +0 -8
- package/templates/.gemini/commands/_project_/review-analysis.en.toml +0 -10
- package/templates/.gemini/commands/_project_/review-analysis.zh-CN.toml +0 -10
- package/templates/.gemini/commands/_project_/review-code.en.toml +0 -10
- package/templates/.gemini/commands/_project_/review-code.zh-CN.toml +0 -10
- package/templates/.gemini/commands/_project_/review-plan.en.toml +0 -10
- package/templates/.gemini/commands/_project_/review-plan.zh-CN.toml +0 -10
- package/templates/.gemini/commands/_project_/test-integration.en.toml +0 -6
- package/templates/.gemini/commands/_project_/test-integration.zh-CN.toml +0 -6
- package/templates/.gemini/commands/_project_/test.en.toml +0 -6
- package/templates/.gemini/commands/_project_/test.zh-CN.toml +0 -6
- package/templates/.gemini/commands/_project_/update-agent-infra.en.toml +0 -6
- package/templates/.gemini/commands/_project_/update-agent-infra.zh-CN.toml +0 -6
- package/templates/.gemini/commands/_project_/upgrade-dependency.en.toml +0 -8
- package/templates/.gemini/commands/_project_/upgrade-dependency.zh-CN.toml +0 -8
- package/templates/.gemini/commands/_project_/watch-pr.en.toml +0 -10
- package/templates/.gemini/commands/_project_/watch-pr.zh-CN.toml +0 -10
- package/templates/.gemini/settings.json +0 -3
|
@@ -15,22 +15,20 @@ Rules:
|
|
|
15
15
|
- Do not mix text from multiple scenarios
|
|
16
16
|
- If `Blocker > 0`, never use an approved template
|
|
17
17
|
- Never count manual-validation items as blocker / major / minor or use them to trigger Scenario B/C/D
|
|
18
|
-
- The selected scenario must
|
|
18
|
+
- The selected scenario must generate `{next-step-commands}` through the shared helper
|
|
19
19
|
- The count line shows 4 numbers. `Human-decision` (`{h}`) counts this stage's `needs-human-decision` rows; because those rows are unresolved, `{h} > 0` means `canAdvance=false`. Expand the "Pending human-decision pre-block" from `.agents/rules/next-step-output.md` and show revision and re-review paths only.
|
|
20
20
|
|
|
21
|
-
For Scenarios B/C/D, follow the revision commands with re-review commands: `/review-plan {task-ref}`, `/{{project}}:review-plan {task-ref}`, and `$review-plan {task-ref}`.
|
|
22
|
-
|
|
23
21
|
### Scenario A: Approved with no findings
|
|
24
22
|
|
|
23
|
+
Populate `{next-step-commands}` for this scenario by running `agent-infra-internal agent-client next-steps --skill code-task --task-ref {task-ref}`.
|
|
24
|
+
|
|
25
25
|
```text
|
|
26
26
|
Task {task-id} technical plan review completed. Verdict: approved.
|
|
27
27
|
- Blockers: 0 | Major issues: 0 | Minor issues: 0 | Human-decision: {h}
|
|
28
28
|
[- Review report: .agents/workspace/active/{task-id}/{review-artifact}]
|
|
29
29
|
|
|
30
30
|
Next step - write code:
|
|
31
|
-
|
|
32
|
-
- Gemini CLI: /{{project}}:code-task {task-ref}
|
|
33
|
-
- Codex CLI: $code-task {task-ref}
|
|
31
|
+
{next-step-commands}
|
|
34
32
|
|
|
35
33
|
[When manual-validation > 0, append:]
|
|
36
34
|
Reminder: manual-validation items belong in the PR description manual verification checklist and should not trigger /plan-task.
|
|
@@ -38,15 +36,15 @@ Reminder: manual-validation items belong in the PR description manual verificati
|
|
|
38
36
|
|
|
39
37
|
### Scenario B: Changes requested (major / minor)
|
|
40
38
|
|
|
39
|
+
Populate `{next-step-commands}` for this scenario by running `agent-infra-internal agent-client next-steps --skill plan-task --task-ref {task-ref}`.
|
|
40
|
+
|
|
41
41
|
```text
|
|
42
42
|
Task {task-id} technical plan review completed. Verdict: changes requested.
|
|
43
43
|
- Blockers: 0 | Major issues: {n} | Minor issues: {n} | Human-decision: {h}
|
|
44
44
|
- Review report: .agents/workspace/active/{task-id}/{review-artifact}
|
|
45
45
|
|
|
46
46
|
Next step - revise technical plan:
|
|
47
|
-
|
|
48
|
-
- Gemini CLI: /{{project}}:plan-task {task-ref}
|
|
49
|
-
- Codex CLI: $plan-task {task-ref}
|
|
47
|
+
{next-step-commands}
|
|
50
48
|
|
|
51
49
|
[When manual-validation > 0, append:]
|
|
52
50
|
Reminder: manual-validation items belong in the PR description manual verification checklist and should not trigger /plan-task.
|
|
@@ -54,15 +52,15 @@ Reminder: manual-validation items belong in the PR description manual verificati
|
|
|
54
52
|
|
|
55
53
|
### Scenario C: Changes requested
|
|
56
54
|
|
|
55
|
+
Populate `{next-step-commands}` for this scenario by running `agent-infra-internal agent-client next-steps --skill plan-task --task-ref {task-ref}`.
|
|
56
|
+
|
|
57
57
|
```text
|
|
58
58
|
Task {task-id} technical plan review completed. Verdict: changes requested.
|
|
59
59
|
- Blockers: {n} | Major issues: {n} | Minor issues: {n} | Human-decision: {h}
|
|
60
60
|
- Review report: .agents/workspace/active/{task-id}/{review-artifact}
|
|
61
61
|
|
|
62
62
|
Next step - revise technical plan:
|
|
63
|
-
|
|
64
|
-
- Gemini CLI: /{{project}}:plan-task {task-ref}
|
|
65
|
-
- Codex CLI: $plan-task {task-ref}
|
|
63
|
+
{next-step-commands}
|
|
66
64
|
|
|
67
65
|
[When manual-validation > 0, append:]
|
|
68
66
|
Reminder: manual-validation items belong in the PR description manual verification checklist and should not trigger /plan-task.
|
|
@@ -70,15 +68,15 @@ Reminder: manual-validation items belong in the PR description manual verificati
|
|
|
70
68
|
|
|
71
69
|
### Scenario D: Rejected
|
|
72
70
|
|
|
71
|
+
Populate `{next-step-commands}` for this scenario by running `agent-infra-internal agent-client next-steps --skill plan-task --task-ref {task-ref}`.
|
|
72
|
+
|
|
73
73
|
```text
|
|
74
74
|
Task {task-id} technical plan review completed. Verdict: rejected, redesign required.
|
|
75
75
|
- Blockers: {n} | Major issues: {n} | Minor issues: {n} | Human-decision: {h}
|
|
76
76
|
- Review report: .agents/workspace/active/{task-id}/{review-artifact}
|
|
77
77
|
|
|
78
78
|
Next step - redesign:
|
|
79
|
-
|
|
80
|
-
- Gemini CLI: /{{project}}:plan-task {task-ref}
|
|
81
|
-
- Codex CLI: $plan-task {task-ref}
|
|
79
|
+
{next-step-commands}
|
|
82
80
|
|
|
83
81
|
[When manual-validation > 0, append:]
|
|
84
82
|
Reminder: manual-validation items belong in the PR description manual verification checklist and should not trigger /plan-task.
|
|
@@ -15,22 +15,20 @@
|
|
|
15
15
|
- 不要混用不同场景的文案
|
|
16
16
|
- 只要 `Blocker > 0`,就绝对不能输出通过模板
|
|
17
17
|
- manual-validation 项绝对不能被计入 blocker / major / minor 计数,也不能用作触发场景 B/C/D 的依据
|
|
18
|
-
-
|
|
18
|
+
- 所选场景必须通过统一 helper 生成 `{next-step-commands}`
|
|
19
19
|
- 计数行固定显示 4 个数字。`人工裁决`(`{h}`)是本阶段 `needs-human-decision` 行数;它属于未闭环账本状态,因此 `{h} > 0` 时 `canAdvance=false`,必须按 `.agents/rules/next-step-output.md` 的「人工裁决待办前置块」展开详情,并只输出修订与复审路径。
|
|
20
20
|
|
|
21
|
-
场景 B/C/D 在修订命令后继续列出复审命令:`/review-plan {task-ref}`、`/{{project}}:review-plan {task-ref}`、`$review-plan {task-ref}`。
|
|
22
|
-
|
|
23
21
|
### 场景 A:通过且无问题
|
|
24
22
|
|
|
23
|
+
使用 `agent-infra-internal agent-client next-steps --skill code-task --task-ref {task-ref}` 生成本场景的 `{next-step-commands}`。
|
|
24
|
+
|
|
25
25
|
```text
|
|
26
26
|
任务 {task-id} 技术方案审查完成。结论:通过。
|
|
27
27
|
- 阻塞项:0 | 主要问题:0 | 次要问题:0 | 人工裁决:{h}
|
|
28
28
|
[- 审查报告:.agents/workspace/active/{task-id}/{review-artifact}]
|
|
29
29
|
|
|
30
30
|
下一步 - 编写代码:
|
|
31
|
-
|
|
32
|
-
- Gemini CLI:/{{project}}:code-task {task-ref}
|
|
33
|
-
- Codex CLI:$code-task {task-ref}
|
|
31
|
+
{next-step-commands}
|
|
34
32
|
|
|
35
33
|
[当 manual-validation > 0 时,在最后附加一行:]
|
|
36
34
|
提醒:manual-validation 项需在 PR description 的「待人工验证」清单中承接,不应触发 /plan-task。
|
|
@@ -38,15 +36,15 @@
|
|
|
38
36
|
|
|
39
37
|
### 场景 B:需要修改(major / minor)
|
|
40
38
|
|
|
39
|
+
使用 `agent-infra-internal agent-client next-steps --skill plan-task --task-ref {task-ref}` 生成本场景的 `{next-step-commands}`。
|
|
40
|
+
|
|
41
41
|
```text
|
|
42
42
|
任务 {task-id} 技术方案审查完成。结论:需要修改。
|
|
43
43
|
- 阻塞项:0 | 主要问题:{n} | 次要问题:{n} | 人工裁决:{h}
|
|
44
44
|
- 审查报告:.agents/workspace/active/{task-id}/{review-artifact}
|
|
45
45
|
|
|
46
46
|
下一步 - 修订技术方案:
|
|
47
|
-
|
|
48
|
-
- Gemini CLI:/{{project}}:plan-task {task-ref}
|
|
49
|
-
- Codex CLI:$plan-task {task-ref}
|
|
47
|
+
{next-step-commands}
|
|
50
48
|
|
|
51
49
|
[当 manual-validation > 0 时,在最后附加一行:]
|
|
52
50
|
提醒:manual-validation 项需在 PR description 的「待人工验证」清单中承接,不应触发 /plan-task。
|
|
@@ -54,15 +52,15 @@
|
|
|
54
52
|
|
|
55
53
|
### 场景 C:需要修改
|
|
56
54
|
|
|
55
|
+
使用 `agent-infra-internal agent-client next-steps --skill plan-task --task-ref {task-ref}` 生成本场景的 `{next-step-commands}`。
|
|
56
|
+
|
|
57
57
|
```text
|
|
58
58
|
任务 {task-id} 技术方案审查完成。结论:需要修改。
|
|
59
59
|
- 阻塞项:{n} | 主要问题:{n} | 次要问题:{n} | 人工裁决:{h}
|
|
60
60
|
- 审查报告:.agents/workspace/active/{task-id}/{review-artifact}
|
|
61
61
|
|
|
62
62
|
下一步 - 修订技术方案:
|
|
63
|
-
|
|
64
|
-
- Gemini CLI:/{{project}}:plan-task {task-ref}
|
|
65
|
-
- Codex CLI:$plan-task {task-ref}
|
|
63
|
+
{next-step-commands}
|
|
66
64
|
|
|
67
65
|
[当 manual-validation > 0 时,在最后附加一行:]
|
|
68
66
|
提醒:manual-validation 项需在 PR description 的「待人工验证」清单中承接,不应触发 /plan-task。
|
|
@@ -70,15 +68,15 @@
|
|
|
70
68
|
|
|
71
69
|
### 场景 D:拒绝
|
|
72
70
|
|
|
71
|
+
使用 `agent-infra-internal agent-client next-steps --skill plan-task --task-ref {task-ref}` 生成本场景的 `{next-step-commands}`。
|
|
72
|
+
|
|
73
73
|
```text
|
|
74
74
|
任务 {task-id} 技术方案审查完成。结论:拒绝,需要重新设计。
|
|
75
75
|
- 阻塞项:{n} | 主要问题:{n} | 次要问题:{n} | 人工裁决:{h}
|
|
76
76
|
- 审查报告:.agents/workspace/active/{task-id}/{review-artifact}
|
|
77
77
|
|
|
78
78
|
下一步 - 重新设计:
|
|
79
|
-
|
|
80
|
-
- Gemini CLI:/{{project}}:plan-task {task-ref}
|
|
81
|
-
- Codex CLI:$plan-task {task-ref}
|
|
79
|
+
{next-step-commands}
|
|
82
80
|
|
|
83
81
|
[当 manual-validation > 0 时,在最后附加一行:]
|
|
84
82
|
提醒:manual-validation 项需在 PR description 的「待人工验证」清单中承接,不应触发 /plan-task。
|
|
@@ -22,7 +22,55 @@ Use this template when writing `review-plan.md` or `review-plan-r{N}.md`.
|
|
|
22
22
|
- **Review Time**: {timestamp}
|
|
23
23
|
- **Scope**: {file-count and major modules}
|
|
24
24
|
- **Overall Verdict**: {Approved / Changes Requested / Rejected}
|
|
25
|
-
- **Findings (AI-actionable)**:
|
|
25
|
+
- **Findings (AI-actionable)**: {unresolved-blockers} blockers, {unresolved-major} majors, {unresolved-minor} minors / **Manual validation**: 0
|
|
26
|
+
|
|
27
|
+
## Review Coverage Declaration
|
|
28
|
+
|
|
29
|
+
| pass_id | scope | evidence | result | gaps_or_assumptions |
|
|
30
|
+
|---------|-------|----------|--------|---------------------|
|
|
31
|
+
| pass-1..5 | {scope actually reviewed} | {artifact / file:line / command} | {finding or conclusion} | {gap or assumption} |
|
|
32
|
+
|
|
33
|
+
| lens_id | trigger_evidence | loaded | result |
|
|
34
|
+
|---------|------------------|--------|--------|
|
|
35
|
+
| {registry token} | {trigger or non-trigger evidence} | {yes / no / not-applicable} | {lens result} |
|
|
36
|
+
|
|
37
|
+
## Technical Plan Architecture Coverage
|
|
38
|
+
|
|
39
|
+
| assessment_id | classification | trigger_evidence | review_depth | result_or_gap |
|
|
40
|
+
|---------------|----------------|------------------|--------------|---------------|
|
|
41
|
+
| architecture-significance | {ordinary / architecture-significant} | {artifact / file:line / source_id} | {proportional / mini-atam} | {covered / gap} |
|
|
42
|
+
|
|
43
|
+
> Scenario A (`ordinary`): keep the table above, record `Mini-ATAM: not-applicable` with a reviewable reason, and delete the Scenario B tables.
|
|
44
|
+
>
|
|
45
|
+
> Scenario B (`architecture-significant`): keep the table above and the five tables below, and delete the Scenario A guidance.
|
|
46
|
+
|
|
47
|
+
| quality_scenario_id | source_id | business_driver | quality_attribute | priority | stimulus | context | expected_response | measure | result_or_gap |
|
|
48
|
+
|---------------------|-----------|-----------------|-------------------|----------|----------|---------|-------------------|---------|---------------|
|
|
49
|
+
| {stable identifier} | {source identifier} | {business driver} | {quality attribute} | {priority} | {stimulus} | {context} | {expected response} | {verifiable measure} | {covered / gap} |
|
|
50
|
+
|
|
51
|
+
| decision_id | selected_option | alternative_option | benefit | cost | assumption | rejection_reason | result_or_gap |
|
|
52
|
+
|-------------|-----------------|--------------------|---------|------|------------|------------------|---------------|
|
|
53
|
+
| {stable identifier} | {selected option} | {reasonable alternative} | {primary benefit} | {primary cost} | {assumption} | {rejection reason} | {covered / gap} |
|
|
54
|
+
|
|
55
|
+
| risk_id | decision_id | risk_or_sensitivity | affected_quality_attributes | tradeoff | mitigation_or_validation | result_or_gap |
|
|
56
|
+
|---------|-------------|---------------------|-----------------------------|----------|--------------------------|---------------|
|
|
57
|
+
| {stable identifier} | {decision identifier} | {risk or sensitivity point} | {affected quality attributes} | {trade-off} | {mitigation or validation} | {covered / gap} |
|
|
58
|
+
|
|
59
|
+
| decision_id | door_type | reversal_cost | migration_or_rollback | decision_status | result_or_gap |
|
|
60
|
+
|-------------|-----------|---------------|-----------------------|-----------------|---------------|
|
|
61
|
+
| {decision identifier} | {two-way / one-way} | {reversal cost} | {migration or rollback path} | {resolved / needs-human-decision} | {covered / gap} |
|
|
62
|
+
|
|
63
|
+
| evolution_id | scenario_type | source_id | confirmation_status | change_scenario | affected_scope | verification | result_or_gap |
|
|
64
|
+
|--------------|---------------|-----------|---------------------|-----------------|----------------|--------------|---------------|
|
|
65
|
+
| {stable identifier} | {evolution / migration / rollback / compatibility / operations} | {source identifier} | {confirmed / unconfirmed / not-applicable} | {change scenario} | {affected scope} | {verification and continuous-validation entry point} | {covered / gap / not-applicable} |
|
|
66
|
+
|
|
67
|
+
> An `unconfirmed` future scenario must not become a current hard requirement. Keep `not-applicable` with evidence for each inapplicable item.
|
|
68
|
+
|
|
69
|
+
## Traceability Matrix
|
|
70
|
+
|
|
71
|
+
| source_id | upstream | reviewed_target | verification | status_or_gap |
|
|
72
|
+
|-----------|----------|-----------------|--------------|---------------|
|
|
73
|
+
| {source identifier} | {approved requirement} | {decision/step/test strategy} | {verification evidence} | {covered / gap} |
|
|
26
74
|
|
|
27
75
|
## Findings
|
|
28
76
|
|
|
@@ -30,15 +78,23 @@ Use this template when writing `review-plan.md` or `review-plan-r{N}.md`.
|
|
|
30
78
|
|
|
31
79
|
#### 1. {Issue title}
|
|
32
80
|
**File**: `{file-path}:{line-number}`
|
|
33
|
-
**
|
|
34
|
-
**
|
|
81
|
+
**Scenario**: {scenario}
|
|
82
|
+
**Impact**: {impact}
|
|
83
|
+
**Evidence**: {reproducible evidence}
|
|
84
|
+
**Confidence**: {high / medium / low}
|
|
85
|
+
**Unverified Assumptions**: {assumptions or none}
|
|
86
|
+
**Fix Direction**: {fix direction}
|
|
35
87
|
|
|
36
88
|
### Major Issues (should fix)
|
|
37
89
|
|
|
38
90
|
#### 1. {Issue title}
|
|
39
91
|
**File**: `{file-path}:{line-number}`
|
|
40
|
-
**
|
|
41
|
-
**
|
|
92
|
+
**Scenario**: {scenario}
|
|
93
|
+
**Impact**: {impact}
|
|
94
|
+
**Evidence**: {reproducible evidence}
|
|
95
|
+
**Confidence**: {high / medium / low}
|
|
96
|
+
**Unverified Assumptions**: {assumptions or none}
|
|
97
|
+
**Fix Direction**: {fix direction}
|
|
42
98
|
|
|
43
99
|
### Minor Issues (low impact, closure required)
|
|
44
100
|
|
|
@@ -22,7 +22,55 @@
|
|
|
22
22
|
- **审查时间**:{timestamp}
|
|
23
23
|
- **审查范围**:{file-count and major modules}
|
|
24
24
|
- **总体结论**:{通过 / 需要修改 / 拒绝}
|
|
25
|
-
- **发现(AI 可处理)**:
|
|
25
|
+
- **发现(AI 可处理)**:{unresolved-blockers} 阻塞项,{unresolved-major} 主要,{unresolved-minor} 次要 / **人工校验**:0
|
|
26
|
+
|
|
27
|
+
## 检视覆盖声明
|
|
28
|
+
|
|
29
|
+
| pass_id | scope | evidence | result | gaps_or_assumptions |
|
|
30
|
+
|---------|-------|----------|--------|---------------------|
|
|
31
|
+
| pass-1..5 | {本遍实际范围} | {artifact / file:line / command} | {发现或结论} | {缺口或假设} |
|
|
32
|
+
|
|
33
|
+
| lens_id | trigger_evidence | loaded | result |
|
|
34
|
+
|---------|------------------|--------|--------|
|
|
35
|
+
| {registry token} | {命中或未命中证据} | {yes / no / not-applicable} | {专项结论} |
|
|
36
|
+
|
|
37
|
+
## 技术方案架构覆盖
|
|
38
|
+
|
|
39
|
+
| assessment_id | classification | trigger_evidence | review_depth | result_or_gap |
|
|
40
|
+
|---------------|----------------|------------------|--------------|---------------|
|
|
41
|
+
| architecture-significance | {ordinary / architecture-significant} | {artifact / file:line / source_id} | {proportional / mini-atam} | {covered / gap} |
|
|
42
|
+
|
|
43
|
+
> 场景 A(`ordinary`):保留上表,记录 `Mini-ATAM: not-applicable` 及可复核理由,并删除场景 B 的表格。
|
|
44
|
+
>
|
|
45
|
+
> 场景 B(`architecture-significant`):保留上表和以下五张表,并删除场景 A 的说明。
|
|
46
|
+
|
|
47
|
+
| quality_scenario_id | source_id | business_driver | quality_attribute | priority | stimulus | context | expected_response | measure | result_or_gap |
|
|
48
|
+
|---------------------|-----------|-----------------|-------------------|----------|----------|---------|-------------------|---------|---------------|
|
|
49
|
+
| {稳定标识} | {来源标识} | {业务驱动} | {质量属性} | {优先级} | {触发} | {上下文} | {期望响应} | {可验证度量} | {covered / gap} |
|
|
50
|
+
|
|
51
|
+
| decision_id | selected_option | alternative_option | benefit | cost | assumption | rejection_reason | result_or_gap |
|
|
52
|
+
|-------------|-----------------|--------------------|---------|------|------------|------------------|---------------|
|
|
53
|
+
| {稳定标识} | {所选方案} | {合理替代方案} | {主要收益} | {主要代价} | {假设} | {不采用原因} | {covered / gap} |
|
|
54
|
+
|
|
55
|
+
| risk_id | decision_id | risk_or_sensitivity | affected_quality_attributes | tradeoff | mitigation_or_validation | result_or_gap |
|
|
56
|
+
|---------|-------------|---------------------|-----------------------------|----------|--------------------------|---------------|
|
|
57
|
+
| {稳定标识} | {决策标识} | {风险或敏感点} | {受影响质量属性} | {权衡} | {缓解或验证} | {covered / gap} |
|
|
58
|
+
|
|
59
|
+
| decision_id | door_type | reversal_cost | migration_or_rollback | decision_status | result_or_gap |
|
|
60
|
+
|-------------|-----------|---------------|-----------------------|-----------------|---------------|
|
|
61
|
+
| {决策标识} | {two-way / one-way} | {逆转成本} | {迁移或回滚路径} | {resolved / needs-human-decision} | {covered / gap} |
|
|
62
|
+
|
|
63
|
+
| evolution_id | scenario_type | source_id | confirmation_status | change_scenario | affected_scope | verification | result_or_gap |
|
|
64
|
+
|--------------|---------------|-----------|---------------------|-----------------|----------------|--------------|---------------|
|
|
65
|
+
| {稳定标识} | {evolution / migration / rollback / compatibility / operations} | {来源标识} | {confirmed / unconfirmed / not-applicable} | {变化场景} | {影响范围} | {验证方式与持续验证入口} | {covered / gap / not-applicable} |
|
|
66
|
+
|
|
67
|
+
> `unconfirmed` 的未来场景不得升级为当前硬性需求;不适用项保留 `not-applicable` 及证据。
|
|
68
|
+
|
|
69
|
+
## 追踪矩阵
|
|
70
|
+
|
|
71
|
+
| source_id | upstream | reviewed_target | verification | status_or_gap |
|
|
72
|
+
|-----------|----------|-----------------|--------------|---------------|
|
|
73
|
+
| {来源标识} | {已批准需求} | {设计决策/步骤/测试策略} | {验证证据} | {covered / gap} |
|
|
26
74
|
|
|
27
75
|
## 问题清单
|
|
28
76
|
|
|
@@ -30,15 +78,23 @@
|
|
|
30
78
|
|
|
31
79
|
#### 1. {问题标题}
|
|
32
80
|
**文件**:`{file-path}:{line-number}`
|
|
33
|
-
|
|
34
|
-
|
|
81
|
+
**场景**:{scenario}
|
|
82
|
+
**影响**:{impact}
|
|
83
|
+
**证据**:{reproducible evidence}
|
|
84
|
+
**置信度**:{high / medium / low}
|
|
85
|
+
**未验证假设**:{assumptions or none}
|
|
86
|
+
**修复方向**:{fix direction}
|
|
35
87
|
|
|
36
88
|
### 主要问题(建议修复)
|
|
37
89
|
|
|
38
90
|
#### 1. {问题标题}
|
|
39
91
|
**文件**:`{file-path}:{line-number}`
|
|
40
|
-
|
|
41
|
-
|
|
92
|
+
**场景**:{scenario}
|
|
93
|
+
**影响**:{impact}
|
|
94
|
+
**证据**:{reproducible evidence}
|
|
95
|
+
**置信度**:{high / medium / low}
|
|
96
|
+
**未验证假设**:{assumptions or none}
|
|
97
|
+
**修复方向**:{fix direction}
|
|
42
98
|
|
|
43
99
|
### 次要问题(低影响但需闭环)
|
|
44
100
|
|
|
@@ -23,35 +23,32 @@ Follow the `design-review` step in `.agents/workflows/feature-development.yaml`.
|
|
|
23
23
|
- Introducing unnecessary abstractions, configuration, or frameworks for a single-use requirement
|
|
24
24
|
- Asserting a `file:line` or behavior from memory or impression without verifying via rg/nl
|
|
25
25
|
|
|
26
|
-
##
|
|
26
|
+
## Shared Method and Classification Boundary
|
|
27
27
|
|
|
28
|
-
|
|
29
|
-
2. **Specific**: cite exact file paths and line numbers
|
|
30
|
-
3. **Actionable**: suggest a concrete fix
|
|
31
|
-
4. **Severity-based**: clearly distinguish blockers, major issues, and minor issues
|
|
28
|
+
Read `.agents/rules/review-method.md` first and apply its five-pass protocol, risk lenses, and finding evidence contract. Finding, manual-validation, advisory, and `needs-human-decision` state semantics remain governed by `.agents/rules/review-handshake.md`. This file adds only plan-stage criteria.
|
|
32
29
|
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
1. A gap in constraints, risks, interface boundaries, validation strategy, or implementability is a formal finding. Assign blocker / major / minor by impact; severity does not control closure, so minor findings must also reach a terminal state.
|
|
36
|
-
2. When there is no known defect but validation requires a real environment, permission, or human operation, classify it as manual-validation.
|
|
37
|
-
3. Only a future optimization that does not affect the current plan's completeness, correctness, or acceptance is an advisory. Put it only in Non-blocking Advisories; do not add it to the ledger, finding counts, or verdict.
|
|
30
|
+
Also inspect the latest technical plan artifact, latest requirement-analysis review artifact, and `task.md` Activity Log so the report reflects the full design context.
|
|
38
31
|
|
|
39
|
-
##
|
|
32
|
+
## Technical Plan Architecture Coverage
|
|
40
33
|
|
|
41
|
-
|
|
34
|
+
First record an `architecture-significance` classification with locatable evidence in every round. Classify the plan as `architecture-significant` when any of these areas changes materially:
|
|
42
35
|
|
|
43
|
-
-
|
|
44
|
-
-
|
|
45
|
-
-
|
|
46
|
-
-
|
|
36
|
+
- responsibility or component boundaries;
|
|
37
|
+
- cross-component data or control flow;
|
|
38
|
+
- public or compatibility interfaces;
|
|
39
|
+
- data ownership or persistence;
|
|
40
|
+
- deployment or operations topology;
|
|
41
|
+
- trust boundaries;
|
|
42
|
+
- trade-offs between priority quality attributes;
|
|
43
|
+
- high-cost or irreversible decisions.
|
|
47
44
|
|
|
48
|
-
|
|
49
|
-
- Yes -> blocker / major / minor, based on risk
|
|
50
|
-
- No -> **manual-validation** (a manual-validation meta-category, not part of severity ordering)
|
|
45
|
+
If none applies, classify the plan as `ordinary`, use `proportional` depth, and record only the classification evidence plus a reviewable reason why Mini-ATAM is `not-applicable`. If any applies, use `mini-atam` depth and complete this review:
|
|
51
46
|
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
47
|
+
1. Trace business drivers and sourced priority quality attributes to approved requirements and constraints.
|
|
48
|
+
2. Record stimulus, context, expected response, and a verifiable measure for each quality-attribute scenario.
|
|
49
|
+
3. Compare each selected architecture decision with at least one reasonable alternative across benefit, cost, assumption, and rejection reason. Architecture-style or design-pattern counts are not evidence of fitness.
|
|
50
|
+
4. Identify risks, sensitivity points, and quality-attribute trade-offs, including mitigation or validation.
|
|
51
|
+
5. Mark each key decision as `two-way` or `one-way`, including reversal cost and migration or rollback path.
|
|
52
|
+
6. Consider `evolution`, `migration`, `rollback`, `compatibility`, and `operations` scenarios individually, mapping affected scope, verification, and the continuous-validation entry point.
|
|
56
53
|
|
|
57
|
-
|
|
54
|
+
For an inapplicable lifecycle scenario, record `not-applicable` and evidence. An `unconfirmed` future scenario must not become a current hard requirement. `one-way` describes reversibility only; upgrade a decision to `needs-human-decision` only when it also meets the existing source and impact tests.
|
|
@@ -23,35 +23,32 @@
|
|
|
23
23
|
- 为单次需求引入不必要的新抽象、配置或框架
|
|
24
24
|
- 凭印象或记忆断言 `file:line`/行为,没有用 rg/nl 复核就下结论
|
|
25
25
|
|
|
26
|
-
##
|
|
26
|
+
## 共享方法与分类边界
|
|
27
27
|
|
|
28
|
-
|
|
29
|
-
2. **具体**:引用准确的文件路径和行号
|
|
30
|
-
3. **可执行**:给出明确可落地的修复建议
|
|
31
|
-
4. **按严重程度分类**:明确区分 blocker、major 和 minor
|
|
28
|
+
先读取 `.agents/rules/review-method.md`,按其五遍协议、风险镜头和 finding 证据契约执行;finding、manual-validation、advisory 与 `needs-human-decision` 的状态语义以 `.agents/rules/review-handshake.md` 为准。本文件只补充技术方案阶段的专项判断。
|
|
32
29
|
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
1. 若问题揭示当前方案缺少约束、风险、接口边界、验证策略或可实施性,登记为正式 finding,并按影响赋予 blocker / major / minor;severity 只表示影响大小,minor 也必须闭环。
|
|
36
|
-
2. 若没有已知缺陷,但只能依赖真实环境、权限或人工操作完成验证,归为 manual-validation。
|
|
37
|
-
3. 仅当建议属于未来优化且不影响当前方案的完整性、正确性和验收时,归为 advisory。advisory 只写入「非阻塞建议」,不进入账本、问题计数或 verdict。
|
|
30
|
+
同时检查最新技术方案产物、最新需求分析审查产物和 `task.md` Activity Log,确保报告反映完整的设计上下文。
|
|
38
31
|
|
|
39
|
-
##
|
|
32
|
+
## 技术方案架构专项覆盖
|
|
40
33
|
|
|
41
|
-
|
|
34
|
+
每轮先用可定位证据记录 `architecture-significance` 分类。以下任一项发生实质变化即分类为 `architecture-significant`:
|
|
42
35
|
|
|
43
|
-
-
|
|
44
|
-
-
|
|
45
|
-
-
|
|
46
|
-
-
|
|
36
|
+
- 职责或组件边界;
|
|
37
|
+
- 跨组件数据流或控制流;
|
|
38
|
+
- 公开接口或兼容接口;
|
|
39
|
+
- 数据所有权或持久化;
|
|
40
|
+
- 部署或运维拓扑;
|
|
41
|
+
- 信任边界;
|
|
42
|
+
- 优先质量属性之间的权衡;
|
|
43
|
+
- 高成本或不可逆决策。
|
|
47
44
|
|
|
48
|
-
|
|
49
|
-
- 是 -> blocker / major / minor 之一(按风险定档)
|
|
50
|
-
- 否 -> **manual-validation**(人工校验元类目,不参与严重程度排序)
|
|
45
|
+
未命中时分类为 `ordinary`,使用 `proportional` 深度,只记录分类证据以及 Mini-ATAM `not-applicable` 的可复核理由。命中时使用 `mini-atam` 深度并完成以下检视:
|
|
51
46
|
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
47
|
+
1. 从已批准需求和约束追踪业务驱动及有来源的优先质量属性。
|
|
48
|
+
2. 为质量属性场景记录 stimulus、context、expected response 和可验证 measure。
|
|
49
|
+
3. 对所选架构决策与至少一个合理替代方案比较 benefit、cost、assumption 和 rejection reason;不得以架构风格或设计模式数量代替适配性判断。
|
|
50
|
+
4. 识别风险、敏感点及质量属性间的 trade-off,并记录缓解或验证方式。
|
|
51
|
+
5. 将关键决策标记为 `two-way` 或 `one-way`,记录逆转成本以及迁移或回滚路径。
|
|
52
|
+
6. 逐项考虑 `evolution`、`migration`、`rollback`、`compatibility`、`operations` 场景,并映射影响范围、验证方式和持续验证入口。
|
|
56
53
|
|
|
57
|
-
|
|
54
|
+
不适用的生命周期场景必须写 `not-applicable` 及证据。`unconfirmed` 的未来场景不得升级为当前硬性需求。`one-way` 只描述可逆性;只有同时满足既有来源测试和影响测试时,才升级为 `needs-human-decision`。
|
|
@@ -0,0 +1,158 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: review-pr
|
|
3
|
+
description: >
|
|
4
|
+
Review a pull request by evidence grade and publish a formal PR review.
|
|
5
|
+
Use when a PR needs review (regardless of whether trusted lifecycle records exist).
|
|
6
|
+
Only invoke this skill automatically when the conversation includes a resolvable PR number or PR URL.
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# Review Pull Request
|
|
10
|
+
|
|
11
|
+
Based on the target PR's lifecycle-evidence completeness and change risk, select `verify` (lightweight recheck), `audit` (evidence audit), or `reconstruct` (reconstruction review), publish the actionable review conclusion as a formal PR Review on the target PR, and retain traceable review-process evidence (`pr-review.md` / `pr-review-r{N}.md`).
|
|
12
|
+
|
|
13
|
+
## Boundary / Critical Rules
|
|
14
|
+
|
|
15
|
+
- Strictly follow the fixed evidence-grading decision flow: host resolution → evidence classification → freshness/alignment → risk grading → mode selection
|
|
16
|
+
- `pr-review*` is an independent artifact family: it does not join the analysis/plan/code stage chain and never changes `current_step`
|
|
17
|
+
- 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
|
|
18
|
+
- The full process copy and the reversible `task.md` mirror are synced only to the linked Issue; `restore-task` keeps its Issue-only contract
|
|
19
|
+
- Never backfill or fabricate `analysis`/`plan`/`code` lifecycle history for an external PR
|
|
20
|
+
- The head SHA is recorded only in `pr-review*` and the formal PR Review; on head drift you must start a new round and never reuse an old conclusion
|
|
21
|
+
- Review depth is driven by evidence completeness and change risk, never by the submitter's identity
|
|
22
|
+
- After executing this skill you **must** immediately update task.md (via the `task-activity` typed intent)
|
|
23
|
+
- Never run `git add` or `git commit` automatically
|
|
24
|
+
- The one-shot path (no task/Issue) uses `.agents/workspace/reviews/{pr-number}/` with `recoverable: false` and carries no recovery promise
|
|
25
|
+
|
|
26
|
+
## Common Rationalizations and Rebuttals
|
|
27
|
+
|
|
28
|
+
| Rationalization | Rebuttal |
|
|
29
|
+
|-----------------|----------|
|
|
30
|
+
| "Just read the diff; no reconstruction needed" | Reading only the diff misses requirement boundaries, architecture choices, and migration strategy; `reconstruct` must first produce the minimum-sufficient reconstruction record. |
|
|
31
|
+
| "The PR has no linked task; just post a report" | Block by default and require linking an Issue/task first; only an explicit "one-shot review" takes the non-recoverable fallback path. |
|
|
32
|
+
| "Also post the full reconstruction to a regular PR comment for contributors" | The process copy is synced only to the Issue artifact comment; the PR keeps only the formal Review to avoid duplicate remote copies and restore-source confusion. |
|
|
33
|
+
| "Commit while I'm at it" | This skill never runs `git add`/`git commit`; committing is a separate, explicitly user-triggered step. |
|
|
34
|
+
|
|
35
|
+
## Step 0: State Check (pre-execution hard gate)
|
|
36
|
+
|
|
37
|
+
Before making any task-state judgment or user-visible conclusion, run the state check:
|
|
38
|
+
|
|
39
|
+
```bash
|
|
40
|
+
agent-infra-internal task-snapshot {task-id} --format text
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
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. Paste the state-check output into the `## State Check` section of this round's `pr-review-rN.md`.
|
|
44
|
+
|
|
45
|
+
## Steps
|
|
46
|
+
|
|
47
|
+
### 1. Resolve the Input and the Host
|
|
48
|
+
|
|
49
|
+
Resolve the target PR number `{pr-number}` (`--pr <number>`, a PR URL, or by reverse lookup from the current branch). Run:
|
|
50
|
+
|
|
51
|
+
```bash
|
|
52
|
+
agent-infra-internal platform-pr-review inspect --pr {pr-number} [--cwd <path>]
|
|
53
|
+
agent-infra-internal pr-review-grade resolve-host --pr {pr-number} [--cwd <path>]
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
`resolve-host` returns a typed `HostResolution` (`unique` / `ambiguous` / `none`). Branch as follows:
|
|
57
|
+
|
|
58
|
+
- **Unique host**: bind `{task-id}` and enumerate `analysis*`/`plan*`/`code*`/`review-*`/`pr-review*` presence (go to step 2).
|
|
59
|
+
- **Ambiguous hosts**: `resolve-host` returns `ambiguous` and `decide` refuses to classify (fail closed). Stop and ask a human to pin the unique host; do not enter evidence classification.
|
|
60
|
+
- **No host**: block by default and require linking an Issue/task first (show linking guidance); never auto-create/import an Issue. Only when the user explicitly chooses a "one-shot review" do process files land in `.agents/workspace/reviews/{pr-number}/` (`recoverable: false`).
|
|
61
|
+
|
|
62
|
+
### 2. Single decide: evidence enumeration + classification + risk + mode
|
|
63
|
+
|
|
64
|
+
Write the host, artifact presence, head state, and the six pure-evidence risk factors to an input JSON, then call once:
|
|
65
|
+
|
|
66
|
+
```bash
|
|
67
|
+
agent-infra-internal pr-review-grade decide --input-file {decide-input.json} [--cwd <path>]
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
Returns the full `DecisionRecord` (`scenario` / `freshness` / `alignment` / `risk` / `mode` / `firstReview` / `reason`) in one call. Record the decision input and output verbatim in the `pr-review-rN.md` "Evidence List" section (AC3 traceability). When `host.kind === 'ambiguous'`, the command refuses; return to step 1's blocking exit.
|
|
71
|
+
|
|
72
|
+
### 3. Generate `pr-review-rN.md`
|
|
73
|
+
|
|
74
|
+
Generate this round's artifact per `reference/report-template.md`. In `reconstruct` mode (or `audit` with insufficient evidence), write a "Reconstruction Context" section (requirement boundary / architecture choices / impact surface / validation coverage, see `reference/evidence-grading.md`) before the line-level findings. Record `recoverable: true|false` in the frontmatter or header (the one-shot path sets `false`).
|
|
75
|
+
|
|
76
|
+
### 4. Sync the Issue artifact comments (task-anchored path)
|
|
77
|
+
|
|
78
|
+
Sync the task comment, then the artifact comment, and capture a stable comment URL:
|
|
79
|
+
|
|
80
|
+
```bash
|
|
81
|
+
agent-infra-internal platform-comment sync {task-id} --kind task --agent {agent}
|
|
82
|
+
agent-infra-internal platform-comment sync {task-id} --kind artifact --artifact {pr-review-artifact} --agent {agent}
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
The one-shot path (no task/Issue) skips this step.
|
|
86
|
+
|
|
87
|
+
### 5. Recheck the head and publish the formal Review
|
|
88
|
+
|
|
89
|
+
Read the remote head again to confirm it did not drift during the review:
|
|
90
|
+
|
|
91
|
+
```bash
|
|
92
|
+
agent-infra-internal platform-pr-review inspect --pr {pr-number} [--cwd <path>]
|
|
93
|
+
```
|
|
94
|
+
|
|
95
|
+
If the head matches step 1, assemble the body (head SHA / conclusion / findings / receipt / Issue artifact link, **without a marker**) and publish the formal Review:
|
|
96
|
+
|
|
97
|
+
```bash
|
|
98
|
+
agent-infra-internal platform-pr-review publish --pr {pr-number} --scope {taskId|pr{pr-number}} --round {round} \
|
|
99
|
+
--commit {head-sha} --event {COMMENT|APPROVE|REQUEST_CHANGES} --body-file {review-body.md} [--dry-run] [--cwd <path>]
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
`publish` generates and validates the marker (first line) in core and is idempotent per marker + commit (replay is a no-op; marker hit on a different commit fails stably). On head drift, stop and start a new round (re-run step 1 with round `{round}+1`).
|
|
103
|
+
|
|
104
|
+
### 6. Write back the publication result and task state
|
|
105
|
+
|
|
106
|
+
- **Task-anchored path**: write the Review ID/URL into the `pr-review-rN.md` "Publication Result" section and append the Activity Log entry:
|
|
107
|
+
|
|
108
|
+
```bash
|
|
109
|
+
agent-infra-internal task-activity {task-id} append --step "Review PR (Round {round})" --agent {agent} \
|
|
110
|
+
--note "receipt {receipt} · Review URL {review-url}" --artifact {pr-review-artifact}
|
|
111
|
+
```
|
|
112
|
+
|
|
113
|
+
`task-activity` atomically completes the Activity Log append, the `## Review Feedback` link, and the version-stamp refresh via `writeTask`; it never changes `current_step`.
|
|
114
|
+
|
|
115
|
+
- **One-shot path (no task)**: write the Review ID/URL only into the `pr-review-rN.md` "Publication Result" section; do not call `task-activity`.
|
|
116
|
+
|
|
117
|
+
### 7. Re-sync after write-back (task-anchored path)
|
|
118
|
+
|
|
119
|
+
Step 6 rewrote the local `pr-review-rN.md` "Publication Result" section and task.md (Activity Log), while step 4 synced the older snapshot. `verify_comment_content` / `verify_task_comment_content` compare full content, so you must re-sync first to align local and remote. Run in order:
|
|
120
|
+
|
|
121
|
+
```bash
|
|
122
|
+
agent-infra-internal platform-comment sync {task-id} --kind task --agent {agent}
|
|
123
|
+
agent-infra-internal platform-comment sync {task-id} --kind artifact --artifact {pr-review-artifact} --agent {agent}
|
|
124
|
+
```
|
|
125
|
+
|
|
126
|
+
`platform-comment sync` updates an existing marker comment in place (idempotent), so the comment URL is unchanged. The one-shot path has no task and skips this step.
|
|
127
|
+
|
|
128
|
+
### 8. Run the completion verification
|
|
129
|
+
|
|
130
|
+
- **Task-anchored path**:
|
|
131
|
+
|
|
132
|
+
```bash
|
|
133
|
+
agent-infra-internal task-verify {task-id} review-pr.completed --artifact {pr-review-artifact} --format text
|
|
134
|
+
```
|
|
135
|
+
|
|
136
|
+
- **One-shot path**:
|
|
137
|
+
|
|
138
|
+
```bash
|
|
139
|
+
agent-infra-internal pr-review-grade verify-artifact --artifact-file {pr-review-artifact} [--cwd <path>]
|
|
140
|
+
```
|
|
141
|
+
|
|
142
|
+
Exit code 0 passes; 1 means fix per the output and re-run; 2 means stop and ask for human intervention.
|
|
143
|
+
|
|
144
|
+
### 9. Inform the user
|
|
145
|
+
|
|
146
|
+
Pick the single exit branch per `reference/output-guidance.md` (published / blocked-requires-link / one-shot), and read `.agents/rules/next-step-output.md` before rendering the next step.
|
|
147
|
+
|
|
148
|
+
## Completion Checklist
|
|
149
|
+
|
|
150
|
+
- [ ] Completed the evidence-graded PR review and produced `pr-review-rN.md`
|
|
151
|
+
- [ ] Published the formal Review on the target PR, bound to the reviewed head SHA
|
|
152
|
+
- [ ] Synced and re-synced the Issue artifact/task comments on the task-anchored path
|
|
153
|
+
- [ ] Ran the completion verification (`task-verify` or `verify-artifact`)
|
|
154
|
+
- [ ] Updated task.md and appended the Activity Log entry (task-anchored path)
|
|
155
|
+
|
|
156
|
+
## Stop
|
|
157
|
+
|
|
158
|
+
Stop as soon as the checklist is complete. Do not commit automatically.
|