@rpamis/comet 0.3.8 → 0.4.0-beta.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -21
- package/README.md +381 -234
- package/assets/manifest.json +33 -12
- package/assets/skills/comet/SKILL.md +87 -102
- package/assets/skills/comet/reference/auto-transition.md +1 -1
- package/assets/skills/comet/reference/comet-yaml-fields.md +11 -4
- package/assets/skills/comet/reference/context-recovery.md +12 -2
- package/assets/skills/comet/reference/debug-gate.md +17 -1
- package/assets/skills/comet/reference/decision-point.md +13 -2
- package/assets/skills/comet/reference/dirty-worktree.md +59 -59
- package/assets/skills/comet/reference/intent-frame.md +74 -0
- package/assets/skills/comet/reference/scripts.md +69 -0
- package/assets/skills/comet/reference/subagent-dispatch.md +79 -23
- package/assets/skills/comet/rules/comet-phase-guard.en.md +43 -11
- package/assets/skills/comet/rules/comet-phase-guard.md +44 -11
- package/assets/skills/comet/runtime/classic/checks.yaml +6 -0
- package/assets/skills/comet/runtime/classic/guardrails.yaml +13 -0
- package/assets/skills/comet/runtime/classic/skill.yaml +122 -0
- package/assets/skills/comet/scripts/comet-archive.mjs +3 -0
- package/assets/skills/comet/scripts/comet-env.mjs +15 -0
- package/assets/skills/comet/scripts/comet-guard.mjs +3 -0
- package/assets/skills/comet/scripts/comet-handoff.mjs +3 -0
- package/assets/skills/comet/scripts/comet-hook-guard.mjs +3 -0
- package/assets/skills/comet/scripts/comet-intent.mjs +3 -0
- package/assets/skills/comet/scripts/comet-runtime.mjs +12857 -0
- package/assets/skills/comet/scripts/comet-state.mjs +3 -0
- package/assets/skills/comet/scripts/comet-yaml-validate.mjs +3 -0
- package/assets/skills/comet-any/SKILL.md +118 -0
- package/assets/skills/comet-any/reference/authored-zone-example.md +100 -0
- package/assets/skills/comet-any/reference/authoring-protocol.json +91 -0
- package/assets/skills/comet-any/reference/authoring-subagents.md +102 -0
- package/assets/skills/comet-any/reference/bundle-authoring.md +166 -0
- package/assets/skills/comet-any/reference/eval-provider.md +83 -0
- package/assets/skills/comet-any/reference/subagents/pause-points-author.md +75 -0
- package/assets/skills/comet-any/reference/subagents/reference-author.md +77 -0
- package/assets/skills/comet-any/reference/subagents/script-author.md +81 -0
- package/assets/skills/comet-any/reference/subagents/skill-core-author.md +129 -0
- package/assets/skills/comet-any/reference/subagents/skill-reviewer.md +124 -0
- package/assets/skills/comet-any/reference/subagents/workflow-entry-author.md +100 -0
- package/assets/skills/comet-archive/SKILL.md +25 -15
- package/assets/skills/comet-build/SKILL.md +51 -40
- package/assets/skills/comet-design/SKILL.md +14 -18
- package/assets/skills/comet-hotfix/SKILL.md +33 -43
- package/assets/skills/comet-open/SKILL.md +28 -21
- package/assets/skills/comet-tweak/SKILL.md +71 -65
- package/assets/skills/comet-verify/SKILL.md +31 -35
- package/assets/skills-zh/comet/SKILL.md +88 -102
- package/assets/skills-zh/comet/reference/auto-transition.md +3 -3
- package/assets/skills-zh/comet/reference/comet-yaml-fields.md +11 -4
- package/assets/skills-zh/comet/reference/context-recovery.md +12 -2
- package/assets/skills-zh/comet/reference/debug-gate.md +19 -3
- package/assets/skills-zh/comet/reference/decision-point.md +13 -2
- package/assets/skills-zh/comet/reference/dirty-worktree.md +59 -59
- package/assets/skills-zh/comet/reference/intent-frame.md +74 -0
- package/assets/skills-zh/comet/reference/scripts.md +69 -0
- package/assets/skills-zh/comet/reference/subagent-dispatch.md +79 -23
- package/assets/skills-zh/comet/runtime/classic/checks.yaml +6 -0
- package/assets/skills-zh/comet/runtime/classic/guardrails.yaml +13 -0
- package/assets/skills-zh/comet/runtime/classic/skill.yaml +122 -0
- package/assets/skills-zh/comet-any/SKILL.md +118 -0
- package/assets/skills-zh/comet-any/reference/authored-zone-example.md +100 -0
- package/assets/skills-zh/comet-any/reference/authoring-protocol.json +91 -0
- package/assets/skills-zh/comet-any/reference/authoring-subagents.md +107 -0
- package/assets/skills-zh/comet-any/reference/bundle-authoring.md +166 -0
- package/assets/skills-zh/comet-any/reference/eval-provider.md +66 -0
- package/assets/skills-zh/comet-any/reference/subagents/pause-points-author.md +79 -0
- package/assets/skills-zh/comet-any/reference/subagents/reference-author.md +81 -0
- package/assets/skills-zh/comet-any/reference/subagents/script-author.md +84 -0
- package/assets/skills-zh/comet-any/reference/subagents/skill-core-author.md +129 -0
- package/assets/skills-zh/comet-any/reference/subagents/skill-reviewer.md +124 -0
- package/assets/skills-zh/comet-any/reference/subagents/workflow-entry-author.md +98 -0
- package/assets/skills-zh/comet-archive/SKILL.md +25 -15
- package/assets/skills-zh/comet-build/SKILL.md +54 -43
- package/assets/skills-zh/comet-design/SKILL.md +16 -20
- package/assets/skills-zh/comet-hotfix/SKILL.md +37 -47
- package/assets/skills-zh/comet-open/SKILL.md +30 -23
- package/assets/skills-zh/comet-tweak/SKILL.md +70 -63
- package/assets/skills-zh/comet-verify/SKILL.md +30 -32
- package/bin/comet.js +1 -1
- package/dist/{cli → app/cli}/index.d.ts.map +1 -1
- package/dist/app/cli/index.js +430 -0
- package/dist/app/cli/index.js.map +1 -0
- package/dist/app/commands/bundle.d.ts +51 -0
- package/dist/app/commands/bundle.d.ts.map +1 -0
- package/dist/app/commands/bundle.js +387 -0
- package/dist/app/commands/bundle.js.map +1 -0
- package/dist/app/commands/creator.d.ts +14 -0
- package/dist/app/commands/creator.d.ts.map +1 -0
- package/dist/app/commands/creator.js +82 -0
- package/dist/app/commands/creator.js.map +1 -0
- package/dist/app/commands/dashboard.d.ts +16 -0
- package/dist/app/commands/dashboard.d.ts.map +1 -0
- package/dist/app/commands/dashboard.js +53 -0
- package/dist/app/commands/dashboard.js.map +1 -0
- package/dist/{commands → app/commands}/doctor.d.ts +1 -1
- package/dist/app/commands/doctor.d.ts.map +1 -0
- package/dist/{commands → app/commands}/doctor.js +114 -60
- package/dist/app/commands/doctor.js.map +1 -0
- package/dist/app/commands/eval.d.ts +17 -0
- package/dist/app/commands/eval.d.ts.map +1 -0
- package/dist/app/commands/eval.js +169 -0
- package/dist/app/commands/eval.js.map +1 -0
- package/dist/app/commands/i18n.d.ts +4 -0
- package/dist/app/commands/i18n.d.ts.map +1 -0
- package/dist/app/commands/i18n.js +174 -0
- package/dist/app/commands/i18n.js.map +1 -0
- package/dist/{commands → app/commands}/init.d.ts +6 -1
- package/dist/app/commands/init.d.ts.map +1 -0
- package/dist/app/commands/init.js +402 -0
- package/dist/app/commands/init.js.map +1 -0
- package/dist/app/commands/platform-select-prompt.d.ts +38 -0
- package/dist/app/commands/platform-select-prompt.d.ts.map +1 -0
- package/dist/app/commands/platform-select-prompt.js +141 -0
- package/dist/app/commands/platform-select-prompt.js.map +1 -0
- package/dist/app/commands/publish.d.ts +7 -0
- package/dist/app/commands/publish.d.ts.map +1 -0
- package/dist/app/commands/publish.js +14 -0
- package/dist/app/commands/publish.js.map +1 -0
- package/dist/app/commands/skill.d.ts +23 -0
- package/dist/app/commands/skill.d.ts.map +1 -0
- package/dist/app/commands/skill.js +208 -0
- package/dist/app/commands/skill.js.map +1 -0
- package/dist/app/commands/status.d.ts.map +1 -0
- package/dist/app/commands/status.js +159 -0
- package/dist/app/commands/status.js.map +1 -0
- package/dist/{commands → app/commands}/uninstall.d.ts +1 -1
- package/dist/app/commands/uninstall.d.ts.map +1 -0
- package/dist/{commands → app/commands}/uninstall.js +37 -18
- package/dist/app/commands/uninstall.js.map +1 -0
- package/dist/{commands → app/commands}/update.d.ts +6 -4
- package/dist/app/commands/update.d.ts.map +1 -0
- package/dist/{commands → app/commands}/update.js +77 -46
- package/dist/app/commands/update.js.map +1 -0
- package/dist/config/repository-layout.json +98 -0
- package/dist/domains/bundle/authoring.d.ts +82 -0
- package/dist/domains/bundle/authoring.d.ts.map +1 -0
- package/dist/domains/bundle/authoring.js +185 -0
- package/dist/domains/bundle/authoring.js.map +1 -0
- package/dist/domains/bundle/bundle-platform.d.ts +39 -0
- package/dist/domains/bundle/bundle-platform.d.ts.map +1 -0
- package/dist/domains/bundle/bundle-platform.js +287 -0
- package/dist/domains/bundle/bundle-platform.js.map +1 -0
- package/dist/domains/bundle/candidates.d.ts +29 -0
- package/dist/domains/bundle/candidates.d.ts.map +1 -0
- package/dist/domains/bundle/candidates.js +37 -0
- package/dist/domains/bundle/candidates.js.map +1 -0
- package/dist/domains/bundle/compatibility-benchmark.d.ts +12 -0
- package/dist/domains/bundle/compatibility-benchmark.d.ts.map +1 -0
- package/dist/domains/bundle/compatibility-benchmark.js +224 -0
- package/dist/domains/bundle/compatibility-benchmark.js.map +1 -0
- package/dist/domains/bundle/compiler.d.ts +5 -0
- package/dist/domains/bundle/compiler.d.ts.map +1 -0
- package/dist/domains/bundle/compiler.js +106 -0
- package/dist/domains/bundle/compiler.js.map +1 -0
- package/dist/domains/bundle/distribute.d.ts +33 -0
- package/dist/domains/bundle/distribute.d.ts.map +1 -0
- package/dist/domains/bundle/distribute.js +166 -0
- package/dist/domains/bundle/distribute.js.map +1 -0
- package/dist/domains/bundle/draft.d.ts +19 -0
- package/dist/domains/bundle/draft.d.ts.map +1 -0
- package/dist/domains/bundle/draft.js +82 -0
- package/dist/domains/bundle/draft.js.map +1 -0
- package/dist/domains/bundle/eval.d.ts +36 -0
- package/dist/domains/bundle/eval.d.ts.map +1 -0
- package/dist/domains/bundle/eval.js +501 -0
- package/dist/domains/bundle/eval.js.map +1 -0
- package/dist/domains/bundle/factory-compose.d.ts +12 -0
- package/dist/domains/bundle/factory-compose.d.ts.map +1 -0
- package/dist/domains/bundle/factory-compose.js +309 -0
- package/dist/domains/bundle/factory-compose.js.map +1 -0
- package/dist/domains/bundle/factory-guide.d.ts +37 -0
- package/dist/domains/bundle/factory-guide.d.ts.map +1 -0
- package/dist/domains/bundle/factory-guide.js +96 -0
- package/dist/domains/bundle/factory-guide.js.map +1 -0
- package/dist/domains/bundle/factory-plan.d.ts +48 -0
- package/dist/domains/bundle/factory-plan.d.ts.map +1 -0
- package/dist/domains/bundle/factory-plan.js +172 -0
- package/dist/domains/bundle/factory-plan.js.map +1 -0
- package/dist/domains/bundle/factory-proposal.d.ts +31 -0
- package/dist/domains/bundle/factory-proposal.d.ts.map +1 -0
- package/dist/domains/bundle/factory-proposal.js +225 -0
- package/dist/domains/bundle/factory-proposal.js.map +1 -0
- package/dist/domains/bundle/factory-resolve.d.ts +11 -0
- package/dist/domains/bundle/factory-resolve.d.ts.map +1 -0
- package/dist/domains/bundle/factory-resolve.js +121 -0
- package/dist/domains/bundle/factory-resolve.js.map +1 -0
- package/dist/domains/bundle/factory.d.ts +17 -0
- package/dist/domains/bundle/factory.d.ts.map +1 -0
- package/dist/domains/bundle/factory.js +511 -0
- package/dist/domains/bundle/factory.js.map +1 -0
- package/dist/domains/bundle/hash.d.ts +3 -0
- package/dist/domains/bundle/hash.d.ts.map +1 -0
- package/dist/domains/bundle/hash.js +72 -0
- package/dist/domains/bundle/hash.js.map +1 -0
- package/dist/domains/bundle/load.d.ts +4 -0
- package/dist/domains/bundle/load.d.ts.map +1 -0
- package/dist/domains/bundle/load.js +355 -0
- package/dist/domains/bundle/load.js.map +1 -0
- package/dist/domains/bundle/next-action.d.ts +37 -0
- package/dist/domains/bundle/next-action.d.ts.map +1 -0
- package/dist/domains/bundle/next-action.js +185 -0
- package/dist/domains/bundle/next-action.js.map +1 -0
- package/dist/domains/bundle/platform.d.ts +21 -0
- package/dist/domains/bundle/platform.d.ts.map +1 -0
- package/dist/domains/bundle/platform.js +170 -0
- package/dist/domains/bundle/platform.js.map +1 -0
- package/dist/domains/bundle/preferences.d.ts +11 -0
- package/dist/domains/bundle/preferences.d.ts.map +1 -0
- package/dist/domains/bundle/preferences.js +17 -0
- package/dist/domains/bundle/preferences.js.map +1 -0
- package/dist/domains/bundle/publish.d.ts +14 -0
- package/dist/domains/bundle/publish.d.ts.map +1 -0
- package/dist/domains/bundle/publish.js +159 -0
- package/dist/domains/bundle/publish.js.map +1 -0
- package/dist/domains/bundle/readiness-user-summary.d.ts +25 -0
- package/dist/domains/bundle/readiness-user-summary.d.ts.map +1 -0
- package/dist/domains/bundle/readiness-user-summary.js +186 -0
- package/dist/domains/bundle/readiness-user-summary.js.map +1 -0
- package/dist/domains/bundle/review-summary.d.ts +36 -0
- package/dist/domains/bundle/review-summary.d.ts.map +1 -0
- package/dist/domains/bundle/review-summary.js +348 -0
- package/dist/domains/bundle/review-summary.js.map +1 -0
- package/dist/domains/bundle/state.d.ts +7 -0
- package/dist/domains/bundle/state.d.ts.map +1 -0
- package/dist/domains/bundle/state.js +132 -0
- package/dist/domains/bundle/state.js.map +1 -0
- package/dist/domains/bundle/types.d.ts +347 -0
- package/dist/domains/bundle/types.d.ts.map +1 -0
- package/dist/domains/bundle/types.js.map +1 -0
- package/dist/domains/bundle/user-facing.d.ts +48 -0
- package/dist/domains/bundle/user-facing.d.ts.map +1 -0
- package/dist/domains/bundle/user-facing.js +73 -0
- package/dist/domains/bundle/user-facing.js.map +1 -0
- package/dist/domains/bundle/validate.d.ts +5 -0
- package/dist/domains/bundle/validate.d.ts.map +1 -0
- package/dist/domains/bundle/validate.js +292 -0
- package/dist/domains/bundle/validate.js.map +1 -0
- package/dist/domains/comet-classic/classic-archive-entry.d.ts +2 -0
- package/dist/domains/comet-classic/classic-archive-entry.d.ts.map +1 -0
- package/dist/domains/comet-classic/classic-archive-entry.js +4 -0
- package/dist/domains/comet-classic/classic-archive-entry.js.map +1 -0
- package/dist/domains/comet-classic/classic-archive.d.ts +3 -0
- package/dist/domains/comet-classic/classic-archive.d.ts.map +1 -0
- package/dist/domains/comet-classic/classic-archive.js +392 -0
- package/dist/domains/comet-classic/classic-archive.js.map +1 -0
- package/dist/domains/comet-classic/classic-cli.d.ts +15 -0
- package/dist/domains/comet-classic/classic-cli.d.ts.map +1 -0
- package/dist/domains/comet-classic/classic-cli.js +94 -0
- package/dist/domains/comet-classic/classic-cli.js.map +1 -0
- package/dist/domains/comet-classic/classic-diagnostics.d.ts +16 -0
- package/dist/domains/comet-classic/classic-diagnostics.d.ts.map +1 -0
- package/dist/domains/comet-classic/classic-diagnostics.js +57 -0
- package/dist/domains/comet-classic/classic-diagnostics.js.map +1 -0
- package/dist/domains/comet-classic/classic-evidence.d.ts +10 -0
- package/dist/domains/comet-classic/classic-evidence.d.ts.map +1 -0
- package/dist/domains/comet-classic/classic-evidence.js +114 -0
- package/dist/domains/comet-classic/classic-evidence.js.map +1 -0
- package/dist/domains/comet-classic/classic-guard-entry.d.ts +2 -0
- package/dist/domains/comet-classic/classic-guard-entry.d.ts.map +1 -0
- package/dist/domains/comet-classic/classic-guard-entry.js +4 -0
- package/dist/domains/comet-classic/classic-guard-entry.js.map +1 -0
- package/dist/domains/comet-classic/classic-guard.d.ts +3 -0
- package/dist/domains/comet-classic/classic-guard.d.ts.map +1 -0
- package/dist/domains/comet-classic/classic-guard.js +833 -0
- package/dist/domains/comet-classic/classic-guard.js.map +1 -0
- package/dist/domains/comet-classic/classic-handoff-entry.d.ts +2 -0
- package/dist/domains/comet-classic/classic-handoff-entry.d.ts.map +1 -0
- package/dist/domains/comet-classic/classic-handoff-entry.js +4 -0
- package/dist/domains/comet-classic/classic-handoff-entry.js.map +1 -0
- package/dist/domains/comet-classic/classic-handoff.d.ts +3 -0
- package/dist/domains/comet-classic/classic-handoff.d.ts.map +1 -0
- package/dist/domains/comet-classic/classic-handoff.js +478 -0
- package/dist/domains/comet-classic/classic-handoff.js.map +1 -0
- package/dist/domains/comet-classic/classic-hook-guard-entry.d.ts +2 -0
- package/dist/domains/comet-classic/classic-hook-guard-entry.d.ts.map +1 -0
- package/dist/domains/comet-classic/classic-hook-guard-entry.js +4 -0
- package/dist/domains/comet-classic/classic-hook-guard-entry.js.map +1 -0
- package/dist/domains/comet-classic/classic-hook-guard.d.ts +3 -0
- package/dist/domains/comet-classic/classic-hook-guard.d.ts.map +1 -0
- package/dist/domains/comet-classic/classic-hook-guard.js +302 -0
- package/dist/domains/comet-classic/classic-hook-guard.js.map +1 -0
- package/dist/domains/comet-classic/classic-intent-command.d.ts +3 -0
- package/dist/domains/comet-classic/classic-intent-command.d.ts.map +1 -0
- package/dist/domains/comet-classic/classic-intent-command.js +40 -0
- package/dist/domains/comet-classic/classic-intent-command.js.map +1 -0
- package/dist/domains/comet-classic/classic-intent-entry.d.ts +2 -0
- package/dist/domains/comet-classic/classic-intent-entry.d.ts.map +1 -0
- package/dist/domains/comet-classic/classic-intent-entry.js +4 -0
- package/dist/domains/comet-classic/classic-intent-entry.js.map +1 -0
- package/dist/domains/comet-classic/classic-intent.d.ts +79 -0
- package/dist/domains/comet-classic/classic-intent.d.ts.map +1 -0
- package/dist/domains/comet-classic/classic-intent.js +307 -0
- package/dist/domains/comet-classic/classic-intent.js.map +1 -0
- package/dist/domains/comet-classic/classic-migrate.d.ts +18 -0
- package/dist/domains/comet-classic/classic-migrate.d.ts.map +1 -0
- package/dist/domains/comet-classic/classic-migrate.js +184 -0
- package/dist/domains/comet-classic/classic-migrate.js.map +1 -0
- package/dist/domains/comet-classic/classic-paths.d.ts +8 -0
- package/dist/domains/comet-classic/classic-paths.d.ts.map +1 -0
- package/dist/domains/comet-classic/classic-paths.js +61 -0
- package/dist/domains/comet-classic/classic-paths.js.map +1 -0
- package/dist/domains/comet-classic/classic-resolver.d.ts +10 -0
- package/dist/domains/comet-classic/classic-resolver.d.ts.map +1 -0
- package/dist/domains/comet-classic/classic-resolver.js +89 -0
- package/dist/domains/comet-classic/classic-resolver.js.map +1 -0
- package/dist/domains/comet-classic/classic-runtime-evals.d.ts +9 -0
- package/dist/domains/comet-classic/classic-runtime-evals.d.ts.map +1 -0
- package/dist/domains/comet-classic/classic-runtime-evals.js +45 -0
- package/dist/domains/comet-classic/classic-runtime-evals.js.map +1 -0
- package/dist/domains/comet-classic/classic-runtime-run.d.ts +7 -0
- package/dist/domains/comet-classic/classic-runtime-run.d.ts.map +1 -0
- package/dist/domains/comet-classic/classic-runtime-run.js +105 -0
- package/dist/domains/comet-classic/classic-runtime-run.js.map +1 -0
- package/dist/domains/comet-classic/classic-script-entry.d.ts +3 -0
- package/dist/domains/comet-classic/classic-script-entry.d.ts.map +1 -0
- package/dist/domains/comet-classic/classic-script-entry.js +31 -0
- package/dist/domains/comet-classic/classic-script-entry.js.map +1 -0
- package/dist/domains/comet-classic/classic-state-command.d.ts +3 -0
- package/dist/domains/comet-classic/classic-state-command.d.ts.map +1 -0
- package/dist/domains/comet-classic/classic-state-command.js +984 -0
- package/dist/domains/comet-classic/classic-state-command.js.map +1 -0
- package/dist/domains/comet-classic/classic-state-entry.d.ts +2 -0
- package/dist/domains/comet-classic/classic-state-entry.d.ts.map +1 -0
- package/dist/domains/comet-classic/classic-state-entry.js +4 -0
- package/dist/domains/comet-classic/classic-state-entry.js.map +1 -0
- package/dist/domains/comet-classic/classic-state-events.d.ts +18 -0
- package/dist/domains/comet-classic/classic-state-events.d.ts.map +1 -0
- package/dist/domains/comet-classic/classic-state-events.js +15 -0
- package/dist/domains/comet-classic/classic-state-events.js.map +1 -0
- package/dist/domains/comet-classic/classic-state.d.ts +69 -0
- package/dist/domains/comet-classic/classic-state.d.ts.map +1 -0
- package/dist/domains/comet-classic/classic-state.js +238 -0
- package/dist/domains/comet-classic/classic-state.js.map +1 -0
- package/dist/domains/comet-classic/classic-store.d.ts +7 -0
- package/dist/domains/comet-classic/classic-store.d.ts.map +1 -0
- package/dist/domains/comet-classic/classic-store.js +127 -0
- package/dist/domains/comet-classic/classic-store.js.map +1 -0
- package/dist/domains/comet-classic/classic-transitions.d.ts +24 -0
- package/dist/domains/comet-classic/classic-transitions.d.ts.map +1 -0
- package/dist/domains/comet-classic/classic-transitions.js +124 -0
- package/dist/domains/comet-classic/classic-transitions.js.map +1 -0
- package/dist/domains/comet-classic/classic-validate-command.d.ts +3 -0
- package/dist/domains/comet-classic/classic-validate-command.d.ts.map +1 -0
- package/dist/domains/comet-classic/classic-validate-command.js +154 -0
- package/dist/domains/comet-classic/classic-validate-command.js.map +1 -0
- package/dist/domains/comet-classic/classic-validate-entry.d.ts +2 -0
- package/dist/domains/comet-classic/classic-validate-entry.d.ts.map +1 -0
- package/dist/domains/comet-classic/classic-validate-entry.js +4 -0
- package/dist/domains/comet-classic/classic-validate-entry.js.map +1 -0
- package/dist/domains/comet-classic/index.d.ts +20 -0
- package/dist/domains/comet-classic/index.d.ts.map +1 -0
- package/dist/domains/comet-classic/index.js +20 -0
- package/dist/domains/comet-classic/index.js.map +1 -0
- package/dist/domains/dashboard/collector.d.ts +12 -0
- package/dist/domains/dashboard/collector.d.ts.map +1 -0
- package/dist/domains/dashboard/collector.js +475 -0
- package/dist/domains/dashboard/collector.js.map +1 -0
- package/dist/domains/dashboard/git.d.ts +8 -0
- package/dist/domains/dashboard/git.d.ts.map +1 -0
- package/dist/domains/dashboard/git.js +69 -0
- package/dist/domains/dashboard/git.js.map +1 -0
- package/dist/domains/dashboard/next-action.d.ts +17 -0
- package/dist/domains/dashboard/next-action.d.ts.map +1 -0
- package/dist/domains/dashboard/next-action.js +83 -0
- package/dist/domains/dashboard/next-action.js.map +1 -0
- package/dist/domains/dashboard/open-browser.d.ts +9 -0
- package/dist/domains/dashboard/open-browser.d.ts.map +1 -0
- package/dist/domains/dashboard/open-browser.js +40 -0
- package/dist/domains/dashboard/open-browser.js.map +1 -0
- package/dist/domains/dashboard/risk.d.ts +24 -0
- package/dist/domains/dashboard/risk.d.ts.map +1 -0
- package/dist/domains/dashboard/risk.js +97 -0
- package/dist/domains/dashboard/risk.js.map +1 -0
- package/dist/domains/dashboard/server.d.ts +21 -0
- package/dist/domains/dashboard/server.d.ts.map +1 -0
- package/dist/domains/dashboard/server.js +149 -0
- package/dist/domains/dashboard/server.js.map +1 -0
- package/dist/domains/dashboard/task-parser.d.ts +13 -0
- package/dist/domains/dashboard/task-parser.d.ts.map +1 -0
- package/dist/domains/dashboard/task-parser.js +82 -0
- package/dist/domains/dashboard/task-parser.js.map +1 -0
- package/dist/domains/dashboard/types.d.ts +122 -0
- package/dist/domains/dashboard/types.d.ts.map +1 -0
- package/dist/domains/dashboard/types.js +10 -0
- package/dist/domains/dashboard/types.js.map +1 -0
- package/dist/domains/dashboard/verify-parser.d.ts +18 -0
- package/dist/domains/dashboard/verify-parser.d.ts.map +1 -0
- package/dist/domains/dashboard/verify-parser.js +94 -0
- package/dist/domains/dashboard/verify-parser.js.map +1 -0
- package/dist/domains/dashboard/web/assets/demo-DQyfozbi.js +1 -0
- package/dist/domains/dashboard/web/assets/index-BcO3_QlT.css +1 -0
- package/dist/domains/dashboard/web/assets/index-CjU3VXVu.js +22 -0
- package/dist/domains/dashboard/web/favicon.png +0 -0
- package/dist/domains/dashboard/web/index.html +16 -0
- package/dist/domains/dashboard/yaml.d.ts +13 -0
- package/dist/domains/dashboard/yaml.d.ts.map +1 -0
- package/dist/domains/dashboard/yaml.js +61 -0
- package/dist/domains/dashboard/yaml.js.map +1 -0
- package/dist/domains/engine/evals.d.ts +4 -0
- package/dist/domains/engine/evals.d.ts.map +1 -0
- package/dist/domains/engine/evals.js +25 -0
- package/dist/domains/engine/evals.js.map +1 -0
- package/dist/domains/engine/guardrails.d.ts +10 -0
- package/dist/domains/engine/guardrails.d.ts.map +1 -0
- package/dist/domains/engine/guardrails.js +25 -0
- package/dist/domains/engine/guardrails.js.map +1 -0
- package/dist/domains/engine/loop.d.ts +15 -0
- package/dist/domains/engine/loop.d.ts.map +1 -0
- package/dist/domains/engine/loop.js +126 -0
- package/dist/domains/engine/loop.js.map +1 -0
- package/dist/domains/engine/manual-run.d.ts +30 -0
- package/dist/domains/engine/manual-run.d.ts.map +1 -0
- package/dist/domains/engine/manual-run.js +184 -0
- package/dist/domains/engine/manual-run.js.map +1 -0
- package/dist/domains/engine/resolver.d.ts +20 -0
- package/dist/domains/engine/resolver.d.ts.map +1 -0
- package/dist/domains/engine/resolver.js +36 -0
- package/dist/domains/engine/resolver.js.map +1 -0
- package/dist/domains/engine/run-store.d.ts +13 -0
- package/dist/domains/engine/run-store.d.ts.map +1 -0
- package/dist/domains/engine/run-store.js +100 -0
- package/dist/domains/engine/run-store.js.map +1 -0
- package/dist/domains/engine/runtime-types.d.ts +11 -0
- package/dist/domains/engine/runtime-types.d.ts.map +1 -0
- package/dist/domains/engine/runtime-types.js +2 -0
- package/dist/domains/engine/runtime-types.js.map +1 -0
- package/dist/domains/engine/standalone-run.d.ts +13 -0
- package/dist/domains/engine/standalone-run.d.ts.map +1 -0
- package/dist/domains/engine/standalone-run.js +27 -0
- package/dist/domains/engine/standalone-run.js.map +1 -0
- package/dist/domains/engine/state.d.ts +10 -0
- package/dist/domains/engine/state.d.ts.map +1 -0
- package/dist/domains/engine/state.js +160 -0
- package/dist/domains/engine/state.js.map +1 -0
- package/dist/domains/engine/types.d.ts +51 -0
- package/dist/domains/engine/types.d.ts.map +1 -0
- package/dist/domains/engine/types.js +2 -0
- package/dist/domains/engine/types.js.map +1 -0
- package/dist/domains/eval/index.d.ts +7 -0
- package/dist/domains/eval/index.d.ts.map +1 -0
- package/dist/domains/eval/index.js +11 -0
- package/dist/domains/eval/index.js.map +1 -0
- package/dist/domains/eval/repository-benchmarks.d.ts +6 -0
- package/dist/domains/eval/repository-benchmarks.d.ts.map +1 -0
- package/dist/domains/eval/repository-benchmarks.js +10 -0
- package/dist/domains/eval/repository-benchmarks.js.map +1 -0
- package/dist/domains/factory/artifacts.d.ts +53 -0
- package/dist/domains/factory/artifacts.d.ts.map +1 -0
- package/dist/domains/factory/artifacts.js +8 -0
- package/dist/domains/factory/artifacts.js.map +1 -0
- package/dist/domains/factory/package.d.ts +7 -0
- package/dist/domains/factory/package.d.ts.map +1 -0
- package/dist/domains/factory/package.js +1511 -0
- package/dist/domains/factory/package.js.map +1 -0
- package/dist/domains/factory/types.d.ts +127 -0
- package/dist/domains/factory/types.d.ts.map +1 -0
- package/dist/domains/factory/types.js +2 -0
- package/dist/domains/factory/types.js.map +1 -0
- package/dist/domains/integrations/codegraph.d.ts +6 -0
- package/dist/domains/integrations/codegraph.d.ts.map +1 -0
- package/dist/domains/integrations/codegraph.js +118 -0
- package/dist/domains/integrations/codegraph.js.map +1 -0
- package/dist/domains/integrations/openspec.d.ts +18 -0
- package/dist/domains/integrations/openspec.d.ts.map +1 -0
- package/dist/{core → domains/integrations}/openspec.js +114 -31
- package/dist/domains/integrations/openspec.js.map +1 -0
- package/dist/domains/integrations/superpowers.d.ts +21 -0
- package/dist/domains/integrations/superpowers.d.ts.map +1 -0
- package/dist/{core → domains/integrations}/superpowers.js +63 -14
- package/dist/domains/integrations/superpowers.js.map +1 -0
- package/dist/domains/skill/discovery.d.ts +17 -0
- package/dist/domains/skill/discovery.d.ts.map +1 -0
- package/dist/domains/skill/discovery.js +80 -0
- package/dist/domains/skill/discovery.js.map +1 -0
- package/dist/domains/skill/find.d.ts +41 -0
- package/dist/domains/skill/find.d.ts.map +1 -0
- package/dist/domains/skill/find.js +251 -0
- package/dist/domains/skill/find.js.map +1 -0
- package/dist/domains/skill/install.d.ts +11 -0
- package/dist/domains/skill/install.d.ts.map +1 -0
- package/dist/domains/skill/install.js +82 -0
- package/dist/domains/skill/install.js.map +1 -0
- package/dist/domains/skill/inventory.d.ts +19 -0
- package/dist/domains/skill/inventory.d.ts.map +1 -0
- package/dist/domains/skill/inventory.js +64 -0
- package/dist/domains/skill/inventory.js.map +1 -0
- package/dist/domains/skill/languages.d.ts +19 -0
- package/dist/domains/skill/languages.d.ts.map +1 -0
- package/dist/domains/skill/languages.js +21 -0
- package/dist/domains/skill/languages.js.map +1 -0
- package/dist/domains/skill/load.d.ts +5 -0
- package/dist/domains/skill/load.d.ts.map +1 -0
- package/dist/domains/skill/load.js +313 -0
- package/dist/domains/skill/load.js.map +1 -0
- package/dist/domains/skill/platform-install.d.ts +87 -0
- package/dist/domains/skill/platform-install.d.ts.map +1 -0
- package/dist/{core/skills.js → domains/skill/platform-install.js} +242 -42
- package/dist/domains/skill/platform-install.js.map +1 -0
- package/dist/domains/skill/preferences.d.ts +42 -0
- package/dist/domains/skill/preferences.d.ts.map +1 -0
- package/dist/domains/skill/preferences.js +118 -0
- package/dist/domains/skill/preferences.js.map +1 -0
- package/dist/domains/skill/snapshot.d.ts +8 -0
- package/dist/domains/skill/snapshot.d.ts.map +1 -0
- package/dist/domains/skill/snapshot.js +184 -0
- package/dist/domains/skill/snapshot.js.map +1 -0
- package/dist/domains/skill/types.d.ts +85 -0
- package/dist/domains/skill/types.d.ts.map +1 -0
- package/dist/domains/skill/types.js +2 -0
- package/dist/{core → domains/skill}/types.js.map +1 -1
- package/dist/{core → domains/skill}/uninstall.d.ts +2 -18
- package/dist/domains/skill/uninstall.d.ts.map +1 -0
- package/dist/{core → domains/skill}/uninstall.js +15 -66
- package/dist/domains/skill/uninstall.js.map +1 -0
- package/dist/domains/skill/validate.d.ts +3 -0
- package/dist/domains/skill/validate.d.ts.map +1 -0
- package/dist/domains/skill/validate.js +81 -0
- package/dist/domains/skill/validate.js.map +1 -0
- package/dist/domains/workflow-contract/builtins.d.ts +8 -0
- package/dist/domains/workflow-contract/builtins.d.ts.map +1 -0
- package/dist/domains/workflow-contract/builtins.js +229 -0
- package/dist/domains/workflow-contract/builtins.js.map +1 -0
- package/dist/domains/workflow-contract/hash.d.ts +3 -0
- package/dist/domains/workflow-contract/hash.d.ts.map +1 -0
- package/dist/domains/workflow-contract/hash.js +16 -0
- package/dist/domains/workflow-contract/hash.js.map +1 -0
- package/dist/domains/workflow-contract/index.d.ts +6 -0
- package/dist/domains/workflow-contract/index.d.ts.map +1 -0
- package/dist/domains/workflow-contract/index.js +5 -0
- package/dist/domains/workflow-contract/index.js.map +1 -0
- package/dist/domains/workflow-contract/normalize.d.ts +3 -0
- package/dist/domains/workflow-contract/normalize.d.ts.map +1 -0
- package/dist/domains/workflow-contract/normalize.js +146 -0
- package/dist/domains/workflow-contract/normalize.js.map +1 -0
- package/dist/domains/workflow-contract/types.d.ts +128 -0
- package/dist/domains/workflow-contract/types.d.ts.map +1 -0
- package/dist/domains/workflow-contract/types.js +2 -0
- package/dist/domains/workflow-contract/types.js.map +1 -0
- package/dist/domains/workflow-contract/validation.d.ts +3 -0
- package/dist/domains/workflow-contract/validation.d.ts.map +1 -0
- package/dist/domains/workflow-contract/validation.js +180 -0
- package/dist/domains/workflow-contract/validation.js.map +1 -0
- package/dist/platform/fs/file-system.d.ts.map +1 -0
- package/dist/platform/fs/file-system.js.map +1 -0
- package/dist/{core → platform/install}/detect.d.ts +6 -1
- package/dist/platform/install/detect.d.ts.map +1 -0
- package/dist/{core → platform/install}/detect.js +32 -14
- package/dist/platform/install/detect.js.map +1 -0
- package/dist/platform/install/platforms.d.ts.map +1 -0
- package/dist/{core → platform/install}/platforms.js +41 -0
- package/dist/platform/install/platforms.js.map +1 -0
- package/dist/platform/install/types.d.ts +3 -0
- package/dist/platform/install/types.d.ts.map +1 -0
- package/dist/platform/install/types.js +2 -0
- package/dist/platform/install/types.js.map +1 -0
- package/dist/platform/paths/repository-layout.d.ts +22 -0
- package/dist/platform/paths/repository-layout.d.ts.map +1 -0
- package/dist/platform/paths/repository-layout.js +11 -0
- package/dist/platform/paths/repository-layout.js.map +1 -0
- package/dist/platform/process/command-error.d.ts.map +1 -0
- package/dist/platform/process/command-error.js.map +1 -0
- package/dist/platform/process/shell-quote.d.ts +22 -0
- package/dist/platform/process/shell-quote.d.ts.map +1 -0
- package/dist/platform/process/shell-quote.js +34 -0
- package/dist/platform/process/shell-quote.js.map +1 -0
- package/dist/platform/version/version.d.ts.map +1 -0
- package/dist/{core → platform/version}/version.js +16 -3
- package/dist/platform/version/version.js.map +1 -0
- package/package.json +40 -14
- package/assets/skills/comet/scripts/comet-archive.sh +0 -311
- package/assets/skills/comet/scripts/comet-env.sh +0 -110
- package/assets/skills/comet/scripts/comet-guard.sh +0 -752
- package/assets/skills/comet/scripts/comet-handoff.sh +0 -390
- package/assets/skills/comet/scripts/comet-hook-guard.sh +0 -260
- package/assets/skills/comet/scripts/comet-state.sh +0 -1245
- package/assets/skills/comet/scripts/comet-yaml-validate.sh +0 -223
- package/dist/cli/index.js +0 -83
- package/dist/cli/index.js.map +0 -1
- package/dist/commands/doctor.d.ts.map +0 -1
- package/dist/commands/doctor.js.map +0 -1
- package/dist/commands/init.d.ts.map +0 -1
- package/dist/commands/init.js +0 -300
- package/dist/commands/init.js.map +0 -1
- package/dist/commands/status.d.ts.map +0 -1
- package/dist/commands/status.js +0 -108
- package/dist/commands/status.js.map +0 -1
- package/dist/commands/uninstall.d.ts.map +0 -1
- package/dist/commands/uninstall.js.map +0 -1
- package/dist/commands/update.d.ts.map +0 -1
- package/dist/commands/update.js.map +0 -1
- package/dist/core/codegraph.d.ts +0 -4
- package/dist/core/codegraph.d.ts.map +0 -1
- package/dist/core/codegraph.js +0 -63
- package/dist/core/codegraph.js.map +0 -1
- package/dist/core/command-error.d.ts.map +0 -1
- package/dist/core/command-error.js.map +0 -1
- package/dist/core/detect.d.ts.map +0 -1
- package/dist/core/detect.js.map +0 -1
- package/dist/core/openspec.d.ts +0 -11
- package/dist/core/openspec.d.ts.map +0 -1
- package/dist/core/openspec.js.map +0 -1
- package/dist/core/platforms.d.ts.map +0 -1
- package/dist/core/platforms.js.map +0 -1
- package/dist/core/skills.d.ts +0 -58
- package/dist/core/skills.d.ts.map +0 -1
- package/dist/core/skills.js.map +0 -1
- package/dist/core/superpowers.d.ts +0 -13
- package/dist/core/superpowers.d.ts.map +0 -1
- package/dist/core/superpowers.js.map +0 -1
- package/dist/core/types.d.ts +0 -2
- package/dist/core/types.d.ts.map +0 -1
- package/dist/core/uninstall.d.ts.map +0 -1
- package/dist/core/uninstall.js.map +0 -1
- package/dist/core/version.d.ts.map +0 -1
- package/dist/core/version.js.map +0 -1
- package/dist/utils/file-system.d.ts.map +0 -1
- package/dist/utils/file-system.js.map +0 -1
- /package/dist/{cli → app/cli}/index.d.ts +0 -0
- /package/dist/{commands → app/commands}/status.d.ts +0 -0
- /package/dist/{core → domains/bundle}/types.js +0 -0
- /package/dist/{utils → platform/fs}/file-system.d.ts +0 -0
- /package/dist/{utils → platform/fs}/file-system.js +0 -0
- /package/dist/{core → platform/install}/platforms.d.ts +0 -0
- /package/dist/{core → platform/process}/command-error.d.ts +0 -0
- /package/dist/{core → platform/process}/command-error.js +0 -0
- /package/dist/{core → platform/version}/version.d.ts +0 -0
- /package/scripts/{postinstall.js → install/postinstall.js} +0 -0
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
#
|
|
1
|
+
# 异常调试协议
|
|
2
2
|
|
|
3
3
|
规范路径:`comet/reference/debug-gate.md`
|
|
4
4
|
|
|
5
|
-
本协议由 build、hotfix、tweak 等会直接修改代码的 comet 子 skill
|
|
5
|
+
本协议由 build、hotfix、tweak 等会直接修改代码的 comet 子 skill 共享。当运行程序、测试、构建或手动验证时出现崩溃、异常行为、测试失败或构建失败,必须进入异常调试协议。
|
|
6
6
|
|
|
7
7
|
## 核心规则
|
|
8
8
|
|
|
@@ -14,4 +14,20 @@
|
|
|
14
14
|
1. 先复现并定位根因,读取完整错误、检查近期变更、追踪数据流
|
|
15
15
|
2. 若根因指向源码 bug,先补充能复现该崩溃/异常的最小失败测试,再修改源码
|
|
16
16
|
3. 修复后运行该失败测试、相关测试和项目构建/验证命令,确认全部通过
|
|
17
|
-
4. 将测试、源码修复和 tasks.md 勾选保留在当前 change 内;不得通过另起一个“写测试用例”的 change 来替代当前 change 的验证闭环
|
|
17
|
+
4. 将测试、源码修复和 tasks.md 勾选保留在当前 change 内;不得通过另起一个“写测试用例”的 change 来替代当前 change 的验证闭环
|
|
18
|
+
|
|
19
|
+
## 多失败并发调查
|
|
20
|
+
|
|
21
|
+
进入四阶段流程前,先做一次失败独立性评估,决定串行还是并发调查:
|
|
22
|
+
|
|
23
|
+
- **不并发(维持现有串行 `systematic-debugging`)**:失败 ≤ 2 个;失败之间相关(改一个可能修好其他);共享状态;会改动同一批文件;尚未识别出失败是否独立
|
|
24
|
+
- **并发(加载 Superpowers `dispatching-parallel-agents` 技能)**:≥ 3 个失败,且来自不同问题域(不同测试文件不同根因、不同子系统独立损坏),互不依赖、互不干扰
|
|
25
|
+
|
|
26
|
+
当满足并发条件时:
|
|
27
|
+
|
|
28
|
+
1. 立即使用 Skill 工具加载 Superpowers `dispatching-parallel-agents` 技能
|
|
29
|
+
2. 按问题域为每个独立失败派发一个后台调查 agent,所有派发放在同一次回复里以并发执行;每个 agent 的 prompt 必须自包含(具体失败、错误信息、允许的调查范围、不得改动其他问题域的代码)
|
|
30
|
+
3. 所有 agent 都受本协议“根因未明前不得动源码”的约束;它们只负责定位根因并返回调查结论,**不直接提交修复**
|
|
31
|
+
4. 调查全部返回后,由主会话串行整合结论、串行执行修复,修复仍走当前 `review_mode` 的验证与评审闭环
|
|
32
|
+
|
|
33
|
+
> 并发只用于**调查**阶段。修复始终串行,避免多个 agent 同时改同一批文件冲突——这与 `subagent-driven-development` “禁止并行派发多个实现 agent”的红线一致。
|
|
@@ -7,14 +7,25 @@
|
|
|
7
7
|
## 核心规则
|
|
8
8
|
|
|
9
9
|
- 决策点是阻塞点。到达决策点时必须暂停,等待用户明确选择后才能继续
|
|
10
|
-
-
|
|
10
|
+
- 必须使用当前平台可用的用户输入/确认机制获取选择;Claude Code 等平台提供 `AskUserQuestion` 时,优先使用 `AskUserQuestion` 展示单选/多选选项
|
|
11
|
+
- 若当前工具列表没有 `AskUserQuestion`,或第一次调用 `AskUserQuestion` 失败,则判定本会话结构化提问不可用;本会话后续决策点不得反复重试 `AskUserQuestion`,直接使用文本选项降级模式
|
|
11
12
|
- 若当前平台没有结构化提问工具,则必须在对话中提出明确选项并停止流程,等待用户回复
|
|
12
13
|
- 不得用推荐规则、默认值、历史偏好或“用户应该会同意”的推断代替当前确认
|
|
13
14
|
- 用户明确选择前,不得写入对应状态字段、执行对应分支操作或自动继续下一阶段
|
|
14
15
|
|
|
16
|
+
## `AskUserQuestion` 优先策略
|
|
17
|
+
|
|
18
|
+
使用结构化提问时:
|
|
19
|
+
|
|
20
|
+
- 单选决策点用 `AskUserQuestion` 的单选问题;多选决策点用多选问题
|
|
21
|
+
- 选项必须携带简短标签和影响说明;推荐项只能作为说明,不能自动选择
|
|
22
|
+
- 若工具调用成功,等待用户通过该问题作答;不得同时再输出一套文本选项
|
|
23
|
+
- 若工具不存在、工具调用失败或宿主报错,记录“本会话结构化提问不可用”,然后进入文本选项降级模式
|
|
24
|
+
|
|
15
25
|
## 最低呈现要求
|
|
16
26
|
|
|
17
27
|
- 说明当前决策点正在决定什么
|
|
18
28
|
- 给出清晰可选项;需要用户单选时,选项必须互斥且可执行
|
|
29
|
+
- 文本降级模式必须明确写出“单选”或“多选”、编号选项、每项影响,并要求用户回复编号;随后停止流程,等待用户回复
|
|
19
30
|
- 如有推荐,只能作为说明,不能替代用户确认
|
|
20
|
-
- 用户选择后,再执行对应命令或状态更新
|
|
31
|
+
- 用户选择后,再执行对应命令或状态更新
|
|
@@ -1,59 +1,59 @@
|
|
|
1
|
-
# Dirty Worktree 协议
|
|
2
|
-
|
|
3
|
-
规范路径:`comet/reference/dirty-worktree.md`
|
|
4
|
-
|
|
5
|
-
本协议由所有涉及代码修改的 comet 子 skill 共享。当 agent 恢复上下文或继续执行时,必须按本协议处理未提交的工作区改动。各子 skill 可在本协议基础上定义阶段特例(如 verify 阶段对实现改动的特殊处理),详见对应子 skill 文件。本文件不重复阶段特例。
|
|
6
|
-
|
|
7
|
-
## 1. 检查步骤
|
|
8
|
-
|
|
9
|
-
继续或开始修改前,必须先运行以下命令:
|
|
10
|
-
|
|
11
|
-
```bash
|
|
12
|
-
git status --short
|
|
13
|
-
git diff --stat
|
|
14
|
-
git diff --cached --stat
|
|
15
|
-
git ls-files --others --exclude-standard
|
|
16
|
-
```
|
|
17
|
-
|
|
18
|
-
必要时再查看 `git diff` / `git diff --cached` / 新建文件内容。
|
|
19
|
-
|
|
20
|
-
## 2. 核心规则
|
|
21
|
-
|
|
22
|
-
- 用户可能不会说明自己改了哪里。只要存在 dirty worktree(包括 Git 状态里显示为 `??` 的新建文件),就先假设改动可能来自用户或混合来源
|
|
23
|
-
- **构建产物排除**:`??` 文件若匹配 `.gitignore` 中的模式(如 `node_modules/`、`dist/`、`__pycache__/`、`*.o`、`target/`、`build/` 等),自动跳过归因,不视为用户改动
|
|
24
|
-
- dirty worktree 只代表代码事实,不会自动推进 `.comet.yaml` 的 `phase` 或勾选 `tasks.md`;只有完成归因、验证、同步必要文档,并通过对应阶段 guard 后,才允许推进 Comet 状态
|
|
25
|
-
|
|
26
|
-
## 3. 归因分类
|
|
27
|
-
|
|
28
|
-
将 dirty diff 分为三类:
|
|
29
|
-
|
|
30
|
-
1. **属于当前 change**:文件和内容能对应当前 change 的目标、tasks.md、plan 或 delta spec。将其纳入当前任务继续,不重复改同一处
|
|
31
|
-
2. **不属于当前 change**:文件或内容与当前目标无关。暂停并询问用户:并入当前 change、拆成新 change、保留不处理,或明确授权丢弃
|
|
32
|
-
3. **来源不确定**:无法从 diff 和文档判断归属。暂停并向用户汇报文件列表和判断依据,不继续推进阶段
|
|
33
|
-
|
|
34
|
-
## 4. 常见处理模式
|
|
35
|
-
|
|
36
|
-
### 已实现但 tasks.md 未勾选
|
|
37
|
-
|
|
38
|
-
先验证实现(运行构建和测试),通过后补勾任务。不要因为任务未勾选就重做一遍,也不要因为状态文件滞后而忽略代码事实。若当前子 skill 定义了阶段特例,以子 skill 为准。
|
|
39
|
-
|
|
40
|
-
### 暗示计划或范围已变化
|
|
41
|
-
|
|
42
|
-
按当前子 skill 的升级、增量更新或回退规则处理,本协议不重复阶段特例。
|
|
43
|
-
|
|
44
|
-
### 模糊恢复意图
|
|
45
|
-
|
|
46
|
-
用户说"继续""接着跑""我改了一点""刚才不满意""重新弄""代码动过""先按现在的来"等模糊恢复意图时,按本协议处理。不要要求用户先回忆具体改了哪里。
|
|
47
|
-
|
|
48
|
-
### open/design 阶段出现代码改动
|
|
49
|
-
|
|
50
|
-
若当前仍处于 `open` 或 `design`,但 dirty worktree 已经包含代码改动,先按本协议归因,不要直接推进阶段:
|
|
51
|
-
|
|
52
|
-
- 属于当前 change 的改动:作为需求或设计输入记录到 proposal/design/spec/design doc/tasks 中;进入 build 前仍需完成对应阶段 guard
|
|
53
|
-
- 不属于当前 change 或来源不确定:暂停询问用户是并入当前 change、拆成新 change、保留不处理,还是明确授权丢弃
|
|
54
|
-
- 禁止在 open/design 阶段直接把代码改动当作已完成实现并推进到 verify
|
|
55
|
-
|
|
56
|
-
## 5. 禁令
|
|
57
|
-
|
|
58
|
-
- 禁止在未理解 dirty diff 来源时覆盖、回滚、格式化重写或忽略用户改动
|
|
59
|
-
- 禁止在 dirty diff 未解释清楚时判定验证通过
|
|
1
|
+
# Dirty Worktree 协议
|
|
2
|
+
|
|
3
|
+
规范路径:`comet/reference/dirty-worktree.md`
|
|
4
|
+
|
|
5
|
+
本协议由所有涉及代码修改的 comet 子 skill 共享。当 agent 恢复上下文或继续执行时,必须按本协议处理未提交的工作区改动。各子 skill 可在本协议基础上定义阶段特例(如 verify 阶段对实现改动的特殊处理),详见对应子 skill 文件。本文件不重复阶段特例。
|
|
6
|
+
|
|
7
|
+
## 1. 检查步骤
|
|
8
|
+
|
|
9
|
+
继续或开始修改前,必须先运行以下命令:
|
|
10
|
+
|
|
11
|
+
```bash
|
|
12
|
+
git status --short
|
|
13
|
+
git diff --stat
|
|
14
|
+
git diff --cached --stat
|
|
15
|
+
git ls-files --others --exclude-standard
|
|
16
|
+
```
|
|
17
|
+
|
|
18
|
+
必要时再查看 `git diff` / `git diff --cached` / 新建文件内容。
|
|
19
|
+
|
|
20
|
+
## 2. 核心规则
|
|
21
|
+
|
|
22
|
+
- 用户可能不会说明自己改了哪里。只要存在 dirty worktree(包括 Git 状态里显示为 `??` 的新建文件),就先假设改动可能来自用户或混合来源
|
|
23
|
+
- **构建产物排除**:`??` 文件若匹配 `.gitignore` 中的模式(如 `node_modules/`、`dist/`、`__pycache__/`、`*.o`、`target/`、`build/` 等),自动跳过归因,不视为用户改动
|
|
24
|
+
- dirty worktree 只代表代码事实,不会自动推进 `.comet.yaml` 的 `phase` 或勾选 `tasks.md`;只有完成归因、验证、同步必要文档,并通过对应阶段 guard 后,才允许推进 Comet 状态
|
|
25
|
+
|
|
26
|
+
## 3. 归因分类
|
|
27
|
+
|
|
28
|
+
将 dirty diff 分为三类:
|
|
29
|
+
|
|
30
|
+
1. **属于当前 change**:文件和内容能对应当前 change 的目标、tasks.md、plan 或 delta spec。将其纳入当前任务继续,不重复改同一处
|
|
31
|
+
2. **不属于当前 change**:文件或内容与当前目标无关。暂停并询问用户:并入当前 change、拆成新 change、保留不处理,或明确授权丢弃
|
|
32
|
+
3. **来源不确定**:无法从 diff 和文档判断归属。暂停并向用户汇报文件列表和判断依据,不继续推进阶段
|
|
33
|
+
|
|
34
|
+
## 4. 常见处理模式
|
|
35
|
+
|
|
36
|
+
### 已实现但 tasks.md 未勾选
|
|
37
|
+
|
|
38
|
+
先验证实现(运行构建和测试),通过后补勾任务。不要因为任务未勾选就重做一遍,也不要因为状态文件滞后而忽略代码事实。若当前子 skill 定义了阶段特例,以子 skill 为准。
|
|
39
|
+
|
|
40
|
+
### 暗示计划或范围已变化
|
|
41
|
+
|
|
42
|
+
按当前子 skill 的升级、增量更新或回退规则处理,本协议不重复阶段特例。
|
|
43
|
+
|
|
44
|
+
### 模糊恢复意图
|
|
45
|
+
|
|
46
|
+
用户说"继续""接着跑""我改了一点""刚才不满意""重新弄""代码动过""先按现在的来"等模糊恢复意图时,按本协议处理。不要要求用户先回忆具体改了哪里。
|
|
47
|
+
|
|
48
|
+
### open/design 阶段出现代码改动
|
|
49
|
+
|
|
50
|
+
若当前仍处于 `open` 或 `design`,但 dirty worktree 已经包含代码改动,先按本协议归因,不要直接推进阶段:
|
|
51
|
+
|
|
52
|
+
- 属于当前 change 的改动:作为需求或设计输入记录到 proposal/design/spec/design doc/tasks 中;进入 build 前仍需完成对应阶段 guard
|
|
53
|
+
- 不属于当前 change 或来源不确定:暂停询问用户是并入当前 change、拆成新 change、保留不处理,还是明确授权丢弃
|
|
54
|
+
- 禁止在 open/design 阶段直接把代码改动当作已完成实现并推进到 verify
|
|
55
|
+
|
|
56
|
+
## 5. 禁令
|
|
57
|
+
|
|
58
|
+
- 禁止在未理解 dirty diff 来源时覆盖、回滚、格式化重写或忽略用户改动
|
|
59
|
+
- 禁止在 dirty diff 未解释清楚时判定验证通过
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
# CometIntentFrame 字段参考
|
|
2
|
+
|
|
3
|
+
本文件只在需要解释字段含义时读取。正常 `/comet` 路由只需按主 Skill 的最小骨架填写;runtime 会补齐省略字段并输出最终 `route`。
|
|
4
|
+
|
|
5
|
+
## 顶层字段
|
|
6
|
+
|
|
7
|
+
| 字段 | 含义 |
|
|
8
|
+
|------|------|
|
|
9
|
+
| `schema_version` | frame 版本,当前固定为 `comet.intent.v1`。 |
|
|
10
|
+
| `utterance` | 触发 `/comet` 的用户原话。 |
|
|
11
|
+
| `intent` | 用户高层意图和置信度。低于 runtime 阈值时会路由到 `ask_user`。 |
|
|
12
|
+
| `slots` | 从用户原话归一化出来的路由槽位。 |
|
|
13
|
+
| `context` | 从仓库状态读取的上下文,不是用户原话抽取结果。 |
|
|
14
|
+
| `evidence` | 支撑关键判断的证据。缺少关键 evidence 时 runtime 会倾向 `ask_user`。 |
|
|
15
|
+
| `proposed_route` | Agent 提交的候选路由。最小输入只需 `name` 和 `confidence`,runtime 会复核并输出最终 `route`。 |
|
|
16
|
+
|
|
17
|
+
## `intent`
|
|
18
|
+
|
|
19
|
+
| 字段 | 含义 |
|
|
20
|
+
|------|------|
|
|
21
|
+
| `intent.name` | 用户高层意图:启动、恢复、修 bug、小改、提问或未知。 |
|
|
22
|
+
| `intent.confidence` | Agent 对高层意图判断的置信度。它参与低置信度 fallback;`proposed_route.confidence` 不参与。 |
|
|
23
|
+
|
|
24
|
+
## `slots`
|
|
25
|
+
|
|
26
|
+
| 字段 | 含义 |
|
|
27
|
+
|------|------|
|
|
28
|
+
| `requested_action` | 用户想执行的动作,例如 `start`、`resume`、`continue`、`fix`、`modify`、`create`、`verify`、`archive`、`question`。 |
|
|
29
|
+
| `workflow_candidate` | Agent 推断的候选流程:`full`、`hotfix`、`tweak` 或 `null`。这是推断值,runtime 会复核。 |
|
|
30
|
+
| `user_explicit_workflow` | 用户是否明确指定流程。用户说“走 hotfix”时填 `hotfix`;没明确说时填 `null`。显式流程与风险信号冲突时仍会 `ask_user`。 |
|
|
31
|
+
| `change_id` | 用户指定要恢复或操作的 active change 名。没有指定时填 `null`。 |
|
|
32
|
+
| `existing_behavior` | 是否在修复已有行为或回归。`true` 且没有新增能力/API/schema/跨模块风险时倾向 `hotfix`。 |
|
|
33
|
+
| `new_capability` | 是否新增能力。命中时通常倾向 `full`。 |
|
|
34
|
+
| `public_api_change` | 是否改变用户可见接口或契约,例如 CLI 参数、配置字段、输出 JSON、Skill 对外流程。命中时通常倾向 `full`。 |
|
|
35
|
+
| `schema_change` | 是否改变结构化数据格式,例如 `.comet.yaml`、`run-state.json`、eval manifest、bundle manifest、配置 schema。命中时通常倾向 `full`。 |
|
|
36
|
+
| `cross_module_change` | 是否跨模块或跨 workflow 边界协作。命中时通常倾向 `full`。 |
|
|
37
|
+
| `target_area` | 可选解释字段,表示用户提到的目标区域。最小骨架不需要填写。 |
|
|
38
|
+
| `scope` | 可选解释字段,表示粗略范围大小。当前 scorer 不让它单独主导路由,最小骨架不需要填写。 |
|
|
39
|
+
|
|
40
|
+
## `context`
|
|
41
|
+
|
|
42
|
+
| 字段 | 含义 |
|
|
43
|
+
|------|------|
|
|
44
|
+
| `active_changes_count` | `openspec list --json` 得到的未归档 active change 数量。多个 active change 且用户未指定 `change_id` 时会 `ask_user`。 |
|
|
45
|
+
| `active_change_names` | active change 名称列表。用户指定 `change_id` 时,runtime 用它检查 change 是否存在。 |
|
|
46
|
+
| `dirty_worktree` | 可选状态字段。入口路由最小骨架不需要填写;dirty worktree 由 `comet/reference/dirty-worktree.md` 专门处理。 |
|
|
47
|
+
|
|
48
|
+
## `evidence`
|
|
49
|
+
|
|
50
|
+
每条 evidence 包含:
|
|
51
|
+
|
|
52
|
+
| 字段 | 含义 |
|
|
53
|
+
|------|------|
|
|
54
|
+
| `field` | evidence 支撑的 frame 字段,例如 `intent.name` 或 `slots.workflow_candidate`。 |
|
|
55
|
+
| `quote` | 来自用户原话、仓库状态或 `.comet.yaml` 的证据片段。 |
|
|
56
|
+
| `source` | 证据来源:`user`、`repo` 或 `state`。 |
|
|
57
|
+
|
|
58
|
+
## `proposed_route`
|
|
59
|
+
|
|
60
|
+
| 字段 | 含义 |
|
|
61
|
+
|------|------|
|
|
62
|
+
| `name` | Agent 候选路由:`full`、`hotfix`、`tweak`、`resume`、`ask_user` 或 `out_of_scope`。 |
|
|
63
|
+
| `confidence` | Agent 对候选路由的置信度,只用于诊断,不参与低置信度 fallback。 |
|
|
64
|
+
| `next_skill` | 派生字段,runtime 会规范化;最小骨架不需要填写。 |
|
|
65
|
+
| `requires_confirmation` | 派生字段,runtime 会规范化;最小骨架不需要填写。 |
|
|
66
|
+
| `fallback_reason` | 派生字段,runtime 会规范化;最小骨架不需要填写。 |
|
|
67
|
+
|
|
68
|
+
## 路由判断要点
|
|
69
|
+
|
|
70
|
+
- 修复已有异常、回归、错误行为,且没有新增能力/API/schema/跨模块风险:倾向 `hotfix`。
|
|
71
|
+
- 文案、配置、文档、prompt 或单一 OpenSpec change 的轻中量修改:倾向 `tweak`。
|
|
72
|
+
- 新增能力、public API、schema 变更、跨模块协调或架构调整:倾向 `full`。
|
|
73
|
+
- 多个 active change 且用户没指定 change:`ask_user`。
|
|
74
|
+
- 低置信度、关键 evidence 缺失、显式流程与风险信号冲突:`ask_user`。
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
# 脚本定位与命令
|
|
2
|
+
|
|
3
|
+
规范路径:`comet/reference/scripts.md`
|
|
4
|
+
|
|
5
|
+
本文件是 Comet 脚本定位和 state/guard/handoff/archive 命令面的单一事实来源。每会话加载一次,然后复用缓存的环境变量。
|
|
6
|
+
|
|
7
|
+
## 引导(每会话运行一次)
|
|
8
|
+
|
|
9
|
+
Comet 脚本随 skill 包分发在 `comet/scripts/` 下。**不硬编码路径** — 定位一次,缓存到环境变量。子 Skill 可以直接引用本节,只有需要完全自包含执行时才内联此块;修改时以本文件为单一事实源:
|
|
10
|
+
|
|
11
|
+
```bash
|
|
12
|
+
COMET_ENV="${COMET_ENV:-$(find . "$HOME"/.*/skills "$HOME/.config" "$HOME/.gemini" -path '*/comet/scripts/comet-env.mjs' -type f -print -quit 2>/dev/null)}"
|
|
13
|
+
if [ -z "$COMET_ENV" ]; then
|
|
14
|
+
echo "ERROR: comet-env.mjs not found. Ensure the comet skill is installed." >&2
|
|
15
|
+
return 1
|
|
16
|
+
fi
|
|
17
|
+
COMET_SCRIPTS_DIR="$(node "$COMET_ENV")"
|
|
18
|
+
COMET_STATE="$COMET_SCRIPTS_DIR/comet-state.mjs"
|
|
19
|
+
COMET_GUARD="$COMET_SCRIPTS_DIR/comet-guard.mjs"
|
|
20
|
+
COMET_HANDOFF="$COMET_SCRIPTS_DIR/comet-handoff.mjs"
|
|
21
|
+
COMET_ARCHIVE="$COMET_SCRIPTS_DIR/comet-archive.mjs"
|
|
22
|
+
COMET_INTENT="$COMET_SCRIPTS_DIR/comet-intent.mjs"
|
|
23
|
+
|
|
24
|
+
# 脚本定位失败时停止流程
|
|
25
|
+
if [ -z "$COMET_SCRIPTS_DIR" ]; then
|
|
26
|
+
echo "ERROR: Comet scripts not found. Ensure the comet skill is installed." >&2
|
|
27
|
+
return 1
|
|
28
|
+
fi
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
加载 comet 后,agent 应执行以上变量赋值一次,后续全程复用 `$COMET_GUARD`、`$COMET_STATE`、`$COMET_HANDOFF`、`$COMET_ARCHIVE`、`$COMET_INTENT`。
|
|
32
|
+
|
|
33
|
+
## 自动状态更新
|
|
34
|
+
|
|
35
|
+
guard 支持 `--apply` 参数,验证通过后自动更新 `.comet.yaml` 状态字段:
|
|
36
|
+
|
|
37
|
+
```bash
|
|
38
|
+
node "$COMET_GUARD" <change-name> <phase> --apply
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
`--apply` 内部委托给 `comet-state transition`。需要直接表达状态事件时使用:
|
|
42
|
+
|
|
43
|
+
```bash
|
|
44
|
+
node "$COMET_STATE" transition <change-name> open-complete
|
|
45
|
+
node "$COMET_STATE" transition <change-name> design-complete
|
|
46
|
+
node "$COMET_STATE" transition <change-name> build-complete
|
|
47
|
+
node "$COMET_STATE" transition <change-name> verify-pass
|
|
48
|
+
node "$COMET_STATE" transition <change-name> verify-fail
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
归档完成由 `node "$COMET_ARCHIVE" <change-name>` 负责;OpenSpec 会把 change 移到带日期前缀的归档目录,不要手动 transition 一个 `<archive-name>`。
|
|
52
|
+
|
|
53
|
+
## 解析下一步
|
|
54
|
+
|
|
55
|
+
阶段守卫推进 phase 后,用 `next` 子命令解析是否自动调用下一个 skill:
|
|
56
|
+
|
|
57
|
+
```bash
|
|
58
|
+
node "$COMET_STATE" next <change-name>
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
输出 `NEXT: auto|manual|done` + `SKILL: <skill-name>`(`done` 时省略)+ `HINT`(仅 `manual` 时)。`auto_transition: false` 时输出 `manual`,只暂停下一 skill 调用,不影响已发生的 phase 推进。
|
|
62
|
+
|
|
63
|
+
## 归档脚本
|
|
64
|
+
|
|
65
|
+
一键完成归档全部步骤:
|
|
66
|
+
|
|
67
|
+
```bash
|
|
68
|
+
node "$COMET_ARCHIVE" <change-name>
|
|
69
|
+
```
|
|
@@ -2,14 +2,14 @@
|
|
|
2
2
|
|
|
3
3
|
规范路径:`comet/reference/subagent-dispatch.md`
|
|
4
4
|
|
|
5
|
-
本文档提供在 Superpowers `subagent-driven-development` 技能**之上**应用的 Comet
|
|
5
|
+
本文档提供在 Superpowers `subagent-driven-development` 技能**之上**应用的 Comet 专属扩展。Superpowers `subagent-driven-development` 技能提供基础连续派发循环(每个 task 派发全新 implementer,并包含默认 task reviewer 节点)并强制连续执行。本文档添加 Comet 特有的真实后台调度、任务追踪、状态验证、上下文恢复,以及审查/修复预算;Comet 的 `review_mode` 接管 reviewer 阶段,决定哪些任务需要 reviewer、需要几轮修复和最终审查。若 Superpowers 技能与本文档发生冲突时,以本文档中更具体的 Comet 约束为准。
|
|
6
6
|
|
|
7
7
|
> **⚠️ 关键约束 — 任务之间禁止暂停**
|
|
8
8
|
>
|
|
9
|
-
> 当一个 task
|
|
9
|
+
> 当一个 task 按 `review_mode` 完成验收并被勾选后,**立即派发下一个 task**,不得停止、总结或询问用户是否继续。用户期望所有 task 按顺序自动执行,无需手动干预。任务之间暂停会中断工作流,导致用户每次都需要手动恢复。
|
|
10
10
|
>
|
|
11
11
|
> 仅在以下情况才停止并等待用户输入:
|
|
12
|
-
> - 任务处于 **BLOCKED**
|
|
12
|
+
> - 任务处于 **BLOCKED** 状态(`review_mode: standard` 下风险任务 1 轮 review-fix 或最终轻量复查仍未通过,或 `review_mode: thorough` 下任务级/最终审查 2 轮审查-修复仍未通过)
|
|
13
13
|
> - 存在无法从仓库、计划或既有上下文消除的真实歧义
|
|
14
14
|
> - 平台没有真实后台 agent 调度能力,需要用户改选 `executing-plans`
|
|
15
15
|
> - 用户**明确**要求暂停
|
|
@@ -18,9 +18,10 @@
|
|
|
18
18
|
|
|
19
19
|
## 开始前
|
|
20
20
|
|
|
21
|
-
1.
|
|
22
|
-
2.
|
|
23
|
-
3.
|
|
21
|
+
1. 派发第一个 task 前,必须完成 Superpowers `subagent-driven-development` 技能的预检计划审查:扫描 plan 和全局约束中是否存在互相矛盾的要求,或 plan 明确要求但 reviewer 会判为缺陷的内容。若发现问题,实施前一次性向用户提出成组问题并附上冲突的 plan 原文;若没有问题,直接继续。
|
|
22
|
+
2. 读取计划一次,按顺序提取所有未勾选 task 的完整文本。
|
|
23
|
+
3. 为每个 task 保存唯一标识:plan 中 checkbox 后的完整任务文本,以及它映射的 OpenSpec task 完整文本(若存在)。若文本不唯一,停止并先修正计划,禁止依赖"第一个匹配项"。
|
|
24
|
+
4. 尊重依赖关系;依赖尚未完成的 task 不得提前派发。
|
|
24
25
|
|
|
25
26
|
## 每个 Task 的 Comet 扩展
|
|
26
27
|
|
|
@@ -28,9 +29,9 @@
|
|
|
28
29
|
|
|
29
30
|
### 0. 派发强制约束(关键)
|
|
30
31
|
|
|
31
|
-
主会话**仅负责协调**,禁止直接执行 task。主会话禁止修改源代码。协调者唯一允许的文件修改是 plan、OpenSpec task 和 subagent 进度检查点的持久化更新。不得把多个 task 打包给同一个 agent。每个 task 派发一个全新的后台 implementer agent
|
|
32
|
+
主会话**仅负责协调**,禁止直接执行 task。主会话禁止修改源代码。协调者唯一允许的文件修改是 plan、OpenSpec task 和 subagent 进度检查点的持久化更新。不得把多个 task 打包给同一个 agent。每个 task 派发一个全新的后台 implementer agent;当 `review_mode` 需要审查或修复时,task reviewer、修复 agent 和 final reviewer 也必须分别使用全新的后台 agent:
|
|
32
33
|
|
|
33
|
-
- **Claude Code**:对每个 implementer
|
|
34
|
+
- **Claude Code**:对每个 implementer,以及 `review_mode` 要求的 task reviewer、修复 agent 和 final reviewer 使用 `Agent` 工具并设置 `run_in_background: true`。禁止内联执行 task,禁止错误进入需要预先创建 team 的团队模式。
|
|
34
35
|
- **其他平台**:使用平台等效的后台 agent / Task / 多 agent 派发机制。
|
|
35
36
|
- **禁止**跨 task 或角色复用 implementer、reviewer 或修复 agent。每个 agent 拥有全新的隔离上下文,并且只接收当前角色所需的单个 task 上下文。
|
|
36
37
|
- 若平台无真实后台派发能力,不得继续;暂停并等待用户改选 `build_mode: executing-plans`。
|
|
@@ -40,14 +41,40 @@
|
|
|
40
41
|
每个 implementer 或修复 agent prompt 必须包含:
|
|
41
42
|
|
|
42
43
|
- 当前单个 task 的完整文本、架构背景和依赖上下文
|
|
43
|
-
- `Language:
|
|
44
|
+
- `Language: 使用 "$COMET_BASH" "$COMET_STATE" get <name> language 读取到的 Comet 配置产物语言输出`
|
|
44
45
|
- 允许修改的文件范围和禁止修改的范围
|
|
45
46
|
- 必须执行的测试命令和提交要求
|
|
46
47
|
- 修复 agent 还必须收到对应 reviewer 的完整反馈
|
|
47
48
|
|
|
48
|
-
|
|
49
|
+
大型 task 文本、实现报告和审查材料必须通过已加载的 Superpowers `subagent-driven-development` 技能提供的文件交接机制传递,不得整段粘贴进主会话。派发 prompt 应指向这些交接产物,同时保留角色、允许范围、必跑测试、报告契约和 Comet 特有约束。Comet 可以记录 agent 回传的产物路径或短摘要用于恢复,但不得依赖这些产物的内部名称或目录布局。
|
|
49
50
|
|
|
50
|
-
|
|
51
|
+
agent 回报状态必须为 `DONE | DONE_WITH_CONCERNS | BLOCKED | NEEDS_CONTEXT`,并包含或指向实现内容、测试结果、提交哈希、变更文件和顾虑。**implementer/修复 agent 还必须回报本任务是否命中任一风险信号**(见下方清单),命中则逐条列出;这是 `review_mode: standard` 下是否派发每任务 reviewer 的第一信号源。进入审查前,主会话必须确认提交和文件在当前工作树可见;若平台使用隔离副本,先拉取或合并变更。
|
|
52
|
+
|
|
53
|
+
**风险信号清单**(命中任一即视为风险任务):
|
|
54
|
+
|
|
55
|
+
- 跨模块/跨子系统协调改动
|
|
56
|
+
- 安全敏感面:认证、授权、加解密、SQL、外部输入处理、密钥/凭证
|
|
57
|
+
- 并发、锁、共享可变状态
|
|
58
|
+
- 数据或 schema 迁移
|
|
59
|
+
- 公共 API 契约或对外接口变更
|
|
60
|
+
- implementer 返回 `DONE_WITH_CONCERNS`
|
|
61
|
+
- 单任务 diff 超过 200 行
|
|
62
|
+
|
|
63
|
+
当 `review_mode` 需要 reviewer 时,每个 reviewer prompt 必须包含或指向完整 task 需求、实现提交或差异以及 RED/GREEN 证据(`tdd_mode: tdd` 时)。reviewer 不得只依据 implementer 的总结进行审查。
|
|
64
|
+
|
|
65
|
+
reviewer prompt 必须保持中立:
|
|
66
|
+
|
|
67
|
+
- 不得要求 reviewer 重新运行 implementer 已经运行并报告的同一批测试;reviewer 负责核验已报告的证据和代码/diff。
|
|
68
|
+
- 不得在 reviewer prompt 中预判、压低或禁止报告某个发现。若某个可能发现与 plan 冲突,让 reviewer 先报告,再询问用户以哪个要求为准。
|
|
69
|
+
- 不得把之前 task 的累计历史粘贴进后续派发。只提供当前 task、相关接口/约束,以及已加载的 Superpowers `subagent-driven-development` 技能暴露的交接产物。
|
|
70
|
+
|
|
71
|
+
**Model 选择(强制)**:每次派发必须显式指定 model,省略会静默继承会话最贵 model,拖慢执行并抬高成本。遵循 Superpowers `subagent-driven-development` 的 Model Selection 规则:
|
|
72
|
+
|
|
73
|
+
- **implementer / 修复 agent**:用 prose 描述的实现任务至少使用中档;多文件集成、需要模式匹配或调试 → 中档;需要设计判断或广泛理解代码库 → 高档。只有当 plan 文本已含完整待写代码(转写+测试),或只是单文件机械修复时,才用最便宜档。
|
|
74
|
+
- **reviewer(任务级/最终)**:按 diff 大小、复杂度和风险缩放。小机械 diff 不需要最高档;微妙并发改动才上高档。
|
|
75
|
+
- **final whole-branch review**:使用可用的最高档 model,不用会话默认档。
|
|
76
|
+
|
|
77
|
+
省略 model 等于让它跑会话最贵 model,直接违背本节目标。
|
|
51
78
|
|
|
52
79
|
### 2. Implementer 范围限制
|
|
53
80
|
|
|
@@ -61,27 +88,53 @@ implementer 只负责实现、测试和提交代码。**implementer 不得勾选
|
|
|
61
88
|
You MUST follow TDD: write a failing test first, watch it fail, then write minimal code to pass. No production code without a failing test first.
|
|
62
89
|
```
|
|
63
90
|
|
|
64
|
-
implementer 或修复 agent 回报必须提供 **RED 失败命令与失败摘要**、**GREEN
|
|
91
|
+
implementer 或修复 agent 回报必须提供 **RED 失败命令与失败摘要**、**GREEN 通过命令与通过摘要**;缺少任一证据不得进入审查。当 `review_mode` 需要 task reviewer 时,该 reviewer 必须核验 RED/GREEN 证据与测试覆盖,并同时检查 spec compliance 与 code quality。
|
|
65
92
|
|
|
66
93
|
### 4. 持久进度检查点
|
|
67
94
|
|
|
68
95
|
主会话必须维护 `openspec/changes/<name>/.comet/subagent-progress.md`,并在每次派发、agent 回报、审查结果、修复轮次变化和 task 勾选后立即更新。检查点至少记录:
|
|
69
96
|
|
|
70
97
|
- 当前 plan task 唯一文本及映射的 OpenSpec task 文本
|
|
71
|
-
- 当前阶段:`implementing |
|
|
98
|
+
- 当前阶段:`implementing | task-review | checkoff | done | blocked | final-review | final-fix`
|
|
72
99
|
- 实现提交哈希、变更文件和 RED/GREEN 证据
|
|
100
|
+
- 已选择的 `review_mode`
|
|
73
101
|
- 已通过的审查阶段及尚未解决的 reviewer 反馈
|
|
74
|
-
- 当前 task 或 final review
|
|
102
|
+
- 当前 task 或 final review 的审查-修复轮次(`standard` 最多 1 轮,`thorough` 最多 2 轮,`off` 为 0 轮)
|
|
103
|
+
- `review_mode: standard` 时,本 task 是否已触发风险任务级 review 及命中的风险信号(恢复时不得重复派发已完成的任务级 review)
|
|
75
104
|
|
|
76
105
|
该文件只保存恢复所需的协调状态,不替代 plan 或 OpenSpec checkbox。当前 task 完成后保留其最终记录,开始下一个 task 时用下一 task 的记录替换。
|
|
77
106
|
|
|
78
|
-
|
|
107
|
+
Comet 不读取、不写入、也不要求任何 Superpowers `subagent-driven-development` 内部脚本或工作区路径。如果当前安装的 Superpowers `subagent-driven-development` 技能维护自己的临时产物、审查材料、任务需求文件或进度记录,这些都由 Superpowers 自行管理。Comet 的持久事实来源只限于 Comet workflow 状态、plan/OpenSpec checkbox 和本协调检查点。
|
|
108
|
+
|
|
109
|
+
### 5. 代码审查模式与轮次限制
|
|
110
|
+
|
|
111
|
+
> **⚠️ CRITICAL — review_mode 接管 Superpowers 默认流程,禁止双重审查**
|
|
112
|
+
>
|
|
113
|
+
> Superpowers `subagent-driven-development` 的 Process 流程图把"每个 task 后派发 task reviewer"设为必经节点。**Comet 的 `review_mode` 接管这一环节,决定哪些任务派发每任务 reviewer**(见下表每任务 reviewer 列)。**不得在 review_mode 已规定的每任务 reviewer 之外,额外按 Superpowers 默认派发 reviewer**。未派发 reviewer 的任务(`off` 全部、`standard` 非风险任务)必须直接进入 task 勾选与下一个 task 的派发。
|
|
114
|
+
>
|
|
115
|
+
> 一个 change 的审查次数由下表唯一决定,不得自行追加。
|
|
116
|
+
|
|
117
|
+
**build 阶段审查次数预算**(仅这些,不得额外增加)。本表只覆盖 build 阶段;verify 阶段有自己的审查处理(见下方说明):
|
|
118
|
+
|
|
119
|
+
| `review_mode` | build 阶段每任务 reviewer | build 阶段最终审查 |
|
|
120
|
+
|---------------|--------------------------|-------------------|
|
|
121
|
+
| `off` | 0 | 0 |
|
|
122
|
+
| `standard` | 仅风险任务(见下方规则) | 1(轻量) |
|
|
123
|
+
| `thorough` | 每个任务(spec + quality) | 1(完整) |
|
|
124
|
+
|
|
125
|
+
**verify 阶段的审查不在此表内。** verify 阶段的审查由 `verify_mode`(light/full)驱动规模,`review_mode` 只决定是否触发自动代码审查(`off` 跳过;`standard`/`thorough` 在轻量验证下做一次轻量代码审查,在全量验证下依赖 `openspec-verify-change`)。verify 阶段没有按 `review_mode` 区分的独立"完整"代码审查——verify 阶段的权威行为见 `comet-verify`。
|
|
126
|
+
|
|
127
|
+
当 `review_mode: standard` 时,默认不为每个 task 派发 reviewer,而是按**风险触发**决定:implementer 自测、提交并回报证据(含风险信号自报)后,协调者读取自报信号并复核该 task 的 diff。**仅当 implementer 自报命中任一风险信号、或协调者复核 diff 发现命中任一风险信号时**,为该 task 单独派发一个每任务 reviewer,同时检查 spec compliance 与 code quality,发现 CRITICAL/IMPORTANT 问题进入一轮 review-fix(最多 1 轮),复查未通过则标记 **BLOCKED**。未命中风险信号的 task 直接做定向勾选验证后放行。所有 task 完成后仍派发一次最终轻量 code reviewer(范围:正确性、安全、边界)。若最终轻量审查发现 CRITICAL 或 IMPORTANT 问题,最多自动派发一轮修复 agent 并复查一次;复查仍未通过时标记 **BLOCKED**,暂停并把反馈交给用户。非 CRITICAL 发现可记录接受理由后继续。
|
|
128
|
+
|
|
129
|
+
当 `review_mode: thorough` 时,**每个 task 派发一个每任务 reviewer,同时检查 spec compliance 与 code quality**:implementer 自测、提交并回报证据后,协调者为该 task 派发一个全新后台 reviewer。reviewer 发现 CRITICAL/IMPORTANT 问题进入审查-修复(最多 2 轮),仍未通过则标记 **BLOCKED**,暂停并把反馈交给用户。所有 task 完成后再派发一次最终完整 reviewer。thorough 不做批次合并审查——高风险 change 要求每个任务即时、专注的审查,等批次边界才抓到问题代价过大。
|
|
130
|
+
|
|
131
|
+
当 reviewer 返回无法仅从审查材料验证的发现时,协调者必须在 task 勾选前自行核对。若直接检查仓库后确认是真实缺口,按失败的 spec/quality review 处理,进入对应修复与复查流程;若该项已由未改动代码或跨任务约束满足,在检查点记录理由后继续。
|
|
79
132
|
|
|
80
|
-
|
|
133
|
+
当 `review_mode: off` 时,不自动派发 task reviewer、final reviewer 或审查修复 agent。任务完成依据 implementer 的测试/构建证据、当前工作树确认、任务唯一文本勾选验证和用户显式要求。若执行过程中出现测试失败、构建失败或异常行为,仍必须按异常调试协议处理,不得用 `off` 跳过真实问题。
|
|
81
134
|
|
|
82
135
|
### 6. Task 勾选与验证
|
|
83
136
|
|
|
84
|
-
|
|
137
|
+
**按 `review_mode` 完成验收后**,主会话:
|
|
85
138
|
|
|
86
139
|
1. 将 plan 中保存的唯一 task 文本从 `- [ ]` 改为 `- [x]`
|
|
87
140
|
2. 若存在映射,再同步勾选 OpenSpec task
|
|
@@ -89,25 +142,28 @@ implementer 或修复 agent 回报必须提供 **RED 失败命令与失败摘要
|
|
|
89
142
|
4. 运行定向验证:
|
|
90
143
|
|
|
91
144
|
```bash
|
|
92
|
-
|
|
93
|
-
|
|
145
|
+
node "$COMET_STATE" task-checkoff "$PLAN_FILE" "$PLAN_TASK_TEXT"
|
|
146
|
+
node "$COMET_STATE" task-checkoff "openspec/changes/<name>/tasks.md" "$OPENSPEC_TASK_TEXT"
|
|
94
147
|
```
|
|
95
148
|
|
|
96
149
|
仅在对应映射存在时运行第二条。脚本会要求任务文本恰好出现一次且该项已勾选;验证失败时不得进入下一个 task。
|
|
97
150
|
|
|
98
151
|
## 收尾
|
|
99
152
|
|
|
100
|
-
-
|
|
101
|
-
- 所有 task
|
|
153
|
+
- **自动继续**:按 `review_mode` 完成验收并勾选 task 后,立即派发下一个未勾选的 task。禁止总结、禁止询问用户是否继续、禁止在任务之间等待用户输入。这是不可协商的 —— Superpowers 技能强制连续执行,文档顶部的关键约束进一步强化此规则。
|
|
154
|
+
- 所有 task 完成后,若 `review_mode: standard`,将检查点切换为 `final-review`,只派发一次最终轻量 code reviewer。CRITICAL 或 IMPORTANT 问题最多自动修复和复查一轮;仍未通过则暂停交给用户。通过或接受非 CRITICAL 发现后继续返回 `comet-build`。
|
|
155
|
+
- 所有 task 完成后,若 `review_mode: thorough`,将检查点切换为 `final-review`,派发一次最终完整 reviewer。CRITICAL 或 IMPORTANT 问题最多自动修复和复查两轮;仍未通过则暂停交给用户。通过或接受非 CRITICAL 发现后继续返回 `comet-build`。
|
|
156
|
+
- 所有 task 完成后,若 `review_mode: off`,不进入 `final-review` 或 `final-fix`,但必须在持久产物中记录跳过自动代码审查的原因,然后返回 `comet-build`。
|
|
102
157
|
- final review 通过后,结束的只是 subagent 派发循环,不是 Comet workflow。不得加载 `finishing-a-development-branch`,不得停下来询问用户下一步;必须返回 `comet-build` 继续执行退出条件、阶段守卫和后续阶段衔接。
|
|
103
158
|
|
|
104
159
|
## 上下文恢复
|
|
105
160
|
|
|
106
161
|
重新加载 Superpowers `subagent-driven-development` 技能并重新阅读本文档。先读取 `openspec/changes/<name>/.comet/subagent-progress.md`,再与第一个未勾选 task 和当前工作树核对:
|
|
107
162
|
|
|
108
|
-
- 检查点与未勾选 task 匹配时,从记录的精确阶段恢复,保留实现提交、RED/GREEN
|
|
163
|
+
- 检查点与未勾选 task 匹配时,从记录的精确阶段恢复,保留实现提交、RED/GREEN 证据、`review_mode`、已通过的审查阶段、未解决反馈和当前审查-修复轮次;不得重置轮次或重复已经通过的阶段。
|
|
164
|
+
- 若已加载的 Superpowers `subagent-driven-development` 技能通过自己的进度记录报告某个 task 已完成,先对照 git 历史和 Comet plan/OpenSpec checkbox 完成恢复判断。若提交和任务身份匹配,更新 Comet 检查点/勾选状态,不得重复派发已完成工作。
|
|
109
165
|
- 检查点缺失或与未勾选 task 不匹配时,为第一个未勾选 task 创建新检查点并从 implementer 派发开始。
|
|
110
166
|
- 检查点中的提交或文件在当前工作树不可见时,先拉取、合并或恢复对应变更;不得假定实现已存在。
|
|
111
167
|
- 所有 task 已勾选且检查点处于 `final-review` 或 `final-fix` 时,从最终审查的精确阶段恢复,并保留最终反馈和审查-修复轮次;不得重新进入已完成的 task。
|
|
112
168
|
|
|
113
|
-
|
|
169
|
+
已提交但未按 `review_mode` 完成验收的 task 保持未勾选,并按检查点重新进入对应的验证、审查或修复流程。
|