report-issue — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited report-issue (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
Typical triggers:
CliGitProvider) fails or misbehaves — wrong output parsing, error transformation, timeout handling.describe() on schema fields causing poor LLM tool useFor general gh CLI workflows outside issue filing (PRs, workflows, API access), see the github-cli skill.
gh repo view --json nameWithOwner -q '.nameWithOwner'Should output cyanheads/git-mcp-server.
gh issue list --search "your error message or keyword"GIT_SIGN_COMMITS, GIT_BASE_DIR, STORAGE_PROVIDER_TYPE, etc.).McpError code + context).bun pm ls @cyanheads/git-mcp-server, bun --version, git --version, OS version.Good issues are scannable, concrete, and self-contained. These patterns apply to both bugs and features — the guidance targets any prose block (Description, Additional context, feature proposals).
git_merge throws McpError(INTERNAL_ERROR) on a CONFLICT exit instead of returning {conflicts: true}" beats "Merge is broken." A reader should know what's wrong before the end of the first sentence.[Hono](https://hono.dev/), [tsyringe](https://github.com/microsoft/tsyringe), [jose](https://github.com/panva/jose). Link to the canonical repo so readers can verify the dependency and reach docs in one click.cyanheads/mcp-ts-template#46). Bare #N only works for same-repo issues.GitHub issues are public. Do not include secrets, credentials, API keys, JWT tokens, or git remote URLs that encode credentials. Redact sensitive values from env vars, headers, logs, and git URLs before submitting. Replace with obvious placeholders: REDACTED, sk-...REDACTED, https://[email protected]/.... Do not rely on partial masking — partial keys can still be exploited.
This repo does not currently ship .github/ISSUE_TEMPLATE/ YAML form templates, so use free-form titles and bodies. Structure the body with the sections below so the maintainer has everything needed to triage without asking.
gh issue create \
--title "bug(git_merge): conflicts thrown as McpError instead of structured success" \
--label "bug" \
--body "$(cat <<'ISSUE'
### Version
git-mcp-server v2.11.1
### Runtime
Bun 1.2.21 on macOS 15.x
### Transport
http (also reproduces on stdio)
### Git provider
cli (git 2.x)
### Description
`git_merge` currently throws `McpError(INTERNAL_ERROR)` when the merge exits non-zero due to a `CONFLICT` marker. Callers have to parse error messages and re-run `git_status` to recover state, even though `CONFLICT` is a documented success state.
### Steps to reproduce
1. Set up a repo with two divergent branches that touch the same line
2. `git_checkout { "branch": "main" }`
3. `git_merge { "branch": "feature" }` → throws instead of returning conflict info
### Actual behavior
McpError: INTERNAL_ERROR — git merge failed with exit code 1
### Expected behavior
{ "success": true, "conflicts": true, "conflictedFiles": ["path/to/file.ts"], "message": "Merge had conflicts — resolve and commit to finish" }
### Additional context
`git_rebase`, `git_cherry_pick`, `git_pull` share the same pattern and exhibit the same behavior.
ISSUE
)"gh issue create --webOpens the standard GitHub issue form; use the body template above as a guide.
Format: type(scope): description
bug, feat, docs, chore, perf, refactorgit_status, git_merge), subsystem (cli-provider, transport, auth, storage, config), or typesExamples:
bug(git_commit): signing fails silently when gpg agent is unavailablefeat(git_log): add --follow renames output flagdocs(config): GIT_BASE_DIR interaction with session working dir is unclearperf(cli-provider): spawn overhead dominates short git_status calls| Label | When |
|---|---|
bug | Something broken |
enhancement | New feature or improvement |
docs | Documentation issue |
config | Configuration or environment issue |
regression | Worked before, broken after a change |
performance | Slow path, memory issue |
security | Security-relevant (path traversal, command injection, auth bypass) |
Combine labels: --label "bug" --label "regression".
bun run dev:stdio 2>&1 | head -200 > /tmp/git-mcp-error.log
# As part of a new issue
gh issue create \
--title "bug(transport): stdio crashes on large diff payload" \
--label "bug" \
--body-file /tmp/git-mcp-error.log
# Or as a comment on an existing issue
gh issue comment <number> --body-file /tmp/git-mcp-error.logFor HTTP errors, capture the full JSON-RPC response (envelope + result.content[] or error) so the maintainer can see both the protocol frame and the tool error.
Template below demonstrates the richer structure. Omit sections you don't need — simple requests don't require Flow / Design / Dependencies blocks.
gh issue create \
--title "feat(git_log): add follow-renames flag" \
--label "enhancement" \
--body "$(cat <<'ISSUE'
`git_log` currently does not expose `--follow`, so callers cannot trace the full history of a renamed file without falling back to raw `git log`. This is a common workflow when reviewing long-lived code paths.
Related: #N
## Proposal
Add `followRenames: boolean` to the `git_log` input schema. When `true` and exactly one `pathspec` is provided, thread `--follow` into the underlying git invocation. Default `false` to preserve current behavior.
### Proposed behavior
// Input schema addition followRenames: z .boolean() .default(false) .describe('Follow renames across the history. Requires exactly one pathspec.'),
Validation: if `followRenames: true` and `pathspec.length !== 1`, throw `McpError(INVALID_PARAMS)` with an actionable message.
### Scope
- `src/mcp-server/tools/definitions/git-log.tool.ts` — schema + logic
- `src/services/git/providers/cli/operations/commits/log.ts` — thread the flag into the `git log` argv
- README table entry for `git_log` updated if user-facing
### Out of scope
- Supporting `--follow` with zero or multiple pathspecs (git itself rejects it)
- Rewriting the output shape — same `GitLogResult` structure
### Alternatives considered
Auto-detect single-pathspec + enable `--follow` silently. Rejected: surprising default, and some callers deliberately want non-following history even with a single path.
ISSUE
)"# View issue details
gh issue view <number>
# Add context
gh issue comment <number> --body "Additional findings..."
# List your open issues
gh issue list --author @me
# Close if resolved
gh issue close <number> --reason completed --comment "Fixed in <commit or PR>"git-mcp-server, not an underlying git CLI issue~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.