Python Analytics Skills - Plugin Development
Adding a New Skill
Create a directory under
skills/:skills/your-skill-name/ ├── SKILL.md # Required: main instructions └── references/ # Optional: detailed reference docsSKILL.mdmust have YAML frontmatter withnameanddescription:--- name: your-skill-name description: > When to trigger this skill. Include keywords and task descriptions that help the assistant decide when to load it. ---The
namefield must match the directory name exactly.Add the skill path to
.claude-plugin/marketplace.jsonin theskillsarray:"skills": [ "./skills/pymc-modeling", "./skills/marimo-notebook", "./skills/your-skill-name" ]Add an entry to
skills.json.Run
./install.sh --validateto verify.
Skill Structure Requirements
SKILL.mdis the entry point -- keep it focused and actionable- Put detailed reference material in
references/*.mdand link from SKILL.md - Description should be under 1024 characters
- Include trigger phrases in the description (keywords that indicate when the skill should activate)
Testing Locally
# Validate structure
./install.sh --validate
# Test as a plugin
claude --plugin-dir .
# Test hooks
echo '{"user_prompt": "test prompt"}' | bash hooks/suggest-skill.sh
Hook Development
Hooks live in hooks/hooks.json. The plugin uses UserPromptSubmit to suggest skills.
To add a new hook:
- Add the hook configuration to
hooks/hooks.json - If using a command hook, create the script and make it executable
- Use
${CLAUDE_PLUGIN_ROOT}for all file paths (never hardcode) - Hooks must exit 0 -- failures should be handled gracefully
- Set appropriate timeouts (default: 60s for commands, 30s for prompts)
- Restart Claude Code to pick up hook changes (hooks load at session start)
See the hook-development skill for full reference.