AgentSkillsCN

update_vault_index

确保 vault_index.md 与当前 Vault 结构保持同步。

SKILL.md
--- frontmatter
name: update_vault_index
description: Keep vault_index.md synchronized with current vault structure

📇 Update Vault Index Skill

Automatically sync .claude/vault_index.md with your actual MOCs/, Projects/, and Reading/ directories.


PURPOSE

The vault index is the entry point to your research graph (per CLAUDE.md rules). It must stay current to reflect:

  • All MOCs (research areas)
  • All projects categorized by status (Seed/Idea/Active/Writing/Finished)
  • Quick access to recent papers

WORKFLOW

1. Scan vault structure

Scan directories:

  • MOCs/ → extract all MOC file names
  • Projects/ → extract all project file names + status field
  • Reading/ → optional: list recent papers (last 5-10)

Extract metadata:

  • For each project: read YAML frontmatter to get status field
  • For each MOC: extract 1-line description if present

2. Categorize projects

Group projects by status (maintain this order):

  • Seed: status = seed (early-stage ideas generated by Claude)
  • Idea: status = idea (refined projects approved by human)
  • Active: status = active (actively working on it)
  • Writing: status = writing (writing paper and finishing project)
  • Finished: status = finished (completed)

Sort alphabetically within each group.

3. Build index sections

Structure (preserve exactly):

code
# Vault Index

## Research Areas (MOCs)
- [[MOC Name]] - brief description (1 line)
- ...

## Seed Projects
- [[Project Name]] - brief description (1 line)
- ...

## Idea Projects
- [[Project Name]] - brief description (1 line)
- ...

## Active Projects
- [[Project Name]] - brief description (1 line)
- ...

## Writing Projects
- [[Project Name]] - brief description (1 line)
- ...

## Finished Projects
- [[Project Name]] - brief description (1 line)
- ...

Get descriptions from:

  • MOC files: first non-heading paragraph or subtitle
  • Project files: "Seed Idea" or "Current Working Idea" field
  • Keep descriptions to 1 line max

4. Generate minimal descriptions

Rules:

  • Extract from actual file content (don't invent)
  • Max 1 line (70 chars)
  • Use present tense
  • Keep factual, avoid marketing language

Example:

code
- [[Persona Fingerprinting to Prevent Emergent Misalignment]] -
  Preserve identity fingerprint during finetuning to prevent misalignment

5. Update vault_index.md

  • Replace entire file (sections only, no other changes)
  • Preserve markdown formatting
  • Verify all wiki links use exact file names
  • Verify no broken links

6. Verify output

✅ All MOCs present with descriptions ✅ All seed projects listed (status: seed) ✅ All idea projects listed (status: idea) ✅ All active projects listed (status: active) ✅ All writing projects listed (status: writing) ✅ All finished projects listed (status: finished) ✅ Projects in correct order (Seed → Idea → Active → Writing → Finished) ✅ Alphabetical within each section ✅ Wiki links match exact file names in [[brackets]] ✅ No orphan files referenced


TOKEN EFFICIENCY

Optimizations:

  • Read only YAML frontmatter + 1-2 lines per file
  • Use grep to extract status field: status:\s*
  • Single pass through each directory
  • No deep content analysis
  • Use file listing instead of reading metadata separately

Fast execution:

  • ~50-100 tokens for full vault with 20+ projects

OUTPUT RULES

  • Minimal, structural updates only
  • One-line descriptions max
  • Bullet format only
  • No prose explanation needed in output
  • Example: "Index updated: 4 MOCs, 5 seed, 0 idea, 1 active, 0 writing, 0 finished"

SELF-CHECK

✅ Did I read all MOCs, projects from actual directories? ✅ Did I extract status field from each project file? ✅ Did I categorize correctly (Seed/Idea/Active/Writing/Finished)? ✅ Did I maintain correct section order (Seed → Idea → Active → Writing → Finished)? ✅ Did I use exact file names in [[wiki links]]? ✅ Did I get descriptions from actual file content? ✅ Did I keep descriptions to 1 line max? ✅ Did I verify no broken links in output? ✅ Did I preserve vault_index.md structure exactly?