@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
|
@@ -4,9 +4,9 @@ Read this file before presenting the final review result to the user.
|
|
|
4
4
|
|
|
5
5
|
## Select exactly one output scenario
|
|
6
6
|
|
|
7
|
-
|
|
8
|
-
1. If `
|
|
9
|
-
2. If `
|
|
7
|
+
Select from `stage-status` (**manual-validation and advisory counts do not participate**):
|
|
8
|
+
1. If `stageStatus.canAdvance=true`, use Scenario A
|
|
9
|
+
2. If `stageStatus.canAdvance=false` and there are no blockers, use Scenario B
|
|
10
10
|
3. If `Blocker > 0` and the issues can be handled by one focused revision, use Scenario C
|
|
11
11
|
4. If the technical plan needs major redesign, broad rewriting, or a restart, use Scenario D
|
|
12
12
|
|
|
@@ -16,7 +16,9 @@ Rules:
|
|
|
16
16
|
- If `Blocker > 0`, never use an approved template
|
|
17
17
|
- Never count manual-validation items as blocker / major / minor or use them to trigger Scenario B/C/D
|
|
18
18
|
- The selected scenario must include all TUI command formats
|
|
19
|
-
- The count line
|
|
19
|
+
- The count line shows 4 numbers. `Human-decision` (`{h}`) counts this stage's `needs-human-decision` rows; because those rows are unresolved, `{h} > 0` means `canAdvance=false`. Expand the "Pending human-decision pre-block" from `.agents/rules/next-step-output.md` and show revision and re-review paths only.
|
|
20
|
+
|
|
21
|
+
For Scenarios B/C/D, follow the revision commands with re-review commands: `/review-plan {task-ref}`, `/{{project}}:review-plan {task-ref}`, and `$review-plan {task-ref}`.
|
|
20
22
|
|
|
21
23
|
### Scenario A: Approved with no findings
|
|
22
24
|
|
|
@@ -34,23 +36,18 @@ Next step - write code:
|
|
|
34
36
|
Reminder: manual-validation items belong in the PR description manual verification checklist and should not trigger /plan-task.
|
|
35
37
|
```
|
|
36
38
|
|
|
37
|
-
### Scenario B:
|
|
39
|
+
### Scenario B: Changes requested (major / minor)
|
|
38
40
|
|
|
39
41
|
```text
|
|
40
|
-
Task {task-id} technical plan review completed. Verdict:
|
|
42
|
+
Task {task-id} technical plan review completed. Verdict: changes requested.
|
|
41
43
|
- Blockers: 0 | Major issues: {n} | Minor issues: {n} | Human-decision: {h}
|
|
42
44
|
- Review report: .agents/workspace/active/{task-id}/{review-artifact}
|
|
43
45
|
|
|
44
|
-
Next step - revise plan
|
|
46
|
+
Next step - revise technical plan:
|
|
45
47
|
- Claude Code / OpenCode: /plan-task {task-ref}
|
|
46
48
|
- Gemini CLI: /{{project}}:plan-task {task-ref}
|
|
47
49
|
- Codex CLI: $plan-task {task-ref}
|
|
48
50
|
|
|
49
|
-
Or proceed directly to coding:
|
|
50
|
-
- Claude Code / OpenCode: /code-task {task-ref}
|
|
51
|
-
- Gemini CLI: /{{project}}:code-task {task-ref}
|
|
52
|
-
- Codex CLI: $code-task {task-ref}
|
|
53
|
-
|
|
54
51
|
[When manual-validation > 0, append:]
|
|
55
52
|
Reminder: manual-validation items belong in the PR description manual verification checklist and should not trigger /plan-task.
|
|
56
53
|
```
|
|
@@ -4,9 +4,9 @@
|
|
|
4
4
|
|
|
5
5
|
## 选择唯一输出场景
|
|
6
6
|
|
|
7
|
-
|
|
8
|
-
1. 如果 `
|
|
9
|
-
2. 如果 `
|
|
7
|
+
按 `stage-status` 结果判断(**注意:manual-validation 和 advisory 数量不参与判断**):
|
|
8
|
+
1. 如果 `stageStatus.canAdvance=true`,使用场景 A
|
|
9
|
+
2. 如果 `stageStatus.canAdvance=false` 且无 blocker,使用场景 B
|
|
10
10
|
3. 如果 `Blocker > 0`,且问题可以通过一次聚焦修复解决,使用场景 C
|
|
11
11
|
4. 如果技术方案需要重大重构、大范围重写或整体重来,使用场景 D
|
|
12
12
|
|
|
@@ -16,7 +16,9 @@
|
|
|
16
16
|
- 只要 `Blocker > 0`,就绝对不能输出通过模板
|
|
17
17
|
- manual-validation 项绝对不能被计入 blocker / major / minor 计数,也不能用作触发场景 B/C/D 的依据
|
|
18
18
|
- 所选场景中必须包含所有 TUI 命令格式
|
|
19
|
-
- 计数行固定显示 4
|
|
19
|
+
- 计数行固定显示 4 个数字。`人工裁决`(`{h}`)是本阶段 `needs-human-decision` 行数;它属于未闭环账本状态,因此 `{h} > 0` 时 `canAdvance=false`,必须按 `.agents/rules/next-step-output.md` 的「人工裁决待办前置块」展开详情,并只输出修订与复审路径。
|
|
20
|
+
|
|
21
|
+
场景 B/C/D 在修订命令后继续列出复审命令:`/review-plan {task-ref}`、`/{{project}}:review-plan {task-ref}`、`$review-plan {task-ref}`。
|
|
20
22
|
|
|
21
23
|
### 场景 A:通过且无问题
|
|
22
24
|
|
|
@@ -34,23 +36,18 @@
|
|
|
34
36
|
提醒:manual-validation 项需在 PR description 的「待人工验证」清单中承接,不应触发 /plan-task。
|
|
35
37
|
```
|
|
36
38
|
|
|
37
|
-
### 场景 B
|
|
39
|
+
### 场景 B:需要修改(major / minor)
|
|
38
40
|
|
|
39
41
|
```text
|
|
40
|
-
任务 {task-id}
|
|
42
|
+
任务 {task-id} 技术方案审查完成。结论:需要修改。
|
|
41
43
|
- 阻塞项:0 | 主要问题:{n} | 次要问题:{n} | 人工裁决:{h}
|
|
42
44
|
- 审查报告:.agents/workspace/active/{task-id}/{review-artifact}
|
|
43
45
|
|
|
44
|
-
下一步 -
|
|
46
|
+
下一步 - 修订技术方案:
|
|
45
47
|
- Claude Code / OpenCode:/plan-task {task-ref}
|
|
46
48
|
- Gemini CLI:/{{project}}:plan-task {task-ref}
|
|
47
49
|
- Codex CLI:$plan-task {task-ref}
|
|
48
50
|
|
|
49
|
-
或直接进入编码:
|
|
50
|
-
- Claude Code / OpenCode:/code-task {task-ref}
|
|
51
|
-
- Gemini CLI:/{{project}}:code-task {task-ref}
|
|
52
|
-
- Codex CLI:$code-task {task-ref}
|
|
53
|
-
|
|
54
51
|
[当 manual-validation > 0 时,在最后附加一行:]
|
|
55
52
|
提醒:manual-validation 项需在 PR description 的「待人工验证」清单中承接,不应触发 /plan-task。
|
|
56
53
|
```
|
|
@@ -40,12 +40,18 @@ Use this template when writing `review-plan.md` or `review-plan-r{N}.md`.
|
|
|
40
40
|
**Description**: {details}
|
|
41
41
|
**Suggested Fix**: {fix suggestion}
|
|
42
42
|
|
|
43
|
-
### Minor Issues (
|
|
43
|
+
### Minor Issues (low impact, closure required)
|
|
44
44
|
|
|
45
45
|
#### 1. {Improvement point}
|
|
46
46
|
**File**: `{file-path}:{line-number}`
|
|
47
47
|
**Suggestion**: {improvement suggestion}
|
|
48
48
|
|
|
49
|
+
## Non-blocking Advisories
|
|
50
|
+
|
|
51
|
+
> Record only future optimizations that do not affect the current artifact's completeness, correctness, or acceptance. Advisories do not enter the disagreement ledger, finding counts, or verdict.
|
|
52
|
+
|
|
53
|
+
- {future optimization}
|
|
54
|
+
|
|
49
55
|
## Manual Validation Items
|
|
50
56
|
|
|
51
57
|
> Items the AI agent cannot close in the current execution environment; they do not participate in the next plan round. Maintainers carry them in the PR description as a "manual verification required" checklist.
|
|
@@ -61,7 +67,8 @@ Use this template when writing `review-plan.md` or `review-plan-r{N}.md`.
|
|
|
61
67
|
|
|
62
68
|
## Review Disagreement Ledger Writeback
|
|
63
69
|
|
|
64
|
-
>
|
|
70
|
+
> Record the structured intents to submit: use `task-ledger finding-upsert` for new findings and `finding-review` for prior responses. The core allocates `PL-N` and validates transitions; do not edit task.md table rows.
|
|
71
|
+
> Every finding escalated to `needs-human-decision` must include a self-contained detail block per `.agents/rules/human-decision-context.md`, with evidence pointing to that stable anchor.
|
|
65
72
|
|
|
66
73
|
## Evidence
|
|
67
74
|
|
|
@@ -40,12 +40,18 @@
|
|
|
40
40
|
**说明**:{details}
|
|
41
41
|
**修复建议**:{fix suggestion}
|
|
42
42
|
|
|
43
|
-
###
|
|
43
|
+
### 次要问题(低影响但需闭环)
|
|
44
44
|
|
|
45
45
|
#### 1. {改进点}
|
|
46
46
|
**文件**:`{file-path}:{line-number}`
|
|
47
47
|
**建议**:{improvement suggestion}
|
|
48
48
|
|
|
49
|
+
## 非阻塞建议
|
|
50
|
+
|
|
51
|
+
> 仅记录不影响当前产物完整性、正确性和验收的后续优化;不写入审查分歧账本,不计入 blocker / major / minor,也不影响结论。
|
|
52
|
+
|
|
53
|
+
- {future optimization}
|
|
54
|
+
|
|
49
55
|
## 人工校验项
|
|
50
56
|
|
|
51
57
|
> AI agent 在本执行环境无法闭环的项;不参与下一轮 refine。维护者在 PR description 中以「待人工验证」清单承接。
|
|
@@ -61,7 +67,8 @@
|
|
|
61
67
|
|
|
62
68
|
## 审查分歧账本回写
|
|
63
69
|
|
|
64
|
-
>
|
|
70
|
+
> 本段记录将提交的结构化意图:新 finding 用 `task-ledger finding-upsert`,上一轮响应复核用 `finding-review`;由核心分配 `PL-N` 并校验状态机,禁止手写 task.md 表格。
|
|
71
|
+
> 凡升级为 `needs-human-decision` 的 finding,必须按 `.agents/rules/human-decision-context.md` 在本报告中提供自足详情块,并让 evidence 指向该稳定锚点。
|
|
65
72
|
|
|
66
73
|
## 证据原文
|
|
67
74
|
|
|
@@ -14,6 +14,7 @@ Follow the `design-review` step in `.agents/workflows/feature-development.yaml`.
|
|
|
14
14
|
- [ ] Risks, migration, rollback, or compatibility handling are sufficient
|
|
15
15
|
- [ ] The plan avoids over-design and unrelated scope expansion
|
|
16
16
|
- [ ] The reviewer checked whether the executor missed any key design decision that should be upgraded to `[needs-human-decision]`
|
|
17
|
+
- [ ] Every `needs-human-decision` detail produced this round follows the self-contained structure in `.agents/rules/human-decision-context.md`
|
|
17
18
|
- [ ] Every blocker is backed by reproducible grep/sed/nl evidence; conclusions not directly verified are declared under Self-Doubt
|
|
18
19
|
|
|
19
20
|
**Common anti-examples**:
|
|
@@ -29,6 +30,12 @@ Follow the `design-review` step in `.agents/workflows/feature-development.yaml`.
|
|
|
29
30
|
3. **Actionable**: suggest a concrete fix
|
|
30
31
|
4. **Severity-based**: clearly distinguish blockers, major issues, and minor issues
|
|
31
32
|
|
|
33
|
+
## Three-category Decision Tree
|
|
34
|
+
|
|
35
|
+
1. A gap in constraints, risks, interface boundaries, validation strategy, or implementability is a formal finding. Assign blocker / major / minor by impact; severity does not control closure, so minor findings must also reach a terminal state.
|
|
36
|
+
2. When there is no known defect but validation requires a real environment, permission, or human operation, classify it as manual-validation.
|
|
37
|
+
3. Only a future optimization that does not affect the current plan's completeness, correctness, or acceptance is an advisory. Put it only in Non-blocking Advisories; do not add it to the ledger, finding counts, or verdict.
|
|
38
|
+
|
|
32
39
|
## Manual Validation Classification
|
|
33
40
|
|
|
34
41
|
Some findings cannot be closed by an AI agent in the current execution environment, for example:
|
|
@@ -14,6 +14,7 @@
|
|
|
14
14
|
- [ ] 风险、迁移、回滚或兼容性处理是否充分
|
|
15
15
|
- [ ] 方案是否避免过度设计和无关扩张
|
|
16
16
|
- [ ] 已复核执行方是否漏标应升级为 `[needs-human-decision]` 的关键设计决策
|
|
17
|
+
- [ ] 本轮所有 `needs-human-decision` 详情均符合 `.agents/rules/human-decision-context.md` 的自足结构
|
|
17
18
|
- [ ] 每条 blocker 都配可复现的 grep/sed/nl 证据,未直接验证的结论已在「自我质疑」声明
|
|
18
19
|
|
|
19
20
|
**常见反例**:
|
|
@@ -29,6 +30,12 @@
|
|
|
29
30
|
3. **可执行**:给出明确可落地的修复建议
|
|
30
31
|
4. **按严重程度分类**:明确区分 blocker、major 和 minor
|
|
31
32
|
|
|
33
|
+
## 三类审查项决策树
|
|
34
|
+
|
|
35
|
+
1. 若问题揭示当前方案缺少约束、风险、接口边界、验证策略或可实施性,登记为正式 finding,并按影响赋予 blocker / major / minor;severity 只表示影响大小,minor 也必须闭环。
|
|
36
|
+
2. 若没有已知缺陷,但只能依赖真实环境、权限或人工操作完成验证,归为 manual-validation。
|
|
37
|
+
3. 仅当建议属于未来优化且不影响当前方案的完整性、正确性和验收时,归为 advisory。advisory 只写入「非阻塞建议」,不进入账本、问题计数或 verdict。
|
|
38
|
+
|
|
32
39
|
## 人工校验项分类
|
|
33
40
|
|
|
34
41
|
某些发现项是 AI agent 在本执行环境**无法闭环**的,例如:
|
|
@@ -41,7 +41,7 @@ The script outputs JSON to stdout. Parse and record the report.
|
|
|
41
41
|
|
|
42
42
|
**Key fields**:
|
|
43
43
|
- `error`: error message (if non-empty, stop and report)
|
|
44
|
-
- `templateVersion`:
|
|
44
|
+
- `templateVersion`: exact `v`-prefixed SemVer of the template source package (including prerelease or build metadata)
|
|
45
45
|
- `templateRoot`: absolute path to the template file root directory
|
|
46
46
|
- `templateSources.conflicts`: external template source conflicts; explicitly
|
|
47
47
|
list these in the report so users know which files were ignored because a
|
|
@@ -55,7 +55,6 @@ The script outputs JSON to stdout. Parse and record the report.
|
|
|
55
55
|
- `merged.pending`: list of merged files for AI to process
|
|
56
56
|
- Each item has `target` (project-relative path) and `template` (template-root-relative path)
|
|
57
57
|
- `registryAdded`: newly added file registry entries
|
|
58
|
-
- `selfUpdate`: whether this is a self-update scenario
|
|
59
58
|
- `configUpdated`: whether `.agents/.airc.json` was updated
|
|
60
59
|
|
|
61
60
|
If `managed.conflicts` is non-empty, output every conflict and stop immediately before Phase B. Do not overwrite a conflicting file or advance its `files.managedBaselines` entry.
|
|
@@ -35,7 +35,7 @@ node .agents/skills/update-agent-infra/scripts/sync-templates.js
|
|
|
35
35
|
|
|
36
36
|
**关键字段**:
|
|
37
37
|
- `error`:错误信息(如非空则停止并报告)
|
|
38
|
-
- `templateVersion
|
|
38
|
+
- `templateVersion`:模板源包的精确 `v` 前缀 SemVer(可包含 prerelease 或 build metadata)
|
|
39
39
|
- `templateRoot`:模板文件根目录绝对路径
|
|
40
40
|
- `templateSources.conflicts`:外部模板源冲突列表;报告中必须显式展示,说明哪些文件因内置模板或后续外部源获胜而被忽略
|
|
41
41
|
- `managed.written` / `managed.created`:已更新/新建的 managed 文件
|
|
@@ -47,7 +47,6 @@ node .agents/skills/update-agent-infra/scripts/sync-templates.js
|
|
|
47
47
|
- `merged.pending`:需要 AI 处理的 merged 文件列表
|
|
48
48
|
- 每项包含 `target`(项目中的目标路径)和 `template`(模板根目录下的相对路径)
|
|
49
49
|
- `registryAdded`:新增的文件注册条目
|
|
50
|
-
- `selfUpdate`:是否为自更新模式
|
|
51
50
|
- `configUpdated`:`.agents/.airc.json` 是否已更新
|
|
52
51
|
|
|
53
52
|
如果 `managed.conflicts` 非空,输出全部冲突并立即停止,不进入阶段 B;禁止覆盖冲突文件或推进其 `files.managedBaselines`。
|
|
@@ -13,7 +13,6 @@
|
|
|
13
13
|
* Output: JSON report to stdout.
|
|
14
14
|
*/
|
|
15
15
|
|
|
16
|
-
import childProcess from 'node:child_process';
|
|
17
16
|
import crypto from 'node:crypto';
|
|
18
17
|
import fs from 'node:fs';
|
|
19
18
|
import os from 'node:os';
|
|
@@ -69,6 +68,7 @@ const DEFAULTS = {
|
|
|
69
68
|
".claude/commands/",
|
|
70
69
|
".codex/hooks.json",
|
|
71
70
|
".gemini/commands/",
|
|
71
|
+
".git-hooks/check-large-files.cjs",
|
|
72
72
|
".git-hooks/check-version-format.sh",
|
|
73
73
|
".github/scripts/",
|
|
74
74
|
".github/workflows/metadata-sync.yml",
|
|
@@ -106,7 +106,7 @@ const AGENT_INFRA_SANDBOX_TOOL = 'agent-infra';
|
|
|
106
106
|
const LEGACY_DEFAULT_SANDBOX_TOOLS = ['claude-code', 'codex', 'gemini-cli', 'opencode'];
|
|
107
107
|
const DEFAULT_SANDBOX_TOOLS = [AGENT_INFRA_SANDBOX_TOOL, ...LEGACY_DEFAULT_SANDBOX_TOOLS];
|
|
108
108
|
// Add a new identifier here only after shipping matching .{platform}. template variants.
|
|
109
|
-
const KNOWN_PLATFORMS = new Set(['github']);
|
|
109
|
+
const KNOWN_PLATFORMS = new Set(['github', 'none']);
|
|
110
110
|
const KNOWN_LANGUAGES = new Set(['en', 'zh-CN']);
|
|
111
111
|
|
|
112
112
|
// Single source of truth for built-in TUI ids and owned path prefixes.
|
|
@@ -870,14 +870,6 @@ function isBinary(fp) {
|
|
|
870
870
|
return false;
|
|
871
871
|
}
|
|
872
872
|
|
|
873
|
-
function gitUrl(dir) {
|
|
874
|
-
try {
|
|
875
|
-
return childProcess.execSync('git remote get-url origin', {
|
|
876
|
-
cwd: dir, encoding: 'utf8', stdio: ['pipe', 'pipe', 'pipe']
|
|
877
|
-
}).trim();
|
|
878
|
-
} catch { return null; }
|
|
879
|
-
}
|
|
880
|
-
|
|
881
873
|
function langSelect(rels, lang, allSet, project) {
|
|
882
874
|
const sel = new Map();
|
|
883
875
|
|
|
@@ -1020,8 +1012,7 @@ function syncTemplates(projectRoot, templateRootOverride) {
|
|
|
1020
1012
|
},
|
|
1021
1013
|
ejected: { created: [], skipped: [] },
|
|
1022
1014
|
merged: { pending: [] },
|
|
1023
|
-
configUpdated: false
|
|
1024
|
-
selfUpdate: false
|
|
1015
|
+
configUpdated: false
|
|
1025
1016
|
};
|
|
1026
1017
|
const customTUIs = validateCustomTUIs(projectRoot, customTUIsConfig, report);
|
|
1027
1018
|
const customTUICommandTargets = buildCustomTUICommandTargets(
|
|
@@ -1365,9 +1356,6 @@ function syncTemplates(projectRoot, templateRootOverride) {
|
|
|
1365
1356
|
([target, template]) => ({ target, template })
|
|
1366
1357
|
);
|
|
1367
1358
|
|
|
1368
|
-
const projUrl = gitUrl(projectRoot);
|
|
1369
|
-
report.selfUpdate = !!(projUrl && /fitlab-ai\/agent-infra/.test(projUrl));
|
|
1370
|
-
|
|
1371
1359
|
const hasChanges = (
|
|
1372
1360
|
report.managed.written.length +
|
|
1373
1361
|
report.managed.created.length +
|
|
@@ -12,16 +12,16 @@ After `create-pr`, continuously watch the PR's required CI checks: when everythi
|
|
|
12
12
|
## Behavior Boundaries / Key Rules
|
|
13
13
|
|
|
14
14
|
- Only watch + self-heal the current PR's required checks; make no changes unrelated to the failing check.
|
|
15
|
-
- Self-heal
|
|
15
|
+
- Self-heal publishes through Git workflow intents, but **affected tests must pass first**; the attempt cap and code-layer authorization remain unchanged.
|
|
16
16
|
- The help exit is "produce-then-stop": end this round, output the blocker explanation, and wait for the user to trigger the next step — **never** ask mid-flow.
|
|
17
|
-
- Bare numbers /
|
|
17
|
+
- Bare numbers / `NN` / `TASK-id` arguments are always resolved as task short ids (see `.agents/rules/task-short-id.md`); a PR number is passed only via `--pr <number>` / a PR URL / omission (current branch), never reusing the bare-number syntax.
|
|
18
18
|
- After running this skill (task-anchored path), you must update task.md.
|
|
19
19
|
|
|
20
20
|
Version stamp rule: before creating or updating `task.md` frontmatter, read `.agents/rules/version-stamp.md` and write or refresh `agent_infra_version`.
|
|
21
21
|
|
|
22
|
-
## Task
|
|
22
|
+
## Task Context Resolution
|
|
23
23
|
|
|
24
|
-
>
|
|
24
|
+
> Keep `--pr <number>` and PR URLs on the existing PR-anchored path. Otherwise, the task path may omit the task ref and also accepts a legacy positional ref or `--task <ref>` / `-t <ref>`. Separate task scope from the full arguments, then call `agent-infra-internal task-context resolve {task-scope}` and bind `{task-id}` to the returned full `taskId`. A PR anchor and task scope are mutually exclusive.
|
|
25
25
|
|
|
26
26
|
## Step Start: Write the started Marker
|
|
27
27
|
|
|
@@ -39,22 +39,22 @@ After prerequisites pass and before this round's first artifact action, append a
|
|
|
39
39
|
|
|
40
40
|
Resolve the target PR number `{pr#}` and an optional `{task-id}` via these deterministic branches:
|
|
41
41
|
|
|
42
|
-
- Scenario A (argument omitted):
|
|
43
|
-
- Scenario B (
|
|
42
|
+
- Scenario A (argument omitted): reverse-lookup the active task from the current branch, then read its `pr_number`.
|
|
43
|
+
- Scenario B (omitted task ref, positional task ref, or `--task/-t`, **task-anchored primary path**): resolve the full `{task-id}` via "Task Context Resolution" and read `.agents/workspace/active/{task-id}/task.md` for `pr_number` as `{pr#}`; if `pr_number` is empty, follow "Error Handling" to prompt running `create-pr` first, then stop.
|
|
44
44
|
- Scenario C (`--pr <number>` or a PR URL): use that PR number directly as `{pr#}`; then determine `{task-id}` via "Reverse-lookup task".
|
|
45
|
-
- Reverse-lookup task (scenarios A / C):
|
|
45
|
+
- Reverse-lookup task (scenarios A / C): use task context/query capabilities to find the unique active task bound to `{pr#}`. If none exists, stop and request binding first; the typed checks intent does not create a second taskless state machine.
|
|
46
46
|
|
|
47
47
|
### 2. Watch Required Checks
|
|
48
48
|
|
|
49
49
|
Before running this step, read `reference/monitor-and-heal.md` and `.agents/rules/pr-checks-commands.md`.
|
|
50
50
|
|
|
51
|
-
|
|
51
|
+
Initialize the in-memory list `repairCommits=[]` for this run. Run `agent-infra-internal platform-checks watch {task-id} --interval-seconds 30 --deadline-seconds 1800`, then route its structured `checks.state` to the all-green, failure, or pending path.
|
|
52
52
|
|
|
53
53
|
### 3. Failure Self-Heal Loop
|
|
54
54
|
|
|
55
55
|
Before running this step, read the "Self-Heal Decision Tree" of `reference/monitor-and-heal.md` and "Resolve a Failing Run id and Pull Logs" of `.agents/rules/pr-checks-commands.md`.
|
|
56
56
|
|
|
57
|
-
For a
|
|
57
|
+
For a locatable code-layer failure, make the minimum fix and run relevant tests. Then call `git-workflow commit` and `git-workflow push`; append only a remotely verified SHA to `repairCommits`.
|
|
58
58
|
|
|
59
59
|
### 4. Help Exit (Produce-Then-Stop)
|
|
60
60
|
|
|
@@ -77,7 +77,7 @@ Update `.agents/workspace/active/{task-id}/task.md`:
|
|
|
77
77
|
- **Do not change** `pr_status` (keep `created`) or `current_step`
|
|
78
78
|
- **Append** to `## Activity Log` (do not overwrite prior entries; `{N}` = number of existing Watch PR entries for this task + 1):
|
|
79
79
|
```
|
|
80
|
-
- {YYYY-MM-DD HH:mm:ss±HH:MM} — **Watch PR (Round {N})** by {agent} — {green: all required checks green / blocked: blocked: {summary}}
|
|
80
|
+
- {YYYY-MM-DD HH:mm:ss±HH:MM} — **Watch PR (Round {N})** by {agent} — {green: all required checks green, repair commits: {k} [{SHA summary}] / blocked: blocked: {summary}}
|
|
81
81
|
```
|
|
82
82
|
|
|
83
83
|
### 6. Verification Gate
|
|
@@ -87,7 +87,7 @@ Update `.agents/workspace/active/{task-id}/task.md`:
|
|
|
87
87
|
Run the verification gate:
|
|
88
88
|
|
|
89
89
|
```bash
|
|
90
|
-
|
|
90
|
+
agent-infra-internal task-verify {task-id} watch-pr.completed --format text
|
|
91
91
|
```
|
|
92
92
|
|
|
93
93
|
Handle the result:
|
|
@@ -101,10 +101,12 @@ Keep the gate output in your reply as the verification evidence. Without current
|
|
|
101
101
|
|
|
102
102
|
> On the task-anchored path, execute this step only after the gate passes.
|
|
103
103
|
|
|
104
|
-
> **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
|
|
104
|
+
> **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).
|
|
105
105
|
|
|
106
106
|
Output per scenario:
|
|
107
|
-
- "All green" + task-anchored: state that all required checks passed
|
|
107
|
+
- "All green" + task-anchored: state that all required checks passed, then render exactly one exit based on whether this run created repair commits (`{task-ref}` becomes the short id):
|
|
108
|
+
|
|
109
|
+
`repairCommits.length == 0`:
|
|
108
110
|
|
|
109
111
|
```
|
|
110
112
|
Next step - Complete and archive the task:
|
|
@@ -113,7 +115,15 @@ Output per scenario:
|
|
|
113
115
|
- Codex CLI: $complete-task {task-ref}
|
|
114
116
|
```
|
|
115
117
|
|
|
116
|
-
|
|
118
|
+
`repairCommits.length > 0`:
|
|
119
|
+
|
|
120
|
+
```
|
|
121
|
+
Next step - Re-run code review:
|
|
122
|
+
- Claude Code / OpenCode: /review-code {task-ref}
|
|
123
|
+
- Gemini CLI: /{{project}}:review-code {task-ref}
|
|
124
|
+
- Codex CLI: $review-code {task-ref}
|
|
125
|
+
```
|
|
126
|
+
|
|
117
127
|
- "Blocked": output only the step 4 blocker explanation; do not recommend a next-step command.
|
|
118
128
|
|
|
119
129
|
## Completion Checklist
|
|
@@ -12,16 +12,16 @@ description: >
|
|
|
12
12
|
## 行为边界 / 关键规则
|
|
13
13
|
|
|
14
14
|
- 仅监控 + 自愈当前 PR 的 required checks;不做与失败 check 无关的改动。
|
|
15
|
-
-
|
|
15
|
+
- 自愈通过 Git workflow intent 发布修复,但**发布前必须本地跑通相关测试**;修复上限与代码层分类授权不变。
|
|
16
16
|
- 求助出口是「产出后停止」语义:停止本轮、输出阻塞说明、等待用户主动触发,**不**中途提问。
|
|
17
|
-
- 裸数字 /
|
|
17
|
+
- 裸数字 / `NN` / `TASK-id` 入参一律按任务短号解析(见 `.agents/rules/task-short-id.md`);PR 号只走 `--pr <number>` / PR URL / 省略(当前分支),不复用裸数字语法。
|
|
18
18
|
- 执行本技能(任务锚定路径)后,必须更新 task.md。
|
|
19
19
|
|
|
20
20
|
版本戳规则:创建或更新 `task.md` frontmatter 时,先读取 `.agents/rules/version-stamp.md`,并写入或刷新 `agent_infra_version`。
|
|
21
21
|
|
|
22
|
-
##
|
|
22
|
+
## 任务上下文解析
|
|
23
23
|
|
|
24
|
-
>
|
|
24
|
+
> 入口允许省略 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`。解析失败时透传非零退出码,不自行扫描任务。
|
|
25
25
|
|
|
26
26
|
## 步骤开始:写入 started 标记
|
|
27
27
|
|
|
@@ -39,22 +39,22 @@ description: >
|
|
|
39
39
|
|
|
40
40
|
按以下确定性分支解析出目标 PR 号 `{pr#}` 与可选 `{task-id}`:
|
|
41
41
|
|
|
42
|
-
- 场景 A
|
|
43
|
-
- 场景 B
|
|
42
|
+
- 场景 A(省略入参):从当前分支反查 active task;定位后读取其 `pr_number`。
|
|
43
|
+
- 场景 B(省略 task ref、旧位置 task ref 或 `--task/-t`,**任务锚定主路径**):按「任务上下文解析」取得完整 `{task-id}`。读 `.agents/workspace/active/{task-id}/task.md` 取 `pr_number` 作为 `{pr#}`;`pr_number` 为空时按「错误处理」提示先 `create-pr`,停止。
|
|
44
44
|
- 场景 C(`--pr <number>` 或 PR URL):直接取该 PR 号为 `{pr#}`;随后按「反查任务」确定 `{task-id}`。
|
|
45
|
-
- 反查任务(场景 A / C
|
|
45
|
+
- 反查任务(场景 A / C):通过任务上下文/任务查询取得与 `{pr#}` 唯一绑定的 active task。未命中时停止并提示先绑定 PR;typed checks intent 不建立第二套无任务状态机。
|
|
46
46
|
|
|
47
47
|
### 2. 监控 required checks
|
|
48
48
|
|
|
49
49
|
执行此步骤前,先读取 `reference/monitor-and-heal.md` 与 `.agents/rules/pr-checks-commands.md`。
|
|
50
50
|
|
|
51
|
-
|
|
51
|
+
进入本轮时初始化内存列表 `repairCommits=[]`。调用 `agent-infra-internal platform-checks watch {task-id} --interval-seconds 30 --deadline-seconds 1800`,按结构化 `checks.state` 分为「全绿」/「失败」/「挂起」,分别进入步骤 7、步骤 3 或步骤 4。
|
|
52
52
|
|
|
53
53
|
### 3. 失败自愈循环
|
|
54
54
|
|
|
55
55
|
执行此步骤前,先读取 `reference/monitor-and-heal.md` 的「自愈决策树」与 `.agents/rules/pr-checks-commands.md` 的「解析失败 run id 并拉日志」。
|
|
56
56
|
|
|
57
|
-
|
|
57
|
+
只对可定位代码层失败最小修复并测试;通过后依次调用 `git-workflow commit` 与 `git-workflow push`,仅记录远端复核成功的 SHA。达硬上限或 run 不可定位时转步骤 4。
|
|
58
58
|
|
|
59
59
|
### 4. 求助出口(产出后停止)
|
|
60
60
|
|
|
@@ -77,7 +77,7 @@ date "+%Y-%m-%d %H:%M:%S%z" | sed 's/\([+-][0-9][0-9]\)\([0-9][0-9]\)$/\1:\2/'
|
|
|
77
77
|
- **不改** `pr_status`(保持 `created`)与 `current_step`
|
|
78
78
|
- **追加**到 `## 活动日志`(不要覆盖之前的记录;`{N}` = 本任务已有 Watch PR 条目数 + 1):
|
|
79
79
|
```
|
|
80
|
-
- {YYYY-MM-DD HH:mm:ss±HH:MM} — **Watch PR (Round {N})** by {agent} — {全绿:all required checks green / 阻塞:blocked: {简述}}
|
|
80
|
+
- {YYYY-MM-DD HH:mm:ss±HH:MM} — **Watch PR (Round {N})** by {agent} — {全绿:all required checks green, repair commits: {k} [{sha 摘要}] / 阻塞:blocked: {简述}}
|
|
81
81
|
```
|
|
82
82
|
|
|
83
83
|
### 6. 完成校验
|
|
@@ -87,7 +87,7 @@ date "+%Y-%m-%d %H:%M:%S%z" | sed 's/\([+-][0-9][0-9]\)\([0-9][0-9]\)$/\1:\2/'
|
|
|
87
87
|
运行完成校验:
|
|
88
88
|
|
|
89
89
|
```bash
|
|
90
|
-
|
|
90
|
+
agent-infra-internal task-verify {task-id} watch-pr.completed --format text
|
|
91
91
|
```
|
|
92
92
|
|
|
93
93
|
处理结果:
|
|
@@ -101,10 +101,12 @@ node .agents/scripts/validate-artifact.js gate watch-pr .agents/workspace/active
|
|
|
101
101
|
|
|
102
102
|
> 任务锚定路径仅在校验通过后执行本步骤。
|
|
103
103
|
|
|
104
|
-
> **重要**:以下「下一步」中列出的所有 TUI 命令格式必须完整输出,不要只展示当前 AI 代理对应的格式。如果 `.agents/.airc.json` 中配置了自定义 TUI(`customTUIs`),读取每个工具的 `name` 和 `invoke`,按同样格式补充对应命令行(`${skillName}` 替换为技能名,`${projectName}` 替换为项目名)。 渲染最终输出前,先读取 `.agents/rules/next-step-output.md` 并落实其两类规则:(1) 「下一步」命令把 `{task-ref}` 渲染为短号
|
|
104
|
+
> **重要**:以下「下一步」中列出的所有 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` 收尾行(成功、错误、早退等任何面向用户输出都适用,不限于校验通过的成功态)。
|
|
105
105
|
|
|
106
106
|
按场景输出:
|
|
107
|
-
- 「全绿」+ 任务锚定:说明所有 required checks
|
|
107
|
+
- 「全绿」+ 任务锚定:说明所有 required checks 已通过,并只按本轮是否产生修复 commit 渲染一个出口(`{task-ref}` 替换为短号):
|
|
108
|
+
|
|
109
|
+
`repairCommits.length == 0`:
|
|
108
110
|
|
|
109
111
|
```
|
|
110
112
|
下一步 - 完成并归档任务:
|
|
@@ -113,7 +115,15 @@ node .agents/scripts/validate-artifact.js gate watch-pr .agents/workspace/active
|
|
|
113
115
|
- Codex CLI:$complete-task {task-ref}
|
|
114
116
|
```
|
|
115
117
|
|
|
116
|
-
|
|
118
|
+
`repairCommits.length > 0`:
|
|
119
|
+
|
|
120
|
+
```
|
|
121
|
+
下一步 - 重新代码审查:
|
|
122
|
+
- Claude Code / OpenCode:/review-code {task-ref}
|
|
123
|
+
- Gemini CLI:/{{project}}:review-code {task-ref}
|
|
124
|
+
- Codex CLI:$review-code {task-ref}
|
|
125
|
+
```
|
|
126
|
+
|
|
117
127
|
- 「阻塞」:仅输出步骤 4 的阻塞说明,不推荐下一步命令。
|
|
118
128
|
|
|
119
129
|
## 完成检查清单
|
|
@@ -127,7 +137,7 @@ node .agents/scripts/validate-artifact.js gate watch-pr .agents/workspace/active
|
|
|
127
137
|
|
|
128
138
|
## 停止
|
|
129
139
|
|
|
130
|
-
|
|
140
|
+
完成检查清单后立即停止。全绿出口等待用户运行所选的 `complete-task` 或 `review-code`;阻塞出口等待用户裁定。
|
|
131
141
|
|
|
132
142
|
## 注意事项
|
|
133
143
|
|
|
@@ -30,8 +30,8 @@ For each failing check, decide "self-heal" vs "ask for help" in this order:
|
|
|
30
30
|
- Before fixing, run `git status -s` to record the working tree and ensure only changes related to this failure are included.
|
|
31
31
|
- Locate and make a minimal fix per the logs (touch only code / tests / config related to that failure).
|
|
32
32
|
- Run the relevant tests: prefer the local command for the failing job; otherwise read the project `test` skill and select its declared core or full validation command. If neither command is known, ask for help. **Do not commit or push before tests pass.**
|
|
33
|
-
- After tests pass,
|
|
34
|
-
-
|
|
33
|
+
- After tests pass, call `git-workflow commit` and `git-workflow push`, then verify the remote SHA.
|
|
34
|
+
- Append the fix commit SHA to this run's `repairCommits`, increment the fix count, and return to SKILL step 2. When checks turn green, an empty list routes to `complete-task`; a non-empty list routes to `review-code`.
|
|
35
35
|
- Never make unrelated "drive-by" optimizations; never loosen / skip the failing assertion to "make it green".
|
|
36
36
|
|
|
37
37
|
## Help Report Template
|
|
@@ -30,8 +30,8 @@ unknown: help
|
|
|
30
30
|
- 自愈前先 `git status -s` 记录当前工作树,确保后续只纳入与本次失败相关的改动。
|
|
31
31
|
- 在本地按日志定位并最小化修复(只动与该失败相关的代码 / 测试 / 配置)。
|
|
32
32
|
- 运行对应测试:优先失败 job 对应的本地命令;否则读取项目 `test` skill,选择其中声明的 core 或 full 验证命令。两者均未知时进入求助出口。**测试通过前不得提交或推送。**
|
|
33
|
-
-
|
|
34
|
-
-
|
|
33
|
+
- 测试通过后发布修复:把相关路径、message 与 expected HEAD 写入 intent JSON,调用 `git-workflow commit`,再调用 `git-workflow push` 并复核远端 SHA。
|
|
34
|
+
- 将本次修复的 commit SHA 追加到当前运行的 `repairCommits`,修复计数 +1,回到 SKILL 步骤 2 重新监控;全绿时列表为空走 `complete-task`,非空走 `review-code`。
|
|
35
35
|
- 绝不执行与失败无关的「顺手优化」;不放宽 / 跳过失败的断言来「修绿」。
|
|
36
36
|
|
|
37
37
|
## 求助报告模板
|
|
@@ -22,6 +22,24 @@ pr_status: pending # PR status: pending (default) | created (PR crea
|
|
|
22
22
|
|
|
23
23
|
[Describe the task clearly and concisely.]
|
|
24
24
|
|
|
25
|
+
## Task Input
|
|
26
|
+
|
|
27
|
+
<!-- Populated by create-task from information already present in the current request and necessary prior discussion. Leave missing categories empty; do not infer them. -->
|
|
28
|
+
|
|
29
|
+
### Sources
|
|
30
|
+
|
|
31
|
+
### Confirmed Facts and Evidence
|
|
32
|
+
|
|
33
|
+
### Constraints
|
|
34
|
+
|
|
35
|
+
### Confirmed Decisions
|
|
36
|
+
|
|
37
|
+
### Candidate and Rejected Options
|
|
38
|
+
|
|
39
|
+
### Acceptance Criteria
|
|
40
|
+
|
|
41
|
+
### Open Questions
|
|
42
|
+
|
|
25
43
|
## Context
|
|
26
44
|
|
|
27
45
|
- **Related Issue**: #XXX
|
|
@@ -62,7 +80,12 @@ pr_status: pending # PR status: pending (default) | created (PR crea
|
|
|
62
80
|
|
|
63
81
|
## Human Rulings
|
|
64
82
|
|
|
65
|
-
<!--
|
|
83
|
+
<!-- Use ai decide <task-ref> <ordinal|ledger-id> [--needs-implementation true|false] <decision> for needs-human-decision rulings; code-stage rulings must explicitly declare whether implementation is required. -->
|
|
84
|
+
|
|
85
|
+
## Implementation Inputs
|
|
86
|
+
|
|
87
|
+
| id | ledger_id | decision_evidence | stage | needs_implementation | decided_at | status | consumed_by |
|
|
88
|
+
|----|-----------|-------------------|-------|----------------------|------------|--------|-------------|
|
|
66
89
|
|
|
67
90
|
## Workflow Warnings
|
|
68
91
|
|