Skip to content
Agentmart
Submit a tool

setup-gitignore

Initialize or idempotently revise the repo's .gitignore by composing gitignore.io templates, AI-tooling/IDE patterns, and confirmed noise from git status.

Skill by OutlineDriven

IndexedApache-2.0★ 14
Write a review

Install

Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.

npx agentmarket install skill/outlinedriven-setup-gitignore

Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.

Get the weekly diff

The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.

We use your email only for this newsletter. Privacy

About

Initialize or idempotently revise the repo's .gitignore by composing gitignore.io templates, AI-tooling/IDE patterns, and confirmed noise from git status. Use when the user says "set up gitignore", "fix gitignore", or untracked files keep appearing in git status.

No reviews yet. Installed it? Reviews come from verified installers only. How reviews work

Permissions

What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.

Tools
No tools found
Secrets
None asked for
Install scripts
None found
Runs as
Shell scripts

Network hosts it talks to 1

  • codeload.github.com · found in install command

Files it touches

  • ~/.claude/skills/setup-gitignore

What's inside

Skill name
setup-gitignore
Description
Initialize or idempotently revise the repo's .gitignore by composing gitignore.io templates, AI-tooling/IDE patterns, and confirmed noise from git status. Use when the user says "set up gitignore", "fix gitignore", or untracked files keep appearing in git status.
License
Apache-2.0
Instructions
84 lines in SKILL.md · view on GitHub

Before installing

  • Ships executable scripts
  • Instructions read files in your home folder (~/.ssh, ~/.aws…)

Files (5)

  • SKILL.md
  • AI-TOOLING.md · references/
  • IDE-EDITOR.md · references/
  • LANGUAGE-DETECTION.md · references/
  • compose-gitignore.sh · scripts/

SKILL.md (first lines)

Initialize or idempotently revise the current repo's `.gitignore` — never the global excludesfile.

## Scope

Per-repo only. Never read or write `~/.gitignore`, `~/.config/git/ignore`, or run `git config --global`. The user's global excludesfile handles cross-machine noise; this skill handles language/tool specifics for the current repo.

## Sources composed (in order)

1. **gitignore.io** — templates keyed by detected language/framework (requires network)
2. **AI tooling** — bundled patterns from `references/AI-TOOLING.md`
3. **IDE / editor** — bundled patterns from `references/IDE-EDITOR.md`
4. **Empirical** — untracked paths from `git status`, confirmed interactively

## Workflow

### 1. Detect repo root

```sh
git rev-parse --show-toplevel
```

Abort with a clear error if not inside a git repo.

### 2. Detect languages

Read `references/LANGUAGE-DETECTION.md` for the manifest → gitignore.io key table. Scan manifests:

```sh
fd --max-depth 2 -t f
```

Match filenames against the detection table; build a comma-separated key list (e.g., `rust,node,typescript`). If no manifests detected, use an empty key list (bundled blocks still apply).

### 3. Snapshot existing .gitignore

If `.gitignore` exists, snapshot it before any modification:

```sh
cp .gitignore /tmp/gitignore-snapshot-$(date +%s).bak
```

### 4. Surface empirical noise

```sh
git status -s -uall | rg '^\?\?' | rg -v '^\?\? \.gitignore'
```

Cluster untracked paths by top-level directory or extension. **Present clusters to the user and wait for explicit confirmation.** Do not add any empirical pattern without confirmation.

### 5. Compose

Run `scripts/compose-gitignore.sh <csv>` to fetch and merge gitignore.io templates. If the network call fails, tell the user and ask whether to continue with bundled-only mode.

Append the bundled blocks after the API output in order:

```
# === AI TOOLING ===
<contents of references/AI-TOOLING.md>

# === IDE / EDITOR ===
<contents of references/IDE-EDITOR.md>

# === EMPIRICAL ===
<user-confirmed patterns, one per line>
```

### 6. Merge or init

- **No existing `.gitignore`**: write the composed output directly.
- **Existing `.gitignore`**: merge each `# === SECTION ===` block idempotently — patterns already present in the file are deduplicated (first occurrence wins). Preserve all user content outside section headers. Show the full diff via `difft`; write only after user confirms.

### 7. Verify

```sh
git status -s -uall | rg '^\?\?' | wc -l
```

Report untracked count before and after. List any paths still untracked so the user can decide whether to add further patterns.

## Idempotence contract

Re-running the skill on a repo where the skill already ran produces no diff. Section headers act as stable merge anchors. User content outside sections is never modified.

From OutlineDriven/odin-codex-plugin, Apache-2.0.

More from OutlineDriven/odin-codex-plugin

Signals

Stars
14
Forks
2
Open issues
2
Last commit (this folder)
Apr 28, 2026 (6 months ago)

From GitHub (fetched Oct 24, 2026).

Details

License
Apache-2.0
First seen
Oct 24, 2026
Last checked
Oct 24, 2026

More from OutlineDriven

Cite this page

setup-gitignore skill. Agent Mart. https://agentmart.dev/skills/outlinedriven-setup-gitignore (last updated 2026-10-24)