Thank you for your interest in contributing! This guide covers the conventions and workflows you need to know.
| Content | Authored in | Notes |
|---|---|---|
| Skills | elastic/agent-skills-sandbox → elastic/agent-skills → here |
Synced automatically. Do not edit files under skills/. |
| Hooks | This repo | Authored directly. |
| Agents | This repo | Authored directly (future). |
| Plugin manifest | This repo | skills array in plugin.json is auto-generated by CI; all other fields are hand-maintained. |
# Clone and install
git clone git@github.com:elastic/claude-plugin.git
cd claude-plugin
npm install
# Run checks locally (same as CI)
npm run lint
npm test
claude plugin validate --strict .
# Test the plugin with Claude Code
claude --plugin-dir /path/to/claude-plugin- Create a branch from
main(useoriginor a personal fork). - Make your changes.
- Ensure
npm run lint,npm test, andclaude plugin validate --strict .all pass. - Open a PR against
main.
The changelog follows keep-a-changelog format.
CI auto-generates entries from PR titles into the [Unreleased] section.
Add the skip-changelog label if the change doesn't warrant one (e.g. CI config,
docs-only changes).
Adding this label after a changelog commit is generated will revert that commit.
Use Assisted-by: trailers for AI-assisted commits,
following the Linux kernel convention adopted at Elastic:
Add frobnicate hook for Kibana dashboards
Assisted-by: Claude Code <noreply@anthropic.com>
Skills are not authored in this repo. The workflow is:
- Draft in
elastic/agent-skills-sandbox. - Promote to
elastic/agent-skillsonce reviewed. - On each
agent-skillsrelease, skills are synced here automatically.
If you find a bug in a skill, fix it upstream in agent-skills-sandbox.
If you need to manually regenerate the skills array in plugin.json:
bash scripts/generate-skills-list.shThis requires jq. CI also runs this automatically when skills/ changes.