@fitlab-ai/agent-infra 0.8.4 → 0.9.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bin/cli.ts +2 -2
- package/dist/bin/cli.js +2 -2
- package/dist/bin/internal-cli.js +98 -0
- package/dist/lib/decide.js +81 -90
- package/dist/lib/defaults.json +9 -0
- package/dist/lib/git/review-snapshot.js +79 -0
- package/dist/lib/git/workflow.js +101 -0
- package/dist/lib/init.js +5 -0
- package/dist/lib/internal/git-workflow.js +42 -0
- package/dist/lib/internal/platform-checks.js +119 -0
- package/dist/lib/internal/platform-comment.js +129 -0
- package/dist/lib/internal/platform-context.js +46 -0
- package/dist/lib/internal/platform-issue.js +142 -0
- package/dist/lib/internal/platform-pr.js +146 -0
- package/dist/lib/internal/release-workflow.js +217 -0
- package/dist/lib/internal/task-artifact.js +67 -0
- package/dist/lib/internal/task-context.js +43 -0
- package/dist/lib/internal/task-event.js +70 -0
- package/dist/lib/internal/task-ledger.js +114 -0
- package/dist/lib/internal/task-lifecycle.js +58 -0
- package/dist/lib/internal/task-short-id.js +83 -0
- package/dist/lib/internal/task-snapshot.js +47 -0
- package/dist/lib/internal/task-verify.js +50 -0
- package/dist/lib/internal/task-warning.js +74 -0
- package/dist/lib/platform/adapters.js +14 -0
- package/dist/lib/platform/context.js +146 -0
- package/dist/lib/platform/github-client.js +124 -0
- package/dist/lib/platform/issue-comments.js +409 -0
- package/dist/lib/platform/issue-metadata.js +183 -0
- package/dist/lib/platform/issues.js +617 -0
- package/dist/lib/platform/metadata-labels.js +28 -0
- package/dist/lib/platform/pr-checks.js +216 -0
- package/dist/lib/platform/pr-summary.js +88 -0
- package/dist/lib/platform/pull-request-metadata.js +38 -0
- package/dist/lib/platform/pull-requests.js +338 -0
- package/dist/lib/platform/releases.js +82 -0
- package/dist/lib/platform/types.js +22 -0
- package/dist/lib/platform/verification-required.js +78 -0
- package/dist/lib/platform/verification-sync.js +1014 -0
- package/dist/lib/platform/verification.js +6 -0
- package/dist/lib/release/channels.js +31 -0
- package/dist/lib/release/workflow.js +32 -0
- package/dist/lib/render.js +3 -2
- package/dist/lib/run/index.js +24 -7
- package/dist/lib/sandbox/capture.js +25 -3
- package/dist/lib/sandbox/commands/create.js +66 -26
- package/dist/lib/sandbox/commands/enter.js +34 -11
- package/dist/lib/sandbox/commands/list-running.js +10 -8
- package/dist/lib/sandbox/commands/show.js +2 -2
- package/dist/lib/sandbox/commands/start.js +53 -15
- package/dist/lib/sandbox/engine.js +33 -3
- package/dist/lib/sandbox/engines/colima.js +2 -2
- package/dist/lib/sandbox/index.js +6 -6
- package/dist/lib/sandbox/mounts.js +36 -0
- package/dist/lib/sandbox/recovery.js +562 -0
- package/dist/lib/sandbox/runtimes/base.dockerfile +4 -0
- package/dist/lib/sandbox/task-resolver.js +5 -1
- package/dist/lib/sandbox/tools.js +19 -0
- package/dist/lib/server/daemon.js +9 -0
- package/dist/lib/server/process-control.js +66 -73
- package/dist/lib/server/process-state.js +168 -0
- package/dist/lib/server/protocol.js +5 -5
- package/dist/lib/task/activity-log.js +61 -0
- package/dist/lib/task/artifact-lifecycle.js +427 -0
- package/dist/lib/task/command-options.js +30 -0
- package/dist/lib/task/commands/cat.js +36 -6
- package/dist/lib/task/commands/decisions.js +80 -46
- package/dist/lib/task/commands/files.js +21 -7
- package/dist/lib/task/commands/grep.js +55 -7
- package/dist/lib/task/commands/issue-body.js +23 -14
- package/dist/lib/task/commands/log.js +27 -70
- package/dist/lib/task/commands/show.js +20 -7
- package/dist/lib/task/commands/status.js +18 -8
- package/dist/lib/task/decision-intents.js +154 -0
- package/dist/lib/task/decision-items.js +53 -0
- package/dist/lib/task/events.js +318 -0
- package/dist/lib/task/frontmatter.js +159 -1
- package/dist/lib/task/implementation-inputs.js +117 -0
- package/dist/lib/task/index.js +12 -9
- package/dist/lib/task/issue-form.js +19 -6
- package/dist/lib/task/ledger-intents.js +185 -0
- package/dist/lib/task/ledger.js +65 -35
- package/dist/lib/task/lifecycle.js +484 -0
- package/dist/lib/task/resolve-ref.js +152 -32
- package/dist/lib/task/review-artifacts.js +101 -0
- package/dist/lib/task/review-fingerprint.js +46 -0
- package/dist/lib/task/sections.js +358 -4
- package/dist/lib/task/short-id.js +292 -7
- package/dist/lib/task/snapshot.js +95 -0
- package/dist/lib/task/verification-checks.js +8 -0
- package/dist/lib/task/verification-config.js +14 -0
- package/dist/lib/task/verification-engine.js +906 -0
- package/dist/lib/task/verification-review.js +3 -0
- package/dist/lib/task/verification-types.js +2 -0
- package/dist/lib/task/verification.js +113 -0
- package/dist/lib/task/workflow-warning-intents.js +131 -0
- package/dist/lib/task/workflow-warnings.js +10 -78
- package/dist/lib/task/write.js +241 -0
- package/dist/lib/update.js +2 -0
- package/lib/decide.ts +57 -97
- package/lib/defaults.json +9 -0
- package/lib/git/review-snapshot.ts +73 -0
- package/lib/git/workflow.ts +101 -0
- package/lib/init.ts +9 -0
- package/lib/internal/git-workflow.ts +37 -0
- package/lib/internal/platform-checks.ts +101 -0
- package/lib/internal/platform-comment.ts +99 -0
- package/lib/internal/platform-context.ts +33 -0
- package/lib/internal/platform-issue.ts +116 -0
- package/lib/internal/platform-pr.ts +119 -0
- package/lib/internal/release-workflow.ts +186 -0
- package/lib/internal/task-artifact.ts +47 -0
- package/lib/internal/task-context.ts +35 -0
- package/lib/internal/task-event.ts +51 -0
- package/lib/internal/task-ledger.ts +86 -0
- package/lib/internal/task-lifecycle.ts +41 -0
- package/lib/internal/task-short-id.ts +55 -0
- package/lib/internal/task-snapshot.ts +32 -0
- package/lib/internal/task-verify.ts +33 -0
- package/lib/internal/task-warning.ts +50 -0
- package/lib/platform/adapters.ts +30 -0
- package/lib/platform/context.ts +164 -0
- package/lib/platform/github-client.ts +146 -0
- package/lib/platform/issue-comments.ts +479 -0
- package/lib/platform/issue-metadata.ts +250 -0
- package/lib/platform/issues.ts +691 -0
- package/lib/platform/metadata-labels.ts +33 -0
- package/lib/platform/pr-checks.ts +246 -0
- package/lib/platform/pr-summary.ts +90 -0
- package/lib/platform/pull-request-metadata.ts +69 -0
- package/lib/platform/pull-requests.ts +380 -0
- package/lib/platform/releases.ts +71 -0
- package/lib/platform/types.ts +74 -0
- package/lib/platform/verification-required.ts +83 -0
- package/{templates/.agents/scripts/platform-adapters/platform-sync.github.js → lib/platform/verification-sync.ts} +221 -363
- package/lib/platform/verification.ts +11 -0
- package/lib/release/channels.ts +30 -0
- package/lib/release/workflow.ts +31 -0
- package/lib/render.ts +3 -2
- package/lib/run/index.ts +25 -7
- package/lib/sandbox/capture.ts +29 -3
- package/lib/sandbox/commands/create.ts +75 -28
- package/lib/sandbox/commands/enter.ts +38 -11
- package/lib/sandbox/commands/list-running.ts +10 -8
- package/lib/sandbox/commands/show.ts +2 -2
- package/lib/sandbox/commands/start.ts +50 -16
- package/lib/sandbox/engine.ts +37 -3
- package/lib/sandbox/engines/colima.ts +2 -2
- package/lib/sandbox/index.ts +6 -6
- package/lib/sandbox/mounts.ts +55 -0
- package/lib/sandbox/recovery.ts +828 -0
- package/lib/sandbox/runtimes/base.dockerfile +4 -0
- package/lib/sandbox/task-resolver.ts +5 -1
- package/lib/sandbox/tools.ts +31 -0
- package/lib/server/daemon.ts +9 -0
- package/lib/server/process-control.ts +70 -71
- package/lib/server/process-state.ts +183 -0
- package/lib/server/protocol.ts +5 -5
- package/lib/task/activity-log.ts +62 -0
- package/lib/task/artifact-lifecycle.ts +484 -0
- package/lib/task/command-options.ts +32 -0
- package/lib/task/commands/cat.ts +22 -9
- package/lib/task/commands/decisions.ts +49 -47
- package/lib/task/commands/files.ts +14 -6
- package/lib/task/commands/grep.ts +34 -7
- package/lib/task/commands/issue-body.ts +16 -16
- package/lib/task/commands/log.ts +17 -70
- package/lib/task/commands/show.ts +14 -6
- package/lib/task/commands/status.ts +17 -7
- package/lib/task/decision-intents.ts +163 -0
- package/lib/task/decision-items.ts +64 -0
- package/lib/task/events.ts +320 -0
- package/lib/task/frontmatter.ts +202 -2
- package/lib/task/implementation-inputs.ts +137 -0
- package/lib/task/index.ts +12 -9
- package/lib/task/issue-form.ts +20 -6
- package/lib/task/ledger-intents.ts +201 -0
- package/lib/task/ledger.ts +77 -31
- package/lib/task/lifecycle.ts +458 -0
- package/lib/task/resolve-ref.ts +197 -36
- package/{templates/.agents/scripts/lib/review-artifacts.js → lib/task/review-artifacts.ts} +11 -12
- package/{templates/.agents/scripts/lib/post-review-commit.js → lib/task/review-fingerprint.ts} +20 -10
- package/lib/task/sections.ts +486 -4
- package/lib/task/short-id.ts +403 -9
- package/lib/task/snapshot.ts +143 -0
- package/lib/task/verification-checks.ts +9 -0
- package/lib/task/verification-config.ts +20 -0
- package/{templates/.agents/scripts/validate-artifact.js → lib/task/verification-engine.ts} +257 -451
- package/lib/task/verification-review.ts +9 -0
- package/lib/task/verification-types.ts +29 -0
- package/lib/task/verification.ts +156 -0
- package/lib/task/workflow-warning-intents.ts +142 -0
- package/lib/task/workflow-warnings.ts +10 -78
- package/lib/task/write.ts +468 -0
- package/lib/update.ts +6 -0
- package/package.json +5 -2
- package/templates/.agents/README.en.md +6 -3
- package/templates/.agents/README.zh-CN.md +6 -3
- package/templates/.agents/rules/README.en.md +6 -5
- package/templates/.agents/rules/README.zh-CN.md +6 -5
- package/templates/.agents/rules/create-issue.en.md +1 -1
- package/templates/.agents/rules/create-issue.github.en.md +5 -184
- package/templates/.agents/rules/create-issue.github.zh-CN.md +12 -178
- package/templates/.agents/rules/create-issue.zh-CN.md +1 -1
- package/templates/.agents/rules/human-decision-context.en.md +36 -0
- package/templates/.agents/rules/human-decision-context.zh-CN.md +36 -0
- package/templates/.agents/rules/issue-fields.github.en.md +4 -148
- package/templates/.agents/rules/issue-fields.github.zh-CN.md +9 -144
- package/templates/.agents/rules/issue-pr-commands.en.md +43 -3
- package/templates/.agents/rules/issue-pr-commands.github.en.md +15 -220
- package/templates/.agents/rules/issue-pr-commands.github.zh-CN.md +23 -213
- package/templates/.agents/rules/issue-pr-commands.zh-CN.md +45 -3
- package/templates/.agents/rules/issue-sync.en.md +1 -1
- package/templates/.agents/rules/issue-sync.github.en.md +14 -301
- package/templates/.agents/rules/issue-sync.github.zh-CN.md +36 -287
- package/templates/.agents/rules/issue-sync.zh-CN.md +1 -1
- package/templates/.agents/rules/milestone-inference.en.md +1 -1
- package/templates/.agents/rules/milestone-inference.github.en.md +7 -119
- package/templates/.agents/rules/milestone-inference.github.zh-CN.md +8 -108
- package/templates/.agents/rules/milestone-inference.zh-CN.md +1 -1
- package/templates/.agents/rules/next-step-output.en.md +12 -11
- package/templates/.agents/rules/next-step-output.zh-CN.md +12 -11
- package/templates/.agents/rules/no-mid-flow-questions.en.md +3 -3
- package/templates/.agents/rules/no-mid-flow-questions.zh-CN.md +3 -3
- package/templates/.agents/rules/pr-checks-commands.en.md +16 -3
- package/templates/.agents/rules/pr-checks-commands.github.en.md +10 -54
- package/templates/.agents/rules/pr-checks-commands.github.zh-CN.md +19 -47
- package/templates/.agents/rules/pr-checks-commands.zh-CN.md +30 -3
- package/templates/.agents/rules/pr-sync.en.md +30 -3
- package/templates/.agents/rules/pr-sync.github.en.md +12 -115
- package/templates/.agents/rules/pr-sync.github.zh-CN.md +26 -104
- package/templates/.agents/rules/pr-sync.zh-CN.md +43 -3
- package/templates/.agents/rules/review-handshake.en.md +13 -9
- package/templates/.agents/rules/review-handshake.zh-CN.md +13 -9
- package/templates/.agents/rules/task-management.en.md +11 -2
- package/templates/.agents/rules/task-management.zh-CN.md +11 -3
- package/templates/.agents/rules/task-short-id.en.md +25 -29
- package/templates/.agents/rules/task-short-id.zh-CN.md +20 -23
- package/templates/.agents/scripts/lib/agent-infra-package.js +141 -0
- package/templates/.agents/scripts/task-short-id.js +71 -533
- package/templates/.agents/skills/analyze-task/SKILL.en.md +22 -55
- package/templates/.agents/skills/analyze-task/SKILL.zh-CN.md +26 -59
- package/templates/.agents/skills/analyze-task/config/verify.en.json +1 -3
- package/templates/.agents/skills/analyze-task/config/verify.zh-CN.json +1 -3
- package/templates/.agents/skills/block-task/SKILL.en.md +21 -47
- package/templates/.agents/skills/block-task/SKILL.zh-CN.md +23 -47
- package/templates/.agents/skills/block-task/config/verify.json +1 -2
- package/templates/.agents/skills/cancel-task/SKILL.en.md +16 -45
- package/templates/.agents/skills/cancel-task/SKILL.zh-CN.md +16 -45
- package/templates/.agents/skills/cancel-task/config/verify.json +1 -2
- package/templates/.agents/skills/check-task/SKILL.en.md +6 -3
- package/templates/.agents/skills/check-task/SKILL.zh-CN.md +6 -3
- package/templates/.agents/skills/close-codescan/SKILL.en.md +6 -24
- package/templates/.agents/skills/close-codescan/SKILL.zh-CN.md +6 -24
- package/templates/.agents/skills/close-dependabot/SKILL.en.md +6 -24
- package/templates/.agents/skills/close-dependabot/SKILL.zh-CN.md +6 -24
- package/templates/.agents/skills/code-task/SKILL.en.md +22 -35
- package/templates/.agents/skills/code-task/SKILL.zh-CN.md +28 -44
- package/templates/.agents/skills/code-task/config/verify.en.json +3 -3
- package/templates/.agents/skills/code-task/config/verify.zh-CN.json +3 -3
- package/templates/.agents/skills/code-task/reference/dual-mode.en.md +13 -9
- package/templates/.agents/skills/code-task/reference/dual-mode.zh-CN.md +13 -9
- package/templates/.agents/skills/code-task/reference/fix-mode.en.md +1 -1
- package/templates/.agents/skills/code-task/reference/fix-mode.zh-CN.md +1 -1
- package/templates/.agents/skills/code-task/reference/report-template.en.md +11 -1
- package/templates/.agents/skills/code-task/reference/report-template.zh-CN.md +11 -1
- package/templates/.agents/skills/commit/SKILL.en.md +18 -14
- package/templates/.agents/skills/commit/SKILL.zh-CN.md +18 -14
- package/templates/.agents/skills/commit/config/verify.json +1 -2
- package/templates/.agents/skills/commit/reference/commit-message.en.md +1 -11
- package/templates/.agents/skills/commit/reference/commit-message.zh-CN.md +1 -11
- package/templates/.agents/skills/commit/reference/issue-metadata-sync.en.md +4 -8
- package/templates/.agents/skills/commit/reference/issue-metadata-sync.zh-CN.md +4 -8
- package/templates/.agents/skills/commit/reference/pr-summary-sync.en.md +6 -18
- package/templates/.agents/skills/commit/reference/pr-summary-sync.zh-CN.md +5 -17
- package/templates/.agents/skills/commit/reference/task-status-update.en.md +42 -2
- package/templates/.agents/skills/commit/reference/task-status-update.zh-CN.md +42 -2
- package/templates/.agents/skills/complete-manual-validation/SKILL.en.md +13 -36
- package/templates/.agents/skills/complete-manual-validation/SKILL.zh-CN.md +13 -36
- package/templates/.agents/skills/complete-manual-validation/config/verify.en.json +1 -3
- package/templates/.agents/skills/complete-manual-validation/config/verify.zh-CN.json +1 -3
- package/templates/.agents/skills/complete-manual-validation/reference/summary-update.en.md +10 -54
- package/templates/.agents/skills/complete-manual-validation/reference/summary-update.zh-CN.md +10 -79
- package/templates/.agents/skills/complete-task/SKILL.en.md +59 -63
- package/templates/.agents/skills/complete-task/SKILL.zh-CN.md +59 -63
- package/templates/.agents/skills/complete-task/config/verify.en.json +11 -6
- package/templates/.agents/skills/complete-task/config/verify.zh-CN.json +11 -6
- package/templates/.agents/skills/create-pr/SKILL.en.md +19 -44
- package/templates/.agents/skills/create-pr/SKILL.zh-CN.md +19 -43
- package/templates/.agents/skills/create-pr/config/verify.json +1 -2
- package/templates/.agents/skills/create-pr/reference/comment-publish.en.md +8 -12
- package/templates/.agents/skills/create-pr/reference/comment-publish.zh-CN.md +7 -11
- package/templates/.agents/skills/create-task/SKILL.en.md +12 -13
- package/templates/.agents/skills/create-task/SKILL.zh-CN.md +12 -13
- package/templates/.agents/skills/create-task/config/verify.json +1 -2
- package/templates/.agents/skills/import-codescan/SKILL.en.md +2 -2
- package/templates/.agents/skills/import-codescan/SKILL.zh-CN.md +2 -2
- package/templates/.agents/skills/import-codescan/config/verify.json +1 -2
- package/templates/.agents/skills/import-dependabot/SKILL.en.md +2 -2
- package/templates/.agents/skills/import-dependabot/SKILL.zh-CN.md +2 -2
- package/templates/.agents/skills/import-dependabot/config/verify.json +1 -2
- package/templates/.agents/skills/import-issue/SKILL.en.md +9 -13
- package/templates/.agents/skills/import-issue/SKILL.zh-CN.md +10 -14
- package/templates/.agents/skills/import-issue/config/verify.json +1 -2
- package/templates/.agents/skills/init-milestones/SKILL.en.md +2 -2
- package/templates/.agents/skills/init-milestones/SKILL.zh-CN.md +2 -2
- package/templates/.agents/skills/init-milestones/scripts/init-milestones.github.sh +5 -4
- package/templates/.agents/skills/plan-task/SKILL.en.md +17 -42
- package/templates/.agents/skills/plan-task/SKILL.zh-CN.md +22 -49
- package/templates/.agents/skills/plan-task/config/verify.en.json +1 -3
- package/templates/.agents/skills/plan-task/config/verify.zh-CN.json +1 -3
- package/templates/.agents/skills/post-release/SKILL.en.md +11 -81
- package/templates/.agents/skills/post-release/SKILL.zh-CN.md +8 -78
- 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 -163
- package/templates/.agents/skills/release/SKILL.zh-CN.md +15 -162
- package/templates/.agents/skills/restore-task/SKILL.en.md +11 -29
- package/templates/.agents/skills/restore-task/SKILL.zh-CN.md +11 -29
- package/templates/.agents/skills/restore-task/config/verify.json +1 -2
- package/templates/.agents/skills/review-analysis/SKILL.en.md +13 -25
- package/templates/.agents/skills/review-analysis/SKILL.zh-CN.md +13 -33
- package/templates/.agents/skills/review-analysis/config/verify.en.json +3 -4
- package/templates/.agents/skills/review-analysis/config/verify.zh-CN.json +3 -4
- package/templates/.agents/skills/review-analysis/reference/output-templates.en.md +9 -12
- package/templates/.agents/skills/review-analysis/reference/output-templates.zh-CN.md +9 -12
- package/templates/.agents/skills/review-analysis/reference/report-template.en.md +9 -2
- package/templates/.agents/skills/review-analysis/reference/report-template.zh-CN.md +9 -2
- package/templates/.agents/skills/review-analysis/reference/review-criteria.en.md +7 -0
- package/templates/.agents/skills/review-analysis/reference/review-criteria.zh-CN.md +7 -0
- package/templates/.agents/skills/review-code/SKILL.en.md +22 -36
- package/templates/.agents/skills/review-code/SKILL.zh-CN.md +23 -41
- package/templates/.agents/skills/review-code/config/verify.en.json +5 -5
- package/templates/.agents/skills/review-code/config/verify.zh-CN.json +5 -5
- package/templates/.agents/skills/review-code/reference/output-templates.en.md +56 -18
- package/templates/.agents/skills/review-code/reference/output-templates.zh-CN.md +56 -18
- package/templates/.agents/skills/review-code/reference/report-template.en.md +12 -4
- package/templates/.agents/skills/review-code/reference/report-template.zh-CN.md +12 -4
- package/templates/.agents/skills/review-code/reference/review-criteria.en.md +7 -0
- package/templates/.agents/skills/review-code/reference/review-criteria.zh-CN.md +7 -0
- package/templates/.agents/skills/review-plan/SKILL.en.md +13 -25
- package/templates/.agents/skills/review-plan/SKILL.zh-CN.md +13 -33
- package/templates/.agents/skills/review-plan/config/verify.en.json +3 -4
- package/templates/.agents/skills/review-plan/config/verify.zh-CN.json +3 -4
- package/templates/.agents/skills/review-plan/reference/output-templates.en.md +9 -12
- package/templates/.agents/skills/review-plan/reference/output-templates.zh-CN.md +9 -12
- package/templates/.agents/skills/review-plan/reference/report-template.en.md +9 -2
- package/templates/.agents/skills/review-plan/reference/report-template.zh-CN.md +9 -2
- package/templates/.agents/skills/review-plan/reference/review-criteria.en.md +7 -0
- package/templates/.agents/skills/review-plan/reference/review-criteria.zh-CN.md +7 -0
- package/templates/.agents/skills/update-agent-infra/SKILL.en.md +6 -3
- package/templates/.agents/skills/update-agent-infra/SKILL.zh-CN.md +6 -3
- package/templates/.agents/skills/update-agent-infra/scripts/sync-templates.js +177 -151
- package/templates/.agents/skills/watch-pr/SKILL.en.md +24 -14
- package/templates/.agents/skills/watch-pr/SKILL.zh-CN.md +25 -15
- package/templates/.agents/skills/watch-pr/config/verify.json +1 -2
- package/templates/.agents/skills/watch-pr/reference/monitor-and-heal.en.md +2 -2
- package/templates/.agents/skills/watch-pr/reference/monitor-and-heal.zh-CN.md +2 -2
- package/templates/.agents/templates/task.en.md +6 -1
- package/templates/.agents/templates/task.zh-CN.md +6 -1
- package/templates/.claude/commands/analyze-task.en.md +1 -1
- package/templates/.claude/commands/analyze-task.zh-CN.md +1 -1
- package/templates/.claude/commands/block-task.en.md +1 -1
- package/templates/.claude/commands/block-task.zh-CN.md +1 -1
- package/templates/.claude/commands/cancel-task.en.md +1 -1
- package/templates/.claude/commands/cancel-task.zh-CN.md +1 -1
- package/templates/.claude/commands/check-task.en.md +1 -1
- package/templates/.claude/commands/check-task.zh-CN.md +1 -1
- package/templates/.claude/commands/code-task.en.md +1 -1
- package/templates/.claude/commands/code-task.zh-CN.md +1 -1
- package/templates/.claude/commands/commit.en.md +1 -0
- package/templates/.claude/commands/commit.zh-CN.md +1 -0
- package/templates/.claude/commands/complete-manual-validation.en.md +1 -1
- package/templates/.claude/commands/complete-manual-validation.zh-CN.md +1 -1
- package/templates/.claude/commands/complete-task.en.md +1 -1
- package/templates/.claude/commands/complete-task.zh-CN.md +1 -1
- package/templates/.claude/commands/create-pr.en.md +1 -1
- package/templates/.claude/commands/create-pr.zh-CN.md +1 -1
- package/templates/.claude/commands/plan-task.en.md +1 -1
- package/templates/.claude/commands/plan-task.zh-CN.md +1 -1
- package/templates/.claude/commands/review-analysis.en.md +1 -1
- package/templates/.claude/commands/review-analysis.zh-CN.md +1 -1
- package/templates/.claude/commands/review-code.en.md +1 -1
- package/templates/.claude/commands/review-code.zh-CN.md +1 -1
- package/templates/.claude/commands/review-plan.en.md +1 -1
- package/templates/.claude/commands/review-plan.zh-CN.md +1 -1
- package/templates/.claude/commands/watch-pr.en.md +1 -1
- package/templates/.claude/commands/watch-pr.zh-CN.md +1 -1
- package/templates/.gemini/commands/_project_/analyze-task.en.toml +2 -0
- package/templates/.gemini/commands/_project_/analyze-task.zh-CN.toml +2 -0
- package/templates/.gemini/commands/_project_/block-task.en.toml +2 -0
- package/templates/.gemini/commands/_project_/block-task.zh-CN.toml +2 -0
- package/templates/.gemini/commands/_project_/cancel-task.en.toml +2 -0
- package/templates/.gemini/commands/_project_/cancel-task.zh-CN.toml +2 -0
- package/templates/.gemini/commands/_project_/check-task.en.toml +2 -0
- package/templates/.gemini/commands/_project_/check-task.zh-CN.toml +2 -0
- package/templates/.gemini/commands/_project_/code-task.en.toml +2 -0
- package/templates/.gemini/commands/_project_/code-task.zh-CN.toml +2 -0
- package/templates/.gemini/commands/_project_/commit.en.toml +4 -0
- package/templates/.gemini/commands/_project_/commit.zh-CN.toml +4 -0
- package/templates/.gemini/commands/_project_/complete-manual-validation.en.toml +2 -0
- package/templates/.gemini/commands/_project_/complete-manual-validation.zh-CN.toml +2 -0
- package/templates/.gemini/commands/_project_/complete-task.en.toml +2 -0
- package/templates/.gemini/commands/_project_/complete-task.zh-CN.toml +2 -0
- package/templates/.gemini/commands/_project_/create-pr.en.toml +2 -0
- package/templates/.gemini/commands/_project_/create-pr.zh-CN.toml +2 -0
- package/templates/.gemini/commands/_project_/plan-task.en.toml +2 -0
- package/templates/.gemini/commands/_project_/plan-task.zh-CN.toml +2 -0
- package/templates/.gemini/commands/_project_/review-analysis.en.toml +2 -0
- package/templates/.gemini/commands/_project_/review-analysis.zh-CN.toml +2 -0
- package/templates/.gemini/commands/_project_/review-code.en.toml +2 -0
- package/templates/.gemini/commands/_project_/review-code.zh-CN.toml +2 -0
- package/templates/.gemini/commands/_project_/review-plan.en.toml +2 -0
- package/templates/.gemini/commands/_project_/review-plan.zh-CN.toml +2 -0
- package/templates/.gemini/commands/_project_/watch-pr.en.toml +2 -0
- package/templates/.gemini/commands/_project_/watch-pr.zh-CN.toml +2 -0
- package/templates/.git-hooks/check-large-files.cjs +92 -0
- package/templates/.git-hooks/check-version-format.sh +5 -1
- package/templates/.git-hooks/pre-commit +1 -0
- package/templates/.opencode/commands/analyze-task.en.md +1 -1
- package/templates/.opencode/commands/analyze-task.zh-CN.md +1 -1
- package/templates/.opencode/commands/check-task.en.md +1 -1
- package/templates/.opencode/commands/check-task.zh-CN.md +1 -1
- package/templates/.opencode/commands/code-task.en.md +1 -1
- package/templates/.opencode/commands/code-task.zh-CN.md +1 -1
- package/templates/.opencode/commands/commit.en.md +2 -0
- package/templates/.opencode/commands/commit.zh-CN.md +2 -0
- package/templates/.opencode/commands/complete-task.en.md +1 -1
- package/templates/.opencode/commands/complete-task.zh-CN.md +1 -1
- package/templates/.opencode/commands/plan-task.en.md +1 -1
- package/templates/.opencode/commands/plan-task.zh-CN.md +1 -1
- package/templates/.opencode/commands/review-analysis.en.md +1 -1
- package/templates/.opencode/commands/review-analysis.zh-CN.md +1 -1
- package/templates/.opencode/commands/review-code.en.md +1 -1
- package/templates/.opencode/commands/review-code.zh-CN.md +1 -1
- package/templates/.opencode/commands/review-plan.en.md +1 -1
- package/templates/.opencode/commands/review-plan.zh-CN.md +1 -1
- package/templates/.agents/scripts/platform-adapters/platform-sync.js +0 -13
- package/templates/.agents/scripts/review-diff-fingerprint.js +0 -99
- package/templates/.agents/scripts/workflow-warnings.js +0 -290
- package/templates/.agents/skills/code-task/scripts/detect-mode.js +0 -257
- package/templates/.agents/skills/release/scripts/manage-milestones.github.sh +0 -80
- package/templates/.agents/skills/release/scripts/manage-milestones.sh +0 -6
|
@@ -3,6 +3,7 @@ name: complete-task
|
|
|
3
3
|
description: >
|
|
4
4
|
标记任务完成并归档。
|
|
5
5
|
当任务工作已完成并验证、需要收尾归档时使用。
|
|
6
|
+
仅当对话包含可解析的任务引用时才可自动调用本技能。
|
|
6
7
|
---
|
|
7
8
|
|
|
8
9
|
# 完成任务
|
|
@@ -21,26 +22,20 @@ description: >
|
|
|
21
22
|
运行以下命令,并把原文粘贴到回复正文和本轮产物的 `## 状态核对` 段:
|
|
22
23
|
|
|
23
24
|
```bash
|
|
24
|
-
|
|
25
|
-
ls -la .agents/workspace/active/{task-id}/
|
|
26
|
-
tail .agents/workspace/active/{task-id}/task.md
|
|
25
|
+
agent-infra-internal task-snapshot {task-id} --format text
|
|
27
26
|
```
|
|
28
27
|
|
|
29
28
|
状态核对完成前,禁止任何关于外部状态的断言(例如“代码没变”“测试已通过”“没有其他引用”),包括思考阶段。本门禁只提供结构下限;逐条证据配对和真实性仍需按报告模板与审查要求核对。
|
|
30
29
|
|
|
31
|
-
##
|
|
30
|
+
## 任务上下文解析
|
|
32
31
|
|
|
33
|
-
>
|
|
32
|
+
> 入口允许省略 task ref,也接受旧位置 task ref 或 `--task <ref>` / `-t <ref>`。先从完整参数中分离 task scope 并原样保留其他业务操作数,再调用 `agent-infra-internal task-context resolve {task-scope}`;`{task-scope}` 为空、位置 ref 或 task flag 之一。只读取结构化结果的 `taskId`,后续把 `{task-id}` 绑定为该完整 `TASK-YYYYMMDD-HHMMSS`。解析失败时透传非零退出码,不自行扫描任务。
|
|
34
33
|
|
|
35
|
-
|
|
34
|
+
> 解析任务引用,并确认任务位于本技能支持的状态或目录且存在 `task.md`;无法定位时按未找到任务处理并停止。
|
|
36
35
|
|
|
37
|
-
|
|
36
|
+
## 步骤开始:本地生命周期边界
|
|
38
37
|
|
|
39
|
-
|
|
40
|
-
- {YYYY-MM-DD HH:mm:ss±HH:MM} — **Complete Task [started]** by {agent} — started
|
|
41
|
-
```
|
|
42
|
-
|
|
43
|
-
`ai task log` 会把它与完成时写入的 done 条目配对成一行(进行中 → 已完成)。格式与配对规则见 `.agents/rules/task-management.md` 的「Activity Log started / done 双标记约定」。
|
|
38
|
+
正常完成路径在 active 阶段完成业务更新、平台同步和预完成门禁后,才由步骤 6 的单次 lifecycle intent 原子完成基础终态字段、started/done 日志、目录转移和短号释放;不得提前手工写入这些机械状态。已归档任务只允许进入 `finalization-retry` 场景,不回迁目录或重新执行 lifecycle。
|
|
44
39
|
|
|
45
40
|
## 执行步骤
|
|
46
41
|
### 1. 验证任务存在
|
|
@@ -50,9 +45,12 @@ tail .agents/workspace/active/{task-id}/task.md
|
|
|
50
45
|
注意:`{task-id}` 格式为 `TASK-{yyyyMMdd-HHmmss}`,例如 `TASK-20260306-143022`
|
|
51
46
|
|
|
52
47
|
如果在 `active/` 中未找到,检查 `blocked/` 和 `completed/`:
|
|
53
|
-
- 如果在 `completed
|
|
48
|
+
- 如果在 `completed/` 且 task.md 存在匹配的 Complete Task Activity Log:进入场景 B `finalization-retry`,跳过步骤 2-6,直接执行步骤 7
|
|
49
|
+
- 如果在 `completed/` 但缺少匹配日志:告知用户任务已完成但终态身份不完整并停止,不手工修补
|
|
54
50
|
- 如果在 `blocked/`:告知用户任务被阻塞;建议先解除阻塞
|
|
55
51
|
|
|
52
|
+
场景 A 为 active 任务的正常完成路径;场景 B `finalization-retry` 只重试归档后的 task 评论与终态门禁。
|
|
53
|
+
|
|
56
54
|
### 2. 验证完成前置条件(未满足则必须停止)
|
|
57
55
|
|
|
58
56
|
**门控读取(项目级 PR 流程策略)**:在执行本步骤前,读取 `.agents/.airc.json` 的 `prFlow` 字段(三态:字段缺省 = 默认推荐 PR、允许跳过;`"required"` = 强制 PR;`"disabled"` = 强制无 PR),以及 `task.md` frontmatter 的 `pr_status`(`pending` / `created` / `skipped`)。
|
|
@@ -88,16 +86,7 @@ tail .agents/workspace/active/{task-id}/task.md
|
|
|
88
86
|
- [ ] 代码已审查(`review-code.md` 或 `review-code-r{N}.md` 存在,且最新审查结论为 Approved;或已在外部完成审查)
|
|
89
87
|
- [ ] 代码已提交(没有与此任务相关的未提交变更)
|
|
90
88
|
- [ ] 测试通过
|
|
91
|
-
- [ ]
|
|
92
|
-
|
|
93
|
-
**预完成硬门禁(在移动目录、释放短号之前运行)**:步骤 7 的 `gate complete-task` 在目录已 `mv` 到 `completed/`、短号已释放之后才运行;为避免门禁失败发生在不可逆操作之后,必须在 **active 目录**上预先运行新增的两项完成门禁:
|
|
94
|
-
|
|
95
|
-
```bash
|
|
96
|
-
node .agents/scripts/validate-artifact.js check review-ledger .agents/workspace/active/{task-id} --skill complete-task --format text
|
|
97
|
-
node .agents/scripts/validate-artifact.js check post-review-commit .agents/workspace/active/{task-id} --skill complete-task --format text
|
|
98
|
-
```
|
|
99
|
-
|
|
100
|
-
任一退出码非 0(fail/blocked)→ 按前置条件未满足处理,**停止**,不执行步骤 3-7。`--force` **不解除**本硬门禁:未关闭分歧必须先在账本闭合(`confirmed`/`closed`/`human-decided`),未复审 post-review 提交必须重新 `review-code` 或在账本追加 `post-review-commit` / `human-decided` 豁免行。
|
|
89
|
+
- [ ] 审查分歧账本无未关闭分歧、无未复审的 post-review 提交,且本地 HEAD、`last_reviewed_commit`、PR head 一致并由最新 required checks 覆盖(由下方「预完成硬门禁」机械校验)
|
|
101
90
|
|
|
102
91
|
> **⚠️ 前置条件分支判断 — 你必须先判断“继续”还是“停止”:**
|
|
103
92
|
>
|
|
@@ -105,7 +94,7 @@ node .agents/scripts/validate-artifact.js check post-review-commit .agents/works
|
|
|
105
94
|
> - 如果任意一个条件不满足 → **默认停止**,输出前置条件未满足的警告
|
|
106
95
|
> - 只有用户明确要求 `--force` 时,才可以在前置条件未满足时继续
|
|
107
96
|
>
|
|
108
|
-
> **禁止在前置条件未满足时继续执行步骤 3-
|
|
97
|
+
> **禁止在前置条件未满足时继续执行步骤 3-8,也不要输出「任务 {task-id} 已完成,任务目录已转移到 completed/。」**
|
|
109
98
|
|
|
110
99
|
如果任何前置条件未满足,警告用户:
|
|
111
100
|
```
|
|
@@ -115,78 +104,85 @@ Cannot complete task {task-id} - prerequisites not met:
|
|
|
115
104
|
Please complete the missing steps first, or use --force to override.
|
|
116
105
|
```
|
|
117
106
|
|
|
118
|
-
如果前置条件未满足且用户未明确提供 `--force`,立即停止,不执行步骤 3-
|
|
119
|
-
|
|
120
|
-
### 3. 更新任务元数据
|
|
107
|
+
如果前置条件未满足且用户未明确提供 `--force`,立即停止,不执行步骤 3-8。
|
|
121
108
|
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
```bash
|
|
125
|
-
date "+%Y-%m-%d %H:%M:%S%z" | sed 's/\([+-][0-9][0-9]\)\([0-9][0-9]\)$/\1:\2/'
|
|
126
|
-
```
|
|
109
|
+
### 3. 完成业务内容更新
|
|
127
110
|
|
|
128
|
-
|
|
129
|
-
- `status`:completed
|
|
130
|
-
- `current_step`:completed
|
|
131
|
-
- `completed_at`:{当前时间戳}
|
|
132
|
-
- `target_date`:仅当为空时写入 `completed_at` 的日期部分(`YYYY-MM-DD`);已有值(人工填写)则保留
|
|
133
|
-
- `updated_at`:{当前时间戳}
|
|
134
|
-
- `agent_infra_version`:按 `.agents/rules/version-stamp.md` 取值
|
|
111
|
+
在 `.agents/workspace/active/{task-id}/task.md` 中只更新生命周期核心不负责的业务内容:
|
|
135
112
|
- 新增或更新 `## 状态核对` 段,粘贴第 0 步审计命令原文(含 `$ ` 前缀行),放在 `## 活动日志` 之前
|
|
136
113
|
- 标记所有工作流步骤为已完成
|
|
137
114
|
- 逐项验证并勾选 `## 完成检查清单` 中的所有条目(将 `- [ ]` 改为 `- [x]`)
|
|
138
|
-
- **追加**到 `## Activity Log`(不要覆盖之前的记录):
|
|
139
|
-
```
|
|
140
|
-
- {YYYY-MM-DD HH:mm:ss±HH:MM} — **Complete Task** by {agent} — Task moved to completed/
|
|
141
|
-
```
|
|
142
115
|
|
|
143
|
-
|
|
116
|
+
不得在本步骤写 `status/current_step/completed_at/updated_at/agent_infra_version`、基础 Activity Log、目录或短号;这些由步骤 6 统一提交。
|
|
117
|
+
|
|
118
|
+
### 4. 在 active 阶段同步平台
|
|
119
|
+
|
|
120
|
+
检查 `task.md` 中是否存在有效的 `issue_number`。如果没有,跳过本步骤且不输出任何内容。
|
|
121
|
+
|
|
122
|
+
> Issue 元数据边界见 `.agents/rules/issue-sync.md`;评论同步统一调用 internal platform intent。
|
|
144
123
|
|
|
145
|
-
|
|
124
|
+
如果存在有效的 `issue_number`,严格按以下顺序执行:
|
|
125
|
+
|
|
126
|
+
1. 按 artifact catalog 顺序,对本地已有产物逐项调用 `agent-infra-internal platform-comment sync {task-id} --kind artifact --artifact {artifact} --agent {artifact-agent} --backfill`。
|
|
127
|
+
2. 调用 `agent-infra-internal platform-issue sync {task-id} --agent {agent} --requirements --fields`。
|
|
128
|
+
3. 把业务摘要写入临时文件,并调用 `agent-infra-internal platform-comment sync {task-id} --kind summary --body-file {path} --agent {agent}`。
|
|
129
|
+
|
|
130
|
+
不要在本步骤同步 task 评论;它依赖 lifecycle 写入后的完整终态 task.md。不要设置 `status:` label,平台自动化应在 Issue 关闭后清理状态标签。
|
|
131
|
+
|
|
132
|
+
任一操作失败时,任务仍必须位于 active 且短号仍有效;先按失败类型调用以下结构化 warning intent,再立即停止,不进入步骤 5:
|
|
146
133
|
|
|
147
134
|
```bash
|
|
148
|
-
|
|
135
|
+
agent-infra-internal task-warning {task-id} add --step complete-task --severity ACTION_REQUIRED --code {COMMENT_SYNC_FAILED|REQUIREMENTS_SYNC_FAILED|SUMMARY_SYNC_FAILED|NETWORK_RETRY_EXHAUSTED} --target {artifact|issue|summary|platform} --message "{error_code}: {error_message}" --action "修复平台同步问题后重跑 complete-task"
|
|
149
136
|
```
|
|
150
137
|
|
|
151
|
-
|
|
138
|
+
相同 `step/code/target` 组合由核心幂等去重;调用方不分配 warning id 或手写账本行。
|
|
139
|
+
|
|
140
|
+
### 5. 运行 active 预完成硬门禁
|
|
141
|
+
|
|
142
|
+
平台写入成功后、移动目录和释放短号之前运行:
|
|
152
143
|
|
|
153
144
|
```bash
|
|
154
|
-
|
|
145
|
+
agent-infra-internal task-verify {task-id} complete-task.preflight --format text
|
|
155
146
|
```
|
|
156
147
|
|
|
157
|
-
|
|
148
|
+
该事件依次执行 `review-ledger`、`post-review-commit`、`required-checks`、`platform-sync-preflight`。任一退出码非 0(fail/blocked)时,任务必须继续留在 active;从 gate 结果取稳定 code/target,通过 `task-warning ... add --step complete-task ...` 落账后停止。若审查基线或 head 不一致,必须先重新 `commit` / `review-code`;checks pending/failed/cancelled 时运行 `watch-pr`;不得回退审查基线。
|
|
149
|
+
|
|
150
|
+
`--force` 不解除本硬门禁:未关闭分歧必须先在账本闭合,未复审提交必须重新审查或具备有效豁免,required checks 与三重 head 对齐必须通过,平台 preflight 必须通过。
|
|
158
151
|
|
|
159
|
-
### 6.
|
|
152
|
+
### 6. 执行本地生命周期意图并验证转移
|
|
160
153
|
|
|
161
|
-
|
|
154
|
+
```bash
|
|
155
|
+
agent-infra-internal task-lifecycle {task-id} complete --agent {agent}
|
|
156
|
+
```
|
|
162
157
|
|
|
163
|
-
|
|
158
|
+
仅 `status=applied|no-op` 视为本地完成。`status=failed` 时展示 `error` 与 completed/pending steps,以同一 intent 重试;不得宣称完成或手工补写局部状态。
|
|
159
|
+
|
|
160
|
+
```bash
|
|
161
|
+
ls .agents/workspace/completed/{task-id}/task.md
|
|
162
|
+
```
|
|
164
163
|
|
|
165
|
-
|
|
166
|
-
- 先按 `.agents/rules/issue-sync.md` 的补发规则扫描并补发未发布的 `task.md`、`analysis*.md`、`review-analysis*.md`、`plan*.md`、`review-plan*.md`、`code*.md`、`review-code*.md` 评论(`task.md` 走幂等更新路径)
|
|
167
|
-
- 按 issue-sync.md 的需求复选框同步步骤,兜底同步 `## 需求` 中已勾选的条目到 Issue body
|
|
168
|
-
- 不要设置 `status:` label — Issue 关闭后 status label 会被自动清除
|
|
169
|
-
- 最后创建或更新 `.agents/rules/issue-sync.md` 中定义的 summary 评论标记对应的 summary 评论
|
|
170
|
-
- 读取 `.agents/rules/issue-fields.md`,按流程 A 把 `task.md` 中所有非空的 Issue 字段(`priority`/`effort`/`start_date`/`target_date`)同步到 Issue(幂等;`has_push=false` 或取数/写入失败时跳过,不阻断)
|
|
164
|
+
确认任务目录已成功移动。
|
|
171
165
|
|
|
172
|
-
### 7.
|
|
166
|
+
### 7. 同步终态 task 评论并完成校验
|
|
173
167
|
|
|
174
|
-
|
|
168
|
+
场景 A 与场景 B `finalization-retry` 都从 completed 目录执行本步骤。若存在有效的 `issue_number`,先调用:
|
|
175
169
|
|
|
176
170
|
```bash
|
|
177
|
-
|
|
171
|
+
agent-infra-internal platform-comment sync {task-id} --kind task --agent {agent}
|
|
178
172
|
```
|
|
179
173
|
|
|
174
|
+
该调用失败时任务已归档,不能调用只接受 active 任务的 `task-warning`;保留 completed 状态并停止。修复网络或平台问题后重跑 complete-task,会由步骤 1 进入 `finalization-retry`,只重复本步骤。
|
|
175
|
+
|
|
180
176
|
运行完成校验,确认任务产物和同步状态符合规范:
|
|
181
177
|
|
|
182
178
|
```bash
|
|
183
|
-
|
|
179
|
+
agent-infra-internal task-verify {task-id} complete-task.completed --format text
|
|
184
180
|
```
|
|
185
181
|
|
|
186
182
|
处理结果:
|
|
187
183
|
- 退出码 0(全部通过)-> 继续到「告知用户」步骤
|
|
188
184
|
- 退出码 1(校验失败)-> 根据输出修复问题后重新运行校验
|
|
189
|
-
- 退出码 2
|
|
185
|
+
- 退出码 2(网络中断或状态标签清理尚未收敛)-> 保留 completed 状态并停止;稍后重跑 complete-task 进入 `finalization-retry`
|
|
190
186
|
|
|
191
187
|
将校验输出保留在回复中作为当次验证输出。没有当次校验输出,不得声明完成。
|
|
192
188
|
|
|
@@ -19,24 +19,30 @@
|
|
|
19
19
|
"require_target_date": true
|
|
20
20
|
},
|
|
21
21
|
"activity-log": {
|
|
22
|
-
"expected_action_pattern": "(Complete Task|Completed)"
|
|
23
|
-
"freshness_minutes": 30
|
|
22
|
+
"expected_action_pattern": "(Complete Task|Completed)"
|
|
24
23
|
},
|
|
25
24
|
"completion-checklist": {
|
|
26
25
|
"require_all_checked": true
|
|
27
26
|
},
|
|
28
27
|
"review-ledger": {},
|
|
29
28
|
"post-review-commit": {},
|
|
30
|
-
"
|
|
29
|
+
"required-checks": {},
|
|
30
|
+
"platform-sync-preflight": {
|
|
31
31
|
"when": "issue_number_exists",
|
|
32
32
|
"expected_comment_marker": "<!-- sync-issue:{task-id}:summary -->",
|
|
33
|
-
"verify_task_comment_content":
|
|
33
|
+
"verify_task_comment_content": false,
|
|
34
34
|
"sync_checked_requirements": true,
|
|
35
35
|
"verify_issue_type": true,
|
|
36
36
|
"verify_issue_fields": false,
|
|
37
37
|
"verify_milestone": true,
|
|
38
|
+
"verify_closed_issue_has_no_status_labels": false,
|
|
38
39
|
"expected_comment_marker_key": "summary"
|
|
39
40
|
},
|
|
41
|
+
"platform-sync": {
|
|
42
|
+
"when": "issue_number_exists",
|
|
43
|
+
"verify_task_comment_content": true,
|
|
44
|
+
"verify_closed_issue_has_no_status_labels": true
|
|
45
|
+
},
|
|
40
46
|
"artifact": {
|
|
41
47
|
"file_pattern": "task.md",
|
|
42
48
|
"required_sections": [
|
|
@@ -44,8 +50,7 @@
|
|
|
44
50
|
],
|
|
45
51
|
"required_patterns": [
|
|
46
52
|
"^\\$ "
|
|
47
|
-
]
|
|
48
|
-
"freshness_minutes": 30
|
|
53
|
+
]
|
|
49
54
|
}
|
|
50
55
|
}
|
|
51
56
|
}
|
|
@@ -19,24 +19,30 @@
|
|
|
19
19
|
"require_target_date": true
|
|
20
20
|
},
|
|
21
21
|
"activity-log": {
|
|
22
|
-
"expected_action_pattern": "(Complete Task|Completed)"
|
|
23
|
-
"freshness_minutes": 30
|
|
22
|
+
"expected_action_pattern": "(Complete Task|Completed)"
|
|
24
23
|
},
|
|
25
24
|
"completion-checklist": {
|
|
26
25
|
"require_all_checked": true
|
|
27
26
|
},
|
|
28
27
|
"review-ledger": {},
|
|
29
28
|
"post-review-commit": {},
|
|
30
|
-
"
|
|
29
|
+
"required-checks": {},
|
|
30
|
+
"platform-sync-preflight": {
|
|
31
31
|
"when": "issue_number_exists",
|
|
32
32
|
"expected_comment_marker": "<!-- sync-issue:{task-id}:summary -->",
|
|
33
|
-
"verify_task_comment_content":
|
|
33
|
+
"verify_task_comment_content": false,
|
|
34
34
|
"sync_checked_requirements": true,
|
|
35
35
|
"verify_issue_type": true,
|
|
36
36
|
"verify_issue_fields": false,
|
|
37
37
|
"verify_milestone": true,
|
|
38
|
+
"verify_closed_issue_has_no_status_labels": false,
|
|
38
39
|
"expected_comment_marker_key": "summary"
|
|
39
40
|
},
|
|
41
|
+
"platform-sync": {
|
|
42
|
+
"when": "issue_number_exists",
|
|
43
|
+
"verify_task_comment_content": true,
|
|
44
|
+
"verify_closed_issue_has_no_status_labels": true
|
|
45
|
+
},
|
|
40
46
|
"artifact": {
|
|
41
47
|
"file_pattern": "task.md",
|
|
42
48
|
"required_sections": [
|
|
@@ -44,8 +50,7 @@
|
|
|
44
50
|
],
|
|
45
51
|
"required_patterns": [
|
|
46
52
|
"^\\$ "
|
|
47
|
-
]
|
|
48
|
-
"freshness_minutes": 30
|
|
53
|
+
]
|
|
49
54
|
}
|
|
50
55
|
}
|
|
51
56
|
}
|
|
@@ -13,19 +13,13 @@ Create a Pull Request and, when task-related, sync the essential metadata and re
|
|
|
13
13
|
|
|
14
14
|
Version stamp rule: when creating or updating `task.md` frontmatter, read `.agents/rules/version-stamp.md` first and write or refresh `agent_infra_version`.
|
|
15
15
|
|
|
16
|
-
## Task
|
|
16
|
+
## Task Context Resolution
|
|
17
17
|
|
|
18
|
-
>
|
|
18
|
+
> The entry point may omit the task ref and also accepts a legacy positional ref or `--task <ref>` / `-t <ref>`. Separate task scope from the full arguments while preserving every business operand, then call `agent-infra-internal task-context resolve {task-scope}` where `{task-scope}` is empty, one positional ref, or one task flag. Read only `taskId` from the structured result and bind `{task-id}` to that full `TASK-YYYYMMDD-HHMMSS` for downstream commands. Pass through resolution failures without scanning tasks locally.
|
|
19
19
|
|
|
20
|
-
## Step Start:
|
|
20
|
+
## Step Start: started Marker
|
|
21
21
|
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
```
|
|
25
|
-
- {YYYY-MM-DD HH:mm:ss±HH:MM} — **Create PR [started]** by {agent} — started
|
|
26
|
-
```
|
|
27
|
-
|
|
28
|
-
`ai task log` pairs it with the done entry written on completion onto one row (in progress → done). See the "Activity Log started / done dual-marker convention" in `.agents/rules/task-management.md`.
|
|
22
|
+
On a real `platform-pr create`, the typed core idempotently records `Create PR [started]` before the remote write. Dry-run does not record it, and the caller must not append a duplicate entry.
|
|
29
23
|
|
|
30
24
|
## Execution Flow
|
|
31
25
|
|
|
@@ -68,24 +62,17 @@ Read the PR template through `.agents/rules/issue-pr-commands.md`, review recent
|
|
|
68
62
|
|
|
69
63
|
### 4. Check Remote Branch State
|
|
70
64
|
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
### 5. Create the PR
|
|
65
|
+
Use `agent-infra-internal git-workflow inspect` for upstream/remote facts and `git-workflow push` for a verified push.
|
|
74
66
|
|
|
75
|
-
|
|
67
|
+
### 5. Create or Recover the PR
|
|
76
68
|
|
|
77
|
-
Read `.agents/rules/issue-pr-commands.md
|
|
69
|
+
Read `.agents/rules/issue-pr-commands.md`, write the title and body to temporary files, then invoke its `platform-pr create` intent. The core first performs exact head/base lookup: one existing PR is reused and bound, zero creates, and multiple matches fail deterministically. Replays must not create duplicate PRs.
|
|
78
70
|
|
|
79
71
|
If `{task-id}` is available and the related task provides `issue_number`, keep `Closes #{issue-number}` in the PR body.
|
|
80
72
|
|
|
81
73
|
### 6. Sync PR Metadata
|
|
82
74
|
|
|
83
|
-
|
|
84
|
-
- query standard labels, Issue metadata, and PR metadata via `.agents/rules/issue-pr-commands.md`
|
|
85
|
-
- apply the mapped type label by following the PR update commands and permission-degradation rules in `.agents/rules/issue-pr-commands.md`
|
|
86
|
-
- copy the current Issue `in:` labels to the PR without recomputing them and without writing back to the Issue
|
|
87
|
-
- reuse the Issue milestone by following "Phase 3: `create-pr`" and its permission rules in `.agents/rules/milestone-inference.md`
|
|
88
|
-
- keep Development linking in the PR body with `Closes #{issue-number}` when applicable
|
|
75
|
+
Run `agent-infra-internal platform-pr sync {task-id} --agent {agent} --metadata --closing-issue`. The core copies type / `in:` labels, assignee, and a specific milestone from the Issue and maintains the closing association. Permission-bound items degrade independently, and the Issue is never updated in reverse.
|
|
89
76
|
|
|
90
77
|
### 7. Publish the Review Summary
|
|
91
78
|
|
|
@@ -93,29 +80,18 @@ Read the latest context artifacts when they exist: `plan.md` / `plan-r{N}.md`, `
|
|
|
93
80
|
|
|
94
81
|
Aggregate a reviewer-facing summary from those artifacts and maintain a single idempotent summary comment via the hidden marker.
|
|
95
82
|
|
|
96
|
-
>
|
|
97
|
-
>
|
|
98
|
-
> **Shell safety rules** (required before publishing the comment):
|
|
99
|
-
> 1. Replace `{comment-body}` with the actual inline text. Read files first, then paste the full content into the heredoc body. Do **not** use `$(cat ...)`, `$(< ...)`, `$(...)`, or `${...}` inside `<<'EOF'`.
|
|
100
|
-
> 2. Do **not** use `echo` when constructing strings that contain `<!-- -->`. Use `cat <<'EOF'` heredoc or `printf '%s\n'` instead.
|
|
101
|
-
> 3. The same constraints are restated in `.agents/rules/pr-sync.md`; once that rule is loaded, do not duplicate another copy of the template rules.
|
|
83
|
+
> Canonical context, aggregation, and the `summary-sync` call live in `reference/comment-publish.md`, which points to `.agents/rules/pr-sync.md`. Read that reference before publishing.
|
|
102
84
|
|
|
103
|
-
### 8.
|
|
104
|
-
|
|
105
|
-
Get the current time:
|
|
106
|
-
|
|
107
|
-
```bash
|
|
108
|
-
date "+%Y-%m-%d %H:%M:%S%z" | sed 's/\([+-][0-9][0-9]\)\([0-9][0-9]\)$/\1:\2/'
|
|
109
|
-
```
|
|
85
|
+
### 8. Confirm Task Status
|
|
110
86
|
|
|
111
|
-
|
|
87
|
+
After a PR is created or uniquely recovered, `platform-pr create` atomically updates `pr_number`, `pr_status`, canonical time/version metadata, and the Create PR completion log through the task write core. The caller verifies the structured result and does not edit those fields again.
|
|
112
88
|
|
|
113
89
|
### 9. Verification Gate
|
|
114
90
|
|
|
115
91
|
If this operation is associated with `{task-id}`, run the verification gate to confirm task metadata and sync state. If there is no task context, skip this step.
|
|
116
92
|
|
|
117
93
|
```bash
|
|
118
|
-
|
|
94
|
+
agent-infra-internal task-verify {task-id} create-pr.completed --format text
|
|
119
95
|
```
|
|
120
96
|
|
|
121
97
|
Handle the result as follows:
|
|
@@ -129,9 +105,9 @@ Keep the gate output in your reply as fresh evidence. Do not claim completion wi
|
|
|
129
105
|
|
|
130
106
|
> Execute this step only after the verification gate passes.
|
|
131
107
|
|
|
132
|
-
> **IMPORTANT**: All TUI command formats listed below must be output in full. Do not show only the format for the current AI agent. If `.agents/.airc.json` configures custom TUIs (via `customTUIs`), read each tool's `name` and `invoke`, then add the matching command line in the same format (`${skillName}` becomes the skill name and `${projectName}` becomes the project name). Before rendering the final output, read `.agents/rules/next-step-output.md` and apply both of its rules: (1) render `{task-ref}` in the "Next steps" commands as the short id
|
|
108
|
+
> **IMPORTANT**: All TUI command formats listed below must be output in full. Do not show only the format for the current AI agent. If `.agents/.airc.json` configures custom TUIs (via `customTUIs`), read each tool's `name` and `invoke`, then add the matching command line in the same format (`${skillName}` becomes the skill name and `${projectName}` becomes the project name). Before rendering the final output, read `.agents/rules/next-step-output.md` and apply both of its rules: (1) render `{task-ref}` in the "Next steps" commands as the short id `NN` (falling back to the full TASK-id when unallocated or released); (2) append the `Completed at` line as the very last line of the user-facing output (this applies to every user-facing output — success, error, and early-return paths alike, not only the success path).
|
|
133
109
|
|
|
134
|
-
Explain the created PR URL, summarize metadata sync and summary-comment results, and recommend watching the PR's checks next (render `{task-ref}` as the short id
|
|
110
|
+
Explain the created PR URL, summarize metadata sync and summary-comment results, and recommend watching the PR's checks next (render `{task-ref}` as the short id `NN` per `.agents/rules/next-step-output.md`):
|
|
135
111
|
|
|
136
112
|
```
|
|
137
113
|
Next step - Watch PR checks (auto self-heal until required checks are green):
|
|
@@ -140,23 +116,22 @@ Next step - Watch PR checks (auto self-heal until required checks are green):
|
|
|
140
116
|
- Codex CLI: $watch-pr {task-ref}
|
|
141
117
|
```
|
|
142
118
|
|
|
143
|
-
Alternatively, to skip
|
|
119
|
+
Alternatively, to skip active monitoring and attempt completion immediately, use `complete-task`; its required-checks hard gate still fails closed for pending/failed checks or head mismatch:
|
|
144
120
|
|
|
145
121
|
```
|
|
146
|
-
Next step (alternative) - Skip monitoring and
|
|
122
|
+
Next step (alternative) - Skip active monitoring and attempt completion:
|
|
147
123
|
- Claude Code / OpenCode: /complete-task {task-ref}
|
|
148
124
|
- Gemini CLI: /{{project}}:complete-task {task-ref}
|
|
149
125
|
- Codex CLI: $complete-task {task-ref}
|
|
150
126
|
```
|
|
151
127
|
|
|
152
|
-
`watch-pr` is the primary path
|
|
128
|
+
`watch-pr` is the primary path. The alternative `complete-task` block skips active polling only; it never skips required checks and does not guarantee immediate archival.
|
|
153
129
|
|
|
154
130
|
## Notes
|
|
155
131
|
|
|
156
132
|
- Review every commit in the branch, not only the latest one
|
|
157
133
|
- `create-pr` must not defer type-label mapping to another skill; inline the mapping here when `{task-id}` is available
|
|
158
|
-
-
|
|
159
|
-
- If the current branch already has a PR, show its URL and stop without repeating sync work
|
|
134
|
+
- The summary marker and current HEAD are wrapped by `platform-pr summary-sync`
|
|
160
135
|
- When metadata inheritance from the Issue fails, continue with task.md and branch-based fallbacks
|
|
161
136
|
|
|
162
137
|
## Error Handling
|
|
@@ -165,5 +140,5 @@ Next step (alternative) - Skip monitoring and archive the task directly:
|
|
|
165
140
|
- Push rejected: suggest `git pull --rebase`
|
|
166
141
|
- Existing PR found: show the current PR URL and stop
|
|
167
142
|
- Inaccessible Issue metadata: skip inheritance and continue
|
|
168
|
-
- PR creation failed with an associated `{task-id}`: run `
|
|
143
|
+
- PR creation failed with an associated `{task-id}`: run `agent-infra-internal task-warning {task-id} add --step create-pr --severity ACTION_REQUIRED --code PR_CREATE_FAILED --target pr --message "{reason}" --action "Fix push, permission, or platform issues and rerun create-pr"` to submit a structured warning intent, and do not write `pr_number`
|
|
169
144
|
- PR summary comment failed with an associated `{task-id}`: record a `COMMENT_SYNC_FAILED` warning per `.agents/rules/pr-sync.md`, without rolling back an already-created PR
|
|
@@ -13,19 +13,13 @@ description: >
|
|
|
13
13
|
|
|
14
14
|
版本戳规则:创建或更新 `task.md` frontmatter 时,先读取 `.agents/rules/version-stamp.md`,并写入或刷新 `agent_infra_version`。
|
|
15
15
|
|
|
16
|
-
##
|
|
16
|
+
## 任务上下文解析
|
|
17
17
|
|
|
18
|
-
>
|
|
18
|
+
> 入口允许省略 task ref,也接受旧位置 task ref 或 `--task <ref>` / `-t <ref>`。先从完整参数中分离 task scope 并原样保留其他业务操作数,再调用 `agent-infra-internal task-context resolve {task-scope}`;`{task-scope}` 为空、位置 ref 或 task flag 之一。只读取结构化结果的 `taskId`,后续把 `{task-id}` 绑定为该完整 `TASK-YYYYMMDD-HHMMSS`。解析失败时透传非零退出码,不自行扫描任务。
|
|
19
19
|
|
|
20
|
-
##
|
|
20
|
+
## 步骤开始:started 标记
|
|
21
21
|
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
```
|
|
25
|
-
- {YYYY-MM-DD HH:mm:ss±HH:MM} — **Create PR [started]** by {agent} — started
|
|
26
|
-
```
|
|
27
|
-
|
|
28
|
-
`ai task log` 会把它与完成时写入的 done 条目配对成一行(进行中 → 已完成)。约定见 `.agents/rules/task-management.md` 的「Activity Log started / done 双标记约定」。
|
|
22
|
+
真实执行 `platform-pr create` 时由 typed core 在远端写入前幂等登记 `Create PR [started]`;dry-run 不登记。调用方不得重复手写该条目。
|
|
29
23
|
|
|
30
24
|
## 执行流程
|
|
31
25
|
|
|
@@ -68,24 +62,17 @@ description: >
|
|
|
68
62
|
|
|
69
63
|
### 4. 检查远程分支状态
|
|
70
64
|
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
### 5. 创建 PR
|
|
65
|
+
调用 `agent-infra-internal git-workflow inspect` 检查 upstream/remote branch;必要时通过 `git-workflow push` 推送并复核。
|
|
74
66
|
|
|
75
|
-
|
|
67
|
+
### 5. 创建或恢复 PR
|
|
76
68
|
|
|
77
|
-
执行前先读取 `.agents/rules/issue-pr-commands.md
|
|
69
|
+
执行前先读取 `.agents/rules/issue-pr-commands.md`,把标题和正文写入临时文件,并调用其中的 `platform-pr create` intent。core 先按 head/base 精确定位:唯一既有 PR 会复用并绑定,零个才创建,多个稳定失败;重放不得产生重复 PR。
|
|
78
70
|
|
|
79
71
|
如果获取到 `{task-id}` 且对应任务提供了 `issue_number`,必须在 PR 正文中保留 `Closes #{issue-number}`。
|
|
80
72
|
|
|
81
73
|
### 6. 同步 PR 元数据
|
|
82
74
|
|
|
83
|
-
|
|
84
|
-
- 按 `.agents/rules/issue-pr-commands.md` 查询标准 label / Issue / PR 元数据
|
|
85
|
-
- 按 `.agents/rules/issue-pr-commands.md` 的 PR 更新命令和权限降级规则处理 type label
|
|
86
|
-
- 将 Issue 当前的 `in:` labels 复制到 PR(不重新计算,不反向更新 Issue)
|
|
87
|
-
- 按 `.agents/rules/milestone-inference.md` 的「阶段 3:`create-pr`」及其权限规则复用 Issue milestone
|
|
88
|
-
- 通过 `Closes #{issue-number}` 保持 Development 关联
|
|
75
|
+
调用 `agent-infra-internal platform-pr sync {task-id} --agent {agent} --metadata --closing-issue`。core 从 Issue 复制 type / `in:` labels、assignee 和具体 milestone,并维护 Development 关联;逐项权限不足返回 degraded,不反向更新 Issue。
|
|
89
76
|
|
|
90
77
|
### 7. 发布审查摘要
|
|
91
78
|
|
|
@@ -93,29 +80,18 @@ description: >
|
|
|
93
80
|
|
|
94
81
|
基于这些产物聚合 reviewer 摘要,并使用隐藏标记维护唯一且幂等的摘要评论。
|
|
95
82
|
|
|
96
|
-
>
|
|
97
|
-
>
|
|
98
|
-
> **Shell 安全规则**(发布评论前必读):
|
|
99
|
-
> 1. `{comment-body}` 必须替换为**实际的内联文本**。先读取文件,再将全文粘贴到 heredoc body 中。**禁止**在 `<<'EOF'` 内部使用 `$(cat ...)`、`$(< ...)`、`$(...)`、`${...}`。
|
|
100
|
-
> 2. 构造含 `<!-- -->` 的字符串时,**禁止使用 `echo`**。统一使用 `cat <<'EOF'` heredoc 或 `printf '%s\n'` 构造。
|
|
101
|
-
> 3. 同样的安全约束已在 `.agents/rules/pr-sync.md` 中重述,调用该 rule 后无需重复补充另一份模板规则。
|
|
83
|
+
> canonical context、摘要聚合和 `summary-sync` 调用见 `reference/comment-publish.md`(其引用 `.agents/rules/pr-sync.md`)。发布摘要前先读取该 reference。
|
|
102
84
|
|
|
103
|
-
### 8.
|
|
104
|
-
|
|
105
|
-
获取当前时间:
|
|
106
|
-
|
|
107
|
-
```bash
|
|
108
|
-
date "+%Y-%m-%d %H:%M:%S%z" | sed 's/\([+-][0-9][0-9]\)\([0-9][0-9]\)$/\1:\2/'
|
|
109
|
-
```
|
|
85
|
+
### 8. 确认任务状态
|
|
110
86
|
|
|
111
|
-
|
|
87
|
+
`platform-pr create` 在成功创建或恢复唯一远端身份后,通过任务写入内核原子更新 `pr_number`、`pr_status`、规范时间/版本和 Create PR 完成日志。调用方只核对结构化结果,不再次编辑这些字段。
|
|
112
88
|
|
|
113
89
|
### 9. 完成校验
|
|
114
90
|
|
|
115
91
|
如果本次操作关联了 `{task-id}`,运行完成校验,确认任务元数据和同步状态符合规范;如果没有任务上下文,跳过本步骤。
|
|
116
92
|
|
|
117
93
|
```bash
|
|
118
|
-
|
|
94
|
+
agent-infra-internal task-verify {task-id} create-pr.completed --format text
|
|
119
95
|
```
|
|
120
96
|
|
|
121
97
|
处理结果:
|
|
@@ -129,9 +105,9 @@ node .agents/scripts/validate-artifact.js gate create-pr .agents/workspace/activ
|
|
|
129
105
|
|
|
130
106
|
> 仅在校验通过后执行本步骤。
|
|
131
107
|
|
|
132
|
-
> **重要**:以下「下一步」中列出的所有 TUI 命令格式必须完整输出,不要只展示当前 AI 代理对应的格式。如果 `.agents/.airc.json` 中配置了自定义 TUI(`customTUIs`),读取每个工具的 `name` 和 `invoke`,按同样格式补充对应命令行(`${skillName}` 替换为技能名,`${projectName}` 替换为项目名)。 渲染最终输出前,先读取 `.agents/rules/next-step-output.md` 并落实其两类规则:(1) 「下一步」命令把 `{task-ref}` 渲染为短号
|
|
108
|
+
> **重要**:以下「下一步」中列出的所有 TUI 命令格式必须完整输出,不要只展示当前 AI 代理对应的格式。如果 `.agents/.airc.json` 中配置了自定义 TUI(`customTUIs`),读取每个工具的 `name` 和 `invoke`,按同样格式补充对应命令行(`${skillName}` 替换为技能名,`${projectName}` 替换为项目名)。 渲染最终输出前,先读取 `.agents/rules/next-step-output.md` 并落实其两类规则:(1) 「下一步」命令把 `{task-ref}` 渲染为短号 `NN`(未分配/已释放时回退完整 TASK-id);(2) 在面向用户输出的绝对最后一行追加 `Completed at` 收尾行(成功、错误、早退等任何面向用户输出都适用,不限于校验通过的成功态)。
|
|
133
109
|
|
|
134
|
-
说明 PR URL、元数据同步结果、摘要评论结果,并推荐下一步进入 PR 监控(按 `.agents/rules/next-step-output.md` 把 `{task-ref}` 渲染为短号
|
|
110
|
+
说明 PR URL、元数据同步结果、摘要评论结果,并推荐下一步进入 PR 监控(按 `.agents/rules/next-step-output.md` 把 `{task-ref}` 渲染为短号 `NN`):
|
|
135
111
|
|
|
136
112
|
```
|
|
137
113
|
下一步 - 监控 PR 检查(required checks 全绿前自动自愈):
|
|
@@ -140,22 +116,22 @@ node .agents/scripts/validate-artifact.js gate create-pr .agents/workspace/activ
|
|
|
140
116
|
- Codex CLI:$watch-pr {task-ref}
|
|
141
117
|
```
|
|
142
118
|
|
|
143
|
-
|
|
119
|
+
或者,若想跳过主动监控并立即尝试完成,改用 `complete-task`;其 required-checks 硬门禁仍会对 pending/failed/head mismatch fail-closed:
|
|
144
120
|
|
|
145
121
|
```
|
|
146
|
-
下一步(备选)-
|
|
122
|
+
下一步(备选)- 跳过主动监控并尝试完成:
|
|
147
123
|
- Claude Code / OpenCode:/complete-task {task-ref}
|
|
148
124
|
- Gemini CLI:/{{project}}:complete-task {task-ref}
|
|
149
125
|
- Codex CLI:$complete-task {task-ref}
|
|
150
126
|
```
|
|
151
127
|
|
|
152
|
-
`watch-pr`
|
|
128
|
+
`watch-pr` 为主路径;上面的 `complete-task` 备选块只跳过主动轮询,不跳过 required checks,也不保证立即归档。
|
|
153
129
|
|
|
154
130
|
## 注意事项
|
|
155
131
|
|
|
156
132
|
- 必须检查分支中的全部提交,而不是只看最后一个
|
|
157
133
|
- `create-pr` 不能把 type label 映射委托给其他技能,必须在获取到 `{task-id}` 时于本技能内内联处理
|
|
158
|
-
-
|
|
134
|
+
- summary marker 与当前 HEAD 由 `platform-pr summary-sync` 统一包装
|
|
159
135
|
- 如果当前分支已存在 PR,直接告知用户 PR URL 并结束,不做重复同步
|
|
160
136
|
- 如果从 Issue 继承元数据失败,继续使用 task.md 和分支推断兜底
|
|
161
137
|
|
|
@@ -165,5 +141,5 @@ node .agents/scripts/validate-artifact.js gate create-pr .agents/workspace/activ
|
|
|
165
141
|
- 推送被拒绝:建议执行 `git pull --rebase`
|
|
166
142
|
- 已存在 PR:直接输出当前 PR URL 并结束
|
|
167
143
|
- 无法访问 Issue 元数据:跳过继承并继续
|
|
168
|
-
- PR 创建失败且已关联 `{task-id}`:调用 `
|
|
144
|
+
- PR 创建失败且已关联 `{task-id}`:调用 `agent-infra-internal task-warning {task-id} add --step create-pr --severity ACTION_REQUIRED --code PR_CREATE_FAILED --target pr --message "{reason}" --action "修复推送、权限或平台问题后重跑 create-pr"` 提交结构化 warning 意图,不写 `pr_number`
|
|
169
145
|
- PR 摘要评论失败且已关联 `{task-id}`:按 `.agents/rules/pr-sync.md` 记录 `COMMENT_SYNC_FAILED` 告警,不回滚已创建 PR
|
|
@@ -1,16 +1,12 @@
|
|
|
1
|
-
# PR Summary Comment
|
|
1
|
+
# Publish the PR Summary Comment
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
After PR creation, run `agent-infra-internal platform-pr summary-context {task-id}` and aggregate the reviewer summary only from its canonical artifacts according to `.agents/rules/pr-sync.md`.
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
Write the plain summary body to a temporary file, then run:
|
|
6
6
|
|
|
7
|
-
|
|
7
|
+
```bash
|
|
8
|
+
agent-infra-internal platform-pr summary-sync {task-id} \
|
|
9
|
+
--agent {agent} --body-file {summary-body-file}
|
|
10
|
+
```
|
|
8
11
|
|
|
9
|
-
|
|
10
|
-
- When a matching summary comment already exists, PATCH only when the body changed; otherwise skip the write
|
|
11
|
-
- In this skill, summary sync failures follow the existing `create-pr` error handling and must not roll back an already-created PR
|
|
12
|
-
- Populate `{manual-validation-section}` per the aggregation rules in `.agents/rules/pr-sync.md`: include only post-code-stage checks that the AI cannot close on its own and that require a human to execute or judge; sources are `review-code*` "Manual Validation Items" plus `code*` items that satisfy the admission boundary; each item must state "what to verify + location + why only a human can verify it". Render in two branches: **with retained items** → `### ⚠️ Manual Verification Required` heading + item list; **with none** → `### ✅ No Manual Verification Needed` heading + a single line (no ⚠️, no old list placeholder)
|
|
13
|
-
|
|
14
|
-
## Result Reporting
|
|
15
|
-
|
|
16
|
-
Reuse the normalized result string from `.agents/rules/pr-sync.md` in this skill's user output or `Create PR` Activity Log.
|
|
12
|
+
The caller does not add markers, HEAD metadata, or comment API parameters. A summary failure records the existing `create-pr` warning and does not roll back the PR.
|