@fitlab-ai/agent-infra 0.8.5 → 0.9.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bin/cli.ts +2 -2
- package/dist/bin/cli.js +2 -2
- package/dist/bin/internal-cli.js +98 -0
- package/dist/lib/decide.js +81 -90
- package/dist/lib/defaults.json +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/release-workflow.js +217 -0
- package/dist/lib/internal/task-artifact.js +67 -0
- package/dist/lib/internal/task-context.js +43 -0
- package/dist/lib/internal/task-event.js +70 -0
- package/dist/lib/internal/task-ledger.js +114 -0
- package/dist/lib/internal/task-lifecycle.js +58 -0
- package/dist/lib/internal/task-short-id.js +83 -0
- package/dist/lib/internal/task-snapshot.js +47 -0
- package/dist/lib/internal/task-verify.js +50 -0
- package/dist/lib/internal/task-warning.js +74 -0
- package/dist/lib/platform/adapters.js +14 -0
- package/dist/lib/platform/context.js +146 -0
- package/dist/lib/platform/github-client.js +124 -0
- package/dist/lib/platform/issue-comments.js +409 -0
- package/dist/lib/platform/issue-metadata.js +183 -0
- package/dist/lib/platform/issues.js +617 -0
- package/dist/lib/platform/metadata-labels.js +28 -0
- package/dist/lib/platform/pr-checks.js +216 -0
- package/dist/lib/platform/pr-summary.js +88 -0
- package/dist/lib/platform/pull-request-metadata.js +38 -0
- package/dist/lib/platform/pull-requests.js +338 -0
- package/dist/lib/platform/releases.js +82 -0
- package/dist/lib/platform/types.js +22 -0
- package/dist/lib/platform/verification-required.js +78 -0
- package/dist/lib/platform/verification-sync.js +1014 -0
- package/dist/lib/platform/verification.js +6 -0
- package/dist/lib/release/channels.js +31 -0
- package/dist/lib/release/workflow.js +32 -0
- package/dist/lib/render.js +3 -2
- package/dist/lib/run/index.js +24 -7
- package/dist/lib/sandbox/capture.js +25 -3
- package/dist/lib/sandbox/commands/create.js +36 -22
- package/dist/lib/sandbox/commands/enter.js +34 -11
- package/dist/lib/sandbox/commands/list-running.js +10 -8
- package/dist/lib/sandbox/commands/show.js +2 -2
- package/dist/lib/sandbox/commands/start.js +53 -15
- package/dist/lib/sandbox/index.js +6 -6
- package/dist/lib/sandbox/mounts.js +36 -0
- package/dist/lib/sandbox/recovery.js +562 -0
- 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 +23 -14
- package/dist/lib/task/commands/log.js +27 -70
- package/dist/lib/task/commands/show.js +20 -7
- package/dist/lib/task/commands/status.js +18 -8
- package/dist/lib/task/decision-intents.js +154 -0
- package/dist/lib/task/decision-items.js +53 -0
- package/dist/lib/task/events.js +318 -0
- package/dist/lib/task/frontmatter.js +159 -1
- package/dist/lib/task/implementation-inputs.js +117 -0
- package/dist/lib/task/index.js +12 -9
- package/dist/lib/task/issue-form.js +19 -6
- package/dist/lib/task/ledger-intents.js +185 -0
- package/dist/lib/task/ledger.js +65 -35
- package/dist/lib/task/lifecycle.js +484 -0
- package/dist/lib/task/resolve-ref.js +152 -32
- package/dist/lib/task/review-artifacts.js +101 -0
- package/dist/lib/task/review-fingerprint.js +46 -0
- package/dist/lib/task/sections.js +358 -4
- package/dist/lib/task/short-id.js +292 -7
- package/dist/lib/task/snapshot.js +95 -0
- package/dist/lib/task/verification-checks.js +8 -0
- package/dist/lib/task/verification-config.js +14 -0
- package/dist/lib/task/verification-engine.js +906 -0
- package/dist/lib/task/verification-review.js +3 -0
- package/dist/lib/task/verification-types.js +2 -0
- package/dist/lib/task/verification.js +113 -0
- package/dist/lib/task/workflow-warning-intents.js +131 -0
- package/dist/lib/task/workflow-warnings.js +10 -78
- package/dist/lib/task/write.js +241 -0
- package/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/release-workflow.ts +186 -0
- package/lib/internal/task-artifact.ts +47 -0
- package/lib/internal/task-context.ts +35 -0
- package/lib/internal/task-event.ts +51 -0
- package/lib/internal/task-ledger.ts +86 -0
- package/lib/internal/task-lifecycle.ts +41 -0
- package/lib/internal/task-short-id.ts +55 -0
- package/lib/internal/task-snapshot.ts +32 -0
- package/lib/internal/task-verify.ts +33 -0
- package/lib/internal/task-warning.ts +50 -0
- package/lib/platform/adapters.ts +30 -0
- package/lib/platform/context.ts +164 -0
- package/lib/platform/github-client.ts +146 -0
- package/lib/platform/issue-comments.ts +479 -0
- package/lib/platform/issue-metadata.ts +250 -0
- package/lib/platform/issues.ts +691 -0
- package/lib/platform/metadata-labels.ts +33 -0
- package/lib/platform/pr-checks.ts +246 -0
- package/lib/platform/pr-summary.ts +90 -0
- package/lib/platform/pull-request-metadata.ts +69 -0
- package/lib/platform/pull-requests.ts +380 -0
- package/lib/platform/releases.ts +71 -0
- package/lib/platform/types.ts +74 -0
- package/lib/platform/verification-required.ts +83 -0
- package/{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/capture.ts +29 -3
- package/lib/sandbox/commands/create.ts +43 -25
- package/lib/sandbox/commands/enter.ts +38 -11
- package/lib/sandbox/commands/list-running.ts +10 -8
- package/lib/sandbox/commands/show.ts +2 -2
- package/lib/sandbox/commands/start.ts +50 -16
- package/lib/sandbox/index.ts +6 -6
- package/lib/sandbox/mounts.ts +55 -0
- package/lib/sandbox/recovery.ts +828 -0
- 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 +16 -16
- package/lib/task/commands/log.ts +17 -70
- package/lib/task/commands/show.ts +14 -6
- package/lib/task/commands/status.ts +17 -7
- package/lib/task/decision-intents.ts +163 -0
- package/lib/task/decision-items.ts +64 -0
- package/lib/task/events.ts +320 -0
- package/lib/task/frontmatter.ts +202 -2
- package/lib/task/implementation-inputs.ts +137 -0
- package/lib/task/index.ts +12 -9
- package/lib/task/issue-form.ts +20 -6
- package/lib/task/ledger-intents.ts +201 -0
- package/lib/task/ledger.ts +77 -31
- package/lib/task/lifecycle.ts +458 -0
- package/lib/task/resolve-ref.ts +197 -36
- package/{templates/.agents/scripts/lib/review-artifacts.js → lib/task/review-artifacts.ts} +11 -12
- package/{templates/.agents/scripts/lib/post-review-commit.js → lib/task/review-fingerprint.ts} +17 -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} +199 -406
- package/lib/task/verification-review.ts +9 -0
- package/lib/task/verification-types.ts +29 -0
- package/lib/task/verification.ts +156 -0
- package/lib/task/workflow-warning-intents.ts +142 -0
- package/lib/task/workflow-warnings.ts +10 -78
- package/lib/task/write.ts +468 -0
- package/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/review-handshake.en.md +8 -5
- package/templates/.agents/rules/review-handshake.zh-CN.md +8 -5
- package/templates/.agents/rules/task-management.en.md +11 -2
- package/templates/.agents/rules/task-management.zh-CN.md +11 -3
- package/templates/.agents/rules/task-short-id.en.md +25 -29
- package/templates/.agents/rules/task-short-id.zh-CN.md +20 -23
- package/templates/.agents/scripts/lib/agent-infra-package.js +1 -9
- package/templates/.agents/scripts/task-short-id.js +71 -533
- package/templates/.agents/skills/analyze-task/SKILL.en.md +22 -55
- package/templates/.agents/skills/analyze-task/SKILL.zh-CN.md +26 -59
- package/templates/.agents/skills/analyze-task/config/verify.en.json +1 -3
- package/templates/.agents/skills/analyze-task/config/verify.zh-CN.json +1 -3
- package/templates/.agents/skills/block-task/SKILL.en.md +21 -47
- package/templates/.agents/skills/block-task/SKILL.zh-CN.md +23 -47
- package/templates/.agents/skills/block-task/config/verify.json +1 -2
- package/templates/.agents/skills/cancel-task/SKILL.en.md +16 -45
- package/templates/.agents/skills/cancel-task/SKILL.zh-CN.md +16 -45
- package/templates/.agents/skills/cancel-task/config/verify.json +1 -2
- package/templates/.agents/skills/check-task/SKILL.en.md +6 -3
- package/templates/.agents/skills/check-task/SKILL.zh-CN.md +6 -3
- package/templates/.agents/skills/close-codescan/SKILL.en.md +6 -24
- package/templates/.agents/skills/close-codescan/SKILL.zh-CN.md +6 -24
- package/templates/.agents/skills/close-dependabot/SKILL.en.md +6 -24
- package/templates/.agents/skills/close-dependabot/SKILL.zh-CN.md +6 -24
- package/templates/.agents/skills/code-task/SKILL.en.md +22 -35
- package/templates/.agents/skills/code-task/SKILL.zh-CN.md +28 -44
- package/templates/.agents/skills/code-task/config/verify.en.json +3 -3
- package/templates/.agents/skills/code-task/config/verify.zh-CN.json +3 -3
- package/templates/.agents/skills/code-task/reference/dual-mode.en.md +13 -9
- package/templates/.agents/skills/code-task/reference/dual-mode.zh-CN.md +13 -9
- package/templates/.agents/skills/code-task/reference/fix-mode.en.md +1 -1
- package/templates/.agents/skills/code-task/reference/fix-mode.zh-CN.md +1 -1
- package/templates/.agents/skills/code-task/reference/report-template.en.md +11 -1
- package/templates/.agents/skills/code-task/reference/report-template.zh-CN.md +11 -1
- package/templates/.agents/skills/commit/SKILL.en.md +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 +11 -7
- package/templates/.agents/skills/complete-task/config/verify.zh-CN.json +11 -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-task/SKILL.en.md +12 -13
- package/templates/.agents/skills/create-task/SKILL.zh-CN.md +12 -13
- package/templates/.agents/skills/create-task/config/verify.json +1 -2
- package/templates/.agents/skills/import-codescan/SKILL.en.md +2 -2
- package/templates/.agents/skills/import-codescan/SKILL.zh-CN.md +2 -2
- package/templates/.agents/skills/import-codescan/config/verify.json +1 -2
- package/templates/.agents/skills/import-dependabot/SKILL.en.md +2 -2
- package/templates/.agents/skills/import-dependabot/SKILL.zh-CN.md +2 -2
- package/templates/.agents/skills/import-dependabot/config/verify.json +1 -2
- package/templates/.agents/skills/import-issue/SKILL.en.md +9 -13
- package/templates/.agents/skills/import-issue/SKILL.zh-CN.md +10 -14
- package/templates/.agents/skills/import-issue/config/verify.json +1 -2
- package/templates/.agents/skills/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 +6 -1
- package/templates/.agents/templates/task.zh-CN.md +6 -1
- package/templates/.claude/commands/analyze-task.en.md +1 -1
- package/templates/.claude/commands/analyze-task.zh-CN.md +1 -1
- package/templates/.claude/commands/block-task.en.md +1 -1
- package/templates/.claude/commands/block-task.zh-CN.md +1 -1
- package/templates/.claude/commands/cancel-task.en.md +1 -1
- package/templates/.claude/commands/cancel-task.zh-CN.md +1 -1
- package/templates/.claude/commands/check-task.en.md +1 -1
- package/templates/.claude/commands/check-task.zh-CN.md +1 -1
- package/templates/.claude/commands/code-task.en.md +1 -1
- package/templates/.claude/commands/code-task.zh-CN.md +1 -1
- package/templates/.claude/commands/commit.en.md +1 -0
- package/templates/.claude/commands/commit.zh-CN.md +1 -0
- package/templates/.claude/commands/complete-manual-validation.en.md +1 -1
- package/templates/.claude/commands/complete-manual-validation.zh-CN.md +1 -1
- package/templates/.claude/commands/complete-task.en.md +1 -1
- package/templates/.claude/commands/complete-task.zh-CN.md +1 -1
- package/templates/.claude/commands/create-pr.en.md +1 -1
- package/templates/.claude/commands/create-pr.zh-CN.md +1 -1
- package/templates/.claude/commands/plan-task.en.md +1 -1
- package/templates/.claude/commands/plan-task.zh-CN.md +1 -1
- package/templates/.claude/commands/review-analysis.en.md +1 -1
- package/templates/.claude/commands/review-analysis.zh-CN.md +1 -1
- package/templates/.claude/commands/review-code.en.md +1 -1
- package/templates/.claude/commands/review-code.zh-CN.md +1 -1
- package/templates/.claude/commands/review-plan.en.md +1 -1
- package/templates/.claude/commands/review-plan.zh-CN.md +1 -1
- package/templates/.claude/commands/watch-pr.en.md +1 -1
- package/templates/.claude/commands/watch-pr.zh-CN.md +1 -1
- package/templates/.gemini/commands/_project_/analyze-task.en.toml +2 -0
- package/templates/.gemini/commands/_project_/analyze-task.zh-CN.toml +2 -0
- package/templates/.gemini/commands/_project_/block-task.en.toml +2 -0
- package/templates/.gemini/commands/_project_/block-task.zh-CN.toml +2 -0
- package/templates/.gemini/commands/_project_/cancel-task.en.toml +2 -0
- package/templates/.gemini/commands/_project_/cancel-task.zh-CN.toml +2 -0
- package/templates/.gemini/commands/_project_/check-task.en.toml +2 -0
- package/templates/.gemini/commands/_project_/check-task.zh-CN.toml +2 -0
- package/templates/.gemini/commands/_project_/code-task.en.toml +2 -0
- package/templates/.gemini/commands/_project_/code-task.zh-CN.toml +2 -0
- package/templates/.gemini/commands/_project_/commit.en.toml +4 -0
- package/templates/.gemini/commands/_project_/commit.zh-CN.toml +4 -0
- package/templates/.gemini/commands/_project_/complete-manual-validation.en.toml +2 -0
- package/templates/.gemini/commands/_project_/complete-manual-validation.zh-CN.toml +2 -0
- package/templates/.gemini/commands/_project_/complete-task.en.toml +2 -0
- package/templates/.gemini/commands/_project_/complete-task.zh-CN.toml +2 -0
- package/templates/.gemini/commands/_project_/create-pr.en.toml +2 -0
- package/templates/.gemini/commands/_project_/create-pr.zh-CN.toml +2 -0
- package/templates/.gemini/commands/_project_/plan-task.en.toml +2 -0
- package/templates/.gemini/commands/_project_/plan-task.zh-CN.toml +2 -0
- package/templates/.gemini/commands/_project_/review-analysis.en.toml +2 -0
- package/templates/.gemini/commands/_project_/review-analysis.zh-CN.toml +2 -0
- package/templates/.gemini/commands/_project_/review-code.en.toml +2 -0
- package/templates/.gemini/commands/_project_/review-code.zh-CN.toml +2 -0
- package/templates/.gemini/commands/_project_/review-plan.en.toml +2 -0
- package/templates/.gemini/commands/_project_/review-plan.zh-CN.toml +2 -0
- package/templates/.gemini/commands/_project_/watch-pr.en.toml +2 -0
- package/templates/.gemini/commands/_project_/watch-pr.zh-CN.toml +2 -0
- package/templates/.git-hooks/check-large-files.cjs +92 -0
- package/templates/.git-hooks/check-version-format.sh +5 -1
- package/templates/.git-hooks/pre-commit +1 -0
- package/templates/.opencode/commands/analyze-task.en.md +1 -1
- package/templates/.opencode/commands/analyze-task.zh-CN.md +1 -1
- package/templates/.opencode/commands/check-task.en.md +1 -1
- package/templates/.opencode/commands/check-task.zh-CN.md +1 -1
- package/templates/.opencode/commands/code-task.en.md +1 -1
- package/templates/.opencode/commands/code-task.zh-CN.md +1 -1
- package/templates/.opencode/commands/commit.en.md +2 -0
- package/templates/.opencode/commands/commit.zh-CN.md +2 -0
- package/templates/.opencode/commands/complete-task.en.md +1 -1
- package/templates/.opencode/commands/complete-task.zh-CN.md +1 -1
- package/templates/.opencode/commands/plan-task.en.md +1 -1
- package/templates/.opencode/commands/plan-task.zh-CN.md +1 -1
- package/templates/.opencode/commands/review-analysis.en.md +1 -1
- package/templates/.opencode/commands/review-analysis.zh-CN.md +1 -1
- package/templates/.opencode/commands/review-code.en.md +1 -1
- package/templates/.opencode/commands/review-code.zh-CN.md +1 -1
- package/templates/.opencode/commands/review-plan.en.md +1 -1
- package/templates/.opencode/commands/review-plan.zh-CN.md +1 -1
- package/templates/.agents/scripts/platform-adapters/platform-sync.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
|
@@ -22,8 +22,8 @@
|
|
|
22
22
|
- **审查时间**:{timestamp}
|
|
23
23
|
- **审查范围**:{file-count and major modules}
|
|
24
24
|
- **审查基线提交**:{本轮一次性捕获的 R 原文}(仅表示 diff base;详见 `.agents/rules/review-handshake.md`)
|
|
25
|
-
- **审查差异指纹**:{
|
|
26
|
-
- **审查快照树**:{
|
|
25
|
+
- **审查差异指纹**:{git-workflow snapshot 输出的 fingerprint 字段}
|
|
26
|
+
- **审查快照树**:{git-workflow snapshot 输出的 tree 字段}
|
|
27
27
|
- **总体结论**:{通过 / 需要修改 / 拒绝}(恰取一个;禁止写组合短语,否则 verify gate 失败)
|
|
28
28
|
- **发现(AI 可处理)**:0 阻塞项,0 主要,0 次要 / **人工校验**:0
|
|
29
29
|
|
|
@@ -43,12 +43,18 @@
|
|
|
43
43
|
**说明**:{details}
|
|
44
44
|
**修复建议**:{fix suggestion}
|
|
45
45
|
|
|
46
|
-
###
|
|
46
|
+
### 次要问题(低影响但需闭环)
|
|
47
47
|
|
|
48
48
|
#### 1. {改进点}
|
|
49
49
|
**文件**:`{file-path}:{line-number}`
|
|
50
50
|
**建议**:{improvement suggestion}
|
|
51
51
|
|
|
52
|
+
## 非阻塞建议
|
|
53
|
+
|
|
54
|
+
> 仅记录不影响当前产物完整性、正确性和验收的后续优化;不写入审查分歧账本,不计入 blocker / major / minor,也不影响结论。
|
|
55
|
+
|
|
56
|
+
- {future optimization}
|
|
57
|
+
|
|
52
58
|
## 人工校验项
|
|
53
59
|
|
|
54
60
|
> AI agent 在本执行环境无法闭环的项;不参与下一轮 refine。维护者在 PR description 中以「待人工验证」清单承接。
|
|
@@ -64,7 +70,8 @@
|
|
|
64
70
|
|
|
65
71
|
## 审查分歧账本回写
|
|
66
72
|
|
|
67
|
-
>
|
|
73
|
+
> 本段记录将提交的结构化意图:新 finding 用 `task-ledger finding-upsert`,上一轮响应复核用 `finding-review`;由核心分配 `CD-N` 并校验状态机,禁止手写 task.md 表格。
|
|
74
|
+
> 凡升级为 `needs-human-decision` 的 finding,必须按 `.agents/rules/human-decision-context.md` 在本报告中提供自足详情块,并让 evidence 指向该稳定锚点。
|
|
68
75
|
|
|
69
76
|
## 证据原文
|
|
70
77
|
|
|
@@ -15,6 +15,7 @@ Follow the `code-review` step in `.agents/workflows/feature-development.yaml`.
|
|
|
15
15
|
- [ ] Comments and documentation
|
|
16
16
|
- [ ] Consistency with the approved technical plan
|
|
17
17
|
- [ ] The reviewer checked whether the executor missed any key design decision that should be upgraded to `[needs-human-decision]`
|
|
18
|
+
- [ ] Every `needs-human-decision` detail produced this round follows the self-contained structure in `.agents/rules/human-decision-context.md`
|
|
18
19
|
- [ ] Every blocker is backed by reproducible grep/sed/nl evidence; conclusions not directly verified are declared under Self-Doubt
|
|
19
20
|
|
|
20
21
|
**Common anti-examples**:
|
|
@@ -30,6 +31,12 @@ Follow the `code-review` step in `.agents/workflows/feature-development.yaml`.
|
|
|
30
31
|
3. **Actionable**: suggest a concrete fix
|
|
31
32
|
4. **Severity-based**: clearly distinguish blockers, major issues, and minor issues
|
|
32
33
|
|
|
34
|
+
## Three-category Decision Tree
|
|
35
|
+
|
|
36
|
+
1. A correctness, completeness, security, performance, test, or acceptance gap in the current implementation is a formal finding. Assign blocker / major / minor by impact; severity does not control closure, so minor findings must also reach a terminal state.
|
|
37
|
+
2. When there is no known defect but validation requires a real environment, permission, or human operation, classify it as manual-validation.
|
|
38
|
+
3. Only a future optimization that does not affect the current implementation'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.
|
|
39
|
+
|
|
33
40
|
## Manual Validation Classification
|
|
34
41
|
|
|
35
42
|
Some findings cannot be closed by an AI agent in the current execution environment, for example:
|
|
@@ -15,6 +15,7 @@
|
|
|
15
15
|
- [ ] 代码注释和文档
|
|
16
16
|
- [ ] 与已批准技术方案的一致性
|
|
17
17
|
- [ ] 已复核执行方是否漏标应升级为 `[needs-human-decision]` 的关键设计决策
|
|
18
|
+
- [ ] 本轮所有 `needs-human-decision` 详情均符合 `.agents/rules/human-decision-context.md` 的自足结构
|
|
18
19
|
- [ ] 每条 blocker 都配可复现的 grep/sed/nl 证据,未直接验证的结论已在「自我质疑」声明
|
|
19
20
|
|
|
20
21
|
**常见反例**:
|
|
@@ -30,6 +31,12 @@
|
|
|
30
31
|
3. **可执行**:给出明确可落地的修复建议
|
|
31
32
|
4. **按严重程度分类**:明确区分 blocker、major 和 minor
|
|
32
33
|
|
|
34
|
+
## 三类审查项决策树
|
|
35
|
+
|
|
36
|
+
1. 若问题揭示当前实现或测试存在正确性、完整性、安全性、性能或验收缺口,登记为正式 finding,并按影响赋予 blocker / major / minor;severity 只表示影响大小,minor 也必须闭环。
|
|
37
|
+
2. 若没有已知缺陷,但只能依赖真实环境、权限或人工操作完成验证,归为 manual-validation。
|
|
38
|
+
3. 仅当建议属于未来优化且不影响当前实现的完整性、正确性和验收时,归为 advisory。advisory 只写入「非阻塞建议」,不进入账本、问题计数或 verdict。
|
|
39
|
+
|
|
33
40
|
## 人工校验项分类
|
|
34
41
|
|
|
35
42
|
某些发现项是 AI agent 在本执行环境**无法闭环**的,例如:
|
|
@@ -3,6 +3,7 @@ name: review-plan
|
|
|
3
3
|
description: >
|
|
4
4
|
Review the technical plan.
|
|
5
5
|
Use when a technical plan needs review before implementation.
|
|
6
|
+
Only invoke this skill automatically when the conversation includes a resolvable task reference.
|
|
6
7
|
---
|
|
7
8
|
|
|
8
9
|
# Technical Plan Review
|
|
@@ -23,24 +24,18 @@ After loading workflow / skill / rules instructions, and before any task-state j
|
|
|
23
24
|
Run these commands and paste the raw output into both the user-facing reply and this round's `## State Check` section:
|
|
24
25
|
|
|
25
26
|
```bash
|
|
26
|
-
|
|
27
|
-
ls -la .agents/workspace/active/{task-id}/
|
|
28
|
-
tail .agents/workspace/active/{task-id}/task.md
|
|
27
|
+
agent-infra-internal task-snapshot {task-id} --format text
|
|
29
28
|
```
|
|
30
29
|
|
|
31
|
-
## Task
|
|
30
|
+
## Task Context Resolution
|
|
32
31
|
|
|
33
|
-
>
|
|
32
|
+
> The entry point may omit the task ref and also accepts a legacy positional ref or `--task <ref>` / `-t <ref>`. Separate task scope from the full arguments while preserving every business operand, then call `agent-infra-internal task-context resolve {task-scope}` where `{task-scope}` is empty, one positional ref, or one task flag. Read only `taskId` from the structured result and bind `{task-id}` to that full `TASK-YYYYMMDD-HHMMSS` for downstream commands. Pass through resolution failures without scanning tasks locally.
|
|
34
33
|
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
After prerequisites pass and before this round's first artifact action, append a started marker to task.md `## Activity Log` (same base action as this round's done entry plus a ` [started]` suffix, note `started`):
|
|
34
|
+
> Resolve the task reference, then confirm that the task is in a state or directory supported by this skill and that `task.md` exists; if it cannot be located, handle it as a missing task and stop.
|
|
38
35
|
|
|
39
|
-
|
|
40
|
-
- {YYYY-MM-DD HH:mm:ss±HH:MM} — **Review Plan (Round {N}) [started]** by {agent} — started
|
|
41
|
-
```
|
|
36
|
+
## Step Start: Write the started Marker
|
|
42
37
|
|
|
43
|
-
|
|
38
|
+
After resolving the artifact context and before this round's first artifact action, run `agent-infra-internal task-event {task-id} review-plan.started --agent {agent}`.
|
|
44
39
|
|
|
45
40
|
## Steps
|
|
46
41
|
|
|
@@ -48,9 +43,9 @@ After prerequisites pass and before this round's first artifact action, append a
|
|
|
48
43
|
|
|
49
44
|
Require `task.md` and at least one plan artifact: `plan.md` or `plan-r{N}.md`.
|
|
50
45
|
|
|
51
|
-
### 2.
|
|
46
|
+
### 2. Resolve the Artifact Context
|
|
52
47
|
|
|
53
|
-
|
|
48
|
+
Run `agent-infra-internal task-artifact {task-id} inspect --family review-plan`. Continue only for `ready`; take `{plan-artifact}` from `inputs` and `{review-round}` / `{review-artifact}` from `next.round` / `next.name`. Do not scan rounds or construct names in the skill. Then run the started event and verify the returned identity.
|
|
54
49
|
|
|
55
50
|
### 3. Read Plan Context
|
|
56
51
|
|
|
@@ -70,27 +65,20 @@ Create `.agents/workspace/active/{task-id}/{review-artifact}`.
|
|
|
70
65
|
|
|
71
66
|
### 6. Update Task Status
|
|
72
67
|
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
```bash
|
|
76
|
-
date "+%Y-%m-%d %H:%M:%S%z" | sed 's/\([+-][0-9][0-9]\)\([0-9][0-9]\)$/\1:\2/'
|
|
77
|
-
```
|
|
78
|
-
|
|
79
|
-
Set `current_step` to `technical-design-review`, refresh task metadata, and append:
|
|
80
|
-
`- {YYYY-MM-DD HH:mm:ss±HH:MM} — **Review Plan (Round {N})** by {agent} — Verdict: {Approved/Changes Requested/Rejected}, blockers: {n}, major: {n}, minor: {n}, Manual-validation: {n} → {review-artifact}`
|
|
68
|
+
After the report, submit each new finding with `agent-infra-internal task-ledger {task-id} finding-upsert --stage plan --review-artifact {review-artifact} --ordinal {n} --severity {blocker|major|minor} --evidence {review-artifact}#{anchor}`; submit prior-response dispositions with `finding-review --id {ledger-id} --status {confirmed|closed|open|needs-human-decision} --evidence {evidence}`. Do not scan ids or edit ledger rows. After all ledger writes, call `agent-infra-internal task-ledger {task-id} stage-status --stage plan` exactly once. Derive the verdict and next-step branch from `stageStatus.canAdvance`, and blocker/major/minor event counts from `unresolvedFindingCounts`: only `canAdvance=true` permits `approved`; otherwise use `changes-requested` or `rejected`. Then run `agent-infra-internal task-event {task-id} review-plan.completed --agent {agent} --artifact {review-artifact} --verdict {approved|changes-requested|rejected} --blockers {n} --major {n} --minor {n} --manual-validation {n}`.
|
|
81
69
|
|
|
82
70
|
`manual-validation` is the data source for the `Manual-validation` count folded into review rows in `ai task log`; do not add a parallel manual-verification field.
|
|
83
71
|
|
|
84
|
-
If task.md has a valid `issue_number`,
|
|
72
|
+
If task.md has a valid `issue_number`, run `agent-infra-internal platform-comment sync {task-id} --kind task --agent {agent}`, then `agent-infra-internal platform-comment sync {task-id} --kind artifact --artifact {review-artifact} --agent {agent}`.
|
|
85
73
|
|
|
86
74
|
### 7. Run Completion Gate
|
|
87
75
|
|
|
88
76
|
```bash
|
|
89
|
-
|
|
77
|
+
agent-infra-internal task-verify {task-id} review-plan.completed --artifact {review-artifact} --format text
|
|
90
78
|
```
|
|
91
79
|
|
|
92
80
|
### 8. Tell the User
|
|
93
81
|
|
|
94
82
|
Use the conclusion branch in `reference/output-templates.md` and show all TUI command formats.
|
|
95
83
|
|
|
96
|
-
> 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 current task's short id
|
|
84
|
+
> 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 current task's short id `NN` (see that file for lookup and fallback), while other `{task-id}` placeholders (report titles, paths) keep the full TASK-id form; (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).
|
|
@@ -3,6 +3,7 @@ name: review-plan
|
|
|
3
3
|
description: >
|
|
4
4
|
审查技术方案。
|
|
5
5
|
当技术方案需要在进入实现前接受审查时使用。
|
|
6
|
+
仅当对话包含可解析的任务引用时才可自动调用本技能。
|
|
6
7
|
---
|
|
7
8
|
|
|
8
9
|
# 技术方案审查
|
|
@@ -23,26 +24,20 @@ description: >
|
|
|
23
24
|
运行以下命令,并把原文粘贴到回复正文和本轮产物的 `## 状态核对` 段:
|
|
24
25
|
|
|
25
26
|
```bash
|
|
26
|
-
|
|
27
|
-
ls -la .agents/workspace/active/{task-id}/
|
|
28
|
-
tail .agents/workspace/active/{task-id}/task.md
|
|
27
|
+
agent-infra-internal task-snapshot {task-id} --format text
|
|
29
28
|
```
|
|
30
29
|
|
|
31
30
|
状态核对完成前,禁止任何关于外部状态的断言。
|
|
32
31
|
|
|
33
|
-
##
|
|
32
|
+
## 任务上下文解析
|
|
34
33
|
|
|
35
|
-
>
|
|
34
|
+
> 入口允许省略 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`。解析失败时透传非零退出码,不自行扫描任务。
|
|
36
35
|
|
|
37
|
-
|
|
36
|
+
> 解析任务引用,并确认任务位于本技能支持的状态或目录且存在 `task.md`;无法定位时按未找到任务处理并停止。
|
|
38
37
|
|
|
39
|
-
|
|
38
|
+
## 步骤开始:声明 started 事件
|
|
40
39
|
|
|
41
|
-
|
|
42
|
-
- {YYYY-MM-DD HH:mm:ss±HH:MM} — **Review Plan (Round {N}) [started]** by {agent} — started
|
|
43
|
-
```
|
|
44
|
-
|
|
45
|
-
`ai task log` 会把它与审查完成时写入的 done 条目配对成一行(进行中 → 已完成)。格式与配对规则见 `.agents/rules/task-management.md` 的「Activity Log started / done 双标记约定」。
|
|
40
|
+
确认前置条件和产物上下文后、本轮第一个产出动作之前执行 `agent-infra-internal task-event {task-id} review-plan.started --agent {agent}`。
|
|
46
41
|
|
|
47
42
|
## 执行步骤
|
|
48
43
|
### 1. 验证前置条件
|
|
@@ -51,12 +46,9 @@ tail .agents/workspace/active/{task-id}/task.md
|
|
|
51
46
|
- `.agents/workspace/active/{task-id}/task.md`
|
|
52
47
|
- 至少一个方案产物:`plan.md` 或 `plan-r{N}.md`
|
|
53
48
|
|
|
54
|
-
### 2.
|
|
49
|
+
### 2. 解析审查上下文
|
|
55
50
|
|
|
56
|
-
|
|
57
|
-
- `{plan-artifact}`:最高轮次的方案产物
|
|
58
|
-
- `{review-round}`
|
|
59
|
-
- `{review-artifact}`:`review-plan.md` 或 `review-plan-r{N}.md`
|
|
51
|
+
运行 `agent-infra-internal task-artifact {task-id} inspect --family review-plan`。仅当结果为 `ready` 时继续;从 `inputs` 取得 `{plan-artifact}`,从 `next.round` / `next.name` 取得 `{review-round}` / `{review-artifact}`。不得自行扫描轮次或拼装文件名。随后执行 started 事件并复核返回身份。
|
|
60
52
|
|
|
61
53
|
### 3. 阅读方案上下文
|
|
62
54
|
|
|
@@ -76,28 +68,16 @@ tail .agents/workspace/active/{task-id}/task.md
|
|
|
76
68
|
|
|
77
69
|
### 6. 更新任务状态
|
|
78
70
|
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
```bash
|
|
82
|
-
date "+%Y-%m-%d %H:%M:%S%z" | sed 's/\([+-][0-9][0-9]\)\([0-9][0-9]\)$/\1:\2/'
|
|
83
|
-
```
|
|
84
|
-
|
|
85
|
-
更新 task.md:
|
|
86
|
-
- `current_step`:technical-design-review
|
|
87
|
-
- `assigned_to`:{当前代理}
|
|
88
|
-
- `updated_at`:{当前时间}
|
|
89
|
-
- `agent_infra_version`:按 `.agents/rules/version-stamp.md` 取值
|
|
90
|
-
- 追加:
|
|
91
|
-
`- {YYYY-MM-DD HH:mm:ss±HH:MM} — **Review Plan (Round {N})** by {agent} — Verdict: {Approved/Changes Requested/Rejected}, blockers: {n}, major: {n}, minor: {n}, Manual-validation: {n} → {review-artifact}`
|
|
71
|
+
报告完成后,新 finding 逐条调用 `agent-infra-internal task-ledger {task-id} finding-upsert --stage plan --review-artifact {review-artifact} --ordinal {n} --severity {blocker|major|minor} --evidence {review-artifact}#{anchor}`;复核上一轮响应时调用 `finding-review --id {ledger-id} --status {confirmed|closed|open|needs-human-decision} --evidence {相称证据}`。不得扫描编号或手写账本行。全部账本写入完成后只调用一次 `agent-infra-internal task-ledger {task-id} stage-status --stage plan`,以 `stageStatus.canAdvance` 决定 verdict 和下一步,并以 `unresolvedFindingCounts` 填写 blocker/major/minor:仅 `canAdvance=true` 可用 `approved`,否则必须用 `changes-requested` 或 `rejected`。随后执行 `agent-infra-internal task-event {task-id} review-plan.completed --agent {agent} --artifact {review-artifact} --verdict {approved|changes-requested|rejected} --blockers {n} --major {n} --minor {n} --manual-validation {n}`。
|
|
92
72
|
|
|
93
73
|
`manual-validation` 是 `ai task log` 中 review 行「人工校验点」(EN `Manual-validation`)计数的数据源;不要新增并行人工验证字段。
|
|
94
74
|
|
|
95
|
-
如果 task.md 中存在有效的 `issue_number
|
|
75
|
+
如果 task.md 中存在有效的 `issue_number`,调用 `agent-infra-internal platform-comment sync {task-id} --kind task --agent {agent}`,再调用 `agent-infra-internal platform-comment sync {task-id} --kind artifact --artifact {review-artifact} --agent {agent}`;失败按 `.agents/rules/issue-sync.md` 记录 warning。
|
|
96
76
|
|
|
97
77
|
### 7. 完成校验
|
|
98
78
|
|
|
99
79
|
```bash
|
|
100
|
-
|
|
80
|
+
agent-infra-internal task-verify {task-id} review-plan.completed --artifact {review-artifact} --format text
|
|
101
81
|
```
|
|
102
82
|
|
|
103
83
|
校验通过后继续告知用户;校验失败则修复报告或 task 状态后重跑。
|
|
@@ -106,7 +86,7 @@ node .agents/scripts/validate-artifact.js gate review-plan .agents/workspace/act
|
|
|
106
86
|
|
|
107
87
|
按 `reference/output-templates.md` 的结论分支输出,并展示所有 TUI 的下一步命令。
|
|
108
88
|
|
|
109
|
-
> 渲染最终输出前先读取 `.agents/rules/next-step-output.md` 并落实其两类规则:(1) 「下一步」命令的 `{task-ref}` 渲染为当前任务短号
|
|
89
|
+
> 渲染最终输出前先读取 `.agents/rules/next-step-output.md` 并落实其两类规则:(1) 「下一步」命令的 `{task-ref}` 渲染为当前任务短号 `NN`(取值与回退见该文件),其他 `{task-id}` 占位(报告标题、路径)保持完整 TASK-id 形式;(2) 在面向用户输出的绝对最后一行追加 `Completed at` 收尾行(成功、错误、早退等任何面向用户输出都适用,不限于校验通过的成功态)。
|
|
110
90
|
|
|
111
91
|
## 完成检查清单
|
|
112
92
|
|
|
@@ -20,6 +20,7 @@
|
|
|
20
20
|
"required_sections": [
|
|
21
21
|
"Review Summary",
|
|
22
22
|
"Findings",
|
|
23
|
+
"Non-blocking Advisories",
|
|
23
24
|
"Manual Validation Items",
|
|
24
25
|
"Conclusion and Recommendations",
|
|
25
26
|
"State Check",
|
|
@@ -30,12 +31,10 @@
|
|
|
30
31
|
"required_patterns": [
|
|
31
32
|
"^### Approval Decision$",
|
|
32
33
|
"^\\$ "
|
|
33
|
-
]
|
|
34
|
-
"freshness_minutes": 30
|
|
34
|
+
]
|
|
35
35
|
},
|
|
36
36
|
"activity-log": {
|
|
37
|
-
"expected_action_pattern": "(Review Plan|Plan Review) \\(Round \\d+\\)"
|
|
38
|
-
"freshness_minutes": 30
|
|
37
|
+
"expected_action_pattern": "(Review Plan|Plan Review) \\(Round \\d+\\)"
|
|
39
38
|
},
|
|
40
39
|
"platform-sync": {
|
|
41
40
|
"when": "issue_number_exists",
|
|
@@ -20,6 +20,7 @@
|
|
|
20
20
|
"required_sections": [
|
|
21
21
|
"审查摘要",
|
|
22
22
|
"问题清单",
|
|
23
|
+
"非阻塞建议",
|
|
23
24
|
"人工校验项",
|
|
24
25
|
"结论与建议",
|
|
25
26
|
"状态核对",
|
|
@@ -30,12 +31,10 @@
|
|
|
30
31
|
"required_patterns": [
|
|
31
32
|
"^### 审查决定$",
|
|
32
33
|
"^\\$ "
|
|
33
|
-
]
|
|
34
|
-
"freshness_minutes": 30
|
|
34
|
+
]
|
|
35
35
|
},
|
|
36
36
|
"activity-log": {
|
|
37
|
-
"expected_action_pattern": "(Review Plan|Plan Review) \\(Round \\d+\\)"
|
|
38
|
-
"freshness_minutes": 30
|
|
37
|
+
"expected_action_pattern": "(Review Plan|Plan Review) \\(Round \\d+\\)"
|
|
39
38
|
},
|
|
40
39
|
"platform-sync": {
|
|
41
40
|
"when": "issue_number_exists",
|
|
@@ -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 +
|