Skip to content
Development
Skill

/git-profile

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

From plugin
sd0x-dev-flow
195102 skills16 agents5 hooks

Claude Code

$ npx -y skills add sd0xdev/sd0x-harness --skill git-profile --agent claude-code

SKILL.md

git-profile.SKILL.md
name: git-profile
description: "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"
allowed-tools: Bash(bash:*), Bash(git:*), Read, Grep, Glob, AskUserQuestion
argument-hint: "[doctor|list|use <profile>|remove <profile>|verify]"

Git Profile Manager

Manage git identity and GPG signing profiles per-repository.

Workflow

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
    end

Subcommands

`doctor` (default)

Run diagnostics on current repository's git identity and GPG signing config.

**Steps:** 1. Run: `bash scripts/run-skill.sh git-profile git-profile.sh doctor` 2. Parse the JSON output 3. Render a health report table:

## Git Profile Health

| Item | Value | Source | Status |
|------|-------|--------|--------|
| Name | ... | ... | ... |
| Email | ... | ... | ... |
| Signing | ... | ... | ... |
| GPG Key | ... | ... | ... |
| Env Override | ... | ... | ... |
| Worktree | ... | ... | ... |
| Profile Match | ... | ... | ... |

Status: [overall status]

1. If `status` is `halt`: show the issue and stop 2. If `status` is `warn`: show warnings, continue 3. If registry is missing AND this is the first run: trigger auto-discovery (see below)

`list`

List all registered profiles.

**Steps:** 1. Run: `bash scripts/run-skill.sh git-profile git-profile.sh list` 2. Parse the JSON output 3. Render a profile table with a marker on the currently matched profile

`use <profile>`

Switch the current repository to use a named profile.

**Steps:** 1. Run: `bash scripts/run-skill.sh git-profile git-profile.sh resolve <profile>` 2. Parse the plan JSON — contains profile data, planned commands, and plan-hash 3. Show the user what will be written:

## 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.

1. Use `AskUserQuestion` with options:

  • `"Apply [<plan-hash>] to local config (Recommended)"`
  • `"Abort"`

2. On approval: `bash scripts/run-skill.sh git-profile git-profile.sh apply --plan-hash <hash>` 3. Parse result; if error (hash mismatch, write failure) report and stop 4. On success: report applied config

`remove <profile>`

Remove a profile from the registry.

**Steps:** 1. Run: `bash scripts/run-skill.sh git-profile git-profile.sh remove-check <profile>` 2. If profile is active in any repo, use `AskUserQuestion`:

  • `"Profile is active in N repos. Remove with --force?"`
  • `"Cancel"`

3. On approval: `bash scripts/run-skill.sh git-profile git-profile.sh remove-exec <profile> [--force]` 4. Report result

`verify`

Deep verification of current identity setup.

**Steps:** 1. Run: `bash scripts/run-skill.sh git-profile git-profile.sh verify` 2. Parse the verification JSON 3. Render verification report with checks:

  • Key expiry (90-day warning threshold)
  • Email match between git config and GPG key UID
  • Registry consistency

Auto-Discovery

Triggered when: registry file is missing on first `doctor` run.

**Steps:** 1. Run: `bash scripts/run-skill.sh git-profile git-profile.sh discover` 2. Parse candidates JSON 3. Present candidates to user via `AskUserQuestion`:

  • `"Save N discovered profiles to registry (Recommended)"`
  • `"Skip — I'll configure manually"`

4. If approved, the discover command already persisted them; confirm to user 5. If skipped, create an empty registry to avoid re-prompting

Safety Rules

| 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` |

Diagnostic Integration

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 --json

**Degradation 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).

Read more
@sd0xdev
Ships withsd0x-dev-flow

Language: English | 繁體中文 | 简体中文 | 日本語 | 한국어 | Español The harness layer for Claude Code. Let the model choose the path. Keep "done" verifiable. Claude has discretion inside a closed, test-pinned anchor set.

195102 skills16 agents
Get the whole plugin

Stars on GitHub

Momentum

stars in total
195
Star history of sd0xdev/sd0x-dev-flow on GitHub, a chart by star-history.com

Other skills on sd0x-dev-flow.

adr

adr

Write an Architecture Decision Record (ADR) for a feature — Context / Decision / Status / Consequences / Alternatives, filed as…

agentctl-setup

agentctl-setup

Install and set up the optional agentctl mod (task scope, refusal before execution, evidence that goes stale, model-free…

architecture

architecture

Architecture design and documentation. Produces 3-architecture.md with component diagrams, data flow, integration points, and…

ask

ask

Context-aware Q&A with auto context gathering. Use when: user has a quick question about codebase, git history, rules, docs, or…

best-practices

best-practices

Industry best practices conformance audit with mandatory adversarial debate. Produces audit artifact: verdict (OK/WARN/FAIL) +…

bug-fix

bug-fix

Bug fix workflow. Use when: fixing bugs, resolving issues, regression fixes. Not for: new features (use feature-dev),…

More skills from other plugins.

brainstorming
Auto-invoked

brainstorming

You MUST use this before any creative work - creating features, building components, adding functionality, modifying behavior, or…

@obra@obraInstall Skill
ask-matt

ask-matt

Ask which skill or flow fits your situation. A router over the skills in this repo.

skills2w309k
@mattpocock@mattpocockInstall Skill
accessibility
Auto-invoked

accessibility

Design, implement, and audit accessible UI to WCAG 2.2 Level AA across Web, iOS, and Android — semantic ARIA roles and labels,…

ecc2w293k
@affaan-m@affaan-mInstall Skill
compiler-commit

compiler-commit

Use when you want to verify compiler changes and commit with the correct convention. Runs tests, lint, and format, then commits…

react5d252k
@facebook@facebookInstall Skill

Questions about git-profile.

Which coding agents can use git-profile?
git-profile installs in Claude Code, Codex, Cursor, Gemini CLI, GitHub Copilot, OpenCode and Windsurf with the skills CLI, using each agent's flag shown on this page. Flowy's auto-invocation, which fires a skill when your prompt matches, runs in Claude Code only.