From permitcrab
Diagnose permitcrab install health - script presence, version drift, hook wiring, common misconfigurations. Use when permitcrab isn't working as expected, the user asks to debug, troubleshoot, verify, or validate permitcrab, after upgrading the plugin, or to check status of a fresh install. Read-only; reports issues but does not fix them.
How this skill is triggered — by the user, by Claude, or both
Slash command
/permitcrab:doctorThis skill is limited to the following tools:
The summary Claude sees in its skill listing — used to decide when to auto-load this skill
Read-only health check for permitcrab. Reports issues; does not fix them. To repair, invoke `permitcrab:install` or `permitcrab:setup` as the report suggests.
Read-only health check for permitcrab. Reports issues; does not fix them. To repair, invoke permitcrab:install or permitcrab:setup as the report suggests.
Run node --version and verify it exits zero and reports v18 or newer. If node is missing or older than 18, report it and flag the install as broken; permitcrab's runtime entrypoints will fail to load.
Verify each of the following exists, is a regular file, and is executable:
~/.permitcrab/resolve-permissions.js~/.permitcrab/auto-deny-dangerous.js~/.permitcrab/permission-notification.js~/.permitcrab/VERSIONVerify the shared modules are present (regular files, executable bit not required since they are required as modules):
~/.permitcrab/lib/js-yaml.js~/.permitcrab/lib/permissions.js~/.permitcrab/lib/io.jsMissing or non-executable: report and suggest permitcrab:install.
Read ~/.permitcrab/VERSION and ${CLAUDE_PLUGIN_ROOT}/VERSION. If they differ, report version drift and suggest permitcrab:install. permitcrab's own SessionStart hook auto-repairs this on the next session start, but doctor should still surface it so the user knows.
Verify ${CLAUDE_PLUGIN_ROOT}/hooks/hooks.json contains:
SessionStart hook pointing to ensure-installed.shPreToolUse:Bash hook pointing to auto-deny-dangerous.jsPermissionRequest:Bash|Read|Write|Edit hook pointing to ~/.permitcrab/resolve-permissions.jsNotification:permission_prompt hook pointing to ~/.permitcrab/permission-notification.jsAny missing or pointing elsewhere: report and explain how to fix (usually a re-clone or marketplace re-install).
Use Grep (with output_mode: files_with_matches) to find resolve-permissions references in any hooks.json or SKILL.md outside permitcrab itself. For each hit, only Read the matching line range, not the whole file. The old per-plugin pattern uses ${CLAUDE_PLUGIN_ROOT}/scripts/resolve-permissions.*; those plugins should reference $HOME/.permitcrab/resolve-permissions.js instead, OR remove their local hook entirely and rely on permitcrab's global hook.
Report each instance found, with the file path. If more than 20 hits, summarize counts and list the first 20 only.
Use Grep to find SKILL.md files containing a permissions: block (pattern ^permissions:, output_mode: files_with_matches). For each hit:
Read only the frontmatter section to check whether the block parses and whether matching tool usage is plausible.permissions: block that declares operations none of the skill's allowed-tools cover.This is a lightweight version of permitcrab:audit. Doctor reports the existence of problems; audit explains them. Do not walk the workspace exhaustively if the user is in a large monorepo - cap the report at 20 findings and suggest invoking permitcrab:audit for a deeper pass.
Group findings by check. For each:
End with a one-line overall verdict: healthy, degraded (warnings only), or broken (any failures).
permitcrab:audit.npx claudepluginhub brennacodes/utilitry --plugin permitcrabProvides CDSS development patterns for drug interaction checking, dose validation, clinical scoring (NEWS2, qSOFA), and alert classification integrated into EMR workflows.