github-actions
Use this skill when authoring or debugging GitHub Actions workflows (.github/workflows/*.yml) — e.g. "add CI for this Drupal project on GitHub", "run…
Use this skill whenever a task involves running parallel work on a git repository without conflicts — e.g. "fix this bug while I keep working on my feature", "run Claude on two branches at once", "work on this task in isolation", "create a throwaway branch for this experiment",
$ npx -y skills add siva01c/claude-plugins --skill git-worktree --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/git-worktreeContext preview
The summary Claude sees to decide when to auto-load this skill.
Use this skill whenever a task involves running parallel work on a git repository without conflicts — e.g. "fix this bug while I keep working on my feature", "run Claude on two branches at once", "work on this task in isolation", "create a throwaway branch for this experiment",
name: git-worktree description: > Use this skill whenever a task involves running parallel work on a git repository without conflicts — e.g. "fix this bug while I keep working on my feature", "run Claude on two branches at once", "work on this task in isolation", "create a throwaway branch for this experiment", or anything where two agents or sessions might edit the same files. Also trigger when the user asks to use worktrees directly, or when an agent needs its own isolated checkout so it can work without disturbing the main branch. Even if the user just says "do this in parallel" or "don't mess up my current work", consider worktrees.
Git worktrees let you check out multiple branches of the same repository into separate directories simultaneously. Each directory is a fully independent working tree — its own HEAD, index, and files — but all share the same `.git` history and objects, so they stay lightweight.
Use this skill to give each agent or parallel task its own isolated workspace.
---
---
# New branch from current HEAD git worktree add ../my-task -b my-task-branch # From a specific commit or existing branch git worktree add ../hotfix -b hotfix origin/main # Detached HEAD (no branch) git worktree add --detach ../scratch HEAD # Empty worktree on an unborn branch (blank slate) git worktree add --orphan ../experiment -b experiment
The new directory is ready to use immediately. `cd` into it and work normally.
git worktree list # /path/to/main abc1234 [main] # /path/to/my-task def5678 [my-task-branch]
# Clean remove (fails if the worktree has uncommitted changes) git worktree remove ../my-task # Force remove (discard dirty worktree) git worktree remove --force ../my-task # If you deleted the directory manually, clean up the metadata git worktree prune
git worktree move ../my-task ../new-location
git worktree lock ../my-task --reason "on external drive" git worktree unlock ../my-task
# Run inside the moved worktree git worktree repair # Or from main, pointing at each moved worktree git worktree repair ../new-location-1 ../new-location-2
---
Place worktrees as siblings of the main repo directory so paths stay predictable and `.gitignore` patterns do not need updating:
projects/ my-app/ ← main repo (agents work here by default) my-app-task-a/ ← worktree for task A my-app-task-b/ ← worktree for task B
Create them from the main repo root:
git worktree add ../my-app-task-a -b task-a git worktree add ../my-app-task-b -b task-b
---
1. **Create** a worktree on a fresh branch before starting work. 2. **Work** entirely inside that directory — treat it like a normal repo. 3. **Commit** as usual; history is shared with the main repo. 4. **Verify** the result (tests, review, etc.). 5. **Merge or PR** the branch back via standard git workflow. 6. **Remove** the worktree once done.
# Step 1 — set up git worktree add ../my-app-fix-login -b fix-login # Step 2 — work cd ../my-app-fix-login # ... make changes ... # Step 3 — commit git add -A && git commit -m "fix: resolve login redirect loop" # Step 4 — back in main repo, merge cd ../my-app git merge fix-login # Step 5 — clean up git worktree remove ../my-app-fix-login git branch -d fix-login
---
out in two worktrees at once. Use separate branch names for each worktree.
worktree that contains submodules; handle those manually.
--force` discards it entirely with no impact on other branches.
`git worktree prune` in the main repo to remove orphaned administrative files.
---
| Symptom | Fix | |---|---| | `fatal: '<branch>' is already checked out` | Use a different branch name, or check `git worktree list` | | Worktree directory deleted but `git worktree list` still shows it | Run `git worktree prune` | | Moved worktree can no longer find the repo | Run `git worktree repair` inside the moved directory | | Locked worktree blocks removal | `git worktree unlock <path>` then remove | | Changes in worktree not visible in main | Changes are per-worktree until committed and merged |
A curated collection of Claude Code plugins for Drupal development, security, and deployment. Each plugin covers one topic — Drupal itself, DDEV, Docker, CI/CD, git workflows, and security verification — so you install only what you need.
Use this skill when authoring or debugging GitHub Actions workflows (.github/workflows/*.yml) — e.g. "add CI for this Drupal project on GitHub", "run…
Use this skill when authoring or debugging GitLab CI/CD pipelines (.gitlab-ci.yml) — e.g. "add a CI pipeline for this Drupal project", "run…
Use for operational Drupal 11 workflows in DDEV environments, including safe updates, backup-first procedures, and troubleshooting commands.
Use this skill when authoring or editing Docker Compose files (compose.yaml / docker-compose.yml), running multi-container stacks, or containerizing a…
Use this skill when running local AI models with Docker Model Runner — the `docker model` CLI — e.g. "run an LLM locally with Docker", "pull a model from the…
Use when creating or extending Drupal 11 custom modules, including scaffolding, service architecture, and dependency injection best practices.