adr
Write an Architecture Decision Record (ADR) for a feature — Context / Decision / Status / Consequences / Alternatives, filed as…
Pre-merge analysis and preparation. Analyzes source branch vs target branch: commit stats, conflict detection, file impact. Analysis-only v1 — outputs report + suggested commands, does not auto-merge. Use when: user says 'merge prep', 'pre-merge', 'merge analysis', or /merge-prep
$ npx -y skills add sd0xdev/sd0x-dev-flow --skill merge-prep --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/merge-prepContext preview
The summary Claude sees to decide when to auto-load this skill.
Pre-merge analysis and preparation. Analyzes source branch vs target branch: commit stats, conflict detection, file impact. Analysis-only v1 — outputs report + suggested commands, does not auto-merge. Use when: user says 'merge prep', 'pre-merge', 'merge analysis', or /merge-prep
name: merge-prep description: "Pre-merge analysis and preparation. Analyzes source branch vs target branch: commit stats, conflict detection, file impact. Analysis-only v1 — outputs report + suggested commands, does not auto-merge. Use when: user says 'merge prep', 'pre-merge', 'merge analysis', or /merge-prep" allowed-tools: Bash(git:*), Read, Grep, Glob
Analyze source branch vs target branch, detect conflicts, output analysis report with suggested commands. **v1 is analysis-only** — does not execute merge/commit/push.
| Scenario | Use Instead | |----------|-------------| | Commit code (not merge) | `/smart-commit` | | Merge to main (production) | Manual PR flow | | Just view diff | `git diff <target>..<branch>` | | Rebase or squash | Manual operation |
`/merge-prep <source-branch> [--target <branch>]`
sequenceDiagram
participant C as Claude
participant U as User
C->>C: Step 1: Validate prerequisites
C->>C: Step 2: Pre-merge analysis
C->>U: Show analysis report
U->>C: Acknowledge
C->>C: Step 3: Conflict analysis (if any)
C->>U: Show conflict details + resolution suggestions
C->>C: Step 4: Generate merge commands
C->>U: Output commands for manual execution# 1a. Verify source branch exists git rev-parse --verify <branch> # 1b. Verify target branch exists git rev-parse --verify <target> # 1c. Verify working tree is clean git status --porcelain
| Check | Failure Action | |-------|---------------| | Branch doesn't exist | Halt, list available branches | | Target not found | Halt, suggest creating it | | Uncommitted changes | Halt, suggest `/smart-commit` first |
Run the analysis script:
bash skills/merge-prep/scripts/pre-merge-check.sh <branch> [target]
Script outputs JSON containing:
Display analysis report:
## Pre-merge Analysis | Item | Value | |------|-------| | Source branch | feat/new-feature | | Target branch | main | | Common ancestor | b03ad72a | | New commits | 12 | | Affected files | 46 | | Predicted conflicts | 9 files | ### Recent Commits | Hash | Message | |------|---------| | abc1234 | feat: Add new API endpoint | | def5678 | test: Add integration tests |
For each conflict file, analyze commit history to determine conflict pattern:
| Pattern | Detection | Suggested Strategy | |---------|-----------|-------------------| | Iterative (v1→v3) | Both sides changed, source is superset | Take source | | Parallel modification | Different people changed different logic | Per-hunk selection | | Hotfix conflict | Target has hotfix merge, source doesn't | Take target | | Doc add/add | Both sides added same-name file | Take source |
Display resolution suggestions:
### Conflict Files | # | File | Pattern | Suggestion | Reason | |---|------|---------|------------|--------| | 1 | src/xxx.ts | Iterative | Take source | v3 includes all v1 changes | | 2 | src/yyy.ts | Parallel | Per-hunk | Two sides changed different functions | | 3 | docs/zzz.md | add/add | Take source | Target version is outdated |
Output commands for manual execution:
## Suggested Merge Commands ### Option A: Merge commit (recommended) ```bash git checkout <target> git pull --ff-only origin <target> git merge <source> --no-ff # Resolve conflicts if any # git add <resolved-files> # git commit git push origin <target>
git checkout <target> git pull --ff-only origin <target> git merge --squash <source> git commit -m "merge: Merge <source> into <target>" git push origin <target>
### Step 5: Summary ```markdown ## Merge Summary | Item | Value | |------|-------| | Source | feat/new-feature | | Target | main | | Commits | 12 | | Files | 46 | | Conflicts | 9 (resolution suggestions provided) | | Tickets | PROJ-520, PROJ-123 | ⚠️ This is an analysis-only report. Execute the commands manually.
Supports `/merge-prep branch1 branch2 branch3 --target develop`:
1. Analyze each branch sequentially 2. Output combined summary 3. Suggest merge order (fewest conflicts first)
| File | Purpose | When to Read | |------|---------|-------------| | [pre-merge-check.sh](scripts/pre-merge-check.sh) | Pre-merge analysis script | Step 2 |
Language: English | 繁體中文 | 简体中文 | 日本語 | 한국어 | Español The harness layer for Claude Code. Let the model choose the path. Keep "done" verifiable. Full control plane on Claude Code. Skills-only distribution for Codex CLI and other compatible agents.
Repo: sd0xdev/sd0x-dev-flow
Write an Architecture Decision Record (ADR) for a feature — Context / Decision / Status / Consequences / Alternatives, filed as…
Architecture design and documentation. Produces 3-architecture.md with component diagrams, data flow, integration points, and architecture decisions. Reads…
Context-aware Q&A with auto context gathering. Use when: user has a quick question about codebase, git history, rules, docs, or skills during development. Not…
Industry best practices conformance audit with mandatory adversarial debate. Produces audit artifact: verdict (OK/WARN/FAIL) + gap roadmap + debate proof. Use…
Bug fix workflow. Use when: fixing bugs, resolving issues, regression fixes. Not for: new features (use feature-dev), understanding code (use code-explore).…
Bump package and plugin version in sync. Updates package.json, .claude-plugin/plugin.json, and install-state manifest to the same version. Use when: user says…