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.
Git identity and GPG signing profile manager. An agent skill from sd0xdev/sd0x-harness.
$ npx skills add sd0xdev/sd0x-harness --skill git-profile -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install sd0xdev/sd0x-harness git-profile --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/sd0xdev/sd0x-harness.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/git-profile .claude/skills/git-profile && 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 "git-profile" agent skill from https://github.com/sd0xdev/sd0x-harness/tree/main/skills/git-profile into .claude/skills/git-profile/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "git-profile", 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/sd0xdev/sd0x-harness/tree/main/skills/git-profileType 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 sd0xdev/sd0x-harness --skill git-profile -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install sd0xdev/sd0x-harness git-profile --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/sd0xdev/sd0x-harness.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/git-profile .agents/skills/git-profile && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "git-profile" agent skill from https://github.com/sd0xdev/sd0x-harness/tree/main/skills/git-profile into .agents/skills/git-profile/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "git-profile", 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 sd0xdev/sd0x-harness --skill git-profile -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install sd0xdev/sd0x-harness git-profile --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/sd0xdev/sd0x-harness.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/git-profile .cursor/skills/git-profile && 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 "git-profile" agent skill from https://github.com/sd0xdev/sd0x-harness/tree/main/skills/git-profile into .cursor/skills/git-profile/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "git-profile", 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/sd0xdev/sd0x-harness.git --path skills/git-profile--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 sd0xdev/sd0x-harness --skill git-profile -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install sd0xdev/sd0x-harness git-profile --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/sd0xdev/sd0x-harness.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/git-profile .gemini/skills/git-profile && 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 "git-profile" agent skill from https://github.com/sd0xdev/sd0x-harness/tree/main/skills/git-profile into .gemini/skills/git-profile/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "git-profile", 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 sd0xdev/sd0x-harness git-profileInstalls 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 sd0xdev/sd0x-harness --skill git-profile -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/sd0xdev/sd0x-harness.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/git-profile .github/skills/git-profile && 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 "git-profile" agent skill from https://github.com/sd0xdev/sd0x-harness/tree/main/skills/git-profile into .github/skills/git-profile/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "git-profile", 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 sd0xdev/sd0x-harness --skill git-profile -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install sd0xdev/sd0x-harness git-profile --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/sd0xdev/sd0x-harness.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/git-profile .opencode/skills/git-profile && 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 "git-profile" agent skill from https://github.com/sd0xdev/sd0x-harness/tree/main/skills/git-profile into .opencode/skills/git-profile/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "git-profile", 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.
git-profileGit identity and GPG signing profile manager. An agent skill from sd0xdev/sd0x-harness.
Git Profile is an agent skill from sd0xdev/sd0x-harness. Git identity and GPG signing profile manager. Discovers profiles from GPG + git config, switches local identity, checks signing health. Use when: user says 'switch identity', 'git profile', 'check signing', 'gpg key status', 'which identity', or /git-profile
Its SKILL.md is about 1.5k tokens, which your agent loads only when the skill is triggered. The skill folder holds 2 other files, including scripts (for example `scripts/git-profile.sh`).
It sits in Development, covering Git workflow. It works with Git. The repository describes itself as: The harness layer for Claude Code — a reference implementation of harness engineering with hook-enforced dual review, state-machine gates that survive context compaction, and… The licence is MIT.
6 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit c9a2036. 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:
Bash(bash:*)Bash(git:*)ReadGrepGlobAskUserQuestionFrom allowed-tools in the SKILL.md frontmatter.
Ships 1 file in scripts/ (Shell), which the agent can run.
Shell commands in SKILL.md call:
bashFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md.
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.
Git Profile loads about 1.5k tokens when it runs. Until then it costs about 68 tokens; SKILL.md has 450 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 found no risky patterns in SKILL.md.
Automated 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); the scripts in this folder are not scanned.
The full file from sd0xdev/sd0x-harness at commit c9a2036, republished under its MIT licence (© sd0xdev). 450 words, ~1,486 tokens.
.claude/skills/git-profile/SKILL.md (or your agent's skills folder). This skill also uses 1 other file; get the full folder from GitHub.Manage git identity and GPG signing profiles per-repository.
sequenceDiagram
participant U as User
participant SK as SKILL.md
participant SH as git-profile.sh
participant AQ as AskUserQuestion
U->>SK: /git-profile [subcommand]
SK->>SK: Parse subcommand (default: doctor)
alt doctor (default)
SK->>SH: doctor
SH-->>SK: Diagnostic JSON
SK->>U: Health report table
end
alt list
SK->>SH: list
SH-->>SK: Profiles JSON
SK->>U: Profile table with current match
end
alt use <profile>
SK->>SH: resolve <profile>
SH-->>SK: Plan JSON + plan-hash
SK->>AQ: "Apply [hash] to local config?" / "Abort"
AQ-->>SK: Approved
SK->>SH: apply --plan-hash <hash>
SH-->>SK: Result JSON
SK->>U: Applied / Error
end
alt remove <profile>
SK->>SH: remove-check <profile>
SH-->>SK: Safety JSON (active repos list)
alt profile is active
SK->>AQ: "Profile active in N repos. Remove anyway?" / "Cancel"
end
SK->>SH: remove-exec <profile> [--force]
SH-->>SK: Result JSON
SK->>U: Removed / Error
end
alt verify
SK->>SH: verify
SH-->>SK: Verification JSON
SK->>U: Verification report
enddoctor (default)Run diagnostics on current repository's git identity and GPG signing config.
Steps:
bash scripts/run-skill.sh git-profile git-profile.sh doctor## Git Profile Health
| Item | Value | Source | Status |
|------|-------|--------|--------|
| Name | ... | ... | ... |
| Email | ... | ... | ... |
| Signing | ... | ... | ... |
| GPG Key | ... | ... | ... |
| Env Override | ... | ... | ... |
| Worktree | ... | ... | ... |
| Profile Match | ... | ... | ... |
Status: [overall status]status is halt: show the issue and stopstatus is warn: show warnings, continuelistList all registered profiles.
Steps:
bash scripts/run-skill.sh git-profile git-profile.sh listuse <profile>Switch the current repository to use a named profile.
Steps:
bash scripts/run-skill.sh git-profile git-profile.sh resolve <profile>## Apply Profile: <profile-id>
| Config Key | Current | New |
|------------|---------|-----|
| user.name | ... | ... |
| user.email | ... | ... |
| user.signingkey | ... | ... / (unset) |
| commit.gpgsign | ... | true / (unset) |
Note: Keyless profiles unset signing-related keys instead of setting them.AskUserQuestion with options:"Apply [<plan-hash>] to local config (Recommended)""Abort"bash scripts/run-skill.sh git-profile git-profile.sh apply --plan-hash <hash>remove <profile>Remove a profile from the registry.
Steps:
bash scripts/run-skill.sh git-profile git-profile.sh remove-check <profile>AskUserQuestion:"Profile is active in N repos. Remove with --force?""Cancel"bash scripts/run-skill.sh git-profile git-profile.sh remove-exec <profile> [--force]verifyDeep verification of current identity setup.
Steps:
bash scripts/run-skill.sh git-profile git-profile.sh verifyTriggered when: registry file is missing on first doctor run.
Steps:
bash scripts/run-skill.sh git-profile git-profile.sh discoverAskUserQuestion:"Save N discovered profiles to registry (Recommended)""Skip — I'll configure manually"| Rule | Description |
|---|---|
v1 NEVER writes ~/.gitconfig | Only --local scope writes |
v1 NEVER enables extensions.worktreeConfig | Linked worktree: detect + warn only |
| NEVER auto-fix without confirmation | All writes gated by AskUserQuestion |
| NEVER store key material | Registry stores fingerprints only |
| Plan-hash verification | Re-compute hash before apply; reject if stale |
| Atomic registry writes | temp file + chmod 0600 + mv |
The doctor --json output follows the Shared Diagnostic Contract (see tech spec section 3.2).
Other skills (e.g., /smart-commit Step 1c) can call:
bash scripts/run-skill.sh git-profile git-profile.sh doctor --jsonDegradation policy: If the script is not found or fails, the calling skill falls back to its own inline diagnostics. Infrastructure failure = warn-only; identity/signing missing = halt (unchanged).
© sd0xdev, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 1 other file (scripts) in skills/git-profile of sd0xdev/sd0x-harness.
Open the folder on GitHubat commit c9a2036
Git Profile 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 |
|---|---|---|---|---|---|---|
| Git Profile this skillsd0xdev/sd0x-harness | 192 | — | ~1.5k | Automated safety check: Pass | MIT | |
| Finishing a Development Branchobra/superpowers | 296k | 5 repos | ~1.9k | Automated safety check: Pass | MIT | |
| Code Design Rationale Investigatorcursor/plugins | 10k | 9 repos | ~2.6k | Automated safety check: Pass | None | |
| Contributor-First PR MergeHKUDS/OpenHarness | 16k | 1 repos | ~847 | Automated safety check: Pass | MIT | |
| Migrate Internal Package into GhostTryGhost/Ghost | 55k | — | ~3.8k | Automated safety check: Pass | MIT | |
| Create Pull Requestcline/cline | 70k | 1 repos | ~1.6k | 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.
cursor/plugins
Digs into why code is shaped the way it is by checking git history, pull requests and connected tools in parallel, then reporting a cited read on the tradeoffs.
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.
sd0xdev/sd0x-harness
Write an Architecture Decision Record (ADR) for a feature — Context / Decision / Status / Consequences / Alternatives, filed as docs/features/<feature/adr-<NNN-<title.md with a 3-digit zero-padded…
sd0xdev/sd0x-harness
Load GitHub PR review comments into AI session — analyze, triage, plan.
sd0xdev/sd0x-harness
Change-aware next step advisor. An agent skill from sd0xdev/sd0x-harness.
sd0xdev/sd0x-harness
Obsidian vault integration via official CLI. An agent skill from sd0xdev/sd0x-harness.
sd0xdev/sd0x-harness
Agent-driven workflow orchestration (v1 report-only). An agent skill from sd0xdev/sd0x-harness.
sd0xdev/sd0x-harness
Post friendly review comments to a GitHub PR — prepare locally, preview, then submit as atomic review.
Works with
Categories
Git identity and GPG signing profile manager. An agent skill from sd0xdev/sd0x-harness. Git Profile is an agent skill from sd0xdev/sd0x-harness. Git identity and GPG signing profile manager.
Git Profile fits situations like: : user says switch identity; tasks that involve Git workflow.
Run `npx skills add sd0xdev/sd0x-harness --skill git-profile -a claude-code`. Or copy the skill folder (skills/git-profile in sd0xdev/sd0x-harness) into .claude/skills/git-profile in your project. Claude Code loads it when a task matches its description.
Run `npx skills add sd0xdev/sd0x-harness --skill git-profile -a codex`. Or copy the skill folder (skills/git-profile in sd0xdev/sd0x-harness) into .agents/skills/git-profile 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 sd0xdev/sd0x-harness --skill git-profile -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/git-profile, .gemini/skills/git-profile, .github/skills/git-profile and .opencode/skills/git-profile in your project.
Going by SKILL.md and its folder, Git Profile needs a shell for the scripts in its folder and the command-line tools its instructions call (bash). Our summary lists: A Bash shell. Its frontmatter pre-approves these tools: Bash(bash:*), Bash(git:*), Read, Grep, Glob, AskUserQuestion.
SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. The check reads SKILL.md only: the scripts in the folder are not scanned, so read them before running anything.
Git Profile is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 1.5k tokens (SKILL.md is roughly 5.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 Git Profile: Finishing a Development Branch (obra/superpowers, 296k stars), Code Design Rationale Investigator (cursor/plugins, 10k stars), Contributor-First PR Merge (HKUDS/OpenHarness, 16k stars) and Migrate Internal Package into Ghost (TryGhost/Ghost, 55k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
sd0xdev (a GitHub user) maintains it in sd0xdev/sd0x-harness, which has 192 GitHub stars. The repository holds 91 skills in this directory. The repository was last updated on October 6, 2026.
Source: sd0xdev/sd0x-harness on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.