claude-skills-troubleshooting

v2026.09.24

Diagnose and resolve Claude Code plugin and skill issues. This skill should be used when plugins are installed but not showing in available skills list, skills are not activating as expected, or when troubleshooting enabledPlugins configuration in settings.json. Triggers include "plugin not working", "skill not showing", "installed but disabled", or "enabledPlugins" issues.

GitHub
Install command
npx skhub add daymade/claude-skills-troubleshooting
Markdown
SKILL.md

Claude Skills Troubleshooting

Overview

Diagnose and resolve common Claude Code plugin and skill configuration issues. This skill provides systematic debugging workflows for plugin installation, enablement, and activation problems.

Quick Diagnosis

Run the diagnostic script to identify common issues:

python3 scripts/diagnose_plugins.py

The script checks:

  • Installed vs enabled plugins mismatch in both directions (installed-but-not-enabled and enabled-but-not-registered)
  • Missing enabledPlugins entries in settings.json
  • Stale marketplace cache using known_marketplaces.json lastUpdated
  • Missing, malformed, timezone-free, or future lastUpdated metadata
  • Invalid plugin configurations

Treat lastUpdated as the only cache-freshness source. Do not fall back to cache-directory modification times: marketplace updates can refresh nested files without changing that directory timestamp. The diagnostic exits nonzero for stale caches or invalid freshness metadata.

Common Issues

Issue 1: Plugin Installed But Not Showing in Available Skills

Symptoms:

  • /plugin shows plugin as installed
  • Skill not appearing in Skill tool's available list
  • Plugin metadata exists in installed_plugins.json

Root Cause: Known bug (GitHub #17832) - plugins are added to installed_plugins.json but NOT automatically added to enabledPlugins in settings.json.

Diagnosis:

# Check if plugin is in installed_plugins.json
cat ~/.claude/plugins/installed_plugins.json | grep "plugin-name"

# Check if plugin is enabled in settings.json
cat ~/.claude/settings.json | grep "plugin-name"

Solution:

# Option 1: Use CLI to enable
claude plugin enable plugin-name@marketplace-name

# Option 2: Manually edit settings.json
# Add to enabledPlugins section:
# "plugin-name@marketplace-name": true

Mirror variant — enabled but not registered: If diagnosis instead shows the plugin in enabledPlugins but NOT in installed_plugins.json, the cause is the symlink-skip bug: the install ran under a config dir where installed_plugins.json is a symlink (multi-profile shared setups), and the CLI silently skipped writing it. See references/known_issues.md → "Symlinked installed_plugins.json". Fix:

# Reinstall from the config dir owning the real file
CLAUDE_CONFIG_DIR=~/.claude claude plugin install plugin-name@marketplace-name

# Then confirm
claude plugin list

Issue 2: Understanding Plugin State Architecture

Key files:

FilePurpose
~/.claude/plugins/installed_plugins.jsonRegistry of ALL plugins (installed + disabled)
~/.claude/settings.json → enabledPluginsControls which plugins are ACTIVE
~/.claude/plugins/known_marketplaces.jsonRegistered marketplace sources
~/.claude/plugins/cache/Actual plugin files

A plugin is active ONLY when:

  1. Exists in installed_plugins.json (registered)
  2. Listed in settings.json → enabledPlugins with value true

Issue 3: Marketplace Cache Stale

Symptoms:

  • GitHub has latest changes
  • Install finds plugin but gets old version
  • Newly added plugins not visible

Solution:

# Update marketplace cache
claude plugin marketplace update marketplace-name

# Or clear and re-fetch
rm -rf ~/.claude/plugins/cache/marketplace-name
claude plugin marketplace update marketplace-name

Issue 4: Plugin Not Found in Marketplace

Common causes (in order of likelihood):

  1. Local changes not pushed to GitHub - Most common!

    git status
    git push
    claude plugin marketplace update marketplace-name
    
  2. marketplace.json configuration error

    python3 -m json.tool .claude-plugin/marketplace.json
    
  3. Skill directory missing

    ls -la skill-name/SKILL.md
    

Diagnostic Commands Reference

PurposeCommand
List marketplacesclaude plugin marketplace list
Update marketplaceclaude plugin marketplace update {name}
Install pluginclaude plugin install {plugin}@{marketplace}
Enable pluginclaude plugin enable {plugin}@{marketplace}
Disable pluginclaude plugin disable {plugin}@{marketplace}
Uninstall pluginclaude plugin uninstall {plugin}@{marketplace}
Check installedcat ~/.claude/plugins/installed_plugins.json | jq '.plugins | keys'
Check enabledcat ~/.claude/settings.json | jq '.enabledPlugins'

Batch Enable Missing Plugins

To enable all installed but disabled plugins from a marketplace:

python3 scripts/enable_all_plugins.py marketplace-name

Skills vs Commands Architecture

Claude Code has two types of user-invocable extensions:

  1. Skills (in skills/ directory)

    • Auto-activated based on description matching
    • Loaded when user request matches skill description
  2. Commands (in commands/ directory)

    • Explicitly invocable via /command-name
    • Appears in Skill tool's available list
    • Requires command file (e.g., commands/seer.md)

If a skill should be explicitly invocable, add a corresponding command file.

References

  • See references/known_issues.md for GitHub issue tracking
  • See references/architecture.md for detailed plugin architecture
Discovery
Tags

No tags published for this skill.

Version
Latest version metadata

Version

v2026.09.24

Published

Sep 24, 2026

Category

Uncategorized

License

MIT

Source path

daymade-claude-code/claude-skills-troubleshooting

Default branch

main

Latest commit

1ecf11e

Tree SHA

03f1d07