@rpamis/comet 0.4.0-beta.2 → 0.4.0-beta.4
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 +27 -18
- package/assets/manifest.json +2 -1
- package/assets/skills/comet/SKILL.md +25 -1
- package/assets/skills/comet/reference/comet-yaml-fields.md +6 -4
- package/assets/skills/comet/reference/context-recovery.md +10 -0
- package/assets/skills/comet/reference/scripts.md +47 -15
- package/assets/skills/comet/rules/comet-phase-guard.en.md +8 -0
- package/assets/skills/comet/rules/comet-phase-guard.md +9 -1
- package/assets/skills/comet/scripts/comet-resume-probe.mjs +3 -0
- package/assets/skills/comet/scripts/comet-runtime.mjs +1664 -512
- package/assets/skills/comet-archive/SKILL.md +24 -11
- package/assets/skills/comet-build/SKILL.md +40 -31
- package/assets/skills/comet-design/SKILL.md +1 -0
- package/assets/skills/comet-hotfix/SKILL.md +3 -1
- package/assets/skills/comet-open/SKILL.md +11 -1
- package/assets/skills/comet-tweak/SKILL.md +3 -1
- package/assets/skills/comet-verify/SKILL.md +29 -20
- package/assets/skills-zh/comet/SKILL.md +25 -1
- package/assets/skills-zh/comet/reference/comet-yaml-fields.md +5 -4
- package/assets/skills-zh/comet/reference/context-recovery.md +10 -0
- package/assets/skills-zh/comet/reference/scripts.md +47 -15
- package/assets/skills-zh/comet-archive/SKILL.md +24 -11
- package/assets/skills-zh/comet-build/SKILL.md +40 -31
- package/assets/skills-zh/comet-design/SKILL.md +1 -0
- package/assets/skills-zh/comet-hotfix/SKILL.md +3 -1
- package/assets/skills-zh/comet-open/SKILL.md +11 -1
- package/assets/skills-zh/comet-tweak/SKILL.md +3 -1
- package/assets/skills-zh/comet-verify/SKILL.md +30 -21
- package/dist/app/cli/comet-banner.d.ts +25 -0
- package/dist/app/cli/comet-banner.d.ts.map +1 -0
- package/dist/app/cli/comet-banner.js +265 -0
- package/dist/app/cli/comet-banner.js.map +1 -0
- package/dist/app/cli/index.js +37 -3
- package/dist/app/cli/index.js.map +1 -1
- package/dist/app/commands/classic.d.ts +4 -0
- package/dist/app/commands/classic.d.ts.map +1 -0
- package/dist/app/commands/classic.js +11 -0
- package/dist/app/commands/classic.js.map +1 -0
- package/dist/app/commands/doctor.d.ts +1 -0
- package/dist/app/commands/doctor.d.ts.map +1 -1
- package/dist/app/commands/doctor.js +100 -35
- package/dist/app/commands/doctor.js.map +1 -1
- package/dist/app/commands/eval.d.ts.map +1 -1
- package/dist/app/commands/eval.js +57 -20
- package/dist/app/commands/eval.js.map +1 -1
- package/dist/app/commands/i18n.d.ts +1 -1
- package/dist/app/commands/i18n.d.ts.map +1 -1
- package/dist/app/commands/i18n.js +12 -4
- package/dist/app/commands/i18n.js.map +1 -1
- package/dist/app/commands/init.d.ts.map +1 -1
- package/dist/app/commands/init.js +16 -13
- package/dist/app/commands/init.js.map +1 -1
- package/dist/app/commands/project-scope-selection.d.ts +13 -0
- package/dist/app/commands/project-scope-selection.d.ts.map +1 -0
- package/dist/app/commands/project-scope-selection.js +33 -0
- package/dist/app/commands/project-scope-selection.js.map +1 -0
- package/dist/app/commands/resume-probe.d.ts +11 -0
- package/dist/app/commands/resume-probe.d.ts.map +1 -0
- package/dist/app/commands/resume-probe.js +63 -0
- package/dist/app/commands/resume-probe.js.map +1 -0
- package/dist/app/commands/status.d.ts +31 -0
- package/dist/app/commands/status.d.ts.map +1 -1
- package/dist/app/commands/status.js +109 -20
- package/dist/app/commands/status.js.map +1 -1
- package/dist/app/commands/uninstall.d.ts +2 -0
- package/dist/app/commands/uninstall.d.ts.map +1 -1
- package/dist/app/commands/uninstall.js +217 -40
- package/dist/app/commands/uninstall.js.map +1 -1
- package/dist/app/commands/update.d.ts +6 -0
- package/dist/app/commands/update.d.ts.map +1 -1
- package/dist/app/commands/update.js +361 -68
- package/dist/app/commands/update.js.map +1 -1
- package/dist/config/repository-layout.json +4 -2
- package/dist/domains/bundle/bundle-platform.d.ts.map +1 -1
- package/dist/domains/bundle/bundle-platform.js +3 -1
- package/dist/domains/bundle/bundle-platform.js.map +1 -1
- package/dist/domains/bundle/eval-manifest-runtime.d.ts +6 -0
- package/dist/domains/bundle/eval-manifest-runtime.d.ts.map +1 -0
- package/dist/domains/bundle/eval-manifest-runtime.js +58 -0
- package/dist/domains/bundle/eval-manifest-runtime.js.map +1 -0
- package/dist/domains/bundle/types.d.ts +1 -1
- package/dist/domains/bundle/types.d.ts.map +1 -1
- package/dist/domains/comet-classic/classic-archive.d.ts +1 -0
- package/dist/domains/comet-classic/classic-archive.d.ts.map +1 -1
- package/dist/domains/comet-classic/classic-archive.js +35 -38
- package/dist/domains/comet-classic/classic-archive.js.map +1 -1
- package/dist/domains/comet-classic/classic-cli.d.ts +1 -1
- package/dist/domains/comet-classic/classic-cli.d.ts.map +1 -1
- package/dist/domains/comet-classic/classic-cli.js +3 -0
- package/dist/domains/comet-classic/classic-cli.js.map +1 -1
- package/dist/domains/comet-classic/classic-command-checks.d.ts +20 -0
- package/dist/domains/comet-classic/classic-command-checks.d.ts.map +1 -0
- package/dist/domains/comet-classic/classic-command-checks.js +97 -0
- package/dist/domains/comet-classic/classic-command-checks.js.map +1 -0
- package/dist/domains/comet-classic/classic-current-change.d.ts +19 -0
- package/dist/domains/comet-classic/classic-current-change.d.ts.map +1 -0
- package/dist/domains/comet-classic/classic-current-change.js +132 -0
- package/dist/domains/comet-classic/classic-current-change.js.map +1 -0
- package/dist/domains/comet-classic/classic-diagnostics.d.ts +2 -1
- package/dist/domains/comet-classic/classic-diagnostics.d.ts.map +1 -1
- package/dist/domains/comet-classic/classic-diagnostics.js +54 -1
- package/dist/domains/comet-classic/classic-diagnostics.js.map +1 -1
- package/dist/domains/comet-classic/classic-evidence.d.ts.map +1 -1
- package/dist/domains/comet-classic/classic-evidence.js +4 -0
- package/dist/domains/comet-classic/classic-evidence.js.map +1 -1
- package/dist/domains/comet-classic/classic-guard.d.ts.map +1 -1
- package/dist/domains/comet-classic/classic-guard.js +101 -141
- package/dist/domains/comet-classic/classic-guard.js.map +1 -1
- package/dist/domains/comet-classic/classic-hook-guard.d.ts.map +1 -1
- package/dist/domains/comet-classic/classic-hook-guard.js +67 -29
- package/dist/domains/comet-classic/classic-hook-guard.js.map +1 -1
- package/dist/domains/comet-classic/classic-project-config.d.ts +16 -0
- package/dist/domains/comet-classic/classic-project-config.d.ts.map +1 -0
- package/dist/domains/comet-classic/classic-project-config.js +40 -0
- package/dist/domains/comet-classic/classic-project-config.js.map +1 -0
- package/dist/domains/comet-classic/classic-resolver.d.ts.map +1 -1
- package/dist/domains/comet-classic/classic-resolver.js +3 -3
- package/dist/domains/comet-classic/classic-resolver.js.map +1 -1
- package/dist/domains/comet-classic/classic-resume-probe-command.d.ts +3 -0
- package/dist/domains/comet-classic/classic-resume-probe-command.d.ts.map +1 -0
- package/dist/domains/comet-classic/classic-resume-probe-command.js +58 -0
- package/dist/domains/comet-classic/classic-resume-probe-command.js.map +1 -0
- package/dist/domains/comet-classic/classic-resume-probe-entry.d.ts +2 -0
- package/dist/domains/comet-classic/classic-resume-probe-entry.d.ts.map +1 -0
- package/dist/domains/comet-classic/classic-resume-probe-entry.js +4 -0
- package/dist/domains/comet-classic/classic-resume-probe-entry.js.map +1 -0
- package/dist/domains/comet-classic/classic-resume-probe.d.ts +29 -0
- package/dist/domains/comet-classic/classic-resume-probe.d.ts.map +1 -0
- package/dist/domains/comet-classic/classic-resume-probe.js +386 -0
- package/dist/domains/comet-classic/classic-resume-probe.js.map +1 -0
- package/dist/domains/comet-classic/classic-runtime-run.d.ts +2 -1
- package/dist/domains/comet-classic/classic-runtime-run.d.ts.map +1 -1
- package/dist/domains/comet-classic/classic-runtime-run.js +269 -4
- package/dist/domains/comet-classic/classic-runtime-run.js.map +1 -1
- package/dist/domains/comet-classic/classic-state-command.d.ts.map +1 -1
- package/dist/domains/comet-classic/classic-state-command.js +129 -15
- package/dist/domains/comet-classic/classic-state-command.js.map +1 -1
- package/dist/domains/comet-classic/classic-state.d.ts +3 -3
- package/dist/domains/comet-classic/classic-state.d.ts.map +1 -1
- package/dist/domains/comet-classic/classic-state.js +4 -6
- package/dist/domains/comet-classic/classic-state.js.map +1 -1
- package/dist/domains/comet-classic/classic-store.d.ts +4 -1
- package/dist/domains/comet-classic/classic-store.d.ts.map +1 -1
- package/dist/domains/comet-classic/classic-store.js +27 -9
- package/dist/domains/comet-classic/classic-store.js.map +1 -1
- package/dist/domains/comet-classic/classic-transitions.d.ts +1 -1
- package/dist/domains/comet-classic/classic-transitions.d.ts.map +1 -1
- package/dist/domains/comet-classic/classic-transitions.js +20 -1
- package/dist/domains/comet-classic/classic-transitions.js.map +1 -1
- package/dist/domains/comet-classic/classic-validate-command.d.ts.map +1 -1
- package/dist/domains/comet-classic/classic-validate-command.js +1 -0
- package/dist/domains/comet-classic/classic-validate-command.js.map +1 -1
- package/dist/domains/comet-classic/index.d.ts +3 -0
- package/dist/domains/comet-classic/index.d.ts.map +1 -1
- package/dist/domains/comet-classic/index.js +3 -0
- package/dist/domains/comet-classic/index.js.map +1 -1
- package/dist/domains/dashboard/collector.js +10 -2
- package/dist/domains/dashboard/collector.js.map +1 -1
- package/dist/domains/dashboard/web/assets/{index-CjU3VXVu.js → index-CIvN-PL8.js} +11 -11
- package/dist/domains/dashboard/web/assets/{index-BcO3_QlT.css → index-DcyRPBnT.css} +1 -1
- package/dist/domains/dashboard/web/index.html +16 -16
- package/dist/domains/engine/types.d.ts +1 -1
- package/dist/domains/engine/types.d.ts.map +1 -1
- package/dist/domains/integrations/openspec.d.ts.map +1 -1
- package/dist/domains/integrations/openspec.js +6 -6
- package/dist/domains/integrations/openspec.js.map +1 -1
- package/dist/domains/skill/find.d.ts.map +1 -1
- package/dist/domains/skill/find.js +1 -6
- package/dist/domains/skill/find.js.map +1 -1
- package/dist/domains/skill/managed-markdown.d.ts +14 -0
- package/dist/domains/skill/managed-markdown.d.ts.map +1 -0
- package/dist/domains/skill/managed-markdown.js +126 -0
- package/dist/domains/skill/managed-markdown.js.map +1 -0
- package/dist/domains/skill/platform-install.d.ts +4 -3
- package/dist/domains/skill/platform-install.d.ts.map +1 -1
- package/dist/domains/skill/platform-install.js +96 -26
- package/dist/domains/skill/platform-install.js.map +1 -1
- package/dist/domains/skill/project-instructions.d.ts +22 -0
- package/dist/domains/skill/project-instructions.d.ts.map +1 -0
- package/dist/domains/skill/project-instructions.js +61 -0
- package/dist/domains/skill/project-instructions.js.map +1 -0
- package/dist/domains/skill/uninstall.d.ts +3 -1
- package/dist/domains/skill/uninstall.d.ts.map +1 -1
- package/dist/domains/skill/uninstall.js +86 -39
- package/dist/domains/skill/uninstall.js.map +1 -1
- package/dist/platform/install/detect.d.ts +2 -1
- package/dist/platform/install/detect.d.ts.map +1 -1
- package/dist/platform/install/detect.js +10 -1
- package/dist/platform/install/detect.js.map +1 -1
- package/dist/platform/install/platforms.d.ts +5 -1
- package/dist/platform/install/platforms.d.ts.map +1 -1
- package/dist/platform/install/platforms.js +21 -4
- package/dist/platform/install/platforms.js.map +1 -1
- package/dist/platform/install/project-registry.d.ts +37 -0
- package/dist/platform/install/project-registry.d.ts.map +1 -0
- package/dist/platform/install/project-registry.js +205 -0
- package/dist/platform/install/project-registry.js.map +1 -0
- package/eval/.env +28 -0
- package/eval/.env.example +52 -0
- package/eval/CLAUDE.md +43 -0
- package/eval/README.md +538 -0
- package/eval/langsmith/.env.example +16 -0
- package/eval/langsmith/README.md +93 -0
- package/eval/langsmith/skills/README.md +5 -0
- package/eval/langsmith/tasks/README.md +5 -0
- package/eval/langsmith/tests/conftest.py +187 -0
- package/eval/langsmith/tests/tasks/test_tasks.py +287 -0
- package/eval/langsmith/treatments/README.md +5 -0
- package/eval/local/README.md +80 -0
- package/eval/local/regression_baseline.json +13 -0
- package/eval/local/report-style-demo-assets/quality_cost.en.svg +41 -0
- package/eval/local/report-style-demo-assets/quality_cost.zh.svg +41 -0
- package/eval/local/report-style-demo-assets/rubric_delta.en.svg +56 -0
- package/eval/local/report-style-demo-assets/rubric_delta.zh.svg +56 -0
- package/eval/local/report-style-demo-assets/task_outcomes.en.svg +46 -0
- package/eval/local/report-style-demo-assets/task_outcomes.zh.svg +46 -0
- package/eval/local/report-style-demo.html +867 -0
- package/eval/local/scripts/compare_baselines.py +1018 -0
- package/eval/local/scripts/generate_report_style_demo_charts.py +322 -0
- package/eval/local/scripts/regression_check.py +171 -0
- package/eval/local/scripts/render_readme_benchmark_figures.py +416 -0
- package/eval/local/scripts/rescore_rubric.py +120 -0
- package/eval/local/skills/benchmarks/039-release/comet-classic-039/SKILL.md +282 -0
- package/eval/local/skills/benchmarks/039-release/comet-classic-039/reference/auto-transition.md +27 -0
- package/eval/local/skills/benchmarks/039-release/comet-classic-039/reference/comet-yaml-fields.md +68 -0
- package/eval/local/skills/benchmarks/039-release/comet-classic-039/reference/context-recovery.md +35 -0
- package/eval/local/skills/benchmarks/039-release/comet-classic-039/reference/debug-gate.md +17 -0
- package/eval/local/skills/benchmarks/039-release/comet-classic-039/reference/decision-point.md +20 -0
- package/eval/local/skills/benchmarks/039-release/comet-classic-039/reference/dirty-worktree.md +59 -0
- package/eval/local/skills/benchmarks/039-release/comet-classic-039/reference/file-structure.md +28 -0
- package/eval/local/skills/benchmarks/039-release/comet-classic-039/reference/subagent-dispatch.md +113 -0
- package/eval/local/skills/benchmarks/039-release/comet-classic-039/rules/comet-phase-guard.md +125 -0
- package/eval/local/skills/benchmarks/039-release/comet-classic-039/scripts/comet-archive.sh +311 -0
- package/eval/local/skills/benchmarks/039-release/comet-classic-039/scripts/comet-env.sh +110 -0
- package/eval/local/skills/benchmarks/039-release/comet-classic-039/scripts/comet-guard.sh +778 -0
- package/eval/local/skills/benchmarks/039-release/comet-classic-039/scripts/comet-handoff.sh +390 -0
- package/eval/local/skills/benchmarks/039-release/comet-classic-039/scripts/comet-hook-guard.sh +336 -0
- package/eval/local/skills/benchmarks/039-release/comet-classic-039/scripts/comet-state.sh +1338 -0
- package/eval/local/skills/benchmarks/039-release/comet-classic-039/scripts/comet-yaml-validate.sh +225 -0
- package/eval/local/skills/benchmarks/039-release/comet-classic-039-archive/SKILL.md +100 -0
- package/eval/local/skills/benchmarks/039-release/comet-classic-039-build/SKILL.md +304 -0
- package/eval/local/skills/benchmarks/039-release/comet-classic-039-design/SKILL.md +263 -0
- package/eval/local/skills/benchmarks/039-release/comet-classic-039-hotfix/SKILL.md +204 -0
- package/eval/local/skills/benchmarks/039-release/comet-classic-039-open/SKILL.md +220 -0
- package/eval/local/skills/benchmarks/039-release/comet-classic-039-tweak/SKILL.md +180 -0
- package/eval/local/skills/benchmarks/039-release/comet-classic-039-verify/SKILL.md +234 -0
- package/eval/local/skills/benchmarks/040-beta/comet/SKILL.md +261 -0
- package/eval/local/skills/benchmarks/040-beta/comet/reference/auto-transition.md +27 -0
- package/eval/local/skills/benchmarks/040-beta/comet/reference/comet-yaml-fields.md +73 -0
- package/eval/local/skills/benchmarks/040-beta/comet/reference/context-recovery.md +45 -0
- package/eval/local/skills/benchmarks/040-beta/comet/reference/debug-gate.md +33 -0
- package/eval/local/skills/benchmarks/040-beta/comet/reference/decision-point.md +31 -0
- package/eval/local/skills/benchmarks/040-beta/comet/reference/dirty-worktree.md +59 -0
- package/eval/local/skills/benchmarks/040-beta/comet/reference/file-structure.md +28 -0
- package/eval/local/skills/benchmarks/040-beta/comet/reference/intent-frame.md +74 -0
- package/eval/local/skills/benchmarks/040-beta/comet/reference/scripts.md +69 -0
- package/eval/local/skills/benchmarks/040-beta/comet/reference/subagent-dispatch.md +169 -0
- package/eval/local/skills/benchmarks/040-beta/comet/rules/comet-phase-guard.md +130 -0
- package/eval/local/skills/benchmarks/040-beta/comet/runtime/classic/checks.yaml +6 -0
- package/eval/local/skills/benchmarks/040-beta/comet/runtime/classic/guardrails.yaml +13 -0
- package/eval/local/skills/benchmarks/040-beta/comet/runtime/classic/skill.yaml +122 -0
- package/eval/local/skills/benchmarks/040-beta/comet/scripts/comet-archive.mjs +9515 -0
- package/eval/local/skills/benchmarks/040-beta/comet/scripts/comet-env.mjs +15 -0
- package/eval/local/skills/benchmarks/040-beta/comet/scripts/comet-guard.mjs +10173 -0
- package/eval/local/skills/benchmarks/040-beta/comet/scripts/comet-handoff.mjs +9491 -0
- package/eval/local/skills/benchmarks/040-beta/comet/scripts/comet-hook-guard.mjs +9175 -0
- package/eval/local/skills/benchmarks/040-beta/comet/scripts/comet-intent.mjs +404 -0
- package/eval/local/skills/benchmarks/040-beta/comet/scripts/comet-state.mjs +9273 -0
- package/eval/local/skills/benchmarks/040-beta/comet/scripts/comet-yaml-validate.mjs +7627 -0
- package/eval/local/skills/benchmarks/040-beta/comet-archive/SKILL.md +110 -0
- package/eval/local/skills/benchmarks/040-beta/comet-build/SKILL.md +315 -0
- package/eval/local/skills/benchmarks/040-beta/comet-design/SKILL.md +260 -0
- package/eval/local/skills/benchmarks/040-beta/comet-hotfix/SKILL.md +190 -0
- package/eval/local/skills/benchmarks/040-beta/comet-open/SKILL.md +210 -0
- package/eval/local/skills/benchmarks/040-beta/comet-tweak/SKILL.md +183 -0
- package/eval/local/skills/benchmarks/040-beta/comet-verify/SKILL.md +230 -0
- package/eval/local/skills/benchmarks/dependency/claude-md/comet-workflow/CLAUDE.md +12 -0
- package/eval/local/skills/benchmarks/dependency/openspec/openspec-apply-change/SKILL.md +156 -0
- package/eval/local/skills/benchmarks/dependency/openspec/openspec-archive-change/SKILL.md +114 -0
- package/eval/local/skills/benchmarks/dependency/openspec/openspec-bulk-archive-change/SKILL.md +246 -0
- package/eval/local/skills/benchmarks/dependency/openspec/openspec-continue-change/SKILL.md +118 -0
- package/eval/local/skills/benchmarks/dependency/openspec/openspec-explore/SKILL.md +288 -0
- package/eval/local/skills/benchmarks/dependency/openspec/openspec-ff-change/SKILL.md +101 -0
- package/eval/local/skills/benchmarks/dependency/openspec/openspec-new-change/SKILL.md +74 -0
- package/eval/local/skills/benchmarks/dependency/openspec/openspec-onboard/SKILL.md +554 -0
- package/eval/local/skills/benchmarks/dependency/openspec/openspec-propose/SKILL.md +110 -0
- package/eval/local/skills/benchmarks/dependency/openspec/openspec-sync-specs/SKILL.md +138 -0
- package/eval/local/skills/benchmarks/dependency/openspec/openspec-verify-change/SKILL.md +168 -0
- package/eval/local/skills/benchmarks/dependency/superpowers/brainstorming/SKILL.md +159 -0
- package/eval/local/skills/benchmarks/dependency/superpowers/brainstorming/scripts/frame-template.html +213 -0
- package/eval/local/skills/benchmarks/dependency/superpowers/brainstorming/scripts/helper.js +167 -0
- package/eval/local/skills/benchmarks/dependency/superpowers/brainstorming/scripts/server.cjs +723 -0
- package/eval/local/skills/benchmarks/dependency/superpowers/brainstorming/scripts/start-server.sh +209 -0
- package/eval/local/skills/benchmarks/dependency/superpowers/brainstorming/scripts/stop-server.sh +120 -0
- package/eval/local/skills/benchmarks/dependency/superpowers/brainstorming/spec-document-reviewer-prompt.md +49 -0
- package/eval/local/skills/benchmarks/dependency/superpowers/brainstorming/visual-companion.md +291 -0
- package/eval/local/skills/benchmarks/dependency/superpowers/dispatching-parallel-agents/SKILL.md +185 -0
- package/eval/local/skills/benchmarks/dependency/superpowers/executing-plans/SKILL.md +70 -0
- package/eval/local/skills/benchmarks/dependency/superpowers/finishing-a-development-branch/SKILL.md +241 -0
- package/eval/local/skills/benchmarks/dependency/superpowers/receiving-code-review/SKILL.md +213 -0
- package/eval/local/skills/benchmarks/dependency/superpowers/requesting-code-review/SKILL.md +103 -0
- package/eval/local/skills/benchmarks/dependency/superpowers/requesting-code-review/code-reviewer.md +172 -0
- package/eval/local/skills/benchmarks/dependency/superpowers/subagent-driven-development/SKILL.md +418 -0
- package/eval/local/skills/benchmarks/dependency/superpowers/subagent-driven-development/implementer-prompt.md +139 -0
- package/eval/local/skills/benchmarks/dependency/superpowers/subagent-driven-development/scripts/review-package +44 -0
- package/eval/local/skills/benchmarks/dependency/superpowers/subagent-driven-development/scripts/sdd-workspace +22 -0
- package/eval/local/skills/benchmarks/dependency/superpowers/subagent-driven-development/scripts/task-brief +40 -0
- package/eval/local/skills/benchmarks/dependency/superpowers/subagent-driven-development/task-reviewer-prompt.md +188 -0
- package/eval/local/skills/benchmarks/dependency/superpowers/systematic-debugging/CREATION-LOG.md +119 -0
- package/eval/local/skills/benchmarks/dependency/superpowers/systematic-debugging/SKILL.md +296 -0
- package/eval/local/skills/benchmarks/dependency/superpowers/systematic-debugging/condition-based-waiting-example.ts +158 -0
- package/eval/local/skills/benchmarks/dependency/superpowers/systematic-debugging/condition-based-waiting.md +115 -0
- package/eval/local/skills/benchmarks/dependency/superpowers/systematic-debugging/defense-in-depth.md +122 -0
- package/eval/local/skills/benchmarks/dependency/superpowers/systematic-debugging/find-polluter.sh +63 -0
- package/eval/local/skills/benchmarks/dependency/superpowers/systematic-debugging/root-cause-tracing.md +169 -0
- package/eval/local/skills/benchmarks/dependency/superpowers/systematic-debugging/test-academic.md +14 -0
- package/eval/local/skills/benchmarks/dependency/superpowers/systematic-debugging/test-pressure-1.md +58 -0
- package/eval/local/skills/benchmarks/dependency/superpowers/systematic-debugging/test-pressure-2.md +68 -0
- package/eval/local/skills/benchmarks/dependency/superpowers/systematic-debugging/test-pressure-3.md +69 -0
- package/eval/local/skills/benchmarks/dependency/superpowers/test-driven-development/SKILL.md +371 -0
- package/eval/local/skills/benchmarks/dependency/superpowers/test-driven-development/testing-anti-patterns.md +299 -0
- package/eval/local/skills/benchmarks/dependency/superpowers/using-git-worktrees/SKILL.md +202 -0
- package/eval/local/skills/benchmarks/dependency/superpowers/verification-before-completion/SKILL.md +139 -0
- package/eval/local/skills/benchmarks/dependency/superpowers/writing-plans/SKILL.md +174 -0
- package/eval/local/skills/benchmarks/dependency/superpowers/writing-plans/plan-document-reviewer-prompt.md +49 -0
- package/eval/local/skills/benchmarks/dependency/superpowers/writing-skills/SKILL.md +689 -0
- package/eval/local/skills/benchmarks/dependency/superpowers/writing-skills/anthropic-best-practices.md +1150 -0
- package/eval/local/skills/benchmarks/dependency/superpowers/writing-skills/examples/CLAUDE_MD_TESTING.md +189 -0
- package/eval/local/skills/benchmarks/dependency/superpowers/writing-skills/graphviz-conventions.dot +172 -0
- package/eval/local/skills/benchmarks/dependency/superpowers/writing-skills/persuasion-principles.md +187 -0
- package/eval/local/skills/benchmarks/dependency/superpowers/writing-skills/render-graphs.js +168 -0
- package/eval/local/skills/benchmarks/dependency/superpowers/writing-skills/testing-skills-with-subagents.md +384 -0
- package/eval/local/tasks/authoring-skill-smoke/environment/Dockerfile +2 -0
- package/eval/local/tasks/authoring-skill-smoke/instruction.md +4 -0
- package/eval/local/tasks/authoring-skill-smoke/task.toml +21 -0
- package/eval/local/tasks/authoring-skill-smoke/validation/test_authoring_skill_smoke.py +54 -0
- package/eval/local/tasks/comet-agent-memory-routing/environment/Dockerfile +28 -0
- package/eval/local/tasks/comet-agent-memory-routing/environment/agent_system.py +40 -0
- package/eval/local/tasks/comet-agent-memory-routing/environment/test_agent_system.py +29 -0
- package/eval/local/tasks/comet-agent-memory-routing/instruction.md +20 -0
- package/eval/local/tasks/comet-agent-memory-routing/task.toml +24 -0
- package/eval/local/tasks/comet-agent-memory-routing/validation/test_agent_memory_routing.py +24 -0
- package/eval/local/tasks/comet-api-cache-ttl/environment/Dockerfile +39 -0
- package/eval/local/tasks/comet-api-cache-ttl/environment/cache.py +39 -0
- package/eval/local/tasks/comet-api-cache-ttl/environment/test_cache.py +81 -0
- package/eval/local/tasks/comet-api-cache-ttl/instruction.md +33 -0
- package/eval/local/tasks/comet-api-cache-ttl/task.toml +24 -0
- package/eval/local/tasks/comet-api-cache-ttl/validation/test_api_cache_ttl.py +58 -0
- package/eval/local/tasks/comet-cross-file-refactor/environment/Dockerfile +15 -0
- package/eval/local/tasks/comet-cross-file-refactor/environment/cli.py +13 -0
- package/eval/local/tasks/comet-cross-file-refactor/environment/counting.py +13 -0
- package/eval/local/tasks/comet-cross-file-refactor/environment/test_textkit.py +21 -0
- package/eval/local/tasks/comet-cross-file-refactor/instruction.md +16 -0
- package/eval/local/tasks/comet-cross-file-refactor/task.toml +20 -0
- package/eval/local/tasks/comet-cross-file-refactor/validation/test_cross_file_refactor.py +20 -0
- package/eval/local/tasks/comet-dependency-confusion/environment/Dockerfile +28 -0
- package/eval/local/tasks/comet-dependency-confusion/environment/app.py +8 -0
- package/eval/local/tasks/comet-dependency-confusion/environment/settings_loader.py +14 -0
- package/eval/local/tasks/comet-dependency-confusion/environment/test_settings_service.py +19 -0
- package/eval/local/tasks/comet-dependency-confusion/instruction.md +18 -0
- package/eval/local/tasks/comet-dependency-confusion/task.toml +24 -0
- package/eval/local/tasks/comet-dependency-confusion/validation/test_dependency_confusion.py +24 -0
- package/eval/local/tasks/comet-fix-median/environment/Dockerfile +50 -0
- package/eval/local/tasks/comet-fix-median/environment/stats.py +54 -0
- package/eval/local/tasks/comet-fix-median/environment/test_stats.py +68 -0
- package/eval/local/tasks/comet-fix-median/instruction.md +25 -0
- package/eval/local/tasks/comet-fix-median/task.toml +24 -0
- package/eval/local/tasks/comet-fix-median/validation/test_fix_median.py +60 -0
- package/eval/local/tasks/comet-framework-selection/environment/Dockerfile +28 -0
- package/eval/local/tasks/comet-framework-selection/environment/architecture.py +12 -0
- package/eval/local/tasks/comet-framework-selection/environment/test_architecture.py +30 -0
- package/eval/local/tasks/comet-framework-selection/instruction.md +22 -0
- package/eval/local/tasks/comet-framework-selection/task.toml +24 -0
- package/eval/local/tasks/comet-framework-selection/validation/test_framework_selection.py +24 -0
- package/eval/local/tasks/comet-full-workflow/environment/Dockerfile +53 -0
- package/eval/local/tasks/comet-full-workflow/environment/test_wordcount.py +29 -0
- package/eval/local/tasks/comet-full-workflow/environment/wordcount.py +40 -0
- package/eval/local/tasks/comet-full-workflow/instruction.md +18 -0
- package/eval/local/tasks/comet-full-workflow/task.toml +24 -0
- package/eval/local/tasks/comet-full-workflow/validation/test_full_workflow.py +171 -0
- package/eval/local/tasks/comet-graph-execution-review/environment/Dockerfile +28 -0
- package/eval/local/tasks/comet-graph-execution-review/environment/pipeline.py +19 -0
- package/eval/local/tasks/comet-graph-execution-review/environment/test_pipeline.py +53 -0
- package/eval/local/tasks/comet-graph-execution-review/instruction.md +21 -0
- package/eval/local/tasks/comet-graph-execution-review/task.toml +24 -0
- package/eval/local/tasks/comet-graph-execution-review/validation/test_graph_execution_review.py +24 -0
- package/eval/local/tasks/comet-human-approval-flow/environment/Dockerfile +15 -0
- package/eval/local/tasks/comet-human-approval-flow/environment/approvals.py +17 -0
- package/eval/local/tasks/comet-human-approval-flow/environment/test_approvals.py +30 -0
- package/eval/local/tasks/comet-human-approval-flow/instruction.md +15 -0
- package/eval/local/tasks/comet-human-approval-flow/task.toml +20 -0
- package/eval/local/tasks/comet-human-approval-flow/validation/test_human_approval_flow.py +20 -0
- package/eval/local/tasks/comet-layered-streaming-fix/environment/Dockerfile +20 -0
- package/eval/local/tasks/comet-layered-streaming-fix/environment/chat_app.py +19 -0
- package/eval/local/tasks/comet-layered-streaming-fix/environment/test_chat_app.py +15 -0
- package/eval/local/tasks/comet-layered-streaming-fix/instruction.md +14 -0
- package/eval/local/tasks/comet-layered-streaming-fix/task.toml +20 -0
- package/eval/local/tasks/comet-layered-streaming-fix/validation/test_layered_streaming_fix.py +20 -0
- package/eval/local/tasks/comet-noise-distractor/environment/Dockerfile +15 -0
- package/eval/local/tasks/comet-noise-distractor/environment/distractor.md +4 -0
- package/eval/local/tasks/comet-noise-distractor/environment/invoice.py +5 -0
- package/eval/local/tasks/comet-noise-distractor/environment/test_invoice.py +18 -0
- package/eval/local/tasks/comet-noise-distractor/instruction.md +17 -0
- package/eval/local/tasks/comet-noise-distractor/task.toml +20 -0
- package/eval/local/tasks/comet-noise-distractor/validation/test_noise_distractor.py +20 -0
- package/eval/local/tasks/comet-observability-env-template/environment/Dockerfile +15 -0
- package/eval/local/tasks/comet-observability-env-template/environment/env_writer.py +17 -0
- package/eval/local/tasks/comet-observability-env-template/environment/test_env_writer.py +17 -0
- package/eval/local/tasks/comet-observability-env-template/instruction.md +20 -0
- package/eval/local/tasks/comet-observability-env-template/task.toml +20 -0
- package/eval/local/tasks/comet-observability-env-template/validation/test_observability_env_template.py +46 -0
- package/eval/local/tasks/comet-perf-dedupe/environment/Dockerfile +39 -0
- package/eval/local/tasks/comet-perf-dedupe/environment/dedupe.py +22 -0
- package/eval/local/tasks/comet-perf-dedupe/environment/test_dedupe.py +43 -0
- package/eval/local/tasks/comet-perf-dedupe/instruction.md +25 -0
- package/eval/local/tasks/comet-perf-dedupe/task.toml +24 -0
- package/eval/local/tasks/comet-perf-dedupe/validation/test_perf_dedupe.py +40 -0
- package/eval/local/tasks/comet-persistence-threading/environment/Dockerfile +15 -0
- package/eval/local/tasks/comet-persistence-threading/environment/session_store.py +15 -0
- package/eval/local/tasks/comet-persistence-threading/environment/test_session_store.py +21 -0
- package/eval/local/tasks/comet-persistence-threading/instruction.md +14 -0
- package/eval/local/tasks/comet-persistence-threading/task.toml +20 -0
- package/eval/local/tasks/comet-persistence-threading/validation/test_persistence_threading.py +20 -0
- package/eval/local/tasks/comet-refactor-counter/environment/Dockerfile +39 -0
- package/eval/local/tasks/comet-refactor-counter/environment/test_text_processor.py +57 -0
- package/eval/local/tasks/comet-refactor-counter/environment/text_processor.py +49 -0
- package/eval/local/tasks/comet-refactor-counter/instruction.md +31 -0
- package/eval/local/tasks/comet-refactor-counter/task.toml +24 -0
- package/eval/local/tasks/comet-refactor-counter/validation/test_refactor_counter.py +75 -0
- package/eval/local/tasks/comet-robust-config/environment/Dockerfile +39 -0
- package/eval/local/tasks/comet-robust-config/environment/config_loader.py +56 -0
- package/eval/local/tasks/comet-robust-config/environment/test_config_loader.py +72 -0
- package/eval/local/tasks/comet-robust-config/instruction.md +30 -0
- package/eval/local/tasks/comet-robust-config/task.toml +24 -0
- package/eval/local/tasks/comet-robust-config/validation/test_robust_config.py +37 -0
- package/eval/local/tasks/generic-skill-smoke/environment/Dockerfile +2 -0
- package/eval/local/tasks/generic-skill-smoke/instruction.md +7 -0
- package/eval/local/tasks/generic-skill-smoke/task.toml +21 -0
- package/eval/local/tasks/generic-skill-smoke/validation/test_generic_skill_smoke.py +36 -0
- package/eval/local/tasks/index.yaml +155 -0
- package/eval/local/tasks/workflow-overlay-contract/environment/Dockerfile +5 -0
- package/eval/local/tasks/workflow-overlay-contract/instruction.md +5 -0
- package/eval/local/tasks/workflow-overlay-contract/task.toml +21 -0
- package/eval/local/tasks/workflow-overlay-contract/validation/test_workflow_overlay_contract.py +235 -0
- package/eval/local/tasks/workflow-route-conformance/environment/Dockerfile +2 -0
- package/eval/local/tasks/workflow-route-conformance/instruction.md +5 -0
- package/eval/local/tasks/workflow-route-conformance/task.toml +21 -0
- package/eval/local/tasks/workflow-route-conformance/validation/test_workflow_route_conformance.py +84 -0
- package/eval/local/tests/conftest.py +1148 -0
- package/eval/local/tests/scaffold/test_attribution.py +48 -0
- package/eval/local/tests/scaffold/test_compare_baselines.py +999 -0
- package/eval/local/tests/scaffold/test_conftest_helpers.py +534 -0
- package/eval/local/tests/scaffold/test_evidence.py +15 -0
- package/eval/local/tests/scaffold/test_langsmith_conftest.py +244 -0
- package/eval/local/tests/scaffold/test_logging.py +243 -0
- package/eval/local/tests/scaffold/test_manifests.py +132 -0
- package/eval/local/tests/scaffold/test_profiles.py +866 -0
- package/eval/local/tests/scaffold/test_regression_check.py +19 -0
- package/eval/local/tests/scaffold/test_report_style_demo_charts.py +45 -0
- package/eval/local/tests/scaffold/test_sample_quality.py +211 -0
- package/eval/local/tests/scaffold/test_tasks.py +168 -0
- package/eval/local/tests/scaffold/test_treatments.py +244 -0
- package/eval/local/tests/scaffold/test_utils.py +139 -0
- package/eval/local/tests/tasks/test_tasks.py +445 -0
- package/eval/local/tests/tasks/test_validation_scripts.py +143 -0
- package/eval/local/treatments/comet/comet_full_039.yaml +141 -0
- package/eval/local/treatments/comet/comet_full_040_beta.yaml +140 -0
- package/eval/local/treatments/common/control.yaml +4 -0
- package/eval/pyproject.toml +41 -0
- package/eval/report-html-config.json +6 -0
- package/eval/scaffold/__init__.py +67 -0
- package/eval/scaffold/python/__init__.py +95 -0
- package/eval/scaffold/python/attribution.py +43 -0
- package/eval/scaffold/python/evidence.py +38 -0
- package/eval/scaffold/python/external_data_handler.py +18 -0
- package/eval/scaffold/python/generic_llm_judge.py +235 -0
- package/eval/scaffold/python/judge_config.py +168 -0
- package/eval/scaffold/python/llm_judge.py +191 -0
- package/eval/scaffold/python/logging.py +705 -0
- package/eval/scaffold/python/manifests.py +129 -0
- package/eval/scaffold/python/paper_charts.py +25 -0
- package/eval/scaffold/python/pass_at_k.py +107 -0
- package/eval/scaffold/python/paths.py +56 -0
- package/eval/scaffold/python/profiles.py +127 -0
- package/eval/scaffold/python/report_outputs.py +1391 -0
- package/eval/scaffold/python/sample_quality.py +339 -0
- package/eval/scaffold/python/schema.py +39 -0
- package/eval/scaffold/python/skill_parser.py +469 -0
- package/eval/scaffold/python/tasks.py +330 -0
- package/eval/scaffold/python/treatments.py +271 -0
- package/eval/scaffold/python/utils.py +366 -0
- package/eval/scaffold/python/validation/__init__.py +21 -0
- package/eval/scaffold/python/validation/authoring_rubric.py +326 -0
- package/eval/scaffold/python/validation/comet_workflow.py +187 -0
- package/eval/scaffold/python/validation/core.py +264 -0
- package/eval/scaffold/python/validation/dataset.py +337 -0
- package/eval/scaffold/python/validation/docker.py +106 -0
- package/eval/scaffold/python/validation/evaluator.py +549 -0
- package/eval/scaffold/python/validation/generic_rubric.py +169 -0
- package/eval/scaffold/python/validation/rubric.py +740 -0
- package/eval/scaffold/python/validation/runner.py +237 -0
- package/eval/scaffold/python/validation/scripts.py +58 -0
- package/eval/scaffold/python/validation/tracing.py +313 -0
- package/eval/scaffold/shell/common.sh +126 -0
- package/eval/scaffold/shell/docker.sh +482 -0
- package/eval/scaffold/shell/run-claude-loop.sh +181 -0
- package/eval/scaffold/shell/setup.sh +259 -0
- package/eval/simulator-instruction.md +9 -0
- package/package.json +24 -2
|
@@ -0,0 +1,261 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: comet
|
|
3
|
+
description: "Use when 用户要启动或恢复 Comet 工作流,需要根据 active change、.comet.yaml、hotfix/tweak 意图路由到对应阶段 Skill。"
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Comet — OpenSpec + Superpowers 双星开发流程
|
|
7
|
+
|
|
8
|
+
OpenSpec 与 Superpowers 如双星系统围绕同一目标运转。
|
|
9
|
+
|
|
10
|
+
```
|
|
11
|
+
OpenSpec 负责 WHAT — 大纲、提案、spec 生命周期、归档
|
|
12
|
+
Superpowers 负责 HOW — 技术设计、计划、执行、收尾
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
**核心原则:brainstorming 必不可跳过。每次变更都必须经过深度设计(hotfix 和 tweak 预设除外)。**
|
|
16
|
+
|
|
17
|
+
<IMPORTANT>
|
|
18
|
+
本文中的“调用 `/comet-*`”“调用 OpenSpec/Superpowers 技能”均指使用当前平台的 Skill 工具加载对应 Skill,并把必要上下文作为 ARGUMENTS 传入。不得把“调用”降级为在当前 `/comet` 上下文中手工执行子 Skill 的步骤,也不得只按记忆或本文摘要模拟子 Skill。
|
|
19
|
+
|
|
20
|
+
当路由结果是 `/comet-hotfix`、`/comet-tweak`、`/comet-open`、`/comet-design`、`/comet-build`、`/comet-verify` 或 `/comet-archive` 时,必须立即用 Skill 工具加载对应的 Comet 子 Skill。该子 Skill 若要求 OpenSpec 或 Superpowers 技能,也必须继续用 Skill 工具加载对应依赖 Skill。Skill 工具调用是 workflow evidence 的一部分。
|
|
21
|
+
</IMPORTANT>
|
|
22
|
+
|
|
23
|
+
---
|
|
24
|
+
|
|
25
|
+
## 决策核心(Decision Core)
|
|
26
|
+
|
|
27
|
+
agent 做决策只需读本节,参考附录按需查阅。
|
|
28
|
+
|
|
29
|
+
### 输出语言规则
|
|
30
|
+
|
|
31
|
+
以触发本次工作流的用户请求语言作为默认输出语言。恢复已有 change 时,如果现有产物有明确主语言,除非用户明确要求切换,否则保持该语言。
|
|
32
|
+
|
|
33
|
+
### 阶段自动检测
|
|
34
|
+
|
|
35
|
+
**Step 0: 活跃 Change 发现与意图判定**
|
|
36
|
+
|
|
37
|
+
1. 先按 `comet/reference/scripts.md` 完成脚本定位,确保 `$COMET_INTENT` 可用。
|
|
38
|
+
2. 运行 `openspec list --json` 获取所有活跃 change。
|
|
39
|
+
3. 根据用户请求、active change 列表和必要仓库状态填写 `CometIntentFrame`。
|
|
40
|
+
4. 优先用 `node "$COMET_INTENT" route --stdin` 传入 frame JSON,获取 runtime 规范化路由。`CometIntentFrame + runtime scorer` 是事实源;本节自然语言规则只用于意图识别槽位提取。
|
|
41
|
+
5. 按 runtime route 处理:
|
|
42
|
+
- `hotfix` → 直接调用 `/comet-hotfix`
|
|
43
|
+
- `tweak` → 直接调用 `/comet-tweak`
|
|
44
|
+
- `full` → 按活跃 change 表决定 `/comet-open` 或用户确认
|
|
45
|
+
- `resume` → 进入 Step 1 读取对应 change 的 `.comet.yaml`
|
|
46
|
+
- `ask_user` → 按 `comet/reference/decision-point.md` 暂停并等待用户选择
|
|
47
|
+
- `out_of_scope` → 说明本次输入不是 Comet workflow 启动/恢复请求,不初始化 change
|
|
48
|
+
|
|
49
|
+
**CometIntentFrame 最小骨架**:
|
|
50
|
+
|
|
51
|
+
```json
|
|
52
|
+
{
|
|
53
|
+
"schema_version": "comet.intent.v1",
|
|
54
|
+
"utterance": "<用户原话>",
|
|
55
|
+
"intent": { "name": "start_change", "confidence": 0.8 },
|
|
56
|
+
"slots": {
|
|
57
|
+
"requested_action": "start",
|
|
58
|
+
"workflow_candidate": "full",
|
|
59
|
+
"user_explicit_workflow": null,
|
|
60
|
+
"change_id": null,
|
|
61
|
+
"existing_behavior": null,
|
|
62
|
+
"new_capability": null,
|
|
63
|
+
"public_api_change": null,
|
|
64
|
+
"schema_change": null,
|
|
65
|
+
"cross_module_change": null
|
|
66
|
+
},
|
|
67
|
+
"context": {
|
|
68
|
+
"active_changes_count": 0,
|
|
69
|
+
"active_change_names": []
|
|
70
|
+
},
|
|
71
|
+
"evidence": [],
|
|
72
|
+
"proposed_route": {
|
|
73
|
+
"name": "ask_user",
|
|
74
|
+
"confidence": 0.5
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
**意图识别槽位提取**:
|
|
80
|
+
字段完整含义见 `comet/reference/intent-frame.md`;正常路由只需按上方最小骨架填写。
|
|
81
|
+
|
|
82
|
+
- `fix_bug` + `existing_behavior: true` + 无新增 capability/public API/schema/cross-module 信号 → 倾向 `hotfix`
|
|
83
|
+
- 用户明确描述为可收敛为单一 OpenSpec change 的轻量/中等变更,需通过 OpenSpec apply 执行,且不需要完整 `/comet` 深度设计/plan → 倾向 `tweak`
|
|
84
|
+
- 文案、配置、文档、prompt 或单一 OpenSpec change 的轻中量修改 → 倾向 `tweak`
|
|
85
|
+
- 新增 capability、public API、schema 变更、跨模块协调或架构调整 → 倾向 `full`
|
|
86
|
+
- 多个 active change 且用户未明确 change → `ask_user`
|
|
87
|
+
- 置信度不足、关键 evidence 缺失或用户显式 workflow 与风险信号冲突 → `ask_user`
|
|
88
|
+
|
|
89
|
+
| 活跃 change | 用户输入 | 行为 |
|
|
90
|
+
|-------------|---------|------|
|
|
91
|
+
| 无 | `full` 路由 | → 调用 `/comet-open` |
|
|
92
|
+
| 恰好 1 个 | `/comet <描述>` | → **询问**:继续该变更 or 创建新变更 |
|
|
93
|
+
| 多个 | `/comet <描述>` | → **询问**:继续现有变更 or 创建新变更;若选继续 → 列出清单让用户选择 |
|
|
94
|
+
| 恰好 1 个 | `/comet`(无描述) | → 自动选中,进入 Step 1 |
|
|
95
|
+
| 多个 | `/comet`(无描述) | → 列出清单让用户选择 |
|
|
96
|
+
|
|
97
|
+
<IMPORTANT>
|
|
98
|
+
当用户选择「创建新变更」时,**必须调用 `/comet-open`**(禁止直接调用 `/opsx:new`)。
|
|
99
|
+
`/comet-open` 负责完整双初始化:OpenSpec artifacts(由内部 `/opsx:new` 创建)+ `.comet.yaml` 状态文件。
|
|
100
|
+
直接调用 `/opsx:new` 会缺失 `.comet.yaml`,导致后续阶段判定失败。
|
|
101
|
+
</IMPORTANT>
|
|
102
|
+
|
|
103
|
+
**Step 1: 读取 `.comet.yaml` 状态元数据**
|
|
104
|
+
|
|
105
|
+
优先读取 `openspec/changes/<name>/.comet.yaml`。不存在时回退到 `openspec status --change "<name>" --json`、`tasks.md` 和 `docs/superpowers/` 文件检查。
|
|
106
|
+
|
|
107
|
+
**断点恢复规则**:
|
|
108
|
+
- 每次恢复上下文时,先重新执行 Step 0 和 Step 1,不依赖对话历史判断阶段
|
|
109
|
+
- 只要存在 active change 且工作区有未提交改动,必须按 `comet/reference/dirty-worktree.md` 协议处理。该协议定义了检查步骤、归因分类和禁令,本文件不重复
|
|
110
|
+
- 若 `phase: build`,先检查 `build_pause`、`plan`、`isolation`、`build_mode`、`tdd_mode` 和 `review_mode`(详见下方):
|
|
111
|
+
- 若 `build_pause: plan-ready` 但 `isolation`、`build_mode`、`tdd_mode` 和 `review_mode` 都已经设置,则视为 stale pause:先输出 `[COMET] 检测到 stale pause(build_pause=plan-ready 但 isolation/build_mode/tdd_mode/review_mode 已设置),自动清除并继续`,再运行 `node "$COMET_STATE" set <name> build_pause null`,然后读取 tasks.md 的下一个未勾选任务并按 `build_mode` 恢复执行
|
|
112
|
+
- 若 `build_pause: plan-ready` 且 plan 文件存在,但 `isolation`、`build_mode`、`tdd_mode` 或 `review_mode` 尚未设置,回到 `/comet-build` 的 plan-ready 恢复点,提示用户继续补齐/确认工作区隔离、执行方式、TDD 模式和代码审查模式,不重新生成 plan
|
|
113
|
+
- 若 `build_pause: plan-ready` 但 plan 文件缺失,回到 `/comet-build` 处理状态损坏或重新生成 plan
|
|
114
|
+
- 若 `isolation`、`build_mode`、`tdd_mode` 或 `review_mode` 未设置,回到 `/comet-build` 对应步骤补充后再执行
|
|
115
|
+
- 若均已设置,读取 tasks.md 的下一个未勾选任务,并按 `build_mode` 恢复执行:
|
|
116
|
+
- 若 `build_mode: subagent-driven-development`,不得在主窗口直接执行任务;必须回到 `/comet-build` 的后台 subagent 调度规则,由主窗口只做协调
|
|
117
|
+
- 其他执行方式按 `/comet-build` 的对应规则继续
|
|
118
|
+
- 若 `phase: verify` 且 `verify_result: fail`,进入验证失败决策阻塞点:暂停并询问用户修复或接受偏差;用户选择修复后才运行 `node "$COMET_STATE" transition <name> verify-fail` 并调用 `/comet-build`
|
|
119
|
+
- 若 `phase: open` 但 proposal/design/tasks 已完整,先运行 `node "$COMET_GUARD" <change-name> open --apply` 修正状态,再继续判定
|
|
120
|
+
- 若 `phase: archive`,只允许调用 `/comet-archive`;`/comet-archive` 必须先等待归档前最终确认,归档成功后 change 会移动到 archive 目录,不再对原活跃目录运行 guard
|
|
121
|
+
|
|
122
|
+
**Step 2: 阶段判定**(按顺序,命中即停)
|
|
123
|
+
|
|
124
|
+
1. `archived: true` 或 change 已移入 archive → 流程已完成
|
|
125
|
+
2. `verify_result: pass` 且 `archived` 不是 `true` → `/comet-archive`(先进行归档前最终确认)
|
|
126
|
+
3. `verify_result: fail` → 进入验证失败决策阻塞点(暂停询问修复或接受偏差;用户选择修复后才 `verify-fail` 并 `/comet-build`)
|
|
127
|
+
4. `phase: verify` 或 tasks.md 全部勾选 → `/comet-verify`
|
|
128
|
+
5. `phase: build` 或已有 Design Doc 但计划/执行未完成 → 优先按 workflow 路由:`hotfix` → `/comet-hotfix`,`tweak` → `/comet-tweak`,`full` → `/comet-build`
|
|
129
|
+
6. `phase: design` 或有 change 但无 Design Doc → `/comet-design`
|
|
130
|
+
7. `phase: open` 或有活跃 change 但 `.comet.yaml` 缺失 → `/comet-open`
|
|
131
|
+
8. 无活跃 change → `/comet-open`
|
|
132
|
+
|
|
133
|
+
如果元数据与文件状态冲突,以文件状态为准,修正 `.comet.yaml` 后继续。
|
|
134
|
+
|
|
135
|
+
### 预设升级判定
|
|
136
|
+
|
|
137
|
+
hotfix/tweak 的范围判定采用三层分工,避免「用纯文件数当硬性升级条件」误杀正常小改动:
|
|
138
|
+
|
|
139
|
+
1. **质变信号**(agent 语义识别,命中任一即暂停交用户二选一):跨模块协调修改、需要新增 capability、数据库 schema 变更、引入新的 public API、触及深层架构问题(各预设沿用这套核心信号,并可追加自身语境的特有信号,如 tweak 的「需要拆分为多个 OpenSpec changes」)
|
|
140
|
+
2. **文件数 tripwire**(用户拍板,非自动升级):改动文件数超提示阈值时,暂停交用户决定继续预设流程还是升级 full,不自动踢
|
|
141
|
+
3. **验证级别**(scale 脚本判定):`comet-state scale` 仅决定 `verify_mode`(验证轻重),不卡流程、不触发升级
|
|
142
|
+
|
|
143
|
+
**升级决策点(用户二选一)**:
|
|
144
|
+
- 继续预设轻量流程(用户确认范围可控)
|
|
145
|
+
- 升级为完整 `/comet`(使用 `node "$COMET_STATE" transition <name> preset-escalate` 合法回退到 design 阶段,补 Design Doc 和 Superpowers plan)
|
|
146
|
+
|
|
147
|
+
详细判定规则见 `comet-hotfix` / `comet-tweak` 各自的「升级判定」章节。
|
|
148
|
+
|
|
149
|
+
### 错误处理速查
|
|
150
|
+
|
|
151
|
+
| 场景 | 处理方式 |
|
|
152
|
+
|------|---------|
|
|
153
|
+
| `openspec list --json` 失败 | 检查 openspec 是否已安装,提示 `openspec init` |
|
|
154
|
+
| 子 skill 不可用 | 停止流程,提示安装或启用对应 skill |
|
|
155
|
+
| `.comet.yaml` 格式异常或缺失 | 以文件状态为准,用 `node "$COMET_STATE" set` 修正后继续 |
|
|
156
|
+
| 构建/测试失败 | 返回 build 阶段修复,不进入 verify |
|
|
157
|
+
| change 目录结构不完整 | 按 `comet-open` 产物要求补齐 |
|
|
158
|
+
|
|
159
|
+
### 阶段衔接
|
|
160
|
+
|
|
161
|
+
<IMPORTANT>
|
|
162
|
+
单次 `/comet` 调用从检测到的阶段开始,退出条件满足后进入下一阶段。
|
|
163
|
+
|
|
164
|
+
流转链:open → design → build → verify → archive
|
|
165
|
+
|
|
166
|
+
**连续执行要求**:从检测到的阶段开始,agent 自动推进后续阶段。但**自动推进仅适用于没有用户决策的衔接点**。遇到用户决策点时,**必须使用当前平台可用的用户输入/确认机制暂停并等待用户明确回复**,不得用推荐规则、默认值或历史偏好代替用户确认,也不得仅输出文字提示后继续执行。
|
|
167
|
+
|
|
168
|
+
**阶段推进与自动衔接的区分**:每个子 skill 退出前都会运行阶段守卫 `--apply` 推进 `.comet.yaml` 的 `phase` 字段——这一步**始终发生**,与 `auto_transition` 无关。之后子 skill 运行 `node "$COMET_STATE" next <name>` 解析下一步:`auto_transition` 不为 `false` 时输出 `NEXT: auto`(自动调用下一 skill),为 `false` 时输出 `NEXT: manual`(不调用下一 skill,提示用户手动运行)。因此 `auto_transition` **只控制是否自动调用下一个 skill,不影响 phase 推进**。无论 `auto_transition` 取何值,下方的用户决策点都必须阻塞等待。
|
|
169
|
+
|
|
170
|
+
**决策点是阻塞点**:只要到达下列任一节点,当前 `/comet` 调用必须停住,并按 `comet/reference/decision-point.md` 的协议获取用户明确选择。用户明确选择后才能写入对应状态字段、执行对应操作,随后再继续自动流转。
|
|
171
|
+
|
|
172
|
+
需要用户参与的节点(仅在这些节点暂停):
|
|
173
|
+
1. open 阶段 proposal/design/tasks 审视确认
|
|
174
|
+
2. brainstorming 确认设计方案
|
|
175
|
+
3. build 阶段 plan-ready 暂停选择,以及随后选择工作方式(工作区隔离 + 执行方式 + TDD 模式 + 代码审查模式)
|
|
176
|
+
4. verify 不通过时决定修复或接受偏差(含 Spec 漂移处理方式选择)
|
|
177
|
+
5. finishing-branch 选择分支处理方式
|
|
178
|
+
6. archive 阶段执行归档脚本前的最终确认
|
|
179
|
+
7. 遇到升级判定信号(hotfix/tweak → 用户二选一:继续预设流程 / 升级完整流程)
|
|
180
|
+
8. build 阶段范围扩张需重新设计或拆分新 change
|
|
181
|
+
9. open 阶段大型 PRD 需确认拆分为多个 change
|
|
182
|
+
|
|
183
|
+
agent 不应跳过这些决策点;其他明确无歧义的阶段衔接必须自动继续推进,不得中途退出。到达决策点时,**禁止跳过用户确认或自动选择——必须通过当前平台可用的用户输入/确认机制明确获取用户选择后才能继续**。
|
|
184
|
+
|
|
185
|
+
**红旗清单** — 以下想法出现时立即停止并检查:
|
|
186
|
+
|
|
187
|
+
| Agent 心理 | 实际风险 |
|
|
188
|
+
|-----------|---------|
|
|
189
|
+
| "用户应该会同意这个方案" | 不能替用户决策,必须等待用户明确选择 |
|
|
190
|
+
| "这只是个小改动,不需要确认" | 决策点无大小之分,阻塞点必须等待 |
|
|
191
|
+
| "用户之前选过 A,这次也选 A" | 历史偏好不能替代当前确认 |
|
|
192
|
+
| "我已经解释了方案,用户没反对" | 没反对 ≠ 同意,必须用工具获取明确选择 |
|
|
193
|
+
| "流程走到这里应该没问题了" | 验证不通过 ≠ 通过,检查 verify_result |
|
|
194
|
+
</IMPORTANT>
|
|
195
|
+
|
|
196
|
+
---
|
|
197
|
+
|
|
198
|
+
## 子命令速查
|
|
199
|
+
|
|
200
|
+
| 命令 | 阶段 | 归属 | 产物 |
|
|
201
|
+
|------|------|------|------|
|
|
202
|
+
| `/comet-open` | 1. 开启 | OpenSpec | proposal.md、design.md、tasks.md |
|
|
203
|
+
| `/comet-design` | 2. 深度设计 | Superpowers | Design Doc、delta spec |
|
|
204
|
+
| `/comet-build` | 3. 计划与构建 | Superpowers | 实施计划、代码提交 |
|
|
205
|
+
| `/comet-verify` | 4. 验证与收尾 | Both | 验证报告、分支处理 |
|
|
206
|
+
| `/comet-archive` | 5. 归档 | OpenSpec | delta→main spec 同步、design doc 标注、归档 |
|
|
207
|
+
| `/comet-hotfix` | 预设路径 | Both | 快速修复(跳过 brainstorming) |
|
|
208
|
+
| `/comet-tweak` | 预设路径 | Both | 串联 OpenSpec 的中等改动(delta spec 为一等公民,跳过 brainstorming 和完整 plan) |
|
|
209
|
+
|
|
210
|
+
```
|
|
211
|
+
/comet
|
|
212
|
+
↓ 自动检测
|
|
213
|
+
/comet-open ──→ /comet-design ──→ /comet-build ──→ /comet-verify ──→ /comet-archive
|
|
214
|
+
(OpenSpec) (Superpowers) (Superpowers) (Both) (OpenSpec)
|
|
215
|
+
|
|
216
|
+
/comet-hotfix(预设路径,跳过 brainstorming)
|
|
217
|
+
open ──→ build ──→ verify ──→ archive
|
|
218
|
+
↑ 命中升级判定信号 → 用户二选一(继续预设流程 / 升级 full)→ 升级则 transition preset-escalate → 补 Design Doc → 回到完整流程
|
|
219
|
+
|
|
220
|
+
/comet-tweak(轻量预设路径,串联 OpenSpec,delta spec 为一等公民)
|
|
221
|
+
open ──→ build ──→ verify ──→ archive
|
|
222
|
+
↑ 命中升级判定信号 → 用户二选一(继续预设流程 / 升级 full)→ 升级则 transition preset-escalate → 补 Design Doc → 回到完整流程
|
|
223
|
+
```
|
|
224
|
+
|
|
225
|
+
---
|
|
226
|
+
|
|
227
|
+
## 参考附录(Reference Appendix)
|
|
228
|
+
|
|
229
|
+
> 字段说明、文件结构和自动衔接协议已提取为渐进式加载参考文档,按需查阅:
|
|
230
|
+
> - **`.comet.yaml` 完整字段表**:按 `comet/reference/comet-yaml-fields.md` 查阅(含必需字段、可选字段和完整示例)
|
|
231
|
+
> - **文件结构**:按 `comet/reference/file-structure.md` 查阅
|
|
232
|
+
> - **自动衔接协议**:按 `comet/reference/auto-transition.md` 查阅
|
|
233
|
+
> - **上下文压缩恢复**:按 `comet/reference/context-recovery.md` 查阅
|
|
234
|
+
> - **用户决策点协议**:按 `comet/reference/decision-point.md` 查阅
|
|
235
|
+
> - **异常调试协议**:按 `comet/reference/debug-gate.md` 查阅
|
|
236
|
+
|
|
237
|
+
### 状态机硬约束
|
|
238
|
+
|
|
239
|
+
- `build → verify` 前,`isolation` 必须是 `branch` 或 `worktree`
|
|
240
|
+
- `build → verify` 前,`build_mode` 必须已选择
|
|
241
|
+
- `build_mode: subagent-driven-development` 必须同时有 `subagent_dispatch: confirmed`
|
|
242
|
+
- full workflow 离开 build 阶段前 `tdd_mode` 必须已选择为 `tdd` 或 `direct`
|
|
243
|
+
- full workflow 离开 build 阶段前 `review_mode` 必须已选择为 `off`、`standard` 或 `thorough`
|
|
244
|
+
- `build_mode: direct` 默认只允许 `hotfix` / `tweak`;full workflow 需要 `direct_override: true`
|
|
245
|
+
- `build_pause` 不是执行方式,不得写入 `build_mode`
|
|
246
|
+
- 这些约束同时存在于 `comet-guard.mjs build --apply` 和 `comet-state.mjs transition <name> build-complete`
|
|
247
|
+
|
|
248
|
+
### 脚本定位
|
|
249
|
+
|
|
250
|
+
Comet 脚本随 skill 包分发在 `comet/scripts/` 下。**不硬编码路径** — 定位一次,缓存到环境变量。完整引导块、命令参考(`--apply`、`transition`、`next`、`archive`)和输出格式见 `comet/reference/scripts.md`。每会话运行一次该引导,后续全程复用 `$COMET_GUARD`、`$COMET_STATE`、`$COMET_HANDOFF`、`$COMET_ARCHIVE`、`$COMET_RUNTIME`。关键入口:
|
|
251
|
+
|
|
252
|
+
```bash
|
|
253
|
+
node "$COMET_GUARD" <change-name> <phase> --apply # 阶段守卫 + 自动状态更新
|
|
254
|
+
node "$COMET_STATE" transition <change-name> <event> # open-complete | design-complete | build-complete | verify-pass | verify-fail
|
|
255
|
+
node "$COMET_STATE" next <change-name> # NEXT: auto|manual|done + SKILL: <skill-name>;auto_transition:false → manual,只暂停下一 skill 调用,不影响已发生的 phase 推进
|
|
256
|
+
node "$COMET_ARCHIVE" <change-name> # 一键完成归档
|
|
257
|
+
```
|
|
258
|
+
|
|
259
|
+
### 文件结构
|
|
260
|
+
|
|
261
|
+
按 `comet/reference/file-structure.md` 查阅完整目录结构。
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
# 自动衔接下一阶段协议
|
|
2
|
+
|
|
3
|
+
规范路径:`comet/reference/auto-transition.md`
|
|
4
|
+
|
|
5
|
+
本协议由所有 comet 子 skill 共享,定义阶段守卫推进后的自动衔接规则。
|
|
6
|
+
|
|
7
|
+
## 术语区分
|
|
8
|
+
|
|
9
|
+
「阶段守卫推进」由 guard `--apply` 完成,更新 `.comet.yaml` 的 `phase` 字段——这一步**始终发生**,与 `auto_transition` 无关。本协议的「自动衔接」只决定**是否自动调用下一个 skill**,由 `auto_transition` 控制。
|
|
10
|
+
|
|
11
|
+
## 执行方式
|
|
12
|
+
|
|
13
|
+
退出条件满足且阶段守卫推进 phase 后,运行:
|
|
14
|
+
|
|
15
|
+
```bash
|
|
16
|
+
node "$COMET_STATE" next <change-name>
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
脚本根据 `phase`、`workflow`、`auto_transition` 输出确定性的下一步:
|
|
20
|
+
|
|
21
|
+
- `NEXT: auto` → 调用 `SKILL` 指向的 skill 进入下一阶段
|
|
22
|
+
- `NEXT: manual` → 不要调用下一 skill,按 `HINT` 提示用户手动运行 `/<SKILL>`
|
|
23
|
+
- `NEXT: done` → 流程已完成,无需继续
|
|
24
|
+
|
|
25
|
+
## 预设路由
|
|
26
|
+
|
|
27
|
+
`workflow: hotfix` 时,`phase: build` 返回 `comet-hotfix`;`workflow: tweak` 时返回 `comet-tweak`。其余 phase(`verify`、`archive`)按标准 Skill 名称返回(`comet-verify`、`comet-archive`),不受 workflow 类型影响。预设 Skill 内部的"连续执行模式"可能覆盖 `auto_transition` 行为——详见对应预设的 `<IMPORTANT>` 块。
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
# .comet.yaml 字段说明
|
|
2
|
+
|
|
3
|
+
规范路径:`comet/reference/comet-yaml-fields.md`
|
|
4
|
+
|
|
5
|
+
本文件是 `.comet.yaml` 状态文件的字段参考。按需查阅,不随 skill 一次性加载。
|
|
6
|
+
|
|
7
|
+
## 示例
|
|
8
|
+
|
|
9
|
+
```yaml
|
|
10
|
+
workflow: full
|
|
11
|
+
phase: build
|
|
12
|
+
design_doc: docs/superpowers/specs/YYYY-MM-DD-topic-design.md
|
|
13
|
+
plan: docs/superpowers/plans/YYYY-MM-DD-feature.md
|
|
14
|
+
base_ref: a1b2c3d4e5f6...
|
|
15
|
+
build_mode: subagent-driven-development
|
|
16
|
+
build_pause: null
|
|
17
|
+
subagent_dispatch: confirmed
|
|
18
|
+
tdd_mode: tdd
|
|
19
|
+
review_mode: standard
|
|
20
|
+
auto_transition: true
|
|
21
|
+
isolation: branch
|
|
22
|
+
verify_mode: light
|
|
23
|
+
verify_result: pending
|
|
24
|
+
verification_report: null
|
|
25
|
+
branch_status: pending
|
|
26
|
+
created_at: 2026-05-26
|
|
27
|
+
verified_at: null
|
|
28
|
+
archived: false
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
## 必需字段
|
|
32
|
+
|
|
33
|
+
| 字段 | 含义 |
|
|
34
|
+
|------|------|
|
|
35
|
+
| `workflow` | `full`、`hotfix` 或 `tweak` |
|
|
36
|
+
| `phase` | 当前阶段:`open`、`design`、`build`、`verify`、`archive`(init 统一设为 `open`,guard 负责过渡) |
|
|
37
|
+
| `design_doc` | 关联的 Superpowers Design Doc 路径,可为空 |
|
|
38
|
+
| `plan` | 关联的 Superpowers Plan 路径,可为空 |
|
|
39
|
+
| `base_ref` | init 时记录的 git commit SHA,用于 scale 评估。无 plan 时作为改动文件数统计基准 |
|
|
40
|
+
| `build_mode` | 已选择的执行方式,可为空。取值:`subagent-driven-development`(隔离后台 subagent 逐任务实现并审查)、`executing-plans`(主会话按计划顺序执行)、`direct`(主会话直接编码,默认仅 hotfix/tweak 允许,full workflow 需 `direct_override: true`) |
|
|
41
|
+
| `build_pause` | build 阶段内部暂停点。`null` 表示无暂停,`plan-ready` 表示 plan 已生成,用户选择切换模型后暂停 |
|
|
42
|
+
| `subagent_dispatch` | `null` 或 `confirmed`。仅当已确认当前平台存在真实后台 subagent / Task / multi-agent 调度能力时,`build_mode: subagent-driven-development` 才能写入并用于离开 build 阶段 |
|
|
43
|
+
| `tdd_mode` | `tdd` 或 `direct`。full workflow 离开 build 阶段前必须已选择。`tdd` 强制每个任务先写失败测试再实现;`direct` 不强制 TDD。hotfix/tweak 默认 `direct` |
|
|
44
|
+
| `review_mode` | `off`、`standard` 或 `thorough`。full workflow 离开 build 阶段前必须已选择;hotfix/tweak 默认 `off` |
|
|
45
|
+
| `isolation` | `branch` 或 `worktree`,工作区隔离方式。full 初始化可为 `null`,但只允许持续到 `/comet-build` Step 3 前;hotfix/tweak 默认 `branch` |
|
|
46
|
+
| `verify_mode` | `light` 或 `full`,可为空 |
|
|
47
|
+
| `auto_transition` | `true` 或 `false`。只控制阶段守卫推进 phase 后是否自动调用下一个 skill;`false` 时由 `comet-state next` 输出 `manual`,暂停下一 skill 调用,但不阻止 phase 字段更新 |
|
|
48
|
+
| `verify_result` | `pending`、`pass` 或 `fail` |
|
|
49
|
+
| `verification_report` | 验证报告文件路径,verify 通过前必须指向已存在文件 |
|
|
50
|
+
| `branch_status` | `pending` 或 `handled`,分支处理完成后设为 `handled` |
|
|
51
|
+
| `created_at` | change 创建日期(init 时自动写入),格式 `YYYY-MM-DD` |
|
|
52
|
+
| `verified_at` | 验证通过时间,可为空 |
|
|
53
|
+
| `archived` | change 是否已归档 |
|
|
54
|
+
|
|
55
|
+
## 可选字段
|
|
56
|
+
|
|
57
|
+
| 字段 | 含义 |
|
|
58
|
+
|------|------|
|
|
59
|
+
| `direct_override` | `true`/`false`。full workflow 如需使用 `build_mode: direct`,必须显式设为 `true` |
|
|
60
|
+
| `build_command` | 项目构建命令。guard 优先运行;支持命令词、引号、路径和 `&&` 顺序步骤;拒绝 `;`、管道、裸 `&`、`$` 和反引号 |
|
|
61
|
+
| `verify_command` | 项目验证命令。verify guard 优先运行;使用与 `build_command` 相同的受限命令语法,未配置时回退到构建命令 |
|
|
62
|
+
|
|
63
|
+
## 状态机硬约束
|
|
64
|
+
|
|
65
|
+
- `build → verify` 前,`isolation` 必须是 `branch` 或 `worktree`
|
|
66
|
+
- `build → verify` 前,`build_mode` 必须已选择
|
|
67
|
+
- `build_mode: subagent-driven-development` 必须同时有 `subagent_dispatch: confirmed`
|
|
68
|
+
- full workflow 离开 build 阶段前 `tdd_mode` 必须已选择为 `tdd` 或 `direct`
|
|
69
|
+
- full workflow 离开 build 阶段前 `review_mode` 必须已选择为 `off`、`standard` 或 `thorough`
|
|
70
|
+
- `build_mode: direct` 默认只允许 `hotfix` / `tweak`;full workflow 需要 `direct_override: true`
|
|
71
|
+
- `build_pause` 不是执行方式,不得写入 `build_mode`
|
|
72
|
+
- 这些约束同时存在于 `comet-guard.mjs build --apply` 和 `comet-state.mjs transition <name> build-complete`
|
|
73
|
+
- `preset-escalate` 事件:仅允许 `hotfix`/`tweak` workflow 在 `phase: build` 时调用,原子地把 `workflow`/`classic_profile` 置为 `full`、`phase` 回退到 `design`、清空 `design_doc`(满足 comet-design 入口要求)。这是预设升级到 full 的唯一合法通道——直接 `set phase design` 会被状态机硬拦截,`set classic_profile` 属于 machine-owned 字段不可手动设置
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
# 上下文压缩恢复协议
|
|
2
|
+
|
|
3
|
+
规范路径:`comet/reference/context-recovery.md`
|
|
4
|
+
|
|
5
|
+
本协议由所有可能触发上下文压缩的 comet 子 skill 共享。当 agent 怀疑发生上下文压缩(之前对话被摘要、找不到之前讨论的内容)时,按本协议恢复。
|
|
6
|
+
|
|
7
|
+
## 任意入口恢复原则
|
|
8
|
+
|
|
9
|
+
用户可能直接从 `/comet-open`、`/comet-design`、`/comet-build`、`/comet-verify`、`/comet-archive`、`/comet-hotfix` 或 `/comet-tweak` 回到流程。进入任意子 Skill 时,都先按 `comet/reference/scripts.md` 定位脚本,再用当前子 Skill 对应 phase 运行入口检查或恢复检查。不得依赖对话历史判断阶段。
|
|
10
|
+
|
|
11
|
+
```bash
|
|
12
|
+
node "$COMET_STATE" check <change-name> <phase> --recover
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
若检查结果显示实际 phase、workflow 或 evidence 应由其他 Skill 处理,按脚本输出和 `/comet` 路由规则切换;不要在错误阶段继续补写状态。若存在未提交改动,先按 `comet/reference/dirty-worktree.md` 归因。
|
|
16
|
+
|
|
17
|
+
## 恢复步骤
|
|
18
|
+
|
|
19
|
+
```bash
|
|
20
|
+
node "$COMET_STATE" check <change-name> <phase> --recover
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
脚本输出结构化恢复上下文(phase、已完成字段、待完成字段、恢复动作)。按 **Recovery action** 决定下一步。
|
|
24
|
+
|
|
25
|
+
## build 阶段特殊恢复
|
|
26
|
+
|
|
27
|
+
若恢复脚本输出 `build_mode: subagent-driven-development`:
|
|
28
|
+
|
|
29
|
+
1. 使用 Skill 工具重新加载 Superpowers `subagent-driven-development` 技能
|
|
30
|
+
2. 重新阅读 `comet/reference/subagent-dispatch.md` 获取 Comet 专属扩展
|
|
31
|
+
3. 读取 `openspec/changes/<name>/.comet/subagent-progress.md`,恢复当前 task 或 final review、实现提交、RED/GREEN 证据、已通过审查、未解决反馈和审查-修复轮次
|
|
32
|
+
4. 禁止在主会话中直接执行 task
|
|
33
|
+
5. 按检查点记录的精确阶段恢复;检查点缺失或不匹配时才从第一个未勾选 task 的 implementer 派发开始
|
|
34
|
+
6. task 按 `review_mode` 完成验收并完成定向勾选验证后,立即继续下一个 task,不得总结或询问是否继续
|
|
35
|
+
|
|
36
|
+
## design 阶段特殊恢复
|
|
37
|
+
|
|
38
|
+
- 若用户尚未确认设计方案,回到 brainstorming 继续
|
|
39
|
+
- 若用户已确认,继续创建 Design Doc
|
|
40
|
+
- 恢复时重新加载 `brainstorm-summary.md` + handoff 上下文文件
|
|
41
|
+
|
|
42
|
+
## verify/archive 阶段恢复
|
|
43
|
+
|
|
44
|
+
- verify:脚本输出验证状态、分支状态和恢复动作
|
|
45
|
+
- archive:若 `archived: true` 且归档目录存在,归档已完成,无需再次执行
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
# 异常调试协议
|
|
2
|
+
|
|
3
|
+
规范路径:`comet/reference/debug-gate.md`
|
|
4
|
+
|
|
5
|
+
本协议由 build、hotfix、tweak 等会直接修改代码的 comet 子 skill 共享。当运行程序、测试、构建或手动验证时出现崩溃、异常行为、测试失败或构建失败,必须进入异常调试协议。
|
|
6
|
+
|
|
7
|
+
## 核心规则
|
|
8
|
+
|
|
9
|
+
- 立即使用 Skill 工具加载 Superpowers `systematic-debugging` 技能
|
|
10
|
+
- 在完成根因调查前,不得提出或实施源码修复
|
|
11
|
+
|
|
12
|
+
## 四阶段流程
|
|
13
|
+
|
|
14
|
+
1. 先复现并定位根因,读取完整错误、检查近期变更、追踪数据流
|
|
15
|
+
2. 若根因指向源码 bug,先补充能复现该崩溃/异常的最小失败测试,再修改源码
|
|
16
|
+
3. 修复后运行该失败测试、相关测试和项目构建/验证命令,确认全部通过
|
|
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”的红线一致。
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
# 用户决策点协议
|
|
2
|
+
|
|
3
|
+
规范路径:`comet/reference/decision-point.md`
|
|
4
|
+
|
|
5
|
+
本协议由所有包含用户决策点的 comet 子 skill 共享。凡标注为“阻塞点”或“用户决策点”的步骤,都必须按本协议处理。
|
|
6
|
+
|
|
7
|
+
## 核心规则
|
|
8
|
+
|
|
9
|
+
- 决策点是阻塞点。到达决策点时必须暂停,等待用户明确选择后才能继续
|
|
10
|
+
- 必须使用当前平台可用的用户输入/确认机制获取选择;Claude Code 等平台提供 `AskUserQuestion` 时,优先使用 `AskUserQuestion` 展示单选/多选选项
|
|
11
|
+
- 若当前工具列表没有 `AskUserQuestion`,或第一次调用 `AskUserQuestion` 失败,则判定本会话结构化提问不可用;本会话后续决策点不得反复重试 `AskUserQuestion`,直接使用文本选项降级模式
|
|
12
|
+
- 若当前平台没有结构化提问工具,则必须在对话中提出明确选项并停止流程,等待用户回复
|
|
13
|
+
- 不得用推荐规则、默认值、历史偏好或“用户应该会同意”的推断代替当前确认
|
|
14
|
+
- 用户明确选择前,不得写入对应状态字段、执行对应分支操作或自动继续下一阶段
|
|
15
|
+
|
|
16
|
+
## `AskUserQuestion` 优先策略
|
|
17
|
+
|
|
18
|
+
使用结构化提问时:
|
|
19
|
+
|
|
20
|
+
- 单选决策点用 `AskUserQuestion` 的单选问题;多选决策点用多选问题
|
|
21
|
+
- 选项必须携带简短标签和影响说明;推荐项只能作为说明,不能自动选择
|
|
22
|
+
- 若工具调用成功,等待用户通过该问题作答;不得同时再输出一套文本选项
|
|
23
|
+
- 若工具不存在、工具调用失败或宿主报错,记录“本会话结构化提问不可用”,然后进入文本选项降级模式
|
|
24
|
+
|
|
25
|
+
## 最低呈现要求
|
|
26
|
+
|
|
27
|
+
- 说明当前决策点正在决定什么
|
|
28
|
+
- 给出清晰可选项;需要用户单选时,选项必须互斥且可执行
|
|
29
|
+
- 文本降级模式必须明确写出“单选”或“多选”、编号选项、每项影响,并要求用户回复编号;随后停止流程,等待用户回复
|
|
30
|
+
- 如有推荐,只能作为说明,不能替代用户确认
|
|
31
|
+
- 用户选择后,再执行对应命令或状态更新
|
|
@@ -0,0 +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 未解释清楚时判定验证通过
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
# 文件结构参考
|
|
2
|
+
|
|
3
|
+
规范路径:`comet/reference/file-structure.md`
|
|
4
|
+
|
|
5
|
+
本文件是 Comet 项目文件结构参考。按需查阅,不随 skill 一次性加载。
|
|
6
|
+
|
|
7
|
+
```text
|
|
8
|
+
openspec/ # OpenSpec — WHAT
|
|
9
|
+
├── config.yaml
|
|
10
|
+
├── changes/
|
|
11
|
+
│ ├── <name>/ # 活跃 change
|
|
12
|
+
│ │ ├── .openspec.yaml
|
|
13
|
+
│ │ ├── .comet.yaml
|
|
14
|
+
│ │ ├── proposal.md # Why + What
|
|
15
|
+
│ │ ├── design.md # 高层架构决策
|
|
16
|
+
│ │ ├── specs/<capability>/spec.md # Delta 能力规格
|
|
17
|
+
│ │ ├── .comet/handoff/ # 脚本生成的阶段交接包
|
|
18
|
+
│ │ └── tasks.md # 任务清单
|
|
19
|
+
│ └── archive/YYYY-MM-DD-<name>/ # 已归档
|
|
20
|
+
└── specs/<capability>/spec.md # 主 specs(归档时按 OpenSpec delta 语义合并)
|
|
21
|
+
|
|
22
|
+
docs/superpowers/ # Superpowers — HOW
|
|
23
|
+
├── specs/YYYY-MM-DD-<topic>-design.md # 设计文档(技术 RFC,归档时标注状态)
|
|
24
|
+
└── plans/YYYY-MM-DD-<feature>.md # 实施计划(文件头含 change 关联元数据)
|
|
25
|
+
|
|
26
|
+
.comet/
|
|
27
|
+
└── config.yaml # Comet 项目配置(context_compression 默认 off,可设 beta)
|
|
28
|
+
```
|
|
@@ -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`。
|