@fitlab-ai/agent-infra 0.9.11 → 0.9.13
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 +13 -13
- package/README.zh-CN.md +13 -13
- package/dist/bin/internal-cli.js +29 -19
- package/dist/lib/agent-clients/adapters/codex-lifecycle/build-identity.js +71 -10
- package/dist/lib/agent-clients/next-steps.js +6 -1
- package/dist/lib/decide.js +3 -3
- package/dist/lib/defaults.json +4 -0
- package/dist/lib/git/workflow.js +43 -1
- package/dist/lib/init.js +1 -0
- package/dist/lib/internal/git-workflow.js +8 -1
- package/dist/lib/internal/platform-checks.js +3 -3
- package/dist/lib/internal/platform-comment.js +9 -9
- package/dist/lib/internal/platform-context.js +2 -2
- package/dist/lib/internal/platform-issue.js +8 -9
- package/dist/lib/internal/platform-pr-review.js +10 -10
- package/dist/lib/internal/platform-pr.js +68 -23
- package/dist/lib/internal/platform-release-notes.js +3 -3
- package/dist/lib/internal/pr-review-grade.js +11 -9
- package/dist/lib/internal/release-workflow.js +4 -4
- package/dist/lib/internal/sandbox-control.js +30 -4
- package/dist/lib/internal/task-activity.js +3 -3
- package/dist/lib/internal/task-artifact.js +76 -24
- package/dist/lib/internal/task-create.js +2 -2
- package/dist/lib/internal/task-delivery.js +59 -0
- package/dist/lib/internal/task-event.js +6 -3
- package/dist/lib/internal/task-finalization.js +2 -2
- package/dist/lib/internal/task-invalidation.js +60 -0
- package/dist/lib/internal/task-ledger.js +9 -6
- package/dist/lib/internal/task-lifecycle.js +2 -2
- package/dist/lib/internal/task-override.js +4 -4
- package/dist/lib/internal/task-review.js +3 -3
- package/dist/lib/internal/task-verify.js +6 -6
- package/dist/lib/internal/task-warning.js +3 -3
- package/dist/lib/platform/adapters.js +1 -3
- package/dist/lib/platform/change-request-git-evidence.js +27 -7
- package/dist/lib/platform/completion-backfill.js +6 -5
- package/dist/lib/platform/context.js +70 -130
- package/dist/lib/platform/github-client.js +8 -2
- package/dist/lib/platform/github-provider.js +903 -0
- package/dist/lib/platform/in-label-sync.js +143 -0
- package/dist/lib/platform/issue-comments.js +94 -41
- package/dist/lib/platform/issues.js +335 -189
- package/dist/lib/platform/metadata-labels.js +6 -2
- package/dist/lib/platform/none-provider.js +28 -0
- package/dist/lib/platform/pr-change-report.js +551 -0
- package/dist/lib/platform/pr-checks.js +124 -106
- package/dist/lib/platform/pr-review.js +88 -72
- package/dist/lib/platform/pr-summary.js +523 -49
- package/dist/lib/platform/provider-bridge.js +45 -0
- package/dist/lib/platform/provider-contract.d.ts +487 -0
- package/dist/lib/platform/provider-contract.js +95 -0
- package/dist/lib/platform/provider-loader.js +251 -0
- package/dist/lib/platform/provider-validation.js +504 -0
- package/dist/lib/platform/pull-request-metadata.js +8 -6
- package/dist/lib/platform/pull-requests.js +1050 -502
- package/dist/lib/platform/release-notes.js +78 -55
- package/dist/lib/platform/releases.js +79 -50
- package/dist/lib/platform/resource-identity.d.ts +26 -0
- package/dist/lib/platform/resource-identity.js +92 -0
- package/dist/lib/platform/task-identities.js +31 -0
- package/dist/lib/platform/verification-required.js +22 -12
- package/dist/lib/platform/verification-sync.js +118 -239
- package/dist/lib/pr-review/evidence-grading.js +30 -9
- package/dist/lib/run/index.js +63 -23
- package/dist/lib/sandbox/config.js +5 -0
- package/dist/lib/sandbox/control/client.js +96 -15
- package/dist/lib/sandbox/control/executor.js +3 -3
- package/dist/lib/sandbox/control/lifecycle.js +29 -7
- package/dist/lib/sandbox/control/protocol.js +77 -0
- package/dist/lib/sandbox/control/server.js +398 -25
- package/dist/lib/sandbox/control/state.js +204 -1
- package/dist/lib/server/process-state.js +2 -2
- package/dist/lib/server/protocol.js +38 -1
- package/dist/lib/task/activity-log.js +8 -1
- package/dist/lib/task/artifact-lifecycle.js +35 -7
- package/dist/lib/task/capabilities.js +239 -0
- package/dist/lib/task/commands/status.js +32 -0
- package/dist/lib/task/commit-intent.js +100 -0
- package/dist/lib/task/commit-operation.js +207 -102
- package/dist/lib/task/control-authority.js +8 -5
- package/dist/lib/task/create-service.js +8 -8
- package/dist/lib/task/create.js +33 -7
- package/dist/lib/task/current-contract.js +5 -1
- package/dist/lib/task/decision-details.js +3 -48
- package/dist/lib/task/delivery-target.js +97 -0
- package/dist/lib/task/delivery.js +153 -0
- package/dist/lib/task/events.js +297 -17
- package/dist/lib/task/finalization.js +37 -13
- package/dist/lib/task/human-override.js +61 -36
- package/dist/lib/task/invalidation-command.js +86 -0
- package/dist/lib/task/invalidation.js +260 -0
- package/dist/lib/task/ledger-intents.js +37 -0
- package/dist/lib/task/lifecycle.js +106 -9
- package/dist/lib/task/local-artifact-finalization.js +374 -0
- package/dist/lib/task/orchestration.js +100 -151
- package/dist/lib/task/pr-delivery-fact.js +183 -0
- package/dist/lib/task/review-finalization.js +4 -8
- package/dist/lib/task/review-fingerprint.js +32 -2
- package/dist/lib/task/rework-intent.js +138 -0
- package/dist/lib/task/skill-scope.js +23 -0
- package/dist/lib/task/task-execution-lock.js +27 -17
- package/dist/lib/task/verification-engine.js +89 -38
- package/dist/lib/task/verification-review.js +1 -1
- package/dist/lib/task/verification.js +3 -3
- package/dist/lib/task/workflow-warning-intents.js +1 -1
- package/dist/lib/task/write.js +11 -0
- package/dist/lib/update.js +9 -0
- package/dist/lib/version.js +11 -1
- package/dist/lifecycle-build-manifest.json +3 -3
- package/lib/agent-clients/adapters/codex-lifecycle/build-identity.ts +105 -10
- package/lib/agent-clients/adapters/codex-lifecycle/manifest-files.json +12 -1
- package/lib/agent-clients/next-steps.ts +6 -1
- package/lib/decide.ts +3 -3
- package/lib/defaults.json +4 -0
- package/lib/git/workflow.ts +38 -1
- package/lib/init.ts +4 -1
- package/lib/internal/git-workflow.ts +7 -1
- package/lib/internal/platform-checks.ts +3 -3
- package/lib/internal/platform-comment.ts +8 -8
- package/lib/internal/platform-context.ts +2 -2
- package/lib/internal/platform-issue.ts +7 -8
- package/lib/internal/platform-pr-review.ts +9 -9
- package/lib/internal/platform-pr.ts +53 -21
- package/lib/internal/platform-release-notes.ts +3 -3
- package/lib/internal/pr-review-grade.ts +10 -8
- package/lib/internal/release-workflow.ts +4 -4
- package/lib/internal/sandbox-control.ts +27 -3
- package/lib/internal/task-activity.ts +3 -3
- package/lib/internal/task-artifact.ts +65 -22
- package/lib/internal/task-create.ts +2 -2
- package/lib/internal/task-delivery.ts +53 -0
- package/lib/internal/task-event.ts +6 -3
- package/lib/internal/task-finalization.ts +3 -3
- package/lib/internal/task-invalidation.ts +39 -0
- package/lib/internal/task-ledger.ts +11 -8
- package/lib/internal/task-lifecycle.ts +2 -2
- package/lib/internal/task-override.ts +6 -6
- package/lib/internal/task-review.ts +3 -3
- package/lib/internal/task-verify.ts +6 -6
- package/lib/internal/task-warning.ts +3 -3
- package/lib/platform/adapters.ts +3 -2
- package/lib/platform/change-request-git-evidence.ts +36 -9
- package/lib/platform/completion-backfill.ts +9 -8
- package/lib/platform/context.ts +97 -134
- package/lib/platform/github-client.ts +10 -3
- package/lib/platform/github-provider.ts +910 -0
- package/lib/platform/in-label-sync.ts +208 -0
- package/lib/platform/issue-comments.ts +97 -47
- package/lib/platform/issues.ts +344 -174
- package/lib/platform/metadata-labels.ts +5 -2
- package/lib/platform/none-provider.ts +35 -0
- package/lib/platform/pr-change-report.ts +645 -0
- package/lib/platform/pr-checks.ts +129 -107
- package/lib/platform/pr-review.ts +88 -85
- package/lib/platform/pr-summary.ts +562 -52
- package/lib/platform/provider-bridge.ts +82 -0
- package/lib/platform/provider-contract.ts +536 -0
- package/lib/platform/provider-loader.ts +307 -0
- package/lib/platform/provider-validation.ts +529 -0
- package/lib/platform/pull-request-metadata.ts +10 -7
- package/lib/platform/pull-requests.ts +1126 -505
- package/lib/platform/release-notes.ts +76 -59
- package/lib/platform/releases.ts +77 -43
- package/lib/platform/resource-identity.ts +121 -0
- package/lib/platform/task-identities.ts +40 -0
- package/lib/platform/types.ts +4 -2
- package/lib/platform/verification-required.ts +21 -13
- package/lib/platform/verification-sync.ts +118 -293
- package/lib/pr-review/evidence-grading.ts +31 -11
- package/lib/run/index.ts +57 -22
- package/lib/sandbox/config.ts +7 -0
- package/lib/sandbox/control/client.ts +105 -15
- package/lib/sandbox/control/executor.ts +4 -4
- package/lib/sandbox/control/lifecycle.ts +30 -8
- package/lib/sandbox/control/protocol.ts +113 -0
- package/lib/sandbox/control/server.ts +431 -23
- package/lib/sandbox/control/state.ts +251 -1
- package/lib/server/process-state.ts +2 -2
- package/lib/server/protocol.ts +36 -1
- package/lib/task/activity-log.ts +8 -0
- package/lib/task/artifact-lifecycle.ts +34 -8
- package/lib/task/capabilities.ts +262 -0
- package/lib/task/commands/status.ts +38 -0
- package/lib/task/commit-intent.ts +137 -0
- package/lib/task/commit-operation.ts +186 -88
- package/lib/task/control-authority.ts +11 -8
- package/lib/task/create-service.ts +8 -8
- package/lib/task/create.ts +34 -9
- package/lib/task/current-contract.ts +6 -1
- package/lib/task/decision-details.ts +8 -64
- package/lib/task/delivery-target.ts +130 -0
- package/lib/task/delivery.ts +160 -0
- package/lib/task/events.ts +296 -16
- package/lib/task/finalization.ts +50 -14
- package/lib/task/human-override.ts +73 -46
- package/lib/task/invalidation-command.ts +86 -0
- package/lib/task/invalidation.ts +332 -0
- package/lib/task/ledger-intents.ts +35 -1
- package/lib/task/lifecycle.ts +93 -4
- package/lib/task/local-artifact-finalization.ts +563 -0
- package/lib/task/orchestration.ts +110 -146
- package/lib/task/pr-delivery-fact.ts +237 -0
- package/lib/task/review-finalization.ts +4 -14
- package/lib/task/review-fingerprint.ts +33 -2
- package/lib/task/rework-intent.ts +165 -0
- package/lib/task/skill-scope.ts +24 -0
- package/lib/task/task-execution-lock.ts +23 -14
- package/lib/task/verification-engine.ts +95 -43
- package/lib/task/verification-review.ts +2 -0
- package/lib/task/verification.ts +4 -4
- package/lib/task/workflow-warning-intents.ts +1 -1
- package/lib/task/write.ts +19 -0
- package/lib/update.ts +11 -1
- package/lib/version.ts +15 -1
- package/package.json +7 -1
- package/templates/.agents/rules/README.en.md +4 -2
- package/templates/.agents/rules/README.zh-CN.md +4 -2
- package/templates/.agents/rules/create-issue.en.md +11 -2
- package/templates/.agents/rules/create-issue.zh-CN.md +24 -2
- package/templates/.agents/rules/issue-pr-commands.en.md +4 -17
- package/templates/.agents/rules/issue-pr-commands.zh-CN.md +1 -1
- package/templates/.agents/rules/issue-sync.en.md +28 -5
- package/templates/.agents/rules/issue-sync.zh-CN.md +64 -5
- package/templates/.agents/rules/label-milestone-setup.en.md +15 -2
- package/templates/.agents/rules/label-milestone-setup.zh-CN.md +15 -2
- package/templates/.agents/rules/local-artifact-repair.en.md +53 -0
- package/templates/.agents/rules/local-artifact-repair.zh-CN.md +53 -0
- package/templates/.agents/rules/milestone-inference.en.md +12 -2
- package/templates/.agents/rules/milestone-inference.zh-CN.md +25 -3
- package/templates/.agents/rules/pr-sync.en.md +28 -13
- package/templates/.agents/rules/pr-sync.zh-CN.md +39 -5
- package/templates/.agents/rules/release-commands.en.md +42 -3
- package/templates/.agents/rules/release-commands.zh-CN.md +42 -3
- package/templates/.agents/rules/security-alerts.en.md +17 -2
- package/templates/.agents/rules/security-alerts.zh-CN.md +17 -2
- package/templates/.agents/rules/sync-content-generation.en.md +8 -0
- package/templates/.agents/rules/sync-content-generation.zh-CN.md +8 -0
- package/templates/.agents/rules/task-management.en.md +1 -1
- package/templates/.agents/rules/task-management.zh-CN.md +1 -1
- package/templates/.agents/rules/task-short-id.en.md +1 -4
- package/templates/.agents/rules/task-short-id.zh-CN.md +1 -3
- package/templates/.agents/scripts/security-alerts.github.sh +151 -0
- package/templates/.agents/scripts/security-alerts.sh +31 -0
- package/templates/.agents/skills/analyze-task/SKILL.en.md +14 -3
- package/templates/.agents/skills/analyze-task/SKILL.zh-CN.md +11 -3
- package/templates/.agents/skills/check-task/SKILL.en.md +16 -37
- package/templates/.agents/skills/check-task/SKILL.zh-CN.md +16 -37
- package/templates/.agents/skills/close-codescan/SKILL.en.md +2 -2
- package/templates/.agents/skills/close-codescan/SKILL.zh-CN.md +2 -2
- package/templates/.agents/skills/close-dependabot/SKILL.en.md +2 -2
- package/templates/.agents/skills/close-dependabot/SKILL.zh-CN.md +2 -2
- package/templates/.agents/skills/code-task/SKILL.en.md +32 -10
- package/templates/.agents/skills/code-task/SKILL.zh-CN.md +35 -13
- package/templates/.agents/skills/code-task/config/verify.en.json +1 -0
- package/templates/.agents/skills/code-task/config/verify.zh-CN.json +1 -0
- package/templates/.agents/skills/commit/SKILL.en.md +3 -3
- package/templates/.agents/skills/commit/SKILL.zh-CN.md +3 -3
- package/templates/.agents/skills/commit/config/verify.json +1 -1
- package/templates/.agents/skills/commit/reference/commit-orchestration.en.md +3 -3
- package/templates/.agents/skills/commit/reference/commit-orchestration.zh-CN.md +3 -3
- package/templates/.agents/skills/commit/reference/issue-metadata-sync.en.md +2 -0
- package/templates/.agents/skills/commit/reference/issue-metadata-sync.zh-CN.md +2 -0
- package/templates/.agents/skills/commit/reference/pr-summary-sync.en.md +4 -4
- package/templates/.agents/skills/commit/reference/pr-summary-sync.zh-CN.md +4 -4
- package/templates/.agents/skills/commit/reference/task-status-update.en.md +2 -2
- package/templates/.agents/skills/commit/reference/task-status-update.zh-CN.md +2 -2
- package/templates/.agents/skills/complete-manual-validation/SKILL.en.md +7 -4
- package/templates/.agents/skills/complete-manual-validation/SKILL.zh-CN.md +7 -4
- package/templates/.agents/skills/complete-manual-validation/config/verify.en.json +1 -1
- package/templates/.agents/skills/complete-manual-validation/config/verify.zh-CN.json +1 -1
- package/templates/.agents/skills/complete-manual-validation/reference/summary-update.en.md +5 -4
- package/templates/.agents/skills/complete-manual-validation/reference/summary-update.zh-CN.md +5 -4
- package/templates/.agents/skills/complete-task/SKILL.en.md +31 -13
- package/templates/.agents/skills/complete-task/SKILL.zh-CN.md +30 -13
- package/templates/.agents/skills/complete-task/reference/external-delivery.en.md +2 -2
- package/templates/.agents/skills/complete-task/reference/external-delivery.zh-CN.md +2 -2
- package/templates/.agents/skills/create-pr/SKILL.en.md +11 -10
- package/templates/.agents/skills/create-pr/SKILL.zh-CN.md +11 -11
- package/templates/.agents/skills/create-pr/config/verify.json +1 -0
- package/templates/.agents/skills/create-pr/reference/change-report.en.md +16 -4
- package/templates/.agents/skills/create-pr/reference/change-report.zh-CN.md +16 -4
- package/templates/.agents/skills/create-pr/reference/comment-publish.en.md +5 -3
- package/templates/.agents/skills/create-pr/reference/comment-publish.zh-CN.md +5 -3
- package/templates/.agents/skills/create-pr/reference/pr-body-template.en.md +1 -1
- package/templates/.agents/skills/create-pr/reference/pr-body-template.zh-CN.md +1 -1
- package/templates/.agents/skills/create-pr/scripts/change-report.mjs +3 -0
- package/templates/.agents/skills/create-task/SKILL.en.md +1 -0
- package/templates/.agents/skills/create-task/SKILL.zh-CN.md +1 -0
- package/templates/.agents/skills/import-codescan/SKILL.en.md +1 -1
- package/templates/.agents/skills/import-codescan/SKILL.zh-CN.md +1 -1
- package/templates/.agents/skills/import-dependabot/SKILL.en.md +1 -1
- package/templates/.agents/skills/import-dependabot/SKILL.zh-CN.md +1 -1
- package/templates/.agents/skills/init-labels/SKILL.en.md +9 -10
- package/templates/.agents/skills/init-labels/SKILL.zh-CN.md +9 -10
- package/templates/.agents/skills/init-labels/scripts/init-labels.github.sh +57 -1
- package/templates/.agents/skills/init-labels/scripts/init-labels.sh +27 -1
- package/templates/.agents/skills/init-milestones/SKILL.en.md +3 -5
- package/templates/.agents/skills/init-milestones/SKILL.zh-CN.md +3 -5
- package/templates/.agents/skills/plan-task/SKILL.en.md +14 -3
- package/templates/.agents/skills/plan-task/SKILL.zh-CN.md +11 -3
- package/templates/.agents/skills/review-analysis/SKILL.en.md +6 -5
- package/templates/.agents/skills/review-analysis/SKILL.zh-CN.md +6 -5
- package/templates/.agents/skills/review-analysis/reference/output-templates.en.md +18 -0
- package/templates/.agents/skills/review-analysis/reference/output-templates.zh-CN.md +18 -0
- package/templates/.agents/skills/review-code/SKILL.en.md +10 -9
- package/templates/.agents/skills/review-code/SKILL.zh-CN.md +10 -9
- package/templates/.agents/skills/review-code/reference/output-templates.en.md +19 -1
- package/templates/.agents/skills/review-code/reference/output-templates.zh-CN.md +19 -1
- package/templates/.agents/skills/review-code/reference/report-template.en.md +4 -2
- package/templates/.agents/skills/review-code/reference/report-template.zh-CN.md +4 -2
- package/templates/.agents/skills/review-plan/SKILL.en.md +6 -5
- package/templates/.agents/skills/review-plan/SKILL.zh-CN.md +6 -5
- package/templates/.agents/skills/review-plan/reference/output-templates.en.md +18 -0
- package/templates/.agents/skills/review-plan/reference/output-templates.zh-CN.md +18 -0
- package/templates/.agents/skills/review-pr/SKILL.en.md +1 -0
- package/templates/.agents/skills/review-pr/SKILL.zh-CN.md +1 -0
- package/templates/.agents/skills/review-pr/reference/evidence-grading.en.md +2 -2
- package/templates/.agents/skills/review-pr/reference/evidence-grading.zh-CN.md +2 -2
- package/templates/.agents/skills/run-manual-validation/SKILL.en.md +5 -2
- package/templates/.agents/skills/run-manual-validation/SKILL.zh-CN.md +5 -2
- package/templates/.agents/skills/run-task/SKILL.en.md +1 -1
- package/templates/.agents/skills/run-task/SKILL.zh-CN.md +1 -1
- package/templates/.agents/skills/update-agent-infra/scripts/sync-templates.js +4 -0
- package/templates/.agents/skills/watch-pr/SKILL.en.md +6 -6
- package/templates/.agents/skills/watch-pr/SKILL.zh-CN.md +6 -6
- package/templates/.agents/skills/watch-pr/reference/monitor-and-heal.en.md +6 -0
- package/templates/.agents/skills/watch-pr/reference/monitor-and-heal.zh-CN.md +6 -0
- package/templates/.agents/templates/task.en.md +23 -2
- package/templates/.agents/templates/task.zh-CN.md +23 -2
- package/templates/.agents/workflows/bug-fix.en.yaml +9 -8
- package/templates/.agents/workflows/bug-fix.zh-CN.yaml +9 -8
- package/templates/.agents/workflows/feature-development.en.yaml +9 -8
- package/templates/.agents/workflows/feature-development.zh-CN.yaml +9 -8
- package/templates/.agents/workflows/refactoring.en.yaml +9 -8
- package/templates/.agents/workflows/refactoring.zh-CN.yaml +9 -8
- package/templates/.github/workflows/pr-label.yml +7 -26
- package/templates/.agents/rules/create-issue.github.en.md +0 -14
- package/templates/.agents/rules/create-issue.github.zh-CN.md +0 -27
- package/templates/.agents/rules/issue-pr-commands.github.en.md +0 -34
- package/templates/.agents/rules/issue-pr-commands.github.zh-CN.md +0 -49
- package/templates/.agents/rules/issue-sync.github.en.md +0 -40
- package/templates/.agents/rules/issue-sync.github.zh-CN.md +0 -76
- package/templates/.agents/rules/label-milestone-setup.github.en.md +0 -60
- package/templates/.agents/rules/label-milestone-setup.github.zh-CN.md +0 -60
- package/templates/.agents/rules/milestone-inference.github.en.md +0 -15
- package/templates/.agents/rules/milestone-inference.github.zh-CN.md +0 -27
- package/templates/.agents/rules/pr-checks-commands.github.en.md +0 -18
- package/templates/.agents/rules/pr-checks-commands.github.zh-CN.md +0 -34
- package/templates/.agents/rules/pr-sync.github.en.md +0 -43
- package/templates/.agents/rules/pr-sync.github.zh-CN.md +0 -69
- package/templates/.agents/rules/release-commands.github.en.md +0 -44
- package/templates/.agents/rules/release-commands.github.zh-CN.md +0 -44
- package/templates/.agents/rules/security-alerts.github.en.md +0 -43
- package/templates/.agents/rules/security-alerts.github.zh-CN.md +0 -43
- /package/templates/.agents/rules/{issue-fields.github.en.md → issue-fields.en.md} +0 -0
- /package/templates/.agents/rules/{issue-fields.github.zh-CN.md → issue-fields.zh-CN.md} +0 -0
|
@@ -34,7 +34,7 @@ This skill **creates** task.md, so there is no file to write at the start. Captu
|
|
|
34
34
|
|
|
35
35
|
### 1. Retrieve Alert Information
|
|
36
36
|
|
|
37
|
-
Read `.agents/rules/security-alerts.md` before this step, then
|
|
37
|
+
Read `.agents/rules/security-alerts.md` before this step, then run `bash .agents/scripts/security-alerts.sh read-codescan --number {alert-number}` and parse its JSON result to fetch the alert details.
|
|
38
38
|
|
|
39
39
|
Extract key information:
|
|
40
40
|
- `number`: alert number
|
|
@@ -34,7 +34,7 @@ description: >
|
|
|
34
34
|
|
|
35
35
|
### 1. 获取告警信息
|
|
36
36
|
|
|
37
|
-
执行前先读取 `.agents/rules/security-alerts.md
|
|
37
|
+
执行前先读取 `.agents/rules/security-alerts.md`,然后运行 `bash .agents/scripts/security-alerts.sh read-codescan --number {alert-number}`,解析其 JSON 结果获取告警详情。
|
|
38
38
|
|
|
39
39
|
提取关键信息:
|
|
40
40
|
- `number`:告警编号
|
|
@@ -34,7 +34,7 @@ This skill **creates** task.md, so there is no file to write at the start. Captu
|
|
|
34
34
|
|
|
35
35
|
### 1. Retrieve Alert Information
|
|
36
36
|
|
|
37
|
-
Read `.agents/rules/security-alerts.md` before this step, then
|
|
37
|
+
Read `.agents/rules/security-alerts.md` before this step, then run `bash .agents/scripts/security-alerts.sh read-dependabot --number {alert-number}` and parse its JSON result to fetch the alert details.
|
|
38
38
|
|
|
39
39
|
Extract key information:
|
|
40
40
|
- `number`: alert number
|
|
@@ -34,7 +34,7 @@ description: >
|
|
|
34
34
|
|
|
35
35
|
### 1. 获取告警信息
|
|
36
36
|
|
|
37
|
-
执行前先读取 `.agents/rules/security-alerts.md
|
|
37
|
+
执行前先读取 `.agents/rules/security-alerts.md`,然后运行 `bash .agents/scripts/security-alerts.sh read-dependabot --number {alert-number}`,解析其 JSON 结果获取告警详情。
|
|
38
38
|
|
|
39
39
|
提取关键信息:
|
|
40
40
|
- `number`:告警编号
|
|
@@ -15,7 +15,7 @@ Initialize the repository's standard labels taxonomy.
|
|
|
15
15
|
|
|
16
16
|
Confirm that:
|
|
17
17
|
- read `.agents/rules/label-milestone-setup.md` first
|
|
18
|
-
-
|
|
18
|
+
- the repository configuration and requested mapping are ready
|
|
19
19
|
|
|
20
20
|
If any prerequisite fails, stop and report the matching error.
|
|
21
21
|
|
|
@@ -28,9 +28,9 @@ bash .agents/skills/init-labels/scripts/init-labels.sh
|
|
|
28
28
|
```
|
|
29
29
|
|
|
30
30
|
The script and `.agents/rules/label-milestone-setup.md` are responsible for:
|
|
31
|
-
-
|
|
32
|
-
-
|
|
33
|
-
-
|
|
31
|
+
- Reading the configured `labels.in` mapping and preserving unrelated labels
|
|
32
|
+
- Selecting the provider leaf or returning a clear no-op/degraded result
|
|
33
|
+
- Creating or updating the standard label set and reporting the final summary
|
|
34
34
|
- Printing the final execution summary
|
|
35
35
|
|
|
36
36
|
### 3. Standard taxonomy
|
|
@@ -69,8 +69,8 @@ Show the current mapping and ask whether it should be updated.
|
|
|
69
69
|
#### 4.3 Write the mapping and create labels
|
|
70
70
|
|
|
71
71
|
1. Write the final mapping to `.agents/.airc.json` under `labels.in`.
|
|
72
|
-
2.
|
|
73
|
-
3. After user confirmation, delete stale `in:` labels that are no longer present in the final mapping.
|
|
72
|
+
2. Run `bash .agents/skills/init-labels/scripts/init-labels.sh` to create or update one `in: {key}` label for each mapping key.
|
|
73
|
+
3. After user confirmation, rerun the script with `--cleanup-stale-in` to delete stale `in:` labels that are no longer present in the final mapping.
|
|
74
74
|
|
|
75
75
|
### 5. Output and behavior guarantees
|
|
76
76
|
|
|
@@ -82,7 +82,7 @@ The summary must include:
|
|
|
82
82
|
- Any unmatched platform-default labels still present
|
|
83
83
|
|
|
84
84
|
Operational notes:
|
|
85
|
-
- The operation is idempotent because the
|
|
85
|
+
- The operation is idempotent because the provider leaf updates or overwrites existing labels in place.
|
|
86
86
|
- `in:` labels are managed by the AI-guided step together with the `.airc.json` mapping.
|
|
87
87
|
|
|
88
88
|
### 6. Inform User
|
|
@@ -100,8 +100,7 @@ Next step - initialize milestones (optional):
|
|
|
100
100
|
|
|
101
101
|
## Error Handling
|
|
102
102
|
|
|
103
|
-
-
|
|
104
|
-
-
|
|
105
|
-
- Repository access failed: prompt "Unable to access the current repository with the platform CLI"
|
|
103
|
+
- Provider capability unavailable: report the script's `degraded` or `no-op` result without claiming remote changes.
|
|
104
|
+
- Provider authentication or repository access failure: report the script's non-zero exit status and diagnostic output; do not claim remote changes.
|
|
106
105
|
- Permission error: prompt "No permission to manage labels in this repository"
|
|
107
106
|
- API rate limit: prompt "platform API rate limit reached, please retry later"
|
|
@@ -15,7 +15,7 @@ description: >
|
|
|
15
15
|
|
|
16
16
|
确认以下条件成立:
|
|
17
17
|
- 执行前先读取 `.agents/rules/label-milestone-setup.md`
|
|
18
|
-
-
|
|
18
|
+
- 仓库配置和请求的映射已准备完成
|
|
19
19
|
|
|
20
20
|
如果任一条件失败,停止并输出对应错误。
|
|
21
21
|
|
|
@@ -28,9 +28,9 @@ bash .agents/skills/init-labels/scripts/init-labels.sh
|
|
|
28
28
|
```
|
|
29
29
|
|
|
30
30
|
脚本与 `.agents/rules/label-milestone-setup.md` 共同负责:
|
|
31
|
-
-
|
|
32
|
-
-
|
|
33
|
-
-
|
|
31
|
+
- 读取配置的 `labels.in` 映射并保留无关 label
|
|
32
|
+
- 选择 provider 叶子,或返回明确的 no-op/degraded 结果
|
|
33
|
+
- 创建或更新标准 label 集合并输出最终摘要
|
|
34
34
|
- 输出最终执行摘要
|
|
35
35
|
|
|
36
36
|
### 3. 标准分类体系
|
|
@@ -69,8 +69,8 @@ bash .agents/skills/init-labels/scripts/init-labels.sh
|
|
|
69
69
|
#### 4.3 写入配置并创建 label
|
|
70
70
|
|
|
71
71
|
1. 将最终映射写入 `.agents/.airc.json` 的 `labels.in` 字段。
|
|
72
|
-
2.
|
|
73
|
-
3.
|
|
72
|
+
2. 执行 `bash .agents/skills/init-labels/scripts/init-labels.sh`,为每个映射 key 创建或更新 `in: {key}` label。
|
|
73
|
+
3. 询问用户确认后,再使用 `--cleanup-stale-in` 重新执行脚本,清理不在最终映射中的旧 `in:` label。
|
|
74
74
|
|
|
75
75
|
### 5. 输出与行为保证
|
|
76
76
|
|
|
@@ -82,7 +82,7 @@ bash .agents/skills/init-labels/scripts/init-labels.sh
|
|
|
82
82
|
- 仍然存在的未匹配平台预置 labels
|
|
83
83
|
|
|
84
84
|
执行说明:
|
|
85
|
-
-
|
|
85
|
+
- 整个操作具备幂等性,因为 provider 叶子会按覆盖或更新方式处理已有 label。
|
|
86
86
|
- `in:` labels 由 AI 引导步骤和 `.airc.json` 映射统一管理。
|
|
87
87
|
|
|
88
88
|
### 6. 告知用户
|
|
@@ -100,8 +100,7 @@ bash .agents/skills/init-labels/scripts/init-labels.sh
|
|
|
100
100
|
|
|
101
101
|
## 错误处理
|
|
102
102
|
|
|
103
|
-
-
|
|
104
|
-
-
|
|
105
|
-
- 仓库访问失败:提示 "Unable to access the current repository with the platform CLI"
|
|
103
|
+
- provider 能力不可用:如实报告脚本的 `degraded` 或 `no-op` 结果,不得声称远端已变更。
|
|
104
|
+
- provider 认证或仓库访问失败:如实报告脚本的非零退出状态和诊断输出;不得声称远端已变更。
|
|
106
105
|
- 权限不足:提示 "No permission to manage labels in this repository"
|
|
107
106
|
- API 限流:提示 "platform API rate limit reached, please retry later"
|
|
@@ -2,6 +2,20 @@
|
|
|
2
2
|
|
|
3
3
|
set -e
|
|
4
4
|
|
|
5
|
+
cleanup_stale_in=false
|
|
6
|
+
while [ "$#" -gt 0 ]; do
|
|
7
|
+
case "$1" in
|
|
8
|
+
--cleanup-stale-in)
|
|
9
|
+
cleanup_stale_in=true
|
|
10
|
+
;;
|
|
11
|
+
*)
|
|
12
|
+
echo "Unknown option: $1" >&2
|
|
13
|
+
exit 2
|
|
14
|
+
;;
|
|
15
|
+
esac
|
|
16
|
+
shift
|
|
17
|
+
done
|
|
18
|
+
|
|
5
19
|
if ! command -v gh >/dev/null 2>&1; then
|
|
6
20
|
echo "GitHub CLI (\`gh\`) is not installed"
|
|
7
21
|
exit 1
|
|
@@ -53,11 +67,46 @@ help wanted 008672 Extra attention is needed
|
|
|
53
67
|
dependencies 0366d6 Pull requests that update a dependency file
|
|
54
68
|
EOF
|
|
55
69
|
|
|
70
|
+
node - ".agents/.airc.json" > "$tmpdir/in.tsv" <<'NODE'
|
|
71
|
+
const fs = require("node:fs");
|
|
72
|
+
|
|
73
|
+
const configPath = process.argv[2];
|
|
74
|
+
const config = JSON.parse(fs.readFileSync(configPath, "utf8"));
|
|
75
|
+
const mapping = config.labels?.in;
|
|
76
|
+
if (mapping === undefined) process.exit(0);
|
|
77
|
+
if (!mapping || typeof mapping !== "object" || Array.isArray(mapping)) {
|
|
78
|
+
throw new Error("labels.in must be an object");
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
for (const key of Object.keys(mapping).sort()) {
|
|
82
|
+
if (!key || key.includes("\n") || key.includes("\r") || key.includes("\t")) {
|
|
83
|
+
throw new Error("labels.in keys must be non-empty single-line values");
|
|
84
|
+
}
|
|
85
|
+
process.stdout.write(`in: ${key}\tBFD4F2\tModule label for ${key}\n`);
|
|
86
|
+
}
|
|
87
|
+
NODE
|
|
88
|
+
|
|
89
|
+
cut -f1 "$tmpdir/in.tsv" > "$tmpdir/in-names.txt"
|
|
90
|
+
|
|
91
|
+
cat "$tmpdir/in.tsv" >> "$tmpdir/common.tsv"
|
|
92
|
+
|
|
56
93
|
while IFS="$(printf '\t')" read -r name color description; do
|
|
57
94
|
[ -n "$name" ] || continue
|
|
58
95
|
gh label create "$name" --color "$color" --description "$description" --force
|
|
59
96
|
done < "$tmpdir/common.tsv"
|
|
60
97
|
|
|
98
|
+
if [ "$cleanup_stale_in" = true ]; then
|
|
99
|
+
while IFS= read -r name; do
|
|
100
|
+
case "$name" in
|
|
101
|
+
in:*)
|
|
102
|
+
if ! grep -Fqx "$name" "$tmpdir/in-names.txt"; then
|
|
103
|
+
gh label delete "$name" --yes
|
|
104
|
+
fi
|
|
105
|
+
;;
|
|
106
|
+
esac
|
|
107
|
+
done < "$tmpdir/existing-names.txt"
|
|
108
|
+
fi
|
|
109
|
+
|
|
61
110
|
gh label list --limit 200 --json name --jq '.[].name' > "$tmpdir/final-names.txt"
|
|
62
111
|
cp "$tmpdir/final-names.txt" "$tmpdir/final.txt"
|
|
63
112
|
|
|
@@ -69,11 +118,13 @@ for label in bug documentation duplicate enhancement invalid question wontfix; d
|
|
|
69
118
|
done
|
|
70
119
|
|
|
71
120
|
common_count="$(wc -l < "$tmpdir/common.tsv" | tr -d ' ')"
|
|
121
|
+
dynamic_count="$(wc -l < "$tmpdir/in.tsv" | tr -d ' ')"
|
|
72
122
|
|
|
73
123
|
echo "GitHub Labels initialized."
|
|
74
124
|
echo
|
|
75
125
|
echo "Summary:"
|
|
76
126
|
echo "- Common labels created or updated: $common_count"
|
|
127
|
+
echo "- in: labels created or updated: $dynamic_count"
|
|
77
128
|
echo "- Exact-match GitHub defaults overwritten: good first issue, help wanted"
|
|
78
129
|
|
|
79
130
|
if [ -s "$tmpdir/unmatched-defaults.txt" ]; then
|
|
@@ -87,4 +138,9 @@ echo
|
|
|
87
138
|
echo "Notes:"
|
|
88
139
|
echo "- theme: labels were intentionally not created."
|
|
89
140
|
echo "- The operation is idempotent because every label uses gh label create --force."
|
|
90
|
-
echo "- in: labels are
|
|
141
|
+
echo "- in: labels are derived from .agents/.airc.json labels.in."
|
|
142
|
+
if [ "$cleanup_stale_in" = true ]; then
|
|
143
|
+
echo "- Stale in: labels were removed only for labels absent from the confirmed mapping."
|
|
144
|
+
else
|
|
145
|
+
echo "- Stale in: labels were preserved; pass --cleanup-stale-in after mapping confirmation to remove them."
|
|
146
|
+
fi
|
|
@@ -2,5 +2,31 @@
|
|
|
2
2
|
|
|
3
3
|
set -e
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
cleanup_stale_in=false
|
|
6
|
+
while [ "$#" -gt 0 ]; do
|
|
7
|
+
case "$1" in
|
|
8
|
+
--cleanup-stale-in)
|
|
9
|
+
cleanup_stale_in=true
|
|
10
|
+
;;
|
|
11
|
+
*)
|
|
12
|
+
echo "Unknown option: $1" >&2
|
|
13
|
+
exit 2
|
|
14
|
+
;;
|
|
15
|
+
esac
|
|
16
|
+
shift
|
|
17
|
+
done
|
|
18
|
+
|
|
19
|
+
node - "$cleanup_stale_in" <<'NODE'
|
|
20
|
+
const cleanupStaleIn = process.argv[2] === "true";
|
|
21
|
+
process.stdout.write(`${JSON.stringify({
|
|
22
|
+
status: "degraded",
|
|
23
|
+
operation: "init-labels",
|
|
24
|
+
error: {
|
|
25
|
+
code: "PLATFORM_LABELS_UNSUPPORTED",
|
|
26
|
+
message: cleanupStaleIn
|
|
27
|
+
? "The current platform does not provide a label adapter; stale labels were not removed."
|
|
28
|
+
: "The current platform does not provide a label adapter."
|
|
29
|
+
}
|
|
30
|
+
})}\n`);
|
|
31
|
+
NODE
|
|
6
32
|
exit 0
|
|
@@ -15,7 +15,7 @@ Initialize the repository's standard milestones taxonomy.
|
|
|
15
15
|
|
|
16
16
|
Confirm that:
|
|
17
17
|
- read `.agents/rules/label-milestone-setup.md` first
|
|
18
|
-
-
|
|
18
|
+
- the requested milestone arguments are ready
|
|
19
19
|
|
|
20
20
|
If any prerequisite fails, stop and report the matching error.
|
|
21
21
|
|
|
@@ -31,7 +31,7 @@ The script and `.agents/rules/label-milestone-setup.md` are responsible for:
|
|
|
31
31
|
- Creating and cleaning up a temporary workspace
|
|
32
32
|
- Detecting whether `--history` was requested
|
|
33
33
|
- Scanning all `v*` Git tags, selecting the highest valid version by SemVer precedence, and using compatibility default `0.1.0` when none is valid, without reading ecosystem manifests
|
|
34
|
-
-
|
|
34
|
+
- Letting the provider leaf list and write current milestones
|
|
35
35
|
- Building the desired milestone set and creating only the missing titles
|
|
36
36
|
- Printing the final execution summary
|
|
37
37
|
|
|
@@ -78,9 +78,7 @@ Next step - initialize labels (optional):
|
|
|
78
78
|
|
|
79
79
|
## Error Handling
|
|
80
80
|
|
|
81
|
-
-
|
|
82
|
-
- Authentication failed: prompt "the platform CLI is not authenticated"
|
|
83
|
-
- Repository access failed: prompt "Unable to access the current repository with the platform CLI"
|
|
81
|
+
- Provider capability, authentication, or repository access failure: report the script's non-zero exit status and diagnostic output; do not claim remote changes.
|
|
84
82
|
- Version detection failed: prompt "Unable to determine current version baseline"
|
|
85
83
|
- No valid SemVer `v*` tags found in `--history` mode: prompt "No valid SemVer history tags found matching v*; only standard milestones will be created"
|
|
86
84
|
- Permission error: prompt "No permission to manage milestones in this repository"
|
|
@@ -15,7 +15,7 @@ description: >
|
|
|
15
15
|
|
|
16
16
|
确认以下条件成立:
|
|
17
17
|
- 执行前先读取 `.agents/rules/label-milestone-setup.md`
|
|
18
|
-
-
|
|
18
|
+
- 请求的 milestone 参数已准备完成
|
|
19
19
|
|
|
20
20
|
如果任一条件失败,停止并输出对应错误。
|
|
21
21
|
|
|
@@ -31,7 +31,7 @@ bash .agents/skills/init-milestones/scripts/init-milestones.sh "$ARGUMENTS"
|
|
|
31
31
|
- 创建并清理临时工作目录
|
|
32
32
|
- 检测是否传入 `--history`
|
|
33
33
|
- 扫描所有 `v*` Git tag,按 SemVer precedence 选择最高合法版本;没有合法版本时使用兼容默认值 `0.1.0`,且不读取任何生态 manifest
|
|
34
|
-
-
|
|
34
|
+
- 由 provider 叶子读取并写入当前里程碑
|
|
35
35
|
- 构建目标里程碑集合,并且只创建缺失标题
|
|
36
36
|
- 输出最终执行摘要
|
|
37
37
|
|
|
@@ -78,9 +78,7 @@ bash .agents/skills/init-milestones/scripts/init-milestones.sh "$ARGUMENTS"
|
|
|
78
78
|
|
|
79
79
|
## 错误处理
|
|
80
80
|
|
|
81
|
-
-
|
|
82
|
-
- 认证失败:提示 "the platform CLI is not authenticated"
|
|
83
|
-
- 仓库访问失败:提示 "Unable to access the current repository with the platform CLI"
|
|
81
|
+
- provider 能力、认证或仓库访问失败:如实报告脚本的非零退出状态和诊断输出;不得声称远端已变更。
|
|
84
82
|
- 版本解析失败:提示 "Unable to determine current version baseline"
|
|
85
83
|
- `--history` 模式下未找到合法 SemVer `v*` git tags:提示 "No valid SemVer history tags found matching v*; only standard milestones will be created"
|
|
86
84
|
- 权限不足:提示 "No permission to manage milestones in this repository"
|
|
@@ -9,12 +9,13 @@ description: >
|
|
|
9
9
|
# Design Technical Plan
|
|
10
10
|
> `--agent` values are defined in `.agents/rules/task-management.md` under “Collaborator Token Specification”.
|
|
11
11
|
|
|
12
|
-
If the entry operands contain `--orchestrated`, bind `{execution-flag}` to `--orchestrated` and forward it unchanged to the completed event; otherwise bind it to an empty value. Never infer it from `orchestration.json`, environment variables, or prior artifacts.
|
|
12
|
+
If the entry operands contain `--orchestrated`, bind `{execution-flag}` to `--orchestrated` and forward it unchanged to the completed event; otherwise bind it to an empty value. Never infer it from `orchestration.json`, environment variables, or prior artifacts. Lifecycle events also require explicit trigger data: use `{trigger-initiator}=orchestrator` for orchestration and `model` otherwise; `{request-id}` is a stable single-line identifier for this task and artifact round, and `{reason-code}` is `user-request`, `new-requirement`, or `upstream-fact-doubt`. Reuse the same values for started and completed.
|
|
13
13
|
|
|
14
14
|
## Boundary / Critical Rules
|
|
15
15
|
|
|
16
16
|
- This skill only outputs a technical plan document (`plan.md` or `plan-r{N}.md`) and does not modify any business code
|
|
17
17
|
- This is a **mandatory human review checkpoint**; do not automatically proceed to implementation
|
|
18
|
+
- Before generating task or lifecycle Markdown that will be synchronized to an Issue, read `.agents/rules/sync-content-generation.md` and apply its producer-side constraints; the sync path does not parse or rewrite the body
|
|
18
19
|
- When the plan touches compatibility, migration, old formats, or old entry points, read `.agents/rules/compatibility-policy.md` first. Do not design adapters, shims, dual writes, or parallel state machines without passing its admission gate
|
|
19
20
|
- After executing this skill, you **must** immediately update task status in task.md
|
|
20
21
|
|
|
@@ -40,7 +41,7 @@ Before the state check is complete, do not make external-state assertions such a
|
|
|
40
41
|
|
|
41
42
|
## Step Start: Write the started Marker
|
|
42
43
|
|
|
43
|
-
After resolving the artifact context and before this round's first artifact action, run `agent-infra-internal task-event {task-id} plan.started --agent {standard-agent-token}` and verify the returned `artifactContext`.
|
|
44
|
+
After resolving the artifact context and before this round's first artifact action, run `agent-infra-internal task-event {task-id} plan.started --agent {standard-agent-token} --initiator {trigger-initiator} --request-id {request-id} --reason-code {reason-code}` and verify the returned `artifactContext`.
|
|
44
45
|
|
|
45
46
|
## Steps
|
|
46
47
|
|
|
@@ -114,7 +115,17 @@ Update `.agents/workspace/active/{task-id}/task.md`:
|
|
|
114
115
|
- Overwrite the `effort` field in frontmatter with the new value
|
|
115
116
|
- Append a `## Effort Re-estimate` section to this round's plan artifact `{plan-artifact}`, recording: `effort {old} → {new} (rationale: {short basis grounded in this plan})`
|
|
116
117
|
If the re-estimated value matches the current value, skip it: do not write the `## Effort Re-estimate` section. The Flow A sync that follows reads the possibly updated frontmatter and propagates the new value to the Issue automatically.
|
|
117
|
-
After the
|
|
118
|
+
After writing the local artifact, run the pre-completion gate:
|
|
119
|
+
|
|
120
|
+
```bash
|
|
121
|
+
agent-infra-internal task-artifact {task-id} finalize-local --family plan --artifact {plan-artifact}
|
|
122
|
+
```
|
|
123
|
+
|
|
124
|
+
- On `status=passed`, save that result's `artifactSha256` and `semanticDigest`; the finalizer has recorded the matching one-shot local provenance intent.
|
|
125
|
+
- On `status=failed` with `repairable=true`, apply only the diagnostic's `replace-line` operation once, then rerun the same command completely; count an attempt only after bytes change, up to 8 attempts.
|
|
126
|
+
- The first repairable failure's `semanticDigest` is retained as the baseline; a retried `status=passed` result must match it. On baseline mismatch, any other failure, no progress, or a repeated diagnostic, stop without publishing a completed event.
|
|
127
|
+
|
|
128
|
+
Use the digests from that same `status=passed` result in `agent-infra-internal task-event {task-id} plan.completed --agent {standard-agent-token} --initiator {trigger-initiator} --request-id {request-id} --reason-code {reason-code} --artifact {plan-artifact} --artifact-sha256 {artifact-sha256} --semantic-digest {semantic-digest} {execution-flag}` so the core records the link, stage, agent, metadata, and Activity Log atomically.
|
|
118
129
|
- {YYYY-MM-DD HH:mm:ss±HH:MM} — **Plan Task (Round {N})** by {agent} — Plan completed, awaiting human review → {artifact-filename}
|
|
119
130
|
```
|
|
120
131
|
|
|
@@ -9,11 +9,12 @@ description: >
|
|
|
9
9
|
# 设计技术方案
|
|
10
10
|
> `--agent` 取值见 `.agents/rules/task-management.md`「合作者 token 规范」。
|
|
11
11
|
|
|
12
|
-
若入口业务操作数包含 `--orchestrated`,绑定 `{execution-flag}` = `--orchestrated` 并原样转发给 completed 事件;否则绑定为空。不得从 `orchestration.json
|
|
12
|
+
若入口业务操作数包含 `--orchestrated`,绑定 `{execution-flag}` = `--orchestrated` 并原样转发给 completed 事件;否则绑定为空。不得从 `orchestration.json`、环境变量或历史产物推断该标记。生命周期事件还必须携带显式触发信息:编排调用使用 `{trigger-initiator}=orchestrator`,否则使用 `model`;`{request-id}` 是本任务与本轮产物的稳定单行标识,`{reason-code}` 使用 `user-request`、`new-requirement` 或 `upstream-fact-doubt`;started 与 completed 使用同一组值。
|
|
13
13
|
|
|
14
14
|
## 行为边界 / 关键规则
|
|
15
15
|
|
|
16
16
|
- 本技能仅产出技术方案文档(`plan.md` 或 `plan-r{N}.md`)—— 不修改任何业务代码
|
|
17
|
+
- 生成会同步到 Issue 的任务或生命周期 Markdown 前,先读取 `.agents/rules/sync-content-generation.md` 并遵循其中的生成端约束;同步端不解析或改写正文
|
|
17
18
|
- 这是一个**强制性的人工审查检查点** —— 不要自动进入实现阶段
|
|
18
19
|
- 方案涉及兼容、迁移、旧格式或旧入口时,先读取 `.agents/rules/compatibility-policy.md`;未通过准入门槛时不得设计 adapter、shim、双写或并行状态机
|
|
19
20
|
- 执行本技能后,你**必须**立即更新 task.md 中的任务状态
|
|
@@ -43,7 +44,7 @@ agent-infra-internal task-snapshot {task-id} --format text
|
|
|
43
44
|
确认前置条件和轮次后、本轮第一个产出动作之前执行:
|
|
44
45
|
|
|
45
46
|
```bash
|
|
46
|
-
agent-infra-internal task-event {task-id} plan.started --agent {standard-agent-token}
|
|
47
|
+
agent-infra-internal task-event {task-id} plan.started --agent {standard-agent-token} --initiator {trigger-initiator} --request-id {request-id} --reason-code {reason-code}
|
|
47
48
|
```
|
|
48
49
|
|
|
49
50
|
## 执行步骤
|
|
@@ -113,7 +114,14 @@ agent-infra-internal task-event {task-id} plan.started --agent {standard-agent-t
|
|
|
113
114
|
- 用新值覆盖 frontmatter 的 `effort` 字段
|
|
114
115
|
- 在本轮方案产物 `{plan-artifact}` 中追加 `## 工作量重估` 段,记录一条:`effort {old} → {new} (rationale: {基于本轮方案的简短依据})`
|
|
115
116
|
若重估值与当前值一致,跳过:不写入 `## 工作量重估` 段。后续 Flow A 同步会读取可能更新过的 frontmatter,并自动把新值同步到 Issue。
|
|
116
|
-
-
|
|
117
|
+
- 完成本地产物后,先执行本地完成前门禁:
|
|
118
|
+
```bash
|
|
119
|
+
agent-infra-internal task-artifact {task-id} finalize-local --family plan --artifact {plan-artifact}
|
|
120
|
+
```
|
|
121
|
+
- `status=passed`:保存本次返回的 `artifactSha256` 和 `semanticDigest`;finalizer 已记录对应的一次性本地 provenance intent。
|
|
122
|
+
- `status=failed` 且 `repairable=true`:仅按诊断中的 `replace-line` 操作做一次最小修改,然后完整重跑同一命令;实际字节发生变化才计一次 `repairAttempts`,最多 8 次。
|
|
123
|
+
- 首次可修复失败的 `semanticDigest` 由 finalizer 保留为基线;重试后的 `status=passed` 必须匹配该基线。基线不匹配、其他失败、无进展或重复诊断:停止,不发布 completed 事件。
|
|
124
|
+
- 使用同一次 `status=passed` 返回的摘要执行 `agent-infra-internal task-event {task-id} plan.completed --agent {standard-agent-token} --initiator {trigger-initiator} --request-id {request-id} --reason-code {reason-code} --artifact {plan-artifact} --artifact-sha256 {artifact-sha256} --semantic-digest {semantic-digest} {execution-flag}`,由核心登记链接、阶段、代理、时间、版本和 Activity Log。
|
|
117
125
|
|
|
118
126
|
如果 task.md 中存在有效的 `issue_number`,执行以下同步操作(任一失败则跳过并继续):
|
|
119
127
|
- 调用 `agent-infra-internal platform-issue sync {task-id} --agent {standard-agent-token} --status pending-design-work --fields`
|
|
@@ -9,13 +9,14 @@ description: >
|
|
|
9
9
|
# Requirement Analysis Review
|
|
10
10
|
> `--agent` values are defined in `.agents/rules/task-management.md` under “Collaborator Token Specification”.
|
|
11
11
|
|
|
12
|
-
If the entry operands contain `--orchestrated`, bind `{execution-flag}` to `--orchestrated` and forward it unchanged to both the summary finalizer and completed event; otherwise bind it to an empty value. Never infer it from `orchestration.json`, environment variables, or prior artifacts.
|
|
12
|
+
If the entry operands contain `--orchestrated`, bind `{execution-flag}` to `--orchestrated` and forward it unchanged to both the summary finalizer and completed event; otherwise bind it to an empty value. Never infer it from `orchestration.json`, environment variables, or prior artifacts. Lifecycle events also require explicit trigger data: use `{trigger-initiator}=orchestrator` for orchestration and `model` otherwise; `{request-id}` is a stable single-line identifier for this task and artifact round, and `{reason-code}` is `user-request` or `review-finding`. Reuse the same values for started and completed.
|
|
13
13
|
|
|
14
14
|
Review the latest analysis artifact and produce `review-analysis.md` or `review-analysis-r{N}.md`.
|
|
15
15
|
|
|
16
16
|
## Boundary / Critical Rules
|
|
17
17
|
|
|
18
18
|
- This skill only reviews analysis artifacts and writes a report; it does not modify product code.
|
|
19
|
+
- Before generating task or lifecycle Markdown that will be synchronized to an Issue, read `.agents/rules/sync-content-generation.md` and apply its producer-side constraints; the sync path does not parse or rewrite the body
|
|
19
20
|
- After executing this skill, you **must** immediately update task.md.
|
|
20
21
|
|
|
21
22
|
Version stamp rule: when creating or updating `task.md` frontmatter, read `.agents/rules/version-stamp.md` first and write or refresh `agent_infra_version`.
|
|
@@ -38,7 +39,7 @@ agent-infra-internal task-snapshot {task-id} --format text
|
|
|
38
39
|
|
|
39
40
|
## Step Start: Declare the started Event
|
|
40
41
|
|
|
41
|
-
After resolving the artifact context and before this round's first artifact action, run `agent-infra-internal task-event {task-id} review-analysis.started --agent {standard-agent-token}`.
|
|
42
|
+
After resolving the artifact context and before this round's first artifact action, run `agent-infra-internal task-event {task-id} review-analysis.started --agent {standard-agent-token} --initiator {trigger-initiator} --request-id {request-id} --reason-code {reason-code}`.
|
|
42
43
|
|
|
43
44
|
## Steps
|
|
44
45
|
|
|
@@ -69,7 +70,7 @@ Create `.agents/workspace/active/{task-id}/{review-artifact}`.
|
|
|
69
70
|
|
|
70
71
|
### 6. Update Task Status
|
|
71
72
|
|
|
72
|
-
After the report, submit each new finding with `agent-infra-internal task-ledger {task-id} finding-upsert --stage analysis --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-review {task-id} finalize-summary --stage analysis --artifact {review-artifact} {execution-flag}`
|
|
73
|
+
After the report, submit each new finding with `agent-infra-internal task-ledger {task-id} finding-upsert --stage analysis --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, make the initial call to `agent-infra-internal task-review {task-id} finalize-summary --stage analysis --artifact {review-artifact} {execution-flag}`; after a failure, follow `.agents/rules/local-artifact-repair.md` to decide whether to edit and rerun, and never treat an error type or `changed=false` as automatic authorization.
|
|
73
74
|
|
|
74
75
|
Bind and reuse this structured mapping from that one response:
|
|
75
76
|
|
|
@@ -79,13 +80,13 @@ Bind and reuse this structured mapping from that one response:
|
|
|
79
80
|
{unresolved-minor} = stageStatus.unresolvedFindingCounts.minor
|
|
80
81
|
```
|
|
81
82
|
|
|
82
|
-
The intent atomically finalizes the report summary and returns the same ledger snapshot. Do not call `stage-status`, replace placeholders manually, or rescan the finding list.
|
|
83
|
+
The intent atomically finalizes the report summary and returns the same ledger snapshot. Do not call `stage-status`, replace placeholders manually, or rescan the finding list. After a failure, the model may edit the same controlled artifact and rerun the same intent only when the shared rule's mechanical gates pass; reassess convergence after every failure. The final complete result determines the verdict and counts from that same snapshot: `stageStatus.canAdvance=true` with an Approved conclusion permits cross-stage advancement; `stageStatus.canAdvance=false` still requires `agent-infra-internal task-event {task-id} review-analysis.completed --agent {standard-agent-token} --initiator {trigger-initiator} --request-id {request-id} --reason-code {reason-code} --artifact {review-artifact} --verdict {approved|changes-requested|rejected} --blockers {unresolved-blockers} --major {unresolved-major} --minor {unresolved-minor} --manual-validation {n} {execution-flag}`, using `changes-requested` and routing to same-stage revision/review (use `rejected` when the report explicitly rejects). On failure, model stop, lack of progress, or the emergency cap, do not publish a completion event or cross-stage command; use the `repair-stop` scenario in `reference/output-templates.md` to show existing summary/findings, the artifact, actual repair attempts, the last diagnostic, and the stop reason.
|
|
83
84
|
|
|
84
85
|
`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.
|
|
85
86
|
|
|
86
87
|
If task.md has a valid `issue_number`, run `agent-infra-internal platform-comment sync {task-id} --kind task --agent {standard-agent-token}`, then `agent-infra-internal platform-comment sync {task-id} --kind artifact --artifact {review-artifact} --agent {standard-agent-token}`.
|
|
87
88
|
|
|
88
|
-
Before writing the summary, the finalization intent checks decision-detail ids;
|
|
89
|
+
Before writing the summary, the finalization intent checks decision-detail ids; any visible duplicate returns a structured failure and preserves the artifact bytes, while the model decides whether a minimal edit is safe under the shared rule. If the safety gates fail, diagnostics repeat, no byte-level progress occurs, or the emergency cap is reached, stop before the completion event; the stop path must still show the existing review result instead of hiding the artifact.
|
|
89
90
|
|
|
90
91
|
### 7. Run Completion Gate
|
|
91
92
|
|
|
@@ -9,13 +9,14 @@ description: >
|
|
|
9
9
|
# 需求分析审查
|
|
10
10
|
> `--agent` 取值见 `.agents/rules/task-management.md`「合作者 token 规范」。
|
|
11
11
|
|
|
12
|
-
若入口业务操作数包含 `--orchestrated`,绑定 `{execution-flag}` = `--orchestrated` 并原样转发给 summary finalizer 与 completed 事件;否则绑定为空。不得从 `orchestration.json
|
|
12
|
+
若入口业务操作数包含 `--orchestrated`,绑定 `{execution-flag}` = `--orchestrated` 并原样转发给 summary finalizer 与 completed 事件;否则绑定为空。不得从 `orchestration.json`、环境变量或历史产物推断该标记。生命周期事件还必须携带显式触发信息:编排调用使用 `{trigger-initiator}=orchestrator`,否则使用 `model`;`{request-id}` 是本任务与本轮产物的稳定单行标识,`{reason-code}` 使用 `user-request` 或 `review-finding`;started 与 completed 使用同一组值。
|
|
13
13
|
|
|
14
14
|
审查最新需求分析产物,并产出 `review-analysis.md` 或 `review-analysis-r{N}.md`。
|
|
15
15
|
|
|
16
16
|
## 行为边界 / 关键规则
|
|
17
17
|
|
|
18
18
|
- 本技能只审查分析产物并写报告,不修改业务代码
|
|
19
|
+
- 生成会同步到 Issue 的任务或生命周期 Markdown 前,先读取 `.agents/rules/sync-content-generation.md` 并遵循其中的生成端约束;同步端不解析或改写正文
|
|
19
20
|
- 执行本技能后,你**必须**立即更新 task.md
|
|
20
21
|
|
|
21
22
|
版本戳规则:创建或更新 `task.md` frontmatter 时,先读取 `.agents/rules/version-stamp.md`,并写入或刷新 `agent_infra_version`。
|
|
@@ -40,7 +41,7 @@ agent-infra-internal task-snapshot {task-id} --format text
|
|
|
40
41
|
|
|
41
42
|
## 步骤开始:声明 started 事件
|
|
42
43
|
|
|
43
|
-
确认前置条件和产物上下文后、本轮第一个产出动作之前执行 `agent-infra-internal task-event {task-id} review-analysis.started --agent {standard-agent-token}`。
|
|
44
|
+
确认前置条件和产物上下文后、本轮第一个产出动作之前执行 `agent-infra-internal task-event {task-id} review-analysis.started --agent {standard-agent-token} --initiator {trigger-initiator} --request-id {request-id} --reason-code {reason-code}`。
|
|
44
45
|
|
|
45
46
|
## 执行步骤
|
|
46
47
|
### 1. 验证前置条件
|
|
@@ -72,7 +73,7 @@ agent-infra-internal task-snapshot {task-id} --format text
|
|
|
72
73
|
|
|
73
74
|
### 6. 更新任务状态
|
|
74
75
|
|
|
75
|
-
报告完成后,新 finding 逐条调用 `agent-infra-internal task-ledger {task-id} finding-upsert --stage analysis --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 {相称证据}
|
|
76
|
+
报告完成后,新 finding 逐条调用 `agent-infra-internal task-ledger {task-id} finding-upsert --stage analysis --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-review {task-id} finalize-summary --stage analysis --artifact {review-artifact} {execution-flag}`;失败后是否继续编辑并重跑,必须遵循 `.agents/rules/local-artifact-repair.md`,不能把失败类型或 `changed=false` 当作自动授权。
|
|
76
77
|
|
|
77
78
|
从该次返回值绑定并复用以下结构化映射:
|
|
78
79
|
|
|
@@ -82,13 +83,13 @@ agent-infra-internal task-snapshot {task-id} --format text
|
|
|
82
83
|
{unresolved-minor} = stageStatus.unresolvedFindingCounts.minor
|
|
83
84
|
```
|
|
84
85
|
|
|
85
|
-
该 intent 原子最终化报告摘要并返回同一次账本快照;不得再调用 `stage-status
|
|
86
|
+
该 intent 原子最终化报告摘要并返回同一次账本快照;不得再调用 `stage-status`、手工替换占位符或扫描问题清单。失败后,模型只能在共享规则的机械安全门通过时修改同一个受控 artifact,并完整重跑相同 intent;每次失败都重新判断是否收敛。最终一次完整成功返回决定同一快照的 verdict 和计数:`stageStatus.canAdvance=true` 且结论为 Approved 时允许跨阶段推进;`stageStatus.canAdvance=false` 时仍须执行 `agent-infra-internal task-event {task-id} review-analysis.completed --agent {standard-agent-token} --initiator {trigger-initiator} --request-id {request-id} --reason-code {reason-code} --artifact {review-artifact} --verdict {approved|changes-requested|rejected} --blockers {unresolved-blockers} --major {unresolved-major} --minor {unresolved-minor} --manual-validation {n} {execution-flag}`,使用 `changes-requested` 并路由到同阶段修订/复审(报告明确拒绝时使用 `rejected`)。失败、模型停止、无进展或紧急熔断时,不发布完成事件或跨阶段命令,但必须按 `reference/output-templates.md` 的 `repair-stop` 场景展示已有 summary/findings、artifact、实际修复次数、最后诊断和停止原因。
|
|
86
87
|
|
|
87
88
|
`manual-validation` 是 `ai task log` 中 review 行「人工校验点」(EN `Manual-validation`)计数的数据源;不要新增并行人工验证字段。
|
|
88
89
|
|
|
89
90
|
如果 task.md 中存在有效的 `issue_number`,调用 `agent-infra-internal platform-comment sync {task-id} --kind task --agent {standard-agent-token}`,再调用 `agent-infra-internal platform-comment sync {task-id} --kind artifact --artifact {review-artifact} --agent {standard-agent-token}`;失败按 `.agents/rules/issue-sync.md` 记录 warning。
|
|
90
91
|
|
|
91
|
-
最终化 intent 会在写入摘要前检查详情块 ID
|
|
92
|
+
最终化 intent 会在写入摘要前检查详情块 ID;任何可见重复都返回结构化失败并保持 artifact 字节不变,由模型按共享规则判断是否进行最小编辑。无法通过安全门、诊断重复、没有实际字节变化或达到紧急熔断时,停止在完成事件之前;停止路径仍必须展示已有审查结果,不得吞掉 artifact 内容。
|
|
92
93
|
|
|
93
94
|
### 7. 完成校验
|
|
94
95
|
|
|
@@ -18,6 +18,24 @@ Rules:
|
|
|
18
18
|
- The selected scenario must generate `{next-step-commands}` through the shared helper
|
|
19
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
20
|
|
|
21
|
+
### Scenario R: Finalization stopped with results visible
|
|
22
|
+
|
|
23
|
+
When the finalizer fails, or the model stops because of a safety gate, lack of progress, repeated diagnostics, or the emergency cap, use this scenario. Do not call the shared helper or output cross-stage commands.
|
|
24
|
+
|
|
25
|
+
```text
|
|
26
|
+
Task {task-id} review results were generated, but lifecycle advancement stopped.
|
|
27
|
+
- Review artifact: .agents/workspace/active/{task-id}/{review-artifact}
|
|
28
|
+
- Last valid summary/findings: {last-readable-review-result}
|
|
29
|
+
- Local repair attempts: {repairAttempts}
|
|
30
|
+
- Last diagnostic: {last-structured-diagnostic}
|
|
31
|
+
- Stop reason: {stop-reason}
|
|
32
|
+
- Completion event: not published | Cross-stage commands: not generated
|
|
33
|
+
|
|
34
|
+
Note: only lifecycle advancement stopped; the existing review result remains available. Handle it manually or rerun the current review skill.
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
If the summary cannot be parsed safely, set `{last-readable-review-result}` to "summary could not be parsed safely" and retain the artifact path and raw structured diagnostic; do not infer counts or add a conclusion.
|
|
38
|
+
|
|
21
39
|
### Scenario A: Approved with no findings
|
|
22
40
|
|
|
23
41
|
Populate `{next-step-commands}` for this scenario by running `agent-infra-internal agent-client next-steps --skill plan-task --task-ref {task-ref}`.
|
|
@@ -18,6 +18,24 @@
|
|
|
18
18
|
- 所选场景必须通过统一 helper 生成 `{next-step-commands}`
|
|
19
19
|
- 计数行固定显示 4 个数字。`人工裁决`(`{h}`)是本阶段 `needs-human-decision` 行数;它属于未闭环账本状态,因此 `{h} > 0` 时 `canAdvance=false`,必须按 `.agents/rules/next-step-output.md` 的「人工裁决待办前置块」展开详情,并只输出修订与复审路径。
|
|
20
20
|
|
|
21
|
+
### 场景 R:最终化停止但结果可见
|
|
22
|
+
|
|
23
|
+
当 finalizer 失败,或模型因安全门、无进展、重复诊断或紧急熔断停止时,使用本场景,不调用统一 helper,也不输出跨阶段命令。
|
|
24
|
+
|
|
25
|
+
```text
|
|
26
|
+
任务 {task-id} 审查结果已生成,但生命周期未推进。
|
|
27
|
+
- 审查产物:.agents/workspace/active/{task-id}/{review-artifact}
|
|
28
|
+
- 最后有效 summary/findings:{last-readable-review-result}
|
|
29
|
+
- 本地修复次数:{repairAttempts}
|
|
30
|
+
- 最后诊断:{last-structured-diagnostic}
|
|
31
|
+
- 停止原因:{stop-reason}
|
|
32
|
+
- 完成事件:未发布 | 跨阶段命令:未生成
|
|
33
|
+
|
|
34
|
+
说明:本次仅停止生命周期推进,已有审查结果仍可查看。请先进行人工处理,或重新运行当前审查技能。
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
如果 summary 无法安全解析,`{last-readable-review-result}` 必须改为“摘要不可安全解析”,并保留 artifact 路径和原始结构化诊断;不得推算计数或补写结论。
|
|
38
|
+
|
|
21
39
|
### 场景 A:通过且无问题
|
|
22
40
|
|
|
23
41
|
使用 `agent-infra-internal agent-client next-steps --skill plan-task --task-ref {task-ref}` 生成本场景的 `{next-step-commands}`。
|