@rpamis/comet 0.4.0-beta.4 → 0.4.0-beta.6
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 +11 -4
- package/assets/manifest.json +1 -1
- package/assets/skills/comet/SKILL.md +30 -28
- package/assets/skills/comet/reference/auto-transition.md +1 -1
- package/assets/skills/comet/reference/comet-yaml-fields.md +8 -4
- package/assets/skills/comet/reference/context-recovery.md +2 -2
- package/assets/skills/comet/reference/decision-point.md +11 -0
- package/assets/skills/comet/reference/subagent-dispatch.md +6 -5
- package/assets/skills/comet/rules/comet-phase-guard.en.md +23 -28
- package/assets/skills/comet/rules/comet-phase-guard.md +22 -28
- package/assets/skills/comet/scripts/comet-runtime.mjs +682 -309
- package/assets/skills/comet-any/SKILL.md +1 -1
- package/assets/skills/comet-any/reference/authored-zone-example.md +10 -5
- package/assets/skills/comet-any/reference/subagents/pause-points-author.md +14 -11
- package/assets/skills/comet-any/reference/subagents/skill-reviewer.md +2 -0
- package/assets/skills/comet-any/reference/subagents/workflow-entry-author.md +5 -4
- package/assets/skills/comet-archive/SKILL.md +33 -13
- package/assets/skills/comet-build/SKILL.md +37 -29
- package/assets/skills/comet-design/SKILL.md +23 -22
- package/assets/skills/comet-hotfix/SKILL.md +46 -31
- package/assets/skills/comet-open/SKILL.md +97 -58
- package/assets/skills/comet-tweak/SKILL.md +34 -19
- package/assets/skills/comet-verify/SKILL.md +37 -59
- package/assets/skills-zh/comet/SKILL.md +30 -28
- package/assets/skills-zh/comet/reference/auto-transition.md +1 -1
- package/assets/skills-zh/comet/reference/comet-yaml-fields.md +8 -4
- package/assets/skills-zh/comet/reference/context-recovery.md +2 -2
- package/assets/skills-zh/comet/reference/decision-point.md +11 -0
- package/assets/skills-zh/comet/reference/subagent-dispatch.md +6 -5
- package/assets/skills-zh/comet-any/SKILL.md +1 -1
- package/assets/skills-zh/comet-any/reference/authored-zone-example.md +10 -5
- package/assets/skills-zh/comet-any/reference/subagents/pause-points-author.md +14 -12
- package/assets/skills-zh/comet-any/reference/subagents/skill-reviewer.md +2 -0
- package/assets/skills-zh/comet-any/reference/subagents/workflow-entry-author.md +5 -4
- package/assets/skills-zh/comet-archive/SKILL.md +33 -13
- package/assets/skills-zh/comet-build/SKILL.md +37 -29
- package/assets/skills-zh/comet-design/SKILL.md +23 -22
- package/assets/skills-zh/comet-hotfix/SKILL.md +45 -30
- package/assets/skills-zh/comet-open/SKILL.md +96 -57
- package/assets/skills-zh/comet-tweak/SKILL.md +33 -18
- package/assets/skills-zh/comet-verify/SKILL.md +37 -59
- package/dist/app/commands/doctor.d.ts.map +1 -1
- package/dist/app/commands/doctor.js +62 -15
- package/dist/app/commands/doctor.js.map +1 -1
- package/dist/app/commands/init.d.ts +1 -1
- package/dist/app/commands/init.d.ts.map +1 -1
- package/dist/app/commands/init.js +58 -14
- package/dist/app/commands/init.js.map +1 -1
- package/dist/app/commands/status.d.ts +1 -0
- package/dist/app/commands/status.d.ts.map +1 -1
- package/dist/app/commands/status.js +10 -0
- package/dist/app/commands/status.js.map +1 -1
- package/dist/app/commands/uninstall.d.ts +3 -0
- package/dist/app/commands/uninstall.d.ts.map +1 -1
- package/dist/app/commands/uninstall.js +70 -36
- package/dist/app/commands/uninstall.js.map +1 -1
- package/dist/app/commands/update.d.ts.map +1 -1
- package/dist/app/commands/update.js +213 -34
- package/dist/app/commands/update.js.map +1 -1
- package/dist/domains/bundle/bundle-platform.d.ts +1 -0
- package/dist/domains/bundle/bundle-platform.d.ts.map +1 -1
- package/dist/domains/bundle/bundle-platform.js +6 -2
- package/dist/domains/bundle/bundle-platform.js.map +1 -1
- package/dist/domains/comet-classic/classic-branch-binding.d.ts +51 -0
- package/dist/domains/comet-classic/classic-branch-binding.d.ts.map +1 -0
- package/dist/domains/comet-classic/classic-branch-binding.js +107 -0
- package/dist/domains/comet-classic/classic-branch-binding.js.map +1 -0
- package/dist/domains/comet-classic/classic-current-change.d.ts.map +1 -1
- package/dist/domains/comet-classic/classic-current-change.js +37 -20
- package/dist/domains/comet-classic/classic-current-change.js.map +1 -1
- package/dist/domains/comet-classic/classic-guard.d.ts.map +1 -1
- package/dist/domains/comet-classic/classic-guard.js +50 -16
- 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 +138 -21
- package/dist/domains/comet-classic/classic-hook-guard.js.map +1 -1
- package/dist/domains/comet-classic/classic-resolver.js +1 -1
- package/dist/domains/comet-classic/classic-resolver.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 +113 -14
- package/dist/domains/comet-classic/classic-state-command.js.map +1 -1
- package/dist/domains/comet-classic/classic-state-events.d.ts +1 -1
- package/dist/domains/comet-classic/classic-state-events.d.ts.map +1 -1
- package/dist/domains/comet-classic/classic-state.d.ts +4 -2
- package/dist/domains/comet-classic/classic-state.d.ts.map +1 -1
- package/dist/domains/comet-classic/classic-state.js +16 -1
- package/dist/domains/comet-classic/classic-state.js.map +1 -1
- package/dist/domains/comet-classic/classic-transitions.d.ts.map +1 -1
- package/dist/domains/comet-classic/classic-transitions.js +17 -2
- 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 +13 -1
- package/dist/domains/comet-classic/classic-validate-command.js.map +1 -1
- package/dist/domains/dashboard/web/assets/_commonjsHelpers-CqkleIqs.js +1 -0
- package/dist/domains/dashboard/web/assets/arc-TGVUG2WN.js +1 -0
- package/dist/domains/dashboard/web/assets/architectureDiagram-3BPJPVTR-ASHmiHoP.js +36 -0
- package/dist/domains/dashboard/web/assets/blockDiagram-GPEHLZMM-CwASxBKe.js +132 -0
- package/dist/domains/dashboard/web/assets/c4Diagram-AAUBKEIU-BU8z_WNk.js +10 -0
- package/dist/domains/dashboard/web/assets/channel-kp6Ng2JJ.js +1 -0
- package/dist/domains/dashboard/web/assets/chunk-2J33WTMH-CBGlUx4_.js +1 -0
- package/dist/domains/dashboard/web/assets/chunk-4BX2VUAB-CS-iGcFz.js +1 -0
- package/dist/domains/dashboard/web/assets/chunk-55IACEB6-BUtCVJat.js +1 -0
- package/dist/domains/dashboard/web/assets/chunk-727SXJPM-C94tj_pf.js +206 -0
- package/dist/domains/dashboard/web/assets/chunk-AQP2D5EJ-BFOKcpdG.js +231 -0
- package/dist/domains/dashboard/web/assets/chunk-FMBD7UC4-Dmx8B-st.js +15 -0
- package/dist/domains/dashboard/web/assets/chunk-ND2GUHAM-DYV00CNn.js +1 -0
- package/dist/domains/dashboard/web/assets/chunk-QZHKN3VN-DMJJyQnw.js +1 -0
- package/dist/domains/dashboard/web/assets/classDiagram-4FO5ZUOK-yBDjgMY_.js +1 -0
- package/dist/domains/dashboard/web/assets/classDiagram-v2-Q7XG4LA2-yBDjgMY_.js +1 -0
- package/dist/domains/dashboard/web/assets/cose-bilkent-S5V4N54A-P4nE2rea.js +1 -0
- package/dist/domains/dashboard/web/assets/cynefin-VYW2F7L2-C-R1HXDv.js +166 -0
- package/dist/domains/dashboard/web/assets/cytoscape.esm-D3_iZ_3b.js +321 -0
- package/dist/domains/dashboard/web/assets/dagre-BM42HDAG-BH8d-C9z.js +4 -0
- package/dist/domains/dashboard/web/assets/defaultLocale-DX6XiGOO.js +1 -0
- package/dist/domains/dashboard/web/assets/diagram-2AECGRRQ-DpXTgQIH.js +43 -0
- package/dist/domains/dashboard/web/assets/diagram-5GNKFQAL-DSiFJzSw.js +10 -0
- package/dist/domains/dashboard/web/assets/diagram-KO2AKTUF-DULMkben.js +3 -0
- package/dist/domains/dashboard/web/assets/diagram-LMA3HP47-Pi8m_NO9.js +24 -0
- package/dist/domains/dashboard/web/assets/diagram-OG6HWLK6-BSe6bCWm.js +24 -0
- package/dist/domains/dashboard/web/assets/erDiagram-TEJ5UH35-zb-FEcbq.js +85 -0
- package/dist/domains/dashboard/web/assets/flowDiagram-I6XJVG4X-Dr-Gk0z2.js +162 -0
- package/dist/domains/dashboard/web/assets/ganttDiagram-6RSMTGT7-qs6Zb2A6.js +292 -0
- package/dist/domains/dashboard/web/assets/gitGraphDiagram-PVQCEYII-BQ314orT.js +106 -0
- package/dist/domains/dashboard/web/assets/graph--OzhPTMs.js +1 -0
- package/dist/domains/dashboard/web/assets/index-BLAfkNTu.css +1 -0
- package/dist/domains/dashboard/web/assets/index-DlSYK56b.js +139 -0
- package/dist/domains/dashboard/web/assets/index-DtLUOcAW.js +24 -0
- package/dist/domains/dashboard/web/assets/index-QO0z6F4w.js +10 -0
- package/dist/domains/dashboard/web/assets/infoDiagram-5YYISTIA-O0bQp98A.js +2 -0
- package/dist/domains/dashboard/web/assets/init-Gi6I4Gst.js +1 -0
- package/dist/domains/dashboard/web/assets/ishikawaDiagram-YF4QCWOH-BPC7wbKh.js +70 -0
- package/dist/domains/dashboard/web/assets/journeyDiagram-JHISSGLW-ohViOd4b.js +139 -0
- package/dist/domains/dashboard/web/assets/kanban-definition-UN3LZRKU-CHleNdbG.js +89 -0
- package/dist/domains/dashboard/web/assets/katex-HP8lGamR.js +257 -0
- package/dist/domains/dashboard/web/assets/layout-SsrduOYp.js +1 -0
- package/dist/domains/dashboard/web/assets/linear-CyqiW--Q.js +1 -0
- package/dist/domains/dashboard/web/assets/marked.esm-DECB3bxB.js +64 -0
- package/dist/domains/dashboard/web/assets/mermaid.core-qS9XvtaK.js +301 -0
- package/dist/domains/dashboard/web/assets/mindmap-definition-RKZ34NQL-oaGkqO9l.js +96 -0
- package/dist/domains/dashboard/web/assets/ordinal-Cboi1Yqb.js +1 -0
- package/dist/domains/dashboard/web/assets/pieDiagram-4H26LBE5-CPcB-AFh.js +30 -0
- package/dist/domains/dashboard/web/assets/purify.es-VaSPOPhr.js +3 -0
- package/dist/domains/dashboard/web/assets/quadrantDiagram-W4KKPZXB-LFy52Qtj.js +7 -0
- package/dist/domains/dashboard/web/assets/requirementDiagram-4Y6WPE33-BdjeaYP_.js +84 -0
- package/dist/domains/dashboard/web/assets/sankeyDiagram-5OEKKPKP-DDJ4styL.js +40 -0
- package/dist/domains/dashboard/web/assets/sequenceDiagram-3UESZ5HK-BL5bFNoz.js +162 -0
- package/dist/domains/dashboard/web/assets/stateDiagram-AJRCARHV-BNUfikui.js +1 -0
- package/dist/domains/dashboard/web/assets/stateDiagram-v2-BHNVJYJU-DGrsmWts.js +1 -0
- package/dist/domains/dashboard/web/assets/timeline-definition-PNZ67QCA--ps2uu6L.js +120 -0
- package/dist/domains/dashboard/web/assets/vennDiagram-CIIHVFJN-C2q8q26c.js +34 -0
- package/dist/domains/dashboard/web/assets/wardleyDiagram-YWT4CUSO-BUH9gXqd.js +78 -0
- package/dist/domains/dashboard/web/assets/xychartDiagram-2RQKCTM6-B-DielEy.js +7 -0
- package/dist/domains/dashboard/web/index.html +16 -16
- package/dist/domains/factory/package.d.ts.map +1 -1
- package/dist/domains/factory/package.js +20 -6
- package/dist/domains/factory/package.js.map +1 -1
- package/dist/domains/integrations/openspec.d.ts +4 -1
- package/dist/domains/integrations/openspec.d.ts.map +1 -1
- package/dist/domains/integrations/openspec.js +56 -4
- 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 +7 -1
- package/dist/domains/skill/find.js.map +1 -1
- package/dist/domains/skill/json-object.d.ts +13 -0
- package/dist/domains/skill/json-object.d.ts.map +1 -0
- package/dist/domains/skill/json-object.js +24 -0
- package/dist/domains/skill/json-object.js.map +1 -0
- package/dist/domains/skill/platform-inspect.d.ts +9 -0
- package/dist/domains/skill/platform-inspect.d.ts.map +1 -0
- package/dist/domains/skill/platform-inspect.js +149 -0
- package/dist/domains/skill/platform-inspect.js.map +1 -0
- package/dist/domains/skill/platform-install.d.ts +16 -6
- package/dist/domains/skill/platform-install.d.ts.map +1 -1
- package/dist/domains/skill/platform-install.js +277 -144
- package/dist/domains/skill/platform-install.js.map +1 -1
- package/dist/domains/skill/uninstall.d.ts.map +1 -1
- package/dist/domains/skill/uninstall.js +204 -141
- package/dist/domains/skill/uninstall.js.map +1 -1
- package/dist/platform/fs/file-system.d.ts +3 -3
- package/dist/platform/fs/file-system.d.ts.map +1 -1
- package/dist/platform/fs/file-system.js +21 -11
- package/dist/platform/fs/file-system.js.map +1 -1
- package/dist/platform/install/platforms.d.ts +4 -0
- package/dist/platform/install/platforms.d.ts.map +1 -1
- package/dist/platform/install/platforms.js +2 -0
- package/dist/platform/install/platforms.js.map +1 -1
- package/dist/platform/install/project-registry.d.ts +1 -0
- package/dist/platform/install/project-registry.d.ts.map +1 -1
- package/dist/platform/install/project-registry.js +9 -1
- package/dist/platform/install/project-registry.js.map +1 -1
- package/dist/platform/install/skill-root-owner.d.ts +15 -0
- package/dist/platform/install/skill-root-owner.d.ts.map +1 -0
- package/dist/platform/install/skill-root-owner.js +68 -0
- package/dist/platform/install/skill-root-owner.js.map +1 -0
- package/package.json +6 -1
- package/dist/domains/dashboard/web/assets/index-CIvN-PL8.js +0 -22
- package/dist/domains/dashboard/web/assets/index-DcyRPBnT.css +0 -1
- package/eval/.env +0 -28
package/LICENSE
CHANGED
|
@@ -1,21 +1,21 @@
|
|
|
1
|
-
MIT License
|
|
2
|
-
|
|
3
|
-
Copyright (c) 2026 rpamis
|
|
4
|
-
|
|
5
|
-
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
-
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
-
in the Software without restriction, including without limitation the rights
|
|
8
|
-
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
-
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
-
furnished to do so, subject to the following conditions:
|
|
11
|
-
|
|
12
|
-
The above copyright notice and this permission notice shall be included in all
|
|
13
|
-
copies or substantial portions of the Software.
|
|
14
|
-
|
|
15
|
-
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
-
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
-
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
-
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
-
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
-
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
-
SOFTWARE.
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 rpamis
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
CHANGED
|
@@ -16,9 +16,14 @@
|
|
|
16
16
|
<a href="https://www.npmjs.com/package/@rpamis/comet"><img alt="npm weekly download count" src="https://img.shields.io/npm/dw/@rpamis/comet?style=flat-square&label=Downloads/wk" /></a>
|
|
17
17
|
<a href="https://docs.comet.rpamis.com/"><img alt="Comet Docs" src="https://img.shields.io/badge/Docs-docs.comet.rpamis.com-FFD700?style=flat-square" /></a>
|
|
18
18
|
<a href="./LICENSE"><img alt="License: MIT" src="https://img.shields.io/badge/License-MIT-blue.svg?style=flat-square" /></a>
|
|
19
|
+
<a href="https://atomgit.com/rpamis/comet"><img alt="AtomGitStars" src="https://atomgit.com/rpamis/comet/star/badge.svg" /></a>
|
|
19
20
|
</p>
|
|
20
21
|
|
|
21
|
-
|
|
22
|
+
<p align="center">
|
|
23
|
+
<a href="https://trendshift.io/repositories/38989?utm_source=repository-badge&utm_medium=badge&utm_campaign=badge-repository-38989" target="_blank" rel="noopener noreferrer"><img src="https://trendshift.io/api/badge/repositories/38989" alt="rpamis%2Fcomet | Trendshift" width="250" height="55"/></a>
|
|
24
|
+
</p>
|
|
25
|
+
|
|
26
|
+
## What is Comet ?
|
|
22
27
|
|
|
23
28
|
```
|
|
24
29
|
██████╗ ██████╗ ███╗ ███╗███████╗████████╗
|
|
@@ -532,7 +537,8 @@ build_mode: subagent-driven-development # Build mode: subagent-
|
|
|
532
537
|
build_pause: null # `build_pause` records an internal build-phase pause point: null none, `plan-ready` means the plan has been generated
|
|
533
538
|
subagent_dispatch: null # Dispatch confirmation; confirm before verify
|
|
534
539
|
tdd_mode: null # Full-workflow build choice: tdd | direct
|
|
535
|
-
isolation: branch # Isolation mode: branch | worktree
|
|
540
|
+
isolation: branch # Isolation mode: current | branch | worktree
|
|
541
|
+
bound_branch: null # Git branch bound by current/branch/worktree isolation; branch drift blocks progress
|
|
536
542
|
verify_mode: null # Verification mode: light | full
|
|
537
543
|
design_doc: docs/superpowers/specs/<design-doc>.md # Design doc path
|
|
538
544
|
plan: docs/superpowers/plans/YYYY-MM-DD-feature.md # Implementation plan path
|
|
@@ -576,7 +582,8 @@ Comet ensures agent execution reliability through automated state transitions:
|
|
|
576
582
|
- Detects unknown/typos fields
|
|
577
583
|
|
|
578
584
|
4. **Build Decision Enforcement** — Guard and state transitions both block skipped build choices
|
|
579
|
-
- `isolation` must be `branch
|
|
585
|
+
- `isolation` must be `current`, `branch`, or `worktree`
|
|
586
|
+
- `isolation: current`, `branch`, and `worktree` bind the current Git branch, and later entry checks block accidental branch drift
|
|
580
587
|
- `build_mode` must be selected before leaving build
|
|
581
588
|
- `build_pause: plan-ready` is a recoverable pause after plan generation, not a `build_mode`
|
|
582
589
|
- Full workflow `build_mode: direct` requires `direct_override: true`
|
|
@@ -716,7 +723,7 @@ Track our development progress and upcoming features on the [Comet Roadmap](http
|
|
|
716
723
|
<b>DouYin (Recommended)</b>
|
|
717
724
|
</td>
|
|
718
725
|
<td align="center" width="180">
|
|
719
|
-
<img src="https://github.com/rpamis/comet/blob/master/img/wechat.
|
|
726
|
+
<img src="https://github.com/rpamis/comet/blob/master/img/wechat.png" width="120" height="120"><br>
|
|
720
727
|
<b>WeChat</b>
|
|
721
728
|
</td>
|
|
722
729
|
<td align="center" width="180">
|
package/assets/manifest.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: comet
|
|
3
|
-
description: "Use when the user
|
|
3
|
+
description: "Use when the user explicitly invokes /comet, asks to start or resume a Comet-managed workflow, or repository evidence identifies one unambiguous active Comet change; route through the intent runtime and .comet.yaml."
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
# Comet — OpenSpec + Superpowers Dual-Star Development Workflow
|
|
@@ -22,7 +22,7 @@ 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 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 `
|
|
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 state get <name> language`. Before `.comet.yaml` exists, read `language` from project `.comet/config.yaml`, then fall back to global `~/.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
|
|
|
@@ -126,22 +126,22 @@ Prefer reading `openspec/changes/<name>/.comet.yaml`. If not available, fall bac
|
|
|
126
126
|
- On every context resume, rerun Step 0 and Step 1; do not trust conversation history for phase detection
|
|
127
127
|
- 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
|
|
128
128
|
- If `phase: build`, first check `build_pause`, `plan`, `isolation`, `build_mode`, `tdd_mode`, and `review_mode` (see details below):
|
|
129
|
-
- 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 `
|
|
129
|
+
- 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 `comet state set <name> build_pause null`, then read the next unchecked task from tasks.md and resume execution per `build_mode`
|
|
130
130
|
- 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
|
|
131
131
|
- If `build_pause: plan-ready` but the plan file is missing, return to `/comet-build` to handle corrupted state or regenerate the plan
|
|
132
132
|
- If `isolation`, `build_mode`, `tdd_mode`, or `review_mode` is unset, return to the corresponding `/comet-build` step to supplement before executing
|
|
133
133
|
- If all are set, read the next unchecked task from tasks.md and continue:
|
|
134
134
|
- 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
|
|
135
135
|
- Other execution modes follow `/comet-build`'s corresponding rules
|
|
136
|
-
- If `
|
|
137
|
-
- If `phase: open` but
|
|
138
|
-
- If `phase: archive`, only invoke `/comet-archive`;
|
|
136
|
+
- If `verify_result: fail`, read `verify_failures`. At 3 or fewer failures, invoke `/comet-build` directly to continue the recorded repair loop without re-asking. Above the automatic limit, return to `/comet-verify` for the exception decision. User input is required only to accept a WARNING/SUGGESTION deviation or choose a strategy after the retry limit
|
|
137
|
+
- If `phase: open` but OpenSpec `applyRequires` is complete, run `comet guard <change-name> open --apply` to repair state, then continue detection
|
|
138
|
+
- If `phase: archive`, only invoke `/comet-archive`; confirm first, archive, commit exact archive paths, then handle the branch and run the archive guard
|
|
139
139
|
|
|
140
140
|
**Step 2: Phase Determination** (check in order, first match wins)
|
|
141
141
|
|
|
142
142
|
1. `archived: true` or change moved to archive → Workflow complete
|
|
143
143
|
2. `verify_result: pass` and `archived` is not `true` → Invoke `/comet-archive` (first perform final archive confirmation)
|
|
144
|
-
3. `verify_result: fail` →
|
|
144
|
+
3. `verify_result: fail` → Invoke `/comet-build` automatically to continue repair. If `verify_failures` exceeds the automatic limit, enter `/comet-verify`'s retry-limit strategy decision
|
|
145
145
|
4. `phase: verify` or tasks.md all checked → Invoke `/comet-verify`
|
|
146
146
|
5. `phase: build` or has Design Doc but plan/execution incomplete → Route by workflow: `hotfix` → `/comet-hotfix`, `tweak` → `/comet-tweak`, `full` → `/comet-build`
|
|
147
147
|
6. `phase: design` or has change but no Design Doc → Invoke `/comet-design`
|
|
@@ -156,11 +156,11 @@ hotfix/tweak scope assessment uses a three-layer division of labor, avoiding "us
|
|
|
156
156
|
|
|
157
157
|
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")
|
|
158
158
|
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
|
|
159
|
-
3. **Verification weight** (scale script decides): `comet
|
|
159
|
+
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
|
|
160
160
|
|
|
161
161
|
**Upgrade decision point (user chooses one of two)**:
|
|
162
162
|
- Continue the preset lightweight flow (user confirms scope is manageable)
|
|
163
|
-
- Upgrade to full `/comet` (use `
|
|
163
|
+
- Upgrade to full `/comet` (use `comet state transition <name> preset-escalate` to legally rewind to design and clear preset-only build settings; after the Design Doc, choose the full workflow configuration again in one joint decision)
|
|
164
164
|
|
|
165
165
|
See the "Upgrade Assessment" section of each `comet-hotfix` / `comet-tweak` for detailed rules.
|
|
166
166
|
|
|
@@ -170,7 +170,8 @@ See the "Upgrade Assessment" section of each `comet-hotfix` / `comet-tweak` for
|
|
|
170
170
|
|----------|----------|
|
|
171
171
|
| `openspec list --json` fails | Check if openspec is installed, prompt user to run `openspec init` |
|
|
172
172
|
| Sub-skill unavailable | Stop workflow, prompt to install or enable the corresponding skill |
|
|
173
|
-
| `.comet.yaml`
|
|
173
|
+
| `.comet.yaml` missing | Enter the relevant preset's `/comet-open` initialization, then run `comet state select`; never skip initialization |
|
|
174
|
+
| `.comet.yaml` malformed | Stop and report the parse error; repair from version control, backup, or verifiable artifacts, never overwrite it with `comet state set` |
|
|
174
175
|
| Build/test fails | Return to build phase for fixes, do not enter verify |
|
|
175
176
|
| Incomplete change directory structure | Fill missing files according to `comet-open` artifact requirements |
|
|
176
177
|
|
|
@@ -183,20 +184,21 @@ Flow chain: open → design → build → verify → archive
|
|
|
183
184
|
|
|
184
185
|
**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.
|
|
185
186
|
|
|
186
|
-
**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 `
|
|
187
|
+
**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 `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; return control with `HINT`). `NEXT: manual` is not a user decision point and must not ask whether to continue. Therefore `auto_transition` **only controls next skill invocation, not phase advancement**. Regardless of `auto_transition`, genuine user decision points below remain blocking.
|
|
187
188
|
|
|
188
189
|
**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.
|
|
189
190
|
|
|
190
191
|
Nodes requiring user participation (pause only at these nodes):
|
|
191
|
-
1.
|
|
192
|
-
2.
|
|
193
|
-
3.
|
|
194
|
-
4.
|
|
195
|
-
5.
|
|
192
|
+
1. Workflow target selection: multiple active changes, continue an existing change versus create a new one, or choose which completed batch item starts first
|
|
193
|
+
2. Open-phase final proposal/design/tasks review, including the change name and scope; clear requests have no pre-artifact summary/name confirmation
|
|
194
|
+
3. Confirm the design approach during brainstorming
|
|
195
|
+
4. One joint build decision: plan-ready pause or all available workflow settings (workspace isolation + execution method + TDD mode + code review mode, plus branch name when branch is selected)
|
|
196
|
+
5. Verify-phase acceptance of WARNING/SUGGESTION deviations, Spec drift handling, or continue/stop after the 4th failure; the first 3 clearly repairable failures close automatically
|
|
196
197
|
6. Archive phase final confirmation before running the archive script
|
|
197
|
-
7.
|
|
198
|
-
8.
|
|
199
|
-
9.
|
|
198
|
+
7. Choose finishing-branch handling after exact archive changes are committed
|
|
199
|
+
8. Encounter an upgrade-assessment signal (hotfix/tweak → user chooses one of two: continue preset / upgrade to full workflow)
|
|
200
|
+
9. Build phase scope expansion requiring redesign or new change split
|
|
201
|
+
10. Open phase large PRD split confirmation
|
|
200
202
|
|
|
201
203
|
Agents should not skip these decision points; other unambiguous phase transitions must proceed automatically, must not exit midway. At decision points, **must not skip user confirmation or choose automatically — must explicitly obtain the user's choice through the current platform's available user input/confirmation mechanism before continuing**.
|
|
202
204
|
|
|
@@ -220,8 +222,8 @@ Agents should not skip these decision points; other unambiguous phase transition
|
|
|
220
222
|
| `/comet-open` | 1. Open | OpenSpec | proposal.md, design.md, tasks.md |
|
|
221
223
|
| `/comet-design` | 2. Deep Design | Superpowers | Design Doc, delta spec |
|
|
222
224
|
| `/comet-build` | 3. Plan and Build | Superpowers | Implementation plan, code commits |
|
|
223
|
-
| `/comet-verify` | 4. Verify
|
|
224
|
-
| `/comet-archive` | 5. Archive | OpenSpec | delta→main spec sync, design doc markup, archive |
|
|
225
|
+
| `/comet-verify` | 4. Verify | Both | Verification report |
|
|
226
|
+
| `/comet-archive` | 5. Archive and Close | OpenSpec | delta→main spec sync, design doc markup, archive commit, branch handling |
|
|
225
227
|
| `/comet-hotfix` | Preset path | Both | Quick fix (skip brainstorming) |
|
|
226
228
|
| `/comet-tweak` | Preset path | Both | OpenSpec-chained medium change (delta spec is first-class, skip brainstorming and full plan) |
|
|
227
229
|
|
|
@@ -246,14 +248,14 @@ Agents should not skip these decision points; other unambiguous phase transition
|
|
|
246
248
|
|
|
247
249
|
### State Machine Hard Constraints
|
|
248
250
|
|
|
249
|
-
- Before `build → verify`, `isolation` must be `branch
|
|
251
|
+
- Before `build → verify`, `isolation` must be `current`, `branch`, or `worktree`; all three workspace modes must come from explicit user selection and bind the current branch
|
|
250
252
|
- Before `build → verify`, `build_mode` must be selected
|
|
251
253
|
- `build_mode: subagent-driven-development` must also have `subagent_dispatch: confirmed`
|
|
252
254
|
- Before full workflow leaves build phase, `tdd_mode` must be selected as `tdd` or `direct`
|
|
253
255
|
- Before full workflow leaves build phase, `review_mode` must be selected as `off`, `standard`, or `thorough`
|
|
254
256
|
- `build_mode: direct` is allowed by default only for `hotfix` / `tweak`; full workflow requires `direct_override: true`
|
|
255
257
|
- `build_pause` is not an execution method and must not be written to `build_mode`
|
|
256
|
-
- These constraints are enforced by both `comet
|
|
258
|
+
- These constraints are enforced by both `comet guard <name> build --apply` and `comet state transition <name> build-complete`
|
|
257
259
|
|
|
258
260
|
### .comet.yaml Field Reference
|
|
259
261
|
|
|
@@ -281,11 +283,11 @@ See `comet/reference/debug-gate.md` for the complete debug gate protocol.
|
|
|
281
283
|
|
|
282
284
|
### Script Location
|
|
283
285
|
|
|
284
|
-
|
|
286
|
+
Use the stable `comet` CLI for workflow state, guards, handoff, and archive. Locate internal launchers through `comet/reference/scripts.md` only for intent/resume probes that do not yet have a public subcommand. Key entry points:
|
|
285
287
|
|
|
286
288
|
```bash
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
289
|
+
comet guard <change-name> <phase> --apply # phase guard + state update
|
|
290
|
+
comet state transition <change-name> <event> # open-complete | design-complete | build-complete | verify-pass | verify-fail
|
|
291
|
+
comet state next <change-name> # NEXT: auto|manual|done + SKILL: <skill-name>
|
|
292
|
+
comet archive <change-name> # full archive in one command
|
|
291
293
|
```
|
|
@@ -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
|
+
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`:
|
|
@@ -21,8 +21,10 @@ tdd_mode: tdd
|
|
|
21
21
|
review_mode: standard
|
|
22
22
|
auto_transition: true
|
|
23
23
|
isolation: branch
|
|
24
|
+
bound_branch: null
|
|
24
25
|
verify_mode: light
|
|
25
26
|
verify_result: pending
|
|
27
|
+
verify_failures: 0
|
|
26
28
|
verification_report: null
|
|
27
29
|
branch_status: pending
|
|
28
30
|
created_at: 2026-05-26
|
|
@@ -44,14 +46,16 @@ archived: false
|
|
|
44
46
|
| `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`) |
|
|
45
47
|
| `build_pause` | Build phase internal pause point. `null` = no pause, `plan-ready` = plan generated, paused for user model switch |
|
|
46
48
|
| `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 |
|
|
47
|
-
| `tdd_mode` | `tdd` or `direct`. Full workflow must select before leaving build. `tdd` forces write-failing-test-first per task; `direct` skips TDD
|
|
49
|
+
| `tdd_mode` | `tdd` or `direct`. Full workflow must select before leaving build. `tdd` forces write-failing-test-first per task; `direct` skips per-task TDD but still requires relevant tests and bug-regression evidence. hotfix/tweak default to `direct` |
|
|
48
50
|
| `review_mode` | `off`, `standard`, or `thorough`. Full workflow must select before leaving build; hotfix/tweak default to `off` |
|
|
49
|
-
| `isolation` | `branch
|
|
51
|
+
| `isolation` | `current`, `branch`, or `worktree`. Full init may be `null`, but before leaving build the user must explicitly select `current`, create/select a real `branch`, or create/select a real `worktree`; hotfix/tweak may also truthfully use all three modes after the entry user decision point, and must not claim branch isolation before creating one |
|
|
52
|
+
| `bound_branch` | Workspace branch binding record; may be empty. `isolation: current` / `branch` / `worktree` records the current Git branch of the directory the command runs in on first setting or entry check (for worktree mode, run set/check/guard inside that worktree, or the wrong branch gets bound/compared); switching `isolation` between workspace modes re-binds to the current branch, while repeating the same mode keeps the existing binding. Later `comet state select` / `comet state check` must confirm the bound branch still matches the current branch. On drift, `select` refuses and checks return `BLOCKED`; follow the decision-point protocol so the user chooses whether to switch back to the bound branch or explicitly confirm and run `comet state rebind <change-name>`. Clearing `isolation` clears this field |
|
|
50
53
|
| `verify_mode` | `light` or `full`; may be empty |
|
|
51
54
|
| `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 |
|
|
52
55
|
| `verify_result` | `pending`, `pass`, or `fail` |
|
|
56
|
+
| `verify_failures` | Machine-owned consecutive verification failure count. `verify-fail` increments it; `verify-pass` or `archive-reopen` resets it to `0`. At `3`, the next failure requires the retry-limit strategy decision |
|
|
53
57
|
| `verification_report` | Verification report file path; must point to an existing file before verify passes |
|
|
54
|
-
| `branch_status` | `pending` or `handled`; set
|
|
58
|
+
| `branch_status` | `pending` or `handled`; keep pending through verify/archive, then set handled after the archive commit and selected branch handling complete |
|
|
55
59
|
| `created_at` | Change creation date (auto-written at init), format `YYYY-MM-DD` |
|
|
56
60
|
| `verified_at` | Verification pass timestamp; may be empty |
|
|
57
61
|
| `archive_confirmation` | `null`, `pending`, or `confirmed`. `verify-pass` writes `pending` when entering the archive phase; after the user selects "Confirm archive" in `/comet-archive`, the `archive-confirm` transition writes `confirmed`; `archive-reopen` clears the field so an earlier confirmation cannot be reused |
|
|
@@ -65,7 +69,7 @@ archived: false
|
|
|
65
69
|
|
|
66
70
|
## State Machine Hard Constraints
|
|
67
71
|
|
|
68
|
-
- Before `build → verify`, `isolation` must be `branch
|
|
72
|
+
- Before `build → verify`, `isolation` must be `current`, `branch`, or `worktree`
|
|
69
73
|
- Before `build → verify`, `build_mode` must be selected
|
|
70
74
|
- `build_mode: subagent-driven-development` requires `subagent_dispatch: confirmed`
|
|
71
75
|
- Full workflow must select `tdd_mode` as `tdd` or `direct` before leaving build
|
|
@@ -9,7 +9,7 @@ This protocol is shared by all comet sub-skills that may trigger context compres
|
|
|
9
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
10
|
|
|
11
11
|
```bash
|
|
12
|
-
|
|
12
|
+
comet state check <change-name> <phase> --recover
|
|
13
13
|
```
|
|
14
14
|
|
|
15
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`.
|
|
@@ -27,7 +27,7 @@ Only `auto_resume` should resume automatically; `ask_user` must ask one short qu
|
|
|
27
27
|
## Recovery Steps
|
|
28
28
|
|
|
29
29
|
```bash
|
|
30
|
-
|
|
30
|
+
comet state check <change-name> <phase> --recover
|
|
31
31
|
```
|
|
32
32
|
|
|
33
33
|
The script outputs structured recovery context (phase, completed fields, pending fields, recovery action). Follow the **Recovery action** output for next steps.
|
|
@@ -4,6 +4,17 @@ Canonical path: `comet/reference/decision-point.md`
|
|
|
4
4
|
|
|
5
5
|
This protocol is shared by all comet sub-skills that contain user decision points. Any step labeled as a blocking point or user decision point must follow this protocol.
|
|
6
6
|
|
|
7
|
+
## First Decide Whether User Input Is Actually Required
|
|
8
|
+
|
|
9
|
+
Distinguish user decisions, automatic handling, and stop conditions:
|
|
10
|
+
|
|
11
|
+
- **User decision**: two or more valid options change scope, behavior, accepted risk, or an irreversible outcome; the user must choose
|
|
12
|
+
- **Automatic handling**: exactly one safe next action remains within the request, such as repairing an objective failure, reconciling verifiable state, retrying an idempotent check, or following persisted configuration; execute and report it without manufacturing confirmation
|
|
13
|
+
- **Stop condition**: a missing dependency, corrupt state, path escape, or unavailable external command leaves no valid next action; report the blocker and recovery condition without inventing choices
|
|
14
|
+
- **Manual handoff**: `NEXT: manual` returns control; it is not a new user decision point. Print `HINT`, end the current invocation, and do not ask whether to continue
|
|
15
|
+
|
|
16
|
+
Only the first category uses this protocol. Merge adjacent choices that can be answered together, and do not re-ask persisted choices that remain valid. Preflight platform capabilities and state before presenting options, and show only executable choices. If a field has only one valid value, explain why and apply it without creating a separate pause.
|
|
17
|
+
|
|
7
18
|
## Core Rules
|
|
8
19
|
|
|
9
20
|
- Decision points are blocking points. Pause and wait for an explicit user choice before continuing
|
|
@@ -11,9 +11,10 @@ This document provides Comet-specific extensions applied **on top of** the Super
|
|
|
11
11
|
> Only stop and wait for user input when:
|
|
12
12
|
> - A task is **BLOCKED** (review-fix rounds exhausted: `review_mode: standard` — 1 round of risk-task review-fix or final lightweight review not passed; `review_mode: thorough` — 2 rounds of task-level/final review-fix not passed)
|
|
13
13
|
> - There is irreducible ambiguity that cannot be resolved from the repository, plan, or existing context
|
|
14
|
-
> - The platform lacks real background agent dispatch capability and the user must choose `executing-plans`
|
|
15
14
|
> - The user **explicitly** asks to pause
|
|
16
15
|
>
|
|
16
|
+
> Background dispatch capability disappearing during execution is a runtime stop condition, not automatically a new user decision point. Exit the dispatch loop and return to the same `/comet-build` Step 2 joint decision with `subagent-driven-development` removed. If only one execution method remains, explain why and apply it directly; wait for the user only when multiple valid methods remain.
|
|
17
|
+
>
|
|
17
18
|
> This rule applies to the ENTIRE dispatch loop, not just individual tasks.
|
|
18
19
|
|
|
19
20
|
## Before Starting
|
|
@@ -34,14 +35,14 @@ The main session is the **coordinator only** and must NOT execute tasks directly
|
|
|
34
35
|
- **Claude Code**: Use the `Agent` tool with `run_in_background: true` for each implementer, task reviewer, fix agent, and final reviewer. Never execute tasks inline and do not accidentally enter team mode, which requires a pre-created team.
|
|
35
36
|
- **Other platforms**: Use the platform's equivalent background agent / Task / multi-agent dispatch mechanism.
|
|
36
37
|
- **Never** reuse implementers, reviewers, or fix agents across tasks or roles. Each agent gets a fresh, isolated context containing only the single task and role-specific context it needs.
|
|
37
|
-
- If
|
|
38
|
+
- If real background dispatch capability disappears during execution, stop dispatching and do not let the main session implement the task. Return to the same `/comet-build` Step 2 joint decision with the unavailable mode removed. Do not create a separate "switch to executing-plans" pause; apply the only valid mode directly when just one remains.
|
|
38
39
|
|
|
39
40
|
### 1. Dispatch Prompt and Return Contract
|
|
40
41
|
|
|
41
42
|
Every implementer or fix-agent prompt must include:
|
|
42
43
|
|
|
43
44
|
- The full text of the single current task, architecture background, and dependency context
|
|
44
|
-
- `Language: Use the configured Comet artifact language from
|
|
45
|
+
- `Language: Use the configured Comet artifact language from comet state get <name> language`
|
|
45
46
|
- The allowed file scope and prohibited modification scope
|
|
46
47
|
- The required test commands and commit requirements
|
|
47
48
|
- For a fix agent, the corresponding reviewer's complete feedback
|
|
@@ -142,8 +143,8 @@ When a reviewer returns an item that cannot be verified from review material alo
|
|
|
142
143
|
4. Runs targeted verification:
|
|
143
144
|
|
|
144
145
|
```bash
|
|
145
|
-
|
|
146
|
-
|
|
146
|
+
comet state task-checkoff <plan-file> <plan-task-text>
|
|
147
|
+
comet state task-checkoff openspec/changes/<name>/tasks.md <openspec-task-text>
|
|
147
148
|
```
|
|
148
149
|
|
|
149
150
|
Run the second command only when the corresponding mapping exists. The script requires the task text to appear exactly once and be checked; verification failure blocks moving to the next task.
|
|
@@ -25,8 +25,8 @@ Ordinary source writes are governed only by the selected change phase. With mult
|
|
|
25
25
|
| `open` | Create proposal/design/tasks, run guard | Write source code |
|
|
26
26
|
| `design` | brainstorming, create Design Doc, run guard | Write source code |
|
|
27
27
|
| `build` | Write source code, tests, execute plans | Skip user confirmation points |
|
|
28
|
-
| `verify` | Verification,
|
|
29
|
-
| `archive` | Confirm archive, run archive script | Write source code |
|
|
28
|
+
| `verify` | Verification, record verification report | Skip failure handling, handle the branch early |
|
|
29
|
+
| `archive` | Confirm archive, run archive script, commit archive changes, handle the branch | Write source code |
|
|
30
30
|
|
|
31
31
|
The hook hard interception allowlist includes workflow and platform workspaces such as `openspec/*`, `docs/superpowers/*`, `.superpowers/*`, `.claude/*`, and `.comet/*`; write access to these paths does not allow skipping the current phase's artifacts or confirmation requirements.
|
|
32
32
|
|
|
@@ -44,7 +44,8 @@ Reading the `phase` field alone is not enough — you must also confirm **how**
|
|
|
44
44
|
|
|
45
45
|
Exception: `workflow: hotfix/tweak` intentionally skips design, so an empty `design_doc` is normal and not an illegal jump.
|
|
46
46
|
|
|
47
|
-
Upgrade state note: after a preset (hotfix/tweak) hits an upgrade signal and the user confirms upgrading, `comet
|
|
47
|
+
Upgrade state note: after a preset (hotfix/tweak) hits an upgrade signal and the user confirms upgrading, `comet state transition <name> preset-escalate` legally converts it to `workflow: full` + `phase: design` + `design_doc: null` and clears preset-only build settings. At this point `phase: design` with an empty `design_doc` **is a normal upgrade pre-state**, not an illegal jump — the agent should enter `/comet-design` to supplement the Design Doc, then choose the full workflow configuration again in build. This terminal state does not match the "skipped design" row above (that row only detects `phase: build`).
|
|
48
|
+
|
|
48
49
|
### Skill Invocation (Cannot Replace with Normal Conversation)
|
|
49
50
|
|
|
50
51
|
The following operations must be loaded through the Skill tool. When Skill is unavailable, stop the workflow and prompt to install:
|
|
@@ -59,50 +60,50 @@ The following operations must be loaded through the Skill tool. When Skill is un
|
|
|
59
60
|
|
|
60
61
|
### Script Execution (Cannot Skip)
|
|
61
62
|
|
|
62
|
-
- **Phase exit**: `comet
|
|
63
|
-
- **Compression recovery**: `comet
|
|
64
|
-
- **State update**: After key operations, update fields through `comet
|
|
65
|
-
- **Phase advancement only via guard/transition**: directly running `comet
|
|
66
|
-
- **handoff generation**: `comet
|
|
63
|
+
- **Phase exit**: `comet guard <name> <phase> --apply` (must see ALL CHECKS PASSED)
|
|
64
|
+
- **Compression recovery**: `comet state check <name> <phase> --recover`
|
|
65
|
+
- **State update**: After key operations, update fields through `comet state set`; manually editing .comet.yaml is prohibited
|
|
66
|
+
- **Phase advancement only via guard/transition**: directly running `comet state set <name> phase <value>` to jump phases is prohibited. A preset (hotfix/tweak) upgrade to full must use `comet state transition <name> preset-escalate`
|
|
67
|
+
- **handoff generation**: `comet handoff <name> design --write` (handwriting summaries is prohibited)
|
|
67
68
|
|
|
68
69
|
### User Confirmation (Cannot Auto-Skip)
|
|
69
70
|
|
|
70
71
|
The following decision points must pause to wait for explicit user selection; do not auto-fill based on recommendation rules:
|
|
71
72
|
|
|
72
|
-
- **open**:
|
|
73
|
+
- **open**: Final artifact review, which also confirms the change name and scope. Add an earlier decision only for unresolved target/scope alternatives or a large-PRD split
|
|
73
74
|
- **design**: brainstorming proposal confirmation (Design Doc cannot be created before confirmation)
|
|
74
|
-
- **build**: plan-ready pause
|
|
75
|
-
- **verify**:
|
|
76
|
-
- **archive**: Final confirmation before archiving
|
|
75
|
+
- **build**: After capability preflight, use one joint decision for a plan-ready pause or every executable `isolation` / `build_mode` / `tdd_mode` / `review_mode`; include the branch name when branch is selected, plus large spec-change and preset-upgrade decisions
|
|
76
|
+
- **verify**: Accepting WARNING/SUGGESTION deviations, handling Spec drift, or choosing continue/stop after the automatic repair limit
|
|
77
|
+
- **archive**: Final confirmation before archiving, plus branch-handling selection after the archive commit
|
|
77
78
|
|
|
78
79
|
## Design Phase Specifics
|
|
79
80
|
|
|
80
|
-
1. First script operation = `comet
|
|
81
|
+
1. First script operation = `comet handoff <name> design --write` (loading brainstorming before generating handoff is prohibited)
|
|
81
82
|
2. brainstorming in progress: incrementally update brainstorm-summary.md (update recovery checkpoint after each clarification round or proposal iteration; unconfirmed content marked as pending/candidate)
|
|
82
83
|
3. After brainstorming completes, next step = brainstorm-summary.md finalization → Design Doc → guard
|
|
83
|
-
4.
|
|
84
|
+
4. Active context compaction is optional only after the Design Doc, state evidence, and latest handoff are persisted; when programmatic triggering is unavailable, provide a non-blocking suggestion and continue
|
|
84
85
|
5. **Absolutely cannot start writing implementation code directly** — must first create Design Doc and pass guard
|
|
85
86
|
|
|
86
87
|
## Build Phase Specifics
|
|
87
88
|
|
|
88
|
-
1. After plan creation,
|
|
89
|
+
1. After plan creation, filter unavailable options, then ask one joint question: pause, or submit workspace/execution/TDD/review settings and any conditional branch name together
|
|
89
90
|
2. After each task acceptance, must: tasks.md checkmark → git commit (do not accumulate). `subagent-driven-development` must complete acceptance according to the current `review_mode`, then the coordinator performs targeted verification by unique task text; do not use an incomplete task summary table to replace current task verification
|
|
90
91
|
3. When encountering failures, must load **systematic-debugging** skill; do not propose source code fixes before root cause is located
|
|
91
92
|
4. spec change grading: small changes edit directly | medium changes load brainstorming | large changes pause and wait for user confirmation to split
|
|
92
93
|
|
|
93
94
|
## Verify Phase Specifics
|
|
94
95
|
|
|
95
|
-
1. First step run `comet
|
|
96
|
-
2.
|
|
97
|
-
3. After 3
|
|
98
|
-
4.
|
|
96
|
+
1. First step run `comet state scale <name>` to determine verification level
|
|
97
|
+
2. For the first 3 clearly repairable failures, automatically run `comet state transition <name> verify-fail`, return to build, and enter `/comet-build`. CRITICAL/IMPORTANT failures cannot be accepted as deviations
|
|
98
|
+
3. The state machine owns `verify_failures`. After it reaches `3`, the next failure must ask whether to continue fixing or stop the workflow for an external decision
|
|
99
|
+
4. Ask whether to fix or accept WARNING/SUGGESTION only when repair introduces a behavior, scope, or risk tradeoff. Safe, local, tradeoff-free repairs close automatically
|
|
99
100
|
|
|
100
101
|
## Context Compression Recovery
|
|
101
102
|
|
|
102
103
|
If context compression is suspected (previous conversation was summarized, previous discussion cannot be found), immediately run:
|
|
103
104
|
|
|
104
105
|
```bash
|
|
105
|
-
|
|
106
|
+
comet state check <name> <phase> --recover
|
|
106
107
|
```
|
|
107
108
|
|
|
108
109
|
Decide next step according to the script's **Recovery action** output.
|
|
@@ -123,17 +124,11 @@ After recovery, first re-run the "Phase-Entry Self-Consistency Check" table: if
|
|
|
123
124
|
After guard `--apply` succeeds, do not hardcode the next skill in this rule. First run:
|
|
124
125
|
|
|
125
126
|
```bash
|
|
126
|
-
comet
|
|
127
|
-
```
|
|
128
|
-
|
|
129
|
-
If `comet-env.mjs` has already located the scripts, the equivalent command is:
|
|
130
|
-
|
|
131
|
-
```bash
|
|
132
|
-
node "$COMET_STATE" next <change-name>
|
|
127
|
+
comet state next <change-name>
|
|
133
128
|
```
|
|
134
129
|
|
|
135
130
|
Decide the next step from the script output:
|
|
136
131
|
|
|
137
132
|
- `NEXT: auto` → use the Skill tool to load the skill named by `SKILL`
|
|
138
|
-
- `NEXT: manual` → do not load the next skill;
|
|
133
|
+
- `NEXT: manual` → do not load the next skill; return control with `HINT`, end the invocation, and do not create another confirmation point
|
|
139
134
|
- `NEXT: done` → the workflow is complete; no further action is needed
|