command · sumi · v0.6.1
/sumi:doctor
Read-only diagnosis of the Sumitsubo install and this project's setup — marketplace source, plugin versions against their source, companions, and the project's own config. Reports and points at the command that fixes each row; changes nothing.
- Reference
- sumi
- command
- /sumi:doctor
- source
- plugins/sumi/commands/doctor.md
This command never writes. Every other /sumi:* command changes something;
this one only looks. If a row needs fixing, name the command that fixes it and
stop. That is the whole contract — a diagnosis you cannot trust to be
read-only is one you hesitate to run.
Install.
claude plugin list --jsonandclaude plugin marketplace list --json. Both return arrays. For every entry whoseidends@sumitsubo, readversion,enabled,scopeand — when present —folderVersionandreadFromFolder.Marketplace source. From the marketplace list, report the
sumitsuboentry'ssource.directorymeans it is wired to a local checkout, so edits there are live andclaude plugin marketplace update sumitsubois what republishes them;githubmeans it tracks the published repo. Neither is wrong — but which one it is governs every other row, and nothing in the normal flow ever shows it.Version drift. A plugin whose
versionis behind itsfolderVersionis running from a cached copy older than the source it reads. The skills and commands added since are simply absent from the session, with no error and no sign. List every one asbehind, with both numbers, and give the single command that fixes them all:claude plugin marketplace update sumitsubofollowed by a restart.Enablement. Report any
@sumitsuboplugin installed butenabled: false, withclaude plugin enable <name>@sumitsubo. Note the expected shape rather than a fixed count — the two core plugins, the stack packs the project needs, and the companions they pull as dependencies.Companions. Do not re-derive what
/sumi-design:depsalready does. Say how many@sumitsubocompanions are installed and enabled, and if any look wrong, point at/sumi-design:deps.check-companions.mjsresolves them against their upstream repos, but it lives in the framework repository and is NOT packaged into the plugin — on a normal install there is noscripts/directory to run it from. So: suggest it only when step 2 found the marketplace is a local checkout, and build the path from that entry'sinstallLocation, never from${CLAUDE_PLUGIN_ROOT}. Otherwise say the upstream check is not available from an installed copy and move on. It is also the one check that needs the network, so never run it unasked.This project. Only if the working directory is a project, not the framework repo:
.sumi/config.json— present?stack,modelProfileand the line budget; any key missing against${CLAUDE_PLUGIN_ROOT}/templates/config.json.CLAUDE.md— is there asumi:begin/sumi:endblock, and does its version match the current template? If absent,/sumi:init; if behind,/sumi:sync..sumi/tasks/— active feature files, and.sumi/reviews/— whether the most recent receipt is burned. State plainly when the directory is the framework repo itself and these rows do not apply, rather than reporting them as missing.
Report per
sumi:output. Subject: the marketplace source and the plugin count. Result: the number of rows needing attention, or that everything is current. Body: one table of area · state · fix, withokrows kept — the value of a diagnosis is partly in what it rules out. Next step: the single command that clears the most rows, usually the marketplace update.
Report a row as ok only when you have the output that shows it. Anything you
could not read is unknown, never ok.