@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
|
@@ -1,135 +1,57 @@
|
|
|
1
1
|
# PR 摘要同步
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
PR 摘要的语义聚合由模型完成;canonical 产物选择、marker、当前 HEAD、分页评论查找和 create/update/no-op 由 typed core 负责。
|
|
4
4
|
|
|
5
|
-
##
|
|
6
|
-
|
|
7
|
-
当前调用方:
|
|
8
|
-
- `create-pr`:首次创建或更新 PR 摘要评论
|
|
9
|
-
- `commit`:在已有 PR 上按需刷新摘要评论
|
|
10
|
-
- `complete-manual-validation`:人工验证完成后原地更新摘要评论,并写入可被后续聚合复用的验证产物
|
|
11
|
-
|
|
12
|
-
如果后续 skill 也需要刷新 PR 摘要,先在对应 skill 的 reference 中引用本 rule,再补充该 skill 自身的触发条件和失败语义。
|
|
13
|
-
|
|
14
|
-
## 隐藏标记
|
|
15
|
-
|
|
16
|
-
统一使用以下隐藏标记:
|
|
5
|
+
## 聚合输入
|
|
17
6
|
|
|
18
|
-
```
|
|
19
|
-
|
|
7
|
+
```bash
|
|
8
|
+
agent-infra-internal platform-pr summary-context {task-id}
|
|
20
9
|
```
|
|
21
10
|
|
|
22
|
-
|
|
11
|
+
只使用返回的 canonical latest `plan*`、`review-plan*`、`code*`、`review-code*`、`manual-validation*`(包括 `manual-validation.md`)。模型据此生成 reviewer 摘要正文,至少包含:
|
|
23
12
|
|
|
24
|
-
|
|
13
|
+
- 变更摘要与实现范围
|
|
14
|
+
- 测试结果
|
|
15
|
+
- 审查历程与当前结论
|
|
16
|
+
- 人工校验三态:`### ⚠️ 需人工校验`、`### ✅ 人工验证已通过` 或 `### ✅ 无需人工校验`
|
|
17
|
+
|
|
18
|
+
保留人工校验项时,每条写明校验内容、定位和只能人工完成的原因。
|
|
25
19
|
|
|
26
|
-
|
|
27
|
-
- `plan.md` 或最新 `plan-r{N}.md`
|
|
28
|
-
- `code.md` 或最新 `code-r{N}.md`
|
|
29
|
-
- `review-code.md` 或最新 `review-code-r{N}.md`
|
|
30
|
-
- `manual-validation.md` 或最新 `manual-validation-r{N}.md`
|
|
31
|
-
|
|
32
|
-
聚合规则:
|
|
33
|
-
- 从 `plan*` 提取 2-4 条自包含的关键技术决策
|
|
34
|
-
- 用 `review-code*` 与 `code*` 构建审查历程表
|
|
35
|
-
- 从 `code*` 提取测试结果摘要
|
|
36
|
-
- 如果最新 `manual-validation*` 产物结论为通过,需人工校验段落优先渲染为 `### ✅ 人工验证已通过`,并摘要验证时间、验证范围和验证说明
|
|
37
|
-
- 某一类产物缺失时,按“无该阶段数据”处理并继续生成
|
|
38
|
-
- 需人工校验段落:只收进入 code 阶段后仍需人实际执行或判断、AI 无法自行关闭的校验点。
|
|
39
|
-
- **准入边界**:校验结论依赖真实环境、权限、账号、外部系统或人工判断,且无法通过 agent 重跑测试、补充检查或继续修复自行关闭。
|
|
40
|
-
- **来源**:`review-code*` 的「人工校验项」,以及 `code*` 中满足上述边界的校验点。
|
|
41
|
-
- **写法**:每条保留项至少写明「校验什么 + 定位(文件/改动/范围)+ 为什么只能由人校验」。
|
|
42
|
-
- **渲染优先级**:
|
|
43
|
-
1. 最新 `manual-validation*` 产物结论为通过 -> 标题 `### ✅ 人工验证已通过` + 验证摘要。
|
|
44
|
-
2. 没有通过产物且有保留项 -> 标题 `### ⚠️ 需人工校验` + 条目列表。
|
|
45
|
-
3. 没有通过产物且无保留项 -> 标题 `### ✅ 无需人工校验`,正文一行 `本次改动无需人工确认事项。`,不带条目列表。
|
|
46
|
-
|
|
47
|
-
## 评论体模板
|
|
48
|
-
|
|
49
|
-
评论正文使用以下唯一权威模板:
|
|
20
|
+
core 最终包装出的 canonical 评论结构为:
|
|
50
21
|
|
|
51
22
|
```markdown
|
|
52
23
|
<!-- sync-pr:{task-id}:summary -->
|
|
53
24
|
<!-- last-commit: {git-head-sha} -->
|
|
54
25
|
## 审查摘要
|
|
55
|
-
|
|
56
|
-
> **{agent}** · {task-id}
|
|
57
|
-
|
|
58
|
-
**更新时间**:{当前时间}
|
|
59
|
-
|
|
60
26
|
{manual-validation-section}
|
|
61
|
-
|
|
62
27
|
### 关键技术决策
|
|
63
|
-
|
|
64
|
-
- {decision-1}
|
|
65
|
-
- {decision-2}
|
|
66
|
-
|
|
67
28
|
### 审查历程
|
|
68
|
-
|
|
69
|
-
| 轮次 | 结论 | 问题统计 | 修复状态 |
|
|
70
|
-
|------|------|----------|----------|
|
|
71
|
-
| Round 1 | Pending | N/A | N/A |
|
|
72
|
-
|
|
73
29
|
### 测试结果
|
|
74
|
-
|
|
75
|
-
- {test-summary}
|
|
76
|
-
|
|
77
|
-
---
|
|
78
|
-
*由 {agent} 自动生成 · 内部追踪:{task-id}*
|
|
79
30
|
```
|
|
80
31
|
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
## 评论查找与更新
|
|
84
|
-
|
|
85
|
-
已有评论必须通过 Issues comments API 获取,而不是单独的 PR comments API。
|
|
32
|
+
## 发布
|
|
86
33
|
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
处理顺序:
|
|
90
|
-
1. 获取 PR 上现有 comments,查找以 `<!-- sync-pr:{task-id}:summary -->` 开头的评论 ID
|
|
91
|
-
2. 渲染评论正文时,始终写入当前 `git rev-parse HEAD` 的结果到 `<!-- last-commit: {git-head-sha} -->`
|
|
92
|
-
3. 不存在时,POST 创建一条新评论作为兜底
|
|
93
|
-
4. 已存在且正文完全相同时,跳过写入
|
|
94
|
-
5. 已存在且正文有变化时,PATCH 原地更新
|
|
95
|
-
|
|
96
|
-
更新已有评论时,使用如下模式:
|
|
34
|
+
把聚合后的纯正文写入 `{summary-body-file}`,不要自行添加 marker 或 commit SHA:
|
|
97
35
|
|
|
98
36
|
```bash
|
|
99
|
-
|
|
100
|
-
{
|
|
101
|
-
EOF
|
|
102
|
-
)"
|
|
37
|
+
agent-infra-internal platform-pr summary-sync {task-id} \
|
|
38
|
+
--agent {agent} --body-file {summary-body-file}
|
|
103
39
|
```
|
|
104
40
|
|
|
105
|
-
|
|
41
|
+
core 会包装唯一 `<!-- sync-pr:{task-id}:summary -->` 和当前 `<!-- last-commit: ... -->`,分页查找 PR 普通评论:不存在则创建、正文变化则原地更新、无差异则 no-op、重复 marker 则稳定失败。正文通过文件输入,调用方不得拼 shell/heredoc。
|
|
106
42
|
|
|
107
|
-
|
|
108
|
-
2. 禁止在 heredoc 中使用命令替换或变量展开。
|
|
109
|
-
3. 构造含 `<!-- -->` 的正文时禁止使用 `echo`,统一使用 `cat <<'EOF'` 或 `printf '%s\n'`。
|
|
43
|
+
## 结果回传
|
|
110
44
|
|
|
111
|
-
|
|
45
|
+
- `applied`:`summary created` 或 `summary updated`
|
|
46
|
+
- `no-op`:`summary skipped (no diff)`
|
|
47
|
+
- `failed|blocked`:`summary failed: {error.code}: {error.message}`
|
|
112
48
|
|
|
113
|
-
|
|
114
|
-
|--------|------|
|
|
115
|
-
| `task.md` 无法读取 | 跳过同步,交由后续 verification gate 报错 |
|
|
116
|
-
| 聚合输入缺失 | 记警告并按现有数据继续生成 |
|
|
117
|
-
| `gh api` GET/PATCH/POST 失败 | 输出警告并继续;是否阻塞当前 skill 由调用方决定 |
|
|
118
|
-
| `pr_number` 指向的 PR 不存在 | 输出 `PR #{pr-number} not found` 警告并继续 |
|
|
49
|
+
`create-pr` 中摘要失败不回滚已创建 PR;`commit` 中只记 warning,不回滚 commit;`complete-manual-validation` 在 canonical artifact 落盘后调用同一 intent 原地刷新。
|
|
119
50
|
|
|
120
|
-
|
|
51
|
+
关联任务的摘要失败由调用方登记结构化告警:
|
|
121
52
|
|
|
122
53
|
```bash
|
|
123
|
-
|
|
124
|
-
--
|
|
125
|
-
--
|
|
126
|
-
--action "修复 GitHub API / 网络问题后重跑触发 PR 摘要同步的 workflow 步骤"
|
|
54
|
+
agent-infra-internal task-warning {task-id} add --step {step} --severity WARNING \
|
|
55
|
+
--code COMMENT_SYNC_FAILED --target pr-summary --message "{reason}" \
|
|
56
|
+
--action "修复评论权限或平台连接后重跑当前步骤"
|
|
127
57
|
```
|
|
128
|
-
|
|
129
|
-
## 结果回传
|
|
130
|
-
|
|
131
|
-
统一回传以下结果之一,供调用方在 Activity Log 或用户输出中复用:
|
|
132
|
-
- `summary created`
|
|
133
|
-
- `summary updated`
|
|
134
|
-
- `summary skipped (no diff)`
|
|
135
|
-
- `summary failed: <reason>`
|
|
@@ -1,5 +1,45 @@
|
|
|
1
|
-
# PR
|
|
1
|
+
# PR 摘要同步
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
PR 摘要的语义聚合由模型完成;canonical 产物选择、marker、当前 HEAD、分页评论查找和 create/update/no-op 由 typed core 负责。
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
## 聚合输入
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
agent-infra-internal platform-pr summary-context {task-id}
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
只使用返回的 canonical latest `plan*`、`review-plan*`、`code*`、`review-code*`、`manual-validation*`。模型据此生成 reviewer 摘要正文,至少包含:
|
|
12
|
+
|
|
13
|
+
- 变更摘要与实现范围
|
|
14
|
+
- 测试结果
|
|
15
|
+
- 审查历程与当前结论
|
|
16
|
+
- 人工校验三态:`### ⚠️ 需人工校验`、`### ✅ 人工验证已通过` 或 `### ✅ 无需人工校验`
|
|
17
|
+
|
|
18
|
+
保留人工校验项时,每条写明校验内容、定位和只能人工完成的原因。
|
|
19
|
+
|
|
20
|
+
## 发布
|
|
21
|
+
|
|
22
|
+
把聚合后的纯正文写入 `{summary-body-file}`,不要自行添加 marker 或 commit SHA:
|
|
23
|
+
|
|
24
|
+
```bash
|
|
25
|
+
agent-infra-internal platform-pr summary-sync {task-id} \
|
|
26
|
+
--agent {agent} --body-file {summary-body-file}
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
core 会包装唯一 `<!-- sync-pr:{task-id}:summary -->` 和当前 `<!-- last-commit: ... -->`,分页查找 PR 普通评论:不存在则创建、正文变化则原地更新、无差异则 no-op、重复 marker 则稳定失败。正文通过文件输入,调用方不得拼 shell/heredoc。
|
|
30
|
+
|
|
31
|
+
## 结果回传
|
|
32
|
+
|
|
33
|
+
- `applied`:`summary created` 或 `summary updated`
|
|
34
|
+
- `no-op`:`summary skipped (no diff)`
|
|
35
|
+
- `failed|blocked`:`summary failed: {error.code}: {error.message}`
|
|
36
|
+
|
|
37
|
+
`create-pr` 中摘要失败不回滚已创建 PR;`commit` 中只记 warning,不回滚 commit;`complete-manual-validation` 在 canonical artifact 落盘后调用同一 intent 原地刷新。
|
|
38
|
+
|
|
39
|
+
关联任务的摘要失败由调用方登记结构化告警:
|
|
40
|
+
|
|
41
|
+
```bash
|
|
42
|
+
agent-infra-internal task-warning {task-id} add --step {step} --severity WARNING \
|
|
43
|
+
--code COMMENT_SYNC_FAILED --target pr-summary --message "{reason}" \
|
|
44
|
+
--action "修复评论权限或平台连接后重跑当前步骤"
|
|
45
|
+
```
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
# Release Commands
|
|
2
2
|
|
|
3
|
-
This code platform does not provide
|
|
3
|
+
This code platform does not provide a release-note adapter.
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
Use `agent-infra-internal platform-release-notes context` to receive a structured `PLATFORM_RELEASE_NOTES_UNSUPPORTED` no-op. Do not probe another platform client. Publishing remains a no-op until an adapter is provided.
|
|
@@ -1,52 +1,22 @@
|
|
|
1
1
|
# Release Platform Commands
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
Release-note platform operations use a typed internal intent. Callers consume structured JSON and do not interpret platform commands, raw fields, identity email rules, or authentication errors.
|
|
4
4
|
|
|
5
|
-
##
|
|
5
|
+
## Collect Release-note Context
|
|
6
6
|
|
|
7
7
|
```bash
|
|
8
|
-
|
|
9
|
-
|
|
8
|
+
agent-infra-internal platform-release-notes context \
|
|
9
|
+
--from-tag "v{prev-version}" --to-tag "v{version}" \
|
|
10
|
+
--branch "{branch}" --history-limit 3
|
|
10
11
|
```
|
|
11
12
|
|
|
12
|
-
|
|
13
|
+
The result contains release history, pull requests, closing Issues, and normalized contributor identities. Unsupported platforms return a stable `PLATFORM_RELEASE_NOTES_UNSUPPORTED` no-op.
|
|
13
14
|
|
|
14
|
-
|
|
15
|
-
gh pr list --state merged --base "{branch}" --json number,title,mergedAt,labels
|
|
16
|
-
```
|
|
17
|
-
|
|
18
|
-
When needed, read the linked Issue:
|
|
19
|
-
|
|
20
|
-
```bash
|
|
21
|
-
gh issue view {issue-number} --json number,title,labels,url
|
|
22
|
-
```
|
|
23
|
-
|
|
24
|
-
## Contributor Mapping Helpers
|
|
25
|
-
|
|
26
|
-
Merged PR queries used for release notes should include authors when contributors are needed:
|
|
27
|
-
|
|
28
|
-
```bash
|
|
29
|
-
gh pr list --state merged --base "{branch}" --json number,title,mergedAt,labels,author
|
|
30
|
-
```
|
|
31
|
-
|
|
32
|
-
Linked Issue queries used for reporter attribution should include the author:
|
|
33
|
-
|
|
34
|
-
```bash
|
|
35
|
-
gh issue view {issue-number} --json number,title,labels,url,author
|
|
36
|
-
```
|
|
37
|
-
|
|
38
|
-
Map GitHub no-reply emails with this rule: if `Name <email>` contains an email matching `(\d+\+)?(\S+?)@users\.noreply\.github\.com`, use the second capture group lowercased as the login. This covers both `{id}+{login}@users.noreply.github.com` and `{login}@users.noreply.github.com`.
|
|
39
|
-
|
|
40
|
-
## Publish the Release Notes
|
|
41
|
-
|
|
42
|
-
The GitHub Release for `v{version}` is created and published automatically by the release workflow so Homebrew bottles have a stable upload target. This command writes the curated notes onto that existing Release, falling back to creating it if it does not exist yet.
|
|
15
|
+
## Publish Release Notes
|
|
43
16
|
|
|
44
17
|
```bash
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
else
|
|
48
|
-
gh release create "v{version}" --title "v{version}" --notes-file "{notes-file}"
|
|
49
|
-
fi
|
|
18
|
+
agent-infra-internal platform-release-notes publish \
|
|
19
|
+
--tag "v{version}" --title "v{version}" --notes-file "{notes-file}"
|
|
50
20
|
```
|
|
51
21
|
|
|
52
|
-
|
|
22
|
+
The command updates an existing Release or creates a missing one. `--dry-run` only plans the operation. Exit codes `0/1/2` mean success, failure, and blocked.
|
|
@@ -1,52 +1,22 @@
|
|
|
1
1
|
# Release 平台命令
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
发布说明平台操作统一使用 typed internal intent。调用方只解释结构化 JSON,不解析平台命令、原始字段、身份邮箱规则或认证错误。
|
|
4
4
|
|
|
5
|
-
##
|
|
5
|
+
## 收集发布说明上下文
|
|
6
6
|
|
|
7
7
|
```bash
|
|
8
|
-
|
|
9
|
-
|
|
8
|
+
agent-infra-internal platform-release-notes context \
|
|
9
|
+
--from-tag "v{prev-version}" --to-tag "v{version}" \
|
|
10
|
+
--branch "{branch}" --history-limit 3
|
|
10
11
|
```
|
|
11
12
|
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
```bash
|
|
15
|
-
gh pr list --state merged --base "{branch}" --json number,title,mergedAt,labels
|
|
16
|
-
```
|
|
17
|
-
|
|
18
|
-
必要时读取关联 Issue:
|
|
19
|
-
|
|
20
|
-
```bash
|
|
21
|
-
gh issue view {issue-number} --json number,title,labels,url
|
|
22
|
-
```
|
|
23
|
-
|
|
24
|
-
## Contributor 映射辅助规则
|
|
25
|
-
|
|
26
|
-
release notes 需要 contributors 时,已合并 PR 查询应包含 author:
|
|
27
|
-
|
|
28
|
-
```bash
|
|
29
|
-
gh pr list --state merged --base "{branch}" --json number,title,mergedAt,labels,author
|
|
30
|
-
```
|
|
31
|
-
|
|
32
|
-
关联 Issue 用于 reporter 归因时,查询应包含 author:
|
|
33
|
-
|
|
34
|
-
```bash
|
|
35
|
-
gh issue view {issue-number} --json number,title,labels,url,author
|
|
36
|
-
```
|
|
37
|
-
|
|
38
|
-
GitHub no-reply 邮箱映射规则:如果 `Name <email>` 中的 email 匹配 `(\d+\+)?(\S+?)@users\.noreply\.github\.com`,使用第二个捕获组的小写形式作为 login。该规则同时覆盖 `{id}+{login}@users.noreply.github.com` 和 `{login}@users.noreply.github.com`。
|
|
13
|
+
结果包含历史发布、PR、关联 Issue 和规范化贡献者身份。不支持的平台返回稳定的 `PLATFORM_RELEASE_NOTES_UNSUPPORTED` no-op。
|
|
39
14
|
|
|
40
15
|
## 发布 Release notes
|
|
41
16
|
|
|
42
|
-
`v{version}` 的 GitHub Release 由 release 工作流自动创建并发布,为 Homebrew bottle 提供稳定的上传落点。本命令把精修后的 notes 写到这个已存在的 Release 上;若 Release 尚不存在则兜底创建。
|
|
43
|
-
|
|
44
17
|
```bash
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
else
|
|
48
|
-
gh release create "v{version}" --title "v{version}" --notes-file "{notes-file}"
|
|
49
|
-
fi
|
|
18
|
+
agent-infra-internal platform-release-notes publish \
|
|
19
|
+
--tag "v{version}" --title "v{version}" --notes-file "{notes-file}"
|
|
50
20
|
```
|
|
51
21
|
|
|
52
|
-
|
|
22
|
+
命令更新既有 Release,缺失时创建;`--dry-run` 只规划操作。退出码 `0/1/2` 分别表示成功、失败和阻塞。
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
# Release 命令
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
当前代码平台未提供发布说明 adapter。
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
调用 `agent-infra-internal platform-release-notes context` 会返回结构化的 `PLATFORM_RELEASE_NOTES_UNSUPPORTED` no-op,不得探测其他平台 client。在提供 adapter 前,发布操作同样保持 no-op。
|
|
@@ -62,26 +62,29 @@ The single source of truth for disagreement state is the fixed `## 审查分歧
|
|
|
62
62
|
- `stage` ∈ `{analysis, plan, code}` (plus the reserved value `post-review-commit`, used only for post-review exemption rows).
|
|
63
63
|
- `status` legal enum: `open` / `accepted` / `adjusted` / `refuted` / `cannot-judge` / `confirmed` / `needs-human-decision` / `closed` / `human-decided`.
|
|
64
64
|
- **Terminal set (gate passes)**: `{confirmed, closed, human-decided}`; everything else is blocking.
|
|
65
|
-
- **
|
|
65
|
+
- **Same-round fix-and-close**: only when the reviewer fixes a `minor` finding during the current review round may `finding-review` move that row directly from `open` to `closed`. This transition does not increment `round`, and `evidence` must point to the fix in the current review artifact; it does not apply to `blocker` or `major` findings.
|
|
66
|
+
- **Severity is independent from advancement**: `blocker` / `major` / `minor` express impact only. Every formal finding blocks approval until terminal. After all writes, review verdicts, event counts, and next steps must be derived from `task-ledger stage-status --stage {stage}`.
|
|
67
|
+
- **Non-blocking advisories**: only future optimizations that do not affect the current artifact's completeness, correctness, or acceptance. Advisories stay in a separate report section and never enter this ledger, finding counts, or verdict; manual-validation remains a separate category.
|
|
68
|
+
- **Write responsibility**: callers submit structured intents only; they do not scan ids, assemble table rows, or decide mechanical transitions. `review-*` uses `agent-infra-internal task-ledger {task-id} finding-upsert|finding-review ...`; `*-task` uses `finding-respond ...`; `ai decide` applies human rulings atomically. The core validates and commits each intent through one task write.
|
|
66
69
|
- **Backward compatible**: when task.md has no such section the gate treats it as no open disagreements and passes.
|
|
67
70
|
|
|
68
71
|
### Executor-raised human-ruling rows
|
|
69
72
|
|
|
70
|
-
When an executor judges an item to be a key design decision that needs human ruling, it must write
|
|
73
|
+
When an executor judges an item to be a key design decision that needs human ruling, it must write a self-contained detail block per `.agents/rules/human-decision-context.md` into the artifact's `## 人工裁决待办` (Pending Human Decisions) section with a heading like `### HD-N:<title> [needs-human-decision]`, and upsert the matching `HD-` row in task.md `## Review Disagreement Ledger`:
|
|
71
74
|
|
|
72
75
|
```markdown
|
|
73
76
|
| HD-1 | plan | - | decision | needs-human-decision | plan.md#HD-1 |
|
|
74
77
|
```
|
|
75
78
|
|
|
76
|
-
- `id`: the `HD-N` number is **globally unique**.
|
|
79
|
+
- `id`: the `HD-N` number is **globally unique**. First run `agent-infra-internal task-ledger {task-id} decision-next-id` and read `entityId`; after writing the stable artifact heading, run `decision-upsert --id {HD-N} --stage {stage} --artifact {artifact}`. The model must not scan or allocate ids.
|
|
77
80
|
- `stage` is the stage where the decision arose: `analysis` / `plan` / `code`.
|
|
78
81
|
- `round` is `-` because this is not a review-finding handshake round.
|
|
79
82
|
- `severity` is always `decision`.
|
|
80
83
|
- `status` starts as `needs-human-decision`, so the existing gate blocks it.
|
|
81
84
|
- `evidence` points to the stable anchor `<artifact>#HD-N` (e.g. `plan-r2.md#HD-1`), not a drift-prone line number.
|
|
82
|
-
-
|
|
85
|
+
- A human records the ruling with `ai decide <task-ref> <ordinal|ledger-id> <decision>`; the command flips the target row to `human-decided` and points `evidence` to an independent `HDR-N` ruling record.
|
|
83
86
|
|
|
84
|
-
>
|
|
87
|
+
> Viewing, deciding, and typed verification share the `lib/task/ledger.ts` domain semantics.
|
|
85
88
|
|
|
86
89
|
## post-review commit gate (code stage only)
|
|
87
90
|
|
|
@@ -89,7 +92,8 @@ When an executor judges an item to be a key design decision that needs human rul
|
|
|
89
92
|
- `commit` reads only the highest-round Approved `review-code` artifact. Before committing it requires `pre_head == R`, complete worktree tree `W == T`, and normalized staged tree `S == T`; any mismatch blocks before `git commit` and reports added, missing, and different paths for both comparisons.
|
|
90
93
|
- After a successful commit it sets `B=last_reviewed_commit=<new_head>`; B means only a reviewed snapshot anchored to a Git commit.
|
|
91
94
|
- The `complete-task` `post-review-commit` gate uses only B. When B is absent, malformed, or missing as a Git object, it reports `reviewed snapshot was not anchored` and never falls back to R.
|
|
92
|
-
- If new commits touch code / rule paths after B, the gate blocks and requires a fresh `review-code`.
|
|
95
|
+
- If new commits touch code / rule paths after B, the gate blocks and requires a fresh `review-code`. The only automatic exception is a bound merged GitHub PR whose platform snapshot proves B is the original PR head, whose merge commit is in local HEAD history, whose reviewed changes exactly match the normalized patch of a single-parent squash commit, and whose protected paths have no later commits. Missing platform or Git evidence fails closed.
|
|
96
|
+
- Required checks remain a pre-merge responsibility of branch protection / rulesets and the `review-code` / `watch-pr` routes. The post-review-commit gate still applies the strict / squash-equivalent relation above independently.
|
|
93
97
|
- **Exemption**: append a ledger row `| PRC-1 | post-review-commit | - | - | human-decided | <ruling note> |` recording that a human explicitly allowed those commits without re-review.
|
|
94
98
|
|
|
95
99
|
## Gate behavior cheat sheet
|
|
@@ -62,26 +62,29 @@
|
|
|
62
62
|
- `stage` ∈ `{analysis, plan, code}`(外加保留值 `post-review-commit`,仅用于 post-review 豁免行)。
|
|
63
63
|
- `status` 合法枚举:`open` / `accepted` / `adjusted` / `refuted` / `cannot-judge` / `confirmed` / `needs-human-decision` / `closed` / `human-decided`。
|
|
64
64
|
- **终态集合(gate 放行)**:`{confirmed, closed, human-decided}`;其余为阻塞态。
|
|
65
|
-
-
|
|
65
|
+
- **同轮 fix-and-close**:仅当检视方在当前审查轮当场修复 `minor` finding 时,可通过 `finding-review` 将该行从 `open` 直接置为 `closed`。此转换不增加 `round`,`evidence` 必须指向当前 review 产物中的修复证据;`blocker` / `major` 不适用。
|
|
66
|
+
- **severity 与推进解耦**:`blocker` / `major` / `minor` 只表示影响大小。任何正式 finding 只要尚未进入终态就阻止当前阶段通过;review 结论、事件计数与下一步必须在全部写入后通过 `task-ledger stage-status --stage {stage}` 从同一语义导出。
|
|
67
|
+
- **非阻塞 advisory**:仅限不影响当前产物完整性、正确性和验收的后续优化。advisory 只写入报告的独立段落,不进入本账本、不进入 finding 计数、不影响 verdict;manual-validation 仍是独立分类。
|
|
68
|
+
- **写入责任**:调用方只提交结构化意图,不扫描编号、不拼表格行、不自行判断机械状态迁移。`review-*` 用 `agent-infra-internal task-ledger {task-id} finding-upsert|finding-review ...`;`*-task` 用 `finding-respond ...`;人工裁决由 `ai decide` 原子完成。核心统一校验并通过一次任务写入提交。
|
|
66
69
|
- **向后兼容**:task.md 无此段时,gate 视为无未决分歧而放行。
|
|
67
70
|
|
|
68
71
|
### 执行方自提人工裁决行
|
|
69
72
|
|
|
70
|
-
|
|
73
|
+
当执行方判定某项为需人工裁定的关键设计决策时,必须按 `.agents/rules/human-decision-context.md` 把自足详情块写入产物的 `## 人工裁决待办` 段,标题形如 `### HD-N:<标题> [needs-human-decision]`,并在 task.md `## 审查分歧账本` upsert 对应 `HD-` 行:
|
|
71
74
|
|
|
72
75
|
```markdown
|
|
73
76
|
| HD-1 | plan | - | decision | needs-human-decision | plan.md#HD-1 |
|
|
74
77
|
```
|
|
75
78
|
|
|
76
|
-
- `id`:`HD-N`
|
|
79
|
+
- `id`:`HD-N` 编号**全局唯一**。先调用 `agent-infra-internal task-ledger {task-id} decision-next-id` 取得 `entityId`,产出稳定标题后调用 `decision-upsert --id {HD-N} --stage {stage} --artifact {artifact}`;不得由模型扫描或分配编号。
|
|
77
80
|
- `stage` 填该决策产生的阶段:`analysis` / `plan` / `code`。
|
|
78
81
|
- `round` 填 `-`,因为它不是 review finding 的握手轮次。
|
|
79
82
|
- `severity` 固定填 `decision`。
|
|
80
83
|
- `status` 初始填 `needs-human-decision`,因此会被现有 gate 阻塞。
|
|
81
84
|
- `evidence` 指向稳定锚点 `<artifact>#HD-N`(如 `plan-r2.md#HD-1`),不依赖易漂移的行号。
|
|
82
|
-
-
|
|
85
|
+
- 人工使用 `ai decide <task-ref> <序号|账本ID> <裁决内容>` 记录裁定;命令把目标行翻为 `human-decided`,并让 `evidence` 指向独立 `HDR-N` 裁定记录。
|
|
83
86
|
|
|
84
|
-
>
|
|
87
|
+
> 查看、裁决与 typed verification 共用 `lib/task/ledger.ts` 的领域语义。
|
|
85
88
|
|
|
86
89
|
## post-review commit 门禁(仅 code 阶段)
|
|
87
90
|
|
|
@@ -89,7 +92,8 @@
|
|
|
89
92
|
- `commit` 只读取最高轮 Approved `review-code` 产物;提交前比较 `pre_head == R`、完整工作区树 `W == T`、规范化暂存树 `S == T`,任一失配都在 `git commit` 前阻断并报告两组 added/missing/different 路径。
|
|
90
93
|
- 成功提交后令 `B=last_reviewed_commit=<new_head>`;`B` 只表示已经落到 Git commit 的审查锚点。
|
|
91
94
|
- `complete-task` 的 `post-review-commit` gate 只使用 B;B 缺失、畸形或对象不存在时报告 `reviewed snapshot was not anchored`,不得回退 R。
|
|
92
|
-
- 若 B 之后代码 / 规则路径出现新提交,gate 会拦截,要求重新 `review-code
|
|
95
|
+
- 若 B 之后代码 / 规则路径出现新提交,gate 会拦截,要求重新 `review-code`。唯一自动例外是绑定 GitHub PR 已合并,且平台快照证明 B 是原 PR head、merge commit 位于本地 HEAD 历史中、受审查变更与单父 squash commit 的规范化补丁完全一致,并且 merge 后受保护路径没有新提交;缺少任一平台或 Git 证据时 fail closed。
|
|
96
|
+
- required checks 由合并前的分支保护 / ruleset 与 `review-code` / `watch-pr` 路由负责。post-review-commit 仍独立执行上述严格 / squash 等价判定。
|
|
93
97
|
- **豁免**:在账本追加一行 `| PRC-1 | post-review-commit | - | - | human-decided | <裁定说明> |`,记录人工明确允许该批提交免复审。
|
|
94
98
|
|
|
95
99
|
## gate 行为速查
|
|
@@ -19,6 +19,13 @@ Map user intent to the corresponding workflow command:
|
|
|
19
19
|
- Before updating `agent_infra_version`, read `.agents/rules/version-stamp.md`
|
|
20
20
|
- Activity Log entries are append-only and must never overwrite history
|
|
21
21
|
|
|
22
|
+
## State Snapshot and Completion Verification Entrypoints
|
|
23
|
+
|
|
24
|
+
- Runtime skills that record git, task-directory, and task.md tail evidence must call `agent-infra-internal task-snapshot {task-id} --format text`; they must not resolve short ids, scan workspaces, or reconstruct the three observations themselves.
|
|
25
|
+
- Runtime skills that execute completion gates must call `agent-infra-internal task-verify {task-id} <verification-event> [--artifact <artifact>] --format text`; the typed verification catalog is the sole mapping from business event to skill, workspace, gate/check order, and artifact family.
|
|
26
|
+
- `task-verify` executes the typed catalog/check registry in-process; skills declare business events only.
|
|
27
|
+
- Both entrypoints are read-only. Verification exits remain `0=pass`, `1=fail`, and `2=blocked`; network or platform blocking must never be downgraded to success.
|
|
28
|
+
|
|
22
29
|
## Required State Updates by Command
|
|
23
30
|
|
|
24
31
|
- `create-task`: create `branch`, `workflow`, `status`, `created_at`, `updated_at`, `assigned_to`, `agent_infra_version`
|
|
@@ -40,9 +47,11 @@ Map user intent to the corresponding workflow command:
|
|
|
40
47
|
|
|
41
48
|
## Activity Log started / done dual-marker convention (single source of truth)
|
|
42
49
|
|
|
43
|
-
|
|
50
|
+
`analyze-task`, `review-analysis`, `plan-task`, `review-plan`, `code-task`, and `review-code` must declare business events through `agent-infra-internal task-event`. The event core generates `current_step`, `assigned_to`, `updated_at`, `agent_infra_version`, and the log text below. Other lifecycle skills not yet migrated continue to follow this textual protocol.
|
|
51
|
+
|
|
52
|
+
> This section is authoritative for skills, the renderer, and typed verification checks.
|
|
44
53
|
|
|
45
|
-
**Line grammar is unchanged
|
|
54
|
+
**Line grammar is unchanged** and shared by the log renderer and verification activity parser.
|
|
46
55
|
|
|
47
56
|
- **started line** (written when the step begins): the action suffixes the existing base with ` [started]`, note is `started`:
|
|
48
57
|
`- {time} — **{base} [started]** by {agent} — started`
|
|
@@ -19,6 +19,13 @@
|
|
|
19
19
|
- 更新 `agent_infra_version` 前,先读取 `.agents/rules/version-stamp.md`
|
|
20
20
|
- Activity Log 只能追加,不能覆盖历史记录
|
|
21
21
|
|
|
22
|
+
## 状态快照与完成验证入口
|
|
23
|
+
|
|
24
|
+
- 运行时 SKILL 需要记录 git、任务目录和 task.md tail 证据时,统一调用 `agent-infra-internal task-snapshot {task-id} --format text`;不得自行解析短号、扫描 workspace 或重新拼接三段状态命令。
|
|
25
|
+
- 运行时 SKILL 需要执行完成门禁时,统一调用 `agent-infra-internal task-verify {task-id} <verification-event> [--artifact <artifact>] --format text`;业务事件到 skill、workspace、gate/check 顺序和产物族的映射由 typed verification catalog 唯一维护。
|
|
26
|
+
- `task-verify` 在进程内执行 typed catalog/check registry;SKILL 只声明业务事件,不传 task-dir、skill 名或特殊 check 序列。
|
|
27
|
+
- 两个入口均保持只读;验证退出码固定为 `0=pass`、`1=fail`、`2=blocked`,网络或平台阻塞不得降格为成功。
|
|
28
|
+
|
|
22
29
|
## 常见命令的状态更新要求
|
|
23
30
|
|
|
24
31
|
- `create-task`:创建 `branch`、`workflow`、`status`、`created_at`、`updated_at`、`assigned_to`、`agent_infra_version`
|
|
@@ -40,12 +47,13 @@
|
|
|
40
47
|
|
|
41
48
|
## Activity Log started / done 双标记约定(单一事实源)
|
|
42
49
|
|
|
43
|
-
|
|
44
|
-
|
|
50
|
+
`analyze-task`、`review-analysis`、`plan-task`、`review-plan`、`code-task`、`review-code` 必须通过 `agent-infra-internal task-event` 声明业务事件;事件核心统一生成 `current_step`、`assigned_to`、`updated_at`、`agent_infra_version` 和下述日志文本。其余尚未迁移的生命周期 SKILL 继续遵循本节文本协议。
|
|
51
|
+
|
|
52
|
+
> 本节是 started/done 双标记的唯一权威定义。各 SKILL、渲染器与 typed verification check 都以本节为准。
|
|
45
53
|
|
|
46
54
|
**行语法不变**:started 与 done 都沿用既有条目语法
|
|
47
55
|
`- {YYYY-MM-DD HH:mm:ss±HH:MM} — **{action}** by {agent} — {note}`,因此解析正则
|
|
48
|
-
(`log.ts:ENTRY_RE` 与
|
|
56
|
+
(`log.ts:ENTRY_RE` 与 verification activity parser)无需改动。
|
|
49
57
|
|
|
50
58
|
- **started 行**(步骤开始时写):action 在既有基名末尾加后缀 ` [started]`,note 用 `started`:
|
|
51
59
|
`- {time} — **{基名} [started]** by {agent} — started`
|