config-doctor

star 13

SuperClaude++ 설정 유효성 검증. AGENT.md frontmatter, skill-rules.json, hook 스크립트 경로 등 전체 설정을 진단합니다.

excatt By excatt schedule Updated 4/8/2026

name: config-doctor description: SuperClaude++ 설정 유효성 검증. AGENT.md frontmatter, skill-rules.json, hook 스크립트 경로 등 전체 설정을 진단합니다. user-invocable: true

Config Doctor

Purpose

SuperClaude++ v2.0 프레임워크의 설정 무결성을 검증합니다.

Dynamic Context

Current framework version: !cat .superclaude-metadata.json 2>/dev/null | python3 -c "import sys,json; print(json.load(sys.stdin).get('framework',{}).get('version','unknown'))" 2>/dev/null || echo "metadata not found"

Checks

1. Agent Frontmatter Validation

모든 agents/*.md 파일에 필수 frontmatter 필드 존재 확인:

  • name (필수)
  • description (필수)
  • model (필수: haiku | sonnet | opus)
  • tools (필수)
  • maxTurns (필수)
  • effort (필수: low | medium | high | max)
for f in agents/*.md; do
  echo "Checking $f..."
  head -20 "$f" | grep -q "^model:" || echo "  ❌ Missing: model"
  head -20 "$f" | grep -q "^tools:" || echo "  ❌ Missing: tools"
  head -20 "$f" | grep -q "^maxTurns:" || echo "  ❌ Missing: maxTurns"
  head -20 "$f" | grep -q "^effort:" || echo "  ❌ Missing: effort"
done

2. Skill Rules Validation

.claude/skill-rules.json 문법 및 참조 검증:

  • JSON 파싱 가능 여부
  • 각 rule의 skillskills/ 에 실제 존재하는지
  • regex 패턴 유효성
python3 -c "
import json, os, re
rules = json.load(open('.claude/skill-rules.json'))
for rule in rules.get('rules', []):
    skill = rule['skill']
    if not os.path.isdir(f'skills/{skill}'):
        print(f'  ❌ Skill not found: {skill}')
    for pat in rule.get('triggers', {}).get('prompt_patterns', []):
        try:
            re.compile(pat)
        except re.error as e:
            print(f'  ❌ Invalid regex in {skill}: {pat} ({e})')
print('Skill rules validation complete.')
"

3. Hook Script Path Validation

config/settings.json의 모든 hook command 경로가 유효한지 확인:

python3 -c "
import json, os
settings = json.load(open('config/settings.json'))
for hook_type, entries in settings.get('hooks', {}).items():
    for entry in entries:
        for hook in entry.get('hooks', []):
            cmd = hook.get('command', '')
            if cmd and not cmd.startswith('echo') and not cmd.startswith('python3'):
                script = cmd.split()[0].replace('~', os.path.expanduser('~'))
                if not os.path.exists(script):
                    print(f'  ⚠️ {hook_type}: Script not found: {script}')
print('Hook path validation complete.')
"

4. Skills Directory Integrity

모든 skills/*/ 디렉토리에 SKILL.md가 존재하는지:

for d in skills/*/; do
  [ ! -f "$d/SKILL.md" ] && echo "  ⚠️ Missing SKILL.md: $d"
done

5. MCP Server Connectivity

설정된 MCP 서버의 실행 가능 여부:

python3 -c "
import json, os
settings = json.load(open('config/settings.json'))
for name, config in settings.get('mcpServers', {}).items():
    cmd = config.get('command', '')
    print(f'  MCP {name}: command={cmd}')
"

Output Format

╔══════════════════════════════════════════════╗
║          🏥 CONFIG DOCTOR REPORT             ║
╠══════════════════════════════════════════════╣
║ 1. Agent Frontmatter    ✅/❌ (N issues)     ║
║ 2. Skill Rules          ✅/❌ (N issues)     ║
║ 3. Hook Scripts         ✅/❌ (N issues)     ║
║ 4. Skills Integrity     ✅/❌ (N issues)     ║
║ 5. MCP Servers          ✅/❌ (N issues)     ║
╠══════════════════════════════════════════════╣
║ Total Issues: N                              ║
║ Framework Health: HEALTHY / DEGRADED / BROKEN║
╚══════════════════════════════════════════════╝

Usage

/config-doctor          # Full diagnostic
/config-doctor --quick  # Checks 1-4 only (skip MCP)
Install via CLI
npx skills add https://github.com/excatt/superclaude-plusplus --skill config-doctor
Repository Details
star Stars 13
call_split Forks 2
navigation Branch main
article Path SKILL.md
More from Creator