@rpamis/comet 0.3.9 → 0.4.0-beta.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -21
- package/README.md +371 -222
- package/assets/manifest.json +33 -12
- package/assets/skills/comet/SKILL.md +87 -102
- package/assets/skills/comet/reference/auto-transition.md +1 -1
- package/assets/skills/comet/reference/comet-yaml-fields.md +11 -4
- package/assets/skills/comet/reference/context-recovery.md +12 -2
- package/assets/skills/comet/reference/debug-gate.md +17 -1
- package/assets/skills/comet/reference/decision-point.md +13 -2
- package/assets/skills/comet/reference/intent-frame.md +74 -0
- package/assets/skills/comet/reference/scripts.md +69 -0
- package/assets/skills/comet/reference/subagent-dispatch.md +79 -23
- package/assets/skills/comet/rules/comet-phase-guard.en.md +18 -10
- package/assets/skills/comet/rules/comet-phase-guard.md +17 -10
- package/assets/skills/comet/runtime/classic/checks.yaml +6 -0
- package/assets/skills/comet/runtime/classic/guardrails.yaml +13 -0
- package/assets/skills/comet/runtime/classic/skill.yaml +122 -0
- package/assets/skills/comet/scripts/comet-archive.mjs +3 -0
- package/assets/skills/comet/scripts/comet-env.mjs +15 -0
- package/assets/skills/comet/scripts/comet-guard.mjs +3 -0
- package/assets/skills/comet/scripts/comet-handoff.mjs +3 -0
- package/assets/skills/comet/scripts/comet-hook-guard.mjs +3 -0
- package/assets/skills/comet/scripts/comet-intent.mjs +3 -0
- package/assets/skills/comet/scripts/comet-runtime.mjs +12857 -0
- package/assets/skills/comet/scripts/comet-state.mjs +3 -0
- package/assets/skills/comet/scripts/comet-yaml-validate.mjs +3 -0
- package/assets/skills/comet-any/SKILL.md +118 -0
- package/assets/skills/comet-any/reference/authored-zone-example.md +100 -0
- package/assets/skills/comet-any/reference/authoring-protocol.json +91 -0
- package/assets/skills/comet-any/reference/authoring-subagents.md +102 -0
- package/assets/skills/comet-any/reference/bundle-authoring.md +166 -0
- package/assets/skills/comet-any/reference/eval-provider.md +83 -0
- package/assets/skills/comet-any/reference/subagents/pause-points-author.md +75 -0
- package/assets/skills/comet-any/reference/subagents/reference-author.md +77 -0
- package/assets/skills/comet-any/reference/subagents/script-author.md +81 -0
- package/assets/skills/comet-any/reference/subagents/skill-core-author.md +129 -0
- package/assets/skills/comet-any/reference/subagents/skill-reviewer.md +124 -0
- package/assets/skills/comet-any/reference/subagents/workflow-entry-author.md +100 -0
- package/assets/skills/comet-archive/SKILL.md +25 -15
- package/assets/skills/comet-build/SKILL.md +51 -40
- package/assets/skills/comet-design/SKILL.md +14 -18
- package/assets/skills/comet-hotfix/SKILL.md +33 -43
- package/assets/skills/comet-open/SKILL.md +10 -20
- package/assets/skills/comet-tweak/SKILL.md +71 -65
- package/assets/skills/comet-verify/SKILL.md +31 -35
- package/assets/skills-zh/comet/SKILL.md +87 -101
- package/assets/skills-zh/comet/reference/auto-transition.md +3 -3
- package/assets/skills-zh/comet/reference/comet-yaml-fields.md +8 -4
- package/assets/skills-zh/comet/reference/context-recovery.md +11 -1
- package/assets/skills-zh/comet/reference/debug-gate.md +17 -1
- package/assets/skills-zh/comet/reference/decision-point.md +13 -2
- package/assets/skills-zh/comet/reference/intent-frame.md +74 -0
- package/assets/skills-zh/comet/reference/scripts.md +69 -0
- package/assets/skills-zh/comet/reference/subagent-dispatch.md +67 -18
- package/assets/skills-zh/comet/runtime/classic/checks.yaml +6 -0
- package/assets/skills-zh/comet/runtime/classic/guardrails.yaml +13 -0
- package/assets/skills-zh/comet/runtime/classic/skill.yaml +122 -0
- package/assets/skills-zh/comet-any/SKILL.md +118 -0
- package/assets/skills-zh/comet-any/reference/authored-zone-example.md +100 -0
- package/assets/skills-zh/comet-any/reference/authoring-protocol.json +91 -0
- package/assets/skills-zh/comet-any/reference/authoring-subagents.md +107 -0
- package/assets/skills-zh/comet-any/reference/bundle-authoring.md +166 -0
- package/assets/skills-zh/comet-any/reference/eval-provider.md +66 -0
- package/assets/skills-zh/comet-any/reference/subagents/pause-points-author.md +79 -0
- package/assets/skills-zh/comet-any/reference/subagents/reference-author.md +81 -0
- package/assets/skills-zh/comet-any/reference/subagents/script-author.md +84 -0
- package/assets/skills-zh/comet-any/reference/subagents/skill-core-author.md +129 -0
- package/assets/skills-zh/comet-any/reference/subagents/skill-reviewer.md +124 -0
- package/assets/skills-zh/comet-any/reference/subagents/workflow-entry-author.md +98 -0
- package/assets/skills-zh/comet-archive/SKILL.md +25 -15
- package/assets/skills-zh/comet-build/SKILL.md +41 -43
- package/assets/skills-zh/comet-design/SKILL.md +14 -18
- package/assets/skills-zh/comet-hotfix/SKILL.md +37 -47
- package/assets/skills-zh/comet-open/SKILL.md +12 -22
- package/assets/skills-zh/comet-tweak/SKILL.md +70 -63
- package/assets/skills-zh/comet-verify/SKILL.md +28 -30
- package/bin/comet.js +1 -1
- package/dist/{cli → app/cli}/index.d.ts.map +1 -1
- package/dist/app/cli/index.js +430 -0
- package/dist/app/cli/index.js.map +1 -0
- package/dist/app/commands/bundle.d.ts +51 -0
- package/dist/app/commands/bundle.d.ts.map +1 -0
- package/dist/app/commands/bundle.js +387 -0
- package/dist/app/commands/bundle.js.map +1 -0
- package/dist/app/commands/creator.d.ts +14 -0
- package/dist/app/commands/creator.d.ts.map +1 -0
- package/dist/app/commands/creator.js +82 -0
- package/dist/app/commands/creator.js.map +1 -0
- package/dist/app/commands/dashboard.d.ts +16 -0
- package/dist/app/commands/dashboard.d.ts.map +1 -0
- package/dist/app/commands/dashboard.js +53 -0
- package/dist/app/commands/dashboard.js.map +1 -0
- package/dist/{commands → app/commands}/doctor.d.ts +1 -1
- package/dist/app/commands/doctor.d.ts.map +1 -0
- package/dist/{commands → app/commands}/doctor.js +110 -60
- package/dist/app/commands/doctor.js.map +1 -0
- package/dist/app/commands/eval.d.ts +17 -0
- package/dist/app/commands/eval.d.ts.map +1 -0
- package/dist/app/commands/eval.js +169 -0
- package/dist/app/commands/eval.js.map +1 -0
- package/dist/app/commands/i18n.d.ts +4 -0
- package/dist/app/commands/i18n.d.ts.map +1 -0
- package/dist/{commands → app/commands}/i18n.js +22 -2
- package/dist/app/commands/i18n.js.map +1 -0
- package/dist/{commands → app/commands}/init.d.ts +3 -1
- package/dist/app/commands/init.d.ts.map +1 -0
- package/dist/{commands → app/commands}/init.js +81 -31
- package/dist/app/commands/init.js.map +1 -0
- package/dist/app/commands/platform-select-prompt.d.ts +38 -0
- package/dist/app/commands/platform-select-prompt.d.ts.map +1 -0
- package/dist/app/commands/platform-select-prompt.js +141 -0
- package/dist/app/commands/platform-select-prompt.js.map +1 -0
- package/dist/app/commands/publish.d.ts +7 -0
- package/dist/app/commands/publish.d.ts.map +1 -0
- package/dist/app/commands/publish.js +14 -0
- package/dist/app/commands/publish.js.map +1 -0
- package/dist/app/commands/skill.d.ts +23 -0
- package/dist/app/commands/skill.d.ts.map +1 -0
- package/dist/app/commands/skill.js +208 -0
- package/dist/app/commands/skill.js.map +1 -0
- package/dist/app/commands/status.d.ts.map +1 -0
- package/dist/app/commands/status.js +159 -0
- package/dist/app/commands/status.js.map +1 -0
- package/dist/{commands → app/commands}/uninstall.d.ts +1 -1
- package/dist/app/commands/uninstall.d.ts.map +1 -0
- package/dist/{commands → app/commands}/uninstall.js +3 -3
- package/dist/app/commands/uninstall.js.map +1 -0
- package/dist/{commands → app/commands}/update.d.ts +4 -3
- package/dist/app/commands/update.d.ts.map +1 -0
- package/dist/{commands → app/commands}/update.js +33 -10
- package/dist/app/commands/update.js.map +1 -0
- package/dist/config/repository-layout.json +98 -0
- package/dist/domains/bundle/authoring.d.ts +82 -0
- package/dist/domains/bundle/authoring.d.ts.map +1 -0
- package/dist/domains/bundle/authoring.js +185 -0
- package/dist/domains/bundle/authoring.js.map +1 -0
- package/dist/domains/bundle/bundle-platform.d.ts +39 -0
- package/dist/domains/bundle/bundle-platform.d.ts.map +1 -0
- package/dist/domains/bundle/bundle-platform.js +287 -0
- package/dist/domains/bundle/bundle-platform.js.map +1 -0
- package/dist/domains/bundle/candidates.d.ts +29 -0
- package/dist/domains/bundle/candidates.d.ts.map +1 -0
- package/dist/domains/bundle/candidates.js +37 -0
- package/dist/domains/bundle/candidates.js.map +1 -0
- package/dist/domains/bundle/compatibility-benchmark.d.ts +12 -0
- package/dist/domains/bundle/compatibility-benchmark.d.ts.map +1 -0
- package/dist/domains/bundle/compatibility-benchmark.js +224 -0
- package/dist/domains/bundle/compatibility-benchmark.js.map +1 -0
- package/dist/domains/bundle/compiler.d.ts +5 -0
- package/dist/domains/bundle/compiler.d.ts.map +1 -0
- package/dist/domains/bundle/compiler.js +106 -0
- package/dist/domains/bundle/compiler.js.map +1 -0
- package/dist/domains/bundle/distribute.d.ts +33 -0
- package/dist/domains/bundle/distribute.d.ts.map +1 -0
- package/dist/domains/bundle/distribute.js +166 -0
- package/dist/domains/bundle/distribute.js.map +1 -0
- package/dist/domains/bundle/draft.d.ts +19 -0
- package/dist/domains/bundle/draft.d.ts.map +1 -0
- package/dist/domains/bundle/draft.js +82 -0
- package/dist/domains/bundle/draft.js.map +1 -0
- package/dist/domains/bundle/eval.d.ts +36 -0
- package/dist/domains/bundle/eval.d.ts.map +1 -0
- package/dist/domains/bundle/eval.js +501 -0
- package/dist/domains/bundle/eval.js.map +1 -0
- package/dist/domains/bundle/factory-compose.d.ts +12 -0
- package/dist/domains/bundle/factory-compose.d.ts.map +1 -0
- package/dist/domains/bundle/factory-compose.js +309 -0
- package/dist/domains/bundle/factory-compose.js.map +1 -0
- package/dist/domains/bundle/factory-guide.d.ts +37 -0
- package/dist/domains/bundle/factory-guide.d.ts.map +1 -0
- package/dist/domains/bundle/factory-guide.js +96 -0
- package/dist/domains/bundle/factory-guide.js.map +1 -0
- package/dist/domains/bundle/factory-plan.d.ts +48 -0
- package/dist/domains/bundle/factory-plan.d.ts.map +1 -0
- package/dist/domains/bundle/factory-plan.js +172 -0
- package/dist/domains/bundle/factory-plan.js.map +1 -0
- package/dist/domains/bundle/factory-proposal.d.ts +31 -0
- package/dist/domains/bundle/factory-proposal.d.ts.map +1 -0
- package/dist/domains/bundle/factory-proposal.js +225 -0
- package/dist/domains/bundle/factory-proposal.js.map +1 -0
- package/dist/domains/bundle/factory-resolve.d.ts +11 -0
- package/dist/domains/bundle/factory-resolve.d.ts.map +1 -0
- package/dist/domains/bundle/factory-resolve.js +121 -0
- package/dist/domains/bundle/factory-resolve.js.map +1 -0
- package/dist/domains/bundle/factory.d.ts +17 -0
- package/dist/domains/bundle/factory.d.ts.map +1 -0
- package/dist/domains/bundle/factory.js +511 -0
- package/dist/domains/bundle/factory.js.map +1 -0
- package/dist/domains/bundle/hash.d.ts +3 -0
- package/dist/domains/bundle/hash.d.ts.map +1 -0
- package/dist/domains/bundle/hash.js +72 -0
- package/dist/domains/bundle/hash.js.map +1 -0
- package/dist/domains/bundle/load.d.ts +4 -0
- package/dist/domains/bundle/load.d.ts.map +1 -0
- package/dist/domains/bundle/load.js +355 -0
- package/dist/domains/bundle/load.js.map +1 -0
- package/dist/domains/bundle/next-action.d.ts +37 -0
- package/dist/domains/bundle/next-action.d.ts.map +1 -0
- package/dist/domains/bundle/next-action.js +185 -0
- package/dist/domains/bundle/next-action.js.map +1 -0
- package/dist/domains/bundle/platform.d.ts +21 -0
- package/dist/domains/bundle/platform.d.ts.map +1 -0
- package/dist/domains/bundle/platform.js +170 -0
- package/dist/domains/bundle/platform.js.map +1 -0
- package/dist/domains/bundle/preferences.d.ts +11 -0
- package/dist/domains/bundle/preferences.d.ts.map +1 -0
- package/dist/domains/bundle/preferences.js +17 -0
- package/dist/domains/bundle/preferences.js.map +1 -0
- package/dist/domains/bundle/publish.d.ts +14 -0
- package/dist/domains/bundle/publish.d.ts.map +1 -0
- package/dist/domains/bundle/publish.js +159 -0
- package/dist/domains/bundle/publish.js.map +1 -0
- package/dist/domains/bundle/readiness-user-summary.d.ts +25 -0
- package/dist/domains/bundle/readiness-user-summary.d.ts.map +1 -0
- package/dist/domains/bundle/readiness-user-summary.js +186 -0
- package/dist/domains/bundle/readiness-user-summary.js.map +1 -0
- package/dist/domains/bundle/review-summary.d.ts +36 -0
- package/dist/domains/bundle/review-summary.d.ts.map +1 -0
- package/dist/domains/bundle/review-summary.js +348 -0
- package/dist/domains/bundle/review-summary.js.map +1 -0
- package/dist/domains/bundle/state.d.ts +7 -0
- package/dist/domains/bundle/state.d.ts.map +1 -0
- package/dist/domains/bundle/state.js +132 -0
- package/dist/domains/bundle/state.js.map +1 -0
- package/dist/domains/bundle/types.d.ts +347 -0
- package/dist/domains/bundle/types.d.ts.map +1 -0
- package/dist/domains/bundle/types.js.map +1 -0
- package/dist/domains/bundle/user-facing.d.ts +48 -0
- package/dist/domains/bundle/user-facing.d.ts.map +1 -0
- package/dist/domains/bundle/user-facing.js +73 -0
- package/dist/domains/bundle/user-facing.js.map +1 -0
- package/dist/domains/bundle/validate.d.ts +5 -0
- package/dist/domains/bundle/validate.d.ts.map +1 -0
- package/dist/domains/bundle/validate.js +292 -0
- package/dist/domains/bundle/validate.js.map +1 -0
- package/dist/domains/comet-classic/classic-archive-entry.d.ts +2 -0
- package/dist/domains/comet-classic/classic-archive-entry.d.ts.map +1 -0
- package/dist/domains/comet-classic/classic-archive-entry.js +4 -0
- package/dist/domains/comet-classic/classic-archive-entry.js.map +1 -0
- package/dist/domains/comet-classic/classic-archive.d.ts +3 -0
- package/dist/domains/comet-classic/classic-archive.d.ts.map +1 -0
- package/dist/domains/comet-classic/classic-archive.js +392 -0
- package/dist/domains/comet-classic/classic-archive.js.map +1 -0
- package/dist/domains/comet-classic/classic-cli.d.ts +15 -0
- package/dist/domains/comet-classic/classic-cli.d.ts.map +1 -0
- package/dist/domains/comet-classic/classic-cli.js +94 -0
- package/dist/domains/comet-classic/classic-cli.js.map +1 -0
- package/dist/domains/comet-classic/classic-diagnostics.d.ts +16 -0
- package/dist/domains/comet-classic/classic-diagnostics.d.ts.map +1 -0
- package/dist/domains/comet-classic/classic-diagnostics.js +57 -0
- package/dist/domains/comet-classic/classic-diagnostics.js.map +1 -0
- package/dist/domains/comet-classic/classic-evidence.d.ts +10 -0
- package/dist/domains/comet-classic/classic-evidence.d.ts.map +1 -0
- package/dist/domains/comet-classic/classic-evidence.js +114 -0
- package/dist/domains/comet-classic/classic-evidence.js.map +1 -0
- package/dist/domains/comet-classic/classic-guard-entry.d.ts +2 -0
- package/dist/domains/comet-classic/classic-guard-entry.d.ts.map +1 -0
- package/dist/domains/comet-classic/classic-guard-entry.js +4 -0
- package/dist/domains/comet-classic/classic-guard-entry.js.map +1 -0
- package/dist/domains/comet-classic/classic-guard.d.ts +3 -0
- package/dist/domains/comet-classic/classic-guard.d.ts.map +1 -0
- package/dist/domains/comet-classic/classic-guard.js +833 -0
- package/dist/domains/comet-classic/classic-guard.js.map +1 -0
- package/dist/domains/comet-classic/classic-handoff-entry.d.ts +2 -0
- package/dist/domains/comet-classic/classic-handoff-entry.d.ts.map +1 -0
- package/dist/domains/comet-classic/classic-handoff-entry.js +4 -0
- package/dist/domains/comet-classic/classic-handoff-entry.js.map +1 -0
- package/dist/domains/comet-classic/classic-handoff.d.ts +3 -0
- package/dist/domains/comet-classic/classic-handoff.d.ts.map +1 -0
- package/dist/domains/comet-classic/classic-handoff.js +478 -0
- package/dist/domains/comet-classic/classic-handoff.js.map +1 -0
- package/dist/domains/comet-classic/classic-hook-guard-entry.d.ts +2 -0
- package/dist/domains/comet-classic/classic-hook-guard-entry.d.ts.map +1 -0
- package/dist/domains/comet-classic/classic-hook-guard-entry.js +4 -0
- package/dist/domains/comet-classic/classic-hook-guard-entry.js.map +1 -0
- package/dist/domains/comet-classic/classic-hook-guard.d.ts +3 -0
- package/dist/domains/comet-classic/classic-hook-guard.d.ts.map +1 -0
- package/dist/domains/comet-classic/classic-hook-guard.js +302 -0
- package/dist/domains/comet-classic/classic-hook-guard.js.map +1 -0
- package/dist/domains/comet-classic/classic-intent-command.d.ts +3 -0
- package/dist/domains/comet-classic/classic-intent-command.d.ts.map +1 -0
- package/dist/domains/comet-classic/classic-intent-command.js +40 -0
- package/dist/domains/comet-classic/classic-intent-command.js.map +1 -0
- package/dist/domains/comet-classic/classic-intent-entry.d.ts +2 -0
- package/dist/domains/comet-classic/classic-intent-entry.d.ts.map +1 -0
- package/dist/domains/comet-classic/classic-intent-entry.js +4 -0
- package/dist/domains/comet-classic/classic-intent-entry.js.map +1 -0
- package/dist/domains/comet-classic/classic-intent.d.ts +79 -0
- package/dist/domains/comet-classic/classic-intent.d.ts.map +1 -0
- package/dist/domains/comet-classic/classic-intent.js +307 -0
- package/dist/domains/comet-classic/classic-intent.js.map +1 -0
- package/dist/domains/comet-classic/classic-migrate.d.ts +18 -0
- package/dist/domains/comet-classic/classic-migrate.d.ts.map +1 -0
- package/dist/domains/comet-classic/classic-migrate.js +184 -0
- package/dist/domains/comet-classic/classic-migrate.js.map +1 -0
- package/dist/domains/comet-classic/classic-paths.d.ts +8 -0
- package/dist/domains/comet-classic/classic-paths.d.ts.map +1 -0
- package/dist/domains/comet-classic/classic-paths.js +61 -0
- package/dist/domains/comet-classic/classic-paths.js.map +1 -0
- package/dist/domains/comet-classic/classic-resolver.d.ts +10 -0
- package/dist/domains/comet-classic/classic-resolver.d.ts.map +1 -0
- package/dist/domains/comet-classic/classic-resolver.js +89 -0
- package/dist/domains/comet-classic/classic-resolver.js.map +1 -0
- package/dist/domains/comet-classic/classic-runtime-evals.d.ts +9 -0
- package/dist/domains/comet-classic/classic-runtime-evals.d.ts.map +1 -0
- package/dist/domains/comet-classic/classic-runtime-evals.js +45 -0
- package/dist/domains/comet-classic/classic-runtime-evals.js.map +1 -0
- package/dist/domains/comet-classic/classic-runtime-run.d.ts +7 -0
- package/dist/domains/comet-classic/classic-runtime-run.d.ts.map +1 -0
- package/dist/domains/comet-classic/classic-runtime-run.js +105 -0
- package/dist/domains/comet-classic/classic-runtime-run.js.map +1 -0
- package/dist/domains/comet-classic/classic-script-entry.d.ts +3 -0
- package/dist/domains/comet-classic/classic-script-entry.d.ts.map +1 -0
- package/dist/domains/comet-classic/classic-script-entry.js +31 -0
- package/dist/domains/comet-classic/classic-script-entry.js.map +1 -0
- package/dist/domains/comet-classic/classic-state-command.d.ts +3 -0
- package/dist/domains/comet-classic/classic-state-command.d.ts.map +1 -0
- package/dist/domains/comet-classic/classic-state-command.js +984 -0
- package/dist/domains/comet-classic/classic-state-command.js.map +1 -0
- package/dist/domains/comet-classic/classic-state-entry.d.ts +2 -0
- package/dist/domains/comet-classic/classic-state-entry.d.ts.map +1 -0
- package/dist/domains/comet-classic/classic-state-entry.js +4 -0
- package/dist/domains/comet-classic/classic-state-entry.js.map +1 -0
- package/dist/domains/comet-classic/classic-state-events.d.ts +18 -0
- package/dist/domains/comet-classic/classic-state-events.d.ts.map +1 -0
- package/dist/domains/comet-classic/classic-state-events.js +15 -0
- package/dist/domains/comet-classic/classic-state-events.js.map +1 -0
- package/dist/domains/comet-classic/classic-state.d.ts +69 -0
- package/dist/domains/comet-classic/classic-state.d.ts.map +1 -0
- package/dist/domains/comet-classic/classic-state.js +238 -0
- package/dist/domains/comet-classic/classic-state.js.map +1 -0
- package/dist/domains/comet-classic/classic-store.d.ts +7 -0
- package/dist/domains/comet-classic/classic-store.d.ts.map +1 -0
- package/dist/domains/comet-classic/classic-store.js +127 -0
- package/dist/domains/comet-classic/classic-store.js.map +1 -0
- package/dist/domains/comet-classic/classic-transitions.d.ts +24 -0
- package/dist/domains/comet-classic/classic-transitions.d.ts.map +1 -0
- package/dist/domains/comet-classic/classic-transitions.js +124 -0
- package/dist/domains/comet-classic/classic-transitions.js.map +1 -0
- package/dist/domains/comet-classic/classic-validate-command.d.ts +3 -0
- package/dist/domains/comet-classic/classic-validate-command.d.ts.map +1 -0
- package/dist/domains/comet-classic/classic-validate-command.js +154 -0
- package/dist/domains/comet-classic/classic-validate-command.js.map +1 -0
- package/dist/domains/comet-classic/classic-validate-entry.d.ts +2 -0
- package/dist/domains/comet-classic/classic-validate-entry.d.ts.map +1 -0
- package/dist/domains/comet-classic/classic-validate-entry.js +4 -0
- package/dist/domains/comet-classic/classic-validate-entry.js.map +1 -0
- package/dist/domains/comet-classic/index.d.ts +20 -0
- package/dist/domains/comet-classic/index.d.ts.map +1 -0
- package/dist/domains/comet-classic/index.js +20 -0
- package/dist/domains/comet-classic/index.js.map +1 -0
- package/dist/domains/dashboard/collector.d.ts +12 -0
- package/dist/domains/dashboard/collector.d.ts.map +1 -0
- package/dist/domains/dashboard/collector.js +475 -0
- package/dist/domains/dashboard/collector.js.map +1 -0
- package/dist/domains/dashboard/git.d.ts +8 -0
- package/dist/domains/dashboard/git.d.ts.map +1 -0
- package/dist/domains/dashboard/git.js +69 -0
- package/dist/domains/dashboard/git.js.map +1 -0
- package/dist/domains/dashboard/next-action.d.ts +17 -0
- package/dist/domains/dashboard/next-action.d.ts.map +1 -0
- package/dist/domains/dashboard/next-action.js +83 -0
- package/dist/domains/dashboard/next-action.js.map +1 -0
- package/dist/domains/dashboard/open-browser.d.ts +9 -0
- package/dist/domains/dashboard/open-browser.d.ts.map +1 -0
- package/dist/domains/dashboard/open-browser.js +40 -0
- package/dist/domains/dashboard/open-browser.js.map +1 -0
- package/dist/domains/dashboard/risk.d.ts +24 -0
- package/dist/domains/dashboard/risk.d.ts.map +1 -0
- package/dist/domains/dashboard/risk.js +97 -0
- package/dist/domains/dashboard/risk.js.map +1 -0
- package/dist/domains/dashboard/server.d.ts +21 -0
- package/dist/domains/dashboard/server.d.ts.map +1 -0
- package/dist/domains/dashboard/server.js +149 -0
- package/dist/domains/dashboard/server.js.map +1 -0
- package/dist/domains/dashboard/task-parser.d.ts +13 -0
- package/dist/domains/dashboard/task-parser.d.ts.map +1 -0
- package/dist/domains/dashboard/task-parser.js +82 -0
- package/dist/domains/dashboard/task-parser.js.map +1 -0
- package/dist/domains/dashboard/types.d.ts +122 -0
- package/dist/domains/dashboard/types.d.ts.map +1 -0
- package/dist/domains/dashboard/types.js +10 -0
- package/dist/domains/dashboard/types.js.map +1 -0
- package/dist/domains/dashboard/verify-parser.d.ts +18 -0
- package/dist/domains/dashboard/verify-parser.d.ts.map +1 -0
- package/dist/domains/dashboard/verify-parser.js +94 -0
- package/dist/domains/dashboard/verify-parser.js.map +1 -0
- package/dist/domains/dashboard/web/assets/demo-DQyfozbi.js +1 -0
- package/dist/domains/dashboard/web/assets/index-BcO3_QlT.css +1 -0
- package/dist/domains/dashboard/web/assets/index-CjU3VXVu.js +22 -0
- package/dist/domains/dashboard/web/favicon.png +0 -0
- package/dist/domains/dashboard/web/index.html +16 -0
- package/dist/domains/dashboard/yaml.d.ts +13 -0
- package/dist/domains/dashboard/yaml.d.ts.map +1 -0
- package/dist/domains/dashboard/yaml.js +61 -0
- package/dist/domains/dashboard/yaml.js.map +1 -0
- package/dist/domains/engine/evals.d.ts +4 -0
- package/dist/domains/engine/evals.d.ts.map +1 -0
- package/dist/domains/engine/evals.js +25 -0
- package/dist/domains/engine/evals.js.map +1 -0
- package/dist/domains/engine/guardrails.d.ts +10 -0
- package/dist/domains/engine/guardrails.d.ts.map +1 -0
- package/dist/domains/engine/guardrails.js +25 -0
- package/dist/domains/engine/guardrails.js.map +1 -0
- package/dist/domains/engine/loop.d.ts +15 -0
- package/dist/domains/engine/loop.d.ts.map +1 -0
- package/dist/domains/engine/loop.js +126 -0
- package/dist/domains/engine/loop.js.map +1 -0
- package/dist/domains/engine/manual-run.d.ts +30 -0
- package/dist/domains/engine/manual-run.d.ts.map +1 -0
- package/dist/domains/engine/manual-run.js +184 -0
- package/dist/domains/engine/manual-run.js.map +1 -0
- package/dist/domains/engine/resolver.d.ts +20 -0
- package/dist/domains/engine/resolver.d.ts.map +1 -0
- package/dist/domains/engine/resolver.js +36 -0
- package/dist/domains/engine/resolver.js.map +1 -0
- package/dist/domains/engine/run-store.d.ts +13 -0
- package/dist/domains/engine/run-store.d.ts.map +1 -0
- package/dist/domains/engine/run-store.js +100 -0
- package/dist/domains/engine/run-store.js.map +1 -0
- package/dist/domains/engine/runtime-types.d.ts +11 -0
- package/dist/domains/engine/runtime-types.d.ts.map +1 -0
- package/dist/domains/engine/runtime-types.js +2 -0
- package/dist/domains/engine/runtime-types.js.map +1 -0
- package/dist/domains/engine/standalone-run.d.ts +13 -0
- package/dist/domains/engine/standalone-run.d.ts.map +1 -0
- package/dist/domains/engine/standalone-run.js +27 -0
- package/dist/domains/engine/standalone-run.js.map +1 -0
- package/dist/domains/engine/state.d.ts +10 -0
- package/dist/domains/engine/state.d.ts.map +1 -0
- package/dist/domains/engine/state.js +160 -0
- package/dist/domains/engine/state.js.map +1 -0
- package/dist/domains/engine/types.d.ts +51 -0
- package/dist/domains/engine/types.d.ts.map +1 -0
- package/dist/domains/engine/types.js +2 -0
- package/dist/domains/engine/types.js.map +1 -0
- package/dist/domains/eval/index.d.ts +7 -0
- package/dist/domains/eval/index.d.ts.map +1 -0
- package/dist/domains/eval/index.js +11 -0
- package/dist/domains/eval/index.js.map +1 -0
- package/dist/domains/eval/repository-benchmarks.d.ts +6 -0
- package/dist/domains/eval/repository-benchmarks.d.ts.map +1 -0
- package/dist/domains/eval/repository-benchmarks.js +10 -0
- package/dist/domains/eval/repository-benchmarks.js.map +1 -0
- package/dist/domains/factory/artifacts.d.ts +53 -0
- package/dist/domains/factory/artifacts.d.ts.map +1 -0
- package/dist/domains/factory/artifacts.js +8 -0
- package/dist/domains/factory/artifacts.js.map +1 -0
- package/dist/domains/factory/package.d.ts +7 -0
- package/dist/domains/factory/package.d.ts.map +1 -0
- package/dist/domains/factory/package.js +1511 -0
- package/dist/domains/factory/package.js.map +1 -0
- package/dist/domains/factory/types.d.ts +127 -0
- package/dist/domains/factory/types.d.ts.map +1 -0
- package/dist/domains/factory/types.js +2 -0
- package/dist/domains/factory/types.js.map +1 -0
- package/dist/{core → domains/integrations}/codegraph.d.ts +1 -1
- package/dist/domains/integrations/codegraph.d.ts.map +1 -0
- package/dist/{core → domains/integrations}/codegraph.js +1 -1
- package/dist/domains/integrations/codegraph.js.map +1 -0
- package/dist/domains/integrations/openspec.d.ts +18 -0
- package/dist/domains/integrations/openspec.d.ts.map +1 -0
- package/dist/{core → domains/integrations}/openspec.js +102 -25
- package/dist/domains/integrations/openspec.js.map +1 -0
- package/dist/{core → domains/integrations}/superpowers.d.ts +10 -2
- package/dist/domains/integrations/superpowers.d.ts.map +1 -0
- package/dist/{core → domains/integrations}/superpowers.js +59 -13
- package/dist/domains/integrations/superpowers.js.map +1 -0
- package/dist/domains/skill/discovery.d.ts +17 -0
- package/dist/domains/skill/discovery.d.ts.map +1 -0
- package/dist/domains/skill/discovery.js +80 -0
- package/dist/domains/skill/discovery.js.map +1 -0
- package/dist/domains/skill/find.d.ts +41 -0
- package/dist/domains/skill/find.d.ts.map +1 -0
- package/dist/domains/skill/find.js +251 -0
- package/dist/domains/skill/find.js.map +1 -0
- package/dist/domains/skill/install.d.ts +11 -0
- package/dist/domains/skill/install.d.ts.map +1 -0
- package/dist/domains/skill/install.js +82 -0
- package/dist/domains/skill/install.js.map +1 -0
- package/dist/domains/skill/inventory.d.ts +19 -0
- package/dist/domains/skill/inventory.d.ts.map +1 -0
- package/dist/domains/skill/inventory.js +64 -0
- package/dist/domains/skill/inventory.js.map +1 -0
- package/dist/domains/skill/languages.d.ts +19 -0
- package/dist/domains/skill/languages.d.ts.map +1 -0
- package/dist/domains/skill/languages.js +21 -0
- package/dist/domains/skill/languages.js.map +1 -0
- package/dist/domains/skill/load.d.ts +5 -0
- package/dist/domains/skill/load.d.ts.map +1 -0
- package/dist/domains/skill/load.js +313 -0
- package/dist/domains/skill/load.js.map +1 -0
- package/dist/domains/skill/platform-install.d.ts +87 -0
- package/dist/domains/skill/platform-install.d.ts.map +1 -0
- package/dist/{core/skills.js → domains/skill/platform-install.js} +243 -51
- package/dist/domains/skill/platform-install.js.map +1 -0
- package/dist/domains/skill/preferences.d.ts +42 -0
- package/dist/domains/skill/preferences.d.ts.map +1 -0
- package/dist/domains/skill/preferences.js +118 -0
- package/dist/domains/skill/preferences.js.map +1 -0
- package/dist/domains/skill/snapshot.d.ts +8 -0
- package/dist/domains/skill/snapshot.d.ts.map +1 -0
- package/dist/domains/skill/snapshot.js +184 -0
- package/dist/domains/skill/snapshot.js.map +1 -0
- package/dist/domains/skill/types.d.ts +85 -0
- package/dist/domains/skill/types.d.ts.map +1 -0
- package/dist/domains/skill/types.js +2 -0
- package/dist/{core → domains/skill}/types.js.map +1 -1
- package/dist/{core → domains/skill}/uninstall.d.ts +2 -18
- package/dist/domains/skill/uninstall.d.ts.map +1 -0
- package/dist/{core → domains/skill}/uninstall.js +15 -66
- package/dist/domains/skill/uninstall.js.map +1 -0
- package/dist/domains/skill/validate.d.ts +3 -0
- package/dist/domains/skill/validate.d.ts.map +1 -0
- package/dist/domains/skill/validate.js +81 -0
- package/dist/domains/skill/validate.js.map +1 -0
- package/dist/domains/workflow-contract/builtins.d.ts +8 -0
- package/dist/domains/workflow-contract/builtins.d.ts.map +1 -0
- package/dist/domains/workflow-contract/builtins.js +229 -0
- package/dist/domains/workflow-contract/builtins.js.map +1 -0
- package/dist/domains/workflow-contract/hash.d.ts +3 -0
- package/dist/domains/workflow-contract/hash.d.ts.map +1 -0
- package/dist/domains/workflow-contract/hash.js +16 -0
- package/dist/domains/workflow-contract/hash.js.map +1 -0
- package/dist/domains/workflow-contract/index.d.ts +6 -0
- package/dist/domains/workflow-contract/index.d.ts.map +1 -0
- package/dist/domains/workflow-contract/index.js +5 -0
- package/dist/domains/workflow-contract/index.js.map +1 -0
- package/dist/domains/workflow-contract/normalize.d.ts +3 -0
- package/dist/domains/workflow-contract/normalize.d.ts.map +1 -0
- package/dist/domains/workflow-contract/normalize.js +146 -0
- package/dist/domains/workflow-contract/normalize.js.map +1 -0
- package/dist/domains/workflow-contract/types.d.ts +128 -0
- package/dist/domains/workflow-contract/types.d.ts.map +1 -0
- package/dist/domains/workflow-contract/types.js +2 -0
- package/dist/domains/workflow-contract/types.js.map +1 -0
- package/dist/domains/workflow-contract/validation.d.ts +3 -0
- package/dist/domains/workflow-contract/validation.d.ts.map +1 -0
- package/dist/domains/workflow-contract/validation.js +180 -0
- package/dist/domains/workflow-contract/validation.js.map +1 -0
- package/dist/platform/fs/file-system.d.ts.map +1 -0
- package/dist/platform/fs/file-system.js.map +1 -0
- package/dist/platform/install/detect.d.ts.map +1 -0
- package/dist/{core → platform/install}/detect.js +4 -3
- package/dist/platform/install/detect.js.map +1 -0
- package/dist/platform/install/platforms.d.ts.map +1 -0
- package/dist/{core → platform/install}/platforms.js +41 -0
- package/dist/platform/install/platforms.js.map +1 -0
- package/dist/platform/install/types.d.ts +3 -0
- package/dist/platform/install/types.d.ts.map +1 -0
- package/dist/platform/install/types.js +2 -0
- package/dist/platform/install/types.js.map +1 -0
- package/dist/platform/paths/repository-layout.d.ts +22 -0
- package/dist/platform/paths/repository-layout.d.ts.map +1 -0
- package/dist/platform/paths/repository-layout.js +11 -0
- package/dist/platform/paths/repository-layout.js.map +1 -0
- package/dist/platform/process/command-error.d.ts.map +1 -0
- package/dist/platform/process/command-error.js.map +1 -0
- package/dist/platform/process/shell-quote.d.ts +22 -0
- package/dist/platform/process/shell-quote.d.ts.map +1 -0
- package/dist/platform/process/shell-quote.js +34 -0
- package/dist/platform/process/shell-quote.js.map +1 -0
- package/dist/platform/version/version.d.ts.map +1 -0
- package/dist/{core → platform/version}/version.js +16 -3
- package/dist/platform/version/version.js.map +1 -0
- package/package.json +39 -13
- package/assets/skills/comet/scripts/comet-archive.sh +0 -311
- package/assets/skills/comet/scripts/comet-env.sh +0 -110
- package/assets/skills/comet/scripts/comet-guard.sh +0 -778
- package/assets/skills/comet/scripts/comet-handoff.sh +0 -390
- package/assets/skills/comet/scripts/comet-hook-guard.sh +0 -336
- package/assets/skills/comet/scripts/comet-state.sh +0 -1338
- package/assets/skills/comet/scripts/comet-yaml-validate.sh +0 -225
- package/dist/cli/index.js +0 -84
- package/dist/cli/index.js.map +0 -1
- package/dist/commands/doctor.d.ts.map +0 -1
- package/dist/commands/doctor.js.map +0 -1
- package/dist/commands/i18n.d.ts +0 -4
- package/dist/commands/i18n.d.ts.map +0 -1
- package/dist/commands/i18n.js.map +0 -1
- package/dist/commands/init.d.ts.map +0 -1
- package/dist/commands/init.js.map +0 -1
- package/dist/commands/status.d.ts.map +0 -1
- package/dist/commands/status.js +0 -108
- package/dist/commands/status.js.map +0 -1
- package/dist/commands/uninstall.d.ts.map +0 -1
- package/dist/commands/uninstall.js.map +0 -1
- package/dist/commands/update.d.ts.map +0 -1
- package/dist/commands/update.js.map +0 -1
- package/dist/core/codegraph.d.ts.map +0 -1
- package/dist/core/codegraph.js.map +0 -1
- package/dist/core/command-error.d.ts.map +0 -1
- package/dist/core/command-error.js.map +0 -1
- package/dist/core/detect.d.ts.map +0 -1
- package/dist/core/detect.js.map +0 -1
- package/dist/core/openspec.d.ts +0 -11
- package/dist/core/openspec.d.ts.map +0 -1
- package/dist/core/openspec.js.map +0 -1
- package/dist/core/platforms.d.ts.map +0 -1
- package/dist/core/platforms.js.map +0 -1
- package/dist/core/skills.d.ts +0 -58
- package/dist/core/skills.d.ts.map +0 -1
- package/dist/core/skills.js.map +0 -1
- package/dist/core/superpowers.d.ts.map +0 -1
- package/dist/core/superpowers.js.map +0 -1
- package/dist/core/types.d.ts +0 -2
- package/dist/core/types.d.ts.map +0 -1
- package/dist/core/uninstall.d.ts.map +0 -1
- package/dist/core/uninstall.js.map +0 -1
- package/dist/core/version.d.ts.map +0 -1
- package/dist/core/version.js.map +0 -1
- package/dist/utils/file-system.d.ts.map +0 -1
- package/dist/utils/file-system.js.map +0 -1
- /package/dist/{cli → app/cli}/index.d.ts +0 -0
- /package/dist/{commands → app/commands}/status.d.ts +0 -0
- /package/dist/{core → domains/bundle}/types.js +0 -0
- /package/dist/{utils → platform/fs}/file-system.d.ts +0 -0
- /package/dist/{utils → platform/fs}/file-system.js +0 -0
- /package/dist/{core → platform/install}/detect.d.ts +0 -0
- /package/dist/{core → platform/install}/platforms.d.ts +0 -0
- /package/dist/{core → platform/process}/command-error.d.ts +0 -0
- /package/dist/{core → platform/process}/command-error.js +0 -0
- /package/dist/{core → platform/version}/version.d.ts +0 -0
- /package/scripts/{postinstall.js → install/postinstall.js} +0 -0
package/assets/manifest.json
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{
|
|
2
|
-
"version": "0.
|
|
2
|
+
"version": "0.4.0-beta.1",
|
|
3
3
|
"skills": [
|
|
4
4
|
"comet/SKILL.md",
|
|
5
5
|
"comet/reference/auto-transition.md",
|
|
@@ -9,14 +9,29 @@
|
|
|
9
9
|
"comet/reference/decision-point.md",
|
|
10
10
|
"comet/reference/dirty-worktree.md",
|
|
11
11
|
"comet/reference/file-structure.md",
|
|
12
|
+
"comet/reference/intent-frame.md",
|
|
13
|
+
"comet/reference/scripts.md",
|
|
12
14
|
"comet/reference/subagent-dispatch.md",
|
|
13
|
-
"comet/
|
|
14
|
-
"comet/
|
|
15
|
-
"comet/
|
|
16
|
-
"comet/
|
|
17
|
-
"comet/
|
|
18
|
-
"comet/
|
|
19
|
-
"comet/
|
|
15
|
+
"comet-any/SKILL.md",
|
|
16
|
+
"comet-any/reference/authoring-subagents.md",
|
|
17
|
+
"comet-any/reference/authored-zone-example.md",
|
|
18
|
+
"comet-any/reference/bundle-authoring.md",
|
|
19
|
+
"comet-any/reference/eval-provider.md",
|
|
20
|
+
"comet-any/reference/subagents/script-author.md",
|
|
21
|
+
"comet-any/reference/subagents/reference-author.md",
|
|
22
|
+
"comet-any/reference/subagents/workflow-entry-author.md",
|
|
23
|
+
"comet-any/reference/subagents/skill-core-author.md",
|
|
24
|
+
"comet-any/reference/subagents/pause-points-author.md",
|
|
25
|
+
"comet-any/reference/subagents/skill-reviewer.md",
|
|
26
|
+
"comet/scripts/comet-runtime.mjs",
|
|
27
|
+
"comet/scripts/comet-env.mjs",
|
|
28
|
+
"comet/scripts/comet-guard.mjs",
|
|
29
|
+
"comet/scripts/comet-state.mjs",
|
|
30
|
+
"comet/scripts/comet-handoff.mjs",
|
|
31
|
+
"comet/scripts/comet-archive.mjs",
|
|
32
|
+
"comet/scripts/comet-yaml-validate.mjs",
|
|
33
|
+
"comet/scripts/comet-hook-guard.mjs",
|
|
34
|
+
"comet/scripts/comet-intent.mjs",
|
|
20
35
|
"comet-open/SKILL.md",
|
|
21
36
|
"comet-design/SKILL.md",
|
|
22
37
|
"comet-build/SKILL.md",
|
|
@@ -25,17 +40,23 @@
|
|
|
25
40
|
"comet-hotfix/SKILL.md",
|
|
26
41
|
"comet-tweak/SKILL.md"
|
|
27
42
|
],
|
|
43
|
+
"internalSkills": [
|
|
44
|
+
"comet/runtime/classic/skill.yaml",
|
|
45
|
+
"comet/runtime/classic/guardrails.yaml",
|
|
46
|
+
"comet/runtime/classic/checks.yaml"
|
|
47
|
+
],
|
|
28
48
|
"rules": [
|
|
29
|
-
"comet/rules/comet-phase-guard.md"
|
|
49
|
+
"comet/rules/comet-phase-guard.md",
|
|
50
|
+
"comet/rules/comet-phase-guard.en.md"
|
|
30
51
|
],
|
|
31
52
|
"hooks": {
|
|
32
|
-
"comet/scripts/comet-hook-guard.
|
|
53
|
+
"comet/scripts/comet-hook-guard.mjs": {
|
|
33
54
|
"matcher": "Write|Edit",
|
|
34
55
|
"description": "Block code writes in wrong Comet phase (open/design/archive)"
|
|
35
56
|
}
|
|
36
57
|
},
|
|
37
58
|
"languages": [
|
|
38
|
-
{ "id": "en", "name": "English", "skillsDir": "skills" },
|
|
39
|
-
{ "id": "zh", "name": "中文", "skillsDir": "skills-zh" }
|
|
59
|
+
{ "id": "en", "name": "English", "skillsDir": "skills", "artifactLanguage": "en" },
|
|
60
|
+
{ "id": "zh", "name": "中文", "skillsDir": "skills-zh", "artifactLanguage": "zh-CN" }
|
|
40
61
|
]
|
|
41
62
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: comet
|
|
3
|
-
description: "
|
|
3
|
+
description: "Use when the user wants to start or resume a Comet workflow and route by active change, .comet.yaml, and hotfix/tweak intent."
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
# Comet — OpenSpec + Superpowers Dual-Star Development Workflow
|
|
@@ -22,23 +22,67 @@ Agents need only read this section for decision-making. Refer to the Reference A
|
|
|
22
22
|
|
|
23
23
|
### Output Language Rule
|
|
24
24
|
|
|
25
|
-
Use the language
|
|
25
|
+
Use the configured Comet artifact language as the output language for every OpenSpec and Superpowers artifact. The configured value is a normalized language id, `en` or `zh-CN`. For an existing change, read `language` from `openspec/changes/<name>/.comet.yaml` using `"$COMET_BASH" "$COMET_STATE" get <name> language`. Before `.comet.yaml` exists, read `language` from `.comet/config.yaml`; if neither exists, fall back to the current user request language. Include the resolved language explicitly in every prompt or ARGUMENTS passed to external OpenSpec/Superpowers skills.
|
|
26
26
|
|
|
27
27
|
### Automatic Phase Detection
|
|
28
28
|
|
|
29
|
-
**Step 0: Active Change Discovery and Intent
|
|
29
|
+
**Step 0: Active Change Discovery and Intent Resolution**
|
|
30
|
+
|
|
31
|
+
1. First load script locations through `comet/reference/scripts.md` and ensure `$COMET_INTENT` is available.
|
|
32
|
+
2. Run `openspec list --json` to collect active changes.
|
|
33
|
+
3. Fill a `CometIntentFrame` from the user request, active change list, and necessary repository state.
|
|
34
|
+
4. Prefer `node "$COMET_INTENT" route --stdin` to pass the frame JSON and get the runtime-normalized route. `CometIntentFrame + runtime scorer` is the source of truth; this prose is only for intent recognition slot extraction.
|
|
35
|
+
5. Handle the runtime route:
|
|
36
|
+
- `hotfix` → invoke `/comet-hotfix`
|
|
37
|
+
- `tweak` → invoke `/comet-tweak`
|
|
38
|
+
- `full` → follow the active-change table to invoke `/comet-open` or ask for confirmation
|
|
39
|
+
- `resume` → continue to Step 1 and read the selected change `.comet.yaml`
|
|
40
|
+
- `ask_user` → pause through `comet/reference/decision-point.md` and wait for the user's choice
|
|
41
|
+
- `out_of_scope` → explain that the input is not a Comet workflow start/resume request and do not initialize a change
|
|
42
|
+
|
|
43
|
+
**Minimal CometIntentFrame Skeleton**:
|
|
44
|
+
|
|
45
|
+
```json
|
|
46
|
+
{
|
|
47
|
+
"schema_version": "comet.intent.v1",
|
|
48
|
+
"utterance": "<user request>",
|
|
49
|
+
"intent": { "name": "start_change", "confidence": 0.8 },
|
|
50
|
+
"slots": {
|
|
51
|
+
"requested_action": "start",
|
|
52
|
+
"workflow_candidate": "full",
|
|
53
|
+
"user_explicit_workflow": null,
|
|
54
|
+
"change_id": null,
|
|
55
|
+
"existing_behavior": null,
|
|
56
|
+
"new_capability": null,
|
|
57
|
+
"public_api_change": null,
|
|
58
|
+
"schema_change": null,
|
|
59
|
+
"cross_module_change": null
|
|
60
|
+
},
|
|
61
|
+
"context": {
|
|
62
|
+
"active_changes_count": 0,
|
|
63
|
+
"active_change_names": []
|
|
64
|
+
},
|
|
65
|
+
"evidence": [],
|
|
66
|
+
"proposed_route": {
|
|
67
|
+
"name": "ask_user",
|
|
68
|
+
"confidence": 0.5
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
```
|
|
30
72
|
|
|
31
|
-
|
|
32
|
-
|
|
73
|
+
**Intent Recognition Slot Extraction**:
|
|
74
|
+
See `comet/reference/intent-frame.md` for complete field meanings; normal routing only needs the minimal skeleton above.
|
|
33
75
|
|
|
34
|
-
|
|
35
|
-
- User explicitly describes a
|
|
36
|
-
-
|
|
37
|
-
-
|
|
76
|
+
- `fix_bug` + `existing_behavior: true` + no new capability/public API/schema/cross-module signal → prefer `hotfix`
|
|
77
|
+
- User explicitly describes a lightweight/medium change that can fit in a single OpenSpec change, should be executed through OpenSpec apply, and does not need full `/comet` deep design/plan → prefer `tweak`
|
|
78
|
+
- Copy, config, docs, prompt, or a lightweight/medium single OpenSpec change → prefer `tweak`
|
|
79
|
+
- New capability, public API, schema change, cross-module coordination, or architecture work → prefer `full`
|
|
80
|
+
- Multiple active changes without an explicit change → `ask_user`
|
|
81
|
+
- Low confidence, missing key evidence, or explicit workflow conflicting with risk signals → `ask_user`
|
|
38
82
|
|
|
39
83
|
| Active changes | User input | Behavior |
|
|
40
84
|
|----------------|------------|----------|
|
|
41
|
-
| None |
|
|
85
|
+
| None | `full` route | → Invoke `/comet-open` |
|
|
42
86
|
| Exactly 1 | `/comet <description>` | → **Ask**: continue this change or create a new change |
|
|
43
87
|
| Multiple | `/comet <description>` | → **Ask**: continue existing or create new; if continuing, list changes for selection |
|
|
44
88
|
| Exactly 1 | `/comet` with no description | → Auto-select, enter Step 1 |
|
|
@@ -57,16 +101,16 @@ Prefer reading `openspec/changes/<name>/.comet.yaml`. If not available, fall bac
|
|
|
57
101
|
**Resume rules**:
|
|
58
102
|
- On every context resume, rerun Step 0 and Step 1; do not trust conversation history for phase detection
|
|
59
103
|
- If there is an active change and the worktree has uncommitted changes, handle them through `comet/reference/dirty-worktree.md`. That protocol defines checks, attribution, and prohibitions; this file does not repeat them
|
|
60
|
-
- If `phase: build`, first check `build_pause`, `plan`, `build_mode`, and `
|
|
61
|
-
- If `build_pause: plan-ready` but `isolation` and `
|
|
62
|
-
- If `build_pause: plan-ready` and the plan file exists, but `isolation` or `
|
|
104
|
+
- If `phase: build`, first check `build_pause`, `plan`, `isolation`, `build_mode`, `tdd_mode`, and `review_mode` (see details below):
|
|
105
|
+
- If `build_pause: plan-ready` but `isolation`, `build_mode`, `tdd_mode`, and `review_mode` are all already set, treat as stale pause: first output `[COMET] Detected stale pause (build_pause=plan-ready but isolation/build_mode/tdd_mode/review_mode are set), auto-clearing and continuing`, then run `node "$COMET_STATE" set <name> build_pause null`, then read the next unchecked task from tasks.md and resume execution per `build_mode`
|
|
106
|
+
- If `build_pause: plan-ready` and the plan file exists, but `isolation`, `build_mode`, `tdd_mode`, or `review_mode` is not yet set, return to the `/comet-build` plan-ready resume point, prompt the user to complete/confirm workspace isolation, execution method, TDD mode, and code review mode, and do not regenerate the plan
|
|
63
107
|
- If `build_pause: plan-ready` but the plan file is missing, return to `/comet-build` to handle corrupted state or regenerate the plan
|
|
64
|
-
- If `build_mode`, `
|
|
108
|
+
- If `isolation`, `build_mode`, `tdd_mode`, or `review_mode` is unset, return to the corresponding `/comet-build` step to supplement before executing
|
|
65
109
|
- If all are set, read the next unchecked task from tasks.md and continue:
|
|
66
110
|
- If `build_mode: subagent-driven-development`, do not execute tasks directly in the main window; return to `/comet-build`'s background subagent dispatch rules, main window only coordinates
|
|
67
111
|
- Other execution modes follow `/comet-build`'s corresponding rules
|
|
68
|
-
- If `phase: verify` and `verify_result: fail`, enter the verification failure decision blocking point: pause and ask the user to fix or accept deviation; only after the user chooses fix, run `
|
|
69
|
-
- If `phase: open` but proposal/design/tasks are complete, first run `
|
|
112
|
+
- If `phase: verify` and `verify_result: fail`, enter the verification failure decision blocking point: pause and ask the user to fix or accept deviation; only after the user chooses fix, run `node "$COMET_STATE" transition <name> verify-fail` and invoke `/comet-build`
|
|
113
|
+
- If `phase: open` but proposal/design/tasks are complete, first run `node "$COMET_GUARD" <change-name> open --apply` to repair state, then continue detection
|
|
70
114
|
- If `phase: archive`, only invoke `/comet-archive`; `/comet-archive` must first wait for final archive confirmation. After archive succeeds, the change moves to the archive directory, so do not run guard against the old active directory
|
|
71
115
|
|
|
72
116
|
**Step 2: Phase Determination** (check in order, first match wins)
|
|
@@ -82,22 +126,19 @@ Prefer reading `openspec/changes/<name>/.comet.yaml`. If not available, fall bac
|
|
|
82
126
|
|
|
83
127
|
If metadata conflicts with file state, use verifiable file state as source of truth and correct `.comet.yaml` before continuing.
|
|
84
128
|
|
|
85
|
-
### Preset Upgrade
|
|
129
|
+
### Preset Upgrade Assessment
|
|
130
|
+
|
|
131
|
+
hotfix/tweak scope assessment uses a three-layer division of labor, avoiding "using pure file count as a hard upgrade condition" that wrongly blocks normal small changes:
|
|
86
132
|
|
|
87
|
-
**
|
|
88
|
-
-
|
|
89
|
-
-
|
|
90
|
-
- Database schema changes
|
|
91
|
-
- Fix introduces new public API
|
|
92
|
-
- Fix scope exceeds a single function/module
|
|
133
|
+
1. **Qualitative-change signals** (agent semantic recognition; hitting any one pauses and delegates a two-choice decision to the user): cross-module coordinated change, new capability needed, database schema change, introduces new public API, hits deep architecture issues (each preset reuses this core signal set and may add its own context-specific signal, such as tweak's "needing to split into multiple OpenSpec changes")
|
|
134
|
+
2. **File-count tripwire** (user decides; not an automatic upgrade): when changed files exceed a hint threshold, pause and let the user decide whether to continue the preset or upgrade to full; do not auto-kick
|
|
135
|
+
3. **Verification weight** (scale script decides): `comet-state scale` only decides `verify_mode` (verification weight); it does not block the flow or trigger an upgrade
|
|
93
136
|
|
|
94
|
-
**
|
|
95
|
-
-
|
|
96
|
-
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
- New capability needed
|
|
100
|
-
- Delta spec needed (existing spec affected)
|
|
137
|
+
**Upgrade decision point (user chooses one of two)**:
|
|
138
|
+
- Continue the preset lightweight flow (user confirms scope is manageable)
|
|
139
|
+
- Upgrade to full `/comet` (use `node "$COMET_STATE" transition <name> preset-escalate` to legally rewind to the design phase, supplementing Design Doc and Superpowers plan)
|
|
140
|
+
|
|
141
|
+
See the "Upgrade Assessment" section of each `comet-hotfix` / `comet-tweak` for detailed rules.
|
|
101
142
|
|
|
102
143
|
### Error Handling Quick Reference
|
|
103
144
|
|
|
@@ -105,7 +146,7 @@ If metadata conflicts with file state, use verifiable file state as source of tr
|
|
|
105
146
|
|----------|----------|
|
|
106
147
|
| `openspec list --json` fails | Check if openspec is installed, prompt user to run `openspec init` |
|
|
107
148
|
| Sub-skill unavailable | Stop workflow, prompt to install or enable the corresponding skill |
|
|
108
|
-
| `.comet.yaml` malformed or missing | Use file state as source of truth, correct with `
|
|
149
|
+
| `.comet.yaml` malformed or missing | Use file state as source of truth, correct with `node "$COMET_STATE" set` then continue |
|
|
109
150
|
| Build/test fails | Return to build phase for fixes, do not enter verify |
|
|
110
151
|
| Incomplete change directory structure | Fill missing files according to `comet-open` artifact requirements |
|
|
111
152
|
|
|
@@ -118,18 +159,18 @@ Flow chain: open → design → build → verify → archive
|
|
|
118
159
|
|
|
119
160
|
**Continuous execution requirement**: starting from the detected phase, the agent automatically continues through all later phases. But **auto-advancing only applies at transition points without user decisions**. When encountering user decision points, **must use the current platform's available user input/confirmation mechanism to pause and wait for the user's explicit response**. Must not use recommendation rules, defaults, or historical preferences to substitute for user confirmation, and must not just output a text prompt and then continue executing.
|
|
120
161
|
|
|
121
|
-
**Distinguish phase advancement vs automatic handoff**: each sub-skill runs phase guard `--apply` before exit to advance the `.comet.yaml` `phase` field. This step **always happens** and is not controlled by `auto_transition`. After that, the sub-skill runs `
|
|
162
|
+
**Distinguish phase advancement vs automatic handoff**: each sub-skill runs phase guard `--apply` before exit to advance the `.comet.yaml` `phase` field. This step **always happens** and is not controlled by `auto_transition`. After that, the sub-skill runs `node "$COMET_STATE" next <name>` to resolve the next action: when `auto_transition` is not `false`, output is `NEXT: auto` (auto-invoke next skill); when `auto_transition` is `false`, output is `NEXT: manual` (do not invoke next skill, show a manual run hint). Therefore `auto_transition` **only controls next skill invocation, not phase advancement**. Regardless of `auto_transition`, user decision points below remain blocking.
|
|
122
163
|
|
|
123
164
|
**Decision points are blocking points**: whenever reaching any of the following nodes, the current `/comet` invocation must stop, and follow the `comet/reference/decision-point.md` protocol to obtain the user's explicit choice. Only after the user explicitly chooses can the corresponding state fields be written and operations executed, then auto-advance resumes.
|
|
124
165
|
|
|
125
166
|
Nodes requiring user participation (pause only at these nodes):
|
|
126
167
|
1. Open phase proposal/design/tasks review and confirmation
|
|
127
168
|
2. Confirm design approach during brainstorming
|
|
128
|
-
3. Plan-ready pause choice during build phase, followed by workflow configuration selection (isolation + execution method + TDD mode)
|
|
169
|
+
3. Plan-ready pause choice during build phase, followed by workflow configuration selection (workspace isolation + execution method + TDD mode + code review mode)
|
|
129
170
|
4. Decide to fix or accept deviation when verify fails (including Spec drift handling)
|
|
130
171
|
5. Choose branch handling method for finishing-branch
|
|
131
172
|
6. Archive phase final confirmation before running the archive script
|
|
132
|
-
7. Encounter upgrade
|
|
173
|
+
7. Encounter an upgrade-assessment signal (hotfix/tweak → user chooses one of two: continue preset / upgrade to full workflow)
|
|
133
174
|
8. Build phase scope expansion requiring redesign or new change split
|
|
134
175
|
9. Open phase large PRD requiring confirmation to split into multiple changes
|
|
135
176
|
|
|
@@ -158,7 +199,7 @@ Agents should not skip these decision points; other unambiguous phase transition
|
|
|
158
199
|
| `/comet-verify` | 4. Verify and Close | Both | Verification report, branch handling |
|
|
159
200
|
| `/comet-archive` | 5. Archive | OpenSpec | delta→main spec sync, design doc markup, archive |
|
|
160
201
|
| `/comet-hotfix` | Preset path | Both | Quick fix (skip brainstorming) |
|
|
161
|
-
| `/comet-tweak` | Preset path | Both |
|
|
202
|
+
| `/comet-tweak` | Preset path | Both | OpenSpec-chained medium change (delta spec is first-class, skip brainstorming and full plan) |
|
|
162
203
|
|
|
163
204
|
```
|
|
164
205
|
/comet
|
|
@@ -168,11 +209,11 @@ Agents should not skip these decision points; other unambiguous phase transition
|
|
|
168
209
|
|
|
169
210
|
/comet-hotfix (preset, skip brainstorming)
|
|
170
211
|
open ──→ build ──→ verify ──→ archive
|
|
171
|
-
↑
|
|
212
|
+
↑ Upgrade-assessment signal hit → user chooses one of two (continue preset / upgrade full) → if upgrade, transition preset-escalate → supplement Design Doc → return to full workflow
|
|
172
213
|
|
|
173
|
-
/comet-tweak (preset,
|
|
174
|
-
open ──→
|
|
175
|
-
↑
|
|
214
|
+
/comet-tweak (lightweight preset, chains OpenSpec, delta spec is first-class)
|
|
215
|
+
open ──→ build ──→ verify ──→ archive
|
|
216
|
+
↑ Upgrade-assessment signal hit → user chooses one of two (continue preset / upgrade full) → if upgrade, transition preset-escalate → supplement Design Doc → return to full workflow
|
|
176
217
|
```
|
|
177
218
|
|
|
178
219
|
---
|
|
@@ -185,9 +226,10 @@ Agents should not skip these decision points; other unambiguous phase transition
|
|
|
185
226
|
- Before `build → verify`, `build_mode` must be selected
|
|
186
227
|
- `build_mode: subagent-driven-development` must also have `subagent_dispatch: confirmed`
|
|
187
228
|
- Before full workflow leaves build phase, `tdd_mode` must be selected as `tdd` or `direct`
|
|
229
|
+
- Before full workflow leaves build phase, `review_mode` must be selected as `off`, `standard`, or `thorough`
|
|
188
230
|
- `build_mode: direct` is allowed by default only for `hotfix` / `tweak`; full workflow requires `direct_override: true`
|
|
189
231
|
- `build_pause` is not an execution method and must not be written to `build_mode`
|
|
190
|
-
- These constraints are enforced by both `comet-guard.
|
|
232
|
+
- These constraints are enforced by both `comet-guard.mjs build --apply` and `comet-state.mjs transition <name> build-complete`
|
|
191
233
|
|
|
192
234
|
### .comet.yaml Field Reference
|
|
193
235
|
|
|
@@ -215,68 +257,11 @@ See `comet/reference/debug-gate.md` for the complete debug gate protocol.
|
|
|
215
257
|
|
|
216
258
|
### Script Location
|
|
217
259
|
|
|
218
|
-
Comet scripts are distributed in `comet/scripts/`. **Do not hardcode paths** — locate once, cache in env vars.
|
|
260
|
+
Comet scripts are distributed in `comet/scripts/`. **Do not hardcode paths** — locate once, cache in env vars. The full bootstrap block, command reference (`--apply`, `transition`, `next`, `archive`), and output formats live in `comet/reference/scripts.md`. Run that bootstrap once per session, then reuse `$COMET_GUARD`, `$COMET_STATE`, `$COMET_HANDOFF`, `$COMET_ARCHIVE`, `$COMET_RUNTIME` throughout. Key entry points:
|
|
219
261
|
|
|
220
262
|
```bash
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
fi
|
|
226
|
-
. "$COMET_ENV"
|
|
227
|
-
|
|
228
|
-
# Stop workflow when script location fails
|
|
229
|
-
if [ -z "$COMET_GUARD" ] || [ -z "$COMET_STATE" ] || [ -z "$COMET_HANDOFF" ] || [ -z "$COMET_ARCHIVE" ]; then
|
|
230
|
-
echo "ERROR: Comet scripts not found. Ensure the comet skill is installed." >&2
|
|
231
|
-
echo "Expected path pattern: */comet/scripts/comet-*.sh under project or platform skill directories" >&2
|
|
232
|
-
return 1
|
|
233
|
-
fi
|
|
263
|
+
node "$COMET_GUARD" <change-name> <phase> --apply # phase guard + auto state update
|
|
264
|
+
node "$COMET_STATE" transition <change-name> <event> # open-complete | design-complete | build-complete | verify-pass | verify-fail
|
|
265
|
+
node "$COMET_STATE" next <change-name> # NEXT: auto|manual|done + SKILL: <skill-name>; auto_transition:false → manual, which pauses only the next skill invocation and does not block phase updates
|
|
266
|
+
node "$COMET_ARCHIVE" <change-name> # full archive in one command
|
|
234
267
|
```
|
|
235
|
-
|
|
236
|
-
**Auto state update**: Guard supports `--apply` flag, automatically updating `.comet.yaml` state fields after checks pass:
|
|
237
|
-
|
|
238
|
-
```bash
|
|
239
|
-
"$COMET_BASH" "$COMET_GUARD" <change-name> <phase> --apply
|
|
240
|
-
```
|
|
241
|
-
|
|
242
|
-
`--apply` delegates to `comet-state transition`. Use these semantic events when state changes need to be expressed directly:
|
|
243
|
-
|
|
244
|
-
```bash
|
|
245
|
-
"$COMET_BASH" "$COMET_STATE" transition <change-name> open-complete
|
|
246
|
-
"$COMET_BASH" "$COMET_STATE" transition <change-name> design-complete
|
|
247
|
-
"$COMET_BASH" "$COMET_STATE" transition <change-name> build-complete
|
|
248
|
-
"$COMET_BASH" "$COMET_STATE" transition <change-name> verify-pass
|
|
249
|
-
"$COMET_BASH" "$COMET_STATE" transition <change-name> verify-fail
|
|
250
|
-
"$COMET_BASH" "$COMET_STATE" transition <archive-name> archived
|
|
251
|
-
```
|
|
252
|
-
|
|
253
|
-
**Resolve next action**: after guard-based phase advancement, use the `next` subcommand to determine whether to auto-invoke the next skill:
|
|
254
|
-
|
|
255
|
-
```bash
|
|
256
|
-
"$COMET_BASH" "$COMET_STATE" next <change-name>
|
|
257
|
-
```
|
|
258
|
-
|
|
259
|
-
Output format: `NEXT: auto|manual|done` + `SKILL: <skill-name>` (omitted for `done`) + `HINT` (for `manual` only). With `auto_transition: false`, output is `manual`, which pauses only the next skill invocation and does not block phase updates.
|
|
260
|
-
|
|
261
|
-
**Archive script**: Complete all archive steps in one command:
|
|
262
|
-
|
|
263
|
-
```bash
|
|
264
|
-
"$COMET_BASH" "$COMET_ARCHIVE" <change-name>
|
|
265
|
-
```
|
|
266
|
-
|
|
267
|
-
After loading comet, agents should run the variable assignments above once, then reuse `$COMET_GUARD`, `$COMET_STATE`, `$COMET_HANDOFF`, `$COMET_ARCHIVE` throughout the session.
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
### Best Practices
|
|
271
|
-
|
|
272
|
-
1. **brainstorming cannot be skipped** — Every change must undergo deep design (except hotfix and tweak)
|
|
273
|
-
2. **delta spec is a living document** — Freely modify during phase 3, sync at archive
|
|
274
|
-
3. **Handoff packages are generated by scripts** — OpenSpec → Superpowers context must be generated through `comet-handoff.sh` as compact traceable excerpts (use `--full` when needed), and validated by guard for source/hash/mode
|
|
275
|
-
4. **Keep tasks.md in sync** — Check off each completed task
|
|
276
|
-
5. **Commit frequently** — One commit per task, message reflects design intent
|
|
277
|
-
6. **Verify before archive confirmation** — Enter `/comet-archive` only after `/comet-verify` passes, but wait for final user confirmation before running the archive script
|
|
278
|
-
7. **Classify incremental updates** — Small edits, medium brainstorming, large new changes
|
|
279
|
-
8. **Plan must associate with change** — File header contains `change:` and `design-doc:` metadata
|
|
280
|
-
9. **Archive closure** — design doc and plan must mark `archived-with` status
|
|
281
|
-
10. **Modifying existing features** — Just open a new change
|
|
282
|
-
11. **Preset has limits** — Switch to full workflow promptly when hotfix/tweak meet upgrade conditions
|
|
@@ -13,7 +13,7 @@ This protocol is shared by all comet sub-skills. It defines the automatic handof
|
|
|
13
13
|
After exit conditions are met and the phase guard has advanced phase, run:
|
|
14
14
|
|
|
15
15
|
```bash
|
|
16
|
-
|
|
16
|
+
node "$COMET_STATE" next <change-name>
|
|
17
17
|
```
|
|
18
18
|
|
|
19
19
|
The script outputs a deterministic next step based on `phase`, `workflow`, and `auto_transition`:
|
|
@@ -8,6 +8,7 @@ This file is the field reference for the `.comet.yaml` state file. Consult on de
|
|
|
8
8
|
|
|
9
9
|
```yaml
|
|
10
10
|
workflow: full
|
|
11
|
+
language: en
|
|
11
12
|
phase: build
|
|
12
13
|
design_doc: docs/superpowers/specs/YYYY-MM-DD-topic-design.md
|
|
13
14
|
plan: docs/superpowers/plans/YYYY-MM-DD-feature.md
|
|
@@ -16,6 +17,8 @@ build_mode: subagent-driven-development
|
|
|
16
17
|
build_pause: null
|
|
17
18
|
subagent_dispatch: confirmed
|
|
18
19
|
tdd_mode: tdd
|
|
20
|
+
review_mode: standard
|
|
21
|
+
auto_transition: true
|
|
19
22
|
isolation: branch
|
|
20
23
|
verify_mode: light
|
|
21
24
|
verify_result: pending
|
|
@@ -31,14 +34,16 @@ archived: false
|
|
|
31
34
|
| Field | Meaning |
|
|
32
35
|
|-------|---------|
|
|
33
36
|
| `workflow` | `full`, `hotfix`, or `tweak` |
|
|
37
|
+
| `language` | Artifact language, `en` or `zh-CN`. Written to `.comet/config.yaml` by `comet init`, snapshotted into `.comet.yaml` when a change is created, and used as the main-language constraint for OpenSpec / Superpowers artifacts |
|
|
34
38
|
| `phase` | Current phase: `open`, `design`, `build`, `verify`, `archive` (init sets `open`; guard handles transitions) |
|
|
35
39
|
| `design_doc` | Associated Superpowers Design Doc path; may be empty |
|
|
36
40
|
| `plan` | Associated Superpowers Plan path; may be empty |
|
|
37
41
|
| `base_ref` | Git commit SHA recorded at init for scale assessment. Used as baseline for changed-file counting when no plan exists |
|
|
38
|
-
| `build_mode` | Selected execution mode; may be empty |
|
|
42
|
+
| `build_mode` | Selected execution mode; may be empty. Values: `subagent-driven-development` (isolated background subagents implement and review each task), `executing-plans` (main session executes sequentially by plan), `direct` (main session codes directly; allowed by default only for hotfix/tweak, full workflow requires `direct_override: true`) |
|
|
39
43
|
| `build_pause` | Build phase internal pause point. `null` = no pause, `plan-ready` = plan generated, paused for user model switch |
|
|
40
44
|
| `subagent_dispatch` | `null` or `confirmed`. Only when the platform's real background subagent/Task/multi-agent dispatch capability is confirmed may `build_mode: subagent-driven-development` be written and used to leave the build phase |
|
|
41
45
|
| `tdd_mode` | `tdd` or `direct`. Full workflow must select before leaving build. `tdd` forces write-failing-test-first per task; `direct` skips TDD enforcement. hotfix/tweak default to `direct` |
|
|
46
|
+
| `review_mode` | `off`, `standard`, or `thorough`. Full workflow must select before leaving build; hotfix/tweak default to `off` |
|
|
42
47
|
| `isolation` | `branch` or `worktree`, workspace isolation mode. Full init may be `null` but only until `/comet-build` Step 3; hotfix/tweak default to `branch` |
|
|
43
48
|
| `verify_mode` | `light` or `full`; may be empty |
|
|
44
49
|
| `auto_transition` | `true` or `false`. Only controls whether to automatically invoke the next skill after phase guard advances phase; `false` outputs `manual` from `comet-state next`, pausing next-skill invocation but not blocking phase field updates |
|
|
@@ -54,8 +59,8 @@ archived: false
|
|
|
54
59
|
| Field | Meaning |
|
|
55
60
|
|-------|---------|
|
|
56
61
|
| `direct_override` | `true`/`false`. Full workflow must explicitly set to `true` to use `build_mode: direct` |
|
|
57
|
-
| `build_command` | Project build command. Guard runs this first;
|
|
58
|
-
| `verify_command` | Project verify command. Verify guard runs this first; falls back to build command when unset |
|
|
62
|
+
| `build_command` | Project build command. Guard runs this first; supports restricted command words/quotes/paths plus `&&` sequential steps; rejects `;`, pipes, bare `&`, `$`, and backticks |
|
|
63
|
+
| `verify_command` | Project verify command. Verify guard runs this first; same restricted command grammar as `build_command`; falls back to build command when unset |
|
|
59
64
|
|
|
60
65
|
## State Machine Hard Constraints
|
|
61
66
|
|
|
@@ -63,6 +68,8 @@ archived: false
|
|
|
63
68
|
- Before `build → verify`, `build_mode` must be selected
|
|
64
69
|
- `build_mode: subagent-driven-development` requires `subagent_dispatch: confirmed`
|
|
65
70
|
- Full workflow must select `tdd_mode` as `tdd` or `direct` before leaving build
|
|
71
|
+
- Full workflow must select `review_mode` as `off`, `standard`, or `thorough` before leaving build
|
|
66
72
|
- `build_mode: direct` defaults to `hotfix`/`tweak` only; full workflow requires `direct_override: true`
|
|
67
73
|
- `build_pause` is not an execution mode; must not be written to `build_mode`
|
|
68
|
-
- These constraints exist in both `comet-guard.
|
|
74
|
+
- These constraints exist in both `comet-guard.mjs build --apply` and `comet-state.mjs transition <name> build-complete`
|
|
75
|
+
- `preset-escalate` event: only allows `hotfix`/`tweak` workflow at `phase: build`; atomically sets `workflow`/`classic_profile` to `full`, rewinds `phase` to `design`, and clears `design_doc` (satisfying the comet-design entry requirement). This is the only legal channel for a preset → full upgrade — direct `set phase design` is hard-blocked by the state machine, and `set classic_profile` is a machine-owned field that cannot be set manually
|
|
@@ -4,10 +4,20 @@ Canonical path: `comet/reference/context-recovery.md`
|
|
|
4
4
|
|
|
5
5
|
This protocol is shared by all comet sub-skills that may trigger context compression. When the agent suspects context compression has occurred (previous conversation summarized, cannot find previously discussed content), follow this protocol to recover.
|
|
6
6
|
|
|
7
|
+
## Any-Entry Recovery Principle
|
|
8
|
+
|
|
9
|
+
The user may resume the workflow directly from `/comet-open`, `/comet-design`, `/comet-build`, `/comet-verify`, `/comet-archive`, `/comet-hotfix`, or `/comet-tweak`. On entry to any sub-skill, first locate scripts via `comet/reference/scripts.md`, then run the entry check or recovery check for that sub-skill's phase. Do not infer phase from conversation history.
|
|
10
|
+
|
|
11
|
+
```bash
|
|
12
|
+
node "$COMET_STATE" check <change-name> <phase> --recover
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
If the check shows the actual phase, workflow, or evidence belongs to another skill, switch according to script output and `/comet` routing rules; do not keep writing state in the wrong phase. If the worktree has uncommitted changes, attribute them first via `comet/reference/dirty-worktree.md`.
|
|
16
|
+
|
|
7
17
|
## Recovery Steps
|
|
8
18
|
|
|
9
19
|
```bash
|
|
10
|
-
|
|
20
|
+
node "$COMET_STATE" check <change-name> <phase> --recover
|
|
11
21
|
```
|
|
12
22
|
|
|
13
23
|
The script outputs structured recovery context (phase, completed fields, pending fields, recovery action). Follow the **Recovery action** output for next steps.
|
|
@@ -21,7 +31,7 @@ If the recovery script outputs `build_mode: subagent-driven-development`:
|
|
|
21
31
|
3. Read `openspec/changes/<name>/.comet/subagent-progress.md` to recover the current task or final review, implementation commit, RED/GREEN evidence, passed reviews, unresolved feedback, and review-fix round
|
|
22
32
|
4. Do not execute tasks directly in the main session
|
|
23
33
|
5. Resume from the checkpoint's exact stage; begin implementer dispatch for the first unchecked task only when the checkpoint is missing or mismatched
|
|
24
|
-
6. After
|
|
34
|
+
6. After `review_mode` validation and targeted checkoff verification pass, immediately continue to the next task without summarizing or asking whether to continue
|
|
25
35
|
|
|
26
36
|
## Design Phase Special Recovery
|
|
27
37
|
|
|
@@ -14,4 +14,20 @@ This protocol is shared by comet sub-skills that directly modify code, including
|
|
|
14
14
|
1. Reproduce and locate the root cause first by reading the full error, checking recent changes, and tracing data flow
|
|
15
15
|
2. If the root cause is a source bug, first add a minimal failing test that reproduces the crash or unexpected behavior, then modify the source
|
|
16
16
|
3. After the fix, run that failing test, related tests, and the project's build or verification commands until all pass
|
|
17
|
-
4. Keep the test, the source fix, and the tasks.md checkoff in the current change; do not replace the current change verification loop by starting a separate “write test cases” change
|
|
17
|
+
4. Keep the test, the source fix, and the tasks.md checkoff in the current change; do not replace the current change verification loop by starting a separate “write test cases” change
|
|
18
|
+
|
|
19
|
+
## Parallel Investigation of Multiple Failures
|
|
20
|
+
|
|
21
|
+
Before entering the four-stage flow, run a failure-independence assessment to decide serial vs. parallel investigation:
|
|
22
|
+
|
|
23
|
+
- **No parallelism (keep existing serial `systematic-debugging`)**: ≤ 2 failures; failures are related (fixing one might fix others); shared state; would touch the same set of files; failure independence not yet established
|
|
24
|
+
- **Parallel (load the Superpowers `dispatching-parallel-agents` skill)**: ≥ 3 failures from distinct problem domains (different test files with different root causes, different subsystems broken independently), mutually independent and non-interfering
|
|
25
|
+
|
|
26
|
+
When parallel conditions are met:
|
|
27
|
+
|
|
28
|
+
1. Immediately use the Skill tool to load the Superpowers `dispatching-parallel-agents` skill
|
|
29
|
+
2. Dispatch one background investigation agent per independent failure, grouped by problem domain, with all dispatches in a single response for concurrent execution. Each agent prompt must be self-contained (specific failure, error messages, allowed investigation scope, prohibition on touching other problem domains' code)
|
|
30
|
+
3. All agents remain bound by this protocol's "no source changes before the root cause is identified" constraint; they only locate the root cause and return findings — **they do not submit fixes directly**
|
|
31
|
+
4. Once all investigations return, the main session serially consolidates findings and performs fixes; fixes still go through the current `review_mode` verification and review loop
|
|
32
|
+
|
|
33
|
+
> Parallelism applies only to **investigation**. Fixes are always serial, avoiding conflicts from multiple agents editing the same set of files at once — consistent with the `subagent-driven-development` red flag of "never dispatch multiple implementation subagents in parallel."
|
|
@@ -7,14 +7,25 @@ This protocol is shared by all comet sub-skills that contain user decision point
|
|
|
7
7
|
## Core Rules
|
|
8
8
|
|
|
9
9
|
- Decision points are blocking points. Pause and wait for an explicit user choice before continuing
|
|
10
|
-
- Use the current platform's available user input or confirmation mechanism to collect the choice
|
|
10
|
+
- Use the current platform's available user input or confirmation mechanism to collect the choice; when platforms such as Claude Code provide `AskUserQuestion`, prefer `AskUserQuestion` to present single-select or multi-select options
|
|
11
|
+
- If the current tool list does not include `AskUserQuestion`, or the first `AskUserQuestion` call fails, treat structured questions as unavailable for this session; do not repeatedly retry `AskUserQuestion` for later decision points in the same session, and use the text-options fallback directly
|
|
11
12
|
- If the current platform has no structured question tool, ask clear options in the conversation and stop until the user replies
|
|
12
13
|
- Never substitute recommendation rules, defaults, historical preferences, or “the user would probably agree” for current confirmation
|
|
13
14
|
- Do not write state fields, execute the chosen branch, or auto-continue before the user explicitly chooses
|
|
14
15
|
|
|
16
|
+
## `AskUserQuestion` Priority Strategy
|
|
17
|
+
|
|
18
|
+
When using structured questions:
|
|
19
|
+
|
|
20
|
+
- Use a single-select `AskUserQuestion` question for single-choice decision points, and a multi-select question for multi-choice decision points
|
|
21
|
+
- Each option must include a short label and impact description; recommendations may explain tradeoffs but must not auto-select
|
|
22
|
+
- If the tool call succeeds, wait for the user to answer through that question; do not also print a duplicate text option list
|
|
23
|
+
- If the tool is missing, the call fails, or the host reports an error, record that structured questions are unavailable for this session, then use the text-options fallback
|
|
24
|
+
|
|
15
25
|
## Minimum Presentation Requirements
|
|
16
26
|
|
|
17
27
|
- State what the current decision point is deciding
|
|
18
28
|
- Present clear options; when the user must pick one option, keep the options mutually exclusive and actionable
|
|
29
|
+
- In text-options fallback mode, explicitly state "single-select" or "multi-select", number the options, describe each option's impact, ask the user to reply with the option number(s), then stop until the user replies
|
|
19
30
|
- Recommendations may explain tradeoffs, but may not replace user confirmation
|
|
20
|
-
- Only execute the corresponding commands or state updates after the user chooses
|
|
31
|
+
- Only execute the corresponding commands or state updates after the user chooses
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
# CometIntentFrame Field Reference
|
|
2
|
+
|
|
3
|
+
Read this file only when field meanings are needed. Normal `/comet` routing only needs the minimal skeleton in the main Skill; the runtime fills omitted defaults and outputs the final `route`.
|
|
4
|
+
|
|
5
|
+
## Top-Level Fields
|
|
6
|
+
|
|
7
|
+
| Field | Meaning |
|
|
8
|
+
|-------|---------|
|
|
9
|
+
| `schema_version` | Frame version. Currently fixed to `comet.intent.v1`. |
|
|
10
|
+
| `utterance` | The user request that triggered `/comet`. |
|
|
11
|
+
| `intent` | High-level user intent and confidence. If confidence is below the runtime threshold, routing falls back to `ask_user`. |
|
|
12
|
+
| `slots` | Routing slots normalized from the user request. |
|
|
13
|
+
| `context` | Repository context read from local state; this is not extracted from the user utterance. |
|
|
14
|
+
| `evidence` | Evidence for key routing conclusions. Missing key evidence makes the runtime prefer `ask_user`. |
|
|
15
|
+
| `proposed_route` | Agent-submitted route candidate. Minimal input only needs `name` and `confidence`; the runtime reviews it and outputs the final `route`. |
|
|
16
|
+
|
|
17
|
+
## `intent`
|
|
18
|
+
|
|
19
|
+
| Field | Meaning |
|
|
20
|
+
|-------|---------|
|
|
21
|
+
| `intent.name` | High-level user intent: start, resume, fix bug, make tweak, ask question, or unknown. |
|
|
22
|
+
| `intent.confidence` | Agent confidence in the high-level intent. This participates in low-confidence fallback; `proposed_route.confidence` does not. |
|
|
23
|
+
|
|
24
|
+
## `slots`
|
|
25
|
+
|
|
26
|
+
| Field | Meaning |
|
|
27
|
+
|-------|---------|
|
|
28
|
+
| `requested_action` | The action the user wants, such as `start`, `resume`, `continue`, `fix`, `modify`, `create`, `verify`, `archive`, or `question`. |
|
|
29
|
+
| `workflow_candidate` | Agent-inferred candidate workflow: `full`, `hotfix`, `tweak`, or `null`. This is an inference and the runtime reviews it. |
|
|
30
|
+
| `user_explicit_workflow` | Whether the user explicitly named a workflow. If the user says "use hotfix", set `hotfix`; otherwise set `null`. Explicit workflow still falls back to `ask_user` when it conflicts with risk signals. |
|
|
31
|
+
| `change_id` | Active change name explicitly requested by the user for resume or operation. Use `null` when unspecified. |
|
|
32
|
+
| `existing_behavior` | Whether the request fixes existing behavior or a regression. `true` with no new capability/API/schema/cross-module risk tends toward `hotfix`. |
|
|
33
|
+
| `new_capability` | Whether the request adds a new capability. Usually tends toward `full`. |
|
|
34
|
+
| `public_api_change` | Whether the request changes a user-visible contract, such as CLI flags, config fields, JSON output, or public Skill flow. Usually tends toward `full`. |
|
|
35
|
+
| `schema_change` | Whether the request changes structured data formats, such as `.comet.yaml`, `run-state.json`, eval manifests, bundle manifests, or config schema. Usually tends toward `full`. |
|
|
36
|
+
| `cross_module_change` | Whether the request crosses module or workflow boundaries. Usually tends toward `full`. |
|
|
37
|
+
| `target_area` | Optional explanation field for the target area the user mentioned. The minimal skeleton does not need it. |
|
|
38
|
+
| `scope` | Optional explanation field for rough scope size. The current scorer does not let it drive routing by itself, and the minimal skeleton does not need it. |
|
|
39
|
+
|
|
40
|
+
## `context`
|
|
41
|
+
|
|
42
|
+
| Field | Meaning |
|
|
43
|
+
|-------|---------|
|
|
44
|
+
| `active_changes_count` | Number of unarchived active changes from `openspec list --json`. Multiple active changes without a `change_id` route to `ask_user`. |
|
|
45
|
+
| `active_change_names` | Names of active changes. When the user supplies `change_id`, the runtime checks it against this list. |
|
|
46
|
+
| `dirty_worktree` | Optional state field. The entry-route minimal skeleton does not need it; dirty worktree handling belongs to `comet/reference/dirty-worktree.md`. |
|
|
47
|
+
|
|
48
|
+
## `evidence`
|
|
49
|
+
|
|
50
|
+
Each evidence item contains:
|
|
51
|
+
|
|
52
|
+
| Field | Meaning |
|
|
53
|
+
|-------|---------|
|
|
54
|
+
| `field` | Frame field supported by the evidence, such as `intent.name` or `slots.workflow_candidate`. |
|
|
55
|
+
| `quote` | Evidence snippet from the user request, repository state, or `.comet.yaml`. |
|
|
56
|
+
| `source` | Evidence source: `user`, `repo`, or `state`. |
|
|
57
|
+
|
|
58
|
+
## `proposed_route`
|
|
59
|
+
|
|
60
|
+
| Field | Meaning |
|
|
61
|
+
|-------|---------|
|
|
62
|
+
| `name` | Agent route candidate: `full`, `hotfix`, `tweak`, `resume`, `ask_user`, or `out_of_scope`. |
|
|
63
|
+
| `confidence` | Agent confidence in the route candidate. Diagnostic only; it does not participate in low-confidence fallback. |
|
|
64
|
+
| `next_skill` | Derived field normalized by the runtime. The minimal skeleton does not need it. |
|
|
65
|
+
| `requires_confirmation` | Derived field normalized by the runtime. The minimal skeleton does not need it. |
|
|
66
|
+
| `fallback_reason` | Derived field normalized by the runtime. The minimal skeleton does not need it. |
|
|
67
|
+
|
|
68
|
+
## Routing Notes
|
|
69
|
+
|
|
70
|
+
- Existing bug, regression, or broken behavior with no new capability/API/schema/cross-module risk: prefer `hotfix`.
|
|
71
|
+
- Copy, config, docs, prompt, or lightweight/medium single OpenSpec change: prefer `tweak`.
|
|
72
|
+
- New capability, public API, schema change, cross-module coordination, or architecture work: prefer `full`.
|
|
73
|
+
- Multiple active changes without an explicit change: `ask_user`.
|
|
74
|
+
- Low confidence, missing key evidence, or explicit workflow conflicting with risk signals: `ask_user`.
|