@rpamis/comet 0.4.0-beta.5 → 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.
Files changed (53) hide show
  1. package/README.md +6 -3
  2. package/assets/manifest.json +1 -1
  3. package/assets/skills/comet/SKILL.md +1 -1
  4. package/assets/skills/comet/reference/comet-yaml-fields.md +4 -2
  5. package/assets/skills/comet/scripts/comet-runtime.mjs +504 -260
  6. package/assets/skills/comet-archive/SKILL.md +6 -7
  7. package/assets/skills/comet-build/SKILL.md +16 -10
  8. package/assets/skills/comet-hotfix/SKILL.md +16 -2
  9. package/assets/skills/comet-tweak/SKILL.md +15 -3
  10. package/assets/skills/comet-verify/SKILL.md +2 -0
  11. package/assets/skills-zh/comet/SKILL.md +1 -1
  12. package/assets/skills-zh/comet/reference/comet-yaml-fields.md +4 -2
  13. package/assets/skills-zh/comet-archive/SKILL.md +6 -7
  14. package/assets/skills-zh/comet-build/SKILL.md +16 -10
  15. package/assets/skills-zh/comet-hotfix/SKILL.md +16 -2
  16. package/assets/skills-zh/comet-tweak/SKILL.md +15 -3
  17. package/assets/skills-zh/comet-verify/SKILL.md +2 -0
  18. package/dist/app/commands/status.d.ts +1 -0
  19. package/dist/app/commands/status.d.ts.map +1 -1
  20. package/dist/app/commands/status.js +10 -0
  21. package/dist/app/commands/status.js.map +1 -1
  22. package/dist/domains/comet-classic/classic-branch-binding.d.ts +51 -0
  23. package/dist/domains/comet-classic/classic-branch-binding.d.ts.map +1 -0
  24. package/dist/domains/comet-classic/classic-branch-binding.js +107 -0
  25. package/dist/domains/comet-classic/classic-branch-binding.js.map +1 -0
  26. package/dist/domains/comet-classic/classic-current-change.d.ts.map +1 -1
  27. package/dist/domains/comet-classic/classic-current-change.js +37 -20
  28. package/dist/domains/comet-classic/classic-current-change.js.map +1 -1
  29. package/dist/domains/comet-classic/classic-guard.d.ts.map +1 -1
  30. package/dist/domains/comet-classic/classic-guard.js +40 -10
  31. package/dist/domains/comet-classic/classic-guard.js.map +1 -1
  32. package/dist/domains/comet-classic/classic-hook-guard.d.ts.map +1 -1
  33. package/dist/domains/comet-classic/classic-hook-guard.js +25 -2
  34. package/dist/domains/comet-classic/classic-hook-guard.js.map +1 -1
  35. package/dist/domains/comet-classic/classic-state-command.d.ts.map +1 -1
  36. package/dist/domains/comet-classic/classic-state-command.js +94 -4
  37. package/dist/domains/comet-classic/classic-state-command.js.map +1 -1
  38. package/dist/domains/comet-classic/classic-state-events.d.ts +1 -1
  39. package/dist/domains/comet-classic/classic-state-events.d.ts.map +1 -1
  40. package/dist/domains/comet-classic/classic-state.d.ts +2 -1
  41. package/dist/domains/comet-classic/classic-state.d.ts.map +1 -1
  42. package/dist/domains/comet-classic/classic-state.js +3 -0
  43. package/dist/domains/comet-classic/classic-state.js.map +1 -1
  44. package/dist/domains/comet-classic/classic-transitions.d.ts.map +1 -1
  45. package/dist/domains/comet-classic/classic-transitions.js +1 -0
  46. package/dist/domains/comet-classic/classic-transitions.js.map +1 -1
  47. package/dist/domains/comet-classic/classic-validate-command.d.ts.map +1 -1
  48. package/dist/domains/comet-classic/classic-validate-command.js +6 -0
  49. package/dist/domains/comet-classic/classic-validate-command.js.map +1 -1
  50. package/dist/domains/skill/find.d.ts.map +1 -1
  51. package/dist/domains/skill/find.js +7 -1
  52. package/dist/domains/skill/find.js.map +1 -1
  53. package/package.json +1 -1
@@ -28,6 +28,8 @@ comet state check <name> archive
28
28
 
29
29
  Proceed to Step 1 after verification passes. The script outputs specific failure reasons when verification fails.
30
30
 
31
+ If the `select` / `check` output is `BLOCKED` because `bound_branch` does not match the current branch, immediately pause under `comet/reference/decision-point.md` and let the user choose one option: switch back to the bound branch and rerun entry verification, or run `comet state rebind <change-name>` after the user explicitly confirms the current branch should take over this change, then rerun entry verification. Do not switch branches or rebind on your own.
32
+
31
33
  ### 1. Final Archive Confirmation (Blocking Point)
32
34
 
33
35
  After entry verification passes, **must follow the `comet/reference/decision-point.md` protocol to pause and wait for the user to confirm whether to archive immediately**. Must not run `comet archive "<change-name>"` before user confirmation.
@@ -104,15 +106,12 @@ Stop if the commit fails or the staged diff contains unrelated paths.
104
106
 
105
107
  ### 5. Handle the Branch After the Archive Commit
106
108
 
107
- After the archive commit succeeds, **immediately execute:** use the Skill tool to load Superpowers `finishing-a-development-branch`. This ordering ensures the final branch or PR contains the main-spec merge and archive metadata.
108
-
109
- If the skill is unavailable, stop and prompt the user to enable/install it; do not mark `branch_status` handled. After loading it, pause under `comet/reference/decision-point.md` and let the user choose:
109
+ After the archive commit succeeds, first read `comet state get <change-name> isolation` and route by isolation:
110
110
 
111
- 1. Merge locally into the main branch
112
- 2. Push and create a PR
113
- 3. Keep the current branch for later
111
+ - `isolation !== current`: **immediately execute:** use the Skill tool to load Superpowers `finishing-a-development-branch`. This ordering ensures the final branch or PR contains the main-spec merge and archive metadata. If the skill is unavailable, stop and prompt the user to enable/install it; do not mark `branch_status` handled. After loading it, pause under `comet/reference/decision-point.md` and let the user choose: merge locally into the main branch, push and create a PR, or keep the current branch for later.
112
+ - `isolation === current`: skip Superpowers `finishing-a-development-branch`. Pause under `comet/reference/decision-point.md` and let the user choose one option: push the current branch, or do not push yet and keep the local state.
114
113
 
115
- Archive is already complete, so do not offer "discard work". Only after the selected operation succeeds (or the user explicitly keeps the branch), run:
114
+ Archive is already complete, so do not offer "discard work". Only after the selected operation succeeds, the user explicitly keeps the branch, or the user explicitly chooses not to push in `current` mode, run:
116
115
 
117
116
  ```bash
118
117
  comet state set <change-name> branch_status handled
@@ -23,6 +23,8 @@ comet state check <name> build
23
23
 
24
24
  Proceed to Step 1 after verification passes. The script outputs specific failure reasons when verification fails.
25
25
 
26
+ If the `select` / `check` output is `BLOCKED` because `bound_branch` does not match the current branch, immediately pause under `comet/reference/decision-point.md` and let the user choose one option: switch back to the bound branch and rerun entry verification, or run `comet state rebind <change-name>` after the user explicitly confirms the current branch should take over this change, then rerun entry verification. Do not switch branches or rebind on your own.
27
+
26
28
  **Idempotency**: All build phase operations can be safely re-executed. Read `.comet.yaml` `phase` to confirm build, read the plan header `base-ref`, then parse tasks.md checkboxes in document order and resume from the first unchecked task. Already-committed tasks must not be re-committed.
27
29
 
28
30
  ### 1. Create Plan (Subagent Offload)
@@ -116,12 +118,14 @@ The plan is on the current branch. These settings are all part of the single Ste
116
118
 
117
119
  | Option | Method | Description |
118
120
  |--------|--------|-------------|
119
- | A | Create branch | Create a new branch in the current repo, simple and fast |
120
- | B | Create Worktree | Isolated workspace, fully independent, suitable for parallel development |
121
+ | A | Work on current branch | Do not create a new branch; truthfully bind the current Git branch |
122
+ | B | Create branch | Create a new branch in the current repo, simple and fast |
123
+ | C | Create Worktree | Isolated workspace, fully independent, suitable for parallel development |
121
124
 
122
125
  **Recommendation rules**:
123
- - Change involves 3 files → Recommend A
124
- - Need parallel development, current branch has uncommitted work → Recommend B
126
+ - User explicitly wants to keep the current branch, or the current branch is already the target branch for this change → Recommend A
127
+ - Change involves 3 files and the current branch is clean → Recommend B
128
+ - Need parallel development, current branch has uncommitted work → Recommend C
125
129
 
126
130
  **Execution Method**:
127
131
 
@@ -135,12 +139,12 @@ The plan is on the current branch. These settings are all part of the single Ste
135
139
  - Task count ≤ 2 and no cross-module dependencies → Recommend B
136
140
  - From hotfix path → Recommend B
137
141
 
138
- These tables are part of the Step 2 joint decision and do not create another pause. First remove options that capability preflight found unavailable. When multiple valid options remain, do not choose `branch` or `worktree`, execution method, TDD mode, or review mode from recommendations. Recommendations explain a preference; they never replace user confirmation.
142
+ These tables are part of the Step 2 joint decision and do not create another pause. First remove options that capability preflight found unavailable. When multiple valid options remain, do not choose `current`, `branch`, or `worktree`, execution method, TDD mode, or review mode from recommendations. Recommendations explain a preference; they never replace user confirmation.
139
143
 
140
144
  After user selection, update `isolation`, execution method, TDD mode, and code review mode fields:
141
145
 
142
146
  ```bash
143
- comet state set <name> isolation <branch|worktree>
147
+ comet state set <name> isolation <current|branch|worktree>
144
148
  ```
145
149
 
146
150
  - If the user chooses `executing-plans`: run `comet state set <name> subagent_dispatch null`, then run `comet state set <name> build_mode executing-plans`
@@ -166,7 +170,7 @@ Run `comet state set <name> tdd_mode <tdd|direct>`
166
170
 
167
171
  Run `comet state set <name> review_mode <off|standard|thorough>`
168
172
 
169
- `isolation` is a script-enforced hard constraint. Full workflow init may temporarily leave it as `null`, but only before this step. If it remains `null`, both the `build → verify` guard and `comet state transition build-complete` will fail.
173
+ `isolation` is a script-enforced hard constraint. Full workflow init may temporarily leave it as `null`, but only before this step. If it remains `null`, both the `build → verify` guard and `comet state transition build-complete` will fail. Full workflow allows `current`, `branch`, or `worktree`, but `current` must be written only after the user explicitly selects it in Step 2; never make it a silent default.
170
174
 
171
175
  `subagent_dispatch` is a script-enforced hard constraint. `build_mode: subagent-driven-development` requires `subagent_dispatch: confirmed` before leaving the build phase, otherwise both `comet guard build --apply` and `comet state transition build-complete` will fail.
172
176
 
@@ -185,6 +189,8 @@ Without `direct_override: true`, `build_mode=direct` in full workflow is blocked
185
189
 
186
190
  **Execute isolation**:
187
191
 
192
+ - **current**: Do not create a new branch or worktree; execute directly on the current Git branch. Run `comet state set <name> isolation current` immediately; the command writes the current branch to `bound_branch`. If HEAD is detached, stop and ask the user to check out a real branch first, because there is no auditable branch binding.
193
+
188
194
  - **branch**: Use the branch name already confirmed in Step 2; do not pause again. If legacy recovery no longer has the branch name from that joint decision, re-enter the same Step 2 decision instead of creating a separate branch-naming decision.
189
195
 
190
196
  Branch naming convention:
@@ -196,7 +202,7 @@ Without `direct_override: true`, `build_mode=direct` in full workflow is blocked
196
202
 
197
203
  Example: if change name is `fix-login-bug` and today is 2026-06-09, recommend `feature/20260609/fix-login-bug`
198
204
 
199
- Immediately after Step 2 confirms the branch name, run `git checkout -b <branch-name>` and continue on the new branch.
205
+ Immediately after Step 2 confirms the branch name, run `git checkout -b <branch-name>`, then run `comet state set <name> isolation branch` to write the new branch to `bound_branch`. Continue on the new branch.
200
206
 
201
207
  - **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.
202
208
 
@@ -207,7 +213,7 @@ git add docs/superpowers/plans/YYYY-MM-DD-feature.md
207
213
  git commit -m "chore: add implementation plan"
208
214
  ```
209
215
 
210
- After entering the final execution branch or worktree, bind the current change again inside that actual workspace. A branch switch invalidates the entry binding, and a new worktree does not inherit the original workspace-local selection file:
216
+ After entering the final execution branch or worktree, bind the current change again inside that actual workspace. Branch mode is bound after checkout with `isolation branch`; worktree mode must run `comet state set <name> isolation worktree` inside the new workspace to write that worktree's current branch to `bound_branch`. A new worktree does not inherit the original workspace-local selection file, so select the current change too:
211
217
 
212
218
  ```bash
213
219
  comet state select <change-name>
@@ -288,7 +294,7 @@ Build is the longest phase and may span many tasks. To support resume after cont
288
294
  - All tasks.md checked
289
295
  - Code committed
290
296
  - Project-specific build/tests explicitly run and pass; do not rely only on guard auto-detection
291
- - `isolation` has been written as `branch` or `worktree`
297
+ - `isolation` has been written as `current`, `branch`, or `worktree`
292
298
  - `build_mode` has been written as `subagent-driven-development`, `executing-plans`, or `direct` with explicit override; if `subagent-driven-development`, `subagent_dispatch` must be `confirmed`
293
299
  - `tdd_mode` has been written as `tdd` or `direct`
294
300
  - `review_mode` has been written as `off`, `standard`, or `thorough`
@@ -42,7 +42,21 @@ comet state select <name>
42
42
  comet state check <name> open
43
43
  ```
44
44
 
45
- Hotfix defaults to `isolation: current`, truthfully indicating execution in the current workspace. Change it to `branch` or `worktree` only after that workspace is actually created/selected. Then create the streamlined artifacts:
45
+ If the `select` / `check` output is `BLOCKED` because `bound_branch` does not match the current branch, immediately pause under `comet/reference/decision-point.md` and let the user choose one option: switch back to the bound branch and rerun entry verification, or run `comet state rebind <change-name>` after the user explicitly confirms the current branch should take over this change, then rerun entry verification. Do not switch branches or rebind on your own.
46
+
47
+ Entry workspace isolation is a user decision point; do not use `current` as the default isolation mode. Pause under `comet/reference/decision-point.md` and let the user choose one option:
48
+
49
+ - A. Work directly on the current branch: run `comet state set <name> isolation current` to truthfully bind the current branch
50
+ - B. Create a branch: create and switch to `hotfix/YYYYMMDD/<change-name>`, then run `comet state set <name> isolation branch`
51
+ - C. Create a worktree: first use the Skill tool to load Superpowers `using-git-worktrees`; let that skill create the isolated workspace, then run `comet state set <name> isolation worktree` inside the worktree
52
+
53
+ After B/C, rerun this in the actual execution branch or worktree:
54
+
55
+ ```bash
56
+ comet state select <name>
57
+ ```
58
+
59
+ Then create the streamlined artifacts:
46
60
  - `proposal.md` — problem description + root cause analysis + fix goal (no solution comparison needed)
47
61
  - `design.md` — fix solution (one is enough, no multi-solution comparison needed)
48
62
  - `tasks.md` — fix task list
@@ -65,7 +79,7 @@ comet state next <name>
65
79
 
66
80
  ### 2. Direct Build (preset build)
67
81
 
68
- Use hotfix defaults: `build_mode: direct`, `tdd_mode: direct`, `review_mode: off`, and `isolation: current`. Here `direct` skips full planning/TDD orchestration; it never skips reproduction, regression coverage, or verification. Skip Superpowers `brainstorming` and `writing-plans`; **task count alone does not route to `/comet-build`**. Keep larger task lists ordered in the current hotfix and ask about upgrading only when a qualitative-change signal or scope tripwire is hit.
82
+ Use hotfix defaults: `build_mode: direct`, `tdd_mode: direct`, and `review_mode: off`. `isolation` must keep the entry workspace isolation the user confirmed in Step 1; do not change it back to `current` on your own. Here `direct` skips full planning/TDD orchestration; it never skips reproduction, regression coverage, or verification. Skip Superpowers `brainstorming` and `writing-plans`; **task count alone does not route to `/comet-build`**. Keep larger task lists ordered in the current hotfix and ask about upgrading only when a qualitative-change signal or scope tripwire is hit.
69
83
 
70
84
  Before continuing or starting changes, handle uncommitted changes through `comet/reference/dirty-worktree.md`. If attribution shows a qualitative-change signal or file-count tripwire is hit, handle it through this file's "Upgrade Assessment".
71
85
 
@@ -50,14 +50,26 @@ comet state init <name> tweak
50
50
  comet state select <name>
51
51
  ```
52
52
 
53
- Tweak defaults to `isolation: current`, truthfully indicating execution in the current workspace. Change it to `branch` or `worktree` only after that workspace is actually created/selected.
54
-
55
53
  Verify initialized state:
56
54
 
57
55
  ```bash
58
56
  comet state check <name> open
59
57
  ```
60
58
 
59
+ If the `select` / `check` output is `BLOCKED` because `bound_branch` does not match the current branch, immediately pause under `comet/reference/decision-point.md` and let the user choose one option: switch back to the bound branch and rerun entry verification, or run `comet state rebind <change-name>` after the user explicitly confirms the current branch should take over this change, then rerun entry verification. Do not switch branches or rebind on your own.
60
+
61
+ Entry workspace isolation is a user decision point; do not use `current` as the default isolation mode. Pause under `comet/reference/decision-point.md` and let the user choose one option:
62
+
63
+ - A. Work directly on the current branch: run `comet state set <name> isolation current` to truthfully bind the current branch
64
+ - B. Create a branch: create and switch to `tweak/YYYYMMDD/<change-name>`, then run `comet state set <name> isolation branch`
65
+ - C. Create a worktree: first use the Skill tool to load Superpowers `using-git-worktrees`; let that skill create the isolated workspace, then run `comet state set <name> isolation worktree` inside the worktree
66
+
67
+ After B/C, rerun this in the actual execution branch or worktree:
68
+
69
+ ```bash
70
+ comet state select <name>
71
+ ```
72
+
61
73
  Run phase guard to transition open → build:
62
74
 
63
75
  ```bash
@@ -66,7 +78,7 @@ comet guard <change-name> open --apply
66
78
 
67
79
  ### 2. OpenSpec Apply Build (tweak-only preset build)
68
80
 
69
- Use tweak defaults: `build_mode: direct`. Skip Superpowers `brainstorming` and `writing-plans`, and let OpenSpec's apply action execute the current change's tasks.
81
+ Use tweak defaults: `build_mode: direct`. `isolation` must keep the entry workspace isolation the user confirmed in Step 1; do not change it back to `current` on your own. Skip Superpowers `brainstorming` and `writing-plans`, and let OpenSpec's apply action execute the current change's tasks.
70
82
 
71
83
  <IMPORTANT>
72
84
  This apply path belongs only to tweak. Full `/comet` or `workflow: full` must not use tweak's `openspec-apply-change` build path; full must still generate a Design Doc through `/comet-design`, then let `/comet-build` use Superpowers `writing-plans`, execution-method selection, and the corresponding execution skill to build.
@@ -27,6 +27,8 @@ comet state check <change-name> verify
27
27
 
28
28
  Proceed to Step 1 after verification passes. The script outputs specific failure reasons when verification fails.
29
29
 
30
+ If the `select` / `check` output is `BLOCKED` because `bound_branch` does not match the current branch, immediately pause under `comet/reference/decision-point.md` and let the user choose one option: switch back to the bound branch and rerun entry verification, or run `comet state rebind <change-name>` after the user explicitly confirms the current branch should take over this change, then rerun entry verification. Do not switch branches or rebind on your own.
31
+
30
32
  **Idempotency**: All verify checks are safe to repeat. If `verify_result` is already `pass`, verification is complete and archive should continue; keep `branch_status: pending` until archive changes are committed and final branch handling finishes. If `verify_result` is `pending`, start verification from the beginning.
31
33
 
32
34
  ### 1. Scale Assessment
@@ -256,7 +256,7 @@ agent 不应跳过这些决策点;其他明确无歧义的阶段衔接必须
256
256
 
257
257
  ### 状态机硬约束
258
258
 
259
- - full workflow 的 `build → verify` 前,`isolation` 必须是 `branch` 或 `worktree`;hotfix/tweak 可如实使用 `current`
259
+ - `build → verify` 前,`isolation` 必须是 `current`、`branch` 或 `worktree`;`current` 只能来自用户显式选择并绑定当前分支
260
260
  - `build → verify` 前,`build_mode` 必须已选择
261
261
  - `build_mode: subagent-driven-development` 必须同时有 `subagent_dispatch: confirmed`
262
262
  - full workflow 离开 build 阶段前 `tdd_mode` 必须已选择为 `tdd` 或 `direct`
@@ -20,6 +20,7 @@ tdd_mode: tdd
20
20
  review_mode: standard
21
21
  auto_transition: true
22
22
  isolation: branch
23
+ bound_branch: null
23
24
  verify_mode: light
24
25
  verify_result: pending
25
26
  verify_failures: 0
@@ -46,7 +47,8 @@ archived: false
46
47
  | `subagent_dispatch` | `null` 或 `confirmed`。仅当已确认当前平台存在真实后台 subagent / Task / multi-agent 调度能力时,`build_mode: subagent-driven-development` 才能写入并用于离开 build 阶段 |
47
48
  | `tdd_mode` | `tdd` 或 `direct`。full workflow 离开 build 阶段前必须已选择。`tdd` 强制每个任务先写失败测试再实现;`direct` 不强制逐任务 TDD,但仍需相关测试与 bug 回归证据。hotfix/tweak 默认 `direct` |
48
49
  | `review_mode` | `off`、`standard` 或 `thorough`。full workflow 离开 build 阶段前必须已选择;hotfix/tweak 默认 `off` |
49
- | `isolation` | `current`、`branch` 或 `worktree`。full 初始化可为 `null`,离开 build 前必须实际创建/选择 `branch` `worktree`;hotfix/tweak 默认 `current`,不得在未创建分支时虚构为 `branch` |
50
+ | `isolation` | `current`、`branch` 或 `worktree`。full 初始化可为 `null`,离开 build 前必须由用户显式选择 `current`、实际创建/选择 `branch`,或实际创建/选择 `worktree`;hotfix/tweak 在入口用户决策点后也可如实使用三种模式,不得在未创建分支时虚构为 `branch` |
51
+ | `bound_branch` | 工作区分支绑定记录,可为空。`isolation: current` / `branch` / `worktree` 首次设置或入口检查时记录命令执行目录所在的当前 Git 分支(worktree 模式请在对应工作区内执行 set/check/guard,否则会绑定/比对错误的分支);在不同工作区模式之间切换 `isolation` 会重新绑定到当前分支,重复设置同一模式保持原绑定。后续 `comet state select` / `comet state check` 必须确认绑定分支与当前分支一致;漂移时 `select` 直接拒绝、检查进入 `BLOCKED`,按决策点协议让用户选择切回绑定分支或明确确认后运行 `comet state rebind <change-name>`。清空 `isolation` 时会清空该字段 |
50
52
  | `verify_mode` | `light` 或 `full`,可为空 |
51
53
  | `auto_transition` | `true` 或 `false`。只控制阶段守卫推进 phase 后是否自动调用下一个 skill;`false` 时由 `comet-state next` 输出 `manual`,暂停下一 skill 调用,但不阻止 phase 字段更新 |
52
54
  | `verify_result` | `pending`、`pass` 或 `fail` |
@@ -66,7 +68,7 @@ archived: false
66
68
 
67
69
  ## 状态机硬约束
68
70
 
69
- - full workflow 的 `build → verify` 前,`isolation` 必须是 `branch` 或 `worktree`;hotfix/tweak 可使用 `current`
71
+ - `build → verify` 前,`isolation` 必须是 `current`、`branch` 或 `worktree`
70
72
  - `build → verify` 前,`build_mode` 必须已选择
71
73
  - `build_mode: subagent-driven-development` 必须同时有 `subagent_dispatch: confirmed`
72
74
  - full workflow 离开 build 阶段前 `tdd_mode` 必须已选择为 `tdd` 或 `direct`
@@ -28,6 +28,8 @@ comet state check <name> archive
28
28
 
29
29
  验证通过后继续 Step 1。验证失败时脚本会输出具体失败原因。
30
30
 
31
+ 若上述 `select` / `check` 输出 `BLOCKED`,且原因是 `bound_branch` 与当前分支不一致,立即按 `comet/reference/decision-point.md` 暂停,让用户单选:切回绑定分支后重新运行入口验证,或在用户明确确认当前分支应接管该 change 后运行 `comet state rebind <change-name>` 并重新入口验证。不得自行切换分支,不得自行换绑。
32
+
31
33
  ### 1. 归档前最终确认(阻塞点)
32
34
 
33
35
  入口验证通过后,**必须按 `comet/reference/decision-point.md` 的协议暂停并等待用户确认是否立即归档**。不得在用户确认前运行 `comet archive "<change-name>"`。
@@ -104,15 +106,12 @@ git commit -m "chore: archive <change-name>"
104
106
 
105
107
  ### 5. 归档提交后的分支处理
106
108
 
107
- 归档提交成功后,**立即执行:** 使用 Skill 工具加载 Superpowers `finishing-a-development-branch` 技能。该步骤必须位于归档与归档提交之后,确保最终分支/PR 包含 spec 合并和归档元数据。
108
-
109
- 如该技能不可用,停止流程并提示安装或启用;不得把 `branch_status` 标记为完成。技能加载后,按 `comet/reference/decision-point.md` 暂停让用户选择:
109
+ 归档提交成功后,先读取 `comet state get <change-name> isolation`,按隔离方式分流:
110
110
 
111
- 1. 本地合并到主分支
112
- 2. 推送并创建 PR
113
- 3. 保持当前分支稍后处理
111
+ - `isolation !== current`:**立即执行:** 使用 Skill 工具加载 Superpowers `finishing-a-development-branch` 技能。该步骤必须位于归档与归档提交之后,确保最终分支/PR 包含 spec 合并和归档元数据。如该技能不可用,停止流程并提示安装或启用;不得把 `branch_status` 标记为完成。技能加载后,按 `comet/reference/decision-point.md` 暂停让用户选择:本地合并到主分支、推送并创建 PR、保持当前分支稍后处理。
112
+ - `isolation === current`:跳过 Superpowers `finishing-a-development-branch`。按 `comet/reference/decision-point.md` 暂停让用户二选一:推送当前分支,或暂不推送并保留本地状态。
114
113
 
115
- 归档已经完成,因此这里不提供“丢弃工作”选项。只有用户选择的操作成功完成(或明确选择保持分支)后,才运行:
114
+ 归档已经完成,因此这里不提供“丢弃工作”选项。只有用户选择的操作成功完成、明确选择保持分支,或在 `current` 模式下明确选择暂不推送后,才运行:
116
115
 
117
116
  ```bash
118
117
  comet state set <change-name> branch_status handled
@@ -23,6 +23,8 @@ comet state check <name> build
23
23
 
24
24
  验证通过后继续 Step 1。验证失败时脚本会输出具体失败原因。
25
25
 
26
+ 若上述 `select` / `check` 输出 `BLOCKED`,且原因是 `bound_branch` 与当前分支不一致,立即按 `comet/reference/decision-point.md` 暂停,让用户单选:切回绑定分支后重新运行入口验证,或在用户明确确认当前分支应接管该 change 后运行 `comet state rebind <change-name>` 并重新入口验证。不得自行切换分支,不得自行换绑。
27
+
26
28
  **幂等性**:build 阶段所有操作可安全重复执行。读取 `.comet.yaml` 的 `phase` 字段确认仍在 build 阶段,读取 plan 文件头的 `base-ref`,再按文档顺序解析 tasks.md 的复选框,从第一个未勾选任务继续执行。已提交的任务不得重复提交。
27
29
 
28
30
  ### 1. 制定计划(Subagent Offload)
@@ -116,12 +118,14 @@ comet state set <name> build_pause null
116
118
 
117
119
  | 选项 | 方式 | 说明 |
118
120
  |------|------|------|
119
- | A | 创建分支 | 在当前仓库创建新分支,简单快速 |
120
- | B | 创建 Worktree | 隔离工作区,完全独立,适合并行开发 |
121
+ | A | 当前分支直接工作 | 不创建新分支,如实绑定当前 Git 分支 |
122
+ | B | 创建分支 | 在当前仓库创建新分支,简单快速 |
123
+ | C | 创建 Worktree | 隔离工作区,完全独立,适合并行开发 |
121
124
 
122
125
  **推荐规则**:
123
- - 变更涉及 3 个文件 → 推荐 A
124
- - 需要并行开发、当前分支有未提交工作 → 推荐 B
126
+ - 用户明确希望沿用当前分支,或当前分支本身就是该 change 的目标分支 → 推荐 A
127
+ - 变更涉及 ≤ 3 个文件且当前分支干净 → 推荐 B
128
+ - 需要并行开发、当前分支有未提交工作 → 推荐 C
125
129
 
126
130
  **执行方式**:
127
131
 
@@ -135,12 +139,12 @@ comet state set <name> build_pause null
135
139
  - 任务数 ≤ 2 且无跨模块依赖 → 推荐 B
136
140
  - 来自 hotfix 路径 → 推荐 B
137
141
 
138
- 这些表格是 Step 2 联合决策的一部分,不再单独暂停。先移除能力预检判定为不可执行的选项;在剩余多个合法选项时,不得根据推荐规则自行选择 `branch` 或 `worktree`,也不得自行选择执行方式、TDD 模式或代码审查模式。推荐规则只能用于说明建议,不能替代用户确认。
142
+ 这些表格是 Step 2 联合决策的一部分,不再单独暂停。先移除能力预检判定为不可执行的选项;在剩余多个合法选项时,不得根据推荐规则自行选择 `current`、`branch` 或 `worktree`,也不得自行选择执行方式、TDD 模式或代码审查模式。推荐规则只能用于说明建议,不能替代用户确认。
139
143
 
140
144
  用户选择后,更新 `isolation`、执行方式、TDD 模式和代码审查模式相关字段:
141
145
 
142
146
  ```bash
143
- comet state set <name> isolation <branch|worktree>
147
+ comet state set <name> isolation <current|branch|worktree>
144
148
  ```
145
149
 
146
150
  - 若用户选择 `executing-plans`:运行 `comet state set <name> subagent_dispatch null`,再运行 `comet state set <name> build_mode executing-plans`
@@ -166,7 +170,7 @@ comet state set <name> isolation <branch|worktree>
166
170
 
167
171
  运行 `comet state set <name> review_mode <off|standard|thorough>`
168
172
 
169
- `isolation` 是脚本级硬约束。full workflow 初始化时可以为 `null`,但只允许存在到本步骤之前。若保持 `null`,`build → verify` 的 guard 和 `comet state transition build-complete` 都会失败。
173
+ `isolation` 是脚本级硬约束。full workflow 初始化时可以为 `null`,但只允许存在到本步骤之前。若保持 `null`,`build → verify` 的 guard 和 `comet state transition build-complete` 都会失败。full workflow 允许 `current`、`branch` 或 `worktree`,但 `current` 必须通过用户在 Step 2 显式选择后写入,不得静默默认。
170
174
 
171
175
  `subagent_dispatch` 是脚本级硬约束。`build_mode: subagent-driven-development` 离开 build 阶段前必须同时满足 `subagent_dispatch: confirmed`,否则 `comet guard build --apply` 和 `comet state transition build-complete` 都会失败。
172
176
 
@@ -185,6 +189,8 @@ comet state set <name> build_mode direct
185
189
 
186
190
  **执行隔离**:
187
191
 
192
+ - **current**:不创建新分支或 worktree,直接在当前 Git 分支执行。立即运行 `comet state set <name> isolation current`;该命令会把当前分支写入 `bound_branch`。如果当前是 detached HEAD,必须停止并让用户先切回真实分支,因为没有可审计的绑定分支。
193
+
188
194
  - **branch**:使用 Step 2 已确认的分支名,不得再次暂停。若旧状态恢复时缺少该次联合决策中的分支名,重新进入 Step 2 的同一个联合决策;不得创建第二个独立分支命名决策点。
189
195
 
190
196
  分支命名规范:
@@ -196,7 +202,7 @@ comet state set <name> build_mode direct
196
202
 
197
203
  示例:如果 change 名称为 `fix-login-bug`,今天是 2026-06-09,则推荐 `feature/20260609/fix-login-bug`
198
204
 
199
- 分支名由 Step 2 确认后,立即执行 `git checkout -b <branch-name>`,后续工作在新分支上进行。
205
+ 分支名由 Step 2 确认后,立即执行 `git checkout -b <branch-name>`,然后运行 `comet state set <name> isolation branch`,把新分支写入 `bound_branch`。后续工作在新分支上进行。
200
206
 
201
207
  - **worktree**:必须使用 Skill 工具加载 Superpowers `using-git-worktrees` 技能创建隔离工作区。禁止用普通 shell 命令或原生工具绕过该技能;如该技能不可用,停止流程并提示安装或启用 Superpowers 技能。
202
208
 
@@ -207,7 +213,7 @@ git add docs/superpowers/plans/YYYY-MM-DD-feature.md
207
213
  git commit -m "chore: add implementation plan"
208
214
  ```
209
215
 
210
- 进入最终执行分支或 worktree 后,必须在该实际工作区重新绑定当前 change。branch 切换会使入口绑定失效,新 worktree 也不会继承原工作区的本地选择文件:
216
+ 进入最终执行分支或 worktree 后,必须在该实际工作区重新绑定当前 change。branch 模式已在切换后通过 `isolation branch` 绑定;worktree 模式必须在新工作区运行 `comet state set <name> isolation worktree`,把 worktree 的当前分支写入 `bound_branch`。新 worktree 不会继承原工作区的本地选择文件,因此还必须选择当前 change:
211
217
 
212
218
  ```bash
213
219
  comet state select <change-name>
@@ -288,7 +294,7 @@ Build 是最长阶段,可能跨越大量任务。为支持上下文压缩后
288
294
  - tasks.md 全部勾选
289
295
  - 代码已提交
290
296
  - 已显式运行项目对应的构建/测试命令并通过(不要只依赖 guard 自动猜测)
291
- - `isolation` 已写为 `branch` 或 `worktree`
297
+ - `isolation` 已写为 `current`、`branch` 或 `worktree`
292
298
  - `build_mode` 已写为 `subagent-driven-development`、`executing-plans` 或带显式 override 的 `direct`;若为 `subagent-driven-development`,`subagent_dispatch` 必须为 `confirmed`
293
299
  - `tdd_mode` 已写为 `tdd` 或 `direct`
294
300
  - `review_mode` 已写为 `off`、`standard` 或 `thorough`
@@ -42,7 +42,21 @@ comet state select <name>
42
42
  comet state check <name> open
43
43
  ```
44
44
 
45
- hotfix 默认 `isolation: current`,表示在当前工作区执行;只有用户实际创建/选择了分支或 worktree 后,才能把它改为 `branch` `worktree`。随后按指引创建精简版产物:
45
+ 若上述 `select` / `check` 输出 `BLOCKED`,且原因是 `bound_branch` 与当前分支不一致,立即按 `comet/reference/decision-point.md` 暂停,让用户单选:切回绑定分支后重新运行入口验证,或在用户明确确认当前分支应接管该 change 后运行 `comet state rebind <change-name>` 并重新入口验证。不得自行切换分支,不得自行换绑。
46
+
47
+ 入口工作区隔离是用户决策点,不再把 `current` 当作默认隔离模式写入。按 `comet/reference/decision-point.md` 暂停让用户单选:
48
+
49
+ - A. 当前分支直接工作:运行 `comet state set <name> isolation current`,如实绑定当前分支
50
+ - B. 创建分支:先创建并切换到 `hotfix/YYYYMMDD/<change-name>`,再运行 `comet state set <name> isolation branch`
51
+ - C. 创建 worktree:必须先使用 Skill 工具加载 Superpowers `using-git-worktrees` 技能,由该技能创建隔离工作区;进入 worktree 后运行 `comet state set <name> isolation worktree`
52
+
53
+ B/C 完成后,必须在实际执行分支或 worktree 中重新运行:
54
+
55
+ ```bash
56
+ comet state select <name>
57
+ ```
58
+
59
+ 随后按指引创建精简版产物:
46
60
  - `proposal.md` — 问题描述 + 根因分析 + 修复目标(无需方案对比)
47
61
  - `design.md` — 修复方案(1 个即可,无需多方案对比)
48
62
  - `tasks.md` — 修复任务清单
@@ -65,7 +79,7 @@ comet state next <name>
65
79
 
66
80
  ### 2. 直接构建(预设 build)
67
81
 
68
- 使用 hotfix 默认值:`build_mode: direct`、`tdd_mode: direct`、`review_mode: off`、`isolation: current`。`direct` 表示不进入完整规划/TDD 编排,不表示可以跳过复现、回归测试或验证。跳过 Superpowers `brainstorming` 和 `writing-plans`;**任务数量本身不触发 `/comet-build`**,任务较多时仍在当前 hotfix 的 tasks.md 中按顺序执行,只有命中后文质变信号或范围 tripwire 才交给用户决定是否升级 full。
82
+ 使用 hotfix 默认值:`build_mode: direct`、`tdd_mode: direct`、`review_mode: off`。`isolation` 必须沿用 Step 1 中用户已确认的入口工作区隔离方式,不得自行改回 `current`。`direct` 表示不进入完整规划/TDD 编排,不表示可以跳过复现、回归测试或验证。跳过 Superpowers `brainstorming` 和 `writing-plans`;**任务数量本身不触发 `/comet-build`**,任务较多时仍在当前 hotfix 的 tasks.md 中按顺序执行,只有命中后文质变信号或范围 tripwire 才交给用户决定是否升级 full。
69
83
 
70
84
  继续或开始修改前,按 `comet/reference/dirty-worktree.md` 协议处理未提交改动。若归因后发现修复命中质变信号或文件数 tripwire,按本文件「升级判定」处理。
71
85
 
@@ -50,14 +50,26 @@ comet state init <name> tweak
50
50
  comet state select <name>
51
51
  ```
52
52
 
53
- tweak 默认 `isolation: current`,表示在当前工作区执行;只有用户实际创建/选择了分支或 worktree 后,才能改为 `branch` 或 `worktree`。
54
-
55
53
  初始化后验证状态:
56
54
 
57
55
  ```bash
58
56
  comet state check <name> open
59
57
  ```
60
58
 
59
+ 若上述 `select` / `check` 输出 `BLOCKED`,且原因是 `bound_branch` 与当前分支不一致,立即按 `comet/reference/decision-point.md` 暂停,让用户单选:切回绑定分支后重新运行入口验证,或在用户明确确认当前分支应接管该 change 后运行 `comet state rebind <change-name>` 并重新入口验证。不得自行切换分支,不得自行换绑。
60
+
61
+ 入口工作区隔离是用户决策点,不再把 `current` 当作默认隔离模式写入。按 `comet/reference/decision-point.md` 暂停让用户单选:
62
+
63
+ - A. 当前分支直接工作:运行 `comet state set <name> isolation current`,如实绑定当前分支
64
+ - B. 创建分支:先创建并切换到 `tweak/YYYYMMDD/<change-name>`,再运行 `comet state set <name> isolation branch`
65
+ - C. 创建 worktree:必须先使用 Skill 工具加载 Superpowers `using-git-worktrees` 技能,由该技能创建隔离工作区;进入 worktree 后运行 `comet state set <name> isolation worktree`
66
+
67
+ B/C 完成后,必须在实际执行分支或 worktree 中重新运行:
68
+
69
+ ```bash
70
+ comet state select <name>
71
+ ```
72
+
61
73
  阶段守卫完成 open → build 过渡:
62
74
 
63
75
  ```bash
@@ -66,7 +78,7 @@ comet guard <change-name> open --apply
66
78
 
67
79
  ### 2. OpenSpec apply 构建(tweak 专用预设 build)
68
80
 
69
- 使用 tweak 默认值:`build_mode: direct`。跳过 Superpowers `brainstorming` 和 `writing-plans`,改由 OpenSpec 的 apply action 执行当前 change 的 tasks。
81
+ 使用 tweak 默认值:`build_mode: direct`。`isolation` 必须沿用 Step 1 中用户已确认的入口工作区隔离方式,不得自行改回 `current`。跳过 Superpowers `brainstorming` 和 `writing-plans`,改由 OpenSpec 的 apply action 执行当前 change 的 tasks。
70
82
 
71
83
  <IMPORTANT>
72
84
  这条 apply 路径只属于 tweak。完整 `/comet` 或 `workflow: full` 不得套用 tweak 的 `openspec-apply-change` 构建路径;full 仍必须先通过 `/comet-design` 生成 Design Doc,再由 `/comet-build` 通过 Superpowers `writing-plans`、执行方式选择和对应执行技能完成构建。
@@ -27,6 +27,8 @@ comet state check <change-name> verify
27
27
 
28
28
  验证通过后继续 Step 1。验证失败时脚本会输出具体失败原因。
29
29
 
30
+ 若上述 `select` / `check` 输出 `BLOCKED`,且原因是 `bound_branch` 与当前分支不一致,立即按 `comet/reference/decision-point.md` 暂停,让用户单选:切回绑定分支后重新运行入口验证,或在用户明确确认当前分支应接管该 change 后运行 `comet state rebind <change-name>` 并重新入口验证。不得自行切换分支,不得自行换绑。
31
+
30
32
  **幂等性**:verify 阶段所有检查可安全重复执行。如 `verify_result` 已为 `pass`,说明验证已完成并应进入 archive;`branch_status` 在归档提交和最终分支处理完成前保持 `pending`。如 `verify_result` 为 `pending`,从头开始验证。
31
33
 
32
34
  ### 1. 改动规模评估
@@ -8,6 +8,7 @@ export interface ChangeStatus {
8
8
  phase: string | null;
9
9
  buildMode: string | null;
10
10
  isolation: string | null;
11
+ boundBranch: string | null;
11
12
  verifyMode: string | null;
12
13
  verifyResult: string | null;
13
14
  designDoc: string | null;
@@ -1 +1 @@
1
- {"version":3,"file":"status.d.ts","sourceRoot":"","sources":["../../../app/commands/status.ts"],"names":[],"mappings":"AAKA,OAAO,EAEL,KAAK,oBAAoB,EAC1B,MAAM,uDAAuD,CAAC;AAE/D,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,OAAO,CAAC;IACtB,YAAY,EAAE,OAAO,CAAC;IACtB,yBAAyB,EAAE,MAAM,CAAC;IAClC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,cAAc,EAAE,MAAM,CAAC;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,WAAW,EAAE;QACX,MAAM,EAAE,MAAM,CAAC;QACf,MAAM,EAAE,OAAO,CAAC;QAChB,gBAAgB,EAAE,MAAM,EAAE,CAAC;QAC3B,eAAe,EAAE,MAAM,EAAE,CAAC;KAC3B,GAAG,IAAI,CAAC;IACT,aAAa,EAAE;QACb,KAAK,EAAE,oBAAoB,GAAG,IAAI,CAAC;QACnC,MAAM,EAAE,oBAAoB,GAAG,IAAI,CAAC;KACrC,GAAG,IAAI,CAAC;IACT,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAkPD,UAAU,aAAa;IACrB,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAED,wBAAsB,aAAa,CACjC,UAAU,EAAE,MAAM,EAClB,OAAO,GAAE,aAAkB,GAC1B,OAAO,CAAC,IAAI,CAAC,CAUf"}
1
+ {"version":3,"file":"status.d.ts","sourceRoot":"","sources":["../../../app/commands/status.ts"],"names":[],"mappings":"AAKA,OAAO,EAEL,KAAK,oBAAoB,EAC1B,MAAM,uDAAuD,CAAC;AAG/D,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,OAAO,CAAC;IACtB,YAAY,EAAE,OAAO,CAAC;IACtB,yBAAyB,EAAE,MAAM,CAAC;IAClC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,cAAc,EAAE,MAAM,CAAC;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,WAAW,EAAE;QACX,MAAM,EAAE,MAAM,CAAC;QACf,MAAM,EAAE,OAAO,CAAC;QAChB,gBAAgB,EAAE,MAAM,EAAE,CAAC;QAC3B,eAAe,EAAE,MAAM,EAAE,CAAC;KAC3B,GAAG,IAAI,CAAC;IACT,aAAa,EAAE;QACb,KAAK,EAAE,oBAAoB,GAAG,IAAI,CAAC;QACnC,MAAM,EAAE,oBAAoB,GAAG,IAAI,CAAC;KACrC,GAAG,IAAI,CAAC;IACT,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AA4PD,UAAU,aAAa;IACrB,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAED,wBAAsB,aAAa,CACjC,UAAU,EAAE,MAAM,EAClB,OAAO,GAAE,aAAkB,GAC1B,OAAO,CAAC,IAAI,CAAC,CAUf"}
@@ -4,6 +4,7 @@ import { fileExists, readDir } from '../../platform/fs/file-system.js';
4
4
  import { inspectClassicChangeReadOnly } from '../../domains/comet-classic/classic-diagnostics.js';
5
5
  import { readClassicState } from '../../domains/comet-classic/classic-store.js';
6
6
  import { latestCommandCheck, } from '../../domains/comet-classic/classic-command-checks.js';
7
+ import { requiresBranchBinding } from '../../domains/comet-classic/classic-branch-binding.js';
7
8
  async function countTasks(tasksPath) {
8
9
  if (!(await fileExists(tasksPath)))
9
10
  return { done: 0, total: 0 };
@@ -38,6 +39,7 @@ async function getActiveChanges(projectPath) {
38
39
  phase: null,
39
40
  buildMode: null,
40
41
  isolation: null,
42
+ boundBranch: null,
41
43
  verifyMode: null,
42
44
  verifyResult: null,
43
45
  designDoc: null,
@@ -65,6 +67,7 @@ async function getActiveChanges(projectPath) {
65
67
  phase: 'invalid',
66
68
  buildMode: projection.classic?.buildMode ?? null,
67
69
  isolation: projection.classic?.isolation ?? null,
70
+ boundBranch: projection.classic?.boundBranch ?? null,
68
71
  verifyMode: projection.classic?.verifyMode ?? null,
69
72
  verifyResult: projection.classic?.verifyResult ?? 'pending',
70
73
  designDoc: projection.classic?.designDoc ?? null,
@@ -96,6 +99,7 @@ async function getActiveChanges(projectPath) {
96
99
  phase: diagnostic.phase,
97
100
  buildMode: projection.classic.buildMode,
98
101
  isolation: projection.classic.isolation,
102
+ boundBranch: projection.classic.boundBranch,
99
103
  verifyMode: projection.classic.verifyMode,
100
104
  verifyResult: projection.classic.verifyResult,
101
105
  designDoc: projection.classic.designDoc,
@@ -124,6 +128,7 @@ async function getActiveChanges(projectPath) {
124
128
  phase: diagnostic.phase,
125
129
  buildMode: projection.classic?.buildMode ?? null,
126
130
  isolation: projection.classic?.isolation ?? null,
131
+ boundBranch: projection.classic?.boundBranch ?? null,
127
132
  verifyMode: projection.classic?.verifyMode ?? null,
128
133
  verifyResult: projection.classic?.verifyResult ?? 'pending',
129
134
  designDoc: projection.classic?.designDoc ?? null,
@@ -148,6 +153,7 @@ async function getActiveChanges(projectPath) {
148
153
  phase: 'invalid',
149
154
  buildMode: null,
150
155
  isolation: null,
156
+ boundBranch: null,
151
157
  verifyMode: null,
152
158
  verifyResult: 'pending',
153
159
  designDoc: null,
@@ -204,6 +210,10 @@ function displayStatus(changes) {
204
210
  continue;
205
211
  }
206
212
  console.log(` workflow: ${c.workflow} | build_mode: ${c.buildMode}`);
213
+ if (c.isolation) {
214
+ const branchSuffix = requiresBranchBinding(c.isolation) && c.boundBranch ? ` (bound: ${c.boundBranch})` : '';
215
+ console.log(` isolation: ${c.isolation}${branchSuffix}`);
216
+ }
207
217
  if (c.currentStep)
208
218
  console.log(` run_step: ${c.currentStep}`);
209
219
  console.log(` runtime_mode: ${c.runtimeMode}`);
@@ -1 +1 @@
1
- {"version":3,"file":"status.js","sourceRoot":"","sources":["../../../app/commands/status.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"status.js","sourceRoot":"","sources":["../../../app/commands/status.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,QAAQ,IAAI,EAAE,EAAE,MAAM,IAAI,CAAC;AACpC,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,kCAAkC,CAAC;AACvE,OAAO,EAAE,4BAA4B,EAAE,MAAM,oDAAoD,CAAC;AAClG,OAAO,EAAE,gBAAgB,EAAE,MAAM,8CAA8C,CAAC;AAChF,OAAO,EACL,kBAAkB,GAEnB,MAAM,uDAAuD,CAAC;AAC/D,OAAO,EAAE,qBAAqB,EAAE,MAAM,uDAAuD,CAAC;AAkC9F,KAAK,UAAU,UAAU,CAAC,SAAiB;IACzC,IAAI,CAAC,CAAC,MAAM,UAAU,CAAC,SAAS,CAAC,CAAC;QAAE,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;IACjE,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;IACtD,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAClC,MAAM,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;IACpE,MAAM,IAAI,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;IAChE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;AACzB,CAAC;AAED,KAAK,UAAU,gBAAgB,CAAC,WAAmB;IACjD,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,UAAU,EAAE,SAAS,CAAC,CAAC;IACjE,IAAI,CAAC,CAAC,MAAM,UAAU,CAAC,UAAU,CAAC,CAAC;QAAE,OAAO,EAAE,CAAC;IAE/C,MAAM,OAAO,GAAG,CAAC,MAAM,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IACnD,MAAM,OAAO,GAAmB,EAAE,CAAC;IAEnC,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;QAC5B,IAAI,KAAK,KAAK,SAAS;YAAE,SAAS;QAClC,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;QAC/C,MAAM,IAAI,GAAG,MAAM,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACtC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;YAAE,SAAS;QAElC,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC;QACrD,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC,CAAC;QAC3E,IAAI,CAAC,CAAC,MAAM,UAAU,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC;YAClC,OAAO,CAAC,IAAI,CAAC;gBACX,IAAI,EAAE,KAAK;gBACX,YAAY,EAAE,KAAK;gBACnB,YAAY,EAAE,KAAK,GAAG,CAAC,IAAI,IAAI,KAAK,KAAK;gBACzC,yBAAyB,EAAE,oBAAoB,KAAK,KAAK;gBACzD,QAAQ,EAAE,IAAI;gBACd,KAAK,EAAE,IAAI;gBACX,SAAS,EAAE,IAAI;gBACf,SAAS,EAAE,IAAI;gBACf,WAAW,EAAE,IAAI;gBACjB,UAAU,EAAE,IAAI;gBAChB,YAAY,EAAE,IAAI;gBAClB,SAAS,EAAE,IAAI;gBACf,IAAI,EAAE,IAAI;gBACV,cAAc,EAAE,IAAI;gBACpB,UAAU,EAAE,KAAK;gBACjB,WAAW,EAAE,IAAI;gBACjB,WAAW,EAAE,IAAI;gBACjB,WAAW,EAAE,IAAI;gBACjB,WAAW,EAAE,IAAI;gBACjB,aAAa,EAAE,IAAI;aACpB,CAAC,CAAC;YACH,SAAS;QACX,CAAC;QACD,IAAI,CAAC;YACH,MAAM,UAAU,GAAG,MAAM,gBAAgB,CAAC,SAAS,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;YACzE,MAAM,WAAW,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;YACvE,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC3B,OAAO,CAAC,IAAI,CAAC;oBACX,IAAI,EAAE,KAAK;oBACX,YAAY,EAAE,IAAI;oBAClB,YAAY,EAAE,KAAK;oBACnB,yBAAyB,EAAE,iBAAiB,KAAK,EAAE;oBACnD,QAAQ,EAAE,SAAS;oBACnB,KAAK,EAAE,SAAS;oBAChB,SAAS,EAAE,UAAU,CAAC,OAAO,EAAE,SAAS,IAAI,IAAI;oBAChD,SAAS,EAAE,UAAU,CAAC,OAAO,EAAE,SAAS,IAAI,IAAI;oBAChD,WAAW,EAAE,UAAU,CAAC,OAAO,EAAE,WAAW,IAAI,IAAI;oBACpD,UAAU,EAAE,UAAU,CAAC,OAAO,EAAE,UAAU,IAAI,IAAI;oBAClD,YAAY,EAAE,UAAU,CAAC,OAAO,EAAE,YAAY,IAAI,SAAS;oBAC3D,SAAS,EAAE,UAAU,CAAC,OAAO,EAAE,SAAS,IAAI,IAAI;oBAChD,IAAI,EAAE,UAAU,CAAC,OAAO,EAAE,IAAI,IAAI,IAAI;oBACtC,cAAc,EAAE,IAAI;oBACpB,UAAU,EAAE,KAAK;oBACjB,WAAW,EAAE,IAAI;oBACjB,WAAW,EAAE,IAAI;oBACjB,WAAW,EAAE,SAAS;oBACtB,WAAW,EAAE,IAAI;oBACjB,aAAa,EAAE,IAAI;oBACnB,KAAK,EAAE,4CAA4C,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;iBAC5E,CAAC,CAAC;gBACH,SAAS;YACX,CAAC;YAED,MAAM,UAAU,GAAG,MAAM,4BAA4B,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;YAExE,IAAI,UAAU,CAAC,KAAK,IAAI,UAAU,CAAC,OAAO,EAAE,CAAC;gBAC3C,IAAI,UAAU,CAAC,OAAO,CAAC,QAAQ;oBAAE,SAAS;gBAC1C,MAAM,GAAG,GAAG,UAAU,CAAC,GAAG,CAAC;gBAC3B,OAAO,CAAC,IAAI,CAAC;oBACX,IAAI,EAAE,KAAK;oBACX,YAAY,EAAE,IAAI;oBAClB,YAAY,EACV,UAAU,CAAC,OAAO,CAAC,KAAK,KAAK,SAAS;wBACtC,UAAU,CAAC,OAAO,CAAC,YAAY,KAAK,MAAM;wBAC1C,CAAC,UAAU,CAAC,OAAO,CAAC,QAAQ;oBAC9B,yBAAyB,EAAE,iBAAiB,KAAK,EAAE;oBACnD,QAAQ,EAAE,UAAU,CAAC,QAAQ;oBAC7B,KAAK,EAAE,UAAU,CAAC,KAAK;oBACvB,SAAS,EAAE,UAAU,CAAC,OAAO,CAAC,SAAS;oBACvC,SAAS,EAAE,UAAU,CAAC,OAAO,CAAC,SAAS;oBACvC,WAAW,EAAE,UAAU,CAAC,OAAO,CAAC,WAAW;oBAC3C,UAAU,EAAE,UAAU,CAAC,OAAO,CAAC,UAAU;oBACzC,YAAY,EAAE,UAAU,CAAC,OAAO,CAAC,YAAY;oBAC7C,SAAS,EAAE,UAAU,CAAC,OAAO,CAAC,SAAS;oBACvC,IAAI,EAAE,UAAU,CAAC,OAAO,CAAC,IAAI;oBAC7B,cAAc,EAAE,IAAI;oBACpB,UAAU,EAAE,KAAK;oBACjB,WAAW,EAAE,UAAU,CAAC,WAAW;oBACnC,WAAW,EAAE,UAAU,CAAC,WAAW;oBACnC,WAAW,EAAE,UAAU,CAAC,WAAW;oBACnC,WAAW,EAAE,UAAU,CAAC,WAAW;oBACnC,aAAa,EAAE,GAAG;wBAChB,CAAC,CAAC;4BACE,KAAK,EAAE,MAAM,kBAAkB,CAAC,SAAS,EAAE,GAAG,EAAE,OAAO,CAAC;4BACxD,MAAM,EAAE,MAAM,kBAAkB,CAAC,SAAS,EAAE,GAAG,EAAE,QAAQ,CAAC;yBAC3D;wBACH,CAAC,CAAC,IAAI;iBACT,CAAC,CAAC;gBACH,SAAS;YACX,CAAC;YAED,OAAO,CAAC,IAAI,CAAC;gBACX,IAAI,EAAE,KAAK;gBACX,YAAY,EAAE,IAAI;gBAClB,YAAY,EAAE,KAAK;gBACnB,yBAAyB,EAAE,iBAAiB,KAAK,EAAE;gBACnD,QAAQ,EAAE,UAAU,CAAC,QAAQ;gBAC7B,KAAK,EAAE,UAAU,CAAC,KAAK;gBACvB,SAAS,EAAE,UAAU,CAAC,OAAO,EAAE,SAAS,IAAI,IAAI;gBAChD,SAAS,EAAE,UAAU,CAAC,OAAO,EAAE,SAAS,IAAI,IAAI;gBAChD,WAAW,EAAE,UAAU,CAAC,OAAO,EAAE,WAAW,IAAI,IAAI;gBACpD,UAAU,EAAE,UAAU,CAAC,OAAO,EAAE,UAAU,IAAI,IAAI;gBAClD,YAAY,EAAE,UAAU,CAAC,OAAO,EAAE,YAAY,IAAI,SAAS;gBAC3D,SAAS,EAAE,UAAU,CAAC,OAAO,EAAE,SAAS,IAAI,IAAI;gBAChD,IAAI,EAAE,UAAU,CAAC,OAAO,EAAE,IAAI,IAAI,IAAI;gBACtC,cAAc,EAAE,IAAI;gBACpB,UAAU,EAAE,KAAK;gBACjB,WAAW,EAAE,UAAU,CAAC,WAAW;gBACnC,WAAW,EAAE,UAAU,CAAC,WAAW;gBACnC,WAAW,EAAE,UAAU,CAAC,WAAW;gBACnC,WAAW,EAAE,UAAU,CAAC,WAAW;gBACnC,aAAa,EAAE,IAAI;gBACnB,KAAK,EAAE,UAAU,CAAC,KAAK;aACxB,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,IAAI,CAAC;gBACX,IAAI,EAAE,KAAK;gBACX,YAAY,EAAE,IAAI;gBAClB,YAAY,EAAE,KAAK;gBACnB,yBAAyB,EAAE,iBAAiB,KAAK,EAAE;gBACnD,QAAQ,EAAE,SAAS;gBACnB,KAAK,EAAE,SAAS;gBAChB,SAAS,EAAE,IAAI;gBACf,SAAS,EAAE,IAAI;gBACf,WAAW,EAAE,IAAI;gBACjB,UAAU,EAAE,IAAI;gBAChB,YAAY,EAAE,SAAS;gBACvB,SAAS,EAAE,IAAI;gBACf,IAAI,EAAE,IAAI;gBACV,cAAc,EAAE,IAAI;gBACpB,UAAU,EAAE,KAAK;gBACjB,WAAW,EAAE,IAAI;gBACjB,WAAW,EAAE,IAAI;gBACjB,WAAW,EAAE,SAAS;gBACtB,WAAW,EAAE,IAAI;gBACjB,aAAa,EAAE,IAAI;gBACnB,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;aAC9D,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,SAAS,qBAAqB,CAAC,eAAkC;IAC/D,OAAO,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACpC,CAAC;AAED,SAAS,0BAA0B,CACjC,WAA0B,EAC1B,eAAkC;IAElC,MAAM,OAAO,GAAG,qBAAqB,CAAC,eAAe,CAAC,CAAC;IACvD,IAAI,WAAW,EAAE,CAAC;QAChB,OAAO,OAAO,WAAW,iCAAiC,OAAO,4BAA4B,CAAC;IAChG,CAAC;IACD,OAAO,6BAA6B,OAAO,0BAA0B,CAAC;AACxE,CAAC;AAED,SAAS,kBAAkB,CAAC,KAA2B;IACrD,MAAM,MAAM,GAAG,KAAK,CAAC,QAAQ,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,aAAa,KAAK,CAAC,QAAQ,EAAE,CAAC;IAC7E,OAAO,GAAG,MAAM,KAAK,KAAK,CAAC,OAAO,UAAU,KAAK,CAAC,GAAG,eAAe,KAAK,CAAC,SAAS,GAAG,CAAC;AACzF,CAAC;AAED,SAAS,aAAa,CAAC,OAAuB;IAC5C,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAC;QACpC,OAAO;IACT,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;IAEjC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACxC,MAAM,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;QACrB,MAAM,OAAO,GAAG,CAAC,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,cAAc,IAAI,CAAC,CAAC,UAAU,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC;QACvF,MAAM,cAAc,GAAG,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,UAAU,CAAC;QAC7D,MAAM,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,cAAc,CAAC;QAC7D,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,IAAI,KAAK,cAAc,MAAM,KAAK,GAAG,OAAO,GAAG,CAAC,CAAC;QAC9E,IAAI,CAAC,CAAC,KAAK,EAAE,CAAC;YACZ,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC;YACtC,OAAO,CAAC,GAAG,CAAC,uDAAuD,CAAC,CAAC;YACrE,OAAO,CAAC,GAAG,EAAE,CAAC;YACd,SAAS;QACX,CAAC;QACD,IAAI,CAAC,CAAC,CAAC,YAAY,EAAE,CAAC;YACpB,IAAI,CAAC,CAAC,YAAY;gBAAE,OAAO,CAAC,GAAG,CAAC,6BAA6B,CAAC,CAAC,yBAAyB,EAAE,CAAC,CAAC;YAC5F,OAAO,CAAC,GAAG,EAAE,CAAC;YACd,SAAS;QACX,CAAC;QACD,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC,QAAQ,kBAAkB,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC;QACzE,IAAI,CAAC,CAAC,SAAS,EAAE,CAAC;YAChB,MAAM,YAAY,GAChB,qBAAqB,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,WAAW,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;YAC1F,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC,SAAS,GAAG,YAAY,EAAE,CAAC,CAAC;QAC/D,CAAC;QACD,IAAI,CAAC,CAAC,WAAW;YAAE,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;QAClE,OAAO,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;QACnD,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC;YAClB,MAAM,MAAM,GAAG,CAAC,CAAC,WAAW,CAAC,MAAM;gBACjC,CAAC,CAAC,IAAI,CAAC,CAAC,WAAW,CAAC,MAAM,GAAG;gBAC7B,CAAC,CAAC,IAAI,CAAC,CAAC,WAAW,CAAC,MAAM,cAAc,qBAAqB,CAAC,CAAC,CAAC,WAAW,CAAC,eAAe,CAAC,GAAG,CAAC;YAClG,OAAO,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,IAAI,MAAM,EAAE,CAAC,CAAC;QACzF,CAAC;QACD,IAAI,CAAC,CAAC,aAAa,EAAE,KAAK,EAAE,CAAC;YAC3B,OAAO,CAAC,GAAG,CAAC,qBAAqB,kBAAkB,CAAC,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAChF,CAAC;QACD,IAAI,CAAC,CAAC,aAAa,EAAE,MAAM,EAAE,CAAC;YAC5B,OAAO,CAAC,GAAG,CAAC,sBAAsB,kBAAkB,CAAC,CAAC,CAAC,aAAa,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QAClF,CAAC;QACD,IAAI,CAAC,CAAC,SAAS;YAAE,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC;QAC5D,IAAI,CAAC,CAAC,IAAI;YAAE,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;QAClD,IAAI,CAAC,CAAC,KAAK,KAAK,QAAQ;YAAE,OAAO,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAC,YAAY,EAAE,CAAC,CAAC;QAC/E,IAAI,CAAC,CAAC,WAAW,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC;YAC3C,OAAO,CAAC,GAAG,CACT,cAAc,0BAA0B,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,WAAW,CAAC,eAAe,CAAC,EAAE,CACzF,CAAC;QACJ,CAAC;aAAM,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC;YACzB,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;QAC7C,CAAC;QACD,IAAI,CAAC,CAAC,YAAY;YAAE,OAAO,CAAC,GAAG,CAAC,6BAA6B,CAAC,CAAC,yBAAyB,EAAE,CAAC,CAAC;QAC5F,OAAO,CAAC,GAAG,EAAE,CAAC;IAChB,CAAC;AACH,CAAC;AAMD,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,UAAkB,EAClB,UAAyB,EAAE;IAE3B,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;IAC7C,MAAM,OAAO,GAAG,MAAM,gBAAgB,CAAC,WAAW,CAAC,CAAC;IAEpD,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;QACjB,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QAClD,OAAO;IACT,CAAC;IAED,aAAa,CAAC,OAAO,CAAC,CAAC;AACzB,CAAC"}