プロジェクトの導入状況に合わせてBMad-Method V6を新規導入・更新し、旧版の検出、出力フォルダの修正、Gitの除外設定までまとめて整えます。
- BMad-Method V6を導入したいとき
- 導入済みのV6を更新したいとき
- 旧V4の導入状況を確認したいとき
Gitの複数ブランチを別々の作業フォルダで扱い、作成・一覧・削除を管理するスキルです。未コミット変更の移動や環境ファイルのコピー、IDE起動も支援します。
管理 Git worktree,在项目平级的 ../.zcf/项目名/ 目录下创建,支持智能默认、IDE 集成和内容迁移
実行スコア 未検証
インストール方法を見るGit worktreeを使い、同じプロジェクトの複数ブランチを別々の作業フォルダで扱います。主プロジェクトの隣にある../.zcf/プロジェクト名/配下へ作成し、一覧表示、削除、無効な管理記録の整理まで行います。未コミット変更やstash(一時退避した変更)の移動、環境ファイルのコピー、IDEで開く操作にも対応します。
新機能の開発と不具合修正を別フォルダで進めたいときや、作業途中の変更を別のブランチへ移したいときに便利です。作成時にはパスや分岐元の既定値を補い、既存フォルダやブランチの使用状況も確認します。
/git-worktree add feature-ui -oで作業フォルダを作り、IDEで開いて」/git-worktree migrate feature-ui --from mainで未コミット変更を移して」/git-worktree listで作業フォルダの状態を見せて」Gitリポジトリで使います。IDE連携には対象エディタのコマンドがPATHに必要です。変更の移動は未コミット内容が対象で、コミット済みの変更にはgit cherry-pickを使います。環境ファイルは.gitignoreの指定に基づいてコピーし、.env.exampleは除外します。
この紹介文は、公開されている SKILL.md をもとに AI(OpenAI Codex)が作成しました。正確な仕様は下の原文を確認してください。
インストールする前に、エージェントに与えられる指示の中身を確認できます。
管理 Git worktree,支持智能默认、IDE 集成和内容迁移,使用结构化的 ../.zcf/项目名/ 路径。
直接执行命令并提供简洁结果。
# 基本操作
/git-worktree add <path> # 从 main/master 创建名为 <path> 的新分支
/git-worktree add <path> -b <branch> # 创建指定名称的新分支
/git-worktree add <path> -o # 创建并直接用 IDE 打开
/git-worktree list # 显示所有 worktree 状态
/git-worktree remove <path> # 删除指定的 worktree
/git-worktree prune # 清理无效 worktree 记录
# 内容迁移
/git-worktree migrate <target> --from <source> # 迁移未提交内容
/git-worktree migrate <target> --stash # 迁移 stash 内容
| 选项 | 说明 |
|---|---|
add [<path>] | 在 ../.zcf/项目名/<path> 添加新的 worktree |
migrate <target> | 迁移内容到指定 worktree |
list | 列出所有 worktree 及其状态 |
remove <path> | 删除指定路径的 worktree |
prune | 清理无效的 worktree 引用 |
-b <branch> | 创建新分支并检出到 worktree |
-o, --open | 创建成功后直接用 IDE 打开(跳过询问) |
--from <source> | 指定迁移源路径(migrate 专用) |
--stash | 迁移当前 stash 内容(migrate 专用) |
--track | 设置新分支跟踪对应的远程分支 |
--guess-remote | 自动猜测远程分支进行跟踪 |
--detach | 创建分离 HEAD 的 worktree |
--checkout | 创建后立即检出(默认行为) |
--lock | 创建后锁定 worktree |
环境检查
git rev-parse --is-inside-work-tree 验证 Git 仓库智能路径管理
../.zcf/项目名/<path> 目录创建 worktree# worktree 检测的核心路径计算逻辑
get_main_repo_path() {
local git_common_dir=$(git rev-parse --git-common-dir 2>/dev/null)
local current_toplevel=$(git rev-parse --show-toplevel 2>/dev/null)
# 检测是否在 worktree 中
if [[ "$git_common_dir" != "$current_toplevel/.git" ]]; then
# 在 worktree 中,从 git-common-dir 推导主仓库路径
dirname "$git_common_dir"
else
# 在主仓库中
echo "$current_toplevel"
fi
}
MAIN_REPO_PATH=$(get_main_repo_path)
PROJECT_NAME=$(basename "$MAIN_REPO_PATH")
WORKTREE_BASE="$MAIN_REPO_PATH/../.zcf/$PROJECT_NAME"
# 始终使用绝对路径防止嵌套问题
ABSOLUTE_WORKTREE_PATH="$WORKTREE_BASE/<path>"
关键修复: 在现有 worktree 内创建新 worktree 时,始终使用绝对路径以防止出现类似 ../.zcf/project/.zcf/project/path 的路径嵌套问题。
Worktree 操作
智能默认
-b 时,使用路径名创建新分支内容迁移
安全特性
.zcf 目录环境文件处理
.gitignore 文件中的环境变量文件模式.gitignore 中列出的 .env 和 .env.* 文件.env.example 等模板文件# 环境文件复制实现
copy_environment_files() {
local main_repo="$MAIN_REPO_PATH"
local target_worktree="$ABSOLUTE_WORKTREE_PATH"
local gitignore_file="$main_repo/.gitignore"
# 检查 .gitignore 是否存在
if [[ ! -f "$gitignore_file" ]]; then
return 0
fi
local copied_count=0
# 检测 .env 文件
if [[ -f "$main_repo/.env" ]] && grep -q "^\.env$" "$gitignore_file"; then
cp "$main_repo/.env" "$target_worktree/.env"
echo "✅ 已复制 .env"
((copied_count++))
fi
# 检测 .env.* 模式文件(排除 .env.example)
for env_file in "$main_repo"/.env.*; do
if [[ -f "$env_file" ]] && [[ "$(basename "$env_file")" != ".env.example" ]]; then
local filename=$(basename "$env_file")
if grep -q "^\.env\.\*$" "$gitignore_file"; then
cp "$env_file" "$target_worktree/$filename"
echo "✅ 已复制 $filename"
((copied_count++))
fi
fi
done
if [[ $copied_count -gt 0 ]]; then
echo "📋 已从 .gitignore 复制 $copied_count 个环境文件"
fi
}
-o 标志跳过提示直接打开# 迁移未提交改动
/git-worktree migrate feature-ui --from main
/git-worktree migrate hotfix --from ../other-worktree
# 迁移 stash 内容
/git-worktree migrate feature-ui --stash
迁移流程:
# 基本用法
/git-worktree add feature-ui # 从 main/master 创建新分支 'feature-ui'
/git-worktree add feature-ui -b my-feature # 创建新分支 'my-feature',路径为 'feature-ui'
/git-worktree add feature-ui -o # 创建并直接用 IDE 打开
# 内容迁移场景
/git-worktree add feature-ui -b feature/new-ui # 创建新功能 worktree
/git-worktree migrate feature-ui --from main # 迁移未提交改动
/git-worktree migrate hotfix --stash # 迁移 stash 内容
# 管理操作
/git-worktree list # 查看所有 worktree
/git-worktree remove feature-ui # 删除不需要的 worktree
/git-worktree prune # 清理无效引用
示例输出:
✅ Worktree created at ../.zcf/项目名/feature-ui
✅ 已复制 .env
✅ 已复制 .env.local
📋 已从 .gitignore 复制 2 个环境文件
🖥️ 是否在 IDE 中打开 ../.zcf/项目名/feature-ui?[y/n]: y
🚀 正在用 VS Code 打开 ../.zcf/项目名/feature-ui...
parent-directory/
├── your-project/ # 主项目
│ ├── .git/
│ └── src/
└── .zcf/ # worktree 管理
└── your-project/ # 项目 worktree
├── feature-ui/ # 功能分支
├── hotfix/ # 修复分支
└── debug/ # 调试 worktree
# 配置自定义 IDE
git config worktree.ide.custom.sublime "subl %s"
git config worktree.ide.preferred "sublime"
# 控制自动检测
git config worktree.ide.autodetect true # 默认
.git 目录,节省磁盘空间git cherry-pick.gitignore 中列出的环境文件到新 worktree.env.example 仅保留在主仓库中まだレビューはありません。使ってみた感想をお寄せください。
ログインなしで書き込めます。使ってみた感想、質問、動かなかった環境などを気軽にどうぞ。
まだコメントはありません。最初のコメントを書いてみませんか。
プロジェクトの導入状況に合わせてBMad-Method V6を新規導入・更新し、旧版の検出、出力フォルダの修正、Gitの除外設定までまとめて整えます。
プロジェクト内の導入状況を調べ、BMad-Method (V6)の新規インストールや更新、出力フォルダの既知問題の修正、Gitの除外設定まで整えるスキル。
新機能の要望を計画書にまとめ、相談による改訂から実装、進捗管理まで進めます。フロントエンドではUI設計の有無も確認し、作業の依存関係を整理します。
新機能の要望整理、計画の見直し、実装を段階に分け、目的や受け入れ基準を文書化し、画面設計の確認と進捗管理を含めて開発を進めるスキル。
マージ済みや長期間更新のないGitブランチを洗い出し、削除候補のプレビューと保護設定を使いながら、ローカル・リモートの整理を進めるスキル。
マージ済みや長期間更新されていないGitブランチを洗い出し、削除候補を事前確認して整理します。比較先や保護ルールを指定でき、リモートの整理にも対応します。