name: dot-ai-worktree-prd description: 为PRD工作创建一个具有描述性分支名称的git工作树。从上下文中推断PRD或询问用户。 user-invocable: true
创建Git工作树用于PRD
根据PRD标题创建一个具有描述性分支名称的git工作树。这确保功能分支具有人类可读的名称,描述工作内容。
工作流程
步骤1:识别PRD
尝试从当前对话中推断PRD编号。查找PRD引用,如“PRD 353”、“PRD #353”或“prd-353”。
如果上下文中未找到,询问用户:“我应该为哪个PRD创建工作树?(例如,353)”
步骤2:获取PRD标题
如果PRD内容已在对话上下文中,从中提取标题。
否则,读取PRD文件。PRD文件位于prds/目录中,命名模式为[数字]-[slug].md:
ls prds/ | grep "^[PRD_NUMBER]-"
标题在第一行,格式为:# PRD #[数字]: [标题]
步骤3:生成描述性分支名称
将PRD标题转换为分支友好名称:
- 以
prd-[数字]-开头 - 提取冒号后的标题(例如,“Update to Kimi K2.5 Model Support”)
- 转换为小写
- 将空格替换为连字符
- 移除除连字符和点以外的特殊字符
- 保持简洁(如果非常长则截断)
示例:
- “PRD #353: Update to Kimi K2.5 Model Support” →
prd-353-kimi-k2.5-support - “PRD #290: Skills Distribution System” →
prd-290-skills-distribution - “PRD #264: GitOps Tool ArgoCD Integration” →
prd-264-gitops-argocd-integration
步骤4:创建工作树
直接运行以下命令。将[branch-name]替换为步骤3中生成的名称。
- 获取仓库名称并计算工作树路径:
repo_name=$(basename "$(git rev-parse --show-toplevel)")
worktree_path="../${repo_name}-[branch-name]"
- 验证 — 检查分支、工作树路径和工作树注册是否已存在:
git show-ref --verify --quiet "refs/heads/[branch-name]" && echo "ERROR: 分支已存在"
test -d "${worktree_path}" && echo "ERROR: 工作树路径已存在"
git worktree list | grep -q "[branch-name]" && echo "ERROR: 工作树已注册"
如果任何检查失败,通知用户并询问如何继续。
- 创建工作树,从
main分支创建:
git worktree add "${worktree_path}" -b [branch-name] main
- 初始化子模块在新工作树中:
cd "${worktree_path}" && git submodule update --init --recursive
- 报告结果给用户:
- 工作树路径:
${worktree_path} - 分支:
[branch-name] - 下一步:
cd ${worktree_path}
- 工作树路径:
指南
- 描述性名称:分支名称应描述功能,而不仅仅是PRD编号
- 一致格式:工作树目录始终以仓库名称前缀
- 基于main:始终从
main分支创建新功能工作 - 简洁名称:保持分支名称简洁但描述性