@fitlab-ai/agent-infra 0.8.5 → 0.9.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +6 -1
- package/README.zh-CN.md +5 -1
- package/bin/cli.ts +2 -2
- package/dist/bin/cli.js +2 -2
- package/dist/bin/internal-cli.js +103 -0
- package/dist/lib/decide.js +81 -90
- package/dist/lib/defaults.json +1 -0
- package/dist/lib/git/review-snapshot.js +79 -0
- package/dist/lib/git/workflow.js +101 -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/platform-release-notes.js +53 -0
- package/dist/lib/internal/release-workflow.js +320 -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/github-release-notes.js +96 -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 +619 -0
- package/dist/lib/platform/merged-pr-equivalence.js +54 -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 +340 -0
- package/dist/lib/platform/release-notes.js +143 -0
- package/dist/lib/platform/releases.js +82 -0
- package/dist/lib/platform/types.js +22 -0
- package/dist/lib/platform/verification-required.js +102 -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/build-proxy.js +63 -0
- package/dist/lib/sandbox/capture.js +25 -3
- package/dist/lib/sandbox/commands/create.js +93 -31
- package/dist/lib/sandbox/commands/enter.js +34 -11
- package/dist/lib/sandbox/commands/list-running.js +10 -8
- package/dist/lib/sandbox/commands/rebuild.js +24 -7
- package/dist/lib/sandbox/commands/show.js +2 -2
- package/dist/lib/sandbox/commands/start.js +53 -15
- package/dist/lib/sandbox/image-build.js +2 -1
- 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/ai-tools.dockerfile +24 -3
- package/dist/lib/sandbox/runtimes/base.dockerfile +8 -1
- package/dist/lib/sandbox/runtimes/java17.dockerfile +8 -1
- package/dist/lib/sandbox/runtimes/java21.dockerfile +8 -1
- package/dist/lib/sandbox/runtimes/node20.dockerfile +8 -1
- package/dist/lib/sandbox/runtimes/node22.dockerfile +8 -1
- package/dist/lib/sandbox/runtimes/python3.dockerfile +8 -1
- package/dist/lib/sandbox/shell.js +2 -1
- package/dist/lib/sandbox/task-resolver.js +5 -1
- package/dist/lib/sandbox/tools.js +19 -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 +33 -19
- 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 +21 -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 +55 -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 +923 -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/lib/decide.ts +57 -97
- package/lib/defaults.json +1 -0
- package/lib/git/review-snapshot.ts +73 -0
- package/lib/git/workflow.ts +101 -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/platform-release-notes.ts +55 -0
- package/lib/internal/release-workflow.ts +288 -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/github-release-notes.ts +132 -0
- package/lib/platform/issue-comments.ts +479 -0
- package/lib/platform/issue-metadata.ts +250 -0
- package/lib/platform/issues.ts +693 -0
- package/lib/platform/merged-pr-equivalence.ts +70 -0
- package/lib/platform/metadata-labels.ts +33 -0
- package/lib/platform/pr-checks.ts +247 -0
- package/lib/platform/pr-summary.ts +90 -0
- package/lib/platform/pull-request-metadata.ts +69 -0
- package/lib/platform/pull-requests.ts +386 -0
- package/lib/platform/release-notes.ts +167 -0
- package/lib/platform/releases.ts +71 -0
- package/lib/platform/types.ts +74 -0
- package/lib/platform/verification-required.ts +109 -0
- package/{runtime/platform-adapters/platform-sync.github.js → lib/platform/verification-sync.ts} +198 -367
- 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/build-proxy.ts +94 -0
- package/lib/sandbox/capture.ts +29 -3
- package/lib/sandbox/commands/create.ts +120 -36
- package/lib/sandbox/commands/enter.ts +38 -11
- package/lib/sandbox/commands/list-running.ts +10 -8
- package/lib/sandbox/commands/rebuild.ts +29 -7
- package/lib/sandbox/commands/show.ts +2 -2
- package/lib/sandbox/commands/start.ts +50 -16
- package/lib/sandbox/image-build.ts +4 -1
- 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/ai-tools.dockerfile +24 -3
- package/lib/sandbox/runtimes/base.dockerfile +8 -1
- package/lib/sandbox/runtimes/java17.dockerfile +8 -1
- package/lib/sandbox/runtimes/java21.dockerfile +8 -1
- package/lib/sandbox/runtimes/node20.dockerfile +8 -1
- package/lib/sandbox/runtimes/node22.dockerfile +8 -1
- package/lib/sandbox/runtimes/python3.dockerfile +8 -1
- package/lib/sandbox/shell.ts +3 -1
- package/lib/sandbox/task-resolver.ts +5 -1
- package/lib/sandbox/tools.ts +31 -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 +26 -21
- 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 +24 -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} +26 -12
- 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} +230 -421
- package/lib/task/verification-review.ts +10 -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/package.json +4 -2
- package/templates/.agents/README.en.md +4 -3
- package/templates/.agents/README.zh-CN.md +4 -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/release-commands.en.md +2 -2
- package/templates/.agents/rules/release-commands.github.en.md +10 -40
- package/templates/.agents/rules/release-commands.github.zh-CN.md +9 -39
- package/templates/.agents/rules/release-commands.zh-CN.md +2 -2
- package/templates/.agents/rules/review-handshake.en.md +10 -6
- package/templates/.agents/rules/review-handshake.zh-CN.md +10 -6
- 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/rules/testing-discipline.en.md +20 -2
- package/templates/.agents/rules/testing-discipline.zh-CN.md +20 -2
- package/templates/.agents/scripts/lib/agent-infra-package.js +1 -9
- package/templates/.agents/scripts/task-short-id.js +71 -533
- package/templates/.agents/skills/analyze-task/SKILL.en.md +26 -56
- package/templates/.agents/skills/analyze-task/SKILL.zh-CN.md +30 -60
- 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 +13 -11
- package/templates/.agents/skills/commit/SKILL.zh-CN.md +13 -11
- 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 +13 -0
- package/templates/.agents/skills/commit/reference/task-status-update.zh-CN.md +13 -0
- 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 +10 -7
- package/templates/.agents/skills/complete-task/config/verify.zh-CN.json +10 -7
- 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-release-note/SKILL.en.md +17 -38
- package/templates/.agents/skills/create-release-note/SKILL.zh-CN.md +16 -37
- package/templates/.agents/skills/create-task/SKILL.en.md +16 -13
- package/templates/.agents/skills/create-task/SKILL.zh-CN.md +16 -13
- package/templates/.agents/skills/create-task/config/verify.json +1 -2
- package/templates/.agents/skills/create-task/reference/context-capture.en.md +29 -0
- package/templates/.agents/skills/create-task/reference/context-capture.zh-CN.md +29 -0
- 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/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 +3 -4
- package/templates/.agents/skills/review-code/config/verify.zh-CN.json +3 -4
- 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 +11 -4
- package/templates/.agents/skills/review-code/reference/report-template.zh-CN.md +11 -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 +1 -2
- package/templates/.agents/skills/update-agent-infra/SKILL.zh-CN.md +1 -2
- package/templates/.agents/skills/update-agent-infra/scripts/sync-templates.js +3 -15
- 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 +24 -1
- package/templates/.agents/templates/task.zh-CN.md +24 -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.github.js +0 -40
- package/templates/.agents/scripts/platform-adapters/platform-sync.js +0 -13
- package/templates/.agents/scripts/review-diff-fingerprint.js +0 -170
- 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: analyze-task
|
|
|
3
3
|
description: >
|
|
4
4
|
Analyze a task and produce a requirements document.
|
|
5
5
|
Use when you need to understand a task's requirements, scope, and risks before designing a solution.
|
|
6
|
+
Only invoke this skill automatically when the conversation includes a resolvable task reference.
|
|
6
7
|
---
|
|
7
8
|
|
|
8
9
|
# Analyze Task
|
|
@@ -10,7 +11,7 @@ description: >
|
|
|
10
11
|
## Boundary / Critical Rules
|
|
11
12
|
|
|
12
13
|
- This skill only outputs a requirements analysis document (`analysis.md` or `analysis-r{N}.md`) and does not modify any business code
|
|
13
|
-
- Base the analysis strictly on the existing requirements, context, and source information in `task.md`
|
|
14
|
+
- Base the analysis strictly on the existing task input, requirements, context, and source information in `task.md`
|
|
14
15
|
- After executing this skill, you **must** immediately update task status in task.md
|
|
15
16
|
|
|
16
17
|
Version stamp rule: when creating or updating `task.md` frontmatter, read `.agents/rules/version-stamp.md` first and write or refresh `agent_infra_version`.
|
|
@@ -22,26 +23,20 @@ After loading workflow / skill / rules instructions, and before any task-state j
|
|
|
22
23
|
Run these commands and paste the raw output into both the user-facing reply and this round's `## State Check` section:
|
|
23
24
|
|
|
24
25
|
```bash
|
|
25
|
-
|
|
26
|
-
ls -la .agents/workspace/active/{task-id}/
|
|
27
|
-
tail .agents/workspace/active/{task-id}/task.md
|
|
26
|
+
agent-infra-internal task-snapshot {task-id} --format text
|
|
28
27
|
```
|
|
29
28
|
|
|
30
29
|
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.
|
|
31
30
|
|
|
32
|
-
## Task
|
|
31
|
+
## Task Context Resolution
|
|
33
32
|
|
|
34
|
-
>
|
|
33
|
+
> 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.
|
|
35
34
|
|
|
36
|
-
|
|
35
|
+
> 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.
|
|
37
36
|
|
|
38
|
-
|
|
37
|
+
## Step Start: Declare the started Event
|
|
39
38
|
|
|
40
|
-
|
|
41
|
-
- {YYYY-MM-DD HH:mm:ss±HH:MM} — **Analyze Task (Round {N}) [started]** by {agent} — started
|
|
42
|
-
```
|
|
43
|
-
|
|
44
|
-
`ai task log` pairs it with the done entry written on completion (step 7) 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`.
|
|
39
|
+
After resolving the artifact context and before this round's first artifact action, run `agent-infra-internal task-event {task-id} analyze.started --agent {agent}` and verify the returned `artifactContext`.
|
|
45
40
|
|
|
46
41
|
## Steps
|
|
47
42
|
|
|
@@ -54,20 +49,14 @@ Note: `{task-id}` format is `TASK-{yyyyMMdd-HHmmss}`, for example `TASK-20260306
|
|
|
54
49
|
|
|
55
50
|
If `task.md` is missing, tell the user to create or import the task first.
|
|
56
51
|
|
|
57
|
-
### 2.
|
|
52
|
+
### 2. Resolve the Analysis Context
|
|
58
53
|
|
|
59
|
-
|
|
60
|
-
- If neither `analysis.md` nor `analysis-r*.md` exists -> this is Round 1 and must create `analysis.md`
|
|
61
|
-
- If `analysis.md` exists and no `analysis-r*.md` exists -> this is Round 2 and must create `analysis-r2.md`
|
|
62
|
-
- If `analysis-r{N}.md` exists -> this is Round N+1 and must create `analysis-r{N+1}.md`
|
|
63
|
-
|
|
64
|
-
Record:
|
|
65
|
-
- `{analysis-round}`: the current analysis round
|
|
66
|
-
- `{analysis-artifact}`: the artifact filename for this round
|
|
54
|
+
Run `agent-infra-internal task-artifact {task-id} inspect --family analysis`. Continue only for `ready`; take `{analysis-round}` / `{analysis-artifact}` from `next.round` / `next.name` and revision inputs from `inputs`. Do not scan rounds or construct names in the skill.
|
|
67
55
|
|
|
68
56
|
### 3. Read Task Context
|
|
69
57
|
|
|
70
58
|
Read `task.md` carefully to understand:
|
|
59
|
+
- sources, facts and evidence, constraints, decision states, acceptance criteria, and open questions captured under `## Task Input` (fall back compatibly when the section is absent)
|
|
71
60
|
- task title, description, and requirement list
|
|
72
61
|
- context information (Issue, PR, branch, alert numbers, etc.)
|
|
73
62
|
- currently known affected files and constraints
|
|
@@ -77,7 +66,7 @@ If `task.md` contains these source fields, also read the corresponding source in
|
|
|
77
66
|
- `codescan_alert_number` - Code Scanning alert
|
|
78
67
|
- `security_alert_number` - Dependabot alert
|
|
79
68
|
|
|
80
|
-
**Round ≥ 2: respond to the prior review (only when a review artifact exists)**: if the task directory contains `review-analysis.md` / `review-analysis-r{N}.md`, read the highest-round review report; add a `## Response to Prior Review` section to this round's analysis artifact, and for each finding verify it via Read/Grep, then dispose of it with one of the four states in `.agents/rules/review-handshake.md` (`accepted` / `adjusted` / `refuted` / `cannot-judge`)
|
|
69
|
+
**Round ≥ 2: respond to the prior review (only when a review artifact exists)**: if the task directory contains `review-analysis.md` / `review-analysis-r{N}.md`, read the highest-round review report; add a `## Response to Prior Review` section to this round's analysis artifact, and for each finding verify it via Read/Grep, then dispose of it with one of the four states in `.agents/rules/review-handshake.md` (`accepted` / `adjusted` / `refuted` / `cannot-judge`) with commensurate evidence. Submit each response through `agent-infra-internal task-ledger {task-id} finding-respond --id {ledger-id} --round {analysis-round} --status {state} --evidence {evidence}`. Record open disagreements under `## Open Questions`. Round 1 skips this section.
|
|
81
70
|
|
|
82
71
|
### 4. Requirement Sufficiency Gate
|
|
83
72
|
|
|
@@ -101,6 +90,8 @@ Runs after Step 0 state check and Step 3 (questioning is an external-state actio
|
|
|
101
90
|
- no answer carried → restate `pending_question` and take Scenario B early-exit below (do not increase `question_count`).
|
|
102
91
|
|
|
103
92
|
**4.3 Sufficiency judgment** (objective checklist; any gap hit means insufficient):
|
|
93
|
+
- first aggregate `## Task Input`, description, context, requirements, and remote sources; an analysis-owned `## Requirements` section being unpopulated is not by itself insufficient;
|
|
94
|
+
- goals, scope, constraints, or acceptance criteria already recorded in task input count as provided and must not be asked again;
|
|
104
95
|
- description/requirements empty, or a single sentence with no verifiable acceptance criteria;
|
|
105
96
|
- missing goal or impact scope (unclear what to change / who is affected);
|
|
106
97
|
- requirement items contradict each other, or key terms are undefined and block analysis.
|
|
@@ -112,12 +103,11 @@ Runs after Step 0 state check and Step 3 (questioning is an external-state actio
|
|
|
112
103
|
1. Decide this round's question (consistent with 4.2):
|
|
113
104
|
- if a `pending_question` already exists (the previous question is still unanswered) → restate that `pending_question`, do **not** modify it and do **not** increment `question_count`;
|
|
114
105
|
- otherwise (no pending question) → pick the single highest-value question (acceptance criteria > scope > ambiguity) and write `## Brainstorming`: `status: asking`, `pending_question: <question>`, `question_count += 1`.
|
|
115
|
-
2.
|
|
116
|
-
3.
|
|
117
|
-
4.
|
|
118
|
-
5.
|
|
119
|
-
6.
|
|
120
|
-
7. **STOP** and wait for the answer. The next trigger returns to this step.
|
|
106
|
+
2. If `start_date` is empty, write today (`date +%F`), then run `agent-infra-internal task-event {task-id} analyze.awaiting-input --agent {agent} --question {question_count}` so the core updates base metadata and Activity Log.
|
|
107
|
+
3. Issue sync (when `issue_number` exists, skip on any failure): run `agent-infra-internal platform-comment sync {task-id} --kind task --agent {agent}` to update only the **task comment**; keep the `status` label at `pending-design-work`; do **not** publish an analysis artifact comment.
|
|
108
|
+
4. Verification (replaces the step 8 artifact gate): `agent-infra-internal task-verify {task-id} analyze.awaiting-input --format text` (the early-exit set `current_step: requirement-analysis` and wrote `start_date`, so it should pass); also keep `rg -n 'Analyze Task \(Brainstorming\)' .agents/workspace/active/{task-id}/task.md` and the task-comment sync evidence. Do **not** run the artifact gate, nor `check activity-log` / `check platform-sync` (both bind to the analysis artifact path).
|
|
109
|
+
5. User output: show only the current **single question** plus how to answer/continue (re-trigger `analyze-task {task-ref}` with the answer), and append the `Completed at` line per `.agents/rules/next-step-output.md`.
|
|
110
|
+
6. **STOP** and wait for the answer. The next trigger returns to this step.
|
|
121
111
|
|
|
122
112
|
### 5. Perform Requirements Analysis
|
|
123
113
|
|
|
@@ -191,14 +181,7 @@ Create `.agents/workspace/active/{task-id}/{analysis-artifact}`.
|
|
|
191
181
|
## 人工裁决待办
|
|
192
182
|
|
|
193
183
|
> Write this section only when this round upgraded a `[needs-human-decision]` key design decision; omit otherwise.
|
|
194
|
-
>
|
|
195
|
-
|
|
196
|
-
### HD-{N}:{title} [needs-human-decision]
|
|
197
|
-
|
|
198
|
-
- **Background**: {why it became a pending decision}
|
|
199
|
-
- **Options**: {A / B / …}
|
|
200
|
-
- **Impact**: {scope / boundaries / precedent}
|
|
201
|
-
- **Recommendation**: {recommended option and rationale}
|
|
184
|
+
> First run `agent-infra-internal task-ledger {task-id} decision-next-id` to obtain `HD-N`, write the self-contained block according to `.agents/rules/human-decision-context.md`, then run `decision-upsert --id {HD-N} --stage analysis --artifact {analysis-artifact}`. Do not scan ids or assemble ledger rows.
|
|
202
185
|
|
|
203
186
|
## Effort and Complexity Assessment
|
|
204
187
|
- Complexity: {High/Medium/Low}
|
|
@@ -207,17 +190,7 @@ Create `.agents/workspace/active/{task-id}/{analysis-artifact}`.
|
|
|
207
190
|
|
|
208
191
|
### 7. Update Task Status
|
|
209
192
|
|
|
210
|
-
Get the current time:
|
|
211
|
-
|
|
212
|
-
```bash
|
|
213
|
-
date "+%Y-%m-%d %H:%M:%S%z" | sed 's/\([+-][0-9][0-9]\)\([0-9][0-9]\)$/\1:\2/'
|
|
214
|
-
```
|
|
215
|
-
|
|
216
193
|
Update `.agents/workspace/active/{task-id}/task.md`:
|
|
217
|
-
- `current_step`: requirement-analysis
|
|
218
|
-
- `assigned_to`: {current AI agent}
|
|
219
|
-
- `updated_at`: {current time}
|
|
220
|
-
- `agent_infra_version`: value from `.agents/rules/version-stamp.md`
|
|
221
194
|
- Record the analysis artifact for this round: `{analysis-artifact}` (Round `{analysis-round}`)
|
|
222
195
|
- If the task template contains a `## Analysis` section, update it to link to `{analysis-artifact}`
|
|
223
196
|
- Mark requirement-analysis as complete in workflow progress and include the actual round when the task template supports it
|
|
@@ -225,17 +198,14 @@ Update `.agents/workspace/active/{task-id}/task.md`:
|
|
|
225
198
|
- Overwrite the `priority` field in frontmatter with the new value
|
|
226
199
|
- Append a `## Priority Re-estimate` section to this round's analysis artifact `{analysis-artifact}`, recording: `priority {old} → {new} (rationale: {short basis grounded in this analysis})`
|
|
227
200
|
If the re-estimated value matches the current value, skip it: do not write the `## Priority Re-estimate` section. The Flow A sync that follows reads the possibly updated frontmatter and propagates the new value to the Issue automatically.
|
|
228
|
-
-
|
|
229
|
-
```
|
|
201
|
+
After the business fields are updated, run `agent-infra-internal task-event {task-id} analyze.completed --agent {agent} --artifact {analysis-artifact}` so the core atomically records the link, stage, agent, metadata, and Activity Log.
|
|
230
202
|
- {YYYY-MM-DD HH:mm:ss±HH:MM} — **Analyze Task (Round {N})** by {agent} — Analysis completed → {analysis-artifact}
|
|
231
203
|
```
|
|
232
204
|
|
|
233
205
|
If task.md contains a valid `issue_number`, perform these sync actions (skip and continue on any failure):
|
|
234
|
-
-
|
|
235
|
-
-
|
|
236
|
-
-
|
|
237
|
-
- Publish the `{analysis-artifact}` comment
|
|
238
|
-
- 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)
|
|
206
|
+
- Run `agent-infra-internal platform-issue sync {task-id} --agent {agent} --status pending-design-work --fields`
|
|
207
|
+
- Run `agent-infra-internal platform-comment sync {task-id} --kind task --agent {agent}`
|
|
208
|
+
- Run `agent-infra-internal platform-comment sync {task-id} --kind artifact --artifact {analysis-artifact} --agent {agent}`
|
|
239
209
|
|
|
240
210
|
### 8. Verification Gate
|
|
241
211
|
|
|
@@ -244,7 +214,7 @@ If task.md contains a valid `issue_number`, perform these sync actions (skip and
|
|
|
244
214
|
Run the verification gate to confirm the task artifact and sync state are valid:
|
|
245
215
|
|
|
246
216
|
```bash
|
|
247
|
-
|
|
217
|
+
agent-infra-internal task-verify {task-id} analyze.completed --artifact {analysis-artifact} --format text
|
|
248
218
|
```
|
|
249
219
|
|
|
250
220
|
Handle the result as follows:
|
|
@@ -260,7 +230,7 @@ Keep the gate output in your reply as fresh evidence. Do not claim completion wi
|
|
|
260
230
|
|
|
261
231
|
> Execute this step only after the verification gate passes.
|
|
262
232
|
|
|
263
|
-
> **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
|
|
233
|
+
> **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).
|
|
264
234
|
|
|
265
235
|
Output format:
|
|
266
236
|
```
|
|
@@ -3,6 +3,7 @@ name: analyze-task
|
|
|
3
3
|
description: >
|
|
4
4
|
分析任务并输出需求分析文档。
|
|
5
5
|
当需要在动手设计前厘清某个任务的需求、影响范围与风险时使用。
|
|
6
|
+
仅当对话包含可解析的任务引用时才可自动调用本技能。
|
|
6
7
|
---
|
|
7
8
|
|
|
8
9
|
# 分析任务
|
|
@@ -10,7 +11,7 @@ description: >
|
|
|
10
11
|
## 行为边界 / 关键规则
|
|
11
12
|
|
|
12
13
|
- 本技能仅产出需求分析文档(`analysis.md` 或 `analysis-r{N}.md`)—— 不修改任何业务代码
|
|
13
|
-
- 严格基于 `task.md`
|
|
14
|
+
- 严格基于 `task.md` 中已有的任务输入、需求、上下文和来源信息展开分析
|
|
14
15
|
- 执行本技能后,你**必须**立即更新 task.md 中的任务状态
|
|
15
16
|
|
|
16
17
|
版本戳规则:创建或更新 `task.md` frontmatter 时,先读取 `.agents/rules/version-stamp.md`,并写入或刷新 `agent_infra_version`。
|
|
@@ -22,26 +23,24 @@ description: >
|
|
|
22
23
|
运行以下命令,并把原文粘贴到回复正文和本轮产物的 `## 状态核对` 段:
|
|
23
24
|
|
|
24
25
|
```bash
|
|
25
|
-
|
|
26
|
-
ls -la .agents/workspace/active/{task-id}/
|
|
27
|
-
tail .agents/workspace/active/{task-id}/task.md
|
|
26
|
+
agent-infra-internal task-snapshot {task-id} --format text
|
|
28
27
|
```
|
|
29
28
|
|
|
30
29
|
状态核对完成前,禁止任何关于外部状态的断言(例如“代码没变”“测试已通过”“没有其他引用”),包括思考阶段。本门禁只提供结构下限;逐条证据配对和真实性仍需按报告模板与审查要求核对。
|
|
31
30
|
|
|
32
|
-
##
|
|
31
|
+
## 任务上下文解析
|
|
33
32
|
|
|
34
|
-
>
|
|
33
|
+
> 入口允许省略 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`。解析失败时透传非零退出码,不自行扫描任务。
|
|
35
34
|
|
|
36
|
-
|
|
35
|
+
> 解析任务引用,并确认任务位于本技能支持的状态或目录且存在 `task.md`;无法定位时按未找到任务处理并停止。
|
|
37
36
|
|
|
38
|
-
|
|
37
|
+
## 步骤开始:声明 started 事件
|
|
39
38
|
|
|
40
|
-
|
|
41
|
-
- {YYYY-MM-DD HH:mm:ss±HH:MM} — **Analyze Task (Round {N}) [started]** by {agent} — started
|
|
42
|
-
```
|
|
39
|
+
确认前置条件和轮次后、本轮第一个产出动作之前执行:
|
|
43
40
|
|
|
44
|
-
|
|
41
|
+
```bash
|
|
42
|
+
agent-infra-internal task-event {task-id} analyze.started --agent {agent}
|
|
43
|
+
```
|
|
45
44
|
|
|
46
45
|
## 执行步骤
|
|
47
46
|
### 1. 验证前置条件
|
|
@@ -53,20 +52,14 @@ tail .agents/workspace/active/{task-id}/task.md
|
|
|
53
52
|
|
|
54
53
|
如果缺少 `task.md`,提示用户先创建或导入任务。
|
|
55
54
|
|
|
56
|
-
### 2.
|
|
57
|
-
|
|
58
|
-
扫描 `.agents/workspace/active/{task-id}/` 目录中的分析产物文件:
|
|
59
|
-
- 如果不存在 `analysis.md` 且不存在 `analysis-r*.md` → 本轮为第 1 轮,产出 `analysis.md`
|
|
60
|
-
- 如果存在 `analysis.md` 且不存在 `analysis-r*.md` → 本轮为第 2 轮,产出 `analysis-r2.md`
|
|
61
|
-
- 如果存在 `analysis-r{N}.md` → 本轮为第 N+1 轮,产出 `analysis-r{N+1}.md`
|
|
55
|
+
### 2. 解析分析上下文
|
|
62
56
|
|
|
63
|
-
|
|
64
|
-
- `{analysis-round}`:本轮分析轮次
|
|
65
|
-
- `{analysis-artifact}`:本轮分析产物文件名
|
|
57
|
+
运行 `agent-infra-internal task-artifact {task-id} inspect --family analysis`。仅当结果为 `ready` 时继续;从 `next.round` / `next.name` 记录 `{analysis-round}` / `{analysis-artifact}`,从 `inputs` 读取修订上下文。不得自行扫描轮次或拼装文件名。随后执行 started 事件,并以事件返回的 `artifactContext` 复核同一身份。
|
|
66
58
|
|
|
67
59
|
### 3. 阅读任务上下文
|
|
68
60
|
|
|
69
61
|
仔细阅读 `task.md` 以理解:
|
|
62
|
+
- `## 任务输入` 中已捕获的来源、事实与证据、约束、决策状态、验收标准和未决事项(栏目不存在时兼容回退)
|
|
70
63
|
- 任务标题、描述和需求列表
|
|
71
64
|
- 上下文信息(Issue、PR、分支、告警编号等)
|
|
72
65
|
- 当前已知的受影响文件和约束
|
|
@@ -76,7 +69,7 @@ tail .agents/workspace/active/{task-id}/task.md
|
|
|
76
69
|
- `codescan_alert_number` - Code Scanning 告警
|
|
77
70
|
- `security_alert_number` - Dependabot 告警
|
|
78
71
|
|
|
79
|
-
**Round ≥ 2:响应上一轮审查(仅当存在审查产物时)**:若任务目录存在 `review-analysis.md` / `review-analysis-r{N}.md`,读取最高轮次的审查报告;在本轮分析产物中新增 `## 对上一轮审查的响应` 段,对每条发现先 Read/Grep 核实,再按 `.agents/rules/review-handshake.md` 的四态(`accepted` / `adjusted` / `refuted` / `cannot-judge
|
|
72
|
+
**Round ≥ 2:响应上一轮审查(仅当存在审查产物时)**:若任务目录存在 `review-analysis.md` / `review-analysis-r{N}.md`,读取最高轮次的审查报告;在本轮分析产物中新增 `## 对上一轮审查的响应` 段,对每条发现先 Read/Grep 核实,再按 `.agents/rules/review-handshake.md` 的四态(`accepted` / `adjusted` / `refuted` / `cannot-judge`)处置——每态都要附相称证据,不默认顺从;随后逐条调用 `agent-infra-internal task-ledger {task-id} finding-respond --id {ledger-id} --round {analysis-round} --status {四态} --evidence {相称证据}`。未决分歧写入 `## 未决问题`。Round 1 无审查,跳过本段。
|
|
80
73
|
|
|
81
74
|
### 4. 入口需求充分性闸门
|
|
82
75
|
|
|
@@ -100,6 +93,8 @@ tail .agents/workspace/active/{task-id}/task.md
|
|
|
100
93
|
- 未携带答案 → 复述 `pending_question`,按下文场景 B 提问早退(不增加 `question_count`)。
|
|
101
94
|
|
|
102
95
|
**4.3 充分性判定**(客观清单,命中任一缺口即判为不足):
|
|
96
|
+
- 先聚合 `## 任务输入`、描述、上下文、需求及远端来源;分析阶段尚未填写 `## 需求` 本身不构成不足;
|
|
97
|
+
- 已在任务输入中记录的目标、范围、约束或验收标准视为已提供,不得重复询问;
|
|
103
98
|
- 描述/需求为空,或仅一句话且无可验证的验收标准;
|
|
104
99
|
- 缺少目标或受影响范围(不知道要改什么 / 影响谁);
|
|
105
100
|
- 需求条目自相矛盾,或关键名词未定义而无法分析。
|
|
@@ -111,12 +106,11 @@ tail .agents/workspace/active/{task-id}/task.md
|
|
|
111
106
|
1. 确定本轮要问的问题(与 4.2 保持一致):
|
|
112
107
|
- 若已存在 `pending_question`(上一问尚未得到答案)→ 复述该 `pending_question`,**不**修改它、**不**增加 `question_count`;
|
|
113
108
|
- 否则(无待答问题)→ 选最高价值的一个问题(验收标准 > 范围 > 歧义),写入 `## Brainstorming`:`status: asking`、`pending_question: <问题>`、`question_count += 1`。
|
|
114
|
-
2.
|
|
115
|
-
3.
|
|
116
|
-
4.
|
|
117
|
-
5.
|
|
118
|
-
6.
|
|
119
|
-
7. **STOP**,等待回答。下一次触发回到本步骤。
|
|
109
|
+
2. 若 `start_date` 为空,写入当日日期(`date +%F`);随后执行 `agent-infra-internal task-event {task-id} analyze.awaiting-input --agent {agent} --question {question_count}`,由核心统一更新基础 frontmatter 和 Activity Log。
|
|
110
|
+
3. Issue 同步(存在 `issue_number` 时,任一失败跳过):调用 `agent-infra-internal platform-comment sync {task-id} --kind task --agent {agent}` 更新 **task 评论**;`status` label 维持 `pending-design-work`;**不**发布分析产物评论。
|
|
111
|
+
4. 校验(替代步骤 8 的 artifact gate):`agent-infra-internal task-verify {task-id} analyze.awaiting-input --format text`(早退已置 `current_step: requirement-analysis` 且已写入 `start_date`,预期通过);并保留 `rg -n 'Analyze Task \(Brainstorming\)' .agents/workspace/active/{task-id}/task.md` 与 task 评论同步证据。**不**跑 artifact gate,也不跑 `check activity-log` / `check platform-sync`(二者绑定分析产物路径)。
|
|
112
|
+
5. 用户输出:只展示当前**单个问题** + 如何回答/继续(再次触发 `analyze-task {task-ref}` 并附答案),并按 `.agents/rules/next-step-output.md` 在末行追加 `Completed at`。
|
|
113
|
+
6. **STOP**,等待回答。下一次触发回到本步骤。
|
|
120
114
|
|
|
121
115
|
### 5. 执行需求分析
|
|
122
116
|
|
|
@@ -190,14 +184,7 @@ tail .agents/workspace/active/{task-id}/task.md
|
|
|
190
184
|
## 人工裁决待办
|
|
191
185
|
|
|
192
186
|
> 仅当本轮升级了 `[needs-human-decision]` 关键设计决策时写本段;没有则省略。
|
|
193
|
-
>
|
|
194
|
-
|
|
195
|
-
### HD-{N}:{标题} [needs-human-decision]
|
|
196
|
-
|
|
197
|
-
- **背景**:{为何成为待裁决项}
|
|
198
|
-
- **选项**:{A / B / …}
|
|
199
|
-
- **影响**:{范围 / 边界 / 先例}
|
|
200
|
-
- **推荐**:{推荐选项及理由}
|
|
187
|
+
> 每项先调用 `agent-infra-internal task-ledger {task-id} decision-next-id` 取得 `HD-N`,按 `.agents/rules/human-decision-context.md` 写自足 `### HD-N` 块,再调用 `decision-upsert --id {HD-N} --stage analysis --artifact {analysis-artifact}`;不得扫描编号或手写账本行。
|
|
201
188
|
|
|
202
189
|
## 工作量和复杂度评估
|
|
203
190
|
- 复杂度:{高/中/低}
|
|
@@ -206,35 +193,18 @@ tail .agents/workspace/active/{task-id}/task.md
|
|
|
206
193
|
|
|
207
194
|
### 7. 更新任务状态
|
|
208
195
|
|
|
209
|
-
获取当前时间:
|
|
210
|
-
|
|
211
|
-
```bash
|
|
212
|
-
date "+%Y-%m-%d %H:%M:%S%z" | sed 's/\([+-][0-9][0-9]\)\([0-9][0-9]\)$/\1:\2/'
|
|
213
|
-
```
|
|
214
|
-
|
|
215
196
|
更新 `.agents/workspace/active/{task-id}/task.md`:
|
|
216
|
-
-
|
|
217
|
-
- `assigned_to`:{当前 AI 代理}
|
|
218
|
-
- `updated_at`:{当前时间}
|
|
219
|
-
- `agent_infra_version`:按 `.agents/rules/version-stamp.md` 取值
|
|
220
|
-
- 记录本轮分析产物:`{analysis-artifact}`(Round `{analysis-round}`)
|
|
221
|
-
- 如任务模板包含 `## 分析` 段落,更新为指向 `{analysis-artifact}` 的链接
|
|
222
|
-
- 在工作流进度中标记 requirement-analysis 为已完成,并注明实际轮次(如果任务模板支持)
|
|
197
|
+
- 仅更新优先级、Brainstorming、审查响应等本技能拥有的业务内容;产物链接、阶段与完成日志由 completed 事件统一登记
|
|
223
198
|
- 在追加工作流 Activity Log 条目之前,基于分析结果(业务影响、风险、依赖、阻塞条件)重估 `priority`。若重估值与 `task.md` 当前值不一致:
|
|
224
199
|
- 用新值覆盖 frontmatter 的 `priority` 字段
|
|
225
200
|
- 在本轮分析产物 `{analysis-artifact}` 中追加 `## 优先级重估` 段,记录一条:`priority {old} → {new} (rationale: {基于本轮分析的简短依据})`
|
|
226
201
|
若重估值与当前值一致,跳过:不写入 `## 优先级重估` 段。后续 Flow A 同步会读取可能更新过的 frontmatter,并自动把新值同步到 Issue。
|
|
227
|
-
-
|
|
228
|
-
```
|
|
229
|
-
- {YYYY-MM-DD HH:mm:ss±HH:MM} — **Analyze Task (Round {N})** by {agent} — Analysis completed → {analysis-artifact}
|
|
230
|
-
```
|
|
202
|
+
- 完成业务内容更新后执行 `agent-infra-internal task-event {task-id} analyze.completed --agent {agent} --artifact {analysis-artifact}`,由核心原子登记链接、阶段、代理、时间、版本和 Activity Log。
|
|
231
203
|
|
|
232
204
|
如果 task.md 中存在有效的 `issue_number`,执行以下同步操作(任一失败则跳过并继续):
|
|
233
|
-
-
|
|
234
|
-
-
|
|
235
|
-
-
|
|
236
|
-
- 发布 `{analysis-artifact}` 评论
|
|
237
|
-
- 读取 `.agents/rules/issue-fields.md`,按流程 A 把 `task.md` 中所有非空的 Issue 字段(`priority`/`effort`/`start_date`/`target_date`)同步到 Issue(幂等;`has_push=false` 或取数/写入失败时跳过,不阻断)
|
|
205
|
+
- 调用 `agent-infra-internal platform-issue sync {task-id} --agent {agent} --status pending-design-work --fields`
|
|
206
|
+
- 调用 `agent-infra-internal platform-comment sync {task-id} --kind task --agent {agent}`
|
|
207
|
+
- 调用 `agent-infra-internal platform-comment sync {task-id} --kind artifact --artifact {analysis-artifact} --agent {agent}`
|
|
238
208
|
|
|
239
209
|
### 8. 完成校验
|
|
240
210
|
|
|
@@ -243,7 +213,7 @@ date "+%Y-%m-%d %H:%M:%S%z" | sed 's/\([+-][0-9][0-9]\)\([0-9][0-9]\)$/\1:\2/'
|
|
|
243
213
|
运行完成校验,确认任务产物和同步状态符合规范:
|
|
244
214
|
|
|
245
215
|
```bash
|
|
246
|
-
|
|
216
|
+
agent-infra-internal task-verify {task-id} analyze.completed --artifact {analysis-artifact} --format text
|
|
247
217
|
```
|
|
248
218
|
|
|
249
219
|
处理结果:
|
|
@@ -259,7 +229,7 @@ node .agents/scripts/validate-artifact.js gate analyze-task .agents/workspace/ac
|
|
|
259
229
|
|
|
260
230
|
> 仅在校验通过后执行本步骤。
|
|
261
231
|
|
|
262
|
-
> **重要**:以下「下一步」中列出的所有 TUI 命令格式必须完整输出,不要只展示当前 AI 代理对应的格式。如果 `.agents/.airc.json` 中配置了自定义 TUI(`customTUIs`),读取每个工具的 `name` 和 `invoke`,按同样格式补充对应命令行(`${skillName}` 替换为技能名,`${projectName}` 替换为项目名)。 渲染最终输出前,先读取 `.agents/rules/next-step-output.md` 并落实其两类规则:(1) 「下一步」命令把 `{task-ref}` 渲染为短号
|
|
232
|
+
> **重要**:以下「下一步」中列出的所有 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` 收尾行(成功、错误、早退等任何面向用户输出都适用,不限于校验通过的成功态)。
|
|
263
233
|
|
|
264
234
|
输出格式:
|
|
265
235
|
```
|
|
@@ -27,14 +27,12 @@
|
|
|
27
27
|
"Effort and Complexity Assessment",
|
|
28
28
|
"State Check"
|
|
29
29
|
],
|
|
30
|
-
"freshness_minutes": 30,
|
|
31
30
|
"required_patterns": [
|
|
32
31
|
"^\\$ "
|
|
33
32
|
]
|
|
34
33
|
},
|
|
35
34
|
"activity-log": {
|
|
36
|
-
"expected_action_pattern": "(Analyze Task|Requirement Analysis) \\(Round \\d+\\)"
|
|
37
|
-
"freshness_minutes": 30
|
|
35
|
+
"expected_action_pattern": "(Analyze Task|Requirement Analysis) \\(Round \\d+\\)"
|
|
38
36
|
},
|
|
39
37
|
"platform-sync": {
|
|
40
38
|
"when": "issue_number_exists",
|
|
@@ -27,14 +27,12 @@
|
|
|
27
27
|
"工作量和复杂度评估",
|
|
28
28
|
"状态核对"
|
|
29
29
|
],
|
|
30
|
-
"freshness_minutes": 30,
|
|
31
30
|
"required_patterns": [
|
|
32
31
|
"^\\$ "
|
|
33
32
|
]
|
|
34
33
|
},
|
|
35
34
|
"activity-log": {
|
|
36
|
-
"expected_action_pattern": "(Analyze Task|Requirement Analysis) \\(Round \\d+\\)"
|
|
37
|
-
"freshness_minutes": 30
|
|
35
|
+
"expected_action_pattern": "(Analyze Task|Requirement Analysis) \\(Round \\d+\\)"
|
|
38
36
|
},
|
|
39
37
|
"platform-sync": {
|
|
40
38
|
"when": "issue_number_exists",
|
|
@@ -3,6 +3,7 @@ name: block-task
|
|
|
3
3
|
description: >
|
|
4
4
|
Mark a task as blocked and record the reason.
|
|
5
5
|
Use when a task cannot proceed because of an external blocker and you need to park it with a reason.
|
|
6
|
+
Only invoke this skill automatically when the conversation includes a resolvable task reference.
|
|
6
7
|
---
|
|
7
8
|
|
|
8
9
|
# Block Task
|
|
@@ -21,19 +22,15 @@ description: >
|
|
|
21
22
|
|
|
22
23
|
Version stamp rule: when creating or updating `task.md` frontmatter, read `.agents/rules/version-stamp.md` first and write or refresh `agent_infra_version`.
|
|
23
24
|
|
|
24
|
-
## Task
|
|
25
|
+
## Task Context Resolution
|
|
25
26
|
|
|
26
|
-
>
|
|
27
|
+
> 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.
|
|
27
28
|
|
|
28
|
-
|
|
29
|
+
> 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.
|
|
29
30
|
|
|
30
|
-
|
|
31
|
+
## Step Start: Local Lifecycle Boundary
|
|
31
32
|
|
|
32
|
-
|
|
33
|
-
- {YYYY-MM-DD HH:mm:ss±HH:MM} — **Block Task [started]** by {agent} — started
|
|
34
|
-
```
|
|
35
|
-
|
|
36
|
-
`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`.
|
|
33
|
+
After prerequisites pass, Step 3 declares one lifecycle intent that atomically writes the started/done pair, base metadata, directory move, and short-id release. Do not write those pieces manually first.
|
|
37
34
|
|
|
38
35
|
## Steps
|
|
39
36
|
|
|
@@ -53,33 +50,20 @@ Before blocking, thoroughly analyze:
|
|
|
53
50
|
- [ ] What solutions have been attempted?
|
|
54
51
|
- [ ] What help or information is needed to unblock?
|
|
55
52
|
|
|
56
|
-
### 3.
|
|
57
|
-
|
|
58
|
-
Get the current time:
|
|
53
|
+
### 3. Apply the Local Lifecycle Intent
|
|
59
54
|
|
|
60
55
|
```bash
|
|
61
|
-
|
|
56
|
+
agent-infra-internal task-lifecycle {task-id} block --agent {agent} \
|
|
57
|
+
--reason "{one-line reason}" --unblock-condition "{unblock condition}"
|
|
62
58
|
```
|
|
63
59
|
|
|
64
|
-
|
|
65
|
-
- `status`: blocked
|
|
66
|
-
- `blocked_at`: {current timestamp}
|
|
67
|
-
- `updated_at`: {current timestamp}
|
|
68
|
-
- `agent_infra_version`: value from `.agents/rules/version-stamp.md`
|
|
69
|
-
- **Append** to `## Activity Log` (do NOT overwrite previous entries):
|
|
70
|
-
```
|
|
71
|
-
- {YYYY-MM-DD HH:mm:ss±HH:MM} — **Block Task** by {agent} — {one-line reason}
|
|
72
|
-
```
|
|
60
|
+
Only `status=applied|no-op` means the local block completed. On `status=failed`, show the structured error and recovery steps and retry the same intent; do not manually edit task.md, move the directory, or release the short id.
|
|
73
61
|
|
|
74
|
-
|
|
62
|
+
### 4. Verify the Local Final State
|
|
75
63
|
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
```bash
|
|
79
|
-
mv .agents/workspace/active/{task-id} .agents/workspace/blocked/{task-id}
|
|
80
|
-
```
|
|
64
|
+
Confirm `targetState=blocked`, the target path, and the committed short-id effect.
|
|
81
65
|
|
|
82
|
-
### 5.
|
|
66
|
+
### 5. Preserve Recovery Identity
|
|
83
67
|
|
|
84
68
|
```bash
|
|
85
69
|
ls .agents/workspace/blocked/{task-id}/task.md
|
|
@@ -89,22 +73,15 @@ ls .agents/workspace/blocked/{task-id}/task.md
|
|
|
89
73
|
|
|
90
74
|
Check whether `task.md` includes a valid `issue_number`. If not, skip this step.
|
|
91
75
|
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
If a valid `issue_number` exists, set `status: blocked` by following issue-sync.md.
|
|
76
|
+
If a valid `issue_number` exists, run `agent-infra-internal platform-issue sync {task-id} --agent {agent} --status blocked`.
|
|
77
|
+
Then run `agent-infra-internal platform-comment sync {task-id} --kind task --agent {agent}`.
|
|
95
78
|
|
|
96
79
|
### 7. Verification Gate
|
|
97
80
|
|
|
98
|
-
**Release short id** (after the directory has already been moved; the script is idempotent and returns 0 even if the task isn't registered):
|
|
99
|
-
|
|
100
|
-
```bash
|
|
101
|
-
node .agents/scripts/task-short-id.js release "$task_id" || true
|
|
102
|
-
```
|
|
103
|
-
|
|
104
81
|
Run the verification gate to confirm the task artifact and sync state are valid:
|
|
105
82
|
|
|
106
83
|
```bash
|
|
107
|
-
|
|
84
|
+
agent-infra-internal task-verify {task-id} block-task.completed --format text
|
|
108
85
|
```
|
|
109
86
|
|
|
110
87
|
Handle the result as follows:
|
|
@@ -118,7 +95,7 @@ Keep the gate output in your reply as fresh evidence. Do not claim completion wi
|
|
|
118
95
|
|
|
119
96
|
> Execute this step only after the verification gate passes.
|
|
120
97
|
|
|
121
|
-
> **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
|
|
98
|
+
> **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).
|
|
122
99
|
|
|
123
100
|
> **Optional sandbox-cleanup hint (gated)**: Render the "Optional: clean up this task's sandbox" block — placed after "Archived to" and before "To unblock" in the output below — only when BOTH (1) `.agents/.airc.json` has a `sandbox` field and (2) task.md's `branch` field exists and is not `main` / `master`; otherwise omit the whole block. `{branch}` is the `branch` value from the task.md you already loaded (the task has moved to blocked/, so read it from `.agents/workspace/blocked/{task-id}/task.md`). This block is independent of "Next step" semantics.
|
|
124
101
|
|
|
@@ -136,8 +113,7 @@ Optional: clean up this task's sandbox
|
|
|
136
113
|
ai sandbox rm {branch}
|
|
137
114
|
|
|
138
115
|
To unblock when the issue is resolved:
|
|
139
|
-
|
|
140
|
-
# Then update task.md: status -> active, remove blocked_at
|
|
116
|
+
agent-infra-internal task-lifecycle {task-id} activate --agent {agent} --note "{activation note}"
|
|
141
117
|
|
|
142
118
|
Next step - check task status after unblocking:
|
|
143
119
|
- Claude Code / OpenCode: /check-task {task-ref}
|
|
@@ -160,13 +136,11 @@ Next step - check task status after unblocking:
|
|
|
160
136
|
When the blocking issue is resolved:
|
|
161
137
|
|
|
162
138
|
```bash
|
|
163
|
-
|
|
164
|
-
mv .agents/workspace/blocked/{task-id} .agents/workspace/active/{task-id}
|
|
165
|
-
|
|
166
|
-
# 2. Update task.md: set status to active, update timestamps
|
|
167
|
-
# 3. Resume from where you left off (check current_step)
|
|
139
|
+
agent-infra-internal task-lifecycle {task-id} activate --agent {agent} --note "{activation note}"
|
|
168
140
|
```
|
|
169
141
|
|
|
142
|
+
Resume from the preserved `current_step`. On failure, retry the same intent from the structured recovery fields instead of hand-editing lifecycle state.
|
|
143
|
+
|
|
170
144
|
## Notes
|
|
171
145
|
|
|
172
146
|
1. **When to block**: Only block when you genuinely cannot proceed. If it is a difficulty you can work through, try harder first.
|