feat: add current-branch isolation mode#203
Conversation
- resolveBuild() no longer throws when a preset (hotfix/tweak) enters build phase with isolation unset; it now routes to `.build.execute` the same way `full` routes to `full.build.configure`. Previously any hotfix/tweak guard call crashed the CLI right after init, since presets stopped defaulting isolation to 'branch'. - Enforce PRESET_ALLOWED_ISOLATIONS (branch/current only) at the guard build check and at `state transition build-complete`, so hotfix/tweak can no longer silently pick up isolation: worktree. - resolveCurrentChange()/currentChange() reuse the already-resolved Classic state and branch instead of re-reading the same .comet.yaml and re-spawning git; also fixes a detached-HEAD display bug where the fallback branch lookup printed the literal 'HEAD'. - Restore the branch/worktree decision-point trigger sentence in comet-verify SKILL.md (en/zh) that was dropped when the current-mode variant was added. - Update stale context-recovery text and test fixtures/assertions (classic-contract, classic-guard, skills.test.ts) to match the intentional removal of the preset isolation default. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
There was a problem hiding this comment.
Sorry @1919chichi, you have reached your weekly rate limit of 500000 diff characters.
Please try again later or upgrade to continue using Sourcery
📝 WalkthroughWalkthroughClassic workflows add ChangesClassic current-branch isolation
Estimated code review effort: 4 (Complex) | ~60 minutes Sequence Diagram(s)sequenceDiagram
participant User
participant CometBuild
participant ClassicState
participant ClassicGuard
participant CometVerify
participant CometArchive
User->>CometBuild: choose branch, worktree, or current
CometBuild->>ClassicState: set isolation and bind current branch
ClassicGuard->>ClassicState: check isolation and branch binding
ClassicState-->>CometVerify: return valid or blocked state
CometVerify->>User: request branch switch or confirmed rebind
CometArchive->>ClassicState: record branch action after archive handling
Possibly related issues
Possibly related PRs
Suggested reviewers: 🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
README.md/README-zh.md's isolation field docs and hard-constraint bullet still only listed branch/worktree after the current-branch isolation feature was added. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
|
@coderabbitai review |
|
@sourcery-ai review |
|
@greptileai review |
✅ Action performedReview finished.
|
|
Sorry @1919chichi, you have reached your weekly rate limit of 500000 diff characters. Please try again later or upgrade to continue using Sourcery |
There was a problem hiding this comment.
Actionable comments posted: 2
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@CHANGELOG.md`:
- Around line 11-13: Update the changelog entry for “Preset isolation decisions”
to remove the Chinese/English Skills synchronization wording and retain only the
user-visible behavior: the consistent current-branch handoff and archive commit
path for /comet-verify and /comet-archive.
In `@README-zh.md`:
- Line 539: Clarify the isolation documentation for preset workflows: in
README-zh.md at lines 539-539, add that hotfix / tweak only allow branch or
current; make the equivalent clarification in README.md at lines 579-579, while
retaining the global support statement for branch, worktree, and current.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: defaults
Review profile: CHILL
Plan: Pro
Run ID: 56a15a29-0614-401f-9e7c-00db3d779cb9
⛔ Files ignored due to path filters (1)
package-lock.jsonis excluded by!**/package-lock.json
📒 Files selected for processing (37)
CHANGELOG.mdREADME-zh.mdREADME.mdassets/manifest.jsonassets/skills-zh/comet-archive/SKILL.mdassets/skills-zh/comet-build/SKILL.mdassets/skills-zh/comet-hotfix/SKILL.mdassets/skills-zh/comet-tweak/SKILL.mdassets/skills-zh/comet-verify/SKILL.mdassets/skills-zh/comet/SKILL.mdassets/skills-zh/comet/reference/comet-yaml-fields.mdassets/skills-zh/comet/reference/scripts.mdassets/skills/comet-archive/SKILL.mdassets/skills/comet-build/SKILL.mdassets/skills/comet-hotfix/SKILL.mdassets/skills/comet-tweak/SKILL.mdassets/skills/comet-verify/SKILL.mdassets/skills/comet/SKILL.mdassets/skills/comet/reference/comet-yaml-fields.mdassets/skills/comet/reference/scripts.mdassets/skills/comet/rules/comet-phase-guard.mdassets/skills/comet/scripts/comet-runtime.mjsdomains/comet-classic/classic-current-change.tsdomains/comet-classic/classic-guard.tsdomains/comet-classic/classic-resolver.tsdomains/comet-classic/classic-state-command.tsdomains/comet-classic/classic-state.tsdomains/comet-classic/classic-validate-command.tspackage.jsontest/app/cli-help.test.tstest/domains/comet-classic/classic-contract.test.tstest/domains/comet-classic/classic-guard.test.tstest/domains/comet-classic/classic-hook-guard.test.tstest/domains/comet-classic/classic-resolver.test.tstest/domains/comet-classic/classic-state.test.tstest/domains/comet-classic/comet-scripts.test.tstest/domains/skill/skills.test.ts
|
请先解决Review中的问题。 目前仍有影响现有工作流语义的问题,建议修复后再合并。 1.
|
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Reconciles the current-isolation / bound_branch drift-detection feature branch with master's beta.5 release (Codex hook migration, standard Superpowers artifact routing, verification repair loops, dashboard Markdown preview, OpenSpec 1.5 compatibility). Branch handling after verify follows master's design (finishing-a-development-branch runs in comet-archive after the archive commit, per the workflow-optimization-contract test suite); the isolation-choice and bound_branch drift-detection additions from this branch are layered on top, with branch_action now also recorded during archive's branch handling step. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01GhNAjfxS913K3JYqFaPABo
|
感谢详细评审。分支已通过 1.
|
There was a problem hiding this comment.
Actionable comments posted: 4
Caution
Some comments are outside the diff and can’t be posted inline due to platform limitations.
⚠️ Outside diff range comments (1)
assets/skills/comet-tweak/SKILL.md (1)
73-75: 🎯 Functional Correctness | 🟠 Major | ⚡ Quick winRestore
worktreeisolation option.The PR objective states that restricting tweak/hotfix workflows removed
worktreesupport and this regression was reverted to restore all three isolation modes. However, theworktreeoption is still missing from the isolation decision points in this document.
assets/skills/comet-tweak/SKILL.md#L73-L75: add- C. use a worktreeto the explicit choice list.assets/skills/comet-tweak/SKILL.md#L155-L155: update the initial isolation choice to(`branch` / `worktree` / `current`).🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@assets/skills/comet-tweak/SKILL.md` around lines 73 - 75, Restore worktree as an isolation option in assets/skills/comet-tweak/SKILL.md: at lines 73-75 add “C. use a worktree” to the explicit choice list, and at line 155 update the initial isolation choice to include branch, worktree, and current.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In @.gitignore:
- Line 92: Remove the docs/superpowers/ entry from .gitignore so persisted
workflow artifacts are tracked and included in normal and archive commits.
In `@assets/skills-zh/comet/reference/comet-yaml-fields.md`:
- Line 49: Restore the complete isolation contract across all three documented
sites: in assets/skills-zh/comet/reference/comet-yaml-fields.md:49, document
worktree alongside branch and current for hotfix/tweak and require explicit
selection; in assets/skills-zh/comet-hotfix/SKILL.md:47-81 and
assets/skills/comet-hotfix/SKILL.md:47-81, remove the implicit current default
and present branch, worktree, and current as supported explicit isolation modes,
keeping the Chinese and English contracts aligned.
In `@assets/skills/comet-archive/SKILL.md`:
- Around line 122-129: Reverse the state-setting order in the archive operation
instructions so branch_action is persisted before branch_status, preventing an
interrupted sequence from leaving handled without an action. Apply this ordering
consistently at assets/skills/comet-archive/SKILL.md:122-129 and
assets/skills-zh/comet-archive/SKILL.md:122-129; no other workflow changes are
needed.
In `@domains/comet-classic/classic-state-command.ts`:
- Around line 1304-1315: Make the rebind flow in healBoundBranch’s surrounding
command failure-atomic by using the existing recoverable transaction/WAL
protocol to persist the state change and audit event as one operation,
preventing an unaudited binding if event appending fails or the process exits.
Implement the fix only in domains/comet-classic/classic-state-command.ts, then
regenerate assets/skills/comet/scripts/comet-runtime.mjs with pnpm
build:classic-runtime; do not hand-edit the generated bundle.
---
Outside diff comments:
In `@assets/skills/comet-tweak/SKILL.md`:
- Around line 73-75: Restore worktree as an isolation option in
assets/skills/comet-tweak/SKILL.md: at lines 73-75 add “C. use a worktree” to
the explicit choice list, and at line 155 update the initial isolation choice to
include branch, worktree, and current.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: defaults
Review profile: CHILL
Plan: Pro
Run ID: f651a193-65e3-4ae6-aaeb-dae0dc6cf1c7
⛔ Files ignored due to path filters (1)
package-lock.jsonis excluded by!**/package-lock.json
📒 Files selected for processing (38)
.gitignoreCHANGELOG.mdREADME-zh.mdREADME.mdassets/manifest.jsonassets/skills-zh/comet-archive/SKILL.mdassets/skills-zh/comet-build/SKILL.mdassets/skills-zh/comet-hotfix/SKILL.mdassets/skills-zh/comet-tweak/SKILL.mdassets/skills-zh/comet-verify/SKILL.mdassets/skills-zh/comet/SKILL.mdassets/skills-zh/comet/reference/comet-yaml-fields.mdassets/skills/comet-archive/SKILL.mdassets/skills/comet-build/SKILL.mdassets/skills/comet-hotfix/SKILL.mdassets/skills/comet-tweak/SKILL.mdassets/skills/comet-verify/SKILL.mdassets/skills/comet/SKILL.mdassets/skills/comet/reference/comet-yaml-fields.mdassets/skills/comet/rules/comet-phase-guard.mdassets/skills/comet/scripts/comet-runtime.mjsdomains/comet-classic/classic-branch-binding.tsdomains/comet-classic/classic-current-change.tsdomains/comet-classic/classic-guard.tsdomains/comet-classic/classic-state-command.tsdomains/comet-classic/classic-state-events.tsdomains/comet-classic/classic-state.tsdomains/comet-classic/classic-validate-command.tspackage.jsontest/app/cli-help.test.tstest/domains/comet-classic/classic-branch-binding.test.tstest/domains/comet-classic/classic-contract.test.tstest/domains/comet-classic/classic-current-change.test.tstest/domains/comet-classic/classic-hook-guard.test.tstest/domains/comet-classic/classic-resolver.test.tstest/domains/comet-classic/classic-state.test.tstest/domains/comet-classic/comet-scripts.test.tstest/domains/skill/skills.test.ts
🚧 Files skipped from review as they are similar to previous changes (8)
- test/domains/comet-classic/classic-state.test.ts
- domains/comet-classic/classic-validate-command.ts
- assets/manifest.json
- test/domains/comet-classic/classic-resolver.test.ts
- assets/skills-zh/comet-tweak/SKILL.md
- assets/skills/comet/reference/comet-yaml-fields.md
- assets/skills/comet-build/SKILL.md
- domains/comet-classic/classic-current-change.ts
|
|
||
| # Superpowers docs (local only) | ||
| #docs/superpowers/ | ||
| docs/superpowers/ |
There was a problem hiding this comment.
🗄️ Data Integrity & Integration | 🟠 Major | ⚡ Quick win
Do not ignore persisted workflow artifacts.
Classic stores design documents and plans under docs/superpowers/. Ignoring the directory prevents newly generated artifacts from entering normal and archive commits, leaving committed state that references missing files.
Proposed fix
-docs/superpowers/📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
| docs/superpowers/ |
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In @.gitignore at line 92, Remove the docs/superpowers/ entry from .gitignore so
persisted workflow artifacts are tracked and included in normal and archive
commits.
| Only after the selected operation succeeds (or the user explicitly keeps the branch), run: | ||
|
|
||
| ```bash | ||
| comet state set <change-name> branch_status handled | ||
| comet state set <change-name> branch_action <value> | ||
| comet guard <change-name> archive | ||
| comet state clear-selection | ||
| ``` |
There was a problem hiding this comment.
🗄️ Data Integrity & Integration | 🟠 Major | ⚡ Quick win
🧩 Analysis chain
🏁 Script executed:
#!/bin/bash
set -euo pipefail
printf '\n== assets/skills/comet-archive/SKILL.md ==\n'
nl -ba assets/skills/comet-archive/SKILL.md | sed -n '100,150p'
printf '\n== assets/skills-zh/comet-archive/SKILL.md ==\n'
nl -ba assets/skills-zh/comet-archive/SKILL.md | sed -n '100,150p'
printf '\n== search related state commands ==\n'
rg -n "branch_status handled|branch_action|clear-selection|guard <change-name> archive" assets/skills assets/skills-zhRepository: rpamis/comet
Length of output: 234
🏁 Script executed:
#!/bin/bash
set -euo pipefail
printf '\n== assets/skills/comet-archive/SKILL.md relevant section ==\n'
nl -ba assets/skills/comet-archive/SKILL.md | sed -n '112,136p'
printf '\n== assets/skills-zh/comet-archive/SKILL.md relevant section ==\n'
nl -ba assets/skills-zh/comet-archive/SKILL.md | sed -n '112,136p'
printf '\n== repository-wide references ==\n'
rg -n "branch_status|branch_action|clear-selection|comet state set" .Repository: rpamis/comet
Length of output: 251
🏁 Script executed:
#!/bin/bash
set -euo pipefail
nl -ba assets/skills/comet-archive/SKILL.md | sed -n '1,180p'Repository: rpamis/comet
Length of output: 190
🏁 Script executed:
#!/bin/bash
set -euo pipefail
printf '\n== assets/skills/comet-archive/SKILL.md ==\n'
sed -n '112,136p' assets/skills/comet-archive/SKILL.md | cat -n
printf '\n== assets/skills-zh/comet-archive/SKILL.md ==\n'
sed -n '112,136p' assets/skills-zh/comet-archive/SKILL.md | cat -n
printf '\n== related references ==\n'
rg -n "branch_status handled|branch_action|clear-selection|comet state set" assets/skills assets/skills-zhRepository: rpamis/comet
Length of output: 16595
Set branch_action before branch_status. The current order can leave branch_status: handled persisted without branch_action if the sequence is interrupted. Apply the same ordering in both assets/skills/comet-archive/SKILL.md and assets/skills-zh/comet-archive/SKILL.md, or make the transition atomic.
📍 Affects 2 files
assets/skills/comet-archive/SKILL.md#L122-L129(this comment)assets/skills-zh/comet-archive/SKILL.md#L122-L129
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In `@assets/skills/comet-archive/SKILL.md` around lines 122 - 129, Reverse the
state-setting order in the archive operation instructions so branch_action is
persisted before branch_status, preventing an interrupted sequence from leaving
handled without an action. Apply this ordering consistently at
assets/skills/comet-archive/SKILL.md:122-129 and
assets/skills-zh/comet-archive/SKILL.md:122-129; no other workflow changes are
needed.
| const before = await readClassicState(directory); | ||
| if (!before.classic) fail('ERROR: Classic state projection is missing'); | ||
| await healBoundBranch(directory, branch); | ||
| const after: ClassicState = { ...before.classic, boundBranch: branch }; | ||
| await appendClassicStateEvent(directory, { | ||
| change: name, | ||
| event: 'rebind', | ||
| source: 'comet-state', | ||
| from: before.classic, | ||
| to: after, | ||
| effects: [{ field: 'boundBranch', from: boundBranch, to: branch }], | ||
| }); |
There was a problem hiding this comment.
🗄️ Data Integrity & Integration | 🟠 Major | 🏗️ Heavy lift
Make rebind state and audit persistence failure-atomic.
The binding is persisted before its audit event, so an append failure or process exit can leave an unaudited rebind.
domains/comet-classic/classic-state-command.ts#L1304-L1315: use a recoverable transaction/WAL protocol for the state and event-log writes.assets/skills/comet/scripts/comet-runtime.mjs#L14208-L14219: regenerate the bundle after fixing the TypeScript source; do not hand-edit it.
As per coding guidelines, Classic logic belongs in domains/comet-classic/*.ts, followed by pnpm build:classic-runtime.
🧰 Tools
🪛 ast-grep (0.44.1)
[warning] Importing child_process exposes a command-execution surface; ensure any command/argument built from input is validated, and prefer execFile/spawn with an argument array over exec.
Context: import { spawnSync } from 'child_process';
Note: [CWE-78] Improper Neutralization of Special Elements used in an OS Command ('OS Command Injection').
(detect-child-process-typescript)
📍 Affects 2 files
domains/comet-classic/classic-state-command.ts#L1304-L1315(this comment)assets/skills/comet/scripts/comet-runtime.mjs#L14208-L14219
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In `@domains/comet-classic/classic-state-command.ts` around lines 1304 - 1315,
Make the rebind flow in healBoundBranch’s surrounding command failure-atomic by
using the existing recoverable transaction/WAL protocol to persist the state
change and audit event as one operation, preventing an unaudited binding if
event appending fails or the process exits. Implement the fix only in
domains/comet-classic/classic-state-command.ts, then regenerate
assets/skills/comet/scripts/comet-runtime.mjs with pnpm build:classic-runtime;
do not hand-edit the generated bundle.
Source: Coding guidelines
There was a problem hiding this comment.
Actionable comments posted: 1
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@assets/skills/comet-tweak/SKILL.md`:
- Around line 71-84: Update the earlier isolation default in the tweak workflow
to use isolation: null, or explicitly block execution until the user selects
branch, worktree, or current. Ensure the instruction no longer defaults to
isolation: current, while preserving the mandatory decision point and subsequent
comet state set flow.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: defaults
Review profile: CHILL
Plan: Pro
Run ID: dec73d89-0a54-4954-ae17-e973896e4c88
📒 Files selected for processing (9)
assets/skills-zh/comet-archive/SKILL.mdassets/skills-zh/comet-hotfix/SKILL.mdassets/skills-zh/comet-tweak/SKILL.mdassets/skills-zh/comet/reference/comet-yaml-fields.mdassets/skills/comet-archive/SKILL.mdassets/skills/comet-hotfix/SKILL.mdassets/skills/comet-tweak/SKILL.mdassets/skills/comet/reference/comet-yaml-fields.mdtest/domains/skill/skills.test.ts
🚧 Files skipped from review as they are similar to previous changes (5)
- assets/skills-zh/comet/reference/comet-yaml-fields.md
- assets/skills-zh/comet-tweak/SKILL.md
- test/domains/skill/skills.test.ts
- assets/skills/comet-archive/SKILL.md
- assets/skills-zh/comet-archive/SKILL.md
| Before execution starts, the user must explicitly choose isolation. This is a user decision point and must pause per `comet/reference/decision-point.md` until the user explicitly chooses: | ||
|
|
||
| - A. create a branch (recommended default) | ||
| - B. use a worktree | ||
| - C. use the current branch | ||
|
|
||
| After the choice, immediately write: | ||
|
|
||
| ```bash | ||
| comet state set <name> isolation <branch|worktree|current> | ||
| ``` | ||
|
|
||
| If `branch` is chosen, follow `/comet-build`'s branch rules to confirm the branch name and create it, then re-run `comet state select <change-name>` to bind the current change. If `worktree` is chosen, follow `/comet-build`'s worktree rules and re-run `comet state select <change-name>` inside the worktree. If `current` is chosen, create no new branch or worktree and do not force an extra re-selection when no workspace switch happened. | ||
|
|
There was a problem hiding this comment.
🎯 Functional Correctness | 🟠 Major | ⚡ Quick win
Remove the contradictory isolation: current default.
This section correctly requires an explicit user choice, but the earlier instruction at Line 55 still says tweak defaults to isolation: current. An agent may follow that default and skip this mandatory decision, violating the new workflow contract. Rewrite the earlier default as isolation: null or otherwise state that execution cannot proceed until the user selects branch, worktree, or current.
🧰 Tools
🪛 LanguageTool
[style] ~83-~83: Three successive sentences begin with the same word. Consider rewording the sentence or use a thesaurus to find a synonym.
Context: ...ect inside the worktree. Ifcurrent` is chosen, create no new bran...
(ENGLISH_WORD_REPEAT_BEGINNING_RULE)
🪛 SkillSpector (2.3.11)
[warning] 136: [EA2] Autonomous Decision Making: Skill enables autonomous high-impact decisions without human-in-the-loop verification. Critical operations (destructive commands, financial transactions, data deletion) should require explicit user confirmation.
Remediation: Add human-in-the-loop confirmation for destructive, irreversible, or high-impact operations. Never auto-execute commands that modify files, send data, or alter system state.
(Excessive Agency (EA2))
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In `@assets/skills/comet-tweak/SKILL.md` around lines 71 - 84, Update the earlier
isolation default in the tweak workflow to use isolation: null, or explicitly
block execution until the user selects branch, worktree, or current. Ensure the
instruction no longer defaults to isolation: current, while preserving the
mandatory decision point and subsequent comet state set flow.
|
合并的时候有些问题,wechat.png被回退到了wechat.png,website的子模块指针也被回退了 另外还有一些
|
那我先把这个pr关了吧, 我用主分支最新的代码重新设计 |
✨ Summary
Closes #190
Adds an
isolation: currentmode to the Classic workflow state machine (alongside the existingbranch/worktree), so users can continue on the current branch without creating a new branch or worktree./comet-buildofferscurrentas a third isolation option;/comet-hotfixand/comet-tweaknow require an explicitbranch/currentchoice instead of silently defaulting to a new branch./comet-verifyand/comet-archivedocument the current-branch handoff and archive-commit path (push/no-push decision, nofinishing-a-development-branchskill invocation) consistently in English and Chinese Skills.comet state/comet guardaccept and validate the newisolation: currentvalue; hotfix/tweak presets rejectworktree.buildphase before isolation was chosen, a validation gap that letworktreeslip through for hotfix/tweak, a detached-HEAD display bug and redundant I/O incomet state current, and a dropped decision-point sentence incomet-verify's branch/worktree finishing step.🎯 Scope
init,status,doctor,update)assets/skills/,assets/skills-zh/)assets/skills/comet/scripts/)domains/comet-classic/)🧪 Testing
pnpm buildpnpm lintpnpm run lint:architecturepnpm format:checkpnpm testpnpm test -- test/domains/comet-classic/comet-scripts.test.ts✅ Checklist
fix: handle project-scope initREADME.md,README-zh.md, orCONTRIBUTING.mdCHANGELOG.mdis updated when behavior changesassets/manifest.jsonand relevant tests👀 Notes for Reviewers
assets/skills/comet/scripts/comet-runtime.mjsis a generated bundle (viapnpm buildfromdomains/comet-classic/*.ts); please review the TypeScript sources underdomains/comet-classic/as the source of truth and treat the bundle diff as generated output.One pre-existing, unrelated test failure may show up locally in
test/domains/bundle/bundle-command.test.ts— it is caused by a local global skill file on the reviewer's machine, not by this change.🤖 Generated with Claude Code
Summary by CodeRabbit
isolation: currentoption so workflows can run against the current branch.comet state rebindto confirm/rebind current-branch isolation with audit logging and safety checks.branch_action.currentisolation, drift handling, archive decisions, andbranch_action.0.4.0-beta.6.