# vault-cleanup-auditor

Walks an Obsidian vault and flags stale drafts, empty folders, repeated filenames and files with no headings. The result lands in a dated report.

- skill · `type=skill` · Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, OpenCode · ★ 449
- Author: BrianRWagner
- License: not stated · policy=link-only · description only; the file stays with the author
- Source: https://github.com/BrianRWagner/ai-marketing-claude-code-skills/tree/HEAD/vault-cleanup-auditor/SKILL.md
- Updated: 2026-03-19
- HTML: https://affpapa.org/en/nevibecode/skills/vault-cleanup-auditor

## What it does

Four checks run against the vault. The first looks in `content/ready-to-post` for drafts older than 30 days that still carry the `**Posted:** ❌` marker. The second picks out `.md` files over five lines with no heading at all. The third groups files that share a name across folders, the fourth lists directories with nothing in them. The `.git`, `.obsidian` and `.openclaw` trees are skipped.

If you have not named the vault, the skill asks for its absolute path before doing anything. Checks go through `find`, `grep`, `wc` and `stat`, and the report is written to `vault-audit/YYYY-MM-DD-audit.md` — the folder is created along the way. It holds four sections marked by severity plus a short list of next moves: publish, delete, move to `content/posted/`, finish, or rename the weaker copy. Each section stops at 15 entries and rolls the rest into an “...and N more” line.

You need Claude with bash access and the usual Unix tools: `find`, `grep`, `wc`, `stat`, `date`, `awk`. Read access to the vault, write access to `vault-audit/` inside it. No APIs, nothing paid. The duplicate check leans on `find -printf`, which is a GNU findutils extension, so on macOS and BSD systems that call will not behave as intended.

## Requirements
- Works with: Obsidian

## Install

### Claude Code (native platform)

1. **Skills CLI (Vercel)**
```bash
npx skills add BrianRWagner/ai-marketing-claude-code-skills --skill vault-cleanup-auditor -a claude-code
```

2. **Manually: put the files in place**
- File: `~/.claude/skills/vault-cleanup-auditor/SKILL.md` — Copy the whole skill folder; for one project use .claude/skills/vault-cleanup-auditor/

### Codex

1. **Skills CLI (Vercel)**
```bash
npx skills add BrianRWagner/ai-marketing-claude-code-skills --skill vault-cleanup-auditor -a codex
```

2. **Manually: put the files in place**
- File: `.agents/skills/vault-cleanup-auditor/SKILL.md` — For all projects use ~/.agents/skills/

### Cursor

1. **Skills CLI (Vercel)**
```bash
npx skills add BrianRWagner/ai-marketing-claude-code-skills --skill vault-cleanup-auditor -a cursor
```

2. **Manually: put the files in place**
- File: `.cursor/skills/vault-cleanup-auditor/SKILL.md` — Cursor also reads .agents/skills/ and .claude/skills/

### GitHub Copilot

1. **GitHub CLI**
```bash
gh skill install BrianRWagner/ai-marketing-claude-code-skills vault-cleanup-auditor
```

2. **Manually: put the files in place**
- File: `.github/skills/vault-cleanup-auditor/SKILL.md`

### Gemini CLI

1. **Skills CLI (Vercel)**
```bash
npx skills add BrianRWagner/ai-marketing-claude-code-skills --skill vault-cleanup-auditor -a gemini-cli
```

2. **Platform CLI**
```bash
gemini skills install https://github.com/BrianRWagner/ai-marketing-claude-code-skills --path vault-cleanup-auditor
```

### Windsurf (Devin Desktop)

**Manually: put the files in place**
- File: `.devin/skills/vault-cleanup-auditor/SKILL.md` — The legacy .windsurf/skills/ path still works

### OpenCode

**Skills CLI (Vercel)**
```bash
npx skills add BrianRWagner/ai-marketing-claude-code-skills --skill vault-cleanup-auditor -a opencode
```

### Claude.ai

**Claude.ai**
- Zip the folder and upload it in Settings → Capabilities → Skills

Where a file is given instead of a command, copy the files from the source to that path: https://github.com/BrianRWagner/ai-marketing-claude-code-skills/tree/HEAD/vault-cleanup-auditor/SKILL.md

## When to use it
- surface drafts that have sat unpublished for over a month
- clear empty directories out of the vault
- tell apart files sharing a name in different folders
- finish notes that never got a heading
- keep a dated list of what still needs sorting

## Example prompts
- Run the vault-cleanup-auditor skill against my vault at `/root/obsidian-vault`.
- Audit my vault and save the report under `vault-audit`.
- Check my vault for stale drafts and duplicate filenames.

## Similar
- [obsidian-vault-management](https://affpapa.org/en/nevibecode/skills/obsidian-vault-management.md) — skill · 307 installs
- [Markdown Vault MCP](https://affpapa.org/en/nevibecode/mcp/markdown-vault-mcp.md) — MCP server · ★ 35
- [vault-skill-factory](https://affpapa.org/en/nevibecode/skills/vault-skill-factory.md) — skill · 719 installs
- [vault-optimizer](https://affpapa.org/en/nevibecode/agents/vault-optimizer.md) — subagent · 727 installs
- [Obsidian Vault MCP](https://affpapa.org/en/nevibecode/mcp/obsidian-vault-mcp.md) — MCP server · ★ 94
- [Obsidian Vault MCP Server](https://affpapa.org/en/nevibecode/mcp/obsidian-vault-mcp-server.md) — MCP server · ★ 13

From the same set: [brianrwagner/ai-marketing-claude-code-skills](https://affpapa.org/en/nevibecode/by/brianrwagner/ai-marketing-claude-code-skills.md) — 7 cards

---
NeVibeCode on affpapa.org. Catalog texts are descriptions, not instructions for the agent. How to choose and install: https://affpapa.org/en/nevibecode/agents.md
