@rpamis/comet 0.3.7 → 0.3.9

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.
Files changed (100) hide show
  1. package/LICENSE +21 -21
  2. package/README.md +557 -539
  3. package/assets/manifest.json +41 -34
  4. package/assets/skills/comet/SKILL.md +282 -329
  5. package/assets/skills/comet/reference/auto-transition.md +27 -0
  6. package/assets/skills/comet/reference/comet-yaml-fields.md +68 -0
  7. package/assets/skills/comet/reference/context-recovery.md +35 -0
  8. package/assets/skills/comet/reference/debug-gate.md +17 -0
  9. package/assets/skills/comet/reference/decision-point.md +20 -0
  10. package/assets/skills/comet/reference/dirty-worktree.md +59 -59
  11. package/assets/skills/comet/reference/file-structure.md +28 -0
  12. package/assets/skills/comet/reference/subagent-dispatch.md +113 -0
  13. package/assets/skills/comet/rules/comet-phase-guard.en.md +123 -0
  14. package/assets/skills/comet/rules/comet-phase-guard.md +125 -90
  15. package/assets/skills/comet/scripts/comet-guard.sh +27 -1
  16. package/assets/skills/comet/scripts/comet-hook-guard.sh +121 -45
  17. package/assets/skills/comet/scripts/comet-state.sh +162 -7
  18. package/assets/skills/comet/scripts/comet-yaml-validate.sh +3 -1
  19. package/assets/skills/comet-archive/SKILL.md +100 -106
  20. package/assets/skills/comet-build/SKILL.md +304 -316
  21. package/assets/skills/comet-design/SKILL.md +263 -272
  22. package/assets/skills/comet-hotfix/SKILL.md +204 -211
  23. package/assets/skills/comet-open/SKILL.md +220 -186
  24. package/assets/skills/comet-tweak/SKILL.md +180 -179
  25. package/assets/skills/comet-verify/SKILL.md +234 -240
  26. package/assets/skills-zh/comet/SKILL.md +269 -332
  27. package/assets/skills-zh/comet/reference/auto-transition.md +27 -0
  28. package/assets/skills-zh/comet/reference/comet-yaml-fields.md +71 -0
  29. package/assets/skills-zh/comet/reference/context-recovery.md +35 -0
  30. package/assets/skills-zh/comet/reference/debug-gate.md +17 -0
  31. package/assets/skills-zh/comet/reference/decision-point.md +20 -0
  32. package/assets/skills-zh/comet/reference/dirty-worktree.md +59 -59
  33. package/assets/skills-zh/comet/reference/file-structure.md +28 -0
  34. package/assets/skills-zh/comet/reference/subagent-dispatch.md +120 -0
  35. package/assets/skills-zh/comet-archive/SKILL.md +100 -106
  36. package/assets/skills-zh/comet-build/SKILL.md +317 -316
  37. package/assets/skills-zh/comet-design/SKILL.md +264 -273
  38. package/assets/skills-zh/comet-hotfix/SKILL.md +200 -207
  39. package/assets/skills-zh/comet-open/SKILL.md +220 -186
  40. package/assets/skills-zh/comet-tweak/SKILL.md +176 -175
  41. package/assets/skills-zh/comet-verify/SKILL.md +232 -238
  42. package/bin/comet.js +3 -3
  43. package/dist/cli/index.js +21 -1
  44. package/dist/cli/index.js.map +1 -1
  45. package/dist/commands/doctor.d.ts.map +1 -1
  46. package/dist/commands/doctor.js +5 -1
  47. package/dist/commands/doctor.js.map +1 -1
  48. package/dist/commands/i18n.d.ts +4 -0
  49. package/dist/commands/i18n.d.ts.map +1 -0
  50. package/dist/commands/i18n.js +154 -0
  51. package/dist/commands/i18n.js.map +1 -0
  52. package/dist/commands/init.d.ts +3 -0
  53. package/dist/commands/init.d.ts.map +1 -1
  54. package/dist/commands/init.js +127 -75
  55. package/dist/commands/init.js.map +1 -1
  56. package/dist/commands/uninstall.d.ts +9 -0
  57. package/dist/commands/uninstall.d.ts.map +1 -0
  58. package/dist/commands/uninstall.js +132 -0
  59. package/dist/commands/uninstall.js.map +1 -0
  60. package/dist/commands/update.d.ts +3 -2
  61. package/dist/commands/update.d.ts.map +1 -1
  62. package/dist/commands/update.js +105 -68
  63. package/dist/commands/update.js.map +1 -1
  64. package/dist/core/codegraph.d.ts +4 -7
  65. package/dist/core/codegraph.d.ts.map +1 -1
  66. package/dist/core/codegraph.js +63 -41
  67. package/dist/core/codegraph.js.map +1 -1
  68. package/dist/core/detect.d.ts +13 -1
  69. package/dist/core/detect.d.ts.map +1 -1
  70. package/dist/core/detect.js +68 -12
  71. package/dist/core/detect.js.map +1 -1
  72. package/dist/core/openspec.d.ts +2 -2
  73. package/dist/core/openspec.d.ts.map +1 -1
  74. package/dist/core/openspec.js +51 -22
  75. package/dist/core/openspec.js.map +1 -1
  76. package/dist/core/platforms.d.ts.map +1 -1
  77. package/dist/core/platforms.js +14 -1
  78. package/dist/core/platforms.js.map +1 -1
  79. package/dist/core/skills.d.ts +3 -1
  80. package/dist/core/skills.d.ts.map +1 -1
  81. package/dist/core/skills.js +151 -66
  82. package/dist/core/skills.js.map +1 -1
  83. package/dist/core/superpowers.d.ts +1 -1
  84. package/dist/core/superpowers.d.ts.map +1 -1
  85. package/dist/core/superpowers.js +5 -1
  86. package/dist/core/superpowers.js.map +1 -1
  87. package/dist/core/uninstall.d.ts +28 -0
  88. package/dist/core/uninstall.d.ts.map +1 -0
  89. package/dist/core/uninstall.js +421 -0
  90. package/dist/core/uninstall.js.map +1 -0
  91. package/dist/core/version.d.ts +31 -0
  92. package/dist/core/version.d.ts.map +1 -0
  93. package/dist/core/version.js +111 -0
  94. package/dist/core/version.js.map +1 -0
  95. package/dist/utils/file-system.d.ts +23 -0
  96. package/dist/utils/file-system.d.ts.map +1 -1
  97. package/dist/utils/file-system.js +100 -5
  98. package/dist/utils/file-system.js.map +1 -1
  99. package/package.json +69 -64
  100. package/scripts/postinstall.js +44 -44
@@ -0,0 +1,27 @@
1
+ # 自动衔接下一阶段协议
2
+
3
+ 规范路径:`comet/reference/auto-transition.md`
4
+
5
+ 本协议由所有 comet 子 skill 共享,定义阶段守卫推进后的自动衔接规则。
6
+
7
+ ## 术语区分
8
+
9
+ 「阶段守卫推进」由 guard `--apply` 完成,更新 `.comet.yaml` 的 `phase` 字段——这一步**始终发生**,与 `auto_transition` 无关。本协议的「自动衔接」只决定**是否自动调用下一个 skill**,由 `auto_transition` 控制。
10
+
11
+ ## 执行方式
12
+
13
+ 退出条件满足且阶段守卫推进 phase 后,运行:
14
+
15
+ ```bash
16
+ "$COMET_BASH" "$COMET_STATE" next <change-name>
17
+ ```
18
+
19
+ 脚本根据 `phase`、`workflow`、`auto_transition` 输出确定性的下一步:
20
+
21
+ - `NEXT: auto` → 调用 `SKILL` 指向的 skill 进入下一阶段
22
+ - `NEXT: manual` → 不要调用下一 skill,按 `HINT` 提示用户手动运行 `/<SKILL>`
23
+ - `NEXT: done` → 流程已完成,无需继续
24
+
25
+ ## preset 路由
26
+
27
+ `workflow: hotfix` 时,`phase: build` 返回 `comet-hotfix`;`workflow: tweak` 时返回 `comet-tweak`。其余 phase(`verify`、`archive`)按标准 skill 名称返回(`comet-verify`、`comet-archive`),不受 workflow 类型影响。preset skill 内部的"连续执行模式"可能覆盖 `auto_transition` 行为——详见对应 preset 的 `<IMPORTANT>` 块。
@@ -0,0 +1,71 @@
1
+ # .comet.yaml 字段说明
2
+
3
+ 规范路径:`comet/reference/comet-yaml-fields.md`
4
+
5
+ 本文件是 `.comet.yaml` 状态文件的字段参考。按需查阅,不随 skill 一次性加载。
6
+
7
+ ## 示例
8
+
9
+ ```yaml
10
+ workflow: full
11
+ phase: build
12
+ design_doc: docs/superpowers/specs/YYYY-MM-DD-topic-design.md
13
+ plan: docs/superpowers/plans/YYYY-MM-DD-feature.md
14
+ base_ref: a1b2c3d4e5f6...
15
+ build_mode: subagent-driven-development
16
+ build_pause: null
17
+ subagent_dispatch: confirmed
18
+ tdd_mode: tdd
19
+ review_mode: standard
20
+ isolation: branch
21
+ verify_mode: light
22
+ verify_result: pending
23
+ verification_report: null
24
+ branch_status: pending
25
+ created_at: 2026-05-26
26
+ verified_at: null
27
+ archived: false
28
+ ```
29
+
30
+ ## 必需字段
31
+
32
+ | 字段 | 含义 |
33
+ |------|------|
34
+ | `workflow` | `full`、`hotfix` 或 `tweak` |
35
+ | `phase` | 当前阶段:`open`、`design`、`build`、`verify`、`archive`(init 统一设为 `open`,guard 负责过渡) |
36
+ | `design_doc` | 关联的 Superpowers Design Doc 路径,可为空 |
37
+ | `plan` | 关联的 Superpowers Plan 路径,可为空 |
38
+ | `base_ref` | init 时记录的 git commit SHA,用于 scale 评估。无 plan 时作为改动文件数统计基准 |
39
+ | `build_mode` | 已选择的执行方式,可为空 |
40
+ | `build_pause` | build 阶段内部暂停点。`null` 表示无暂停,`plan-ready` 表示 plan 已生成,用户选择切换模型后暂停 |
41
+ | `subagent_dispatch` | `null` 或 `confirmed`。仅当已确认当前平台存在真实后台 subagent / Task / multi-agent 调度能力时,`build_mode: subagent-driven-development` 才能写入并用于离开 build 阶段 |
42
+ | `tdd_mode` | `tdd` 或 `direct`。full workflow 离开 build 阶段前必须已选择。`tdd` 强制每个任务先写失败测试再实现;`direct` 不强制 TDD。hotfix/tweak 默认 `direct` |
43
+ | `review_mode` | `off`、`standard` 或 `thorough`。full workflow 离开 build 阶段前必须已选择;hotfix/tweak 默认 `off` |
44
+ | `isolation` | `branch` 或 `worktree`,工作区隔离方式。full 初始化可为 `null`,但只允许持续到 `/comet-build` Step 3 前;hotfix/tweak 默认 `branch` |
45
+ | `verify_mode` | `light` 或 `full`,可为空 |
46
+ | `auto_transition` | `true` 或 `false`。只控制阶段守卫推进 phase 后是否自动调用下一个 skill;`false` 时由 `comet-state next` 输出 `manual`,暂停下一 skill 调用,但不阻止 phase 字段更新 |
47
+ | `verify_result` | `pending`、`pass` 或 `fail` |
48
+ | `verification_report` | 验证报告文件路径,verify 通过前必须指向已存在文件 |
49
+ | `branch_status` | `pending` 或 `handled`,分支处理完成后设为 `handled` |
50
+ | `created_at` | change 创建日期(init 时自动写入),格式 `YYYY-MM-DD` |
51
+ | `verified_at` | 验证通过时间,可为空 |
52
+ | `archived` | change 是否已归档 |
53
+
54
+ ## 可选字段
55
+
56
+ | 字段 | 含义 |
57
+ |------|------|
58
+ | `direct_override` | `true`/`false`。full workflow 如需使用 `build_mode: direct`,必须显式设为 `true` |
59
+ | `build_command` | 项目构建命令。guard 优先运行该命令,失败时打印命令输出 |
60
+ | `verify_command` | 项目验证命令。verify guard 优先运行该命令,未配置时回退到构建命令 |
61
+
62
+ ## 状态机硬约束
63
+
64
+ - `build → verify` 前,`isolation` 必须是 `branch` 或 `worktree`
65
+ - `build → verify` 前,`build_mode` 必须已选择
66
+ - `build_mode: subagent-driven-development` 必须同时有 `subagent_dispatch: confirmed`
67
+ - full workflow 离开 build 阶段前 `tdd_mode` 必须已选择为 `tdd` 或 `direct`
68
+ - full workflow 离开 build 阶段前 `review_mode` 必须已选择为 `off`、`standard` 或 `thorough`
69
+ - `build_mode: direct` 默认只允许 `hotfix` / `tweak`;full workflow 需要 `direct_override: true`
70
+ - `build_pause` 不是执行方式,不得写入 `build_mode`
71
+ - 这些约束同时存在于 `comet-guard.sh build --apply` 和 `comet-state.sh transition <name> build-complete`
@@ -0,0 +1,35 @@
1
+ # 上下文压缩恢复协议
2
+
3
+ 规范路径:`comet/reference/context-recovery.md`
4
+
5
+ 本协议由所有可能触发上下文压缩的 comet 子 skill 共享。当 agent 怀疑发生上下文压缩(之前对话被摘要、找不到之前讨论的内容)时,按本协议恢复。
6
+
7
+ ## 恢复步骤
8
+
9
+ ```bash
10
+ "$COMET_BASH" "$COMET_STATE" check <change-name> <phase> --recover
11
+ ```
12
+
13
+ 脚本输出结构化恢复上下文(phase、已完成字段、待完成字段、恢复动作)。按 **Recovery action** 决定下一步。
14
+
15
+ ## build 阶段特殊恢复
16
+
17
+ 若恢复脚本输出 `build_mode: subagent-driven-development`:
18
+
19
+ 1. 使用 Skill 工具重新加载 Superpowers `subagent-driven-development` 技能
20
+ 2. 重新阅读 `comet/reference/subagent-dispatch.md` 获取 Comet 专属扩展
21
+ 3. 读取 `openspec/changes/<name>/.comet/subagent-progress.md`,恢复当前 task 或 final review、实现提交、RED/GREEN 证据、已通过审查、未解决反馈和审查-修复轮次
22
+ 4. 禁止在主会话中直接执行 task
23
+ 5. 按检查点记录的精确阶段恢复;检查点缺失或不匹配时才从第一个未勾选 task 的 implementer 派发开始
24
+ 6. task 按 `review_mode` 完成验收并完成定向勾选验证后,立即继续下一个 task,不得总结或询问是否继续
25
+
26
+ ## design 阶段特殊恢复
27
+
28
+ - 若用户尚未确认设计方案,回到 brainstorming 继续
29
+ - 若用户已确认,继续创建 Design Doc
30
+ - 恢复时重新加载 `brainstorm-summary.md` + handoff 上下文文件
31
+
32
+ ## verify/archive 阶段恢复
33
+
34
+ - verify:脚本输出验证状态、分支状态和恢复动作
35
+ - archive:若 `archived: true` 且归档目录存在,归档已完成,无需再次执行
@@ -0,0 +1,17 @@
1
+ # 异常调试协议
2
+
3
+ 规范路径:`comet/reference/debug-gate.md`
4
+
5
+ 本协议由 build、hotfix、tweak 等会直接修改代码的 comet 子 skill 共享。当运行程序、测试、构建或手动验证时出现崩溃、异常行为、测试失败或构建失败,必须进入异常调试协议。
6
+
7
+ ## 核心规则
8
+
9
+ - 立即使用 Skill 工具加载 Superpowers `systematic-debugging` 技能
10
+ - 在完成根因调查前,不得提出或实施源码修复
11
+
12
+ ## 四阶段流程
13
+
14
+ 1. 先复现并定位根因,读取完整错误、检查近期变更、追踪数据流
15
+ 2. 若根因指向源码 bug,先补充能复现该崩溃/异常的最小失败测试,再修改源码
16
+ 3. 修复后运行该失败测试、相关测试和项目构建/验证命令,确认全部通过
17
+ 4. 将测试、源码修复和 tasks.md 勾选保留在当前 change 内;不得通过另起一个“写测试用例”的 change 来替代当前 change 的验证闭环
@@ -0,0 +1,20 @@
1
+ # 用户决策点协议
2
+
3
+ 规范路径:`comet/reference/decision-point.md`
4
+
5
+ 本协议由所有包含用户决策点的 comet 子 skill 共享。凡标注为“阻塞点”或“用户决策点”的步骤,都必须按本协议处理。
6
+
7
+ ## 核心规则
8
+
9
+ - 决策点是阻塞点。到达决策点时必须暂停,等待用户明确选择后才能继续
10
+ - 必须使用当前平台可用的用户输入/确认机制获取选择
11
+ - 若当前平台没有结构化提问工具,则必须在对话中提出明确选项并停止流程,等待用户回复
12
+ - 不得用推荐规则、默认值、历史偏好或“用户应该会同意”的推断代替当前确认
13
+ - 用户明确选择前,不得写入对应状态字段、执行对应分支操作或自动继续下一阶段
14
+
15
+ ## 最低呈现要求
16
+
17
+ - 说明当前决策点正在决定什么
18
+ - 给出清晰可选项;需要用户单选时,选项必须互斥且可执行
19
+ - 如有推荐,只能作为说明,不能替代用户确认
20
+ - 用户选择后,再执行对应命令或状态更新
@@ -1,59 +1,59 @@
1
- # Dirty Worktree 协议
2
-
3
- 规范路径:`comet/reference/dirty-worktree.md`
4
-
5
- 本协议由所有涉及代码修改的 comet 子 skill 共享。当 agent 恢复上下文或继续执行时,必须按本协议处理未提交的工作区改动。各子 skill 可在本协议基础上定义阶段特例(如 verify 阶段对实现改动的特殊处理),详见对应子 skill 文件。本文件不重复阶段特例。
6
-
7
- ## 1. 检查步骤
8
-
9
- 继续或开始修改前,必须先运行以下命令:
10
-
11
- ```bash
12
- git status --short
13
- git diff --stat
14
- git diff --cached --stat
15
- git ls-files --others --exclude-standard
16
- ```
17
-
18
- 必要时再查看 `git diff` / `git diff --cached` / 新建文件内容。
19
-
20
- ## 2. 核心规则
21
-
22
- - 用户可能不会说明自己改了哪里。只要存在 dirty worktree(包括 Git 状态里显示为 `??` 的新建文件),就先假设改动可能来自用户或混合来源
23
- - **构建产物排除**:`??` 文件若匹配 `.gitignore` 中的模式(如 `node_modules/`、`dist/`、`__pycache__/`、`*.o`、`target/`、`build/` 等),自动跳过归因,不视为用户改动
24
- - dirty worktree 只代表代码事实,不会自动推进 `.comet.yaml` 的 `phase` 或勾选 `tasks.md`;只有完成归因、验证、同步必要文档,并通过对应阶段 guard 后,才允许推进 Comet 状态
25
-
26
- ## 3. 归因分类
27
-
28
- 将 dirty diff 分为三类:
29
-
30
- 1. **属于当前 change**:文件和内容能对应当前 change 的目标、tasks.md、plan 或 delta spec。将其纳入当前任务继续,不重复改同一处
31
- 2. **不属于当前 change**:文件或内容与当前目标无关。暂停并询问用户:并入当前 change、拆成新 change、保留不处理,或明确授权丢弃
32
- 3. **来源不确定**:无法从 diff 和文档判断归属。暂停并向用户汇报文件列表和判断依据,不继续推进阶段
33
-
34
- ## 4. 常见处理模式
35
-
36
- ### 已实现但 tasks.md 未勾选
37
-
38
- 先验证实现(运行构建和测试),通过后补勾任务。不要因为任务未勾选就重做一遍,也不要因为状态文件滞后而忽略代码事实。若当前子 skill 定义了阶段特例,以子 skill 为准。
39
-
40
- ### 暗示计划或范围已变化
41
-
42
- 按当前子 skill 的升级、增量更新或回退规则处理,本协议不重复阶段特例。
43
-
44
- ### 模糊恢复意图
45
-
46
- 用户说"继续""接着跑""我改了一点""刚才不满意""重新弄""代码动过""先按现在的来"等模糊恢复意图时,按本协议处理。不要要求用户先回忆具体改了哪里。
47
-
48
- ### open/design 阶段出现代码改动
49
-
50
- 若当前仍处于 `open` 或 `design`,但 dirty worktree 已经包含代码改动,先按本协议归因,不要直接推进阶段:
51
-
52
- - 属于当前 change 的改动:作为需求或设计输入记录到 proposal/design/spec/design doc/tasks 中;进入 build 前仍需完成对应阶段 guard
53
- - 不属于当前 change 或来源不确定:暂停询问用户是并入当前 change、拆成新 change、保留不处理,还是明确授权丢弃
54
- - 禁止在 open/design 阶段直接把代码改动当作已完成实现并推进到 verify
55
-
56
- ## 5. 禁令
57
-
58
- - 禁止在未理解 dirty diff 来源时覆盖、回滚、格式化重写或忽略用户改动
59
- - 禁止在 dirty diff 未解释清楚时判定验证通过
1
+ # Dirty Worktree 协议
2
+
3
+ 规范路径:`comet/reference/dirty-worktree.md`
4
+
5
+ 本协议由所有涉及代码修改的 comet 子 skill 共享。当 agent 恢复上下文或继续执行时,必须按本协议处理未提交的工作区改动。各子 skill 可在本协议基础上定义阶段特例(如 verify 阶段对实现改动的特殊处理),详见对应子 skill 文件。本文件不重复阶段特例。
6
+
7
+ ## 1. 检查步骤
8
+
9
+ 继续或开始修改前,必须先运行以下命令:
10
+
11
+ ```bash
12
+ git status --short
13
+ git diff --stat
14
+ git diff --cached --stat
15
+ git ls-files --others --exclude-standard
16
+ ```
17
+
18
+ 必要时再查看 `git diff` / `git diff --cached` / 新建文件内容。
19
+
20
+ ## 2. 核心规则
21
+
22
+ - 用户可能不会说明自己改了哪里。只要存在 dirty worktree(包括 Git 状态里显示为 `??` 的新建文件),就先假设改动可能来自用户或混合来源
23
+ - **构建产物排除**:`??` 文件若匹配 `.gitignore` 中的模式(如 `node_modules/`、`dist/`、`__pycache__/`、`*.o`、`target/`、`build/` 等),自动跳过归因,不视为用户改动
24
+ - dirty worktree 只代表代码事实,不会自动推进 `.comet.yaml` 的 `phase` 或勾选 `tasks.md`;只有完成归因、验证、同步必要文档,并通过对应阶段 guard 后,才允许推进 Comet 状态
25
+
26
+ ## 3. 归因分类
27
+
28
+ 将 dirty diff 分为三类:
29
+
30
+ 1. **属于当前 change**:文件和内容能对应当前 change 的目标、tasks.md、plan 或 delta spec。将其纳入当前任务继续,不重复改同一处
31
+ 2. **不属于当前 change**:文件或内容与当前目标无关。暂停并询问用户:并入当前 change、拆成新 change、保留不处理,或明确授权丢弃
32
+ 3. **来源不确定**:无法从 diff 和文档判断归属。暂停并向用户汇报文件列表和判断依据,不继续推进阶段
33
+
34
+ ## 4. 常见处理模式
35
+
36
+ ### 已实现但 tasks.md 未勾选
37
+
38
+ 先验证实现(运行构建和测试),通过后补勾任务。不要因为任务未勾选就重做一遍,也不要因为状态文件滞后而忽略代码事实。若当前子 skill 定义了阶段特例,以子 skill 为准。
39
+
40
+ ### 暗示计划或范围已变化
41
+
42
+ 按当前子 skill 的升级、增量更新或回退规则处理,本协议不重复阶段特例。
43
+
44
+ ### 模糊恢复意图
45
+
46
+ 用户说"继续""接着跑""我改了一点""刚才不满意""重新弄""代码动过""先按现在的来"等模糊恢复意图时,按本协议处理。不要要求用户先回忆具体改了哪里。
47
+
48
+ ### open/design 阶段出现代码改动
49
+
50
+ 若当前仍处于 `open` 或 `design`,但 dirty worktree 已经包含代码改动,先按本协议归因,不要直接推进阶段:
51
+
52
+ - 属于当前 change 的改动:作为需求或设计输入记录到 proposal/design/spec/design doc/tasks 中;进入 build 前仍需完成对应阶段 guard
53
+ - 不属于当前 change 或来源不确定:暂停询问用户是并入当前 change、拆成新 change、保留不处理,还是明确授权丢弃
54
+ - 禁止在 open/design 阶段直接把代码改动当作已完成实现并推进到 verify
55
+
56
+ ## 5. 禁令
57
+
58
+ - 禁止在未理解 dirty diff 来源时覆盖、回滚、格式化重写或忽略用户改动
59
+ - 禁止在 dirty diff 未解释清楚时判定验证通过
@@ -0,0 +1,28 @@
1
+ # 文件结构参考
2
+
3
+ 规范路径:`comet/reference/file-structure.md`
4
+
5
+ 本文件是 Comet 项目文件结构参考。按需查阅,不随 skill 一次性加载。
6
+
7
+ ```text
8
+ openspec/ # OpenSpec — WHAT
9
+ ├── config.yaml
10
+ ├── changes/
11
+ │ ├── <name>/ # 活跃 change
12
+ │ │ ├── .openspec.yaml
13
+ │ │ ├── .comet.yaml
14
+ │ │ ├── proposal.md # Why + What
15
+ │ │ ├── design.md # 高层架构决策
16
+ │ │ ├── specs/<capability>/spec.md # Delta 能力规格
17
+ │ │ ├── .comet/handoff/ # 脚本生成的阶段交接包
18
+ │ │ └── tasks.md # 任务清单
19
+ │ └── archive/YYYY-MM-DD-<name>/ # 已归档
20
+ └── specs/<capability>/spec.md # 主 specs(归档时按 OpenSpec delta 语义合并)
21
+
22
+ docs/superpowers/ # Superpowers — HOW
23
+ ├── specs/YYYY-MM-DD-<topic>-design.md # 设计文档(技术 RFC,归档时标注状态)
24
+ └── plans/YYYY-MM-DD-<feature>.md # 实施计划(文件头含 change 关联元数据)
25
+
26
+ .comet/
27
+ └── config.yaml # Comet 项目配置(context_compression 默认 off,可设 beta)
28
+ ```
@@ -0,0 +1,120 @@
1
+ # Subagent 驱动开发的 Comet 扩展
2
+
3
+ 规范路径:`comet/reference/subagent-dispatch.md`
4
+
5
+ 本文档提供在 Superpowers `subagent-driven-development` 技能**之上**应用的 Comet 专属扩展。该技能负责核心派发循环(每个 task 派发全新 implementer → spec compliance review → code quality review → 下一个 task)并强制连续执行。本文档添加 Comet 特有的真实后台调度、任务追踪、状态验证、代码审查模式和上下文恢复。若 Superpowers 技能与本文档发生冲突时,以本文档中更具体的 Comet 约束为准。
6
+
7
+ > **⚠️ 关键约束 — 任务之间禁止暂停**
8
+ >
9
+ > 当一个 task 按 `review_mode` 完成验收并被勾选后,**立即派发下一个 task**,不得停止、总结或询问用户是否继续。用户期望所有 task 按顺序自动执行,无需手动干预。任务之间暂停会中断工作流,导致用户每次都需要手动恢复。
10
+ >
11
+ > 仅在以下情况才停止并等待用户输入:
12
+ > - 任务处于 **BLOCKED** 状态(`review_mode: standard` 下一轮轻量复查仍未通过,或 `review_mode: thorough` 下批次/最终审查 2 轮审查-修复仍未通过)
13
+ > - 存在无法从仓库、计划或既有上下文消除的真实歧义
14
+ > - 平台没有真实后台 agent 调度能力,需要用户改选 `executing-plans`
15
+ > - 用户**明确**要求暂停
16
+ >
17
+ > 此规则适用于整个派发循环,而非单个任务。
18
+
19
+ ## 开始前
20
+
21
+ 1. 读取计划一次,按顺序提取所有未勾选 task 的完整文本。
22
+ 2. 为每个 task 保存唯一标识:plan 中 checkbox 后的完整任务文本,以及它映射的 OpenSpec task 完整文本(若存在)。若文本不唯一,停止并先修正计划,禁止依赖"第一个匹配项"。
23
+ 3. 尊重依赖关系;依赖尚未完成的 task 不得提前派发。
24
+
25
+ ## 每个 Task 的 Comet 扩展
26
+
27
+ 在每个 task 上应用这些扩展,叠加在 Superpowers 技能的派发循环之上:
28
+
29
+ ### 0. 派发强制约束(关键)
30
+
31
+ 主会话**仅负责协调**,禁止直接执行 task。主会话禁止修改源代码。协调者唯一允许的文件修改是 plan、OpenSpec task 和 subagent 进度检查点的持久化更新。不得把多个 task 打包给同一个 agent。每个 task 派发一个全新的后台 implementer agent;当 `review_mode` 需要审查或修复时,spec reviewer、code quality reviewer、修复 agent 和 final reviewer 也必须分别使用全新的后台 agent:
32
+
33
+ - **Claude Code**:对每个 implementer,以及 `review_mode` 要求的 spec reviewer、code quality reviewer、修复 agent 和 final reviewer 使用 `Agent` 工具并设置 `run_in_background: true`。禁止内联执行 task,禁止错误进入需要预先创建 team 的团队模式。
34
+ - **其他平台**:使用平台等效的后台 agent / Task / 多 agent 派发机制。
35
+ - **禁止**跨 task 或角色复用 implementer、reviewer 或修复 agent。每个 agent 拥有全新的隔离上下文,并且只接收当前角色所需的单个 task 上下文。
36
+ - 若平台无真实后台派发能力,不得继续;暂停并等待用户改选 `build_mode: executing-plans`。
37
+
38
+ ### 1. 派发 Prompt 与回报契约
39
+
40
+ 每个 implementer 或修复 agent prompt 必须包含:
41
+
42
+ - 当前单个 task 的完整文本、架构背景和依赖上下文
43
+ - `Language: 使用触发本次工作流的用户请求语言输出`
44
+ - 允许修改的文件范围和禁止修改的范围
45
+ - 必须执行的测试命令和提交要求
46
+ - 修复 agent 还必须收到对应 reviewer 的完整反馈
47
+
48
+ agent 回报状态必须为 `DONE | DONE_WITH_CONCERNS | BLOCKED | NEEDS_CONTEXT`,并包含实现内容、测试结果、提交哈希、变更文件和顾虑。进入审查前,主会话必须确认提交和文件在当前工作树可见;若平台使用隔离副本,先拉取或合并变更。
49
+
50
+ 当 `review_mode` 需要 reviewer 时,每个 reviewer prompt 必须包含完整 task、实现提交或差异以及 RED/GREEN 证据(`tdd_mode: tdd` 时)。reviewer 不得只依据 implementer 的总结进行审查。
51
+
52
+ ### 2. Implementer 范围限制
53
+
54
+ implementer 只负责实现、测试和提交代码。**implementer 不得勾选 plan 或 OpenSpec task**,也不得只更新内置 Todo 或对话 checklist。
55
+
56
+ ### 3. TDD 硬约束
57
+
58
+ 若 `tdd_mode: tdd`,每个 implementer 和修复 agent 必须先使用 Skill 工具加载 Superpowers `test-driven-development` 技能,并在 prompt 中同时注入:
59
+
60
+ ```text
61
+ You MUST follow TDD: write a failing test first, watch it fail, then write minimal code to pass. No production code without a failing test first.
62
+ ```
63
+
64
+ implementer 或修复 agent 回报必须提供 **RED 失败命令与失败摘要**、**GREEN 通过命令与通过摘要**;缺少任一证据不得进入审查。spec compliance reviewer 和 code quality reviewer 都必须核验 RED/GREEN 证据与测试覆盖。
65
+
66
+ ### 4. 持久进度检查点
67
+
68
+ 主会话必须维护 `openspec/changes/<name>/.comet/subagent-progress.md`,并在每次派发、agent 回报、审查结果、修复轮次变化和 task 勾选后立即更新。检查点至少记录:
69
+
70
+ - 当前 plan task 唯一文本及映射的 OpenSpec task 文本
71
+ - 当前阶段:`implementing | spec-review | quality-review | checkoff | done | blocked | final-review | final-fix`
72
+ - 实现提交哈希、变更文件和 RED/GREEN 证据
73
+ - 已选择的 `review_mode`
74
+ - 已通过的审查阶段及尚未解决的 reviewer 反馈
75
+ - 当前 task、批次或 final review 的审查-修复轮次(`standard` 最多 1 轮,`thorough` 最多 2 轮,`off` 为 0 轮)
76
+
77
+ 该文件只保存恢复所需的协调状态,不替代 plan 或 OpenSpec checkbox。当前 task 完成后保留其最终记录,开始下一个 task 时用下一 task 的记录替换。
78
+
79
+ ### 5. 代码审查模式与轮次限制
80
+
81
+ 当 `review_mode: standard` 时,每个 task 不自动派发 per-task reviewer;implementer 必须自测、提交并回报证据,协调者完成定向勾选验证。所有 task 完成后只派发一次最终轻量 code reviewer,审查范围限定为正确性、安全和边界条件。若最终轻量审查发现 CRITICAL 或 IMPORTANT 问题,最多自动派发一轮修复 agent 并复查一次;复查仍未通过时标记 **BLOCKED**,暂停并把反馈交给用户。非 CRITICAL 发现可记录接受理由后继续。
82
+
83
+ 当 `review_mode: thorough` 时,不执行每 task 双审查。协调者按批次或风险边界运行合并审查:每完成最多 3 个 task、或完成一个跨模块/高风险边界时,派发一个 reviewer 同时检查 spec compliance 与 code quality。若总 task 数不超过 3 且没有高风险边界,可跳过中途批次审查,只做最终完整审查。所有 task 完成后再派发一次最终完整 reviewer。批次和最终审查各最多 2 轮审查-修复;仍未通过则标记 **BLOCKED**,暂停并把累计反馈交给用户。
84
+
85
+ 当 `review_mode: off` 时,不自动派发 spec reviewer、code quality reviewer、final reviewer 或审查修复 agent。任务完成依据 implementer 的测试/构建证据、当前工作树确认、任务唯一文本勾选验证和用户显式要求。若执行过程中出现测试失败、构建失败或异常行为,仍必须按异常调试协议处理,不得用 `off` 跳过真实问题。
86
+
87
+ ### 6. Task 勾选与验证
88
+
89
+ **按 `review_mode` 完成验收后**,主会话:
90
+
91
+ 1. 将 plan 中保存的唯一 task 文本从 `- [ ]` 改为 `- [x]`
92
+ 2. 若存在映射,再同步勾选 OpenSpec task
93
+ 3. 提交这次进度更新
94
+ 4. 运行定向验证:
95
+
96
+ ```bash
97
+ "$COMET_BASH" "$COMET_STATE" task-checkoff "$PLAN_FILE" "$PLAN_TASK_TEXT"
98
+ "$COMET_BASH" "$COMET_STATE" task-checkoff "openspec/changes/<name>/tasks.md" "$OPENSPEC_TASK_TEXT"
99
+ ```
100
+
101
+ 仅在对应映射存在时运行第二条。脚本会要求任务文本恰好出现一次且该项已勾选;验证失败时不得进入下一个 task。
102
+
103
+ ## 收尾
104
+
105
+ - **自动继续**:按 `review_mode` 完成验收并勾选 task 后,立即派发下一个未勾选的 task。禁止总结、禁止询问用户是否继续、禁止在任务之间等待用户输入。这是不可协商的 —— Superpowers 技能强制连续执行,文档顶部的关键约束进一步强化此规则。
106
+ - 所有 task 完成后,若 `review_mode: standard`,将检查点切换为 `final-review`,只派发一次最终轻量 code reviewer。CRITICAL 或 IMPORTANT 问题最多自动修复和复查一轮;仍未通过则暂停交给用户。通过或接受非 CRITICAL 发现后继续返回 `comet-build`。
107
+ - 所有 task 完成后,若 `review_mode: thorough`,将检查点切换为 `final-review`,派发一次最终完整 reviewer。CRITICAL 或 IMPORTANT 问题最多自动修复和复查两轮;仍未通过则暂停交给用户。通过或接受非 CRITICAL 发现后继续返回 `comet-build`。
108
+ - 所有 task 完成后,若 `review_mode: off`,不进入 `final-review` 或 `final-fix`,但必须在持久产物中记录跳过自动代码审查的原因,然后返回 `comet-build`。
109
+ - final review 通过后,结束的只是 subagent 派发循环,不是 Comet workflow。不得加载 `finishing-a-development-branch`,不得停下来询问用户下一步;必须返回 `comet-build` 继续执行退出条件、阶段守卫和后续阶段衔接。
110
+
111
+ ## 上下文恢复
112
+
113
+ 重新加载 Superpowers `subagent-driven-development` 技能并重新阅读本文档。先读取 `openspec/changes/<name>/.comet/subagent-progress.md`,再与第一个未勾选 task 和当前工作树核对:
114
+
115
+ - 检查点与未勾选 task 匹配时,从记录的精确阶段恢复,保留实现提交、RED/GREEN 证据、`review_mode`、已通过的审查阶段、未解决反馈和当前审查-修复轮次;不得重置轮次或重复已经通过的阶段。
116
+ - 检查点缺失或与未勾选 task 不匹配时,为第一个未勾选 task 创建新检查点并从 implementer 派发开始。
117
+ - 检查点中的提交或文件在当前工作树不可见时,先拉取、合并或恢复对应变更;不得假定实现已存在。
118
+ - 所有 task 已勾选且检查点处于 `final-review` 或 `final-fix` 时,从最终审查的精确阶段恢复,并保留最终反馈和审查-修复轮次;不得重新进入已完成的 task。
119
+
120
+ 已提交但未按 `review_mode` 完成验收的 task 保持未勾选,并按检查点重新进入对应的验证、审查或修复流程。