@rpamis/comet 0.4.0-beta.3 → 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 +10 -0
- package/assets/manifest.json +2 -1
- package/assets/skills/comet/SKILL.md +25 -1
- package/assets/skills/comet/reference/comet-yaml-fields.md +5 -2
- 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 +1387 -424
- package/assets/skills/comet-archive/SKILL.md +24 -11
- package/assets/skills/comet-build/SKILL.md +42 -25
- 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 -2
- 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 +42 -25
- 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 +36 -2
- 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.map +1 -1
- package/dist/app/commands/doctor.js +39 -24
- 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 +68 -69
- 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 +66 -23
- 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 +38 -0
- 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 +128 -12
- package/dist/domains/comet-classic/classic-state-command.js.map +1 -1
- package/dist/domains/comet-classic/classic-state.d.ts +3 -1
- package/dist/domains/comet-classic/classic-state.d.ts.map +1 -1
- package/dist/domains/comet-classic/classic-state.js +4 -0
- 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 +4 -3
- 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 +2 -2
- 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
|
@@ -1,12 +1,30 @@
|
|
|
1
|
-
#
|
|
1
|
+
# 稳定 CLI 与内部脚本兼容说明
|
|
2
2
|
|
|
3
3
|
规范路径:`comet/reference/scripts.md`
|
|
4
4
|
|
|
5
|
-
本文件是 Comet
|
|
5
|
+
本文件是 Comet 公开 CLI 与内部脚本兼容方式的单一事实来源。公开工作流必须优先使用稳定命令面:`comet state`、`comet guard`、`comet handoff`、`comet archive`。
|
|
6
6
|
|
|
7
|
-
##
|
|
7
|
+
## 公开工作流协议
|
|
8
8
|
|
|
9
|
-
|
|
9
|
+
正常安装和日常工作流直接使用 `comet` CLI,不需要定位 launcher,也不要向用户暴露内部 `classic` 命名:
|
|
10
|
+
|
|
11
|
+
```bash
|
|
12
|
+
comet state select <change-name>
|
|
13
|
+
comet state current
|
|
14
|
+
comet state clear-selection
|
|
15
|
+
comet state check <change-name> <phase>
|
|
16
|
+
comet guard <change-name> <phase> --apply
|
|
17
|
+
comet handoff <change-name>
|
|
18
|
+
comet archive <change-name>
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
当多个 active change 共存时,进入明确的 change 后先运行 `comet state select <change-name>`。普通源码写入只受该选择管辖;尚未选择时 hook 会阻塞并要求选择。单 active change 可继续自动归属。切换 branch/worktree 或选择失效后必须重新运行 `select`。
|
|
22
|
+
|
|
23
|
+
guard 的 `--apply` 在检查通过后推进状态。需要直接表达状态事件时使用 `comet state transition`;阶段推进后使用 `comet state next` 解析是否自动调用下一 Skill。
|
|
24
|
+
|
|
25
|
+
## 兼容、恢复与内部命令引导
|
|
26
|
+
|
|
27
|
+
以下脚本定位只用于旧版兼容、CLI 不可用时的恢复,以及 `/comet` 内部入口命令。正常公开工作流不得优先采用此方式。Comet 脚本随 Skill 包分发在 `comet/scripts/` 下;需要恢复时不要硬编码路径,而应定位一次并缓存环境变量:
|
|
10
28
|
|
|
11
29
|
```bash
|
|
12
30
|
COMET_ENV="${COMET_ENV:-$(find . "$HOME"/.*/skills "$HOME/.config" "$HOME/.gemini" -path '*/comet/scripts/comet-env.mjs' -type f -print -quit 2>/dev/null)}"
|
|
@@ -20,6 +38,7 @@ COMET_GUARD="$COMET_SCRIPTS_DIR/comet-guard.mjs"
|
|
|
20
38
|
COMET_HANDOFF="$COMET_SCRIPTS_DIR/comet-handoff.mjs"
|
|
21
39
|
COMET_ARCHIVE="$COMET_SCRIPTS_DIR/comet-archive.mjs"
|
|
22
40
|
COMET_INTENT="$COMET_SCRIPTS_DIR/comet-intent.mjs"
|
|
41
|
+
COMET_RESUME_PROBE="$COMET_SCRIPTS_DIR/comet-resume-probe.mjs"
|
|
23
42
|
|
|
24
43
|
# 脚本定位失败时停止流程
|
|
25
44
|
if [ -z "$COMET_SCRIPTS_DIR" ]; then
|
|
@@ -28,34 +47,47 @@ if [ -z "$COMET_SCRIPTS_DIR" ]; then
|
|
|
28
47
|
fi
|
|
29
48
|
```
|
|
30
49
|
|
|
31
|
-
|
|
50
|
+
只有进入上述兼容、恢复或内部命令路径时,Agent 才执行这些变量赋值。`COMET_INTENT` 和 `COMET_RESUME_PROBE` 仍是内部入口引导所需变量,不应全局移除。
|
|
51
|
+
|
|
52
|
+
| 变量 | 用途 |
|
|
53
|
+
|------|------|
|
|
54
|
+
| `COMET_STATE` | `.comet.yaml` 状态读写、phase 检查和恢复上下文 |
|
|
55
|
+
| `COMET_GUARD` | 阶段退出守卫和 `--apply` 状态推进 |
|
|
56
|
+
| `COMET_HANDOFF` | Design/Build handoff 上下文包生成 |
|
|
57
|
+
| `COMET_ARCHIVE` | 一键归档和主 spec 同步 |
|
|
58
|
+
| `COMET_INTENT` | `/comet` 入口意图识别和路由评分 |
|
|
59
|
+
| `COMET_RESUME_PROBE` | 只读 Ambient Resume 探针,判断是否应恢复 active Comet workflow |
|
|
32
60
|
|
|
33
61
|
## 自动状态更新
|
|
34
62
|
|
|
35
63
|
guard 支持 `--apply` 参数,验证通过后自动更新 `.comet.yaml` 状态字段:
|
|
36
64
|
|
|
37
65
|
```bash
|
|
38
|
-
|
|
66
|
+
comet guard <change-name> <phase> --apply
|
|
39
67
|
```
|
|
40
68
|
|
|
41
|
-
`--apply`
|
|
69
|
+
`--apply` 内部委托给状态机 transition。需要直接表达状态事件时使用:
|
|
42
70
|
|
|
43
71
|
```bash
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
72
|
+
comet state transition <change-name> open-complete
|
|
73
|
+
comet state transition <change-name> design-complete
|
|
74
|
+
comet state transition <change-name> build-complete
|
|
75
|
+
comet state transition <change-name> verify-pass
|
|
76
|
+
comet state transition <change-name> verify-fail
|
|
77
|
+
comet state transition <change-name> archive-confirm
|
|
78
|
+
comet state transition <change-name> archive-reopen
|
|
79
|
+
comet state transition <change-name> archived
|
|
80
|
+
comet state transition <change-name> preset-escalate
|
|
49
81
|
```
|
|
50
82
|
|
|
51
|
-
归档完成由 `
|
|
83
|
+
归档完成由 `comet archive <change-name>` 负责;OpenSpec 会先把 change 移到带日期前缀的归档目录,再由 Comet 完成状态记录。预归档确认使用 `archive-confirm` 或 `archive-reopen`;不要在归档流程之外手动执行 `archived` transition。
|
|
52
84
|
|
|
53
85
|
## 解析下一步
|
|
54
86
|
|
|
55
87
|
阶段守卫推进 phase 后,用 `next` 子命令解析是否自动调用下一个 skill:
|
|
56
88
|
|
|
57
89
|
```bash
|
|
58
|
-
|
|
90
|
+
comet state next <change-name>
|
|
59
91
|
```
|
|
60
92
|
|
|
61
93
|
输出 `NEXT: auto|manual|done` + `SKILL: <skill-name>`(`done` 时省略)+ `HINT`(仅 `manual` 时)。`auto_transition: false` 时输出 `manual`,只暂停下一 skill 调用,不影响已发生的 phase 推进。
|
|
@@ -65,5 +97,5 @@ node "$COMET_STATE" next <change-name>
|
|
|
65
97
|
一键完成归档全部步骤:
|
|
66
98
|
|
|
67
99
|
```bash
|
|
68
|
-
|
|
100
|
+
comet archive <change-name>
|
|
69
101
|
```
|
|
@@ -15,21 +15,22 @@ description: "Use when Comet change 验证已通过,需要用户确认归档
|
|
|
15
15
|
|
|
16
16
|
### 0. 输出语言约束
|
|
17
17
|
|
|
18
|
-
归档摘要和生命周期闭环说明必须使用 `
|
|
18
|
+
归档摘要和生命周期闭环说明必须使用 `comet state get <name> language` 读取到的 Comet 配置产物语言。
|
|
19
19
|
|
|
20
20
|
### 0b. 入口状态验证(Entry Check)
|
|
21
21
|
|
|
22
|
-
按 `comet/reference/scripts.md`
|
|
22
|
+
按 `comet/reference/scripts.md` 使用稳定 `comet` CLI,然后执行入口验证;从任意入口恢复时先按 `comet/reference/context-recovery.md` 运行恢复检查:
|
|
23
23
|
|
|
24
24
|
```bash
|
|
25
|
-
|
|
25
|
+
comet state select <change-name>
|
|
26
|
+
comet state check <name> archive
|
|
26
27
|
```
|
|
27
28
|
|
|
28
29
|
验证通过后继续 Step 1。验证失败时脚本会输出具体失败原因。
|
|
29
30
|
|
|
30
31
|
### 1. 归档前最终确认(阻塞点)
|
|
31
32
|
|
|
32
|
-
入口验证通过后,**必须按 `comet/reference/decision-point.md` 的协议暂停并等待用户确认是否立即归档**。不得在用户确认前运行 `
|
|
33
|
+
入口验证通过后,**必须按 `comet/reference/decision-point.md` 的协议暂停并等待用户确认是否立即归档**。不得在用户确认前运行 `comet archive "<change-name>"`。
|
|
33
34
|
|
|
34
35
|
确认前必须向用户展示简短摘要:
|
|
35
36
|
- change 名称
|
|
@@ -38,22 +39,28 @@ node "$COMET_STATE" check <name> archive
|
|
|
38
39
|
- 本次归档将执行的不可逆动作:按 OpenSpec delta 语义合并主 spec、标注 design doc / plan、移动 change 到 archive 目录
|
|
39
40
|
|
|
40
41
|
用户确认问题必须以单选题形式呈现,包含以下选项:
|
|
41
|
-
- 「确认归档」—
|
|
42
|
-
- 「需要调整或重新验证」— 不执行归档;运行 `
|
|
42
|
+
- 「确认归档」— 写入最终确认状态后执行归档脚本,完成 spec 合并和 change 移动
|
|
43
|
+
- 「需要调整或重新验证」— 不执行归档;运行 `comet state transition <change-name> archive-reopen` 回到 `phase: verify`,再调用 `/comet-verify`。若验证阶段确认需要修复,再按 `/comet-verify` 的验证失败决策回到 `/comet-build`
|
|
43
44
|
- 「暂不归档」— 不执行归档,保留当前 `phase: archive` 状态,等待用户稍后再次调用 `/comet-archive`
|
|
44
45
|
|
|
45
|
-
|
|
46
|
+
用户选择「确认归档」后,立即执行:
|
|
47
|
+
|
|
48
|
+
```bash
|
|
49
|
+
comet state transition <change-name> archive-confirm
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
如 transition 返回非零退出码,报告错误并停止。只有 transition 成功后,才允许继续 Step 2。用户选择「需要调整或重新验证」后,必须先执行 `archive-reopen` 状态回退,不得手动编辑 `.comet.yaml`。
|
|
46
53
|
|
|
47
54
|
### 2. 执行归档
|
|
48
55
|
|
|
49
|
-
|
|
56
|
+
运行归档脚本:
|
|
50
57
|
|
|
51
58
|
```bash
|
|
52
|
-
|
|
59
|
+
comet archive "<change-name>"
|
|
53
60
|
```
|
|
54
61
|
|
|
55
62
|
脚本自动执行:
|
|
56
|
-
1. 入口状态验证(phase=archive, verify_result=pass, archived=false)
|
|
63
|
+
1. 入口状态验证(phase=archive, verify_result=pass, archive_confirmation=confirmed, archived=false)
|
|
57
64
|
2. Design doc 前置元数据标注(archived-with, status)
|
|
58
65
|
3. Plan 前置元数据标注(archived-with)
|
|
59
66
|
4. 调用 OpenSpec archive 按 delta 语义合并主 spec 并移动 change 到归档目录
|
|
@@ -62,6 +69,12 @@ node "$COMET_ARCHIVE" "<change-name>"
|
|
|
62
69
|
|
|
63
70
|
如脚本返回非零退出码,报告错误并停止。
|
|
64
71
|
如脚本返回零退出码,归档完成。
|
|
72
|
+
|
|
73
|
+
归档成功后清理当前执行上下文;该命令幂等:
|
|
74
|
+
|
|
75
|
+
```bash
|
|
76
|
+
comet state clear-selection
|
|
77
|
+
```
|
|
65
78
|
脚本摘要中的 `X/Y steps succeeded` 以真实执行步骤计数,不会因 delta spec 同步或文档标注重复累计。
|
|
66
79
|
|
|
67
80
|
脚本会调用 OpenSpec 归档能力按 `ADDED/MODIFIED/REMOVED/RENAMED` 语义合并主 spec,并在归档后校验主 spec 中没有残留 delta-only section 标题。
|
|
@@ -99,7 +112,7 @@ git commit -m "chore: archive <change-name>"
|
|
|
99
112
|
|
|
100
113
|
归档脚本会把 `openspec/changes/<name>/` 移动到 `openspec/changes/archive/YYYY-MM-DD-<name>/`。
|
|
101
114
|
|
|
102
|
-
> **WARNING**: 归档成功后**不要再对原 change 名运行** `
|
|
115
|
+
> **WARNING**: 归档成功后**不要再对原 change 名运行** `comet guard <change-name> archive`,因为原活跃目录已经不存在。误调会导致 guard 报错"change directory not found"。归档完整性以脚本退出码和归档目录状态为准。
|
|
103
116
|
|
|
104
117
|
## 完成
|
|
105
118
|
|
|
@@ -14,10 +14,11 @@ description: "Use when full Comet change 已完成 design 阶段,需要创建/
|
|
|
14
14
|
|
|
15
15
|
### 0. 入口状态验证(Entry Check)
|
|
16
16
|
|
|
17
|
-
按 `comet/reference/scripts.md`
|
|
17
|
+
按 `comet/reference/scripts.md` 使用稳定 `comet` CLI,然后执行入口验证;从任意入口恢复时先按 `comet/reference/context-recovery.md` 运行恢复检查:
|
|
18
18
|
|
|
19
19
|
```bash
|
|
20
|
-
|
|
20
|
+
comet state select <change-name>
|
|
21
|
+
comet state check <name> build
|
|
21
22
|
```
|
|
22
23
|
|
|
23
24
|
验证通过后继续 Step 1。验证失败时脚本会输出具体失败原因。
|
|
@@ -26,13 +27,13 @@ node "$COMET_STATE" check <name> build
|
|
|
26
27
|
|
|
27
28
|
### 1. 制定计划(Subagent Offload)
|
|
28
29
|
|
|
29
|
-
通过 subagent 创建实施计划,避免 planning skill 占用主 session 上下文。计划文件和执行反馈必须使用 `
|
|
30
|
+
通过 subagent 创建实施计划,避免 planning skill 占用主 session 上下文。计划文件和执行反馈必须使用 `comet state get <name> language` 读取到的 Comet 配置产物语言。
|
|
30
31
|
|
|
31
32
|
**Subagent 指令**:
|
|
32
33
|
|
|
33
34
|
你是实施计划专家。基于以下输入创建实施计划:
|
|
34
35
|
|
|
35
|
-
1. **立即执行:** 使用 Skill 工具加载 Superpowers `writing-plans` 技能。禁止跳过此步骤。技能加载后,ARGUMENTS 必须包含:`Language: 使用
|
|
36
|
+
1. **立即执行:** 使用 Skill 工具加载 Superpowers `writing-plans` 技能。禁止跳过此步骤。技能加载后,ARGUMENTS 必须包含:`Language: 使用 comet state get <name> language 读取到的 Comet 配置产物语言输出`
|
|
36
37
|
2. 读取 Design Doc(`docs/superpowers/specs/` 下的技术设计文档)
|
|
37
38
|
3. 读取 `openspec/changes/<name>/tasks.md`(任务边界)
|
|
38
39
|
4. 按技能指引创建计划
|
|
@@ -69,7 +70,7 @@ Subagent 完成后:
|
|
|
69
70
|
先记录 plan 路径:
|
|
70
71
|
|
|
71
72
|
```bash
|
|
72
|
-
|
|
73
|
+
comet state set <name> plan docs/superpowers/plans/YYYY-MM-DD-feature.md
|
|
73
74
|
```
|
|
74
75
|
|
|
75
76
|
无需手动更新 phase,阶段守卫(guard `--apply`)会在退出条件满足后推进 `phase` 字段。
|
|
@@ -86,13 +87,13 @@ node "$COMET_STATE" set <name> plan docs/superpowers/plans/YYYY-MM-DD-feature.md
|
|
|
86
87
|
用户选择继续时:
|
|
87
88
|
|
|
88
89
|
```bash
|
|
89
|
-
|
|
90
|
+
comet state set <name> build_pause null
|
|
90
91
|
```
|
|
91
92
|
|
|
92
93
|
用户选择暂停时:
|
|
93
94
|
|
|
94
95
|
```bash
|
|
95
|
-
|
|
96
|
+
comet state set <name> build_pause plan-ready
|
|
96
97
|
```
|
|
97
98
|
|
|
98
99
|
设置 `build_pause: plan-ready` 后,当前调用停止。不要选择 `isolation` 或 `build_mode`,不要加载执行技能。
|
|
@@ -102,7 +103,7 @@ node "$COMET_STATE" set <name> build_pause plan-ready
|
|
|
102
103
|
如果恢复时检测到 `build_pause: plan-ready` 且 `plan` 文件存在,不要重新运行 `writing-plans`。先告知用户当前停在 plan-ready 暂停点;用户确认继续后,设置:
|
|
103
104
|
|
|
104
105
|
```bash
|
|
105
|
-
|
|
106
|
+
comet state set <name> build_pause null
|
|
106
107
|
```
|
|
107
108
|
|
|
108
109
|
然后继续本步骤选择工作区隔离、执行方式、TDD 模式和代码审查模式。
|
|
@@ -137,11 +138,11 @@ node "$COMET_STATE" set <name> build_pause null
|
|
|
137
138
|
用户选择后,更新 `isolation`、执行方式、TDD 模式和代码审查模式相关字段:
|
|
138
139
|
|
|
139
140
|
```bash
|
|
140
|
-
|
|
141
|
+
comet state set <name> isolation <branch|worktree>
|
|
141
142
|
```
|
|
142
143
|
|
|
143
|
-
- 若用户选择 `executing-plans`:运行 `
|
|
144
|
-
- 若用户选择 `subagent-driven-development`:先确认当前平台存在可调用的真实后台 subagent / Task / multi-agent 调度能力;确认后先运行 `
|
|
144
|
+
- 若用户选择 `executing-plans`:运行 `comet state set <name> subagent_dispatch null`,再运行 `comet state set <name> build_mode executing-plans`
|
|
145
|
+
- 若用户选择 `subagent-driven-development`:先确认当前平台存在可调用的真实后台 subagent / Task / multi-agent 调度能力;确认后先运行 `comet state set <name> subagent_dispatch confirmed`,再运行 `comet state set <name> build_mode subagent-driven-development`
|
|
145
146
|
- 若无法确认真实后台调度能力,不得写入 `build_mode: subagent-driven-development`;必须暂停等待用户改选 `executing-plans`
|
|
146
147
|
|
|
147
148
|
**TDD 模式**:
|
|
@@ -151,7 +152,7 @@ node "$COMET_STATE" set <name> isolation <branch|worktree>
|
|
|
151
152
|
| `tdd` | 每个任务先写失败测试再写实现 | 推荐。变更涉及业务逻辑、新功能、API |
|
|
152
153
|
| `direct` | 直接实现,不强制 TDD 流程 | 变更不需要测试覆盖,或用户选择跳过测试直接写代码。hotfix/tweak 预设默认使用 `direct` |
|
|
153
154
|
|
|
154
|
-
运行 `
|
|
155
|
+
运行 `comet state set <name> tdd_mode <tdd|direct>`
|
|
155
156
|
|
|
156
157
|
**代码审查模式**:
|
|
157
158
|
|
|
@@ -161,21 +162,21 @@ node "$COMET_STATE" set <name> isolation <branch|worktree>
|
|
|
161
162
|
| `standard` | 默认不为每任务派发 reviewer,仅当任务命中风险信号时派发每任务 reviewer,外加一次最终轻量代码审查 | 默认推荐,适合大多数普通改动 |
|
|
162
163
|
| `thorough` | 为每个任务派发每任务 reviewer(spec + quality),外加一次最终完整审查 | 高风险、多模块、架构或安全相关改动 |
|
|
163
164
|
|
|
164
|
-
运行 `
|
|
165
|
+
运行 `comet state set <name> review_mode <off|standard|thorough>`
|
|
165
166
|
|
|
166
|
-
`isolation` 是脚本级硬约束。full workflow 初始化时可以为 `null`,但只允许存在到本步骤之前。若保持 `null`,`build → verify` 的 guard 和 `comet
|
|
167
|
+
`isolation` 是脚本级硬约束。full workflow 初始化时可以为 `null`,但只允许存在到本步骤之前。若保持 `null`,`build → verify` 的 guard 和 `comet state transition build-complete` 都会失败。
|
|
167
168
|
|
|
168
|
-
`subagent_dispatch` 是脚本级硬约束。`build_mode: subagent-driven-development` 离开 build 阶段前必须同时满足 `subagent_dispatch: confirmed`,否则 `comet
|
|
169
|
+
`subagent_dispatch` 是脚本级硬约束。`build_mode: subagent-driven-development` 离开 build 阶段前必须同时满足 `subagent_dispatch: confirmed`,否则 `comet guard build --apply` 和 `comet state transition build-complete` 都会失败。
|
|
169
170
|
|
|
170
|
-
`tdd_mode` 是脚本级硬约束。full workflow 离开 build 阶段前 `tdd_mode` 必须已选择为 `tdd` 或 `direct`,否则 `comet
|
|
171
|
+
`tdd_mode` 是脚本级硬约束。full workflow 离开 build 阶段前 `tdd_mode` 必须已选择为 `tdd` 或 `direct`,否则 `comet guard build --apply` 和 `comet state transition build-complete` 都会失败。
|
|
171
172
|
|
|
172
|
-
`review_mode` 是脚本级硬约束。新建 full workflow 离开 build 阶段前 `review_mode` 必须已选择为 `off`、`standard` 或 `thorough`,否则 `comet
|
|
173
|
+
`review_mode` 是脚本级硬约束。新建 full workflow 离开 build 阶段前 `review_mode` 必须已选择为 `off`、`standard` 或 `thorough`,否则 `comet guard build --apply` 和 `comet state transition build-complete` 都会失败。旧状态文件若没有该字段,按兼容路径继续,但恢复时应补写该字段。
|
|
173
174
|
|
|
174
175
|
`build_mode` 默认仅 hotfix/tweak 预设使用 `direct`。full workflow 不得默认使用 `direct`。只有用户明确要求跳过计划执行技能,且你已记录显式 override 时,才允许:
|
|
175
176
|
|
|
176
177
|
```bash
|
|
177
|
-
|
|
178
|
-
|
|
178
|
+
comet state set <name> direct_override true
|
|
179
|
+
comet state set <name> build_mode direct
|
|
179
180
|
```
|
|
180
181
|
|
|
181
182
|
没有 `direct_override: true` 时,full workflow 的 `build_mode=direct` 会被 guard 和状态转换同时拦截。
|
|
@@ -204,11 +205,19 @@ git add docs/superpowers/plans/YYYY-MM-DD-feature.md
|
|
|
204
205
|
git commit -m "chore: add implementation plan"
|
|
205
206
|
```
|
|
206
207
|
|
|
208
|
+
进入最终执行分支或 worktree 后,必须在该实际工作区重新绑定当前 change。branch 切换会使入口绑定失效,新 worktree 也不会继承原工作区的本地选择文件:
|
|
209
|
+
|
|
210
|
+
```bash
|
|
211
|
+
comet state select <change-name>
|
|
212
|
+
```
|
|
213
|
+
|
|
214
|
+
重新绑定成功后才能开始源码写入。
|
|
215
|
+
|
|
207
216
|
**执行计划**:必须按 `build_mode` 的真实运行位置处理。
|
|
208
217
|
|
|
209
|
-
- `build_mode: executing-plans`:**立即执行:** 使用 Skill 工具加载 Superpowers `executing-plans` 技能。禁止跳过此步骤。若该技能不可用,停止流程并提示安装或启用对应技能,不要用普通对话替代该步骤。技能加载后,ARGUMENTS 必须包含与 Step 1 相同的 Language 约束:`Language: 使用
|
|
218
|
+
- `build_mode: executing-plans`:**立即执行:** 使用 Skill 工具加载 Superpowers `executing-plans` 技能。禁止跳过此步骤。若该技能不可用,停止流程并提示安装或启用对应技能,不要用普通对话替代该步骤。技能加载后,ARGUMENTS 必须包含与 Step 1 相同的 Language 约束:`Language: 使用 comet state get <name> language 读取到的 Comet 配置产物语言输出`。按计划执行。
|
|
210
219
|
- `build_mode: subagent-driven-development`:主会话只负责协调,禁止直接编写实现代码。**立即执行:** 使用 Skill 工具加载 Superpowers `subagent-driven-development` 技能。技能加载后,读取 `comet/reference/subagent-dispatch.md` 获取 Comet 专属扩展(真实后台调度、任务隔离、勾选验证、TDD 约束、连续执行、上下文恢复),与技能工作流配合应用。若两者发生冲突,以更具体的 Comet 扩展为准。
|
|
211
|
-
- 如果当前平台没有真实后台 agent 调度能力,必须暂停并等待用户选择改用主窗口执行。用户选择改用主窗口执行后,必须先运行 `
|
|
220
|
+
- 如果当前平台没有真实后台 agent 调度能力,必须暂停并等待用户选择改用主窗口执行。用户选择改用主窗口执行后,必须先运行 `comet state set <name> build_mode executing-plans`,再按 `build_mode: executing-plans` 分支加载 Superpowers `executing-plans` 技能。用户未明确选择前,不得继续执行任务。
|
|
212
221
|
|
|
213
222
|
**TDD 模式执行约束**:
|
|
214
223
|
|
|
@@ -227,7 +236,7 @@ git commit -m "chore: add implementation plan"
|
|
|
227
236
|
- **`review_mode: thorough`**:除最终那次审查外,按任务分段每 3 个任务请求一次分段代码审查(范围限于该段的 diff)。若总任务数 ≤ 3,跳过执行中分段,只做最终审查。每次分段审查用 `requesting-code-review` 针对该段的提交区间进行。这是 `executing-plans` 下最接近 `subagent-driven-development` 每任务审查的等价物,因为它没有隔离的 implementer 可供逐任务审查。
|
|
228
237
|
|
|
229
238
|
要求(适用于 `standard` 和 `thorough`):
|
|
230
|
-
- `requesting-code-review` 技能必须在 `
|
|
239
|
+
- `requesting-code-review` 技能必须在 `comet guard <change-name> build --apply` 之前加载
|
|
231
240
|
- 若 `requesting-code-review` 技能不可用,跳过 review gate 但必须在 tasks.md 中记录 `<!-- review skipped: skill unavailable -->`,并继续 guard 流转
|
|
232
241
|
- CRITICAL review 发现(安全漏洞、数据丢失风险、构建/测试失败)必须先修复,不得带入 verify
|
|
233
242
|
- 非 CRITICAL review 发现如选择接受,必须在 tasks.md、commit body、验证报告草稿或其他持久产物中记录接受原因和影响范围
|
|
@@ -282,14 +291,22 @@ Build 是最长阶段,可能跨越大量任务。为支持上下文压缩后
|
|
|
282
291
|
- `tdd_mode` 已写为 `tdd` 或 `direct`
|
|
283
292
|
- `review_mode` 已写为 `off`、`standard` 或 `thorough`
|
|
284
293
|
- 已按所选 `review_mode` 完成"执行计划"章节中 executing-plans review gate 规定的代码审查:`standard` 或 `thorough` 下已请求代码审查且 CRITICAL review 发现已修复、非 CRITICAL review 发现已记录接受理由;`review_mode: off` 下已在持久产物中记录跳过自动代码审查的原因
|
|
285
|
-
- **阶段守卫**:运行 `
|
|
294
|
+
- **阶段守卫**:运行 `comet guard <change-name> build --apply`,全部 PASS 后由守卫推进到 `phase: verify`(此步骤更新 `phase` 字段,与 `auto_transition` 无关)
|
|
286
295
|
|
|
287
296
|
Guard 会运行自动探测到的项目构建检查(检测到时使用 `npm run build`、Maven 或 Cargo)。构建失败时 guard 会打印失败命令输出,作为排查证据。
|
|
288
297
|
|
|
298
|
+
若项目没有可自动探测的构建命令,用户或 Agent 必须先自行运行真实构建命令,再单独记录构建证据:
|
|
299
|
+
|
|
300
|
+
```bash
|
|
301
|
+
comet state record-check <change-name> build --command "<实际运行的构建命令>" --exit-code 0
|
|
302
|
+
```
|
|
303
|
+
|
|
304
|
+
`--command` 只记录命令文本,Comet **绝不会执行该文本**。build 与 verify 证据彼此独立,不能互相替代。`COMET_SKIP_BUILD=1` 仅是旧流程的兼容绕过方式,不是可审计的构建证据。
|
|
305
|
+
|
|
289
306
|
退出前运行阶段守卫推进 phase(此步骤与 `auto_transition` 无关):
|
|
290
307
|
|
|
291
308
|
```bash
|
|
292
|
-
|
|
309
|
+
comet guard <change-name> build --apply
|
|
293
310
|
```
|
|
294
311
|
|
|
295
312
|
状态文件自动更新为 `phase: verify`、`verify_result: pending`。
|
|
@@ -299,7 +316,7 @@ node "$COMET_GUARD" <change-name> build --apply
|
|
|
299
316
|
按 `comet/reference/auto-transition.md` 执行。关键命令:
|
|
300
317
|
|
|
301
318
|
```bash
|
|
302
|
-
|
|
319
|
+
comet state next <change-name>
|
|
303
320
|
```
|
|
304
321
|
|
|
305
322
|
- `NEXT: auto` → 调用 `SKILL` 指向的 skill 进入下一阶段
|
|
@@ -19,6 +19,7 @@ description: "Use when full Comet change 已完成 open 阶段但缺少 Superpow
|
|
|
19
19
|
按 `comet/reference/scripts.md` 定位脚本(定位 `comet-env.mjs`),然后执行入口验证;从任意入口恢复时先按 `comet/reference/context-recovery.md` 运行恢复检查:
|
|
20
20
|
|
|
21
21
|
```bash
|
|
22
|
+
comet state select <change-name>
|
|
22
23
|
node "$COMET_STATE" check <name> design
|
|
23
24
|
```
|
|
24
25
|
|
|
@@ -20,12 +20,14 @@ description: "Use when 用户要修复已有行为 bug,且不新增 capability
|
|
|
20
20
|
|
|
21
21
|
### 0. 输出语言约束
|
|
22
22
|
|
|
23
|
-
精简版 OpenSpec 产物必须使用 Comet 配置产物语言。`.comet.yaml`
|
|
23
|
+
精简版 OpenSpec 产物必须使用 Comet 配置产物语言。`.comet.yaml` 尚不存在时依次读取项目 `.comet/config.yaml` 和全局 `~/.comet/config.yaml` 的 `language`,初始化后使用 `"$COMET_BASH" "$COMET_STATE" get <name> language` 读取。
|
|
24
24
|
|
|
25
25
|
执行链路:open → build → verify → archive。Hotfix 为每个阶段提供默认决策:精简开启、直接构建、按规模验证、验证通过后进入归档前最终确认。
|
|
26
26
|
|
|
27
27
|
开始前按 `comet/reference/scripts.md` 定位 Comet 脚本(定位 `comet-env.mjs`);从任意入口恢复时先按 `comet/reference/context-recovery.md` 确认 phase/workflow。
|
|
28
28
|
|
|
29
|
+
恢复已有 hotfix change 时,第一项状态操作必须是 `comet state select <change-name>`;创建新 change 时,在 `.comet.yaml` 初始化成功后立即运行该命令,再进入源码写入步骤。
|
|
30
|
+
|
|
29
31
|
### 1. 快速开启(预设 open)
|
|
30
32
|
|
|
31
33
|
复用 Comet open 能力创建 change,但使用 hotfix 默认值:不执行 `openspec-explore` 长探索,直接进入精简 change 创建。
|
|
@@ -13,7 +13,17 @@ description: "Use when Comet 需要创建新的 OpenSpec change,或 active cha
|
|
|
13
13
|
|
|
14
14
|
### 0. 输出语言约束
|
|
15
15
|
|
|
16
|
-
传递给 OpenSpec 的所有提问和产物要求都必须包含解析后的 Comet 产物语言,并使用 `en`、`zh-CN` 这类规范化 ID。`.comet.yaml`
|
|
16
|
+
传递给 OpenSpec 的所有提问和产物要求都必须包含解析后的 Comet 产物语言,并使用 `en`、`zh-CN` 这类规范化 ID。`.comet.yaml` 尚不存在时依次读取项目 `.comet/config.yaml` 和全局 `~/.comet/config.yaml` 的 `language`;change 初始化后使用 `"$COMET_BASH" "$COMET_STATE" get <name> language` 读取。没有配置语言时才回退到当前用户请求语言。生成的 `proposal.md`、`design.md`、`tasks.md` 必须以该语言为主语言。
|
|
17
|
+
|
|
18
|
+
### 0a. 当前 change 绑定
|
|
19
|
+
|
|
20
|
+
恢复已有 change 时,第一项状态操作必须是:
|
|
21
|
+
|
|
22
|
+
```bash
|
|
23
|
+
comet state select <change-name>
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
创建新 change 时,必须先完成 `.comet.yaml` 初始化,再立即运行同一命令;状态文件不存在前不得伪造选择。
|
|
17
27
|
|
|
18
28
|
### 1. 探索想法与需求澄清
|
|
19
29
|
|
|
@@ -23,12 +23,14 @@ Tweak 是 Comet 五阶段能力的预设工作流,不是独立的平行流程
|
|
|
23
23
|
|
|
24
24
|
### 0. 输出语言约束
|
|
25
25
|
|
|
26
|
-
精简版 OpenSpec 产物必须使用 Comet 配置产物语言。`.comet.yaml`
|
|
26
|
+
精简版 OpenSpec 产物必须使用 Comet 配置产物语言。`.comet.yaml` 尚不存在时依次读取项目 `.comet/config.yaml` 和全局 `~/.comet/config.yaml` 的 `language`,初始化后使用 `"$COMET_BASH" "$COMET_STATE" get <name> language` 读取。
|
|
27
27
|
|
|
28
28
|
执行链路:open → OpenSpec apply → verify → archive。Tweak 为每个阶段提供默认决策:精简开启、通过 OpenSpec apply 直接构建、按规模与 delta spec 判定验证轻重、验证通过后进入归档前最终确认。
|
|
29
29
|
|
|
30
30
|
开始前按 `comet/reference/scripts.md` 定位 Comet 脚本(定位 `comet-env.mjs`);从任意入口恢复时先按 `comet/reference/context-recovery.md` 确认 phase/workflow。
|
|
31
31
|
|
|
32
|
+
恢复已有 tweak change 时,第一项状态操作必须是 `comet state select <change-name>`;创建新 change 时,在 `.comet.yaml` 初始化成功后立即运行该命令,再进入源码写入步骤。
|
|
33
|
+
|
|
32
34
|
### 1. 快速开启(预设 open)
|
|
33
35
|
|
|
34
36
|
复用 Comet open 能力创建 change,但使用 tweak 默认值:不执行 `openspec-explore` 长探索,直接进入精简 change 创建。
|
|
@@ -14,14 +14,15 @@ description: "Use when Comet change 已完成 build 阶段,需要验证实现
|
|
|
14
14
|
|
|
15
15
|
### 0a. 输出语言约束
|
|
16
16
|
|
|
17
|
-
验证报告和分支处理说明必须使用 `
|
|
17
|
+
验证报告和分支处理说明必须使用 `comet state get <name> language` 读取到的 Comet 配置产物语言。
|
|
18
18
|
|
|
19
19
|
### 0b. 入口状态验证(Entry Check)
|
|
20
20
|
|
|
21
|
-
按 `comet/reference/scripts.md`
|
|
21
|
+
按 `comet/reference/scripts.md` 使用稳定 `comet` CLI,然后执行入口验证;从任意入口恢复时先按 `comet/reference/context-recovery.md` 运行恢复检查:
|
|
22
22
|
|
|
23
23
|
```bash
|
|
24
|
-
|
|
24
|
+
comet state select <change-name>
|
|
25
|
+
comet state check <change-name> verify
|
|
25
26
|
```
|
|
26
27
|
|
|
27
28
|
验证通过后继续 Step 1。验证失败时脚本会输出具体失败原因。
|
|
@@ -33,7 +34,7 @@ node "$COMET_STATE" check <change-name> verify
|
|
|
33
34
|
执行规模评估:
|
|
34
35
|
|
|
35
36
|
```bash
|
|
36
|
-
|
|
37
|
+
comet state scale <change-name>
|
|
37
38
|
```
|
|
38
39
|
|
|
39
40
|
脚本自动统计任务数、增量规格数、变更文件数,判断使用 light 或 full 验证模式,并设置 verify_mode 字段。判定规则(满足任一即 full):任务数 > 3、delta spec 能力数 > 1、变更文件数 > 8。
|
|
@@ -48,15 +49,15 @@ node "$COMET_STATE" scale <change-name>
|
|
|
48
49
|
|
|
49
50
|
```bash
|
|
50
51
|
# 仅在用户确认修复后执行
|
|
51
|
-
|
|
52
|
+
comet state transition <change-name> verify-fail
|
|
52
53
|
```
|
|
53
54
|
|
|
54
|
-
注意:verify-fail 回退到 build 时 `branch_status` 不会被重置。如果首次 verify 已完成分支处理,修复后再次进入 verify 时跳过已完成的分支处理步骤,直接使用 `
|
|
55
|
+
注意:verify-fail 回退到 build 时 `branch_status` 不会被重置。如果首次 verify 已完成分支处理,修复后再次进入 verify 时跳过已完成的分支处理步骤,直接使用 `comet state set <change-name> branch_status handled` 保留原有分支处理结果。
|
|
55
56
|
|
|
56
57
|
注意:如果 build 阶段每个任务都已提交,脚本基于工作区 diff 的文件数可能低估改动规模。此时必须读取 plan 文件头的 `base-ref` 并用提交区间复核:
|
|
57
58
|
|
|
58
59
|
```bash
|
|
59
|
-
PLAN=$(
|
|
60
|
+
PLAN=$(comet state get <change-name> plan)
|
|
60
61
|
BASE_REF=$(grep '^base-ref:' "$PLAN" 2>/dev/null | head -1 | sed 's/^base-ref: *//')
|
|
61
62
|
git diff --stat "$BASE_REF"...HEAD
|
|
62
63
|
```
|
|
@@ -64,14 +65,14 @@ git diff --stat "$BASE_REF"...HEAD
|
|
|
64
65
|
若提交区间显示改动超过轻量阈值(> 8 个文件、跨模块协调、或 delta spec 超过 1 个 capability),手动设置为完整验证:
|
|
65
66
|
|
|
66
67
|
```bash
|
|
67
|
-
|
|
68
|
+
comet state set <change-name> verify_mode full
|
|
68
69
|
```
|
|
69
70
|
|
|
70
|
-
**覆盖机制**:如 agent 或用户认为自动评估结果不合适,可随时通过 `
|
|
71
|
+
**覆盖机制**:如 agent 或用户认为自动评估结果不合适,可随时通过 `comet state set <change-name> verify_mode <light|full>` 手动覆盖。
|
|
71
72
|
|
|
72
73
|
### 1b. 验证失败决策(阻塞点)
|
|
73
74
|
|
|
74
|
-
验证不通过时**必须按 `comet/reference/decision-point.md` 的协议暂停并等待用户决定修复或接受偏差**。不得自动运行 `
|
|
75
|
+
验证不通过时**必须按 `comet/reference/decision-point.md` 的协议暂停并等待用户决定修复或接受偏差**。不得自动运行 `comet state transition <change-name> verify-fail`,也不得自动调用 `/comet-build`。
|
|
75
76
|
|
|
76
77
|
暂停时必须列出:
|
|
77
78
|
- 失败项
|
|
@@ -81,7 +82,7 @@ node "$COMET_STATE" set <change-name> verify_mode full
|
|
|
81
82
|
**不确定性原则**:无法确定严重程度时,降级处理(SUGGESTION > WARNING > CRITICAL)。仅对构建失败、测试失败、安全问题使用 CRITICAL;模糊或不确定的问题标为 WARNING 或 SUGGESTION。
|
|
82
83
|
|
|
83
84
|
用户选择后按以下方式继续:
|
|
84
|
-
- **全部修复**:运行 `
|
|
85
|
+
- **全部修复**:运行 `comet state transition <change-name> verify-fail`,然后调用 `/comet-build` 修复
|
|
85
86
|
- **逐项处理**:CRITICAL 或 IMPORTANT 失败项必须修复;WARNING/SUGGESTION 失败项可选择接受偏差,但必须在验证报告中记录接受原因和影响范围。若存在任何 CRITICAL 或 IMPORTANT 失败项,不允许跳过修复直接全部接受
|
|
86
87
|
|
|
87
88
|
**重试上限**:连续 3 次 verify-fail 循环后,第 4 次失败时代理不得自动选择继续修复;**必须使用当前平台可用的用户输入/确认机制暂停**,仅给出两个选项:「接受所有偏差并记录」或「继续修复」,由用户明确决定。
|
|
@@ -91,8 +92,8 @@ node "$COMET_STATE" set <change-name> verify_mode full
|
|
|
91
92
|
验证需要读取 OpenSpec 产物时,先检查产物是否自 design 阶段以来发生变化:
|
|
92
93
|
|
|
93
94
|
```bash
|
|
94
|
-
RECORDED_HASH=$(
|
|
95
|
-
CURRENT_HASH=$(
|
|
95
|
+
RECORDED_HASH=$(comet state get <change-name> handoff_hash)
|
|
96
|
+
CURRENT_HASH=$(comet handoff <change-name> --hash-only 2>/dev/null || echo "")
|
|
96
97
|
```
|
|
97
98
|
|
|
98
99
|
- 若 `RECORDED_HASH` = `CURRENT_HASH` 且均非空且均非 `null`:OpenSpec 产物未变化,**tasks.md 无需重新读取全文**(用 `grep -c '\- \[ \]' tasks.md` 确认完成数即可)。proposal.md、design.md、delta spec 仍需读取用于对照检查。
|
|
@@ -115,6 +116,14 @@ CURRENT_HASH=$(node "$COMET_HANDOFF" <change-name> --hash-only 2>/dev/null || ec
|
|
|
115
116
|
5. 无明显安全问题(无硬编码密钥、无新增 unsafe 操作)
|
|
116
117
|
6. 代码审查策略:当 `review_mode: standard` 或 `thorough` 时,必须使用 Skill 工具加载 Superpowers `requesting-code-review` 技能,请求只检查正确性、安全、边界条件的轻量代码审查;当 `review_mode: off` 时跳过自动代码审查,并在验证报告中记录跳过原因
|
|
117
118
|
|
|
119
|
+
若项目没有可自动探测的验证命令,用户或 Agent 必须先自行运行真实验证命令,再单独记录验证证据:
|
|
120
|
+
|
|
121
|
+
```bash
|
|
122
|
+
comet state record-check <change-name> verify --command "<实际运行的验证命令>" --exit-code 0
|
|
123
|
+
```
|
|
124
|
+
|
|
125
|
+
`--command` 只记录命令文本,Comet **绝不会执行该文本**。verify 与 build 证据彼此独立,不能互相替代;即使兼容流程使用 `COMET_SKIP_BUILD=1`,也不能把该绕过标记视为可审计的验证或构建证据。
|
|
126
|
+
|
|
118
127
|
简化代码审查的输入应限定为本次改动 diff、tasks.md 和必要的测试结果;审查范围只覆盖实现正确性、安全风险和边界条件,不执行 spec 覆盖率、Design Doc 一致性或漂移检查。若审查发现 CRITICAL 或 IMPORTANT 问题,按验证失败处理并进入 Step 1b。`review_mode: off` 只跳过自动 code review,不跳过构建、测试、安全检查或异常调试协议。
|
|
119
128
|
|
|
120
129
|
**与 build 阶段审查的去重**:若 build 阶段(`executing-plans` 或 `subagent-driven-development`)已按 `review_mode` 对同一 diff 完成最终代码审查,verify 的这次轻量审查聚焦「实现是否符合 spec/tasks 的正确性」与「build 之后新增的改动」,不重复评审 build 已审过且未变化的 diff。
|
|
@@ -125,7 +134,7 @@ CURRENT_HASH=$(node "$COMET_HANDOFF" <change-name> --hash-only 2>/dev/null || ec
|
|
|
125
134
|
|
|
126
135
|
```bash
|
|
127
136
|
# 仅在用户确认修复后执行
|
|
128
|
-
|
|
137
|
+
comet state transition <change-name> verify-fail
|
|
129
138
|
```
|
|
130
139
|
|
|
131
140
|
**报告格式**:简表列出 6 项检查结果 + PASS/FAIL。
|
|
@@ -155,13 +164,13 @@ node "$COMET_STATE" transition <change-name> verify-fail
|
|
|
155
164
|
|
|
156
165
|
```bash
|
|
157
166
|
# 仅在用户确认修复后执行
|
|
158
|
-
|
|
167
|
+
comet state transition <change-name> verify-fail
|
|
159
168
|
```
|
|
160
169
|
|
|
161
170
|
**Spec 漂移处理**(用户决策点):
|
|
162
171
|
- 若检查项 6 发现矛盾(delta spec 有内容但 design doc 未体现),**必须使用当前平台可用的用户输入/确认机制以单选题形式暂停并等待用户选择处理方式**,不得自动选择。选项:
|
|
163
172
|
- 选项 A:在 design doc 追加 "Implementation Divergence" 节记录偏差原因。选项 A 属于 verify 阶段允许产物;写入后不得因该 design doc 变更再次触发 Step 1b dirty-worktree 决策
|
|
164
|
-
- 选项 B:用户选择 B 后,运行 `
|
|
173
|
+
- 选项 B:用户选择 B 后,运行 `comet state transition <change-name> verify-fail`,然后调用 `/comet-build`;由 `/comet-build` 的 Spec 增量更新规则加载 Superpowers `brainstorming` 更新 Design Doc + delta spec
|
|
165
174
|
- 选项 C:确认偏差可接受,继续验证(归档时 design doc 将标记为 `superseded-by-main-spec`)
|
|
166
175
|
|
|
167
176
|
### 3. 收尾(Superpowers)
|
|
@@ -191,8 +200,8 @@ mkdir -p docs/superpowers/reports
|
|
|
191
200
|
# 将本次验证结论写入报告文件,例如:
|
|
192
201
|
# docs/superpowers/reports/YYYY-MM-DD-<change-name>-verify.md
|
|
193
202
|
|
|
194
|
-
|
|
195
|
-
|
|
203
|
+
comet state set <change-name> verification_report docs/superpowers/reports/YYYY-MM-DD-<change-name>-verify.md
|
|
204
|
+
comet state set <change-name> branch_status handled
|
|
196
205
|
```
|
|
197
206
|
|
|
198
207
|
## 退出条件
|
|
@@ -201,12 +210,12 @@ node "$COMET_STATE" set <change-name> branch_status handled
|
|
|
201
210
|
- 分支已处理
|
|
202
211
|
- `.comet.yaml` 中 `verification_report` 指向已存在的验证报告文件
|
|
203
212
|
- `.comet.yaml` 中 `branch_status: handled`
|
|
204
|
-
- **阶段守卫**:运行 `
|
|
213
|
+
- **阶段守卫**:运行 `comet guard <change-name> verify --apply`,全部 PASS 后由守卫通过 `comet state transition verify-pass` 推进到 `phase: archive`(此步骤更新 `phase` 字段,与 `auto_transition` 无关)
|
|
205
214
|
|
|
206
215
|
验证和分支处理均完成后,运行阶段守卫推进 phase(此步骤与 `auto_transition` 无关):
|
|
207
216
|
|
|
208
217
|
```bash
|
|
209
|
-
|
|
218
|
+
comet guard <change-name> verify --apply
|
|
210
219
|
```
|
|
211
220
|
|
|
212
221
|
状态文件自动更新为 `phase: archive`、`verify_result: pass`、`verified_at: YYYY-MM-DD`。
|
|
@@ -220,7 +229,7 @@ node "$COMET_GUARD" <change-name> verify --apply
|
|
|
220
229
|
按 `comet/reference/auto-transition.md` 执行。关键命令:
|
|
221
230
|
|
|
222
231
|
```bash
|
|
223
|
-
|
|
232
|
+
comet state next <change-name>
|
|
224
233
|
```
|
|
225
234
|
|
|
226
235
|
- `NEXT: auto` → 调用 `SKILL` 指向的 skill 进入下一阶段
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import type { Writable } from 'node:stream';
|
|
2
|
+
export declare const COMET_TAGLINE = "Agent Skill Harness For Turning Ideas Into Evaluated Workflows";
|
|
3
|
+
export declare const COMET_LOGO: readonly [" ██████╗ ██████╗ ███╗ ███╗███████╗████████╗", " ██╔════╝██╔═══██╗████╗ ████║██╔════╝╚══██╔══╝", " ██║ ██║ ██║██╔████╔██║█████╗ ██║ ", " ██║ ██║ ██║██║╚██╔╝██║██╔══╝ ██║ ", " ╚██████╗╚██████╔╝██║ ╚═╝ ██║███████╗ ██║ ", " ╚═════╝ ╚═════╝ ╚═╝ ╚═╝╚══════╝ ╚═╝ "];
|
|
4
|
+
type AnimationPhase = 'preheat' | 'sweep' | 'settle';
|
|
5
|
+
export declare const COMET_BANNER_LINE_COUNT: number;
|
|
6
|
+
export declare function renderCometAnimationFrame(phase: AnimationPhase, progress: number): string;
|
|
7
|
+
export declare function renderCometBanner(options?: {
|
|
8
|
+
color?: boolean;
|
|
9
|
+
}): string;
|
|
10
|
+
export declare function renderCometBannerFrame(litColumns: number, particleFrame?: number): string;
|
|
11
|
+
export type BannerRuntime = {
|
|
12
|
+
isTTY: boolean;
|
|
13
|
+
env: NodeJS.ProcessEnv;
|
|
14
|
+
getColumns: () => number | undefined;
|
|
15
|
+
write: (chunk: string) => void | Promise<void>;
|
|
16
|
+
sleep: (milliseconds: number) => Promise<void>;
|
|
17
|
+
};
|
|
18
|
+
export declare function createBannerStreamWriter(stream: Writable): BannerRuntime['write'];
|
|
19
|
+
export declare function canAnimateCometBanner(runtime: Pick<BannerRuntime, 'isTTY' | 'env' | 'getColumns'>): boolean;
|
|
20
|
+
export declare function printCometBanner(options?: {
|
|
21
|
+
enabled?: boolean;
|
|
22
|
+
runtime?: Partial<BannerRuntime>;
|
|
23
|
+
}): Promise<void>;
|
|
24
|
+
export {};
|
|
25
|
+
//# sourceMappingURL=comet-banner.d.ts.map
|