@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
|
@@ -53,6 +53,8 @@ Extract from the natural-language description:
|
|
|
53
53
|
- `<slug>` is a kebab-case slug built from 3-6 English keywords extracted from the task title
|
|
54
54
|
- **Detailed description**: the cleaned-up original user request
|
|
55
55
|
|
|
56
|
+
Before this step, read `reference/context-capture.md`. Classify the information already present in the current request and necessary prior discussion by source and state, ready to write under task.md `## Task Input`; leave missing categories empty and do not infer or analyze them.
|
|
57
|
+
|
|
56
58
|
If the description is unclear, **ask the user to clarify first**.
|
|
57
59
|
|
|
58
60
|
**Type inference**: choose the best matching type from the following candidates based on the semantics of the task description:
|
|
@@ -78,6 +80,7 @@ date +%Y%m%d-%H%M%S
|
|
|
78
80
|
|
|
79
81
|
- Create the task directory: `.agents/workspace/active/TASK-{yyyyMMdd-HHmmss}/`
|
|
80
82
|
- Use the `.agents/templates/task.md` template to create the task file: `task.md`
|
|
83
|
+
- Write the structured context captured in step 1 under `## Task Input` so the task remains understandable outside the original conversation
|
|
81
84
|
|
|
82
85
|
**Important**:
|
|
83
86
|
- Directory naming: `TASK-{yyyyMMdd-HHmmss}` (**must** include the `TASK-` prefix)
|
|
@@ -123,21 +126,20 @@ Update `.agents/workspace/active/{task-id}/task.md`:
|
|
|
123
126
|
- {YYYY-MM-DD HH:mm:ss±HH:MM} — **Create Task** by {agent} — Task created from description
|
|
124
127
|
```
|
|
125
128
|
|
|
126
|
-
### 4. Cascade Issue Creation
|
|
127
|
-
|
|
128
|
-
After task.md is written and `Create Task` is recorded, read `.agents/rules/create-issue.md` first and follow the steps it describes to create an Issue.
|
|
129
|
+
### 4. Cascade Issue Creation and Metadata Sync
|
|
129
130
|
|
|
130
|
-
|
|
131
|
-
- A platform that supports Issue creation: contains the full flow for auth detection, template detection, label/type/milestone inference, the create-Issue call, and writing back to `task.md`
|
|
132
|
-
- Custom or empty platforms (no platform-specific variant provided): the rule body is a no-op notice, and this step is skipped entirely
|
|
131
|
+
After task.md is written, call the declarative intents; the internal core owns templates, body rendering, identity validation, capability degradation, idempotency, and task binding:
|
|
133
132
|
|
|
134
|
-
|
|
133
|
+
```bash
|
|
134
|
+
agent-infra-internal platform-issue create {task-id} --agent {agent}
|
|
135
|
+
agent-infra-internal platform-issue sync {task-id} --agent {agent} --status waiting-for-triage --assignees current --milestone initial --issue-type --fields
|
|
136
|
+
```
|
|
135
137
|
|
|
136
138
|
Handle the result:
|
|
137
|
-
-
|
|
138
|
-
- Rule failed (auth / network / template parse / etc.): do not roll back task.md
|
|
139
|
-
-
|
|
140
|
-
- task.md already has `issue_number`:
|
|
139
|
+
- Intent created the Issue: `issue_number` was written through the task writer; run `agent-infra-internal platform-comment sync {task-id} --kind task --agent {agent}`
|
|
140
|
+
- Rule failed (auth / network / template parse / etc.): do not roll back task.md or append an extra Activity Log entry; run `agent-infra-internal task-warning {task-id} add --step create-task --severity ACTION_REQUIRED --code ISSUE_CREATE_FAILED --target issue --message "{error_code}: {error_message}" --action "Fix auth/network/template issues and manually retry Issue creation, or create/find an Issue and write issue_number"` to submit a structured warning intent (callers do not allocate ids or edit rows), then follow Scenario C
|
|
141
|
+
- Intent returned no-op/degraded: continue applicable operations without blocking the workflow
|
|
142
|
+
- task.md already has a valid `issue_number`: create validates the binding and returns no-op without creating a duplicate
|
|
141
143
|
|
|
142
144
|
### 5. Verification Gate
|
|
143
145
|
|
|
@@ -152,7 +154,7 @@ If this fails (non-zero exit), follow the message — archive some active tasks
|
|
|
152
154
|
Run the verification gate to confirm the task artifact and sync state are valid:
|
|
153
155
|
|
|
154
156
|
```bash
|
|
155
|
-
|
|
157
|
+
agent-infra-internal task-verify {task-id} create-task.completed --format text
|
|
156
158
|
```
|
|
157
159
|
|
|
158
160
|
Handle the result as follows:
|
|
@@ -166,7 +168,7 @@ Keep the gate output in your reply as fresh evidence. Do not claim completion wi
|
|
|
166
168
|
|
|
167
169
|
> Execute this step only after the verification gate passes.
|
|
168
170
|
|
|
169
|
-
> **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
|
|
171
|
+
> **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).
|
|
170
172
|
|
|
171
173
|
Scenario A: when an Issue was created, output:
|
|
172
174
|
```
|
|
@@ -241,6 +243,7 @@ For later platform sync: after fixing auth / network / template issues, manually
|
|
|
241
243
|
## Completion Checklist
|
|
242
244
|
|
|
243
245
|
- [ ] Created the task file `.agents/workspace/active/{task-id}/task.md`
|
|
246
|
+
- [ ] Wrote and checked `## Task Input` source and state semantics according to `reference/context-capture.md`
|
|
244
247
|
- [ ] Updated `current_step` to requirement-analysis in task.md
|
|
245
248
|
- [ ] Updated `updated_at` to the current time in task.md
|
|
246
249
|
- [ ] Updated `assigned_to` in task.md
|
|
@@ -52,6 +52,8 @@ description: >
|
|
|
52
52
|
- `<slug>` 从任务标题提取 3-6 个英文关键词并转为 kebab-case
|
|
53
53
|
- **详细描述**:整理后的用户原始描述
|
|
54
54
|
|
|
55
|
+
执行本步骤前,先读取 `reference/context-capture.md`。把当前请求及必要前序讨论中已有的信息按来源与状态分类,准备写入 task.md 的 `## 任务输入`;缺失类别保持为空,不执行推导或分析。
|
|
56
|
+
|
|
55
57
|
如果描述不清晰,**先向用户确认**再继续。
|
|
56
58
|
|
|
57
59
|
**类型推断**:根据任务描述的语义,从以下候选值中选择最匹配的类型:
|
|
@@ -77,6 +79,7 @@ date +%Y%m%d-%H%M%S
|
|
|
77
79
|
|
|
78
80
|
- 创建任务目录:`.agents/workspace/active/TASK-{yyyyMMdd-HHmmss}/`
|
|
79
81
|
- 使用 `.agents/templates/task.md` 模板创建任务文件:`task.md`
|
|
82
|
+
- 将步骤 1 捕获的结构化上下文写入 `## 任务输入`,确保任务文件脱离原会话后仍可理解
|
|
80
83
|
|
|
81
84
|
**重要**:
|
|
82
85
|
- 目录命名:`TASK-{yyyyMMdd-HHmmss}`(**必须**包含 `TASK-` 前缀)
|
|
@@ -122,21 +125,20 @@ date "+%Y-%m-%d %H:%M:%S%z" | sed 's/\([+-][0-9][0-9]\)\([0-9][0-9]\)$/\1:\2/'
|
|
|
122
125
|
- {YYYY-MM-DD HH:mm:ss±HH:MM} — **Create Task** by {agent} — Task created from description
|
|
123
126
|
```
|
|
124
127
|
|
|
125
|
-
### 4.
|
|
126
|
-
|
|
127
|
-
在 task.md 落盘并记录 `Create Task` 后,先读取 `.agents/rules/create-issue.md` 并按其中描述的步骤执行 Issue 创建。
|
|
128
|
+
### 4. 级联创建并同步 Issue
|
|
128
129
|
|
|
129
|
-
|
|
130
|
-
- 支持 Issue 创建的平台:包含完整的认证检测、模板检测、label/Issue Type/milestone 推断、Issue 创建调用、`task.md` 回写流程
|
|
131
|
-
- 自定义或空平台(未提供平台变体规则文件):内容为 no-op 说明,本步骤直接跳过
|
|
130
|
+
在 task.md 落盘并记录 `Create Task` 后调用声明式 Issue intent;标题、正文、模板、身份校验、权限降级、幂等创建和 task.md 绑定均由 internal core 处理:
|
|
132
131
|
|
|
133
|
-
|
|
132
|
+
```bash
|
|
133
|
+
agent-infra-internal platform-issue create {task-id} --agent {agent}
|
|
134
|
+
agent-infra-internal platform-issue sync {task-id} --agent {agent} --status waiting-for-triage --assignees current --milestone initial --issue-type --fields
|
|
135
|
+
```
|
|
134
136
|
|
|
135
137
|
处理结果:
|
|
136
|
-
-
|
|
137
|
-
- 规则失败(认证 / 网络 / 模板解析等):不回滚 task.md;不追加额外 Activity Log;先调用 `
|
|
138
|
-
-
|
|
139
|
-
- task.md
|
|
138
|
+
- intent 成功创建 Issue:`issue_number` 已由任务写入内核回写;调用 `agent-infra-internal platform-comment sync {task-id} --kind task --agent {agent}`
|
|
139
|
+
- 规则失败(认证 / 网络 / 模板解析等):不回滚 task.md;不追加额外 Activity Log;先调用 `agent-infra-internal task-warning {task-id} add --step create-task --severity ACTION_REQUIRED --code ISSUE_CREATE_FAILED --target issue --message "{error_code}: {error_message}" --action "修复认证/网络/模板问题后手动重试 Issue 创建,或手动创建/找到 Issue 后写入 issue_number"` 提交结构化 warning 意图(调用方不分配编号或写表格);再按"场景 C:Issue 创建失败"输出
|
|
140
|
+
- intent 为 no-op/degraded:按结构化 operations 继续可执行部分;自定义或空平台不创建评论且不阻塞工作流
|
|
141
|
+
- task.md 已存在有效 `issue_number`:create intent 校验绑定后返回 no-op,不重复创建
|
|
140
142
|
|
|
141
143
|
### 5. 完成校验
|
|
142
144
|
|
|
@@ -151,7 +153,7 @@ node .agents/scripts/task-short-id.js alloc "$task_id"
|
|
|
151
153
|
运行完成校验,确认任务产物和同步状态符合规范:
|
|
152
154
|
|
|
153
155
|
```bash
|
|
154
|
-
|
|
156
|
+
agent-infra-internal task-verify {task-id} create-task.completed --format text
|
|
155
157
|
```
|
|
156
158
|
|
|
157
159
|
处理结果:
|
|
@@ -165,7 +167,7 @@ node .agents/scripts/validate-artifact.js gate create-task .agents/workspace/act
|
|
|
165
167
|
|
|
166
168
|
> 仅在校验通过后执行本步骤。
|
|
167
169
|
|
|
168
|
-
> **重要**:以下「下一步」中列出的所有 TUI 命令格式必须完整输出,不要只展示当前 AI 代理对应的格式。如果 `.agents/.airc.json` 中配置了自定义 TUI(`customTUIs`),读取每个工具的 `name` 和 `invoke`,按同样格式补充对应命令行(`${skillName}` 替换为技能名,`${projectName}` 替换为项目名)。 渲染最终输出前,先读取 `.agents/rules/next-step-output.md` 并落实其两类规则:(1) 「下一步」命令把 `{task-ref}` 渲染为短号
|
|
170
|
+
> **重要**:以下「下一步」中列出的所有 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` 收尾行(成功、错误、早退等任何面向用户输出都适用,不限于校验通过的成功态)。
|
|
169
171
|
|
|
170
172
|
场景 A:已创建 Issue 时输出:
|
|
171
173
|
```
|
|
@@ -240,6 +242,7 @@ Issue 创建失败:
|
|
|
240
242
|
## 完成检查清单
|
|
241
243
|
|
|
242
244
|
- [ ] 创建了任务文件 `.agents/workspace/active/{task-id}/task.md`
|
|
245
|
+
- [ ] 已按 `reference/context-capture.md` 写入并复核 `## 任务输入` 的来源与状态语义
|
|
243
246
|
- [ ] 更新了 task.md 中的 `current_step` 为 requirement-analysis
|
|
244
247
|
- [ ] 更新了 task.md 中的 `updated_at` 为当前时间
|
|
245
248
|
- [ ] 更新了 task.md 中的 `assigned_to`
|
|
@@ -18,8 +18,7 @@
|
|
|
18
18
|
"expected_status": "active"
|
|
19
19
|
},
|
|
20
20
|
"activity-log": {
|
|
21
|
-
"expected_action_pattern": "(Create Task|Task Created)"
|
|
22
|
-
"freshness_minutes": 30
|
|
21
|
+
"expected_action_pattern": "(Create Task|Task Created)"
|
|
23
22
|
},
|
|
24
23
|
"platform-sync": {
|
|
25
24
|
"when": "issue_number_exists",
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
# Context Capture Protocol
|
|
2
|
+
|
|
3
|
+
## Scope
|
|
4
|
+
|
|
5
|
+
Capture only the current natural-language request and the necessary prior discussion that is visible in the current context and directly relevant to the task. Do not read outside the available context, preserve a full transcript, perform requirements analysis, analyze code impact, or design a solution.
|
|
6
|
+
|
|
7
|
+
## Classification
|
|
8
|
+
|
|
9
|
+
Faithfully condense existing information into task.md under `## Task Input`:
|
|
10
|
+
|
|
11
|
+
- `### Sources`: identify the current user request, an earlier user statement, user confirmation, or an agent suggestion.
|
|
12
|
+
- `### Confirmed Facts and Evidence`: include only user-provided or verified facts, reproduction steps, errors, and observations.
|
|
13
|
+
- `### Constraints`: preserve explicit user limits, security boundaries, and compatibility requirements.
|
|
14
|
+
- `### Confirmed Decisions`: include only directions explicitly confirmed by the user; never promote an agent suggestion to an approved decision.
|
|
15
|
+
- `### Candidate and Rejected Options`: label each item as a candidate, agent suggestion, tentative assumption, or rejected option and preserve its source.
|
|
16
|
+
- `### Acceptance Criteria`: retain user-provided observable inputs, actions, and expected results.
|
|
17
|
+
- `### Open Questions`: retain unanswered questions and choices that still require a decision.
|
|
18
|
+
|
|
19
|
+
Leave missing categories empty rather than inferring content. Deduplicate repeated information without losing its source or state.
|
|
20
|
+
|
|
21
|
+
## Safety and Compression
|
|
22
|
+
|
|
23
|
+
- Exclude secrets, tokens, credentials, and unrelated personal information.
|
|
24
|
+
- Write a self-contained summary instead of copying the full transcript.
|
|
25
|
+
- Preserve commands, error text, paths, or identifiers only when necessary for reproduction or acceptance.
|
|
26
|
+
|
|
27
|
+
## Completion Check
|
|
28
|
+
|
|
29
|
+
A reader with only the generated task.md must be able to distinguish confirmed information, candidates or assumptions, rejected content, and open questions, and understand the task goal and existing acceptance criteria.
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
# 上下文捕获协议
|
|
2
|
+
|
|
3
|
+
## 范围
|
|
4
|
+
|
|
5
|
+
只捕获当前自然语言请求及当前上下文中可见、与任务直接相关的必要前序讨论。不读取上下文之外的信息,不保存完整聊天记录,也不执行需求分析、代码影响分析或技术设计。
|
|
6
|
+
|
|
7
|
+
## 分类
|
|
8
|
+
|
|
9
|
+
将已有信息忠实压缩并写入 task.md 的 `## 任务输入`:
|
|
10
|
+
|
|
11
|
+
- `### 来源`:注明用户当次请求、用户前序陈述、用户确认或 Agent 建议等来源。
|
|
12
|
+
- `### 已确认事实与证据`:只写用户提供或已核实的事实、复现步骤、错误和观察结果。
|
|
13
|
+
- `### 约束`:保留用户明确限制、安全边界和兼容要求。
|
|
14
|
+
- `### 已确认决策`:只写用户明确确认的方向;不得把 Agent 建议升级为已批准决策。
|
|
15
|
+
- `### 候选与否决方案`:注明每项是候选、Agent 建议、暂定假设或已否决方案,并保留来源。
|
|
16
|
+
- `### 验收标准`:保存用户已给出的可观察输入、动作和预期结果。
|
|
17
|
+
- `### 未决事项`:保存尚未回答的问题或仍需裁定的选择。
|
|
18
|
+
|
|
19
|
+
缺失类别保持为空,不推导补齐。相同信息去重,但不得丢失来源或状态语义。
|
|
20
|
+
|
|
21
|
+
## 安全与压缩
|
|
22
|
+
|
|
23
|
+
- 排除密钥、Token、凭据和与任务无关的个人信息。
|
|
24
|
+
- 使用自足摘要,不逐字复制完整 transcript。
|
|
25
|
+
- 保留命令、错误文本、路径或标识符时,只保留复现和验收所必需的部分。
|
|
26
|
+
|
|
27
|
+
## 完成检查
|
|
28
|
+
|
|
29
|
+
仅阅读生成的 task.md 时,应能区分已确认内容、候选或假设、否决内容和未决事项,并能理解任务目标与已有验收标准。
|
|
@@ -83,7 +83,7 @@ If this fails (non-zero exit), follow the message — archive some active tasks
|
|
|
83
83
|
Run the verification gate to confirm the task artifact and sync state are valid:
|
|
84
84
|
|
|
85
85
|
```bash
|
|
86
|
-
|
|
86
|
+
agent-infra-internal task-verify {task-id} import-codescan.completed --format text
|
|
87
87
|
```
|
|
88
88
|
|
|
89
89
|
Handle the result as follows:
|
|
@@ -97,7 +97,7 @@ Keep the gate output in your reply as fresh evidence. Do not claim completion wi
|
|
|
97
97
|
|
|
98
98
|
> Execute this step only after the verification gate passes.
|
|
99
99
|
|
|
100
|
-
> **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
|
|
100
|
+
> **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).
|
|
101
101
|
|
|
102
102
|
```
|
|
103
103
|
Code Scanning alert #{alert-number} imported.
|
|
@@ -83,7 +83,7 @@ node .agents/scripts/task-short-id.js alloc "$task_id"
|
|
|
83
83
|
运行完成校验,确认任务产物和同步状态符合规范:
|
|
84
84
|
|
|
85
85
|
```bash
|
|
86
|
-
|
|
86
|
+
agent-infra-internal task-verify {task-id} import-codescan.completed --format text
|
|
87
87
|
```
|
|
88
88
|
|
|
89
89
|
处理结果:
|
|
@@ -97,7 +97,7 @@ node .agents/scripts/validate-artifact.js gate import-codescan .agents/workspace
|
|
|
97
97
|
|
|
98
98
|
> 仅在校验通过后执行本步骤。
|
|
99
99
|
|
|
100
|
-
> **重要**:以下「下一步」中列出的所有 TUI 命令格式必须完整输出,不要只展示当前 AI 代理对应的格式。如果 `.agents/.airc.json` 中配置了自定义 TUI(`customTUIs`),读取每个工具的 `name` 和 `invoke`,按同样格式补充对应命令行(`${skillName}` 替换为技能名,`${projectName}` 替换为项目名)。 渲染最终输出前,先读取 `.agents/rules/next-step-output.md` 并落实其两类规则:(1) 「下一步」命令把 `{task-ref}` 渲染为短号
|
|
100
|
+
> **重要**:以下「下一步」中列出的所有 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` 收尾行(成功、错误、早退等任何面向用户输出都适用,不限于校验通过的成功态)。
|
|
101
101
|
|
|
102
102
|
```
|
|
103
103
|
Code Scanning 告警 #{alert-number} 已导入。
|
|
@@ -17,8 +17,7 @@
|
|
|
17
17
|
"expected_status": "active"
|
|
18
18
|
},
|
|
19
19
|
"activity-log": {
|
|
20
|
-
"expected_action_pattern": "(Import Codescan|Import Code Scanning Alert)"
|
|
21
|
-
"freshness_minutes": 30
|
|
20
|
+
"expected_action_pattern": "(Import Codescan|Import Code Scanning Alert)"
|
|
22
21
|
},
|
|
23
22
|
"platform-sync": null
|
|
24
23
|
}
|
|
@@ -86,7 +86,7 @@ If this fails (non-zero exit), follow the message — archive some active tasks
|
|
|
86
86
|
Run the verification gate to confirm the task artifact and sync state are valid:
|
|
87
87
|
|
|
88
88
|
```bash
|
|
89
|
-
|
|
89
|
+
agent-infra-internal task-verify {task-id} import-dependabot.completed --format text
|
|
90
90
|
```
|
|
91
91
|
|
|
92
92
|
Handle the result as follows:
|
|
@@ -100,7 +100,7 @@ Keep the gate output in your reply as fresh evidence. Do not claim completion wi
|
|
|
100
100
|
|
|
101
101
|
> Execute this step only after the verification gate passes.
|
|
102
102
|
|
|
103
|
-
> **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
|
|
103
|
+
> **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).
|
|
104
104
|
|
|
105
105
|
```
|
|
106
106
|
Security alert #{alert-number} imported.
|
|
@@ -86,7 +86,7 @@ node .agents/scripts/task-short-id.js alloc "$task_id"
|
|
|
86
86
|
运行完成校验,确认任务产物和同步状态符合规范:
|
|
87
87
|
|
|
88
88
|
```bash
|
|
89
|
-
|
|
89
|
+
agent-infra-internal task-verify {task-id} import-dependabot.completed --format text
|
|
90
90
|
```
|
|
91
91
|
|
|
92
92
|
处理结果:
|
|
@@ -100,7 +100,7 @@ node .agents/scripts/validate-artifact.js gate import-dependabot .agents/workspa
|
|
|
100
100
|
|
|
101
101
|
> 仅在校验通过后执行本步骤。
|
|
102
102
|
|
|
103
|
-
> **重要**:以下「下一步」中列出的所有 TUI 命令格式必须完整输出,不要只展示当前 AI 代理对应的格式。如果 `.agents/.airc.json` 中配置了自定义 TUI(`customTUIs`),读取每个工具的 `name` 和 `invoke`,按同样格式补充对应命令行(`${skillName}` 替换为技能名,`${projectName}` 替换为项目名)。 渲染最终输出前,先读取 `.agents/rules/next-step-output.md` 并落实其两类规则:(1) 「下一步」命令把 `{task-ref}` 渲染为短号
|
|
103
|
+
> **重要**:以下「下一步」中列出的所有 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` 收尾行(成功、错误、早退等任何面向用户输出都适用,不限于校验通过的成功态)。
|
|
104
104
|
|
|
105
105
|
```
|
|
106
106
|
安全告警 #{alert-number} 已导入。
|
|
@@ -17,8 +17,7 @@
|
|
|
17
17
|
"expected_status": "active"
|
|
18
18
|
},
|
|
19
19
|
"activity-log": {
|
|
20
|
-
"expected_action_pattern": "(Import Dependabot|Import Dependabot Alert)"
|
|
21
|
-
"freshness_minutes": 30
|
|
20
|
+
"expected_action_pattern": "(Import Dependabot|Import Dependabot Alert)"
|
|
22
21
|
},
|
|
23
22
|
"platform-sync": null
|
|
24
23
|
}
|
|
@@ -65,7 +65,7 @@ Strip only the first layer, and only when the leading token is a `prefix-types`
|
|
|
65
65
|
- If found, **reuse the existing task by default** (Scenario A); do not ask the user. State clearly in the final notice: "Reused existing task `{task-id}`; not re-imported." If the user wants to re-import, they must first archive or delete the existing task and run this skill again
|
|
66
66
|
- If not found, continue to 2.2
|
|
67
67
|
|
|
68
|
-
2.2
|
|
68
|
+
2.2 Run `agent-infra-internal platform-comment list --issue {issue-number}` to scan registered markers for a recoverable historical task ID.
|
|
69
69
|
|
|
70
70
|
This command depends on `$upstream_repo` being set in step 1.
|
|
71
71
|
|
|
@@ -142,18 +142,14 @@ Update `.agents/workspace/active/{task-id}/task.md`:
|
|
|
142
142
|
```
|
|
143
143
|
If step 3.3 already appended recovery Activity Log entries, do not append a duplicate equivalent entry.
|
|
144
144
|
|
|
145
|
-
### 5.
|
|
146
|
-
|
|
147
|
-
If task.md contains a valid `issue_number`, use the Issue update command from `.agents/rules/issue-pr-commands.md` to add the current executor as an assignee. The behavioral boundary still follows `.agents/rules/issue-sync.md`.
|
|
148
|
-
|
|
149
|
-
### 6. Sync to the Issue
|
|
145
|
+
### 5. Bind and Sync the Issue
|
|
150
146
|
|
|
151
147
|
If task.md contains a valid `issue_number`, perform these sync actions (skip and continue on any failure):
|
|
152
|
-
-
|
|
153
|
-
-
|
|
154
|
-
- After every scenario,
|
|
148
|
+
- Run `agent-infra-internal platform-issue bind {task-id} --issue {issue-number} --agent {agent}`
|
|
149
|
+
- Run `agent-infra-internal platform-issue sync {task-id} --agent {agent} --assignees current --milestone initial`
|
|
150
|
+
- After every scenario, run `agent-infra-internal platform-comment sync {task-id} --kind task --agent {agent}`
|
|
155
151
|
|
|
156
|
-
###
|
|
152
|
+
### 6. Verification Gate
|
|
157
153
|
|
|
158
154
|
**Allocate short id first** (ensures the registry entry is allocated; the validation gate will read it):
|
|
159
155
|
|
|
@@ -166,7 +162,7 @@ If this fails (non-zero exit), follow the message — archive some active tasks
|
|
|
166
162
|
Run the verification gate to confirm the task artifact and sync state are valid:
|
|
167
163
|
|
|
168
164
|
```bash
|
|
169
|
-
|
|
165
|
+
agent-infra-internal task-verify {task-id} import-issue.completed --format text
|
|
170
166
|
```
|
|
171
167
|
|
|
172
168
|
Handle the result as follows:
|
|
@@ -176,11 +172,11 @@ Handle the result as follows:
|
|
|
176
172
|
|
|
177
173
|
Keep the gate output in your reply as fresh evidence. Do not claim completion without output from this run.
|
|
178
174
|
|
|
179
|
-
###
|
|
175
|
+
### 7. Inform User
|
|
180
176
|
|
|
181
177
|
> Execute this step only after the verification gate passes.
|
|
182
178
|
|
|
183
|
-
> **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
|
|
179
|
+
> **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).
|
|
184
180
|
|
|
185
181
|
```
|
|
186
182
|
Issue #{number} imported.
|
|
@@ -65,9 +65,9 @@ example-single-layer: "feat: add A: B" => "add A: B"
|
|
|
65
65
|
- 如果找到,**默认复用现有任务**(场景 A),不询问用户;在最终告知中明确「已复用现有任务 `{task-id}`,未重新导入」。若用户希望重新导入,需要先手动归档/删除已有任务再次执行本技能
|
|
66
66
|
- 如果未找到,继续执行 2.2
|
|
67
67
|
|
|
68
|
-
2.2
|
|
68
|
+
2.2 调用 `agent-infra-internal platform-comment list --issue {issue-number}` 扫描注册 marker,查找可恢复的历史任务 ID。
|
|
69
69
|
|
|
70
|
-
|
|
70
|
+
该命令内部解析 upstream、认证与分页。
|
|
71
71
|
|
|
72
72
|
退出码处理(pipeline 整体):
|
|
73
73
|
|
|
@@ -142,18 +142,14 @@ date "+%Y-%m-%d %H:%M:%S%z" | sed 's/\([+-][0-9][0-9]\)\([0-9][0-9]\)$/\1:\2/'
|
|
|
142
142
|
```
|
|
143
143
|
如果步骤 3.3 已经按恢复场景追加了 Activity Log,不要重复追加同义记录。
|
|
144
144
|
|
|
145
|
-
### 5.
|
|
146
|
-
|
|
147
|
-
如果 task.md 中存在有效的 `issue_number`,按 `.agents/rules/issue-pr-commands.md` 的 Issue 更新命令为当前执行者添加 assignee;Assignee 同步的边界仍遵循 `.agents/rules/issue-sync.md`。
|
|
148
|
-
|
|
149
|
-
### 6. 同步到 Issue
|
|
145
|
+
### 5. 绑定并同步 Issue
|
|
150
146
|
|
|
151
147
|
如果 task.md 中存在有效的 `issue_number`,执行以下同步操作(任一失败则跳过并继续):
|
|
152
|
-
-
|
|
153
|
-
-
|
|
154
|
-
-
|
|
148
|
+
- 调用 `agent-infra-internal platform-issue bind {task-id} --issue {issue-number} --agent {agent}` 校验并原子绑定
|
|
149
|
+
- 调用 `agent-infra-internal platform-issue sync {task-id} --agent {agent} --assignees current --milestone initial`
|
|
150
|
+
- 所有场景结束后,必须调用 `agent-infra-internal platform-comment sync {task-id} --kind task --agent {agent}`
|
|
155
151
|
|
|
156
|
-
###
|
|
152
|
+
### 6. 完成校验
|
|
157
153
|
|
|
158
154
|
**先调用短号分配**(保证注册表 entry 已分配;完成校验阶段会读取):
|
|
159
155
|
|
|
@@ -166,7 +162,7 @@ node .agents/scripts/task-short-id.js alloc "$task_id"
|
|
|
166
162
|
运行完成校验,确认任务产物和同步状态符合规范:
|
|
167
163
|
|
|
168
164
|
```bash
|
|
169
|
-
|
|
165
|
+
agent-infra-internal task-verify {task-id} import-issue.completed --format text
|
|
170
166
|
```
|
|
171
167
|
|
|
172
168
|
处理结果:
|
|
@@ -176,11 +172,11 @@ node .agents/scripts/validate-artifact.js gate import-issue .agents/workspace/ac
|
|
|
176
172
|
|
|
177
173
|
将校验输出保留在回复中作为当次验证输出。没有当次校验输出,不得声明完成。
|
|
178
174
|
|
|
179
|
-
###
|
|
175
|
+
### 7. 告知用户
|
|
180
176
|
|
|
181
177
|
> 仅在校验通过后执行本步骤。
|
|
182
178
|
|
|
183
|
-
> **重要**:以下「下一步」中列出的所有 TUI 命令格式必须完整输出,不要只展示当前 AI 代理对应的格式。如果 `.agents/.airc.json` 中配置了自定义 TUI(`customTUIs`),读取每个工具的 `name` 和 `invoke`,按同样格式补充对应命令行(`${skillName}` 替换为技能名,`${projectName}` 替换为项目名)。 渲染最终输出前,先读取 `.agents/rules/next-step-output.md` 并落实其两类规则:(1) 「下一步」命令把 `{task-ref}` 渲染为短号
|
|
179
|
+
> **重要**:以下「下一步」中列出的所有 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` 收尾行(成功、错误、早退等任何面向用户输出都适用,不限于校验通过的成功态)。
|
|
184
180
|
|
|
185
181
|
```
|
|
186
182
|
Issue #{number} 已导入。
|
|
@@ -3,6 +3,7 @@ name: plan-task
|
|
|
3
3
|
description: >
|
|
4
4
|
Design a technical plan for a task.
|
|
5
5
|
Use when a requirement is understood and you need a technical design before coding.
|
|
6
|
+
Only invoke this skill automatically when the conversation includes a resolvable task reference.
|
|
6
7
|
---
|
|
7
8
|
|
|
8
9
|
# Design Technical Plan
|
|
@@ -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
|
-
|
|
37
|
-
|
|
38
|
-
After prerequisites pass and before this round's first artifact action, append a started marker to task.md `## Activity Log` (same base action as this round's done entry plus a ` [started]` suffix, note `started`):
|
|
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.
|
|
39
36
|
|
|
40
|
-
|
|
41
|
-
- {YYYY-MM-DD HH:mm:ss±HH:MM} — **Plan Task (Round {N}) [started]** by {agent} — started
|
|
42
|
-
```
|
|
37
|
+
## Step Start: Write the started Marker
|
|
43
38
|
|
|
44
|
-
|
|
39
|
+
After resolving the artifact context and before this round's first artifact action, run `agent-infra-internal task-event {task-id} plan.started --agent {agent}` and verify the returned `artifactContext`.
|
|
45
40
|
|
|
46
41
|
## Steps
|
|
47
42
|
|
|
@@ -55,16 +50,9 @@ Note: `{task-id}` format is `TASK-{yyyyMMdd-HHmmss}`, for example `TASK-20260306
|
|
|
55
50
|
|
|
56
51
|
If any required file is missing, prompt the user to complete the prerequisite step first.
|
|
57
52
|
|
|
58
|
-
### 2.
|
|
59
|
-
|
|
60
|
-
Scan `.agents/workspace/active/{task-id}/` for plan artifact files:
|
|
61
|
-
- If neither `plan.md` nor `plan-r*.md` exists -> this is Round 1 and must create `plan.md`
|
|
62
|
-
- If `plan.md` exists and no `plan-r*.md` exists -> this is Round 2 and must create `plan-r2.md`
|
|
63
|
-
- If `plan-r{N}.md` exists -> this is Round N+1 and must create `plan-r{N+1}.md`
|
|
53
|
+
### 2. Resolve the Artifact Context
|
|
64
54
|
|
|
65
|
-
|
|
66
|
-
- `{plan-round}`: the current plan round
|
|
67
|
-
- `{plan-artifact}`: the artifact filename for this round
|
|
55
|
+
Run `agent-infra-internal task-artifact {task-id} inspect --family plan`. Continue only for `ready`; take the latest `{analysis-artifact}` from `inputs` and `{plan-round}` / `{plan-artifact}` from `next.round` / `next.name`. Do not scan rounds or construct names in the skill. Then run the started event and verify the returned identity.
|
|
68
56
|
|
|
69
57
|
### 3. Read Requirements Analysis
|
|
70
58
|
|
|
@@ -78,7 +66,7 @@ Use it to understand:
|
|
|
78
66
|
- identified technical risks
|
|
79
67
|
- effort and complexity assessment
|
|
80
68
|
|
|
81
|
-
**Round ≥ 2: respond to the prior review (only when a review artifact exists)**: if the task directory contains `review-plan.md` / `review-plan-r{N}.md`, read the highest-round review report; add a `## Response to Prior Review` section
|
|
69
|
+
**Round ≥ 2: respond to the prior review (only when a review artifact exists)**: if the task directory contains `review-plan.md` / `review-plan-r{N}.md`, read the highest-round review report; add a `## Response to Prior Review` section and verify every finding before choosing `accepted` / `adjusted` / `refuted` / `cannot-judge`. Submit each response through `agent-infra-internal task-ledger {task-id} finding-respond --id {ledger-id} --round {plan-round} --status {state} --evidence {evidence}`. Record open disagreements under `## Open Questions`. Round 1 skips this section.
|
|
82
70
|
|
|
83
71
|
### 4. Understand the Problem
|
|
84
72
|
|
|
@@ -99,7 +87,7 @@ Follow the `technical-design` step in `.agents/workflows/feature-development.yam
|
|
|
99
87
|
- [ ] Define the verification strategy (tests, manual checks)
|
|
100
88
|
- [ ] Assess impact and risks
|
|
101
89
|
|
|
102
|
-
When this round introduces a new key design decision,
|
|
90
|
+
When this round introduces a new key design decision, first run `agent-infra-internal task-ledger {task-id} decision-next-id`, write the returned `HD-N` as a self-contained block under `## 人工裁决待办` (Pending Human Decisions) according to `.agents/rules/human-decision-context.md`, then run `decision-upsert --id {HD-N} --stage plan --artifact {plan-artifact}`. Ordinary open questions still go under `## Open Questions`.
|
|
103
91
|
|
|
104
92
|
**Design principles**:
|
|
105
93
|
1. **Architectural soundness**: choose the structurally correct approach; diff size is not the primary criterion. Do not pile changes onto an unsound structure just to keep the diff small
|
|
@@ -114,17 +102,7 @@ Create `.agents/workspace/active/{task-id}/{plan-artifact}`.
|
|
|
114
102
|
|
|
115
103
|
### 7. Update Task Status
|
|
116
104
|
|
|
117
|
-
Get the current time:
|
|
118
|
-
|
|
119
|
-
```bash
|
|
120
|
-
date "+%Y-%m-%d %H:%M:%S%z" | sed 's/\([+-][0-9][0-9]\)\([0-9][0-9]\)$/\1:\2/'
|
|
121
|
-
```
|
|
122
|
-
|
|
123
105
|
Update `.agents/workspace/active/{task-id}/task.md`:
|
|
124
|
-
- `current_step`: technical-design
|
|
125
|
-
- `assigned_to`: {current AI agent}
|
|
126
|
-
- `updated_at`: {current time}
|
|
127
|
-
- `agent_infra_version`: value from `.agents/rules/version-stamp.md`
|
|
128
106
|
- Record the plan artifact for this round: `{plan-artifact}` (Round `{plan-round}`)
|
|
129
107
|
- If the task template contains a `## Design` section, update it to link to `{plan-artifact}`
|
|
130
108
|
- Mark technical-design as complete in workflow progress and include the actual round when the task template supports it
|
|
@@ -132,24 +110,21 @@ Update `.agents/workspace/active/{task-id}/task.md`:
|
|
|
132
110
|
- Overwrite the `effort` field in frontmatter with the new value
|
|
133
111
|
- Append a `## Effort Re-estimate` section to this round's plan artifact `{plan-artifact}`, recording: `effort {old} → {new} (rationale: {short basis grounded in this plan})`
|
|
134
112
|
If the re-estimated value matches the current value, skip it: do not write the `## Effort Re-estimate` section. The Flow A sync that follows reads the possibly updated frontmatter and propagates the new value to the Issue automatically.
|
|
135
|
-
-
|
|
136
|
-
```
|
|
113
|
+
After the business fields are updated, run `agent-infra-internal task-event {task-id} plan.completed --agent {agent} --artifact {plan-artifact}` so the core atomically records the link, stage, agent, metadata, and Activity Log.
|
|
137
114
|
- {YYYY-MM-DD HH:mm:ss±HH:MM} — **Plan Task (Round {N})** by {agent} — Plan completed, awaiting human review → {artifact-filename}
|
|
138
115
|
```
|
|
139
116
|
|
|
140
117
|
If task.md contains a valid `issue_number`, perform these sync actions (skip and continue on any failure):
|
|
141
|
-
-
|
|
142
|
-
-
|
|
143
|
-
-
|
|
144
|
-
- Publish the `{plan-artifact}` comment
|
|
145
|
-
- 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)
|
|
118
|
+
- Run `agent-infra-internal platform-issue sync {task-id} --agent {agent} --status pending-design-work --fields`
|
|
119
|
+
- Run `agent-infra-internal platform-comment sync {task-id} --kind task --agent {agent}`
|
|
120
|
+
- Run `agent-infra-internal platform-comment sync {task-id} --kind artifact --artifact {plan-artifact} --agent {agent}`
|
|
146
121
|
|
|
147
122
|
### 8. Verification Gate
|
|
148
123
|
|
|
149
124
|
Run the verification gate to confirm the task artifact and sync state are valid:
|
|
150
125
|
|
|
151
126
|
```bash
|
|
152
|
-
|
|
127
|
+
agent-infra-internal task-verify {task-id} plan.completed --artifact {plan-artifact} --format text
|
|
153
128
|
```
|
|
154
129
|
|
|
155
130
|
Handle the result as follows:
|
|
@@ -163,7 +138,7 @@ Keep the gate output in your reply as fresh evidence. Do not claim completion wi
|
|
|
163
138
|
|
|
164
139
|
> Execute this step only after the verification gate passes.
|
|
165
140
|
|
|
166
|
-
> **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
|
|
141
|
+
> **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).
|
|
167
142
|
|
|
168
143
|
Output format:
|
|
169
144
|
```
|