Install
$ agentstack add skill-kriscard-skills-audit-para ✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.
Security review
✓ PassedNo issues found. Passed automated security review. · v0.1.0 How review works →
- ✓ Prompt-injection patterns
- ✓ Secret / credential exfiltration
- ✓ Dangerous shell & filesystem operations
- ✓ Untrusted network calls
- ✓ Known-malicious package signatures
What it can access
- ✓ Network access No
- ✓ Filesystem access No
- ✓ Shell / process execution No
- ✓ Environment & secrets No
- ✓ Dynamic code execution No
From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.
Verified badge
Passed review? Show it. Paste this badge into your README, it links to the public security report.
Reliability & compatibility
Declared compatibility
Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.
We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.
How agent discovery & health will work →About
Audit PARA
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):
- Broken links, orphans, tag consistency →
maintainskill - Behavioral drift, avoidance →
spot-driftskill - Inbox categorization →
process-inboxskill
Obsidian Access
Use Obsidian CLI via Bash. On failure: "Obsidian CLI isn't working — update Obsidian with CLI enabled."
Phase 1 — Audit Pass (READ-ONLY)
Step 1 — Vault rules
obsidian read path="AGENTS.md"
Step 2 — Inventory all buckets (run in parallel)
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/.md" name="status"
obsidian property:read path="1 - Projects/.md" name="due-date"
obsidian property:read path="1 - Projects/.md" name="tags"
obsidian read path="1 - Projects/.md"
Check Matrix (hard signals only)
| 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 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 ": missing due-date frontmatter
- "": status ✅ Done but still in 1 - Projects/
- "": due-date 2026-01-15 is past, status 🟢 Active
Areas/
- "": has due-date — should be a Project
🟡 Stalled (needs review)
- "": Updated 2026-04-01 (43 days), no retrospective
🟢 Healthy
- Projects pass all checks
- Areas pass all checks
Total: X critical, Y stalled. Want to fix the criticals now?
## Phase 2 — Batch Fix Flow (INTERACTIVE)
If 0 critical: stop with "PARA classification healthy."
If >0 critical, use `AskUserQuestion`:
```yaml
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.'
Per-Finding Action Proposals
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/.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.
Retrospective Gate (for archive moves)
Before any Project → Archives move, check if ## 🔄 Retrospective is empty. If empty:
question: "Fill the retrospective before archiving ''?"
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="...".
Gotchas
- Run weekly, not daily — daily noise dulls the signal.
- Never auto-fix. Phase 2 batching is not silent batch writes.
- Don't overlap with
maintainskill — structural issues (broken links, missing sections) belong
there.
- Avoid deep content reads for Areas/Resources — frontmatter checks are fast; full reads at scale
are slow.
- If a user disagrees with a finding, respect it. PARA is a tool, not a law. Offer to add an
exception note in the file or skip the finding for this run.
References
| Load when | Reference | | ------------------------------------------------------------------------- | ------------------------------ | | Deep theory on PARA categories, migration, variations, or troubleshooting | references/para-deep-dive.md |
Source & license
This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.
- Author: kriscard
- Source: kriscard/Skills
- License: MIT
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet, be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.