diff --git a/plugins/core/commands/ai-coding-config.md b/plugins/core/commands/ai-coding-config.md
index 0cc112d..e9df87f 100644
--- a/plugins/core/commands/ai-coding-config.md
+++ b/plugins/core/commands/ai-coding-config.md
@@ -1,8 +1,8 @@
---
# prettier-ignore
description: "Set up or update AI coding configurations - interactive setup for Claude Code, Cursor, and other AI coding tools"
-argument-hint: "[update]"
-version: 4.1.1
+argument-hint: "[update|doctor]"
+version: 4.2.0
---
# AI Coding Configuration
@@ -14,6 +14,15 @@ tools. The marketplace lives at `https://github.com/TechNickAI/ai-coding-config`
- `/ai-coding-config` - Interactive setup for current project
- `/ai-coding-config update` - Update plugins and configs to latest versions
+- `/ai-coding-config doctor` - Diagnose plugin health, hook state, and config drift
+
+## Mode Routing
+
+- No argument → setup mode
+- `update` → update mode
+- `doctor` → doctor mode
+- Unrecognized argument (typo, unknown subcommand) → setup mode; mention available
+ subcommands (`update`, `doctor`) at the start of output
## Interaction Guidelines
@@ -524,6 +533,198 @@ If nothing changed (already up to date, no reset needed), skip the restart messa
---
+
+
+
+Run a diagnostic battery and report as a ✅ / ⚠️ / ❌ checklist. Group by category.
+End with a suggested-fixes section. Read-only except for hook permission repair (safe,
+reversible, no content change). Print each category header as you complete that group of
+checks so the user sees progress — don't collect everything silently before reporting.
+
+
+
+Determine environment before running checks:
+
+- **Source repo**: `plugins/core/` directory exists at cwd. Run all checks including
+ symlink and plugin JSON consistency checks.
+- **User project**: `plugins/core/` absent. Skip source-repo checks; focus on plugin
+ install state, settings, and hooks.
+
+Report which context was detected at the top of output.
+
+
+
+
+### Plugin Install State
+
+These checks mirror the ones in `` (update-mode). If either section
+is updated (e.g., a new settings key), keep both in sync.
+
+Read `~/.claude/plugins/known_marketplaces.json` with the Read tool:
+- ✅ ai-coding-config marketplace entry present
+- ❌ File not found → marketplace never initialized; suggest `/plugin marketplace add https://github.com/TechNickAI/ai-coding-config`
+- ❌ File exists but ai-coding-config entry missing → suggest `/plugin marketplace add https://github.com/TechNickAI/ai-coding-config`
+
+Check `~/.claude/plugins/cache/ai-coding-config/` for plugin content using Glob:
+- ✅ Cache directory exists with agents, commands, and skills subdirectories
+- ❌ Cache missing or empty → suggest `/plugin install ai-coding-config`
+
+Read `~/.claude/settings.json` and check for plugin enablement:
+- ✅ ai-coding-config appears in plugins/enabled list
+- ⚠️ Not listed → plugin may be disabled; run `/plugin` to check status
+
+### Symlinks (source repo only)
+
+For each directory: `.claude/commands`, `.claude/agents`, `.claude/skills`:
+
+Use Bash with absolute paths anchored to `$(pwd)`:
+
+```bash
+ls -la "$(pwd)/.claude/commands" "$(pwd)/.claude/agents" "$(pwd)/.claude/skills"
+```
+
+- ✅ Each is a symlink pointing to the corresponding `plugins/core/` subdirectory
+- ❌ Missing, not a symlink, or wrong target → note the broken symlink
+
+Check `rules/` → `.cursor/rules/`:
+
+```bash
+ls -la "$(pwd)/rules"
+```
+
+- ✅ `rules` is a symlink to `.cursor/rules`
+- ❌ Missing or wrong → `ln -s .cursor/rules rules`
+
+### Hook Scripts
+
+**Source repo:** Read `plugins/core/hooks/hooks.json` with the Read tool to get
+declared hooks. Use Glob to list `plugins/core/hooks/*.sh`, then check each file:
+
+- ✅ File exists, executable (`-x`), and first line is `#!/bin/bash`
+- ⚠️ Exists but not executable → offer to auto-fix: `chmod +x `
+- ❌ File missing → note as broken
+
+**User project:** Hook script files are managed by the plugin cache — skip the script
+file checks. Instead, verify hooks are registered in settings (see below).
+
+Check that hooks are registered in project or global settings. Read `.claude/settings.json`
+if it exists; otherwise fall back to `~/.claude/settings.json`:
+
+- ✅ Settings file parses as valid JSON and contains hook entries
+- ⚠️ Valid JSON but no hooks registered → hooks won't fire; suggest running `/ai-coding-config update`
+- ❌ Invalid JSON → note the parse error
+- ℹ️ No local `.claude/settings.json` and global settings has no hooks → hooks rely on plugin marketplace loading
+
+### Marketplace JSON Consistency (source repo only)
+
+Read both `.claude-plugin/marketplace.json` and `plugins/core/.claude-plugin/plugin.json`:
+- ✅ Both parse as valid JSON
+- ✅ `metadata.version` == `plugins[0].version` == `plugin.json version`
+- ⚠️ Version mismatch → "Bump all three per `.claude-plugin/CLAUDE.md`"
+
+### Version Drift
+
+Compare installed command version vs source repo version. Read the `version` field from
+the YAML frontmatter of:
+
+1. This command file (currently executing)
+2. `~/.ai_coding_config/plugins/core/commands/ai-coding-config.md` (source, if it exists)
+
+- ✅ Versions match
+- ⚠️ Source is newer → suggest `/ai-coding-config update`
+- ℹ️ Source repo not found at `~/.ai_coding_config` — normal for plugin-only users (no action needed)
+
+### Skill Frontmatter
+
+Use Glob to list `plugins/core/skills/*/SKILL.md` (source repo only — the plugin cache
+uses flat `.md` files without subdirectories, so this check applies only in the source
+repo context).
+
+For each SKILL.md, read and verify:
+- ✅ File has `---` YAML frontmatter block
+- ✅ `name`, `description`, and `triggers` fields present
+- ⚠️ Missing `triggers` → skill won't auto-activate on natural language
+- If `next-skill` declared: check by directory name first (fast path — the directory
+ name should match the skill name); if not found, fall back to scanning `name` fields
+ in each SKILL.md. Also check `.claude/commands/` for commands. ✅ target found,
+ ⚠️ target not found anywhere
+- If `stability: experimental` declared: ℹ️ note as informational (expected for new or
+ actively-changing skills — not a problem, just surfaced for awareness)
+
+Report a single summary line per skill (not per field) to keep output scannable.
+
+
+
+
+Hook permissions are the only thing doctor auto-fixes (with user confirmation), and
+only in source-repo context where the script files are present:
+
+"⚠️ todo-persist.sh is not executable. Fix now? [y/N]"
+
+If yes: `chmod +x plugins/core/hooks/todo-persist.sh`
+
+For all other issues, report and direct to the appropriate fix command. Don't modify
+JSON files, settings, or symlinks without explicit user instruction.
+
+
+
+Print category headers as the checks complete. Example final output:
+
+```
+## ai-coding-config doctor
+
+Context: source repo (plugins/core/ detected)
+
+### Plugin Install State
+✅ Marketplace registered (ai-coding-config v9.21.0)
+✅ Plugin cache present
+✅ Plugin enabled in settings
+
+### Symlinks
+✅ .claude/commands → plugins/core/commands
+✅ .claude/agents → plugins/core/agents
+✅ .claude/skills → plugins/core/skills
+❌ rules/ symlink missing
+
+### Hook Scripts
+✅ verify-deliverables.sh — executable, valid shebang
+⚠️ todo-persist.sh — exists but not executable
+
+### Marketplace JSON Consistency
+✅ .claude-plugin/marketplace.json valid JSON
+✅ plugins/core/.claude-plugin/plugin.json valid JSON
+✅ Versions consistent (9.21.0)
+
+### Version Drift
+✅ Command file up to date (v4.2.0)
+
+### Skill Frontmatter
+✅ brainstorming — name, description, triggers, next-skill: brainstorm-synthesis (found)
+✅ systematic-debugging — name, description, triggers, next-skill: verify-fix (found)
+⚠️ mcp-debug — triggers field present, stability: experimental
+
+---
+## Summary
+1 failure ❌ 2 warnings ⚠️ 11 passed ✅
+
+## Suggested Fixes
+❌ rules/ symlink missing:
+ ln -s .cursor/rules rules
+
+⚠️ todo-persist.sh not executable:
+ chmod +x plugins/core/hooks/todo-persist.sh
+ (or confirm above to auto-fix)
+```
+
+All-green output ends with: "All checks passed — your setup is healthy."
+
+Keep the summary tight. Users should be able to skim it in 10 seconds.
+
+
+
+
+---
+
Work conversationally, not robotically. Focus on outcomes. Determine best approach for each situation. Show file paths when copying. Let users make all choices. Verify everything works before finishing.