| name | troubleshooting-execute |
| description | Use when execute command encounters errors - diagnostic guide for phase failures, parallel agent failures, merge conflicts, worktree issues, and recovery strategies |
Troubleshooting Execute Command
Overview
Reference guide for diagnosing and recovering from execute command failures.
This skill provides recovery strategies for common execute command errors. Use it when execution fails or produces unexpected results.
When to Use
Use this skill when:
- Phase execution fails (sequential or parallel)
- Parallel agent fails or doesn't complete
- Merge conflicts occur during stacking
- Worktree creation fails
- Main worktree not found
- Need to resume execution after fixing an issue
This is a reference skill - consult when errors occur, not part of normal execution flow.
Error Categories
1. Sequential Phase Execution Failure
Symptoms:
- Task agent fails mid-execution
- Quality checks fail (test, lint, build)
- Branch not created after task completes
Error message format:
❌ Phase {id} Execution Failed
**Task**: {task-id}
**Error**: {error-message}
Resolution steps:
-
Review the error output - Understand what failed (test? build? implementation?)
-
Check current state:
cd .worktrees/{runid}-main
git status
git log --oneline -5
-
Fix manually if needed:
bash <<'EOF'
npm test
if [ $? -ne 0 ]; then
echo "❌ Tests failed"
exit 1
fi
npm run lint
if [ $? -ne 0 ]; then
echo "❌ Lint failed"
exit 1
fi
npm run build
if [ $? -ne 0 ]; then
echo "❌ Build failed"
exit 1
fi
EOF
gs branch create {runid}-task-{phase}-{task}-{name} -m "[Task {phase}.{task}] {description}"
-
Resume execution:
- If fixed manually: Continue to next task
- If need fresh attempt: Reset branch and re-run task
- If plan was wrong: Update plan and re-execute from this phase
2. Parallel Phase - Agent Failure
Symptoms:
- One or more parallel agents fail
- Some task branches created, others missing
- Error during concurrent execution
Error message format:
❌ Parallel Phase {id} - Agent Failure
**Failed Task**: {task-id}
**Branch**: {task-branch}
**Error**: {error-message}
**Successful Tasks**: {list}
Resolution options:
Option A: Fix in Existing Branch
Use when fix is small and task mostly completed:
cd .worktrees/{runid}-task-{phase}-{task}
bash <<'EOF'
npm test
if [ $? -ne 0 ]; then
echo "❌ Tests failed"
exit 1
fi
npm run lint
if [ $? -ne 0 ]; then
echo "❌ Lint failed"
exit 1
fi
npm run build
if [ $? -ne 0 ]; then
echo "❌ Build failed"
exit 1
fi
EOF
git add --all
git commit -m "[Task {phase}.{task}] Fix: {description}"
cd "$REPO_ROOT"
Option B: Create Stacked Fix Branch
Use when fix is significant or logically separate:
cd .worktrees/{runid}-task-{phase}-{task}
git status
gs branch create {runid}-task-{phase}-{task}-fix-{issue} -m "[Task {phase}.{task}] Fix: {issue}"
git add --all
git commit -m "[Task {phase}.{task}] Fix: {description}"
cd "$REPO_ROOT"
Option C: Restart Failed Agent
Use when task implementation is fundamentally wrong:
cd "$REPO_ROOT"
git worktree remove .worktrees/{runid}-task-{phase}-{task}
git branch -D {runid}-task-{phase}-{task}-{name}
BASE_BRANCH=$(git -C .worktrees/{runid}-main branch --show-current)
git worktree add .worktrees/{runid}-task-{phase}-{task} --detach "$BASE_BRANCH"
cd .worktrees/{runid}-task-{phase}-{task}
{install-command}
{postinstall-command}
Option D: Continue Without Failed Task
Use when task is non-critical or can be addressed later:
- Stack successful task branches
- Mark failed task as follow-up work
- Continue to next phase
- Address failed task in separate branch later
3. Merge Conflicts During Stacking
Symptoms:
- Stacking parallel branches causes conflicts
gs upstack onto fails with merge conflict
- Git reports conflicting changes in same files
Error message format:
❌ Merge Conflict - Tasks Modified Same Files
**Conflict**: {file-path}
**Branches**: {branch-1}, {branch-2}
This should not happen if task independence was verified correctly.
Root cause: Tasks were marked parallel but have file dependencies.
Resolution steps:
-
Verify task independence:
git diff {base-branch}..{task-1-branch} --name-only
git diff {base-branch}..{task-2-branch} --name-only
-
Resolve conflict manually:
cd .worktrees/{runid}-main
git checkout {task-1-branch}
git merge {task-2-branch}
git add {conflicted-files}
git commit -m "Merge {task-2-branch} into {task-1-branch}"
-
Update plan for future:
- Mark tasks as sequential, not parallel
- File dependencies mean tasks aren't independent
- Prevents conflict in future executions
4. Worktree Not Found
Symptoms:
- Execute command can't find
{runid}-main worktree
- Error:
.worktrees/{runid}-main does not exist
Error message format:
❌ Worktree Not Found
**Error**: .worktrees/{run-id}-main does not exist
This means `/spectacular:spec` was not run, or the worktree was removed.
Root cause: Spec command not run, or worktree manually deleted.
Resolution:
Run the spec command first to create workspace:
/spectacular:spec {feature-name}
This will:
- Create
.worktrees/{runid}-main/ directory
- Generate
specs/{runid}-{feature-slug}/spec.md
- Create base branch
{runid}-main
Then:
- Run
/spectacular:plan to generate execution plan
- Run
/spectacular:execute to execute the plan
Never skip spec - execute depends on worktree structure created by spec.
5. Parallel Task Worktree Creation Failure
Symptoms:
git worktree add fails for parallel tasks
- Error: "path already exists"
- Error: "working tree contains modified files"
Error message format:
❌ Parallel Task Worktree Creation Failed
**Error**: {error-message}
Common causes and fixes:
Cause 1: Path Already Exists
rm -rf .worktrees/{runid}-task-{phase}-{task}
git worktree prune
git worktree add .worktrees/{runid}-task-{phase}-{task} --detach {base-branch}
Cause 2: Uncommitted Changes on Current Branch
git stash
git add --all
git commit -m "WIP: Save progress before parallel phase"
Cause 3: Working Directory Not Clean
git status
git add --all
git commit -m "[Task {X}.{Y}] Complete task"
git stash
Cause 4: Running from Wrong Directory
REPO_ROOT=$(git rev-parse --show-toplevel)
if [[ "$REPO_ROOT" =~ \.worktrees ]]; then
echo "Error: In worktree, navigate to main repo"
cd "$(dirname "$(dirname "$REPO_ROOT")")"
fi
MAIN_REPO=$(git rev-parse --show-toplevel | sed 's/\.worktrees.*//')
cd "$MAIN_REPO"
Diagnostic Commands
Check execution state:
git worktree list
git branch | grep "{runid}-"
cd .worktrees/{runid}-main
gs log short
cd .worktrees/{runid}-main
git status
git branch --show-current
Verify phase readiness:
cd .worktrees/{runid}-main
BASE_BRANCH=$(git branch --show-current)
echo "Parallel phase will build from: $BASE_BRANCH"
cd .worktrees/{runid}-main
CURRENT_BRANCH=$(git branch --show-current)
echo "Sequential phase starting from: $CURRENT_BRANCH"
Check task completion:
TASK_BRANCHES=({runid}-task-{phase}-1-{name} {runid}-task-{phase}-2-{name})
for BRANCH in "${TASK_BRANCHES[@]}"; do
if git rev-parse --verify "$BRANCH" >/dev/null 2>&1; then
echo "✅ $BRANCH exists"
else
echo "❌ $BRANCH missing"
fi
done
Recovery Strategies
Resume After Manual Fix
If you fixed an issue manually:
-
Verify state is clean:
cd .worktrees/{runid}-main
git status
git log --oneline -3
-
Continue to next task/phase:
- Sequential: Next task creates branch from current HEAD
- Parallel: Remaining tasks execute in parallel
Reset Phase and Retry
If phase is fundamentally broken:
-
Reset main worktree to pre-phase state:
cd .worktrees/{runid}-main
git reset --hard {base-branch}
-
Remove failed task branches:
git branch -D {failed-task-branches}
-
Re-run phase:
- Fix plan if needed
- Re-execute phase from execute command
Abandon Feature and Clean Up
If feature implementation should be abandoned:
-
Remove all worktrees:
git worktree remove .worktrees/{runid}-main
git worktree remove .worktrees/{runid}-task-*
git worktree prune
-
Delete all feature branches:
git branch | grep "^ {runid}-" | xargs git branch -D
-
Clean spec directory:
rm -rf specs/{runid}-{feature-slug}
Prevention
Prevent failures before they occur:
-
Validate plan before execution:
- Check task independence for parallel phases
- Verify file paths are explicit, not wildcards
- Ensure no circular dependencies
-
Run setup validation:
- Use
validating-setup-commands skill
- Verify CLAUDE.md has install/postinstall commands
- Test quality check commands exist
-
Use skills correctly:
executing-parallel-phase for ALL parallel phases
executing-sequential-phase for ALL sequential phases
understanding-cross-phase-stacking for phase boundaries
-
Verify before proceeding:
- Check branches exist after each phase
- Verify stack structure with
gs log short
- Run quality checks manually if agents skip them
Quick Reference
Common error patterns:
| Error | Quick Fix |
|---|
| Phase execution failed | Check error, fix manually, resume or retry |
| Parallel agent failed | Fix in branch, restart agent, or continue without |
| Merge conflict | Resolve manually, update plan to sequential |
| Worktree not found | Run /spectacular:spec first |
| Worktree creation failed | Clean path, stash changes, prune worktrees |
Diagnostic sequence:
- Read error message carefully
- Check execution state (worktrees, branches, commits)
- Identify root cause (plan issue? implementation? environment?)
- Choose recovery strategy (fix, retry, or continue)
- Verify state is clean before proceeding
The Bottom Line
Most failures are recoverable. Understand the error, verify state, fix the issue, and resume execution.
The execute command is designed to be resilient - you can fix issues manually and continue from any phase.