SiftStack doctor
Answer one question: of the SiftStack skills, what runs today and what is blocked on what.
Run it
python "${CLAUDE_PLUGIN_ROOT}/scripts/doctor.py"
Use python3 if python is not on the PATH. Add --env-dir <folder> when the person keeps their .env somewhere other than the current folder, and --json when you need to reason over the result instead of showing it.
The script reads environment variables and a .env in the chosen folder. It records which NAMES are set and never reads a value into its output. You MUST NOT open or print the .env yourself, because the whole point of the script is that a credential never lands in the conversation.
Report it
Give the person the three groups in this order, in plain words:
- Works right now. These need nothing.
- Signed-in services. Keys are fine, but the skill drives a site they must be logged in to. This cannot be checked from here, so say so instead of calling it ready.
- Needs a credential. For each: the variable name, the real cost, and the route to use without it. A blocked skill with a fallback is not a dead end, so always say the fallback in the same breath.
Then offer the setup skill if anything is blocked and they want to unblock it. Do not push keys on someone whose work is covered by the first group.
When it cannot run
No Python available (some Cowork sessions): read ${CLAUDE_PLUGIN_ROOT}/data/requires.json directly. Each package lists requires.tier (none, account, api), requires.env, requires.cost and requires.fallback. Report tier none as working, and everything else as "needs X", since without the script you cannot see which variables are set.