Feedback: /ultraplan friction — cwd locked at session start, web sandbox clones only once

Resolved 💬 1 comment Opened May 14, 2026 by raymondclynick-max Closed Jun 12, 2026

Summary

Two coupled UX issues make /ultraplan painful to use as an iterative refinement tool from a local Claude Code session.

Issue 1 — cwd is locked at session start

Slash commands inherit the session cwd. If I launched claude from a non-git directory (e.g. ~), /ultraplan fails immediately with:

ultraplan: cannot launch remote session — Background tasks require a git repository. Initialize git or run from a git repository.

There's no way to switch cwd within a running session — I have to exit and re-launch from inside the right repo.

For users who keep multiple project repos and a single global brain repo (~/.claude), this means every /ultraplan invocation requires opening a new terminal, cding into the brain repo, and starting a fresh claude session. Friction adds up fast.

Suggested fix: a --cwd flag on slash commands that need a git repo, or have /ultraplan default to the user's ~/.claude repo if the current cwd isn't a git repo. Alternatively, a /cd <path> slash command that re-roots the session.

Issue 2 — web sandbox clones once, never re-pulls

Each /ultraplan call spins up a fresh container that git clones the brain repo at session start. After that, the sandbox has no origin configured and no live git pull path. Anything I commit + push after the sandbox started is invisible — including the very plan file I just wrote in the local session.

This forces a clunky dance: commit + push everything I want the remote to see before I invoke /ultraplan, otherwise I have to abandon the running web session and start a new one.

Suggested fix: re-fetch + reset origin on each turn of the web session, OR expose a /sync slash command that round-trips files (or just the relevant plan file) between local and web without git as the transport.

What I had to build to work around this

  • A PostToolUse hook on Write|Edit that auto-commits + pushes any change under ~/.claude/plans/
  • A UserPromptSubmit hook that pattern-matches ultraplan and runs a context-snapshot script before the prompt dispatches
  • A bash wrapper that cds into the brain repo and prefills the slash command

It works, but it's a lot of plumbing just to use a flagship feature smoothly.

Why this matters

The intended /ultraplan use case is "I had a thought, send it to a beefier remote agent to refine, bring it back" — that's a tight iterative loop. The current implementation pushes it toward a "build a big bundle, fire once, hope it's right" pattern that loses the iteration value.

Environment

  • Claude Code v2.1.112
  • Linux (Ubuntu 24.04)
  • Multi-repo setup with a central ~/.claude brain repo and 14+ venture repos under ~/projects/

View original on GitHub ↗

This issue has 1 comment on GitHub. Read the full discussion on GitHub ↗