create-clone

YoniChechik's avatarfrom YoniChechik

Create isolated git clone for feature

⭐0stars🔀0forks📁View on GitHub🕐Updated Jan 10, 2026⬇️3downloads

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_NAME has 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