<< All versions
Skill v1.0.1
currentAutomated scan100/100wolverin0/claude-skills/project-doctor
+1 new
──Details
PublishedAugust 17, 2026 at 01:10 PM
Content Hashsha256:4754bc45bd10475b...
Git SHA0c676c021ba2
Bump Typepatch
──Files
Files (1 file, 3.0 KB)
SKILL.md3.0 KBactive
SKILL.md · 64 lines · 3.0 KB
version: "1.0.1" name: project-doctor description: Read-only audit for stale or broken project orchestration files, agent instructions, monitoring config, graphify output, and referenced skills.
project-doctor
Run a health audit on the current project's orchestration scaffolding. Read-only.
When to use
- Right after a
/monitoring-setuprollout to confirm the generatedmonitoring.mdreferences real files - When inheriting a project from a peer pane and you want a sanity check
- Periodically (monthly) to catch drift - moved scripts, deleted skills, expired Telegram chat IDs
- When
omniclaudecomplains it can't find a script the frontmatter promised existed
How to invoke
The user types /project-doctor from any project root. You then:
- Run the checker:
bash
node "$HOME/.claude/skills/project-doctor/check.js"
(On Windows in bash: same command - $HOME resolves to /c/Users/pauol.)
- The script prints a structured table to stdout: one row per check with verdict (
PASS/WARN/FAIL/SKIP) and a remediation hint.
- Read the output. Summarise to the user:
- All
PASS: "All checks green - project orchestration is healthy." - Any
FAIL: list the failing checks + remediation. Offer to fix the ones you can fix in-session (e.g., update placeholder Telegram chat ID, regenerate stale graphify report, run/monitoring-setupifmonitoring.mdis missing). WARNonly: list them but don't insist - the user decides.
Checks performed
| Check | Severity | What it validates | |
|---|---|---|---|
monitoring.md exists | FAIL if missing | File present in project root | |
monitoring.md parses | FAIL on bad YAML | Frontmatter is valid YAML | |
watchdog: reference | WARN if path-shaped and missing | If frontmatter watchdog: looks like a script path, file must exist | |
roadmap_file: resolves | WARN | Referenced file exists | |
state_checkpoint: resolves | WARN | Referenced path exists (file or dir) | |
| Telegram chat ID is real | WARN | Not equal to CHANGEME_CHAT_ID placeholder | |
| Skills referenced exist | WARN | Each entry in frontmatter skills: resolves to ~/.claude/skills/<name>/SKILL.md | |
AGENTS.md exists | WARN | File present in project root | |
CLAUDE.md exists | WARN | File present in project root | |
graphify-out/GRAPH_REPORT.md fresh | WARN if older than 30d | Mtime check | |
.claude/settings.json parses | FAIL on parse error | Valid JSON if file exists | |
| Worktree status | INFO | Counts uncommitted files (never fails) |
Remediation hints (offer when found)
- Missing
monitoring.md->/monitoring-setup - Stale graphify report (>30d) ->
/graphifyto regenerate - Placeholder
CHANGEME_CHAT_ID-> ask user for real Telegram chat ID, then Edit the frontmatter - Missing referenced skill -> tell the user the skill name and ask if it should be removed from the list or installed
Out of scope
Do not auto-fix anything that requires a decision (placeholder values, missing skills). Report and wait.