AgentSkillsCN

twig-guide

当用户出现以下情况时,应使用此技能: - 希望同时或并行处理多个分支 - 需要在保留当前工作的同时开始新功能或新任务 - 提及 Git Worktree 操作(创建、移除、列出、清理) - 谈及“Twig”命令(添加、移除、清理、列出、初始化) - 希望将未提交的更改迁移到或移动到新分支 - 希望在不同分支之间复制或同步更改 - 需要在独立的目录中隔离工作 - 询问如何在不使用暂存的情况下切换上下文 - 希望清理旧分支或已合并分支及其对应的 Worktree - 说出诸如“新建 Worktree”“创建 Worktree”“从当前分支分叉”“改做别的事情”“开启新工作”“并行开发”“独立工作空间”“另一个分支”之类的表述 此技能适用于任何与 Worktree 相关的操作,而不仅限于用户明确询问 Twig 命令时。

SKILL.md
--- frontmatter
name: twig-guide
description: |
  This skill should be used when the user:
  - Wants to work on multiple branches simultaneously or in parallel
  - Needs to start a new feature/task while preserving current work
  - Asks about git worktree operations (create, remove, list, clean)
  - Mentions "twig" commands (add, remove, clean, list, init)
  - Wants to carry or move uncommitted changes to a new branch
  - Wants to copy/sync changes between branches
  - Needs to isolate work in a separate directory
  - Asks about switching context without stashing
  - Wants to clean up old/merged branches and their worktrees
  - Says phrases like "new worktree", "create worktree", "branch off",
    "work on something else", "start new work", "parallel work",
    "separate workspace", "another branch"

  Use this skill for ANY worktree-related operation, not just when
  explicitly asking about twig.

allowed-tools: Read

twig CLI Guide

twig is a CLI tool that simplifies git worktree workflows by automating branch creation, symlinks, and change management in a single command.

Commands Overview

CommandPurpose
twig initInitialize twig configuration
twig add <name>Create a new worktree with symlinks
twig remove <branch>...Remove worktrees and their branches
twig listList all worktrees
twig cleanRemove unneeded worktrees
twig syncSync symlinks and submodules to worktrees

Typical Workflows

Start new feature work

Create a new worktree for a feature branch:

bash
twig add feat/new-feature

This creates a worktree at the configured destination directory, creates a new branch if it doesn't exist, and sets up symlinks.

Move current changes to a new branch

When you realize current work should be on a different branch:

bash
twig add feat/correct-branch --carry

The --carry flag moves uncommitted changes to the new worktree. The source worktree becomes clean.

Copy changes to a new branch

When you want changes in both the current and new worktree:

bash
twig add feat/experiment --sync

The --sync flag copies uncommitted changes to both worktrees.

Carry only specific files

When you want to carry only certain files:

bash
twig add feat/new --carry --file "*.go" --file "cmd/**"

Clean up after merging

Remove worktrees for branches that have been merged:

bash
twig clean

This shows candidates and prompts for confirmation. Use --yes to skip the prompt.

Force remove a worktree

Remove a worktree even with uncommitted changes:

bash
twig remove feat/abandoned -f

Use -ff to also remove locked worktrees.

Configuration

see ./references/configuration.md

Command Details

For detailed information on each command, refer to:

  • ./references/commands/add.md - Create worktrees with sync/carry options
  • ./references/commands/remove.md - Remove worktrees and branches
  • ./references/commands/list.md - List worktrees
  • ./references/commands/clean.md - Clean merged worktrees
  • ./references/commands/sync.md - Sync symlinks and submodules
  • ./references/commands/init.md - Initialize configuration
  • ./references/configuration.md - Configuration file details