config
Adjust Skill Autopilot settings — mute it, change aggressiveness (teaching/normal/quiet), switch guidance language (en/zh), or toggle the auto plan-mode gate.…
Diagnose whether Skill Autopilot's hooks are actually firing and config is valid. Use when the autopilot seems inactive, suggestions never appear, after install or update to verify setup, or the user says "autopilot不工作", "check autopilot", "autopilot broken".
$ npx -y skills add WinterDDo/claude-code-skill-autopilot --skill doctor --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/doctorContext preview
The summary Claude sees to decide when to auto-load this skill.
Diagnose whether Skill Autopilot's hooks are actually firing and config is valid. Use when the autopilot seems inactive, suggestions never appear, after install or update to verify setup, or the user says "autopilot不工作", "check autopilot", "autopilot broken".
name: doctor description: Diagnose whether Skill Autopilot's hooks are actually firing and config is valid. Use when the autopilot seems inactive, suggestions never appear, after install or update to verify setup, or the user says "autopilot不工作", "check autopilot", "autopilot broken".
Two independent checks. Report both, then a one-line verdict.
State plainly, first: did the CURRENT prompt's context contain a block starting with `[AUTOPILOT]`? Yes or no. If yes, injection reaches the model — the core product works.
Run:
sh "${CLAUDE_PLUGIN_ROOT}/hooks/run.sh" doctor-noop 2>/dev/null; python3 "${CLAUDE_PLUGIN_ROOT}/scripts/doctor.py" "$HOME/.claude/command-autopilot" "<current session id if known>"Read the output. Key line is `router canary`: if it shows THIS session, the hook fired end-to-end. If it says NEVER FIRED, tell the user to restart Claude Code (hooks load at startup) and run this skill again.
Report what the skill layer sees and has done. All read-only, no writes:
python3 - <<'EOF'
import json, os
d = os.path.expanduser("~/.claude/command-autopilot")
try:
idx = json.load(open(d + "/skills-index.json")); b = idx.get("budget", {})
print("skills indexed:", len(idx.get("skills", [])),
"| parked (native can't auto-fire these):", b.get("parked_count"),
"| over native budget:", b.get("over_budget"))
except Exception:
print("no skills index yet — restart Claude Code so SessionStart builds it")
try:
s = json.load(open(d + "/state.json")); w = s.get("counters", {}).get("wake", {})
f = lambda k: sum(v.get(k, 0) for v in w.values())
print("wake popups — shown:", f("shown"), "accepted:", f("accepted"), "declined:", f("declined"))
except Exception:
pass
EOFReport in one line: N skills installed, M parked (invisible to native — the ones the autopilot uniquely surfaces), and the wake shown/accepted tally. If `shown` is still 0 after real use, surfacing isn't firing yet — say so honestly; the real ledger is the judge, not assumptions.
Use the skills you've installed — not just the ones you remember. You install skills to extend Claude Code — then forget which ones you have, or when they fit.
Adjust Skill Autopilot settings — mute it, change aggressiveness (teaching/normal/quiet), switch guidance language (en/zh), or toggle the auto plan-mode gate.…
Distill Skill Autopilot's accumulated usage evidence into personalized rules — the self-evolution step. Use when the autopilot announces an evolution window,…
Show the Skill Autopilot dashboard — what it did for you, before/after comparison, learned rules with evidence, mastered commands. Also drafts a feedback…
Guided first tour of Skill Autopilot — see auto plan mode happen, learn the 4 habit commands (/clear, /btw, /rewind, plan mode), and what Claude now handles…
Explain what's newly possible — new Claude Code commands after a knowledge-base update, and installed-but-never-used skills. Use when the autopilot announces a…