mcpField
V
vault-cleanup-auditor

vault-cleanup-auditor

github.com/brianrwagner生产力449366 次安装32 周前更新
代码仓库

关于 vault-cleanup-auditor

Vault Cleanup Auditor 是用于 Claude Code 的技能,检查 Obsidian 知识库中的过期草稿、不完整文件、重名文件和空文件夹。它会在知识库内保存带日期的审计报告。

主要功能

  1. 01执行 4 项知识库检查
  2. 02查找超过 30 天未发布的草稿
  3. 03检测不完整文件和重名文件
  4. 04识别空文件夹
  5. 05保存带日期的审计报告

适用场景

  1. 01每月审计 Obsidian 知识库
  2. 02查找长期未发布的草稿
  3. 03定位不完整或重名的 Markdown 文件
  4. 04检查知识库中的空文件夹

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/brianrwagner/ai-marketing-claude-code-skills --skill vault-cleanup-auditor

安装后在 Claude Code 中输入/vault-cleanup-auditor确认已加载。

附带文件SKILL-OC.md

详细介绍

Vault 清理审计工具

对你的 Obsidian 知识库执行 4 项针对性检查,并将按优先级排序的审计报告保存到 vault-audit/YYYY-MM-DD-audit.md。用时不到 30 秒。无需 API,也无需付费服务。

每月运行一次,或在知识库开始变得杂乱时运行。


使用方法

打开 Claude Code 并说:

Run the Vault Cleanup Auditor skill against my vault at /path/to/vault.

技能说明(适用于 Claude Code)

调用此技能时,请严格按照以下阶段执行。


阶段 1:信息收集

检查用户是否提供了:

  • vault_path — Obsidian 知识库根目录的绝对路径

如果缺少,请询问:

What's the absolute path to your Obsidian vault? (e.g. /root/obsidian-vault)

在确认之前不要继续。


阶段 2:分析

执行全部 4 项检查。在撰写报告前,先捕获每项检查的原始输出。

检查 1 — 过期草稿(30 天以上,尚未发布):

VAULT="VAULT_PATH_HERE"
echo "=== CHECK 1: STALE DRAFTS ==="
find "$VAULT/content/ready-to-post" -name "*.md" -mtime +30 2>/dev/null | while read f; do
  if grep -q '\*\*Posted:\*\* ❌' "$f" 2>/dev/null; then
    days=$(( ($(date +%s) - $(stat -c %Y "$f")) / 86400 ))
    echo "${days}d|${f##$VAULT/}"
  fi
done
echo "=== END CHECK 1 ==="

检查 2 — 不完整文件(没有标题,且有 5 行或以上):

VAULT="VAULT_PATH_HERE"
echo "=== CHECK 2: INCOMPLETE FILES ==="
find "$VAULT" -name "*.md" \
  -not -path "*/.git/*" \
  -not -path "*/.obsidian/*" \
  -not -path "*/.openclaw/*" | while read f; do
  if ! grep -qE '^#{1,6} ' "$f" 2>/dev/null; then
    lines=$(wc -l < "$f")
    if [ "$lines" -gt 5 ]; then
      echo "${lines}lines|${f##$VAULT/}"
    fi
  fi
done
echo "=== END CHECK 2 ==="

检查 3 — 重名文件:

VAULT="VAULT_PATH_HERE"
echo "=== CHECK 3: DUPLICATE FILENAMES ==="
find "$VAULT" -name "*.md" \
  -not -path "*/.git/*" \
  -not -path "*/.obsidian/*" \
  -not -path "*/.openclaw/*" \
  -printf "%f\n" | sort | uniq -d | while read name; do
  echo "DUPE:$name"
  find "$VAULT" -name "$name" \
    -not -path "*/.git/*" \
    -not -path "*/.obsidian/*" | while read f; do
    echo "  PATH:${f##$VAULT/}"
  done
done
echo "=== END CHECK 3 ==="

检查 4 — 空文件夹:

VAULT="VAULT_PATH_HERE"
echo "=== CHECK 4: EMPTY FOLDERS ==="
find "$VAULT" -type d -empty \
  -not -path "*/.git/*" \
  -not -path "*/.obsidian/*" \
  -not -path "*/.openclaw/*" | while read d; do
  echo "${d##$VAULT/}/"
done
echo "=== END CHECK 4 ==="

阶段 3:输出

3a. 创建报告目录和文件:

VAULT="VAULT_PATH_HERE"
DATE=$(date +%Y-%m-%d)
mkdir -p "$VAULT/vault-audit"
REPORT="$VAULT/vault-audit/${DATE}-audit.md"
echo "Report path: $REPORT"

3b. 按照以下确切结构撰写报告:

# Vault Cleanup Audit — YYYY-MM-DD

Generated: YYYY-MM-DD HH:MM

**Summary:** 🔴 [N] stale | 🟡 [N] incomplete | 🟡 [N] dupes | 🟢 [N] empty

---

## 🔴 Stale Drafts (30+ days, unposted)

- [Nd old] path/to/file.md
[cap at 15 items — add "...and N more" if over]

## 🟡 Incomplete Files (no headings, 5+ lines)

- path/to/file.md (N lines)
[cap at 15]

## 🟡 Duplicate Filenames

- **filename.md**
  - path/one/filename.md
  - path/two/filename.md
[cap at 15 duplicate names]

## 🟢 Empty Folders

- path/to/folder/
[cap at 15]

---

**What to do:**
- 🔴 Stale drafts: post them, delete them, or archive to `content/posted/`
- 🟡 Incomplete files: finish or trash
- 🟡 Duplicates: merge or rename the less important one
- 🟢 Empty folders: safe to delete (or keep if you're about to use them)

3c. 在终端打印摘要:

✅ Audit saved to: vault-audit/YYYY-MM-DD-audit.md

Summary:
🔴 [N] stale drafts
🟡 [N] incomplete files
🟡 [N] duplicate filenames
🟢 [N] empty folders

阶段 4:自我检查

完成前,请检查:

  1. 已运行全部 4 项检查 — 确认每个 === CHECK N === / === END CHECK N === 标记之间都存在输出。如果某项检查没有输出,请在报告中注明“发现 0 个问题”——不要跳过该部分。
  2. 计数准确 — 摘要行中的数量必须与各部分实际列出的项目数一致。如有疑问,请重新计数。
  3. 报告已正确保存 — 确认文件存在于 vault-audit/YYYY-MM-DD-audit.md。如果写入失败,请报告错误,并直接提供报告内容。
  4. 没有空白部分 — 每个部分都必须列出项目,或写明“未发现问题”。不要让部分标题下方空无一物。

修复所有问题后再提交最终输出。


报告示例

# Vault Cleanup Audit — 2026-03-01

Generated: 2026-03-01 08:14

**Summary:** 🔴 3 stale | 🟡 2 incomplete | 🟡 1 dupe | 🟢 2 empty

---

## 🔴 Stale Drafts (30+ days, unposted)

- [47d old] content/ready-to-post/linkedin/2026-01-12-ai-systems-post.md
- [38d old] content/ready-to-post/twitter/2026-01-21-founder-ops.md
- [31d old] content/ready-to-post/newsletter/2026-01-28-tools-roundup.md

## 🟡 Incomplete Files (no headings, 5+ lines)

- bambf/research/untitled-notes.md (23 lines)
- thinking/random-thoughts.md (11 lines)

## 🟡 Duplicate Filenames

- **README.md**
  - bambf/brand/README.md
  - bambf/tracking/README.md

## 🟢 Empty Folders

- content/queue/rejected/
- bambf/clients/archived/

---

**What to do:**
- 🔴 Stale drafts: post them, delete them, or archive to `content/posted/`
- 🟡 Incomplete files: finish or trash
- 🟡 Duplicates: merge or rename the less important one
- 🟢 Empty folders: safe to delete (or keep if you're about to use them)

要求

  • Claude Code,且可访问 bash 工具
  • Bash + 标准 Unix 工具:find、grep、wc、stat、date、awk
  • 对知识库目录具有读取权限
  • 对知识库内 vault-audit/ 具有写入权限(将自动创建)
  • 无需 API、付费服务或外部依赖

评论

支持 Markdown