@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-manual-validation
|
|
|
3
3
|
description: >
|
|
4
4
|
标记 PR 人工验证已完成,并原地更新 PR 摘要评论中的人工校验段落。
|
|
5
5
|
当维护者已完成真实环境或权限相关人工验证、需要统一收尾 PR 摘要时使用。
|
|
6
|
+
仅当对话包含可解析的任务引用时才可自动调用本技能。
|
|
6
7
|
---
|
|
7
8
|
|
|
8
9
|
# 完成人工验证
|
|
@@ -23,24 +24,18 @@ description: >
|
|
|
23
24
|
运行以下命令,并把原文粘贴到回复正文和本轮产物的 `## 状态核对` 段:
|
|
24
25
|
|
|
25
26
|
```bash
|
|
26
|
-
|
|
27
|
-
ls -la .agents/workspace/active/{task-id}/
|
|
28
|
-
tail .agents/workspace/active/{task-id}/task.md
|
|
27
|
+
agent-infra-internal task-snapshot {task-id} --format text
|
|
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
|
+
## 步骤开始:声明 started 事件
|
|
38
37
|
|
|
39
|
-
|
|
40
|
-
- {YYYY-MM-DD HH:mm:ss±HH:MM} — **Complete Manual Validation [started]** by {agent} — started
|
|
41
|
-
```
|
|
42
|
-
|
|
43
|
-
格式与配对规则见 `.agents/rules/task-management.md` 的「Activity Log started / done 双标记约定」。
|
|
38
|
+
确认前置条件和产物上下文后、本轮第一个产出动作之前执行 `agent-infra-internal task-event {task-id} manual-validation.started --agent {agent}`,并以返回的 `artifactContext` 记录本轮身份。
|
|
44
39
|
|
|
45
40
|
## 执行步骤
|
|
46
41
|
|
|
@@ -64,12 +59,9 @@ complete-manual-validation {task-ref} [{pr-ref}] {verification-summary}
|
|
|
64
59
|
|
|
65
60
|
如果任务不存在、验证说明缺失,或无法解析有效 PR,立即停止。
|
|
66
61
|
|
|
67
|
-
### 3.
|
|
62
|
+
### 3. 解析产物上下文
|
|
68
63
|
|
|
69
|
-
|
|
70
|
-
- 不存在 `manual-validation.md` 且不存在 `manual-validation-r*.md` -> 本轮产物为 `manual-validation.md`
|
|
71
|
-
- 已存在 `manual-validation.md` 且不存在 `manual-validation-r*.md` -> 本轮产物为 `manual-validation-r2.md`
|
|
72
|
-
- 已存在 `manual-validation-r{N}.md` -> 本轮产物为 `manual-validation-r{N+1}.md`
|
|
64
|
+
运行 `agent-infra-internal task-artifact {task-id} inspect --family manual-validation`。仅当结果为 `ready` 时继续;从 `next.round` / `next.name` 取得本轮 round 与 `{manual-validation-artifact}`。不得自行扫描轮次或拼装文件名。随后执行 started 事件并复核返回身份。
|
|
73
65
|
|
|
74
66
|
### 4. 更新 PR 摘要
|
|
75
67
|
|
|
@@ -78,7 +70,7 @@ complete-manual-validation {task-ref} [{pr-ref}] {verification-summary}
|
|
|
78
70
|
- `.agents/rules/pr-sync.md`
|
|
79
71
|
- `reference/summary-update.md`
|
|
80
72
|
|
|
81
|
-
按 `reference/summary-update.md`
|
|
73
|
+
按 `reference/summary-update.md` 校验 PR 绑定,从 `platform-pr summary-context` 取得 canonical 输入,并通过 `platform-pr summary-sync` 把人工校验段更新为 `### ✅ 人工验证已通过`。
|
|
82
74
|
|
|
83
75
|
### 5. 创建人工验证产物
|
|
84
76
|
|
|
@@ -91,31 +83,16 @@ complete-manual-validation {task-ref} [{pr-ref}] {verification-summary}
|
|
|
91
83
|
|
|
92
84
|
### 6. 更新 task.md
|
|
93
85
|
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
```bash
|
|
97
|
-
date "+%Y-%m-%d %H:%M:%S%z" | sed 's/\([+-][0-9][0-9]\)\([0-9][0-9]\)$/\1:\2/'
|
|
98
|
-
```
|
|
99
|
-
|
|
100
|
-
更新 `.agents/workspace/active/{task-id}/task.md`:
|
|
101
|
-
- `updated_at`:{当前时间}
|
|
102
|
-
- `assigned_to`:{当前代理}
|
|
103
|
-
- `agent_infra_version`:按 `.agents/rules/version-stamp.md` 取值
|
|
104
|
-
- 保持 `current_step` 不变
|
|
105
|
-
- 在 `## 实现备注` 中追加 `{manual-validation-artifact}` 链接和 PR 摘要同步结果
|
|
106
|
-
- 追加 Activity Log:
|
|
107
|
-
```
|
|
108
|
-
- {YYYY-MM-DD HH:mm:ss±HH:MM} — **Complete Manual Validation** by {agent} — Manual validation passed → {manual-validation-artifact}; {summary-result}
|
|
109
|
-
```
|
|
86
|
+
执行 `agent-infra-internal task-event {task-id} manual-validation.completed --agent {agent} --artifact {manual-validation-artifact} --summary-result "{summary-result}"`,由核心在保持 `current_step` 不变的同时原子登记实现备注链接、时间/版本和完成日志。
|
|
110
87
|
|
|
111
|
-
如任务存在有效 `issue_number
|
|
88
|
+
如任务存在有效 `issue_number`,调用 `agent-infra-internal platform-comment sync {task-id} --kind task --agent {agent}`,再调用 `agent-infra-internal platform-comment sync {task-id} --kind artifact --artifact {manual-validation-artifact} --agent {agent}`。
|
|
112
89
|
|
|
113
90
|
### 7. 完成校验
|
|
114
91
|
|
|
115
92
|
运行完成校验:
|
|
116
93
|
|
|
117
94
|
```bash
|
|
118
|
-
|
|
95
|
+
agent-infra-internal task-verify {task-id} manual-validation.completed --artifact {manual-validation-artifact} --format text
|
|
119
96
|
```
|
|
120
97
|
|
|
121
98
|
处理结果:
|
|
@@ -23,14 +23,12 @@
|
|
|
23
23
|
"Validation Details",
|
|
24
24
|
"PR Summary Sync"
|
|
25
25
|
],
|
|
26
|
-
"freshness_minutes": 30,
|
|
27
26
|
"required_patterns": [
|
|
28
27
|
"^\\$ "
|
|
29
28
|
]
|
|
30
29
|
},
|
|
31
30
|
"activity-log": {
|
|
32
|
-
"expected_action_pattern": "Complete Manual Validation"
|
|
33
|
-
"freshness_minutes": 30
|
|
31
|
+
"expected_action_pattern": "Complete Manual Validation"
|
|
34
32
|
},
|
|
35
33
|
"review-ledger": {
|
|
36
34
|
"stage_scope": ["analysis", "plan", "code"]
|
|
@@ -23,14 +23,12 @@
|
|
|
23
23
|
"验证详情",
|
|
24
24
|
"PR 摘要同步"
|
|
25
25
|
],
|
|
26
|
-
"freshness_minutes": 30,
|
|
27
26
|
"required_patterns": [
|
|
28
27
|
"^\\$ "
|
|
29
28
|
]
|
|
30
29
|
},
|
|
31
30
|
"activity-log": {
|
|
32
|
-
"expected_action_pattern": "Complete Manual Validation"
|
|
33
|
-
"freshness_minutes": 30
|
|
31
|
+
"expected_action_pattern": "Complete Manual Validation"
|
|
34
32
|
},
|
|
35
33
|
"review-ledger": {
|
|
36
34
|
"stage_scope": ["analysis", "plan", "code"]
|
|
@@ -1,60 +1,16 @@
|
|
|
1
|
-
# PR Summary
|
|
1
|
+
# Manual-validation PR Summary Update
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
Run only for a valid `{task-id}` whose task.md binds a `pr_number`; any user-supplied PR identity must match it.
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
Follow `.agents/rules/pr-sync.md` for the shared summary structure and failure semantics.
|
|
6
6
|
|
|
7
|
-
|
|
7
|
+
1. After the canonical `manual-validation*` artifact is written, run `agent-infra-internal platform-pr summary-context {task-id}`.
|
|
8
|
+
2. Rebuild the summary from canonical inputs and render `### ✅ Manual Validation Passed` with the validation time and explanation.
|
|
9
|
+
3. Write the plain body to a temporary file and run:
|
|
8
10
|
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
2. Prefer `task.md` frontmatter `pr_number`.
|
|
13
|
-
3. If `pr_number` is empty, parse `{pr-ref}` from user input: `#123`, `123`, or a full PR URL.
|
|
14
|
-
4. If `task.md` already has `pr_number` and the user also passed `{pr-ref}`, they must match.
|
|
15
|
-
5. If they differ, fail with `summary failed: pr_number mismatch`. Do not write an artifact or PATCH a comment.
|
|
16
|
-
6. If both are missing, fail with `summary failed: missing pr_number`. Do not write an artifact or PATCH a comment.
|
|
17
|
-
|
|
18
|
-
## Required Reads
|
|
19
|
-
|
|
20
|
-
Before remote operations, read:
|
|
21
|
-
- `.agents/rules/issue-sync.md` to resolve upstream repository and permissions.
|
|
22
|
-
- `.agents/rules/pr-sync.md` to reuse the PR summary hidden marker, Issues comments API, and shell safety rules.
|
|
23
|
-
|
|
24
|
-
## Comment Lookup
|
|
25
|
-
|
|
26
|
-
Fetch ordinary PR comments with the current platform's Issues comments API. Follow the concrete command pattern in `.agents/rules/pr-sync.md`.
|
|
27
|
-
|
|
28
|
-
Find the `<!-- sync-pr:{task-id}:summary -->` summary comment. If it is missing, fail with `summary failed: missing sync-pr summary`.
|
|
29
|
-
|
|
30
|
-
On failure, do not create an ordinary validation comment, do not create a partial summary comment, and do not write a `manual-validation*` artifact.
|
|
31
|
-
|
|
32
|
-
## Manual Validation Scope Extraction
|
|
33
|
-
|
|
34
|
-
- If a `### ⚠️ Manual Verification Required` section exists, take that section until the next `### ` heading.
|
|
35
|
-
- If the current summary already says `### ✅ Manual Validation Passed`, allow a new validation artifact round and update the details.
|
|
36
|
-
- If the current summary says `### ✅ No Manual Verification Needed`, stop and report that this PR does not need manual validation; do not mark it as passed.
|
|
37
|
-
|
|
38
|
-
## Three-Branch Rendering
|
|
39
|
-
|
|
40
|
-
The updated `{manual-validation-section}` is:
|
|
41
|
-
|
|
42
|
-
```markdown
|
|
43
|
-
### ✅ Manual Validation Passed
|
|
44
|
-
|
|
45
|
-
- Validation time: {time}
|
|
46
|
-
- Validation notes: {verification-summary}
|
|
11
|
+
```bash
|
|
12
|
+
agent-infra-internal platform-pr summary-sync {task-id} \
|
|
13
|
+
--agent {agent} --body-file {summary-body-file}
|
|
47
14
|
```
|
|
48
15
|
|
|
49
|
-
|
|
50
|
-
1. latest `manual-validation.md` / `manual-validation-r{N}.md` has a passed verdict -> `### ✅ Manual Validation Passed`
|
|
51
|
-
2. no passed artifact and retained manual-validation items exist -> `### ⚠️ Manual Verification Required`
|
|
52
|
-
3. no passed artifact and no retained manual-validation items -> `### ✅ No Manual Verification Needed`
|
|
53
|
-
|
|
54
|
-
## PATCH Rules
|
|
55
|
-
|
|
56
|
-
Update existing comments with Issues comments PATCH and follow the heredoc safety rules in `.agents/rules/pr-sync.md`.
|
|
57
|
-
|
|
58
|
-
## Result Reporting
|
|
59
|
-
|
|
60
|
-
Return `summary updated`, `summary skipped (no diff)`, or `summary failed: <reason>`.
|
|
16
|
+
The core owns marker/HEAD wrapping, pagination, and in-place reconciliation. If context says no manual validation is required, stop without marking it passed.
|
package/templates/.agents/skills/complete-manual-validation/reference/summary-update.zh-CN.md
CHANGED
|
@@ -1,87 +1,18 @@
|
|
|
1
1
|
# PR 摘要人工验证更新
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
人工验证产物结构见 `reference/report-template.md`。本步骤只在有效 `{task-id}` 且 task.md 已绑定 `pr_number` 时执行;用户另传 PR 身份时必须与绑定值一致。
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
摘要结构与失败语义统一遵循 `.agents/rules/pr-sync.md`。
|
|
6
6
|
|
|
7
|
-
|
|
7
|
+
1. 在 canonical `manual-validation*` artifact 落盘后,调用 `agent-infra-internal platform-pr summary-context {task-id}`。
|
|
8
|
+
2. 从返回的最新产物重新聚合摘要,将人工校验段渲染为 `### ✅ 人工验证已通过`,写明验证时间和说明。
|
|
9
|
+
3. 把纯正文写入临时文件,调用:
|
|
8
10
|
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
2. 优先读取 `task.md` frontmatter 的 `pr_number`。
|
|
13
|
-
3. 如果 `pr_number` 为空,再从用户输入的 `{pr-ref}` 解析:
|
|
14
|
-
- `#123`
|
|
15
|
-
- `123`
|
|
16
|
-
- `{platform-host}/{owner}/{repo}/pull/123`
|
|
17
|
-
4. 如果 `task.md` 已有 `pr_number`,且用户也传入 `{pr-ref}`,两者必须一致。
|
|
18
|
-
5. 两者不一致时失败:`summary failed: pr_number mismatch`。不写 artifact,不 PATCH 评论。
|
|
19
|
-
6. 两者都缺失时失败:`summary failed: missing pr_number`。不写 artifact,不 PATCH 评论。
|
|
20
|
-
|
|
21
|
-
## 前置读取
|
|
22
|
-
|
|
23
|
-
执行远端操作前先读取:
|
|
24
|
-
- `.agents/rules/issue-sync.md`,完成 upstream 仓库检测和权限检测。
|
|
25
|
-
- `.agents/rules/pr-sync.md`,复用 PR 摘要隐藏标记、Issues comments API 和 Shell 安全规则。
|
|
26
|
-
|
|
27
|
-
## 评论查找
|
|
28
|
-
|
|
29
|
-
使用当前平台的 Issues comments API 查询 PR 上的普通评论,具体命令遵循 `.agents/rules/pr-sync.md`。
|
|
30
|
-
|
|
31
|
-
查找以以下标记开头或包含该标记的评论:
|
|
32
|
-
|
|
33
|
-
```html
|
|
34
|
-
<!-- sync-pr:{task-id}:summary -->
|
|
35
|
-
```
|
|
36
|
-
|
|
37
|
-
找不到时失败:
|
|
38
|
-
|
|
39
|
-
```text
|
|
40
|
-
summary failed: missing sync-pr summary
|
|
41
|
-
```
|
|
42
|
-
|
|
43
|
-
失败时不创建普通验证留言,不创建部分摘要评论,不写 `manual-validation*` artifact。
|
|
44
|
-
|
|
45
|
-
## 待人工校验范围提取
|
|
46
|
-
|
|
47
|
-
从当前摘要评论中提取人工校验范围:
|
|
48
|
-
- 如果存在 `### ⚠️ 需人工校验` 段,取该段到下一个 `### ` heading 之前的内容。
|
|
49
|
-
- 如果当前摘要已是 `### ✅ 人工验证已通过`,允许再次写入新一轮验证产物并更新详情。
|
|
50
|
-
- 如果当前摘要是 `### ✅ 无需人工校验`,停止并提示当前 PR 无需人工校验;不误标为人工验证已通过。
|
|
51
|
-
|
|
52
|
-
## 三分支渲染
|
|
53
|
-
|
|
54
|
-
更新后的 `{manual-validation-section}` 为:
|
|
55
|
-
|
|
56
|
-
```markdown
|
|
57
|
-
### ✅ 人工验证已通过
|
|
58
|
-
|
|
59
|
-
- 验证时间:{time}
|
|
60
|
-
- 验证说明:{verification-summary}
|
|
11
|
+
```bash
|
|
12
|
+
agent-infra-internal platform-pr summary-sync {task-id} \
|
|
13
|
+
--agent {agent} --body-file {summary-body-file}
|
|
61
14
|
```
|
|
62
15
|
|
|
63
|
-
|
|
64
|
-
1. 最新 `manual-validation.md` / `manual-validation-r{N}.md` 结论为通过 -> `### ✅ 人工验证已通过`
|
|
65
|
-
2. 没有通过产物且仍有保留人工校验项 -> `### ⚠️ 需人工校验`
|
|
66
|
-
3. 没有通过产物且无保留人工校验项 -> `### ✅ 无需人工校验`
|
|
67
|
-
|
|
68
|
-
## PATCH 规则
|
|
69
|
-
|
|
70
|
-
更新已有评论时必须使用 Issues comments PATCH,具体命令遵循 `.agents/rules/pr-sync.md`。
|
|
71
|
-
|
|
72
|
-
Shell 安全规则:
|
|
73
|
-
- 先读取本地和远端正文,再构造完整正文。
|
|
74
|
-
- heredoc 使用单引号 `<<'EOF'`。
|
|
75
|
-
- 不在 heredoc 内执行变量展开或命令替换。
|
|
76
|
-
- 构造含 `<!-- -->` 的正文时不用 `echo`。
|
|
77
|
-
|
|
78
|
-
## 结果回传
|
|
16
|
+
marker、当前 HEAD、分页查找和原地更新由 core 负责。若当前 context 表明无需人工校验,则停止并返回 `summary failed: no manual validation required`,不误标通过。
|
|
79
17
|
|
|
80
|
-
|
|
81
|
-
- `summary updated`
|
|
82
|
-
- `summary skipped (no diff)`
|
|
83
|
-
- `summary failed: missing pr_number`
|
|
84
|
-
- `summary failed: pr_number mismatch`
|
|
85
|
-
- `summary failed: missing sync-pr summary`
|
|
86
|
-
- `summary failed: no manual validation required`
|
|
87
|
-
- `summary failed: <reason>`
|
|
18
|
+
结果回传:`summary updated`、`summary skipped (no diff)` 或 `summary failed: <reason>`。
|
|
@@ -3,6 +3,7 @@ name: complete-task
|
|
|
3
3
|
description: >
|
|
4
4
|
Mark a task as completed and archive it.
|
|
5
5
|
Use when a task's work is done and verified and you want to close and archive it.
|
|
6
|
+
Only invoke this skill automatically when the conversation includes a resolvable task reference.
|
|
6
7
|
---
|
|
7
8
|
|
|
8
9
|
# Complete Task
|
|
@@ -21,26 +22,20 @@ After loading workflow / skill / rules instructions, and before any task-state j
|
|
|
21
22
|
Run these commands and paste the raw output into both the user-facing reply and this round's `## State Check` section:
|
|
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
|
Before the state check is complete, do not make external-state assertions such as "the code is unchanged", "tests passed", or "there are no other references", including in reasoning. This gate is only a structural floor; evidence pairing and authenticity still require the report template and review discipline.
|
|
30
29
|
|
|
31
|
-
## Task
|
|
30
|
+
## Task Context Resolution
|
|
32
31
|
|
|
33
|
-
>
|
|
32
|
+
> 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.
|
|
34
33
|
|
|
35
|
-
|
|
34
|
+
> Resolve the task reference, then confirm that the task is in a state or directory supported by this skill and that `task.md` exists; if it cannot be located, handle it as a missing task and stop.
|
|
36
35
|
|
|
37
|
-
|
|
36
|
+
## Step Start: Local Lifecycle Boundary
|
|
38
37
|
|
|
39
|
-
|
|
40
|
-
- {YYYY-MM-DD HH:mm:ss±HH:MM} — **Complete Task [started]** by {agent} — started
|
|
41
|
-
```
|
|
42
|
-
|
|
43
|
-
`ai task log` pairs it with the done entry written on completion onto one row (in progress → done). Format and pairing rules: see the "Activity Log started / done dual-marker convention" in `.agents/rules/task-management.md`.
|
|
38
|
+
On the normal path, complete business updates, platform sync, and the pre-completion gate while the task is active. Only then may the lifecycle intent in Step 6 atomically commit base terminal fields, the started/done pair, the directory move, and short-id release. Do not write those mechanical fields first. An archived task may only enter `finalization-retry`; do not move it back or rerun lifecycle.
|
|
44
39
|
|
|
45
40
|
## Steps
|
|
46
41
|
|
|
@@ -51,9 +46,12 @@ Check that the task exists in `.agents/workspace/active/{task-id}/`.
|
|
|
51
46
|
Note: `{task-id}` format is `TASK-{yyyyMMdd-HHmmss}`, e.g. `TASK-20260306-143022`
|
|
52
47
|
|
|
53
48
|
If not found in `active/`, check `blocked/` and `completed/`:
|
|
54
|
-
- If in `completed
|
|
49
|
+
- If in `completed/` and task.md has a matching Complete Task Activity Log entry: enter Scenario B `finalization-retry`, skip Steps 2-6, and proceed to Step 7
|
|
50
|
+
- If in `completed/` without a matching entry: report the incomplete terminal identity and stop without hand-repairing it
|
|
55
51
|
- If in `blocked/`: Inform user the task is blocked; suggest unblocking first
|
|
56
52
|
|
|
53
|
+
Scenario A is the normal active-task path. Scenario B `finalization-retry` retries only the archived task comment and terminal gate.
|
|
54
|
+
|
|
57
55
|
### 2. Verify Completion Prerequisites (Failure Must Stop)
|
|
58
56
|
|
|
59
57
|
**Gate read (project-level PR flow policy)**: Before running this step, read `.agents/.airc.json`'s `prFlow` field (three states: field absent = recommend PR by default, skipping allowed; `"required"` = PR mandatory; `"disabled"` = no PR flow), and `pr_status` from `task.md` frontmatter (`pending` / `created` / `skipped`).
|
|
@@ -89,16 +87,7 @@ Before marking complete, verify ALL of these:
|
|
|
89
87
|
- [ ] Code has been reviewed (`review-code.md` or `review-code-r{N}.md` exists, and the latest review verdict is Approved; or review was done externally)
|
|
90
88
|
- [ ] Code has been committed (no uncommitted changes related to this task)
|
|
91
89
|
- [ ] Tests are passing
|
|
92
|
-
- [ ] The disagreement ledger has no unclosed disagreements
|
|
93
|
-
|
|
94
|
-
**Pre-completion hard gate (run BEFORE moving the directory or releasing the short id)**: the Step 7 `gate complete-task` runs only after the directory has been `mv`-ed to `completed/` and the short id released; to avoid a gate failure occurring after those irreversible operations, run the two new completion gates on the **active directory** first:
|
|
95
|
-
|
|
96
|
-
```bash
|
|
97
|
-
node .agents/scripts/validate-artifact.js check review-ledger .agents/workspace/active/{task-id} --skill complete-task --format text
|
|
98
|
-
node .agents/scripts/validate-artifact.js check post-review-commit .agents/workspace/active/{task-id} --skill complete-task --format text
|
|
99
|
-
```
|
|
100
|
-
|
|
101
|
-
A non-zero exit from either (fail/blocked) -> treat as an unmet prerequisite and **stop**, do not run Steps 3-7. `--force` does **NOT** lift this hard gate: unclosed disagreements must first be closed in the ledger (`confirmed`/`closed`/`human-decided`), and un-re-reviewed post-review commits must be re-reviewed via `review-code` or covered by a `post-review-commit` / `human-decided` exemption row in the ledger.
|
|
90
|
+
- [ ] The disagreement ledger has no unclosed disagreements, there are no un-re-reviewed post-review commits, and local HEAD, `last_reviewed_commit`, and PR head match under the latest required-checks snapshot (mechanically checked below)
|
|
102
91
|
|
|
103
92
|
> **⚠️ Prerequisite Branch Check — you must decide whether to continue or stop before proceeding:**
|
|
104
93
|
>
|
|
@@ -106,7 +95,7 @@ A non-zero exit from either (fail/blocked) -> treat as an unmet prerequisite and
|
|
|
106
95
|
> - If any condition is missing -> **stop by default** and output the prerequisite warning
|
|
107
96
|
> - Only continue with unmet prerequisites when the user explicitly requested `--force`
|
|
108
97
|
>
|
|
109
|
-
> **Do not continue to Steps 3-
|
|
98
|
+
> **Do not continue to Steps 3-8 when prerequisites are not met, and do not output "Task {task-id} completed; task directory moved to completed/."**
|
|
110
99
|
|
|
111
100
|
If any prerequisite is not met, warn the user:
|
|
112
101
|
```
|
|
@@ -116,78 +105,85 @@ Cannot complete task {task-id} - prerequisites not met:
|
|
|
116
105
|
Please complete the missing steps first, or use --force to override.
|
|
117
106
|
```
|
|
118
107
|
|
|
119
|
-
If prerequisites are not met and the user did not explicitly provide `--force`, stop immediately and do not execute Steps 3-
|
|
120
|
-
|
|
121
|
-
### 3. Update Task Metadata
|
|
108
|
+
If prerequisites are not met and the user did not explicitly provide `--force`, stop immediately and do not execute Steps 3-8.
|
|
122
109
|
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
```bash
|
|
126
|
-
date "+%Y-%m-%d %H:%M:%S%z" | sed 's/\([+-][0-9][0-9]\)\([0-9][0-9]\)$/\1:\2/'
|
|
127
|
-
```
|
|
110
|
+
### 3. Complete Business-Only Content
|
|
128
111
|
|
|
129
|
-
Update
|
|
130
|
-
- `status`: completed
|
|
131
|
-
- `current_step`: completed
|
|
132
|
-
- `completed_at`: {current timestamp}
|
|
133
|
-
- `target_date`: write the date portion (`YYYY-MM-DD`) of `completed_at` only when empty; keep any existing (human-entered) value
|
|
134
|
-
- `updated_at`: {current timestamp}
|
|
135
|
-
- `agent_infra_version`: value from `.agents/rules/version-stamp.md`
|
|
112
|
+
Update only content that the lifecycle core does not own:
|
|
136
113
|
- Add or update the `## State Check` section with the raw Step 0 audit command output, including `$ ` prompt lines, before `## Activity Log`
|
|
137
114
|
- Mark all workflow steps as complete
|
|
138
115
|
- Verify and check off all items in `## Completion Checklist` (change `- [ ]` to `- [x]`)
|
|
139
|
-
- **Append** to `## Activity Log` (do NOT overwrite previous entries):
|
|
140
|
-
```
|
|
141
|
-
- {YYYY-MM-DD HH:mm:ss±HH:MM} — **Complete Task** by {agent} — Task moved to completed/
|
|
142
|
-
```
|
|
143
116
|
|
|
144
|
-
|
|
117
|
+
Do not write `status/current_step/completed_at/updated_at/agent_infra_version`, the base Activity Log pair, the directory move, or short-id state here. Step 6 owns them.
|
|
118
|
+
|
|
119
|
+
### 4. Sync the Platform While Active
|
|
120
|
+
|
|
121
|
+
Check whether task.md has a valid `issue_number`. If it does not, skip this step without output.
|
|
122
|
+
|
|
123
|
+
> Issue metadata boundaries live in `.agents/rules/issue-sync.md`; comments use internal platform intents.
|
|
145
124
|
|
|
146
|
-
|
|
125
|
+
When an `issue_number` exists, execute in this exact order:
|
|
126
|
+
|
|
127
|
+
1. In artifact-catalog order, run `agent-infra-internal platform-comment sync {task-id} --kind artifact --artifact {artifact} --agent {artifact-agent} --backfill` for every local artifact.
|
|
128
|
+
2. Run `agent-infra-internal platform-issue sync {task-id} --agent {agent} --requirements --fields`.
|
|
129
|
+
3. Write the business summary to a temporary file and run `agent-infra-internal platform-comment sync {task-id} --kind summary --body-file {path} --agent {agent}`.
|
|
130
|
+
|
|
131
|
+
Do not sync the task comment here; it requires the terminal task.md written by lifecycle. Do not set a `status:` label; platform automation clears status labels after the Issue closes.
|
|
132
|
+
|
|
133
|
+
If any operation fails, the task must remain active and its short id must remain valid. Record the failure with the matching structured warning intent, then stop without entering Step 5:
|
|
147
134
|
|
|
148
135
|
```bash
|
|
149
|
-
|
|
136
|
+
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 "Fix the platform sync problem and rerun complete-task"
|
|
150
137
|
```
|
|
151
138
|
|
|
152
|
-
|
|
139
|
+
The core deduplicates the stable `step/code/target` tuple. Callers must not allocate warning ids or edit ledger rows.
|
|
140
|
+
|
|
141
|
+
### 5. Run the Active Pre-completion Hard Gate
|
|
142
|
+
|
|
143
|
+
After platform writes succeed and before moving the directory or releasing the short id, run:
|
|
153
144
|
|
|
154
145
|
```bash
|
|
155
|
-
|
|
146
|
+
agent-infra-internal task-verify {task-id} complete-task.preflight --format text
|
|
156
147
|
```
|
|
157
148
|
|
|
158
|
-
|
|
149
|
+
This event runs `review-ledger`, `post-review-commit`, `required-checks`, then `platform-sync-preflight`. On any non-zero exit (fail/blocked), keep the task active, derive the stable code/target from the gate result, record it through `task-warning ... add --step complete-task ...`, and stop. For a review/head mismatch, rerun `commit` or `review-code`; for pending/failed/cancelled checks, run `watch-pr`; never fall back to the review baseline.
|
|
150
|
+
|
|
151
|
+
`--force` does not lift this hard gate: close ledger disagreements, re-review or exempt post-review commits, pass required-checks with three-way head alignment, and pass platform preflight first.
|
|
159
152
|
|
|
160
|
-
### 6.
|
|
153
|
+
### 6. Apply the Local Lifecycle Intent and Verify the Move
|
|
161
154
|
|
|
162
|
-
|
|
155
|
+
```bash
|
|
156
|
+
agent-infra-internal task-lifecycle {task-id} complete --agent {agent}
|
|
157
|
+
```
|
|
163
158
|
|
|
164
|
-
|
|
159
|
+
Only `status=applied|no-op` means local completion succeeded. On `status=failed`, show the structured error and recovery steps and retry the same intent; do not claim completion or hand-repair partial state.
|
|
160
|
+
|
|
161
|
+
```bash
|
|
162
|
+
ls .agents/workspace/completed/{task-id}/task.md
|
|
163
|
+
```
|
|
165
164
|
|
|
166
|
-
|
|
167
|
-
- First scan and backfill unpublished `task.md`, `analysis*.md`, `review-analysis*.md`, `plan*.md`, `review-plan*.md`, `code*.md`, and `review-code*.md` comments using the backfill rules in `.agents/rules/issue-sync.md` (`task.md` uses the idempotent update path)
|
|
168
|
-
- Backfill checked `## Requirements` items to the Issue body by following the requirements-checkbox sync steps in issue-sync.md
|
|
169
|
-
- Do not set any `status:` label — status labels are automatically cleared when the Issue is closed
|
|
170
|
-
- Finally create or update the summary comment marked with the summary marker defined in `.agents/rules/issue-sync.md`
|
|
171
|
-
- Read `.agents/rules/issue-fields.md` and follow Flow A to sync every non-empty Issue field (`priority`/`effort`/`start_date`/`target_date`) from `task.md` to the Issue (idempotent; skip without blocking when `has_push=false` or the fetch/write fails)
|
|
165
|
+
Confirm the task directory was successfully moved.
|
|
172
166
|
|
|
173
|
-
### 7.
|
|
167
|
+
### 7. Sync the Terminal Task Comment and Run the Gate
|
|
174
168
|
|
|
175
|
-
|
|
169
|
+
Both Scenario A and Scenario B `finalization-retry` execute this step from the completed directory. If a valid `issue_number` exists, first run:
|
|
176
170
|
|
|
177
171
|
```bash
|
|
178
|
-
|
|
172
|
+
agent-infra-internal platform-comment sync {task-id} --kind task --agent {agent}
|
|
179
173
|
```
|
|
180
174
|
|
|
175
|
+
If this call fails, the task is already archived and `task-warning` cannot accept it. Keep the task completed and stop. After fixing the network or platform issue, rerun complete-task; Step 1 will enter `finalization-retry` and repeat only this step.
|
|
176
|
+
|
|
181
177
|
Run the verification gate to confirm the task artifact and sync state are valid:
|
|
182
178
|
|
|
183
179
|
```bash
|
|
184
|
-
|
|
180
|
+
agent-infra-internal task-verify {task-id} complete-task.completed --format text
|
|
185
181
|
```
|
|
186
182
|
|
|
187
183
|
Handle the result as follows:
|
|
188
184
|
- exit code 0 (all checks passed) -> continue to the "Inform User" step
|
|
189
185
|
- exit code 1 (validation failed) -> fix the reported issues and run the gate again
|
|
190
|
-
- exit code 2 (network blocked) ->
|
|
186
|
+
- exit code 2 (network blocked or status-label cleanup is still pending) -> keep the task completed and stop; rerun complete-task later to enter `finalization-retry`
|
|
191
187
|
|
|
192
188
|
Keep the gate output in your reply as fresh evidence. Do not claim completion without output from this run.
|
|
193
189
|
|