Skip to content

feat: support current-branch mode with no new branch or worktree #190

Description

@jacobleft

🔎 Existing issue check

  • I have searched the existing issues.

🧭 Problem

Comet currently encourages or records workspace isolation through branch/worktree-oriented state. In some repositories, especially long-lived monorepo feature branches, the desired workflow is explicitly:

  • do not create a new branch
  • do not create a new worktree
  • do not switch branches
  • keep all Comet/OpenSpec/Superpowers work on the current branch

This comes up when a user has already created the correct integration branch, the branch contains submodule pointers or local workspace assumptions, or the repo’s process expects a single active branch to accumulate related OpenSpec changes.

Today the agent has to remember the user's instruction and work around Comet's branch/worktree assumptions manually. That is easy to get wrong during long-running workflows, context recovery, or archive/commit phases.

✨ Proposed solution

Add an explicit no-isolation/current-branch mode, for example:

isolation: current-branch

or a CLI option/default such as:

comet init --isolation current-branch
comet open --isolation current-branch
comet status --json

Expected behavior in this mode:

  • Comet never creates a new branch.
  • Comet never creates a worktree.
  • Comet never switches branches.
  • State/guard output clearly says the workflow is pinned to the current branch.
  • Archive/build/verify phases still validate dirty state and commits, but do not recommend branch creation or branch handling.
  • If the current branch changes unexpectedly, Comet warns and asks for confirmation before continuing.

🎯 Primary area

Classic workflow runtime (domains/comet-classic, assets/skills/comet/scripts/)

🪐 Workflow phase

Not phase-specific

🔀 Alternatives considered

Use existing isolation: branch and rely on the agent/user to say “do not create a branch” each time. This is fragile because branch handling appears in multiple phases and can be lost after context compression.

Use auto_transition: false or manual branch handling. That pauses parts of the workflow but does not encode the invariant that Comet must stay on the current branch.

🧰 Compatibility notes

  • Relevant for monorepos and submodule-heavy repositories where the user has already selected the correct integration branch.
  • Should coexist with existing branch and worktree isolation modes.
  • comet status should surface the selected isolation mode and current branch name.

🧩 Additional context

Observed need in a Julia monorepo workflow where the user explicitly required “no new branch, just this branch.” The workflow succeeded by manual discipline, but this should be a first-class Comet mode so agents cannot accidentally branch or worktree during resume/archive phases.

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Fields

No fields configured for issues without a type.

Projects

Status
In progress

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions