workflow-preflight
1
总安装量
1
周安装量
#47432
全站排名
安装命令
npx skills add https://github.com/laurigates/claude-plugins --skill workflow-preflight
Agent 安装分布
mcpjam
1
claude-code
1
replit
1
junie
1
windsurf
1
zencoder
1
Skill 文档
/workflow:preflight
Pre-work validation to prevent wasted effort from stale state, redundant work, or branch conflicts.
When to Use This Skill
| Use this skill when… | Skip when… |
|---|---|
| Starting work on a new issue or feature | Quick single-file edit |
| Resuming work after a break | Already verified state this session |
| Before spawning parallel agents | Working in an isolated worktree |
| Before creating a branch for a PR | Branch already created and verified |
Context
- Repo: !
gh repo view --json nameWithOwner -q .nameWithOwner 2>/dev/null - Current branch: !
git branch --show-current 2>/dev/null - Remote tracking: !
git branch -vv --format='%(refname:short) %(upstream:short) %(upstream:track)' 2>/dev/null - Uncommitted changes: !
git status --porcelain 2>/dev/null - Stash count: !
git stash list 2>/dev/null | wc -l
Execution
Step 1: Fetch Latest Remote State
git fetch origin --prune 2>/dev/null
Step 2: Check for Existing Work
If an issue number was provided, check if it’s already addressed:
# 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
If a merged PR exists: Report that the issue is already addressed. Stop. If an open PR exists: Report the PR and ask if the user wants to continue on that branch or start fresh.
Step 3: Verify Branch State
# 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
Report:
- Commits ahead/behind remote
- Uncommitted changes that might interfere
- Whether a rebase is needed
Step 4: Check for Conflicts
# 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
Step 5: Summary Report
Output a structured summary:
| Check | Status | Detail |
|---|---|---|
| Remote state | fresh/stale | Last fetch time |
| Existing PRs | none/open/merged | PR numbers if any |
| Branch state | clean/dirty/diverged | Ahead/behind counts |
| Conflicts | none/detected | Conflicting files |
| Stash | empty/N items | Stash contents |
Recommendations:
- If behind remote: “Rebase recommended before starting work”
- If existing PR found: “PR #N already addresses this – review before duplicating”
- If dirty state: “Commit or stash changes before branching”
- If conflicts detected: “Resolve conflicts with main before proceeding”
- If clean: “Ready to proceed”
Agentic Optimizations
| Context | Command |
|---|---|
| Quick remote sync | git fetch origin --prune 2>/dev/null |
| Check existing PRs | gh pr list --search "fixes #N" --json number,state,headRefName |
| Branch divergence | git log --oneline origin/main..HEAD |
| Conflict detection | git merge-tree $(git merge-base HEAD origin/main) HEAD origin/main |
| Compact status | git status --porcelain=v2 --branch |
| Remote tracking | git branch -vv --format='%(refname:short) %(upstream:track)' |
Quick Reference
| Flag | Description |
|---|---|
git fetch --prune |
Fetch and remove stale remote refs |
git status --porcelain=v2 |
Machine-parseable status |
gh pr list --search |
Search PRs by content |
gh issue view --json |
Structured issue data |
git merge-tree |
Dry-run merge conflict detection |
git log A..B |
Commits in B but not A |