Skip to content

Latest commit

 

History

History
78 lines (54 loc) · 3.51 KB

CONTRIBUTING.md

File metadata and controls

78 lines (54 loc) · 3.51 KB

Contributing to the Elastic Claude Plugin

Thank you for your interest in contributing! This guide covers the conventions and workflows you need to know.

What lives where

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.

Getting started

# 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

Making changes

  1. Create a branch from main (use origin or a personal fork).
  2. Make your changes.
  3. Ensure npm run lint, npm test, and claude plugin validate --strict . all pass.
  4. Open a PR against main.

Changelog

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.

Commit messages

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

Skills are not authored in this repo. The workflow is:

  1. Draft in elastic/agent-skills-sandbox.
  2. Promote to elastic/agent-skills once reviewed.
  3. On each agent-skills release, skills are synced here automatically.

If you find a bug in a skill, fix it upstream in agent-skills-sandbox.

Regenerating the skills list

If you need to manually regenerate the skills array in plugin.json:

bash scripts/generate-skills-list.sh

This requires jq. CI also runs this automatically when skills/ changes.