关于 executing-plans-preflight
Executing Plans Preflight 是一项半自动的 Git 状态检查技能,供准备执行计划的开发者使用。它检查分支上下文、工作区是否干净及远程同步状态,并在执行变更前征求确认。
主要功能
- 01检测默认分支和当前分支上下文
- 02检查暂存、未暂存及未跟踪文件
- 03获取并检查远程同步状态
- 04确认后提议创建分支或变基
- 05允许覆盖脏工作区提示
适用场景
- 01实施计划前检查仓库状态
- 02切换工作上下文前确认未提交内容
- 03检查分支是否落后或发生分叉
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ shihyuho/ skills --skill executing-plans-preflight安装后在 Claude Code 中输入/executing-plans-preflight确认已加载。
附带文件README.md
详细介绍
执行计划前置检查
半自动 Git 状态门禁。检测问题、提出修复方案,并在确认后执行。在开始任何实现工作前运行此检查——确保 Git 状态已就绪,让你从干净、正确的基线开始。
不在 Git 仓库中?请说 Not a git repository — skipping preflight.,然后继续。
检查项
按顺序运行。如果没有问题,静默通过——只有需要修复时才提示。
1. 分支上下文
通过 origin/HEAD 检测默认分支。如果检测失败,则将 main/master 视为默认分支。
- 分离头指针 → 询问要切换到哪个分支(无法推断)。
- 位于默认分支 → 根据对话中的计划推断分支名称(标题 → kebab-case,添加常规提交类型前缀:
feat/、fix/、docs/、refactor/、perf/、test/、chore/、ci/、build/;默认为feat/)。提出建议,让用户确认或重命名,然后运行git switch -c。对话中没有计划?直接询问——不要根据文件系统猜测。 - 其他情况 → 静默通过。
2. 工作树干净
运行 git status --porcelain。所有改动都算作不干净(已暂存、未暂存、未跟踪)。
- 干净 → 静默通过。
- 不干净 → 列出路径,并询问用户解决问题或说“continue”以覆盖。记录此覆盖——检查项 3 需要知道。不要协助提交或暂存;这由用户决定,因为提交范围和消息是需要审慎决定的事项,不应被埋在前置检查中。
3. 远程同步
运行 git fetch。如果获取失败,发出警告并使用本地信息继续——远程状态并非最新时,不要声称它是最新的。
- 没有上游 / 领先 / 已同步 → 静默通过。
- 上游已不存在 → 询问:清除跟踪设置还是重新创建?
- 落后/分叉 → 提议运行
git pull --rebase。如果在检查项 2 中覆盖了不干净的文件,警告用户拉取可能发生冲突,并提供跳过同步的选项。
检查项 1 中创建的新分支没有上游——这是预期情况,不要推送。
报告
所有检查完成后,用一行给出结论。每项修复前各占一行。
Switched to `feat/add-auth` (was on main)
Preflight passed. Ready to go.
如果覆盖了不干净的文件,结尾使用 Proceeding with uncommitted changes.,而不是 Ready to go.。
为什么需要这些防护措施
- 执行前先确认——Git 操作很难撤销;在错误分支上误运行一次
switch -c或pull --rebase,就可能造成实际损失。 - 允许覆盖不干净状态——无条件阻止操作是 v2 最令人困扰的问题。用户比前置检查更了解自己的工作状态。
- 绝不推送——前置检查只管理本地状态。发布是单独且需要审慎决定的步骤。
评论
支持 Markdown