Finishing a Development Branch
obra/superpowers
Walks the last step of a branch: confirm tests pass, detect the git environment, ask how to integrate, carry out your choice and clean up the worktree.
Resolve merge conflicts in the current branch. An agent skill from deepklarity/harness-kit.
$ npx skills add deepklarity/harness-kit --skill hk-merge-resolve -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install deepklarity/harness-kit hk-merge-resolve --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/deepklarity/harness-kit.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.claude/skills/hk-merge-resolve .claude/skills/hk-merge-resolve && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "hk-merge-resolve" agent skill from https://github.com/deepklarity/harness-kit/tree/main/.claude/skills/hk-merge-resolve into .claude/skills/hk-merge-resolve/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "hk-merge-resolve", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/deepklarity/harness-kit/tree/main/.claude/skills/hk-merge-resolveType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add deepklarity/harness-kit --skill hk-merge-resolve -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install deepklarity/harness-kit hk-merge-resolve --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/deepklarity/harness-kit.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.claude/skills/hk-merge-resolve .agents/skills/hk-merge-resolve && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "hk-merge-resolve" agent skill from https://github.com/deepklarity/harness-kit/tree/main/.claude/skills/hk-merge-resolve into .agents/skills/hk-merge-resolve/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "hk-merge-resolve", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add deepklarity/harness-kit --skill hk-merge-resolve -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install deepklarity/harness-kit hk-merge-resolve --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/deepklarity/harness-kit.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.claude/skills/hk-merge-resolve .cursor/skills/hk-merge-resolve && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "hk-merge-resolve" agent skill from https://github.com/deepklarity/harness-kit/tree/main/.claude/skills/hk-merge-resolve into .cursor/skills/hk-merge-resolve/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "hk-merge-resolve", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/deepklarity/harness-kit.git --path .claude/skills/hk-merge-resolve--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add deepklarity/harness-kit --skill hk-merge-resolve -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install deepklarity/harness-kit hk-merge-resolve --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/deepklarity/harness-kit.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.claude/skills/hk-merge-resolve .gemini/skills/hk-merge-resolve && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "hk-merge-resolve" agent skill from https://github.com/deepklarity/harness-kit/tree/main/.claude/skills/hk-merge-resolve into .gemini/skills/hk-merge-resolve/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "hk-merge-resolve", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install deepklarity/harness-kit hk-merge-resolveInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add deepklarity/harness-kit --skill hk-merge-resolve -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/deepklarity/harness-kit.git skills-src && mkdir -p .github/skills && cp -r skills-src/.claude/skills/hk-merge-resolve .github/skills/hk-merge-resolve && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "hk-merge-resolve" agent skill from https://github.com/deepklarity/harness-kit/tree/main/.claude/skills/hk-merge-resolve into .github/skills/hk-merge-resolve/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "hk-merge-resolve", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add deepklarity/harness-kit --skill hk-merge-resolve -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install deepklarity/harness-kit hk-merge-resolve --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/deepklarity/harness-kit.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.claude/skills/hk-merge-resolve .opencode/skills/hk-merge-resolve && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "hk-merge-resolve" agent skill from https://github.com/deepklarity/harness-kit/tree/main/.claude/skills/hk-merge-resolve into .opencode/skills/hk-merge-resolve/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "hk-merge-resolve", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
hk-merge-resolveResolve merge conflicts in the current branch. An agent skill from deepklarity/harness-kit.
Hk Merge Resolve is an agent skill from deepklarity/harness-kit. Resolve merge conflicts in the current branch. Only invoke when the user explicitly runs /hk-merge-resolve. Do NOT auto-trigger on mentions of merge conflicts, conflict markers, or similar keywords.
Its SKILL.md is about 2.2k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.
It sits in Development, covering Git workflow. It works with Git. The repository describes itself as: A kit for building with AI agents and also the engineering patterns around it. The licence is MIT.
4 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit 87305cd. It shows what the files ask for, not the result of running them.
Pre-approves these tools, so the agent can use them without asking each time:
BashReadEditGrepGlobAskUserQuestionFrom allowed-tools in the SKILL.md frontmatter.
Shell commands in SKILL.md call:
gitpythonnpmFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md. Its commands use git and npm, which can reach the network depending on how they are called.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Hk Merge Resolve loads about 2.2k tokens when it runs. Until then it costs about 54 tokens; SKILL.md has 1,101 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check noted patterns worth knowing about, such as sudo or a known installer.
allowed-tools: Bash, Read, Edit, Grep, Glob, AskUserQuestionAutomated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from deepklarity/harness-kit at commit 87305cd, republished under its MIT licence (© deepklarity). 1,101 words, ~2,222 tokens.
.claude/skills/hk-merge-resolve/SKILL.md (or your agent's skills folder).Your job is to resolve all merge conflicts in the current branch of the current repo.
Conflicts can come from many sources — git merge, git rebase, git stash pop, git cherry-pick, or any operation that combines divergent changes. This skill handles all of them.
Before changing anything, understand what state git is in and what caused the conflicts.
Snapshot the state — Run these to understand what's happening:
git status
git rev-parse HEADPrint the HEAD sha to the user: "Safety checkpoint: HEAD is at <sha>."
Identify the conflict source — Check which operation is in progress:
git rev-parse MERGE_HEAD 2>/dev/null → merge in progresstest -d .git/rebase-merge || test -d .git/rebase-apply → rebase in progressgit stash list + check git status for "Unmerged paths" without MERGE_HEAD → stash pop conflictThis matters because the abort/recovery command differs:
| Source | Abort command |
|---|---|
| merge | git merge --abort |
| rebase | git rebase --abort |
| cherry-pick | git cherry-pick --abort |
| stash pop | git checkout -- . (stash stays in list, nothing lost) |
Print the appropriate abort command to the user so they have an escape hatch.
Protect unstashed work — If there are uncommitted changes beyond the conflicted files (tracked modified files that aren't part of the conflict), warn the user. These are at risk during resolution. Suggest committing or stashing them separately before proceeding, and wait for confirmation.
Do NOT blindly git stash when conflicts are already present — git won't allow it, and if the conflicts came from a stash pop, the user's changes are already in the working tree as the conflicted content. Stashing again would lose them.
Understand what both sides of the conflict were trying to do:
Identify the two sides — Based on the conflict source:
Understanding which side is which is critical — especially for stash pop conflicts where "theirs" is the user's own work and should generally be preserved.
Find all conflicts — Use Grep to search for <<<<<<< across the repo. This gives you the full list of files and locations.
Triage — Group conflicts before diving in:
For each conflicted file, read the file (or at minimum the conflicted region with surrounding context), then decide:
For stash pop conflicts: The user's stashed changes are their in-progress work. Default to preserving the user's intent — their local changes are the "important" side. The pulled/merged content is the "environment" that the user's work needs to be adapted to.
Correctness matters more than cleverness. When combining:
For each conflict:
<<<<<<<, =======, >>>>>>>)git add <file>After resolving all conflicts in a file, do a quick sanity check: does the file still make sense? Are imports consistent? Are there dangling references?
After all conflicts are resolved, verification is mandatory, not optional. A merge that compiles is not a merge that works.
git diff --check # No conflict markers remain
grep -rn '<<<<<<<' . # Belt-and-suspenders: grep for stray markersIf either finds markers, go back and fix them before proceeding.
Check which parts of the monorepo were touched by the merge. Run:
# For merge: diff between merge base and current state
git diff --name-only $(git merge-base HEAD MERGE_HEAD) HEAD 2>/dev/null || \
git diff --name-only HEAD~1 HEAD # fallback for rebase/cherry-pickMap changed files to projects:
| Path prefix | Project | Check commands |
|---|---|---|
taskit/taskit-frontend/ | Frontend | npm run build (TypeScript + Vite), npm run lint |
taskit/taskit-backend/ | Backend | `cd taskit/taskit-backend && python manage.py check --deploy 2>/dev/null |
odin/ | Odin | cd odin && python -m pytest tests/unit/ -v |
harness_usage_status/ | Harness Usage | cd harness_usage_status && python -m pytest tests/ -v 2>/dev/null |
Run only the checks for projects that had conflicted files or files changed by the merge. Do not run checks for unaffected projects — that wastes time and may surface pre-existing issues unrelated to the merge.
Execution order:
For each check:
Frontend-specific (most common merge casualty in this repo):
cd taskit/taskit-frontend && npm run buildThis runs TypeScript type-checking AND Vite bundling — it catches duplicate imports, missing exports, type mismatches, and broken references. This single command is the highest-value check for frontend merges.
Backend-specific:
cd taskit/taskit-backend && python manage.py checkCatches model inconsistencies, migration conflicts, and configuration problems.
Odin-specific:
cd odin && python -m pytest tests/unit/ -v --tb=shortFast unit tests only. Mock and integration tests are too slow for merge verification.
After all checks complete, print a summary:
Merge verification:
✓ No conflict markers remaining
✓ Frontend build passed (TypeScript + Vite)
✓ Frontend lint passed
✗ Backend check failed — missing migration (see output above)
— Odin tests skipped (no odin/ files in merge)If any check failed due to the merge, fix it before completing the merge operation (git merge --continue, git rebase --continue, etc.). Do NOT finalize a merge with known check failures — that defeats the purpose of conflict resolution.
Only after all checks pass (or pre-existing failures are identified and noted):
git commit (git usually has the merge commit staged already)git rebase --continuegit cherry-pick --continueAsk the user before running the finalization command.
If a conflict involves complex logic where both sides made substantial changes to the same code, and you're not confident about the correct resolution — stop and ask.
Show the user:
Then wait for confirmation before editing. A wrong merge is worse than a slow merge.
© deepklarity, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
Just SKILL.md in .claude/skills/hk-merge-resolve of deepklarity/harness-kit.
Open the folder on GitHubat commit 87305cd
Hk Merge Resolve next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Hk Merge Resolve this skilldeepklarity/harness-kit | 100 | — | ~2.2k | Automated safety check: Notes | MIT | |
| Finishing a Development Branchobra/superpowers | 297k | 5 repos | ~1.9k | Automated safety check: Pass | MIT | |
| Contributor-First PR MergeHKUDS/OpenHarness | 16k | 1 repos | ~847 | Automated safety check: Pass | MIT | |
| Migrate Internal Package into GhostTryGhost/Ghost | 56k | — | ~3.8k | Automated safety check: Pass | MIT | |
| Create Pull Requestcline/cline | 70k | 1 repos | ~1.6k | Automated safety check: Pass | Apache-2.0 | |
| Git Merge Conflict Resolvertailcallhq/forgecode | 7.6k | 1 repos | ~4.5k | Automated safety check: Pass | Apache-2.0 |
obra/superpowers
Walks the last step of a branch: confirm tests pass, detect the git environment, ask how to integrate, carry out your choice and clean up the worktree.
HKUDS/OpenHarness
Merges external GitHub pull requests while keeping the original author credited, and fixes conflicts after the merge instead of rewriting the contribution.
TryGhost/Ghost
Moves a package from another TryGhost repository into Ghost as an internal workspace package while keeping its Git history, with checkpoints for the steps that need an administrator.
cline/cline
Opens a GitHub pull request from your current branch with the gh CLI, after reviewing the commits and diff and gathering the details the PR needs.
tailcallhq/forgecode
Resolves Git merge conflicts with a plan-first workflow that keeps both sides' intent, regenerates lock files and backs up deleted-but-modified files.
makeplane/plane
Names a new Git branch with a type prefix, the lowercased work item ID and a short kebab-case description, so the ID can be extracted later from the branch name.
deepklarity/harness-kit
Create new skills, modify and improve existing skills, and measure skill performance.
deepklarity/harness-kit
Run comprehensive agent-native architecture review with scored principles.
deepklarity/harness-kit
Mock-first, layer-by-layer feature development. An agent skill from deepklarity/harness-kit.
deepklarity/harness-kit
Audit whether an AI agent can autonomously close the loop on problems in a given area — from discovering a symptom to verifying a fix — without human intervention.
deepklarity/harness-kit
Traces a workflow end-to-end through the harness-kit monorepo and creates a breadcrumb analysis doc in docs/breadcrumbanalysis/.
deepklarity/harness-kit
Generate changelog entries from git diffs, prepend to CHANGELOG.md, and optionally commit + PR.
Works with
Categories
Resolve merge conflicts in the current branch. An agent skill from deepklarity/harness-kit. Hk Merge Resolve is an agent skill from deepklarity/harness-kit. Resolve merge conflicts in the current branch.
Hk Merge Resolve fits situations like: explicitly runs /hk-merge-resolve; mentions of merge conflicts; conflict markers; similar keywords.
Run `npx skills add deepklarity/harness-kit --skill hk-merge-resolve -a claude-code`. Or copy the skill folder (.claude/skills/hk-merge-resolve in deepklarity/harness-kit) into .claude/skills/hk-merge-resolve in your project. Claude Code loads it when a task matches its description.
Run `npx skills add deepklarity/harness-kit --skill hk-merge-resolve -a codex`. Or copy the skill folder (.claude/skills/hk-merge-resolve in deepklarity/harness-kit) into .agents/skills/hk-merge-resolve in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add deepklarity/harness-kit --skill hk-merge-resolve -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/hk-merge-resolve, .gemini/skills/hk-merge-resolve, .github/skills/hk-merge-resolve and .opencode/skills/hk-merge-resolve in your project.
Going by SKILL.md and its folder, Hk Merge Resolve needs the command-line tools its instructions call (git, python and npm). Our summary lists: Python 3. Its frontmatter pre-approves these tools: Bash, Read, Edit, Grep, Glob, AskUserQuestion.
SKILL.md contains no URLs. Its commands use git and npm, which can reach the network depending on how they are called. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found notes only (pre-approves every shell command (allowed-tools: bash)), nothing it rates as a warning. It is not a guarantee. Review the folder before installing.
Hk Merge Resolve is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 2.2k tokens (SKILL.md is roughly 8.9k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Hk Merge Resolve: Finishing a Development Branch (obra/superpowers, 297k stars), Contributor-First PR Merge (HKUDS/OpenHarness, 16k stars), Migrate Internal Package into Ghost (TryGhost/Ghost, 56k stars) and Create Pull Request (cline/cline, 70k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
deepklarity (a GitHub organization) maintains it in deepklarity/harness-kit, which has 100 GitHub stars. The repository holds 18 skills in this directory. The repository was last updated on July 15, 2026.
Source: deepklarity/harness-kit on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.