skills/manual-branch-integrator/SKILL.md
Manually integrate Git branch work without blind mechanical merges. Use when merging, transplanting, or refactoring branch work; resolving conflicts; preserving source-branch intent in a clean current-branch structure; or auditing that source additions, removals, tests, and docs landed intentionally.
npx skillsauth add sjunepark/custom-skills manual-branch-integratorInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Integrate branch intent, not just patches. Prefer Git's merge machinery as a draft, then edit, refactor, audit, validate, and report the deliberate result.
Use clear branch terms throughout the task: the current HEAD branch is the destination branch, and <source> is the branch being integrated into it. If the user says "target branch" ambiguously, confirm whether they mean the source branch to merge or the destination branch to receive the work.
Preflight the repository.
Confirm the current destination branch, source branch, and whether the user wants whole-branch integration or partial adoption.
Check state before modifying anything:
git status --short --branch
git merge-base HEAD <source>
git log --oneline --decorate --left-right --cherry-pick HEAD...<source>
Refuse or ask before proceeding if unrelated uncommitted changes are present, if a merge/rebase is already in progress, or if the source branch is ambiguous.
Record the merge base for the final report.
Build a source commit-intent ledger.
Inspect every source commit from the merge base to the source branch, in order:
git log --reverse --oneline <base>..<source>
git show --stat --patch <commit>
For each commit, record:
Treat deletions as first-class source intent. Removed UI text, helpers, fields, tests, diagnostics, compatibility paths, and summaries must be integrated or explicitly rejected.
Choose the integration mode.
Default for whole-branch integration:
git merge --no-commit --no-ff <source>
Treat the merge result as a draft, not an answer. Do not commit until conflicts are resolved, residual differences are classified, deletion greps are complete, and validation has run.
Resolve conflicts by understanding both branches. Preserve current-branch behavior unless the source branch intentionally changes it. Refactor append-style conflict results into one coherent current-branch structure.
Ask before choosing between two plausible product behaviors.
Use pure manual transplant only when explicitly appropriate: partial adoption, intentionally linear history, source branch work that should not be recorded as merged, or a merge draft that would import broad unrelated history. Document why the merge-as-draft default was not used.
Map renamed or refactored paths.
source: app/renderer/workflow/ui/canvas/NodeSessionDialog.svelte
current: app/renderer/workflow/ui/canvas/CanvasNodeDetailsDialog.svelte
reason: current branch extracted a shared dialog frame and renamed the details dialog
Integrate deliberately.
Audit residual differences against the source branch.
After integration, compare the result to the source branch:
git diff --stat <source>
git diff --name-status <source>
git diff <source> -- <relevant-or-mapped-files>
Classify every meaningful residual difference as one of:
Do not report completion while any meaningful residual difference is unclassified.
Run deletion grep audits.
For every behavior removed by the source branch, grep the current tree for names, labels, tests, helpers, fields, and distinctive strings that would reveal a missed deletion.
Example:
rg "item\.summary|messageSummary|chars|blocks ·" app tests
Record whether each pattern is absent, still present for an intentional reason, or a missed source deletion that must be fixed before completion.
Validate.
Run relevant checks from existing repo scripts. Prefer targeted tests first, then broader checks when practical.
In JavaScript/TypeScript repos, likely commands include:
bun run check
bun run test
bun run lint
bun run build
If broad checks fail because of unrelated existing issues, run targeted validation and clearly separate unrelated failures from integration failures.
Final report.
development
Long-running systematic codebase review with a persistent ledger in reviews/. Use to plan review areas, continue the next review pass, check campaign status, triage findings with the user, or apply auto-tier fixes. Modes: plan, continue, status, triage, fix (default continue).
development
Use when the user wants to design, redesign, shape, critique, audit, polish, clarify, distill, harden, optimize, adapt, animate, colorize, extract, or improve a frontend interface. Covers websites, landing pages, dashboards, product UI, app shells, components, forms, settings, onboarding, empty states, UX review, visual hierarchy, information architecture, accessibility, performance, responsive behavior, theming, typography, spacing, layout, color, motion, micro-interactions, UX copy, error states, edge cases, i18n, design systems, tokens, live browser iteration, and ambitious visual effects. Not for backend-only or non-UI tasks.
testing
Prepare, audit, set up, and guide Release Please releases. Use when releasing, preparing or reviewing a release PR, adding Release Please, classifying SemVer impact or breaking changes, writing Release Please-compatible Conventional Commit guidance, or documenting release criteria. Release work requires existing Release Please config; setup requires an explicit setup request.
development
Teach how code, a subsystem, architecture area, feature flow, module, API/data boundary, or relevant technical concept works for reviewers and maintainers. Use when the user asks to understand code or concepts; focus on design, responsibilities, contracts, data flow, invariants, tradeoffs, and maintenance implications, not syntax or line-by-line execution. Use `change-explainer` for diffs, commits, or patches.