Agent Skills › novuhq/novu › nv-worktree-create

nv-worktree-create

GitHub

创建Git sibling worktree及同名新分支,支持复制.env文件、初始化企业子模块并切换工作目录。适用于用户请求并行分支开发或/worktree命令场景。

.cursor/skills/nv-worktree-create/SKILL.md novuhq/novu

Trigger Scenarios

创建新的git worktree 并行分支检出 使用/worktree命令指定分支名

Install

npx skills add novuhq/novu --skill nv-worktree-create -g -y
More Options

Use without installing

npx skills use novuhq/novu@nv-worktree-create

指定 Agent (Claude Code)

npx skills add novuhq/novu --skill nv-worktree-create -a claude-code -g -y

安装 repo 全部 skill

npx skills add novuhq/novu --all -g -y

预览 repo 内 skill

npx skills add novuhq/novu --list

SKILL.md

Frontmatter
{
    "name": "nv-worktree-create",
    "description": "Create a sibling git worktree and a new branch with the same name, copy local `.env` files, optionally initialize the enterprise submodule (`--enterprise`), and move the agent into the worktree. Use when the user asks for a worktree, parallel branch checkout, or `\/worktree` with a branch name.",
    "disable-model-invocation": true
}

Create a sibling git worktree

Goal: one name → new branch + sibling worktree at ../<name>, ready to work in.

For git command details and path naming, read nv-worktree-commands. For cleanup, read nv-worktree-cleanup.

Inputs

Input Required Default
Branch / worktree name yes — ask if missing —
Base ref no current HEAD
--lite no off — copy only the core app .env files (api, worker, ws, dashboard), no dirty-check
--no-env no off — skip the env copy entirely
--enterprise no off — also link/init the enterprise .source submodule (slow: network + symlinks)

Use the name as-is for the git branch. Use the sanitized name for the directory (see nv-worktree-commands).

Steps

  1. Preflight — one call from the main repo root:

    git rev-parse --show-toplevel && git worktree list && git status --porcelain
    

    Abort if the target path already exists. If the status is non-empty, warn that the working tree is dirty and ask whether to proceed (skip this ask with --lite).

  2. Create — always a new branch and worktree:

    git worktree add -b <branch> <worktree-path> [<base-ref>]
    

    Omit <base-ref> to branch from current HEAD.

  3. Copy local env files — only the gitignored .env files (the .env.* variants are tracked and already in the worktree). Use the fast git ls-files recipe in nv-worktree-commands (~0.1s). With --lite use its core-apps recipe; with --no-env skip. Do not use a recursive rsync over the repo (walks node_modules/.nx, ~10s). Report what was copied. Do not run setup-env-files.js — it regenerates encryption keys.

  4. Enterprise submodule — only with --enterprise; otherwise skip and continue in OSS mode. From the worktree root (best-effort; do not block handoff):

    • Skip if .source already exists or is linked.
    • Prefer linking an existing packages-enterprise clone before submodule init — same candidates as .cursor/scripts/install.sh (sibling ../packages-enterprise, parent checkout .source, /agent/repos/packages-enterprise, etc.).
    • Else configure HTTPS git fallback when SSH is unavailable, then shallow-init .source (matches install.sh):
      git config --global url."https://github.com/".insteadOf "git@github.com:"
      gh auth setup-git
      git submodule update --init --depth 1 .source
      
    • If .source is available, refresh symlinks (warn-only on failure):
      pnpm symlink:submodules || echo "WARN: symlink:submodules failed; continuing in OSS mode"
      
    • If enterprise setup fails, warn and continue in OSS mode — do not block the worktree. For troubleshooting, read enterprise-submodule.
  5. Hand off — move_agent_to_root with the absolute worktree path. Not move_agent_to_cloned_root.

  6. Confirm — branch name, worktree path, base ref, copied env files, enterprise submodule status (or "skipped").

Example

User: /worktree branch=more-dcr-oauths

Branch:     more-dcr-oauths
Path:       ../more-dcr-oauths
Command:    git worktree add -b more-dcr-oauths ../more-dcr-oauths

Then copy .env, move_agent_to_root. Add --enterprise to also wire .source + pnpm symlink:submodules.

Do not

  • Check out an existing branch — this skill always creates a new branch.
  • Copy the whole repo — only .env.
  • Run pnpm install, pnpm build, or pnpm setup:agent — never, not even if a task fails; tell the user instead. (pnpm symlink:submodules under --enterprise is the only pnpm script allowed.)
  • Symlink node_modules from the parent checkout.
  • Pick the branch name without the user providing it (or confirming a suggested name).

Version History

  • b30b8ce Current 2026-10-20 05:03

    优化性能,改用git ls-files替代rsync加速.env复制;新增--lite和--no-env参数控制环境变量复制行为。

  • 56a8a16 2026-08-29 05:10

Same Skill Collection

.agents/skills/email-best-practices/SKILL.md
.agents/skills/frontend-design/SKILL.md
.agents/skills/linear-release-setup/SKILL.md
.agents/skills/react-email/SKILL.md
.agents/skills/testerarmy-cli/SKILL.md
.claude/skills/better-auth-best-practices/SKILL.md
.cursor/skills/add-channel-connect-button/SKILL.md
.cursor/skills/add-channel-setup-guide/SKILL.md
.cursor/skills/address-pr-review/SKILL.md
.cursor/skills/better-auth-best-practices/SKILL.md
.cursor/skills/ink-tui/SKILL.md
.cursor/skills/novu-prepare-pr/SKILL.md
.cursor/skills/nv-implement/SKILL.md
.cursor/skills/nv-park-and-review/SKILL.md
.cursor/skills/nv-worktree-cleanup/SKILL.md
.cursor/skills/nv-worktree-commands/SKILL.md
.cursor/skills/run-api-e2e-tests/SKILL.md
.cursor/skills/sanity-changelog/SKILL.md
.cursor/skills/triage-agent-eval-failures/SKILL.md
.cursor/skills/verify-in-box/SKILL.md
docs/.mintlify/skills/dashboard-workflows/SKILL.md
docs/.mintlify/skills/manage-preferences/SKILL.md
docs/.mintlify/skills/manage-subscribers/SKILL.md
docs/.mintlify/skills/trigger-notification/SKILL.md
.agents/skills/figma-use/SKILL.md
.cursor/skills/add-channel-whats-next-onboarding/SKILL.md
.cursor/skills/nv-endpoint-routed-tool-provider/SKILL.md
docs/.mintlify/skills/design-workflow/SKILL.md
docs/.mintlify/skills/framework-integration/SKILL.md
docs/.mintlify/skills/inbox-integration/SKILL.md

Metadata

Files
0
Version
b30b8ce
Hash
759d86f7
Indexed
2026-08-29 05:10

홈 - 위키
Copyright © 2011-2026 iteam. Current version is 2.155.2. UTC+08:00, 2026-10-21 01:57
浙ICP备14020137号-1