Help us improve
Share bugs, ideas, or general feedback.
From skills
Audits Obsidian vault for PARA classification correctness: identifies misclassified projects, overdue items, stalled notes, and archive anomalies. Produces a severity-grouped report with interactive fix flow.
npx claudepluginhub kriscard/skillsHow this skill is triggered — by the user, by Claude, or both
Slash command
/skills:audit-paraThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Hybrid workflow: Phase 1 is a read-only audit pass that produces a severity-grouped report. Phase 2
Creates or updates PARA project notes in an Obsidian vault with structured fields (outcome, deadline, status, next action).
Runs 7-phase Obsidian vault audit: structural scan, duplicate detection, link integrity, frontmatter audit, MOC review, cross-agent checks, health report.
Manages Obsidian vault structure: organizes documents, adds new files, processes meeting notes, and maintains knowledge base. Useful for team documentation and vault health checks.
Share bugs, ideas, or general feedback.
Hybrid workflow: Phase 1 is a read-only audit pass that produces a severity-grouped report. Phase 2
is an interactive fix flow — nothing writes without explicit approval per AGENTS.md.
Scope this skill owns: PARA classification correctness only. Hard signals: projects without
outcome/deadline, done-but-not-archived, stalled >30 days, past due-date still Active, areas with
deadlines, resources with project tag or deadline, archives modified in last 14 days.
Scope this skill does NOT cover (delegate):
maintain skillspot-drift skillprocess-inbox skillUse Obsidian CLI via Bash. On failure: "Obsidian CLI isn't working — update Obsidian with CLI enabled."
obsidian read path="AGENTS.md"
obsidian files folder="1 - Projects/" format=json
obsidian files folder="2 - Areas/" format=json
obsidian files folder="3 - Resources/" format=json
obsidian files folder="4 - Archives/" format=json
For each Project file, pull frontmatter + body to run hard checks. Cap deep reads at the active project count — Areas/Resources/Archives can be inventoried by frontmatter alone unless flagged.
obsidian property:read path="1 - Projects/<file>.md" name="status"
obsidian property:read path="1 - Projects/<file>.md" name="due-date"
obsidian property:read path="1 - Projects/<file>.md" name="tags"
obsidian read path="1 - Projects/<file>.md"
| Folder | Check | Severity |
|---|---|---|
| Projects | due-date empty or missing | 🔴 critical |
| Projects | ## 🎯 Objective section body empty | 🔴 critical |
| Projects | status contains "Done" or "Complete" | 🔴 critical (archive) |
| Projects | due-date < today AND status Active | 🔴 critical (overdue) |
| Projects | Updated: marker >30 days AND retro empty | 🟡 stalled |
| Areas | due-date is set | 🔴 critical (areas don't have deadlines) |
| Areas | tagged project in frontmatter | 🔴 critical |
| Resources | due-date set OR tagged project | 🔴 critical (wrong bucket) |
| Archives | file modified time < 14 days ago | 🟡 stalled (reactivated?) |
Updated: marker: parse from body under ## 📍 Current Status\n_Updated: YYYY-MM-DD_. Use the
template marker, not filesystem mtime — mtime gets touched by metadata changes.
PARA Audit — YYYY-MM-DD
🔴 Critical (classification violations)
Projects/
- "<name>": missing due-date frontmatter
- "<name>": status ✅ Done but still in 1 - Projects/
- "<name>": due-date 2026-01-15 is past, status 🟢 Active
Areas/
- "<name>": has due-date — should be a Project
🟡 Stalled (needs review)
- "<name>": Updated 2026-04-01 (43 days), no retrospective
🟢 Healthy
- <count> Projects pass all checks
- <count> Areas pass all checks
Total: X critical, Y stalled. Want to fix the criticals now?
If 0 critical: stop with "PARA classification healthy."
If >0 critical, use AskUserQuestion:
question: 'Fix the N critical findings now?'
options:
- label: 'Yes — walk through them'
description: 'One at a time. Propose action, ask for approval per item.'
- label: 'Fix only the archivable ones'
description: "Target 'done but not archived' only (safest batch)."
- label: "Skip — I'll handle later"
description: 'Report stays; return via /audit-para.'
For each critical finding, propose a specific action:
| Finding | Proposed action | Route to |
|---|---|---|
| Project missing outcome/deadline | Add fields or convert to Area | para-project skill (UPDATE mode) |
| Project ✅ Done, not archived | Move to 4 - Archives/Projects - YYYY/<name>.md, prompt retro | Direct move + retro prompt |
| Project past due-date, Active | Extend / mark done / archive / convert to Area | AskUserQuestion → branch |
| Area with due-date | Convert to Project or remove due-date | para-organizer agent + file move |
Resource with project tag or due-date | Re-categorize | para-organizer agent |
| Archive modified recently | Confirm: intentional edit or reactivate? | AskUserQuestion → file move |
Per item: present proposal → AskUserQuestion {Apply / Skip / Modify} → apply only on explicit
approve.
Before any Project → Archives move, check if ## 🔄 Retrospective is empty. If empty:
question: "Fill the retrospective before archiving '<name>'?"
options:
- label: 'Yes — quick 3-question prompt'
description: "What went well, what didn't, what to carry forward. ~3 min."
- label: 'Skip — archive as-is'
description: 'OK, but you lose the durable artifact.'
If yes: ask 3 questions via AskUserQuestion, then write the retrospective. The CLI has no patch
— append the section with obsidian append, or if it must target a specific heading, ask the user
(MCP obsidian_patch_content or recreate via read + create ... overwrite). Then move with
obsidian move path="..." to="...".
maintain skill — structural issues (broken links, missing sections) belong
there.| Load when | Reference |
|---|---|
| Deep theory on PARA categories, migration, variations, or troubleshooting | references/para-deep-dive.md |