@rpamis/comet
Advanced tools
@@ -27,3 +27,3 @@ --- | ||
| . "$COMET_ENV" | ||
| bash "$COMET_STATE" check <name> archive | ||
| "$COMET_BASH" "$COMET_STATE" check <name> archive | ||
| ``` | ||
@@ -38,3 +38,3 @@ | ||
| ```bash | ||
| bash "$COMET_ARCHIVE" "<change-name>" | ||
| "$COMET_BASH" "$COMET_ARCHIVE" "<change-name>" | ||
| ``` | ||
@@ -71,3 +71,3 @@ | ||
| 归档脚本会把 `openspec/changes/<name>/` 移动到 `openspec/changes/archive/YYYY-MM-DD-<name>/`。归档成功后**不要再对原 change 名运行** `bash "$COMET_GUARD" <change-name> archive`,因为原活跃目录已经不存在。归档完整性以脚本退出码和归档目录状态为准。 | ||
| 归档脚本会把 `openspec/changes/<name>/` 移动到 `openspec/changes/archive/YYYY-MM-DD-<name>/`。归档成功后**不要再对原 change 名运行** `"$COMET_BASH" "$COMET_GUARD" <change-name> archive`,因为原活跃目录已经不存在。归档完整性以脚本退出码和归档目录状态为准。 | ||
@@ -74,0 +74,0 @@ ## 完成 |
@@ -26,3 +26,3 @@ --- | ||
| . "$COMET_ENV" | ||
| bash "$COMET_STATE" check <name> build | ||
| "$COMET_BASH" "$COMET_STATE" check <name> build | ||
| ``` | ||
@@ -36,3 +36,3 @@ | ||
| **立即执行:** 使用 Skill 工具加载 `superpowers:writing-plans` 技能。禁止跳过此步骤。 | ||
| **立即执行:** 使用 Skill 工具加载 Superpowers `writing-plans` 技能。禁止跳过此步骤。 | ||
@@ -58,3 +58,3 @@ 技能加载后,按其指引制定计划。计划要求: | ||
| ### 2. 更新计划状态 | ||
| ### 2. 更新计划状态并提供 plan-ready 暂停点 | ||
@@ -64,3 +64,3 @@ 先记录 plan 路径: | ||
| ```bash | ||
| bash "$COMET_STATE" set <name> plan docs/superpowers/plans/YYYY-MM-DD-feature.md | ||
| "$COMET_BASH" "$COMET_STATE" set <name> plan docs/superpowers/plans/YYYY-MM-DD-feature.md | ||
| ``` | ||
@@ -70,4 +70,35 @@ | ||
| 计划写入后,立即提供一个新的用户决策点: | ||
| | 选项 | 行为 | 说明 | | ||
| |------|------|------| | ||
| | A | 继续执行 | 保持在当前模型中,进入 Step 3 选择工作区隔离和执行方式 | | ||
| | B | 暂停切换模型 | 记录 `build_pause: plan-ready`,本次 `/comet-build` 停止,用户稍后可从 `/comet` 或 `/comet-build` 恢复 | | ||
| 这是用户决策点。**必须使用 AskUserQuestion 工具暂停并等待用户明确选择**,不得自动继续,也不得把暂停写入 `build_mode`。 | ||
| 用户选择继续时: | ||
| ```bash | ||
| "$COMET_BASH" "$COMET_STATE" set <name> build_pause null | ||
| ``` | ||
| 用户选择暂停时: | ||
| ```bash | ||
| "$COMET_BASH" "$COMET_STATE" set <name> build_pause plan-ready | ||
| ``` | ||
| 设置 `build_pause: plan-ready` 后,当前调用停止。不要选择 `isolation` 或 `build_mode`,不要加载执行技能。 | ||
| ### 3. 选择工作方式 | ||
| 如果恢复时检测到 `build_pause: plan-ready` 且 `plan` 文件存在,不要重新运行 `writing-plans`。先告知用户当前停在 plan-ready 暂停点;用户确认继续后,设置: | ||
| ```bash | ||
| "$COMET_BASH" "$COMET_STATE" set <name> build_pause null | ||
| ``` | ||
| 然后继续本步骤选择工作区隔离和执行方式。 | ||
| 计划已写入当前分支。在开始执行前,**一次性询问用户**选择工作区隔离方式和执行方式: | ||
@@ -90,4 +121,4 @@ | ||
| |------|------|---------| | ||
| | A | `superpowers:subagent-driven-development` | 任务独立、复杂度高、需要双阶段审查 | | ||
| | B | `superpowers:executing-plans` | 任务简单、无子agent环境、轻量快速 | | ||
| | A | Superpowers `subagent-driven-development` | 任务独立、复杂度高、需要双阶段审查 | | ||
| | B | Superpowers `executing-plans` | 任务简单、无子agent环境、轻量快速 | | ||
@@ -104,4 +135,4 @@ **执行方式推荐规则**: | ||
| ```bash | ||
| bash "$COMET_STATE" set <name> isolation <branch|worktree> | ||
| bash "$COMET_STATE" set <name> build_mode <subagent-driven-development|executing-plans|direct> | ||
| "$COMET_BASH" "$COMET_STATE" set <name> isolation <branch|worktree> | ||
| "$COMET_BASH" "$COMET_STATE" set <name> build_mode <subagent-driven-development|executing-plans|direct> | ||
| ``` | ||
@@ -114,4 +145,4 @@ | ||
| ```bash | ||
| bash "$COMET_STATE" set <name> direct_override true | ||
| bash "$COMET_STATE" set <name> build_mode direct | ||
| "$COMET_BASH" "$COMET_STATE" set <name> direct_override true | ||
| "$COMET_BASH" "$COMET_STATE" set <name> build_mode direct | ||
| ``` | ||
@@ -124,3 +155,3 @@ | ||
| - **branch**:执行 `git checkout -b <change-name>`,后续工作在新分支上进行 | ||
| - **worktree**:必须使用 Skill 工具加载 `superpowers:using-git-worktrees` 技能创建隔离工作区。禁止用普通 shell 命令或原生工具绕过该技能;如该技能不可用,停止流程并提示安装或启用 Superpowers 技能。 | ||
| - **worktree**:必须使用 Skill 工具加载 Superpowers `using-git-worktrees` 技能创建隔离工作区。禁止用普通 shell 命令或原生工具绕过该技能;如该技能不可用,停止流程并提示安装或启用 Superpowers 技能。 | ||
@@ -145,3 +176,3 @@ 创建隔离后,确认计划文件可访问(分支方式天然可访问;worktree 方式需确认计划已提交)。 | ||
| | 小 | 遗漏验收场景、边界条件 | 直接编辑 delta spec + design.md,追加 tasks.md 任务 | | ||
| | 中 | 接口变更、新增组件、数据流变化 | **使用 AskUserQuestion 工具暂停并等待用户确认后**,必须使用 Skill 工具加载 `superpowers:brainstorming` 更新 Design Doc + delta spec | | ||
| | 中 | 接口变更、新增组件、数据流变化 | **使用 AskUserQuestion 工具暂停并等待用户确认后**,必须使用 Skill 工具加载 Superpowers `brainstorming` 更新 Design Doc + delta spec | | ||
| | 大 | 全新 capability 需求 | **必须使用 AskUserQuestion 工具暂停并等待用户确认拆分**;用户确认后,通过 `/comet-open` 创建独立 change | | ||
@@ -164,3 +195,3 @@ | ||
| - **每完成一个 task**:立即勾选 tasks.md 并提交代码,确保 `.comet.yaml` 和文件状态持久化 | ||
| - **上下文压缩后恢复**:先运行 `bash "$COMET_STATE" check <change-name> build --recover`,脚本输出结构化恢复上下文(isolation/build_mode 状态、plan 路径、任务完成进度、恢复动作)。根据 Recovery action 决定下一步。 | ||
| - **上下文压缩后恢复**:先运行 `"$COMET_BASH" "$COMET_STATE" check <change-name> build --recover`,脚本输出结构化恢复上下文(isolation/build_mode 状态、plan 路径、任务完成进度、恢复动作)。根据 Recovery action 决定下一步。 | ||
| - **用户手动修改恢复**:按 `comet/reference/dirty-worktree.md` 协议处理未提交改动。该协议定义了检查步骤、归因分类和禁令。build 阶段的特殊处理: | ||
@@ -177,3 +208,3 @@ 1. 归因后,若 diff 暗示计划或 spec 已变化,按 Step 4「Spec 增量更新」分级处理 | ||
| - `build_mode` 已写为 `subagent-driven-development`、`executing-plans` 或带显式 override 的 `direct` | ||
| - **阶段守卫**:运行 `bash "$COMET_GUARD" <change-name> build --apply`,全部 PASS 后自动流转到 `phase: verify` | ||
| - **阶段守卫**:运行 `"$COMET_BASH" "$COMET_GUARD" <change-name> build --apply`,全部 PASS 后自动流转到 `phase: verify` | ||
@@ -193,3 +224,3 @@ Guard 会优先读取项目配置中的命令: | ||
| ```bash | ||
| bash "$COMET_GUARD" <change-name> build --apply | ||
| "$COMET_BASH" "$COMET_GUARD" <change-name> build --apply | ||
| ``` | ||
@@ -196,0 +227,0 @@ |
@@ -26,3 +26,3 @@ --- | ||
| . "$COMET_ENV" | ||
| bash "$COMET_STATE" check <name> design | ||
| "$COMET_BASH" "$COMET_STATE" check <name> design | ||
| ``` | ||
@@ -39,3 +39,3 @@ | ||
| ```bash | ||
| bash "$COMET_HANDOFF" <change-name> design --write | ||
| "$COMET_BASH" "$COMET_HANDOFF" <change-name> design --write | ||
| ``` | ||
@@ -65,3 +65,3 @@ | ||
| ```bash | ||
| bash "$COMET_HANDOFF" <change-name> design --write --full | ||
| "$COMET_BASH" "$COMET_HANDOFF" <change-name> design --write --full | ||
| ``` | ||
@@ -77,3 +77,3 @@ | ||
| **立即执行:** 使用 Skill 工具加载 `superpowers:brainstorming` 技能,ARGUMENTS 包含: | ||
| **立即执行:** 使用 Skill 工具加载 Superpowers `brainstorming` 技能,ARGUMENTS 包含: | ||
@@ -101,3 +101,3 @@ ``` | ||
| 如 `superpowers:brainstorming` 不可用,停止流程并提示安装或启用 Superpowers 技能,不要用普通对话替代该步骤。 | ||
| 如 Superpowers `brainstorming` 技能不可用,停止流程并提示安装或启用 Superpowers 技能,不要用普通对话替代该步骤。 | ||
@@ -129,9 +129,9 @@ 技能加载后,按其指引产出设计方案(以对话形式呈现): | ||
| # 记录 design_doc 路径 | ||
| bash "$COMET_STATE" set <name> design_doc docs/superpowers/specs/YYYY-MM-DD-topic-design.md | ||
| "$COMET_BASH" "$COMET_STATE" set <name> design_doc docs/superpowers/specs/YYYY-MM-DD-topic-design.md | ||
| # 如有 delta spec 变更,重新生成 handoff(更新 hash) | ||
| bash "$COMET_HANDOFF" <change-name> design --write | ||
| "$COMET_BASH" "$COMET_HANDOFF" <change-name> design --write | ||
| # 自动流转到下一阶段 | ||
| bash "$COMET_GUARD" <change-name> design --apply | ||
| "$COMET_BASH" "$COMET_GUARD" <change-name> design --apply | ||
| ``` | ||
@@ -150,3 +150,3 @@ | ||
| - `design_doc` 已写入 `.comet.yaml` | ||
| - **阶段守卫**:运行 `bash "$COMET_GUARD" <change-name> design --apply`,全部 PASS 后自动流转到 `phase: build` | ||
| - **阶段守卫**:运行 `"$COMET_BASH" "$COMET_GUARD" <change-name> design --apply`,全部 PASS 后自动流转到 `phase: build` | ||
@@ -156,3 +156,3 @@ 退出前必须使用 `--apply`: | ||
| ```bash | ||
| bash "$COMET_GUARD" <change-name> design --apply | ||
| "$COMET_BASH" "$COMET_GUARD" <change-name> design --apply | ||
| ``` | ||
@@ -165,3 +165,3 @@ | ||
| ```bash | ||
| bash "$COMET_STATE" check <change-name> design --recover | ||
| "$COMET_BASH" "$COMET_STATE" check <change-name> design --recover | ||
| ``` | ||
@@ -168,0 +168,0 @@ |
@@ -49,3 +49,3 @@ --- | ||
| ```bash | ||
| bash "$COMET_STATE" init <name> hotfix | ||
| "$COMET_BASH" "$COMET_STATE" init <name> hotfix | ||
| ``` | ||
@@ -56,3 +56,3 @@ | ||
| ```bash | ||
| bash "$COMET_STATE" check <name> open | ||
| "$COMET_BASH" "$COMET_STATE" check <name> open | ||
| ``` | ||
@@ -63,3 +63,3 @@ | ||
| ```bash | ||
| bash "$COMET_GUARD" <change-name> open --apply | ||
| "$COMET_BASH" "$COMET_GUARD" <change-name> open --apply | ||
| ``` | ||
@@ -69,3 +69,3 @@ | ||
| 使用 hotfix 默认值:`build_mode: direct`。跳过 `superpowers:brainstorming` 和 `superpowers:writing-plans`(除非任务 > 3 个;若超过 3 个任务,转入 `/comet-build` 的计划与执行方式选择)。 | ||
| 使用 hotfix 默认值:`build_mode: direct`。跳过 Superpowers `brainstorming` 和 `writing-plans`(除非任务 > 3 个;若超过 3 个任务,转入 `/comet-build` 的计划与执行方式选择)。 | ||
@@ -104,3 +104,3 @@ 继续或开始修改前,按 `comet/reference/dirty-worktree.md` 协议处理未提交改动。若归因后发现修复范围超出 hotfix,按本文件“升级条件”处理。 | ||
| ```bash | ||
| bash "$COMET_GUARD" <change-name> build --apply | ||
| "$COMET_BASH" "$COMET_GUARD" <change-name> build --apply | ||
| ``` | ||
@@ -162,3 +162,3 @@ | ||
| ```bash | ||
| bash "$COMET_STATE" set <name> workflow full | ||
| "$COMET_BASH" "$COMET_STATE" set <name> workflow full | ||
| ``` | ||
@@ -175,2 +175,2 @@ | ||
| - 如有 spec 变更,已同步到 main spec | ||
| - **阶段守卫**:build → verify 前运行 `bash "$COMET_GUARD" <change-name> build --apply`,verify → archive 前按 `/comet-verify` 规则运行 `bash "$COMET_GUARD" <change-name> verify --apply` | ||
| - **阶段守卫**:build → verify 前运行 `"$COMET_BASH" "$COMET_GUARD" <change-name> build --apply`,verify → archive 前按 `/comet-verify` 规则运行 `"$COMET_BASH" "$COMET_GUARD" <change-name> verify --apply` |
@@ -52,3 +52,3 @@ --- | ||
| bash "$COMET_STATE" init <name> full | ||
| "$COMET_BASH" "$COMET_STATE" init <name> full | ||
| ``` | ||
@@ -61,3 +61,3 @@ | ||
| ```bash | ||
| bash "$COMET_STATE" check <name> open | ||
| "$COMET_BASH" "$COMET_STATE" check <name> open | ||
| ``` | ||
@@ -99,3 +99,3 @@ | ||
| - **用户已确认** proposal、design、tasks 内容符合预期 | ||
| - **阶段守卫**:运行 `bash "$COMET_GUARD" <change-name> open --apply`,全部 PASS 后自动流转到下一阶段 | ||
| - **阶段守卫**:运行 `"$COMET_BASH" "$COMET_GUARD" <change-name> open --apply`,全部 PASS 后自动流转到下一阶段 | ||
@@ -105,3 +105,3 @@ 退出前必须使用 `--apply`,否则 `.comet.yaml` 仍停留在 `phase: open`,下一阶段入口检查会失败。 | ||
| ```bash | ||
| bash "$COMET_GUARD" <change-name> open --apply | ||
| "$COMET_BASH" "$COMET_GUARD" <change-name> open --apply | ||
| ``` | ||
@@ -108,0 +108,0 @@ |
@@ -52,3 +52,3 @@ --- | ||
| ```bash | ||
| bash "$COMET_STATE" init <name> tweak | ||
| "$COMET_BASH" "$COMET_STATE" init <name> tweak | ||
| ``` | ||
@@ -59,3 +59,3 @@ | ||
| ```bash | ||
| bash "$COMET_STATE" check <name> open | ||
| "$COMET_BASH" "$COMET_STATE" check <name> open | ||
| ``` | ||
@@ -66,3 +66,3 @@ | ||
| ```bash | ||
| bash "$COMET_GUARD" <change-name> open --apply | ||
| "$COMET_BASH" "$COMET_GUARD" <change-name> open --apply | ||
| ``` | ||
@@ -72,3 +72,3 @@ | ||
| 使用 tweak 默认值:`build_mode: direct`。跳过 `superpowers:brainstorming` 和 `superpowers:writing-plans`。 | ||
| 使用 tweak 默认值:`build_mode: direct`。跳过 Superpowers `brainstorming` 和 `writing-plans`。 | ||
@@ -90,3 +90,3 @@ 继续或开始修改前,按 `comet/reference/dirty-worktree.md` 协议处理未提交改动。若归因后发现范围超出 tweak,按本文件“升级条件”处理。 | ||
| ```bash | ||
| bash "$COMET_GUARD" <change-name> build --apply | ||
| "$COMET_BASH" "$COMET_GUARD" <change-name> build --apply | ||
| ``` | ||
@@ -147,3 +147,3 @@ | ||
| ```bash | ||
| bash "$COMET_STATE" set <name> workflow full | ||
| "$COMET_BASH" "$COMET_STATE" set <name> workflow full | ||
| ``` | ||
@@ -160,2 +160,2 @@ | ||
| - 未新增 capability、架构调整或接口变化 | ||
| - **阶段守卫**:build → verify 前运行 `bash "$COMET_GUARD" <change-name> build --apply`,verify → archive 前按 `/comet-verify` 规则运行 `bash "$COMET_GUARD" <change-name> verify --apply` | ||
| - **阶段守卫**:build → verify 前运行 `"$COMET_BASH" "$COMET_GUARD" <change-name> build --apply`,verify → archive 前按 `/comet-verify` 规则运行 `"$COMET_BASH" "$COMET_GUARD" <change-name> verify --apply` |
@@ -26,3 +26,3 @@ --- | ||
| . "$COMET_ENV" | ||
| bash "$COMET_STATE" check <change-name> verify | ||
| "$COMET_BASH" "$COMET_STATE" check <change-name> verify | ||
| ``` | ||
@@ -39,3 +39,3 @@ | ||
| ```bash | ||
| bash "$COMET_STATE" scale <change-name> | ||
| "$COMET_BASH" "$COMET_STATE" scale <change-name> | ||
| ``` | ||
@@ -55,3 +55,3 @@ | ||
| # 仅在用户确认修复后执行 | ||
| bash "$COMET_STATE" transition <change-name> verify-fail | ||
| "$COMET_BASH" "$COMET_STATE" transition <change-name> verify-fail | ||
| ``` | ||
@@ -62,3 +62,3 @@ | ||
| ```bash | ||
| PLAN=$(bash "$COMET_STATE" get <change-name> plan) | ||
| PLAN=$("$COMET_BASH" "$COMET_STATE" get <change-name> plan) | ||
| BASE_REF=$(grep '^base-ref:' "$PLAN" 2>/dev/null | head -1 | sed 's/^base-ref: *//') | ||
@@ -71,3 +71,3 @@ git diff --stat "$BASE_REF"...HEAD | ||
| ```bash | ||
| bash "$COMET_STATE" set <change-name> verify_mode full | ||
| "$COMET_BASH" "$COMET_STATE" set <change-name> verify_mode full | ||
| ``` | ||
@@ -77,3 +77,3 @@ | ||
| 验证不通过时**必须使用 AskUserQuestion 工具暂停并等待用户决定修复或接受偏差**。不得自动运行 `bash "$COMET_STATE" transition <change-name> verify-fail`,也不得自动调用 `/comet-build`。禁止仅输出文字提示后继续执行。 | ||
| 验证不通过时**必须使用 AskUserQuestion 工具暂停并等待用户决定修复或接受偏差**。不得自动运行 `"$COMET_BASH" "$COMET_STATE" transition <change-name> verify-fail`,也不得自动调用 `/comet-build`。禁止仅输出文字提示后继续执行。 | ||
@@ -88,3 +88,3 @@ 暂停时必须列出: | ||
| 用户选择后按以下方式继续: | ||
| - **全部修复**:运行 `bash "$COMET_STATE" transition <change-name> verify-fail`,然后调用 `/comet-build` 修复 | ||
| - **全部修复**:运行 `"$COMET_BASH" "$COMET_STATE" transition <change-name> verify-fail`,然后调用 `/comet-build` 修复 | ||
| - **逐项处理**:CRITICAL 失败项必须修复;非 CRITICAL 失败项可选择接受偏差,但必须在验证报告中记录接受原因和影响范围。若存在任何 CRITICAL 失败项,不允许跳过修复直接全部接受 | ||
@@ -108,3 +108,3 @@ | ||
| # 仅在用户确认修复后执行 | ||
| bash "$COMET_STATE" transition <change-name> verify-fail | ||
| "$COMET_BASH" "$COMET_STATE" transition <change-name> verify-fail | ||
| ``` | ||
@@ -139,3 +139,3 @@ | ||
| # 仅在用户确认修复后执行 | ||
| bash "$COMET_STATE" transition <change-name> verify-fail | ||
| "$COMET_BASH" "$COMET_STATE" transition <change-name> verify-fail | ||
| ``` | ||
@@ -146,3 +146,3 @@ | ||
| - 选项 A:在 design doc 追加 "Implementation Divergence" 节记录偏差原因。选项 A 属于 verify 阶段允许产物;写入后不得因该 design doc 变更再次触发 Step 1b dirty-worktree 决策 | ||
| - 选项 B:用户选择 B 后,运行 `bash "$COMET_STATE" transition <change-name> verify-fail`,然后调用 `/comet-build`;由 `/comet-build` 的 Spec 增量更新规则加载 `superpowers:brainstorming` 更新 Design Doc + delta spec | ||
| - 选项 B:用户选择 B 后,运行 `"$COMET_BASH" "$COMET_STATE" transition <change-name> verify-fail`,然后调用 `/comet-build`;由 `/comet-build` 的 Spec 增量更新规则加载 Superpowers `brainstorming` 更新 Design Doc + delta spec | ||
| - 选项 C:确认偏差可接受,继续验证(归档时 design doc 将标记为 `superseded-by-main-spec`) | ||
@@ -152,5 +152,5 @@ | ||
| **立即执行:** 使用 Skill 工具加载 `superpowers:finishing-a-development-branch` 技能。禁止跳过此步骤。 | ||
| **立即执行:** 使用 Skill 工具加载 Superpowers `finishing-a-development-branch` 技能。禁止跳过此步骤。 | ||
| 如 `superpowers:finishing-a-development-branch` 不可用,停止流程并提示安装或启用 Superpowers 技能,不要用普通对话替代该步骤。 | ||
| 如 Superpowers `finishing-a-development-branch` 技能不可用,停止流程并提示安装或启用 Superpowers 技能,不要用普通对话替代该步骤。 | ||
@@ -178,4 +178,4 @@ 技能加载后,按其指引收尾。分支处理选项: | ||
| bash "$COMET_STATE" set <change-name> verification_report docs/superpowers/reports/YYYY-MM-DD-<change-name>-verify.md | ||
| bash "$COMET_STATE" set <change-name> branch_status handled | ||
| "$COMET_BASH" "$COMET_STATE" set <change-name> verification_report docs/superpowers/reports/YYYY-MM-DD-<change-name>-verify.md | ||
| "$COMET_BASH" "$COMET_STATE" set <change-name> branch_status handled | ||
| ``` | ||
@@ -189,3 +189,3 @@ | ||
| - `.comet.yaml` 中 `branch_status: handled` | ||
| - **阶段守卫**:运行 `bash "$COMET_GUARD" <change-name> verify --apply`,全部 PASS 后通过 `comet-state transition verify-pass` 自动流转到 `phase: archive` | ||
| - **阶段守卫**:运行 `"$COMET_BASH" "$COMET_GUARD" <change-name> verify --apply`,全部 PASS 后通过 `comet-state transition verify-pass` 自动流转到 `phase: archive` | ||
@@ -195,3 +195,3 @@ 验证和分支处理均完成后,运行 guard 自动流转: | ||
| ```bash | ||
| bash "$COMET_GUARD" <change-name> verify --apply | ||
| "$COMET_BASH" "$COMET_GUARD" <change-name> verify --apply | ||
| ``` | ||
@@ -206,3 +206,3 @@ | ||
| ```bash | ||
| bash "$COMET_STATE" check <change-name> verify --recover | ||
| "$COMET_BASH" "$COMET_STATE" check <change-name> verify --recover | ||
| ``` | ||
@@ -209,0 +209,0 @@ |
@@ -56,5 +56,9 @@ --- | ||
| - 只要存在 active change 且工作区有未提交改动,必须按 `comet/reference/dirty-worktree.md` 协议处理。该协议定义了检查步骤、归因分类和禁令,本文件不重复 | ||
| - 若 `phase: build`,先检查 `build_mode` 和 `isolation` 是否已设置;若有未设置的字段,回到 `/comet-build` 对应步骤补充后再执行;若均已设置,读取 tasks.md 的下一个未勾选任务继续 | ||
| - 若 `phase: verify` 且 `verify_result: fail`,进入验证失败决策阻塞点:暂停并询问用户修复或接受偏差;用户选择修复后才运行 `bash "$COMET_STATE" transition <name> verify-fail` 并调用 `/comet-build` | ||
| - 若 `phase: open` 但 proposal/design/tasks 已完整,先运行 `bash "$COMET_GUARD" <change-name> open --apply` 修正状态,再继续判定 | ||
| - 若 `phase: build`,先检查 `build_pause`、`plan`、`build_mode` 和 `isolation`: | ||
| - 若 `build_pause: plan-ready` 且 plan 文件存在,回到 `/comet-build` 的 plan-ready 恢复点,提示用户继续选择隔离方式和执行方式,不重新生成 plan | ||
| - 若 `build_pause: plan-ready` 但 plan 文件缺失,回到 `/comet-build` 处理状态损坏或重新生成 plan | ||
| - 若 `build_mode` 或 `isolation` 未设置,回到 `/comet-build` 对应步骤补充后再执行 | ||
| - 若均已设置,读取 tasks.md 的下一个未勾选任务继续 | ||
| - 若 `phase: verify` 且 `verify_result: fail`,进入验证失败决策阻塞点:暂停并询问用户修复或接受偏差;用户选择修复后才运行 `"$COMET_BASH" "$COMET_STATE" transition <name> verify-fail` 并调用 `/comet-build` | ||
| - 若 `phase: open` 但 proposal/design/tasks 已完整,先运行 `"$COMET_BASH" "$COMET_GUARD" <change-name> open --apply` 修正状态,再继续判定 | ||
| - 若 `phase: archive`,只允许调用 `/comet-archive`;归档成功后 change 会移动到 archive 目录,不再对原活跃目录运行 guard | ||
@@ -96,3 +100,3 @@ | ||
| | 子 skill 不可用 | 停止流程,提示安装或启用对应 skill | | ||
| | `.comet.yaml` 格式异常或缺失 | 以文件状态为准,用 `bash $COMET_STATE set` 修正后继续 | | ||
| | `.comet.yaml` 格式异常或缺失 | 以文件状态为准,用 `"$COMET_BASH" "$COMET_STATE" set` 修正后继续 | | ||
| | 构建/测试失败 | 返回 build 阶段修复,不进入 verify | | ||
@@ -115,3 +119,3 @@ | change 目录结构不完整 | 按 `comet-open` 产物要求补齐 | | ||
| 2. brainstorming 确认设计方案 | ||
| 3. build 阶段选择工作方式(隔离方式 + 执行方式,一次交互完成) | ||
| 3. build 阶段 plan-ready 暂停选择,以及随后选择工作方式(隔离方式 + 执行方式) | ||
| 4. verify 不通过时决定修复或接受偏差(含 Spec 漂移处理方式选择) | ||
@@ -177,2 +181,3 @@ 5. finishing-branch 选择分支处理方式 | ||
| build_mode: subagent-driven-development | ||
| build_pause: null | ||
| isolation: branch | ||
@@ -196,2 +201,3 @@ verify_mode: light | ||
| | `build_mode` | 已选择的执行方式,可为空 | | ||
| | `build_pause` | build 阶段内部暂停点。`null` 表示无暂停,`plan-ready` 表示 plan 已生成,用户选择切换模型后暂停 | | ||
| | `isolation` | `branch` 或 `worktree`,工作区隔离方式。full 初始化可为 `null`,但只允许持续到 `/comet-build` Step 3 前;hotfix/tweak 默认 `branch` | | ||
@@ -218,2 +224,3 @@ | `verify_mode` | `light` 或 `full`,可为空 | | ||
| - `build_mode: direct` 默认只允许 `hotfix` / `tweak`;full workflow 需要 `direct_override: true` | ||
| - `build_pause` 不是执行方式,不得写入 `build_mode` | ||
| - 这些约束同时存在于 `comet-guard.sh build --apply` 和 `comet-state.sh transition <name> build-complete` | ||
@@ -244,3 +251,3 @@ | ||
| ```bash | ||
| bash "$COMET_GUARD" <change-name> <phase> --apply | ||
| "$COMET_BASH" "$COMET_GUARD" <change-name> <phase> --apply | ||
| ``` | ||
@@ -251,8 +258,8 @@ | ||
| ```bash | ||
| bash "$COMET_STATE" transition <change-name> open-complete | ||
| bash "$COMET_STATE" transition <change-name> design-complete | ||
| bash "$COMET_STATE" transition <change-name> build-complete | ||
| bash "$COMET_STATE" transition <change-name> verify-pass | ||
| bash "$COMET_STATE" transition <change-name> verify-fail | ||
| bash "$COMET_STATE" transition <archive-name> archived | ||
| "$COMET_BASH" "$COMET_STATE" transition <change-name> open-complete | ||
| "$COMET_BASH" "$COMET_STATE" transition <change-name> design-complete | ||
| "$COMET_BASH" "$COMET_STATE" transition <change-name> build-complete | ||
| "$COMET_BASH" "$COMET_STATE" transition <change-name> verify-pass | ||
| "$COMET_BASH" "$COMET_STATE" transition <change-name> verify-fail | ||
| "$COMET_BASH" "$COMET_STATE" transition <archive-name> archived | ||
| ``` | ||
@@ -263,3 +270,3 @@ | ||
| ```bash | ||
| bash "$COMET_ARCHIVE" <change-name> | ||
| "$COMET_BASH" "$COMET_ARCHIVE" <change-name> | ||
| ``` | ||
@@ -266,0 +273,0 @@ |
@@ -27,3 +27,3 @@ --- | ||
| . "$COMET_ENV" | ||
| bash "$COMET_STATE" check <name> archive | ||
| "$COMET_BASH" "$COMET_STATE" check <name> archive | ||
| ``` | ||
@@ -38,3 +38,3 @@ | ||
| ```bash | ||
| bash "$COMET_ARCHIVE" "<change-name>" | ||
| "$COMET_BASH" "$COMET_ARCHIVE" "<change-name>" | ||
| ``` | ||
@@ -71,3 +71,3 @@ | ||
| The archive script moves `openspec/changes/<name>/` to `openspec/changes/archive/YYYY-MM-DD-<name>/`. After successful archive, **do not run** `bash "$COMET_GUARD" <change-name> archive` against the old active change name; the active directory no longer exists. Archive completeness is determined by script exit code and archived directory state. | ||
| The archive script moves `openspec/changes/<name>/` to `openspec/changes/archive/YYYY-MM-DD-<name>/`. After successful archive, **do not run** `"$COMET_BASH" "$COMET_GUARD" <change-name> archive` against the old active change name; the active directory no longer exists. Archive completeness is determined by script exit code and archived directory state. | ||
@@ -74,0 +74,0 @@ ## Complete |
@@ -26,3 +26,3 @@ --- | ||
| . "$COMET_ENV" | ||
| bash "$COMET_STATE" check <name> build | ||
| "$COMET_BASH" "$COMET_STATE" check <name> build | ||
| ``` | ||
@@ -36,3 +36,3 @@ | ||
| **Immediately execute:** Use the Skill tool to load the `superpowers:writing-plans` skill. Skipping this step is prohibited. | ||
| **Immediately execute:** Use the Skill tool to load the Superpowers `writing-plans` skill. Skipping this step is prohibited. | ||
@@ -58,3 +58,3 @@ After the skill loads, follow its guidance to create a plan. Plan requirements: | ||
| ### 2. Update Plan Status | ||
| ### 2. Update Plan Status and Provide Plan-Ready Pause Point | ||
@@ -64,3 +64,3 @@ Record plan path: | ||
| ```bash | ||
| bash "$COMET_STATE" set <name> plan docs/superpowers/plans/YYYY-MM-DD-feature.md | ||
| "$COMET_BASH" "$COMET_STATE" set <name> plan docs/superpowers/plans/YYYY-MM-DD-feature.md | ||
| ``` | ||
@@ -70,4 +70,35 @@ | ||
| After the plan is recorded, immediately provide a new user decision point: | ||
| | Option | Behavior | Description | | ||
| |--------|----------|-------------| | ||
| | A | Continue execution | Stay in the current model and proceed to Step 3 to choose workspace isolation and execution method | | ||
| | B | Pause to switch model | Record `build_pause: plan-ready`, stop this `/comet-build` invocation, and allow the user to resume later from `/comet` or `/comet-build` | | ||
| This is a user decision point. **Must use the AskUserQuestion tool to pause and wait for the user to explicitly choose**. Must not auto-continue and must not write the pause into `build_mode`. | ||
| When the user chooses to continue: | ||
| ```bash | ||
| "$COMET_BASH" "$COMET_STATE" set <name> build_pause null | ||
| ``` | ||
| When the user chooses to pause: | ||
| ```bash | ||
| "$COMET_BASH" "$COMET_STATE" set <name> build_pause plan-ready | ||
| ``` | ||
| After setting `build_pause: plan-ready`, stop the current invocation. Do not choose `isolation` or `build_mode`, and do not load an execution skill. | ||
| ### 3. Select Workflow Configuration | ||
| If resuming with `build_pause: plan-ready` and the `plan` file exists, do not rerun `writing-plans`. First tell the user the workflow is stopped at the plan-ready pause point; after the user confirms continuing, set: | ||
| ```bash | ||
| "$COMET_BASH" "$COMET_STATE" set <name> build_pause null | ||
| ``` | ||
| Then continue this step to choose workspace isolation and execution method. | ||
| Plan has been written to the current branch. Before starting execution, **ask the user to choose both workspace isolation and execution method in a single interaction**: | ||
@@ -90,4 +121,4 @@ | ||
| |------|------|-------------------| | ||
| | A | `superpowers:subagent-driven-development` | Independent tasks, high complexity, requires two-phase review | | ||
| | B | `superpowers:executing-plans` | Simple tasks, no subagent environment, lightweight and fast | | ||
| | A | Superpowers `subagent-driven-development` | Independent tasks, high complexity, requires two-phase review | | ||
| | B | Superpowers `executing-plans` | Simple tasks, no subagent environment, lightweight and fast | | ||
@@ -104,4 +135,4 @@ **Execution method recommendation rules**: | ||
| ```bash | ||
| bash "$COMET_STATE" set <name> isolation <branch|worktree> | ||
| bash "$COMET_STATE" set <name> build_mode <subagent-driven-development|executing-plans|direct> | ||
| "$COMET_BASH" "$COMET_STATE" set <name> isolation <branch|worktree> | ||
| "$COMET_BASH" "$COMET_STATE" set <name> build_mode <subagent-driven-development|executing-plans|direct> | ||
| ``` | ||
@@ -114,4 +145,4 @@ | ||
| ```bash | ||
| bash "$COMET_STATE" set <name> direct_override true | ||
| bash "$COMET_STATE" set <name> build_mode direct | ||
| "$COMET_BASH" "$COMET_STATE" set <name> direct_override true | ||
| "$COMET_BASH" "$COMET_STATE" set <name> build_mode direct | ||
| ``` | ||
@@ -124,3 +155,3 @@ | ||
| - **branch**: Run `git checkout -b <change-name>`, subsequent work on the new branch | ||
| - **worktree**: Must use the Skill tool to load `superpowers:using-git-worktrees` skill to create isolated workspace. Do not bypass this skill with plain shell commands or native tools; if the skill is unavailable, stop the process and prompt to install or enable Superpowers skills. | ||
| - **worktree**: Must use the Skill tool to load the Superpowers `using-git-worktrees` skill to create isolated workspace. Do not bypass this skill with plain shell commands or native tools; if the skill is unavailable, stop the process and prompt to install or enable Superpowers skills. | ||
@@ -145,3 +176,3 @@ After creating isolation, confirm plan file is accessible (naturally accessible with branch method; for worktree method, confirm plan has been committed). | ||
| | Small | Missing acceptance scenarios, edge cases | Directly edit delta spec + design.md, append tasks.md tasks | | ||
| | Medium | Interface changes, new components, data flow changes | **Must use the AskUserQuestion tool to pause and wait for the user to explicitly confirm**, then must use Skill tool to load `superpowers:brainstorming` to update Design Doc + delta spec | | ||
| | Medium | Interface changes, new components, data flow changes | **Must use the AskUserQuestion tool to pause and wait for the user to explicitly confirm**, then must use Skill tool to load the Superpowers `brainstorming` skill to update Design Doc + delta spec | | ||
| | Large | Brand-new capability requirements | **Must use the AskUserQuestion tool to pause and wait for the user to explicitly confirm the split**; after user confirms, create independent change through `/comet-open` | | ||
@@ -164,3 +195,3 @@ | ||
| - **After each task**: immediately check off tasks.md and commit code so `.comet.yaml` and file state are durable | ||
| - **After context compaction**: first run `bash "$COMET_STATE" check <change-name> build --recover` — the script outputs structured recovery context (isolation/build_mode status, plan path, task progress, recovery action). Follow the Recovery action to determine next step. | ||
| - **After context compaction**: first run `"$COMET_BASH" "$COMET_STATE" check <change-name> build --recover` — the script outputs structured recovery context (isolation/build_mode status, plan path, task progress, recovery action). Follow the Recovery action to determine next step. | ||
| - **User manual-change resume**: handle uncommitted changes through `comet/reference/dirty-worktree.md`. That protocol defines checks, attribution, and prohibitions. Build-specific handling: | ||
@@ -177,3 +208,3 @@ 1. After attribution, if the diff implies plan or spec changes, handle it through Step 4 "Spec Incremental Updates" | ||
| - `build_mode` has been written as `subagent-driven-development`, `executing-plans`, or `direct` with explicit override | ||
| - **Phase guard**: Run `bash "$COMET_GUARD" <change-name> build --apply`; after all PASS, state advances to `phase: verify` | ||
| - **Phase guard**: Run `"$COMET_BASH" "$COMET_GUARD" <change-name> build --apply`; after all PASS, state advances to `phase: verify` | ||
@@ -193,3 +224,3 @@ Guard reads project command configuration first: | ||
| ```bash | ||
| bash "$COMET_GUARD" <change-name> build --apply | ||
| "$COMET_BASH" "$COMET_GUARD" <change-name> build --apply | ||
| ``` | ||
@@ -196,0 +227,0 @@ |
@@ -26,3 +26,3 @@ --- | ||
| . "$COMET_ENV" | ||
| bash "$COMET_STATE" check <name> design | ||
| "$COMET_BASH" "$COMET_STATE" check <name> design | ||
| ``` | ||
@@ -39,3 +39,3 @@ | ||
| ```bash | ||
| bash "$COMET_HANDOFF" <change-name> design --write | ||
| "$COMET_BASH" "$COMET_HANDOFF" <change-name> design --write | ||
| ``` | ||
@@ -65,3 +65,3 @@ | ||
| ```bash | ||
| bash "$COMET_HANDOFF" <change-name> design --write --full | ||
| "$COMET_BASH" "$COMET_HANDOFF" <change-name> design --write --full | ||
| ``` | ||
@@ -77,3 +77,3 @@ | ||
| **Immediately execute:** Use the Skill tool to load the `superpowers:brainstorming` skill, ARGUMENTS containing: | ||
| **Immediately execute:** Use the Skill tool to load the Superpowers `brainstorming` skill, ARGUMENTS containing: | ||
@@ -101,3 +101,3 @@ ``` | ||
| If `superpowers:brainstorming` is unavailable, stop the process and prompt to install or enable Superpowers skills. Do not substitute this step with normal conversation. | ||
| If the Superpowers `brainstorming` skill is unavailable, stop the process and prompt to install or enable Superpowers skills. Do not substitute this step with normal conversation. | ||
@@ -129,9 +129,9 @@ After the skill loads, follow its guidance to produce design proposals (presented as conversation): | ||
| # Record design_doc path | ||
| bash "$COMET_STATE" set <name> design_doc docs/superpowers/specs/YYYY-MM-DD-topic-design.md | ||
| "$COMET_BASH" "$COMET_STATE" set <name> design_doc docs/superpowers/specs/YYYY-MM-DD-topic-design.md | ||
| # If delta spec changes exist, regenerate handoff (update hash) | ||
| bash "$COMET_HANDOFF" <change-name> design --write | ||
| "$COMET_BASH" "$COMET_HANDOFF" <change-name> design --write | ||
| # Auto-transition to next phase | ||
| bash "$COMET_GUARD" <change-name> design --apply | ||
| "$COMET_BASH" "$COMET_GUARD" <change-name> design --apply | ||
| ``` | ||
@@ -150,3 +150,3 @@ | ||
| - `design_doc` written to `.comet.yaml` | ||
| - **Phase guard**: Run `bash "$COMET_GUARD" <change-name> design --apply`; after all PASS, auto-transitions to `phase: build` | ||
| - **Phase guard**: Run `"$COMET_BASH" "$COMET_GUARD" <change-name> design --apply`; after all PASS, auto-transitions to `phase: build` | ||
@@ -156,3 +156,3 @@ Must use `--apply` before exit: | ||
| ```bash | ||
| bash "$COMET_GUARD" <change-name> design --apply | ||
| "$COMET_BASH" "$COMET_GUARD" <change-name> design --apply | ||
| ``` | ||
@@ -165,3 +165,3 @@ | ||
| ```bash | ||
| bash "$COMET_STATE" check <change-name> design --recover | ||
| "$COMET_BASH" "$COMET_STATE" check <change-name> design --recover | ||
| ``` | ||
@@ -168,0 +168,0 @@ |
@@ -49,3 +49,3 @@ --- | ||
| ```bash | ||
| bash "$COMET_STATE" init <name> hotfix | ||
| "$COMET_BASH" "$COMET_STATE" init <name> hotfix | ||
| ``` | ||
@@ -56,3 +56,3 @@ | ||
| ```bash | ||
| bash "$COMET_STATE" check <name> open | ||
| "$COMET_BASH" "$COMET_STATE" check <name> open | ||
| ``` | ||
@@ -63,3 +63,3 @@ | ||
| ```bash | ||
| bash "$COMET_GUARD" <change-name> open --apply | ||
| "$COMET_BASH" "$COMET_GUARD" <change-name> open --apply | ||
| ``` | ||
@@ -69,3 +69,3 @@ | ||
| Use hotfix defaults: `build_mode: direct`. Skip `superpowers:brainstorming` and `superpowers:writing-plans` (unless tasks > 3; if exceeds 3 tasks, transfer to `/comet-build`'s plan and execution method selection). | ||
| Use hotfix defaults: `build_mode: direct`. Skip Superpowers `brainstorming` and `writing-plans` (unless tasks > 3; if exceeds 3 tasks, transfer to `/comet-build`'s plan and execution method selection). | ||
@@ -104,3 +104,3 @@ Before continuing or starting changes, handle uncommitted changes through `comet/reference/dirty-worktree.md`. If attribution shows the fix scope exceeds hotfix, handle it through this file's "Upgrade Conditions". | ||
| ```bash | ||
| bash "$COMET_GUARD" <change-name> build --apply | ||
| "$COMET_BASH" "$COMET_GUARD" <change-name> build --apply | ||
| ``` | ||
@@ -162,3 +162,3 @@ | ||
| ```bash | ||
| bash "$COMET_STATE" set <name> workflow full | ||
| "$COMET_BASH" "$COMET_STATE" set <name> workflow full | ||
| ``` | ||
@@ -175,2 +175,2 @@ | ||
| - If spec changes, synced to main spec | ||
| - **Phase guard**: Before build → verify run `bash "$COMET_GUARD" <change-name> build --apply`; before verify → archive follow `/comet-verify` and run `bash "$COMET_GUARD" <change-name> verify --apply` | ||
| - **Phase guard**: Before build → verify run `"$COMET_BASH" "$COMET_GUARD" <change-name> build --apply`; before verify → archive follow `/comet-verify` and run `"$COMET_BASH" "$COMET_GUARD" <change-name> verify --apply` |
@@ -52,3 +52,3 @@ --- | ||
| bash "$COMET_STATE" init <name> full | ||
| "$COMET_BASH" "$COMET_STATE" init <name> full | ||
| ``` | ||
@@ -61,3 +61,3 @@ | ||
| ```bash | ||
| bash "$COMET_STATE" check <name> open | ||
| "$COMET_BASH" "$COMET_STATE" check <name> open | ||
| ``` | ||
@@ -99,3 +99,3 @@ | ||
| - **User has confirmed** proposal, design, tasks content meets expectations | ||
| - **Phase guard**: Run `bash "$COMET_GUARD" <change-name> open --apply`; after all PASS, auto-transitions to next phase | ||
| - **Phase guard**: Run `"$COMET_BASH" "$COMET_GUARD" <change-name> open --apply`; after all PASS, auto-transitions to next phase | ||
@@ -105,3 +105,3 @@ Must use `--apply` before exit, otherwise `.comet.yaml` remains at `phase: open` and the next phase entry check will fail. | ||
| ```bash | ||
| bash "$COMET_GUARD" <change-name> open --apply | ||
| "$COMET_BASH" "$COMET_GUARD" <change-name> open --apply | ||
| ``` | ||
@@ -108,0 +108,0 @@ |
@@ -52,3 +52,3 @@ --- | ||
| ```bash | ||
| bash "$COMET_STATE" init <name> tweak | ||
| "$COMET_BASH" "$COMET_STATE" init <name> tweak | ||
| ``` | ||
@@ -59,3 +59,3 @@ | ||
| ```bash | ||
| bash "$COMET_STATE" check <name> open | ||
| "$COMET_BASH" "$COMET_STATE" check <name> open | ||
| ``` | ||
@@ -66,3 +66,3 @@ | ||
| ```bash | ||
| bash "$COMET_GUARD" <change-name> open --apply | ||
| "$COMET_BASH" "$COMET_GUARD" <change-name> open --apply | ||
| ``` | ||
@@ -72,3 +72,3 @@ | ||
| Use tweak defaults: `build_mode: direct`. Skip `superpowers:brainstorming` and `superpowers:writing-plans`. | ||
| Use tweak defaults: `build_mode: direct`. Skip Superpowers `brainstorming` and `writing-plans`. | ||
@@ -90,3 +90,3 @@ Before continuing or starting changes, handle uncommitted changes through `comet/reference/dirty-worktree.md`. If attribution shows scope exceeds tweak, handle it through this file's "Upgrade Conditions". | ||
| ```bash | ||
| bash "$COMET_GUARD" <change-name> build --apply | ||
| "$COMET_BASH" "$COMET_GUARD" <change-name> build --apply | ||
| ``` | ||
@@ -147,3 +147,3 @@ | ||
| ```bash | ||
| bash "$COMET_STATE" set <name> workflow full | ||
| "$COMET_BASH" "$COMET_STATE" set <name> workflow full | ||
| ``` | ||
@@ -160,2 +160,2 @@ | ||
| - No new capability, architecture adjustments or interface changes | ||
| - **Phase guard**: Before build → verify run `bash "$COMET_GUARD" <change-name> build --apply`; before verify → archive follow `/comet-verify` and run `bash "$COMET_GUARD" <change-name> verify --apply` | ||
| - **Phase guard**: Before build → verify run `"$COMET_BASH" "$COMET_GUARD" <change-name> build --apply`; before verify → archive follow `/comet-verify` and run `"$COMET_BASH" "$COMET_GUARD" <change-name> verify --apply` |
@@ -26,3 +26,3 @@ --- | ||
| . "$COMET_ENV" | ||
| bash "$COMET_STATE" check <change-name> verify | ||
| "$COMET_BASH" "$COMET_STATE" check <change-name> verify | ||
| ``` | ||
@@ -39,3 +39,3 @@ | ||
| ```bash | ||
| bash "$COMET_STATE" scale <change-name> | ||
| "$COMET_BASH" "$COMET_STATE" scale <change-name> | ||
| ``` | ||
@@ -55,3 +55,3 @@ | ||
| # Execute only after user confirms fix | ||
| bash "$COMET_STATE" transition <change-name> verify-fail | ||
| "$COMET_BASH" "$COMET_STATE" transition <change-name> verify-fail | ||
| ``` | ||
@@ -62,3 +62,3 @@ | ||
| ```bash | ||
| PLAN=$(bash "$COMET_STATE" get <change-name> plan) | ||
| PLAN=$("$COMET_BASH" "$COMET_STATE" get <change-name> plan) | ||
| BASE_REF=$(grep '^base-ref:' "$PLAN" 2>/dev/null | head -1 | sed 's/^base-ref: *//') | ||
@@ -71,3 +71,3 @@ git diff --stat "$BASE_REF"...HEAD | ||
| ```bash | ||
| bash "$COMET_STATE" set <change-name> verify_mode full | ||
| "$COMET_BASH" "$COMET_STATE" set <change-name> verify_mode full | ||
| ``` | ||
@@ -77,3 +77,3 @@ | ||
| When verification does not pass, **must use the AskUserQuestion tool to pause and wait for the user to decide fix or accept deviation**. Must not automatically run `bash "$COMET_STATE" transition <change-name> verify-fail`, nor automatically invoke `/comet-build`. Must not just output a text prompt and then continue executing. | ||
| When verification does not pass, **must use the AskUserQuestion tool to pause and wait for the user to decide fix or accept deviation**. Must not automatically run `"$COMET_BASH" "$COMET_STATE" transition <change-name> verify-fail`, nor automatically invoke `/comet-build`. Must not just output a text prompt and then continue executing. | ||
@@ -88,3 +88,3 @@ When pausing, must list: | ||
| After user selection, continue as follows: | ||
| - **Fix all**: Run `bash "$COMET_STATE" transition <change-name> verify-fail`, then invoke `/comet-build` to fix | ||
| - **Fix all**: Run `"$COMET_BASH" "$COMET_STATE" transition <change-name> verify-fail`, then invoke `/comet-build` to fix | ||
| - **Handle item by item**: CRITICAL failures must be fixed; non-CRITICAL failures may choose to accept deviation, but must record acceptance reason and impact scope in verification report. If any CRITICAL failure exists, skipping fix to accept all is not allowed | ||
@@ -108,3 +108,3 @@ | ||
| # Execute only after user confirms fix | ||
| bash "$COMET_STATE" transition <change-name> verify-fail | ||
| "$COMET_BASH" "$COMET_STATE" transition <change-name> verify-fail | ||
| ``` | ||
@@ -139,3 +139,3 @@ | ||
| # Execute only after user confirms fix | ||
| bash "$COMET_STATE" transition <change-name> verify-fail | ||
| "$COMET_BASH" "$COMET_STATE" transition <change-name> verify-fail | ||
| ``` | ||
@@ -146,3 +146,3 @@ | ||
| - Option A: Append "Implementation Divergence" section to design doc recording deviation reason. Option A is a verify phase allowed artifact; after writing, must not re-trigger Step 1b dirty-worktree decision due to that design doc change | ||
| - Option B: After user selects B, run `bash "$COMET_STATE" transition <change-name> verify-fail`, then invoke `/comet-build`; `/comet-build`'s Spec Incremental Update rules will load `superpowers:brainstorming` to update Design Doc + delta spec | ||
| - Option B: After user selects B, run `"$COMET_BASH" "$COMET_STATE" transition <change-name> verify-fail`, then invoke `/comet-build`; `/comet-build`'s Spec Incremental Update rules will load the Superpowers `brainstorming` skill to update Design Doc + delta spec | ||
| - Option C: Confirm deviation is acceptable, continue verification (design doc will be marked as `superseded-by-main-spec` during archiving) | ||
@@ -152,5 +152,5 @@ | ||
| **Immediately execute:** Use the Skill tool to load the `superpowers:finishing-a-development-branch` skill. Skipping this step is prohibited. | ||
| **Immediately execute:** Use the Skill tool to load the Superpowers `finishing-a-development-branch` skill. Skipping this step is prohibited. | ||
| If `superpowers:finishing-a-development-branch` is unavailable, stop the process and prompt to install or enable Superpowers skills. Do not substitute this step with normal conversation. | ||
| If the Superpowers `finishing-a-development-branch` skill is unavailable, stop the process and prompt to install or enable Superpowers skills. Do not substitute this step with normal conversation. | ||
@@ -178,4 +178,4 @@ After the skill loads, follow its guidance to finish. Branch handling options: | ||
| bash "$COMET_STATE" set <change-name> verification_report docs/superpowers/reports/YYYY-MM-DD-<change-name>-verify.md | ||
| bash "$COMET_STATE" set <change-name> branch_status handled | ||
| "$COMET_BASH" "$COMET_STATE" set <change-name> verification_report docs/superpowers/reports/YYYY-MM-DD-<change-name>-verify.md | ||
| "$COMET_BASH" "$COMET_STATE" set <change-name> branch_status handled | ||
| ``` | ||
@@ -189,3 +189,3 @@ | ||
| - `branch_status: handled` in `.comet.yaml` | ||
| - **Phase guard**: Run `bash "$COMET_GUARD" <change-name> verify --apply`; after all PASS, auto-transitions to `phase: archive` through `comet-state transition verify-pass` | ||
| - **Phase guard**: Run `"$COMET_BASH" "$COMET_GUARD" <change-name> verify --apply`; after all PASS, auto-transitions to `phase: archive` through `comet-state transition verify-pass` | ||
@@ -195,3 +195,3 @@ After both verification and branch handling are complete, run guard for auto-transition: | ||
| ```bash | ||
| bash "$COMET_GUARD" <change-name> verify --apply | ||
| "$COMET_BASH" "$COMET_GUARD" <change-name> verify --apply | ||
| ``` | ||
@@ -212,5 +212,5 @@ | ||
| ```bash | ||
| bash "$COMET_STATE" check <change-name> verify --recover | ||
| "$COMET_BASH" "$COMET_STATE" check <change-name> verify --recover | ||
| ``` | ||
| The script outputs structured recovery context (phase, verification status, branch status, recovery action). Follow the Recovery action to determine next step. |
@@ -8,2 +8,4 @@ #!/bin/bash | ||
| COMET_BASH="${COMET_BASH:-${BASH:-bash}}" | ||
| red() { echo -e "\033[31m$1\033[0m" >&2; } | ||
@@ -74,3 +76,3 @@ green() { echo -e "\033[32m$1\033[0m" >&2; } | ||
| if [ -f "$STATE_SH" ]; then | ||
| bash "$STATE_SH" get "$CHANGE" "$field" 2>/dev/null | ||
| "$COMET_BASH" "$STATE_SH" get "$CHANGE" "$field" 2>/dev/null | ||
| else | ||
@@ -275,3 +277,3 @@ if [ -f "$YAML" ]; then | ||
| if [ -f "$ARCHIVE_YAML" ]; then | ||
| bash "$STATE_SH" transition "$ARCHIVE_NAME" archived >/dev/null | ||
| "$COMET_BASH" "$STATE_SH" transition "$ARCHIVE_NAME" archived >/dev/null | ||
| step_ok "archived: true" | ||
@@ -278,0 +280,0 @@ else |
@@ -20,2 +20,46 @@ #!/bin/bash | ||
| _comet_bash_is_usable() { | ||
| local _comet_bash_candidate="$1" | ||
| if [ -z "$_comet_bash_candidate" ]; then | ||
| return 1 | ||
| fi | ||
| case "$_comet_bash_candidate" in | ||
| */Windows/System32/bash.exe|*/windows/system32/bash.exe|*\\Windows\\System32\\bash.exe|*\\windows\\system32\\bash.exe) | ||
| return 1 | ||
| ;; | ||
| esac | ||
| "$_comet_bash_candidate" -lc 'printf comet-bash-ok' >/dev/null 2>&1 | ||
| } | ||
| _comet_resolve_bash() { | ||
| local _comet_bash_candidate | ||
| if _comet_bash_is_usable "${COMET_BASH:-}"; then | ||
| printf '%s\n' "$COMET_BASH" | ||
| return 0 | ||
| fi | ||
| if _comet_bash_is_usable "${BASH:-}"; then | ||
| printf '%s\n' "$BASH" | ||
| return 0 | ||
| fi | ||
| _comet_bash_candidate="$(command -v sh 2>/dev/null | awk '{ sub(/\/sh(\.exe)?$/, "/bash.exe"); print }')" | ||
| if _comet_bash_is_usable "$_comet_bash_candidate"; then | ||
| printf '%s\n' "$_comet_bash_candidate" | ||
| return 0 | ||
| fi | ||
| _comet_bash_candidate="$(command -v bash 2>/dev/null || true)" | ||
| if _comet_bash_is_usable "$_comet_bash_candidate"; then | ||
| printf '%s\n' "$_comet_bash_candidate" | ||
| return 0 | ||
| fi | ||
| return 1 | ||
| } | ||
| COMET_BASH="$(_comet_resolve_bash || true)" | ||
| export COMET_BASH | ||
| _comet_env_fail() { | ||
@@ -26,6 +70,12 @@ echo "ERROR: Comet scripts not found. Ensure the comet skill is installed completely." >&2 | ||
| _comet_bash_fail() { | ||
| echo "ERROR: usable bash not found. Install Git Bash or set COMET_BASH to a working bash executable." >&2 | ||
| echo "Windows WSL launcher bash.exe is not supported for Comet scripts." >&2 | ||
| } | ||
| _comet_env_abort() { | ||
| local _comet_env_was_sourced="$_comet_env_sourced" | ||
| unset _comet_env_source _comet_script_dir _comet_script _comet_env_missing _comet_env_sourced | ||
| unset -f _comet_env_fail | ||
| unset _comet_bash_candidate | ||
| unset -f _comet_env_fail _comet_bash_fail _comet_bash_is_usable _comet_resolve_bash | ||
| if [ "$_comet_env_was_sourced" -eq 1 ]; then | ||
@@ -39,2 +89,6 @@ unset -f _comet_env_abort | ||
| _comet_env_missing=0 | ||
| if [ -z "$COMET_BASH" ]; then | ||
| _comet_bash_fail | ||
| _comet_env_missing=1 | ||
| fi | ||
| for _comet_script in \ | ||
@@ -57,3 +111,4 @@ "$COMET_GUARD" \ | ||
| unset _comet_env_source _comet_script_dir _comet_script _comet_env_missing _comet_env_sourced | ||
| unset -f _comet_env_fail _comet_env_abort | ||
| unset _comet_bash_candidate | ||
| unset -f _comet_env_fail _comet_bash_fail _comet_bash_is_usable _comet_resolve_bash _comet_env_abort | ||
| fi |
@@ -10,2 +10,4 @@ #!/bin/bash | ||
| COMET_BASH="${COMET_BASH:-${BASH:-bash}}" | ||
| red() { echo -e "\033[31m$1\033[0m" >&2; } | ||
@@ -185,3 +187,3 @@ green() { echo -e "\033[32m$1\033[0m" >&2; } | ||
| echo "+ $command" >&2 | ||
| bash -lc "$command" | ||
| "$COMET_BASH" -lc "$command" | ||
| } | ||
@@ -245,4 +247,4 @@ | ||
| if [ -f "$validate_script" ]; then | ||
| if ! bash "$validate_script" "$CHANGE" 2>/dev/null; then | ||
| bash "$validate_script" "$CHANGE" | ||
| if ! "$COMET_BASH" "$validate_script" "$CHANGE" 2>/dev/null; then | ||
| "$COMET_BASH" "$validate_script" "$CHANGE" || true | ||
| red "FATAL: .comet.yaml schema validation failed" | ||
@@ -306,3 +308,3 @@ exit 1 | ||
| echo "Next: ask the user to choose branch or worktree, create the chosen isolation, then run:" >&2 | ||
| echo " bash \"\$COMET_STATE\" set $CHANGE isolation <branch|worktree>" >&2 | ||
| echo " \"\$COMET_BASH\" \"\$COMET_STATE\" set $CHANGE isolation <branch|worktree>" >&2 | ||
| return 1 | ||
@@ -320,4 +322,4 @@ ;; | ||
| echo "build_mode must be selected before leaving build, got '${build_mode:-null}'" >&2 | ||
| echo "Next: ask the user to choose an implementation mode, then run:" >&2 | ||
| echo " bash \"\$COMET_STATE\" set $CHANGE build_mode <subagent-driven-development|executing-plans>" >&2 | ||
| echo "Next: ask the user to choose an execution mode, then run:" >&2 | ||
| echo " \"\$COMET_BASH\" \"\$COMET_STATE\" set $CHANGE build_mode <subagent-driven-development|executing-plans>" >&2 | ||
| return 1 | ||
@@ -344,3 +346,3 @@ ;; | ||
| echo "build_mode=direct is only allowed for hotfix/tweak unless direct_override: true is recorded" >&2 | ||
| echo "Next: switch build_mode to executing-plans or subagent-driven-development, or stop and ask the user for an explicit direct override." >&2 | ||
| echo "Next: choose executing-plans or subagent-driven-development, or stop and ask the user for an explicit direct override." >&2 | ||
| return 1 | ||
@@ -376,3 +378,3 @@ ;; | ||
| echo "handoff_context is missing from .comet.yaml" >&2 | ||
| echo "Next: run bash \"\$COMET_HANDOFF\" $CHANGE design --write before invoking Superpowers." >&2 | ||
| echo "Next: run \"\$COMET_BASH\" \"\$COMET_HANDOFF\" $CHANGE design --write before invoking Superpowers." >&2 | ||
| return 1 | ||
@@ -555,6 +557,6 @@ fi | ||
| case "$p" in | ||
| open) bash "$state_sh" transition "$CHANGE" open-complete ;; | ||
| design) bash "$state_sh" transition "$CHANGE" design-complete ;; | ||
| build) bash "$state_sh" transition "$CHANGE" build-complete ;; | ||
| verify) bash "$state_sh" transition "$CHANGE" verify-pass ;; | ||
| open) "$COMET_BASH" "$state_sh" transition "$CHANGE" open-complete ;; | ||
| design) "$COMET_BASH" "$state_sh" transition "$CHANGE" design-complete ;; | ||
| build) "$COMET_BASH" "$state_sh" transition "$CHANGE" build-complete ;; | ||
| verify) "$COMET_BASH" "$state_sh" transition "$CHANGE" verify-pass ;; | ||
| esac | ||
@@ -561,0 +563,0 @@ else |
@@ -7,2 +7,4 @@ #!/bin/bash | ||
| COMET_BASH="${COMET_BASH:-${BASH:-bash}}" | ||
| red() { echo -e "\033[31m$1\033[0m" >&2; } | ||
@@ -253,4 +255,4 @@ green() { echo -e "\033[32m$1\033[0m" >&2; } | ||
| if [ -x "$STATE_SH" ] || [ -f "$STATE_SH" ]; then | ||
| bash "$STATE_SH" set "$CHANGE" handoff_context "$CONTEXT_JSON" >/dev/null | ||
| bash "$STATE_SH" set "$CHANGE" handoff_hash "$CONTEXT_HASH" >/dev/null | ||
| "$COMET_BASH" "$STATE_SH" set "$CHANGE" handoff_context "$CONTEXT_JSON" >/dev/null | ||
| "$COMET_BASH" "$STATE_SH" set "$CHANGE" handoff_hash "$CONTEXT_HASH" >/dev/null | ||
| else | ||
@@ -257,0 +259,0 @@ red "ERROR: comet-state.sh not found; cannot record handoff fields" |
@@ -208,2 +208,3 @@ #!/bin/bash | ||
| build_mode: $build_mode | ||
| build_pause: null | ||
| isolation: $isolation | ||
@@ -268,3 +269,3 @@ verify_mode: $verify_mode | ||
| ;; | ||
| workflow|build_mode|isolation|verify_mode|verify_result|verification_report|branch_status|archived|design_doc|plan|verified_at|created_at|direct_override|build_command|verify_command|handoff_context|handoff_hash|base_ref) | ||
| workflow|build_mode|build_pause|isolation|verify_mode|verify_result|verification_report|branch_status|archived|design_doc|plan|verified_at|created_at|direct_override|build_command|verify_command|handoff_context|handoff_hash|base_ref) | ||
| # Valid field | ||
@@ -275,3 +276,3 @@ ;; | ||
| red "Valid fields:" >&2 | ||
| red " workflow, phase, design_doc, plan, build_mode, isolation," >&2 | ||
| red " workflow, phase, design_doc, plan, build_mode, build_pause, isolation," >&2 | ||
| red " verify_mode, verify_result, verification_report, branch_status," >&2 | ||
@@ -295,2 +296,5 @@ red " verified_at, created_at, archived, base_ref, direct_override," >&2 | ||
| ;; | ||
| build_pause) | ||
| validate_enum "$value" "null" "plan-ready" | ||
| ;; | ||
| isolation) | ||
@@ -639,3 +643,3 @@ validate_enum "$value" "branch" "worktree" | ||
| local design_doc plan verify_result verify_mode verification_report | ||
| local branch_status handoff_context handoff_hash isolation build_mode direct_override | ||
| local branch_status handoff_context handoff_hash isolation build_mode build_pause direct_override | ||
| design_doc=$(cmd_get "$change_name" "design_doc") | ||
@@ -651,2 +655,3 @@ plan=$(cmd_get "$change_name" "plan") | ||
| build_mode=$(cmd_get "$change_name" "build_mode") | ||
| build_pause=$(cmd_get "$change_name" "build_pause" 2>/dev/null || true) | ||
| direct_override=$(cmd_get "$change_name" "direct_override" 2>/dev/null || true) | ||
@@ -697,2 +702,3 @@ | ||
| field_status "build_mode" "$build_mode" | ||
| field_status "build_pause" "$build_pause" | ||
| if [ "$build_mode" = "direct" ] && [ "$workflow" != "hotfix" ] && [ "$workflow" != "tweak" ]; then | ||
@@ -717,3 +723,9 @@ field_status "direct_override" "$direct_override" | ||
| echo "" | ||
| if [ "$isolation" = "null" ] || [ -z "$isolation" ]; then | ||
| if [ "$build_pause" = "plan-ready" ] && [ -n "$plan" ] && [ "$plan" != "null" ] && [ -f "$plan" ] && { [ "$isolation" = "null" ] || [ -z "$isolation" ] || [ "$build_mode" = "null" ] || [ -z "$build_mode" ]; }; then | ||
| echo "Recovery action: Plan-ready pause detected. Ask the user whether to continue, then choose isolation and build mode without regenerating the plan." | ||
| elif [ "$build_pause" = "plan-ready" ] && { [ -z "$plan" ] || [ "$plan" = "null" ] || [ ! -f "$plan" ]; }; then | ||
| echo "Recovery action: Plan-ready pause is recorded, but the plan file is missing. Restore the plan file or rerun writing-plans before choosing execution." | ||
| elif [ "$build_pause" = "plan-ready" ]; then | ||
| echo "Recovery action: Plan-ready pause is stale because build decisions are already selected. Clear build_pause to null, then continue from the first unchecked task." | ||
| elif [ "$isolation" = "null" ] || [ -z "$isolation" ]; then | ||
| echo "Recovery action: Isolation not selected. Use AskUserQuestion to ask user for branch/worktree choice." | ||
@@ -720,0 +732,0 @@ elif [ "$build_mode" = "null" ] || [ -z "$build_mode" ]; then |
@@ -129,2 +129,3 @@ #!/bin/bash | ||
| build_mode=$(field_value "build_mode") | ||
| build_pause=$(field_value "build_pause") | ||
| isolation=$(field_value "isolation") | ||
@@ -144,2 +145,3 @@ verify_mode=$(field_value "verify_mode") | ||
| validate_enum "build_mode" "$build_mode" "subagent-driven-development executing-plans direct" | ||
| validate_enum "build_pause" "$build_pause" "null plan-ready" | ||
| validate_enum "isolation" "$isolation" "branch worktree" | ||
@@ -179,3 +181,3 @@ validate_enum "verify_mode" "$verify_mode" "light full" | ||
| # --- Unknown keys check --- | ||
| KNOWN_KEYS="workflow phase design_doc plan build_mode isolation verify_mode verify_result verification_report branch_status verified_at created_at archived direct_override build_command verify_command handoff_context handoff_hash base_ref" | ||
| KNOWN_KEYS="workflow phase design_doc plan build_mode build_pause isolation verify_mode verify_result verification_report branch_status verified_at created_at archived direct_override build_command verify_command handoff_context handoff_hash base_ref" | ||
| while IFS=: read -r key _; do | ||
@@ -182,0 +184,0 @@ key="${key// /}" |
@@ -56,5 +56,9 @@ --- | ||
| - 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 | ||
| - If `phase: build`, first check whether `build_mode` and `isolation` are set; if any fields are unset, return to `/comet-build` corresponding step to supplement before executing; if both are set, read the next unchecked task from tasks.md and continue | ||
| - 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 `bash "$COMET_STATE" transition <name> verify-fail` and invoke `/comet-build` | ||
| - If `phase: open` but proposal/design/tasks are complete, first run `bash "$COMET_GUARD" <change-name> open --apply` to repair state, then continue detection | ||
| - If `phase: build`, first check `build_pause`, `plan`, `build_mode`, and `isolation`: | ||
| - If `build_pause: plan-ready` and the plan file exists, return to the `/comet-build` plan-ready resume point, prompt the user to continue choosing isolation and execution method, and do not regenerate the plan | ||
| - If `build_pause: plan-ready` but the plan file is missing, return to `/comet-build` to handle corrupted state or regenerate the plan | ||
| - If `build_mode` or `isolation` is unset, return to the corresponding `/comet-build` step to supplement before executing | ||
| - If both are set, read the next unchecked task from tasks.md and continue | ||
| - 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 `"$COMET_BASH" "$COMET_STATE" transition <name> verify-fail` and invoke `/comet-build` | ||
| - If `phase: open` but proposal/design/tasks are complete, first run `"$COMET_BASH" "$COMET_GUARD" <change-name> open --apply` to repair state, then continue detection | ||
| - If `phase: archive`, only invoke `/comet-archive`; after archive succeeds, the change moves to the archive directory, so do not run guard against the old active directory | ||
@@ -96,3 +100,3 @@ | ||
| | Sub-skill unavailable | Stop workflow, prompt to install or enable the corresponding skill | | ||
| | `.comet.yaml` malformed or missing | Use file state as source of truth, correct with `bash $COMET_STATE set` then continue | | ||
| | `.comet.yaml` malformed or missing | Use file state as source of truth, correct with `"$COMET_BASH" "$COMET_STATE" set` then continue | | ||
| | Build/test fails | Return to build phase for fixes, do not enter verify | | ||
@@ -115,3 +119,3 @@ | Incomplete change directory structure | Fill missing files according to `comet-open` artifact requirements | | ||
| 2. Confirm design approach during brainstorming | ||
| 3. Select workflow configuration during build phase (isolation + execution method, single interaction) | ||
| 3. Plan-ready pause choice during build phase, followed by workflow configuration selection (isolation + execution method) | ||
| 4. Decide to fix or accept deviation when verify fails (including Spec drift handling) | ||
@@ -177,2 +181,3 @@ 5. Choose branch handling method for finishing-branch | ||
| build_mode: subagent-driven-development | ||
| build_pause: null | ||
| isolation: branch | ||
@@ -196,2 +201,3 @@ verify_mode: light | ||
| | `build_mode` | Selected execution method, can be empty | | ||
| | `build_pause` | Internal build-phase pause point. `null` means no pause; `plan-ready` means the plan has been generated and the user chose to pause for switching models | | ||
| | `isolation` | `branch` or `worktree`, workspace isolation method. Full workflow init may leave this as `null`, but only until `/comet-build` Step 3; hotfix/tweak default to `branch` | | ||
@@ -218,2 +224,3 @@ | `verify_mode` | `light` or `full`, can be empty | | ||
| - `build_mode: direct` is allowed by default only for `hotfix` / `tweak`; full workflow requires `direct_override: true` | ||
| - `build_pause` is not an execution method and must not be written to `build_mode` | ||
| - These constraints are enforced by both `comet-guard.sh build --apply` and `comet-state.sh transition <name> build-complete` | ||
@@ -244,3 +251,3 @@ | ||
| ```bash | ||
| bash "$COMET_GUARD" <change-name> <phase> --apply | ||
| "$COMET_BASH" "$COMET_GUARD" <change-name> <phase> --apply | ||
| ``` | ||
@@ -251,8 +258,8 @@ | ||
| ```bash | ||
| bash "$COMET_STATE" transition <change-name> open-complete | ||
| bash "$COMET_STATE" transition <change-name> design-complete | ||
| bash "$COMET_STATE" transition <change-name> build-complete | ||
| bash "$COMET_STATE" transition <change-name> verify-pass | ||
| bash "$COMET_STATE" transition <change-name> verify-fail | ||
| bash "$COMET_STATE" transition <archive-name> archived | ||
| "$COMET_BASH" "$COMET_STATE" transition <change-name> open-complete | ||
| "$COMET_BASH" "$COMET_STATE" transition <change-name> design-complete | ||
| "$COMET_BASH" "$COMET_STATE" transition <change-name> build-complete | ||
| "$COMET_BASH" "$COMET_STATE" transition <change-name> verify-pass | ||
| "$COMET_BASH" "$COMET_STATE" transition <change-name> verify-fail | ||
| "$COMET_BASH" "$COMET_STATE" transition <archive-name> archived | ||
| ``` | ||
@@ -263,3 +270,3 @@ | ||
| ```bash | ||
| bash "$COMET_ARCHIVE" <change-name> | ||
| "$COMET_BASH" "$COMET_ARCHIVE" <change-name> | ||
| ``` | ||
@@ -266,0 +273,0 @@ |
+1
-1
| { | ||
| "name": "@rpamis/comet", | ||
| "version": "0.3.5", | ||
| "version": "0.3.6", | ||
| "description": "OpenSpec + Superpowers dual-star development workflow", | ||
@@ -5,0 +5,0 @@ "keywords": [ |
+14
-2
@@ -312,2 +312,3 @@ <p align="center"> | ||
| build_mode: subagent-driven-development | ||
| build_pause: null | ||
| isolation: branch | ||
@@ -329,3 +330,3 @@ verify_mode: null | ||
| In full workflow, `build_mode`, `isolation`, and `verify_mode` may temporarily be `null`; `build_mode` and `isolation` must be resolved before `build → verify`. `verification_report` stays `null` until verification writes a report, and `verify-pass` requires that report to exist plus `branch_status: handled`. Fields after `archived` in the example are optional or script-derived: `direct_override` is only needed for full-workflow direct builds, project commands may be absent unless configured, and `handoff_context` / `handoff_hash` are recorded by `comet-handoff.sh` before leaving design. Projects can configure `build_command` / `verify_command` in the change or repo root, and guard will run those commands first and print failure output. | ||
| In full workflow, `build_mode`, `build_pause`, `isolation`, and `verify_mode` may temporarily be `null`; `build_mode` and `isolation` must be resolved before `build → verify`. `build_pause` records an internal build-phase pause point: `null` means no pause, while `plan-ready` means the plan has been generated and the user paused before choosing isolation and execution mode. It is not an execution mode and must not be written into `build_mode`. `verification_report` stays `null` until verification writes a report, and `verify-pass` requires that report to exist plus `branch_status: handled`. Fields after `archived` in the example are optional or script-derived: `direct_override` is only needed for full-workflow direct builds, project commands may be absent unless configured, and `handoff_context` / `handoff_hash` are recorded by `comet-handoff.sh` before leaving design. Projects can configure `build_command` / `verify_command` in the change or repo root, and guard will run those commands first and print failure output. | ||
@@ -360,2 +361,3 @@ </details> | ||
| - `build_mode` must be selected before leaving build | ||
| - `build_pause: plan-ready` is a recoverable pause after plan generation, not a `build_mode` | ||
| - Full workflow `build_mode: direct` requires `direct_override: true` | ||
@@ -425,3 +427,3 @@ | ||
| <a href="https://github.com/rpamis/comet/graphs/contributors"> | ||
| <img src="https://contrib.rocks/image?repo=rpamis/comet&max=999&columns=12&anon=1" /> | ||
| <img src="https://contrib.rocks/image?repo=rpamis/comet&columns=12&anon=1" /> | ||
| </a> | ||
@@ -433,4 +435,14 @@ | ||
| ## Community | ||
| <p align="center"> | ||
| <img src="https://github.com/rpamis/comet/blob/master/img/wechat.jpg" alt="WeChat Group" width="200" /> | ||
| | ||
| <img src="https://github.com/rpamis/comet/blob/master/img/qq.jpg" alt="QQ Group" width="200" /> | ||
| </p> | ||
| <p align="center">WeChat Group | QQ Group</p> | ||
| ## Reference | ||
| [LINUX DO - 新的理想型社区](https://linux.do/) |
AI-detected potential code anomaly
Supply chain riskAI has identified unusual behaviors that may pose a security risk.
Found 1 instance in 1 package
382091
2.41%444
2.78%20
5.26%