Audit para-obsidian plugin for convention drift across skills, commands, hooks, and plugin registration.
View on GitHubnathanvale/side-quest-marketplace
para-obsidian
February 4, 2026
Select agents to install to:
npx add-skill https://github.com/nathanvale/side-quest-marketplace/blob/main/plugins/para-obsidian/skills/maintenance/SKILL.md -a claude-code --skill maintenanceInstallation paths:
.claude/skills/maintenance/# Maintenance — Convention Drift Audit
Audit the para-obsidian plugin for convention drift. Scans 8 domains: plugin registration, frontmatter schema, completion signals, allowed-tools accuracy, cross-references, brain routing coverage, references directory integrity, and observability gaps.
Not user-invocable — brain routes to it via keywords like "maintenance", "audit", "lint", "health check", "check conventions", "plugin health".
---
## Step 0 — Load Conventions
Read the conventions knowledge base:
```
Read({ file_path: "<plugin-root>/skills/maintenance/references/conventions.md" })
```
Use these rules as the source of truth for all checks. The plugin root is `plugins/para-obsidian` relative to the repo root.
---
## Step 1 — Plugin Registration Audit
Check that every component on disk has a matching entry in `.claude-plugin/plugin.json`.
**1.1 — Discover components on disk:**
```
Glob({ pattern: "plugins/para-obsidian/skills/*/SKILL.md" })
Glob({ pattern: "plugins/para-obsidian/commands/*.md" })
Glob({ pattern: "plugins/para-obsidian/agents/*.md" })
```
**1.2 — Read plugin.json:**
```
Read({ file_path: "<plugin-root>/.claude-plugin/plugin.json" })
```
**1.3 — Compare:**
For each component on disk, verify it has a matching entry in the appropriate plugin.json array (`skills`, `commands`, `agents`). Report:
- **error**: Component on disk missing from plugin.json
- **warning**: Entry in plugin.json pointing to non-existent path
---
## Step 2 — Frontmatter Schema Audit
For each `skills/*/SKILL.md`, parse the YAML frontmatter and check required fields.
**Required fields:** `name`, `description`, `user-invocable`, `allowed-tools`
**Additional checks:**
- `name` must match the directory name
- User-invocable skills should have `argument-hint` (warning if missing)
**Report:**
- **error**: Missing required frontmatter field
- **warning**: User-invocable skill missing `argument-hint`
---
## Step 3 — Completion Signal Audit
For each user-invocable sk