create-clone
Create isolated git clone for feature
When & Why to Use This Skill
This Claude skill automates the creation of isolated Git environments for streamlined feature development. It handles the entire setup process—from cloning repositories into dedicated subdirectories and naming branches to pushing to remotes and auto-configuring environments like Python virtualenvs or npm dependencies—ensuring a clean, conflict-free workspace for every new task.
Use Cases
- Isolated Feature Development: Quickly spin up a dedicated workspace for a specific feature request to avoid cluttering the main project directory and prevent uncommitted changes from interfering with other tasks.
- Automated Environment Setup: Save time by letting the agent detect project types (Python or Node.js) and automatically install necessary dependencies or create virtual environments immediately after cloning.
- Context Switching and Parallel Work: Maintain multiple active feature branches in separate physical directories, allowing for seamless switching between different development tasks without the need for constant git stashing or branch checking.
- Safe Sandbox Testing: Create a temporary, isolated clone to test experimental code or major refactors in an environment that is pre-synced with the remote main branch.
| name | "create-clone" |
|---|---|
| description | "Create isolated git clone for feature" |
Creates a git clone for isolated feature development.
Feature description from user input
"$ARGUMENTS"
Feature Description Validation
- If empty or missing: "Error: Feature description is required. Please provide a detailed description."
Process
Step 1: Parse Feature Description
- Decide on feature name based on description
- Convert feature name to kebab-case for branch naming
- Validate description is sufficient for planning
Step 2: Create Git Clone
Set up isolated feature branch from origin/main (unless user stated a different branch)
# Get the current repo URL
REPO_URL=$(git config --get remote.origin.url)
# Create _clones directory if it doesn't exist
mkdir -p _clones
# Create clone in _clones subdirectory with branch name as folder
git clone -b main "$REPO_URL" _clones/$FEATURE_NAME
# Move to new clone directory
cd _clones/$FEATURE_NAME
# Create and checkout the feature branch
git checkout -b $FEATURE_NAME
Step 3: Publish Branch to Remote
Push the empty branch to remote to establish tracking:
# Push the branch to remote and set upstream
git push -u origin $FEATURE_NAME
Step 4: Sync with Main
Run the sync skill to commit and push.
Step 5: Setup Environment
Setup development environment based on project type:
# Python project - create virtual environment
if [ -f "pyproject.toml" ]; then
echo "Python project detected. Creating virtual environment..."
uv venv
fi
# npm project - install dependencies
if [ -f "package-lock.json" ]; then
echo "npm project detected. Installing dependencies..."
npm install
fi
Step 6: Notify User
Tell user:
- The clone has been created at
_clones/$FEATURE_NAME - The branch
$FEATURE_NAMEhas been published to remote
Step 7: Change to Feature Directory
Change to the feature clone directory.
FROM NOW ALL NEW WORK SHOULD ONLY BE DONE IN THIS FEATURE DIR