diff --git a/.claude/skills/prepare-workspace-for-plan/SKILL.md b/.claude/skills/prepare-workspace-for-plan/SKILL.md new file mode 100644 index 000000000..153da51c3 --- /dev/null +++ b/.claude/skills/prepare-workspace-for-plan/SKILL.md @@ -0,0 +1,82 @@ +--- +name: prepare-workspace-for-plan +description: Use when you have a plan file ready and need to create an isolated git worktree for implementation - creates worktree in parent directory following project conventions and moves the plan file +--- + +# Prepare Workspace for Plan + +Use this skill when you have created or refined a plan and need to set up an isolated workspace for implementation. + +## When to Use + +- After creating/finalizing a plan in the `plans/` directory +- Before starting implementation of a multi-phase plan +- When you need an isolated branch for a feature or fix + +## Prerequisites + +- A plan file exists in the current workspace's `plans/` directory +- You are in a git repository that supports worktrees +- The parent directory is the standard location for worktrees (e.g., `/path/to/vikunja/`) + +## Steps + +### 1. Determine Workspace Name + +Choose a name following the project convention: +- `fix-` for bug fixes +- `feat-` for new features + +The name should be kebab-case and descriptive but concise. + +### 2. Create the Git Worktree + +```bash +# From the current workspace (e.g., main/) +git worktree add ../ -b +``` + +The branch name should match the workspace name. + +### 3. Create Plans Directory and Move Plan + +```bash +mkdir -p ..//plans +mv plans/.md ..//plans/ +``` + +### 4. Verify Structure + +```bash +ls -la ..//plans/ +``` + +## Example + +```bash +# Create worktree for position healing fix +git worktree add ../fix-position-healing -b fix-position-healing + +# Move the plan +mkdir -p ../fix-position-healing/plans +mv plans/positioning-fixes-detection.md ../fix-position-healing/plans/ +``` + +## Result + +After completion, you'll have: +``` +parent-directory/ +├── main/ # Original workspace +├── / # New worktree +│ └── plans/ +│ └── .md # Your plan +└── ... # Other existing worktrees +``` + +## Notes + +- The new worktree shares git history with main but has its own working directory +- Changes in the new worktree won't affect main until merged +- Plans are not committed to git (see `.gitignore`) +- Remember to switch to the new workspace directory to begin implementation