From ctx
Manages git worktrees to parallelize agent development across independent task tracks. Create, list, and teardown with checks for conflicts and limits.
npx claudepluginhub activememory/ctx --plugin ctxThis skill is limited to using the following tools:
Manage git worktrees to parallelize agent work across independent
Manages Git worktree lifecycle: creates isolated .claude/worktrees/ for parallel development or experiments, rune/* branches, verifies, lists, cleans up safely with max 3 active.
Creates isolated git worktrees for parallel feature development and executes identical plans across workspaces via subagents for concurrent experimentation and result comparison.
Sets up and manages Git worktrees for isolated feature branches, parallel development, hotfixes, and subagent tasks. Includes safety checks, naming conventions, dependency installs, and independent testing.
Share bugs, ideas, or general feedback.
Manage git worktrees to parallelize agent work across independent task tracks. Supports creating, listing, and tearing down worktrees with ctx-aware guardrails.
create <name>Create a new worktree as a sibling directory with a work/ branch.
Process:
Check count: refuse if 4 worktrees already exist:
git worktree list
Count lines. If >= 5 (1 main + 4 worktrees), stop and explain the limit.
Determine project name from the current directory basename:
basename "$(git rev-parse --show-toplevel)"
Create the worktree as a sibling directory:
git worktree add "../<project>-<name>" -b "work/<name>"
Verify the worktree was created:
ls "../<project>-<name>"
Remind the user:
Do NOT run
ctx initin the worktree. The context directory is already tracked in git and will be present. Launch a separate Claude Code session there and work normally.
listShow all active worktrees:
git worktree list
teardown <name>Merge a completed worktree back and clean up.
Process:
Check for uncommitted changes in the worktree:
git -C "../<project>-<name>" status --porcelain
If output is non-empty, warn and stop. The user must commit or discard changes first.
Merge the work branch into the current branch:
git merge "work/<name>"
If there are conflicts, stop and help the user resolve them. TASKS.md conflicts are common: see guidance below.
Remove the worktree:
git worktree remove "../<project>-<name>"
Delete the branch:
git branch -d "work/<name>"
Verify cleanup:
git worktree list
git branch | grep "work/<name>"
../<project>-<name>,
never inside the project treework/ branch prefix: all worktree branches use work/<name>
for easy identification and cleanupctx init in worktrees: the context directory is tracked
in git; running init would overwrite shared context files[x] completions from both sides.
No task should go from [x] back to [ ].The encryption key lives at ~/.ctx/.ctx.key (user-level, outside
the project). All worktrees on the same machine share this path, so
ctx pad and ctx notify work in worktrees automatically.
One thing to watch:
ctx journal import and journal enrichment
resolve paths relative to the current working directory. Files
created in a worktree stay in that worktree and are discarded on
teardown. Enrich journals on the main branch after merging: the
JSONL session logs are intact regardless.Before creating worktrees, analyze the backlog to group tasks into non-overlapping tracks:
Proposed worktree groups:
work/docs : recipe updates, blog post, getting started guide
(touches: docs/)
work/crypto : P3.1-P3.3 encrypted scratchpad infra
(touches: internal/crypto/, internal/config/)
work/pad-cli : P3.4-P3.9 pad CLI commands
(touches: internal/cli/pad/)
Let the user approve or adjust before proceeding.
Before any operation, verify:
work/ prefix../)ctx init in worktree