From 6b55a3aaf62060d8fc68f32795656584035cc234 Mon Sep 17 00:00:00 2001 From: Bastien Chanot Date: Mon, 25 May 2026 21:34:42 +0200 Subject: [PATCH] fix(doctor): update stale skill/agent refs, scope disable-model-invocation check MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Replace readme → doc in EXPECTED_SKILLS (readme skill was replaced by doc) - Replace readme-updater → doc-syncer in EXPECTED_AGENTS - Skip external/symlinked skills in disable-model-invocation check — external skills (frontend-design, emil-design-eng, darwin-skill, find-skills) and gstack skills (symlinked SKILL.md) are not owned by this repo Co-Authored-By: Claude Opus 4.6 (1M context) --- doctor.sh | 22 +++++++++++++--------- 1 file changed, 13 insertions(+), 9 deletions(-) diff --git a/doctor.sh b/doctor.sh index 2121d8c..b91e236 100644 --- a/doctor.sh +++ b/doctor.sh @@ -309,25 +309,29 @@ echo "" # ──────────────────────────────────────────────────────────── echo "── Consistency ──" -# Check all skills have disable-model-invocation +# Check owned skills have disable-model-invocation (skip external/symlinked skills) MISSING_DMI=() for f in "$HOME/.claude/skills/"*/SKILL.md; do [ -f "$f" ] || continue - name=$(basename "$(dirname "$f")") + dir=$(dirname "$f") + # Skip external skills (symlinked directory or symlinked SKILL.md — not owned by this repo) + [ -L "$dir" ] && continue + [ -L "$f" ] && continue + name=$(basename "$dir") if ! grep -q "disable-model-invocation" "$f" 2>/dev/null; then MISSING_DMI+=("$name") fi done if [ ${#MISSING_DMI[@]} -eq 0 ]; then - pass "All skills have disable-model-invocation" + pass "All owned skills have disable-model-invocation" else - warn "Skills missing disable-model-invocation: ${MISSING_DMI[*]}" + warn "Owned skills missing disable-model-invocation: ${MISSING_DMI[*]}" fi # Check expected skills are present EXPECTED_SKILLS=( - "analyze" "health" "init-project" "onboard" "plugin-check" - "readme" "refactor" "ship-feature" "status" + "analyze" "doc" "health" "init-project" "onboard" "plugin-check" + "refactor" "ship-feature" "status" ) MISSING_SKILLS=() for skill in "${EXPECTED_SKILLS[@]}"; do @@ -336,14 +340,14 @@ for skill in "${EXPECTED_SKILLS[@]}"; do fi done if [ ${#MISSING_SKILLS[@]} -eq 0 ]; then - pass "All ${#EXPECTED_SKILLS[@]} expected skills present (analyze, health, init-project, onboard, plugin-check, readme, refactor, ship-feature, status)" + pass "All ${#EXPECTED_SKILLS[@]} expected skills present (analyze, doc, health, init-project, onboard, plugin-check, refactor, ship-feature, status)" else warn "Missing skills: ${MISSING_SKILLS[*]} — run: bash link.sh" fi # Check expected agents are present EXPECTED_AGENTS=( - "analyzer" "interviewer" "plugin-advisor" "readme-updater" + "analyzer" "interviewer" "plugin-advisor" "doc-syncer" "refactorer" "scaffolder" "onboarder" "status-reporter" ) MISSING_AGENTS=() @@ -353,7 +357,7 @@ for agent in "${EXPECTED_AGENTS[@]}"; do fi done if [ ${#MISSING_AGENTS[@]} -eq 0 ]; then - pass "All 8 agents present (analyzer, interviewer, plugin-advisor, readme-updater, refactorer, scaffolder, onboarder, status-reporter)" + pass "All 8 agents present (analyzer, interviewer, plugin-advisor, doc-syncer, refactorer, scaffolder, onboarder, status-reporter)" else warn "Missing agents: ${MISSING_AGENTS[*]} — run: bash link.sh" fi