mcpField
W
workflow-preflight

workflow-preflight

github.com/laurigates开发5950 次安装1 天前更新
代码仓库

关于 workflow-preflight

workflow-preflight 是一项编码技能,可在开始或恢复工作前检查仓库与分支状态。它结合 Git 检查和 GitHub 工单、拉取请求搜索,提示已有工作、分支差异及冲突。

主要功能

  1. 01获取远程状态并清理过期引用
  2. 02检查相关工单、拉取请求和分支
  3. 03报告分支差异与未提交更改
  4. 04检测潜在合并冲突
  5. 05汇总仓库就绪状态

适用场景

  1. 01开始功能或工单前
  2. 02中断后恢复工作时
  3. 03创建拉取请求分支前
  4. 04启动并行 Agent 前

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/laurigates/claude-plugins --skill workflow-preflight

安装后在 Claude Code 中输入/workflow-preflight确认已加载。

详细介绍

/workflow:preflight

工作前验证,避免因状态过期、重复工作或分支冲突而浪费精力。

何时使用此技能

在以下情况下使用此技能……在以下情况下跳过……
开始处理新问题或新功能快速修改单个文件
中断后恢复工作本次会话中已验证状态
启动并行 Agent 前在隔离的工作树中工作
为 PR 创建分支前分支已创建并验证

上下文

  • 仓库:!git remote get-url origin
  • 当前分支:!git branch --show-current
  • 远程跟踪:!git branch -vv --format='%(refname:short) %(upstream:short) %(upstream:track)'
  • 未提交的更改:!git status --porcelain
  • 暂存数量:!git stash list

执行

步骤 1:获取最新远程状态
git fetch origin --prune 2>/dev/null
步骤 2:检查是否已有相关工作

如果提供了问题编号,请检查该问题是否已解决:

# Check if issue exists and its state
gh issue view $ISSUE --json number,title,state,labels 2>/dev/null

# Check for PRs that reference this issue
gh pr list --search "fixes #$ISSUE OR closes #$ISSUE OR resolves #$ISSUE" --json number,title,state,headRefName 2>/dev/null

# Check for branches that reference this issue
git branch -a --list "*issue-$ISSUE*" --list "*fix/$ISSUE*" --list "*feat/$ISSUE*" 2>/dev/null

如果存在已合并的 PR:报告该问题已解决。停止。 如果存在未关闭的 PR:报告该 PR,并询问用户是要继续在该分支上工作,还是重新开始。

步骤 3:验证分支状态
# Check divergence from main/master
git log --oneline origin/main..HEAD 2>/dev/null || git log --oneline origin/master..HEAD 2>/dev/null

# Check if main has moved ahead
git log --oneline HEAD..origin/main -5 2>/dev/null || git log --oneline HEAD..origin/master -5 2>/dev/null

# Check for uncommitted changes
git status --porcelain=v2 --branch 2>/dev/null

报告:

  • 领先于/落后于远程的提交数
  • 可能造成干扰的未提交更改
  • 是否需要变基
步骤 4:检查冲突
# Dry-run merge to detect conflicts (without actually merging)
git merge-tree $(git merge-base HEAD origin/main) HEAD origin/main 2>/dev/null | head -20
步骤 5:总结报告

输出结构化摘要:

检查项状态详情
远程状态最新/过期最近获取时间
已有 PR无/未关闭/已合并如有,列出 PR 编号
分支状态干净/有更改/分叉领先/落后数量
冲突无/已检测到冲突文件
暂存空/N 项暂存内容

建议:

  • 如果落后于远程:"开始工作前建议先变基"
  • 如果发现已有 PR:"PR #N 已处理此问题——请先检查,再决定是否重复处理"
  • 如果状态不干净:"创建分支前请提交或暂存更改"
  • 如果检测到冲突:"继续前请先解决与 main 的冲突"
  • 如果状态干净:"可以继续"

Agentic 优化

上下文命令
快速同步远程git fetch origin --prune 2>/dev/null
检查已有 PRgh pr list --search "fixes #N" --json number,state,headRefName
分支分歧git log --oneline origin/main..HEAD
冲突检测git merge-tree $(git merge-base HEAD origin/main) HEAD origin/main
精简状态git status --porcelain=v2 --branch
远程跟踪git branch -vv --format='%(refname:short) %(upstream:track)'

快速参考

标记说明
git fetch --prune获取远程更新并移除过期的远程引用
git status --porcelain=v2可供机器解析的状态
gh pr list --search按内容搜索 PR
gh issue view --json结构化问题数据
git merge-tree试运行合并冲突检测
git log A..BB 中有而 A 中没有的提交

评论

支持 Markdown