AutoGineer summary
Written by AutoGineer from the skill’s own files, not by the author
The git-setup skill provides a structured, read-only audit of a user's Git configuration. It identifies missing or unset values for identity, text editors, and diff/merge tools. It proposes non-destructive, logical remediation steps that the user must explicitly confirm before any changes are applied. The skill is designed to be safe, avoiding any modification to existing custom settings or remote repository configurations, and only addresses advanced topics like GPG/SSH signing or safe.directory entries when specifically requested or required by error conditions.
What it does
- Audits current Git configuration using a single read-only command.
- Identifies gaps in identity, editor, and diff/merge tool settings.
- Generates clear, human-auditable bash commands for remediation.
- Requires explicit user confirmation before applying any configuration changes.
- Provides verification of applied settings with before-and-after summaries.
- Offers optional, context-aware help for commit signing and safe.directory issues.
When to use it
- When setting up a new development workstation.
- When verifying that Git is correctly configured for a new project.
- When encountering Git configuration errors related to identity or missing tools.
- When needing to standardize Git editor and merge tool settings across environments.
Advantages
- Non-destructive: preserves existing custom configurations.
- Transparent: provides clear, readable commands before execution.
- Safe: requires explicit user approval for every change group.
- Focused: avoids unnecessary complexity by only addressing requested or missing items.
Usage examples
- “Check my git configuration and fix any missing identity or editor settings.”
- The agent audits the current config, identifies missing user.name, user.email, or editor settings, and presents a table followed by a confirmation prompt to apply the fixes.
- “I am getting an unsafe-repository error, can you help?”
- The agent recognizes the error context, audits the safe.directory settings, and proposes the correct command to add the current path to the safe list.
Install
Download the skill as a ZIP:
https://autogineer.com/agent-skills/microsoft/git-setup/downloadUnzip it into the cross-client skills folder of your project:
mkdir -p .agents/skills && unzip git-setup.zip -d .agents/skills
Documentation by Microsoft
Git Setup
Goal
Help the user configure Git consistently for everyday work (add, commit, fetch, pull, push) without overwriting preferred settings. Verify current values before suggesting changes, and never modify configuration without explicit confirmation.
Scope:
Identity:
user.nameanduser.emailare set.Editing, diff, and merge tooling is configured when currently unset.
Commit signing (GPG or SSH) help happens only when the user asks for it or reports a signing error.
A
safe.directoryentry is proposed only when the user reports a Git ownership or unsafe-repository error.Existing customizations stay intact; never downgrade or remove settings.
Flow
Audit the current configuration with exactly one command:
git config --list --show-origin. It captures values and their source files. Run no other lookup,gpg, orssh-keygencommand during the audit.Report gaps and desirable improvements from that output.
Propose minimal remediation commands, grouped logically.
Ask for confirmation per group before applying it, and apply only confirmed groups.
Verify applied settings with single
git config --get <key>reads and show a before and after summary.Summarize applied changes and remaining optional improvements.
Detection
Classify each area from the baseline output only, in this order:
Identity: parse
user.nameanduser.emailand note each scope from its origin path. Mark a value missing when no scope sets it.Commit signing (passive scan): parse
commit.gpgSign,gpg.format, anduser.signingkey, and classify the result for display only:Disabled:
commit.gpgSignis false or unset.Configured candidate: signing is true and both
gpg.formatanduser.signingkeyare present.Incomplete: signing is true but
gpg.formatoruser.signingkeyis missing.Not configured: all three are unset.
Editor and tools: parse
core.editor,diff.tool, andmerge.tool, and mark each missing value as a gap.Safe directory: note whether any
safe.directoryentry includes the current repository path.Line endings: parse
core.autocrlfandcore.eol, and flag them only when both are unset and the user mentions cross-platform needs.
Proposals
Build a remediation group for each identity or editor and tooling gap, with the rationale, exact commands, and expected effect.
Build a signing group only when the user asks about signing, wants to enable or disable it, or reports a signing verification error.
Build a safe-directory group only when the user reports an unsafe-repository error from Git.
Offer line-ending settings only when the user mentions cross-platform concerns.
Write each command on its own line, directly runnable and human-auditable, with no chaining through
&&,;, pipes, or subshells. Idempotent commands are acceptable when the user confirms them.When one specific value needs clarification later, propose a single follow-up
git config --get <key>after user confirmation rather than a batch.Propose, but do not run,
gpg --list-secret-keysonly when signing is enabled or the user wants to enable signing and is unsure which keys exist.Propose key generation only when the user opts into signing and the configuration shows no usable key.
Never push, fetch, pull, or alter remotes, and never show secrets or private key content. Redact the email only when the user asks for privacy.
Command Templates
Adapt these after the user confirms the group; do not emit a template that no current gap or request needs.
Identity:
git config --global user.name "<user-name>"
git config --global user.email "<user-email>"Disable misconfigured signing for now:
git config --global commit.gpgSign falseTrust a repository path after an unsafe-repository error:
git config --global --add safe.directory "<repo-path>"Enable SSH signing with an existing key (Git 2.34 or later):
git config --global gpg.format ssh
git config --global user.signingkey "~/.ssh/id_ed25519.pub"
git config --global commit.gpgSign trueGenerate and configure a GPG signing key:
gpg --full-generate-key
gpg --list-secret-keys --keyid-format=long
gpg --armor --export <KEY_ID> > public-gpg-key.asc
git config --global gpg.format openpgp
git config --global user.signingkey <KEY_ID>
git config --global commit.gpgSign trueGenerate and configure an SSH signing key:
# Linux and macOS
ssh-keygen -t ed25519 -C "<user-email>" -f ~/.ssh/id_ed25519
eval "$(ssh-agent -s)"
ssh-add ~/.ssh/id_ed25519
# Windows PowerShell with the built-in OpenSSH agent
ssh-keygen -t ed25519 -C "<user-email>" -f $HOME/.ssh/id_ed25519
Start-SSHAgent
ssh-add $HOME/.ssh/id_ed25519
# Both platforms
git config --global gpg.format ssh
git config --global user.signingkey ~/.ssh/id_ed25519.pub
git config --global commit.gpgSign trueUse VS Code as the editor, diff tool, and merge tool when those values are unset:
git config --global core.editor "code --wait --new-window"
git config --global diff.tool code
git config --global difftool.code.cmd 'code -n --wait --diff "$LOCAL" "$REMOTE"'
git config --global merge.tool code
git config --global mergetool.code.cmd 'code -n --wait --merge "$REMOTE" "$LOCAL" "$BASE" "$MERGED"'
git config --global mergetool.code.trustexitcode true
git config --global mergetool.keepbackup falseInteraction
Show the audit table before any proposal.
After the audit, ask only about identity, editor, and tooling gaps. Raise signing or safe-directory topics only when the user mentioned them or an error makes them relevant.
Ask one confirmation per group, for example
Apply identity fixes? (yes/no). Treat only an explicit yes, in any letter case, as approval; any other answer declines the group.When an email does not match a corporate domain pattern the user supplied, warn without changing it.
When every setting is already correct, state
No changes neededand skip proposals except for topics the user asked about.
Output Format
An audit section with a summary table that has at least the columns Setting, Value, Scope, and Status, using ✅ for satisfactory values and ❌ for missing or inconsistent values. A Notes column is optional.
Short notes below the table for ❌ rows only.
For each proposed group, an explanation, a fenced
bashblock, and a confirmation question.After changes, a summary of successes and remaining warnings with a before and after table.
A final status line:
Git setup complete.orGit setup partial; user declined some changes.
Example audit table:
| Setting | Value | Scope | Status | Notes |
|----------------|--------------------------|--------|--------|----------------------------------|
| user.name | Jane Doe | global | ✅ | |
| user.email | (missing) | - | ❌ | required for commits |
| core.editor | code --wait --new-window | global | ✅ | |
| diff.tool | (unset) | - | ❌ | optional convenience |
| merge.tool | (unset) | - | ❌ | improves merges |
| commit.gpgSign | true | global | ✅ | signing active |
| safe.directory | (not listed) | - | ✅ | not required (no unsafe warning) |Success Criteria
Every critical gap (identity and the chosen editor and tooling) is fixed, or the user declined it with clear notice.
No existing unrelated setting was unset or deleted, and no remote was touched.
The summary gives clear guidance for remaining optional improvements: line endings, safe directory, and deferred signing.
Files
- ATTRIBUTION.mdAdded by AutoGineer823 B
- LICENSELicence file added by AutoGineer1.1 KiB
- SKILL.md8.1 KiB
Requirements and compatibility
Written for: GitHub Copilot, Claude Code
Works with: Claude Code, Claude apps, OpenAI Codex, GitHub Copilot, Cursor, Gemini CLI, Kiro, OpenCode, Goose, Amp, Roo Code, JetBrains Junie, Factory Droid, Devin (ex-Windsurf), Mistral Vibe, OpenHands, Letta
“Works with” means the tool reads the open Agent Skills format; a skill written for one tool may use features others lack.
Needs: Claude Code frontmatter, Needs a command-line tool
Security
What our scanner noticed· Medium risk
- References to credential files
A static scan is not a guarantee. Skills are third-party content: review a skill before you let an agent use it.
Attribution and licence
- Published by
- Microsoft
- Publisher
- Microsoft (Official)
- Source
- microsoft/hve-core · .github/skills/hve-core/git-setup · commit f425e94
- Licence
- MIT License (redistribution allowed)
- LICENSE (added by AutoGineer from LICENSE)
- ATTRIBUTION.md (written by AutoGineer)
- Synced
AutoGineer is not affiliated with or endorsed by Microsoft or Microsoft.
Download ZIP
The ZIP holds the skill’s files, its licence files and an ATTRIBUTION.md. Download git-setup.zip