dashboard-guidelines — Claude Code skill: what it does, how to install
Guides the creation and review of Kibana dashboards for Elastic integration packages. Enforces asset file naming, Lens usage, and data stream filtering.
npx skills add elastic/integration-skills --skill dashboard-guidelines -a claude-codeWhat dashboard-guidelines does
This skill directs an agent when handling Kibana JSON files in the kibana/dashboard/ folder. It steers visualizations toward Lens instead of TSVB, requiring panels embedded by value so boards stay self-contained. Queries must scope down with data_stream.dataset to stop dashboards from querying unconstrained logs-* or metrics-* indices.
Asset synchronization relies on the elastic-package CLI. Developers build visual boards inside a running Kibana instance, then pull definitions into the repository using elastic-package export or elastic-package edit dashboards. Validation happens with elastic-package check. If a running Kibana instance or sample data is missing, asset exports cannot succeed.
File conventions require the {PACKAGE_NAME}-{identifier}.json pattern, alongside titles like [Metrics System] Host overview. The skill explicitly leaves ingest pipeline logic and directory scaffolding to other specialized integration guides.
What it helps with
- validate Kibana dashboard JSON files before submitting pull requests
- scope dashboard panel queries using
data_stream.dataset - export edited dashboards from Kibana into integration package folders
- apply standard naming conventions to dashboard titles and asset files
Example prompts for the agent
- Review the dashboard files under
kibana/to verify naming patterns and dataset filters - Show the
elastic-packageworkflow for updating and exporting managed dashboards - Check if these Kibana visualization panels are embedded by value
How to install dashboard-guidelines
1Skills CLI (Vercel)
npx skills add elastic/integration-skills --skill dashboard-guidelines -a claude-code2Manually: put the files in place
~/.claude/skills/dashboard-guidelines/SKILL.mdCopy the whole skill folder; for one project use .claude/skills/dashboard-guidelines/
1Skills CLI (Vercel)
npx skills add elastic/integration-skills --skill dashboard-guidelines -a codex2Manually: put the files in place
.agents/skills/dashboard-guidelines/SKILL.mdFor all projects use ~/.agents/skills/
1Skills CLI (Vercel)
npx skills add elastic/integration-skills --skill dashboard-guidelines -a cursor2Manually: put the files in place
.cursor/skills/dashboard-guidelines/SKILL.mdCursor also reads .agents/skills/ and .claude/skills/
1GitHub CLI
gh skill install elastic/integration-skills dashboard-guidelines2Manually: put the files in place
.github/skills/dashboard-guidelines/SKILL.md1Skills CLI (Vercel)
npx skills add elastic/integration-skills --skill dashboard-guidelines -a gemini-cli2Platform CLI
gemini skills install https://github.com/elastic/integration-skills --path skills/dashboard-guidelinesManually: put the files in place
.devin/skills/dashboard-guidelines/SKILL.mdThe legacy .windsurf/skills/ path still works
Skills CLI (Vercel)
npx skills add elastic/integration-skills --skill dashboard-guidelines -a opencodeClaude.ai
Zip the folder and upload it in Settings → Capabilities → Skills
Step by step, with commands for each platform: How to install skills in Claude Code: five ways
Questions about dashboard-guidelines
How to install dashboard-guidelines in Claude Code?
Run npx skills add elastic/integration-skills --skill dashboard-guidelines -a claude-code in your terminal.
What does the dashboard-guidelines skill do?
It provides guidelines for creating, exporting, and validating Kibana dashboards inside Elastic integration packages.
What dependencies are required to use these guidelines?
You need a running Kibana instance on a stable release, sample integration data, and the elastic-package CLI tool.
Source text
SKILL.md · Apache-2.0
---
name: dashboard-guidelines
description: "Use when creating or reviewing Kibana assets in packages, including dashboard export structure, naming, and data stream alignment."
license: Apache-2.0
metadata:
author: elastic
version: "1.0"
---
# dashboard-guidelines
## When to use
Use this skill when tasks include:
- creating new Kibana dashboards for an integration package
- reviewing dashboard JSON changes in `kibana/` folders
- exporting dashboard updates from Kibana into package source
- verifying dashboard naming and file layout against package spec
- checking dashboard/data stream alignment through `data_stream.dataset` filtering
## When not to use
Do not use this skill as the primary guide for:
- package and data stream directory scaffolding (`create-integration`, `package-structure`)
- ingest pipeline parsing and normalization logic (`ingest-pipelines`)
- package-wide command orchestration and stack lifecycle decisions (`elastic-package-cli`)
- test suite selection outside dashboard-focused checks (`integration-testing` → `references/system-testing.md`)
## Preconditions
Before creating or updating dashboard assets, verify:
1. you are in the correct package directory (`packages/<package_name>/`)
2. Kibana/Elastic services are available for editing and exporting assets
3. sample data exists and dashboards can be validated against realistic events/metrics
4. package `manifest.yml` compatibility constraints (`conditions.kibana.version`) are understood
## Workflow: create, export, validate
1. Build or update dashboards in Kibana.
- Prefer Lens for new visualizations.
- Keep panels in the dashboard itself (by value) unless shared-library behavior is intentionally required.
2. Export assets back into the package.
```bash
# from package root
elastic-package export
```
3. If you need to modify installed managed dashboards before exporting:
```bash
elastic-package edit dashboards
elastic-package export dashboards
```
4. Review exported files under `kibana/`:
- file names match package spec
- no stale field names after mapping changes
- dashboard filters are scoped to integration datasets
5. Run package validation commands before opening a PR:
```bash
elastic-package check
```
## Naming conventions
Use naming conventions from dashboard creation guidance:
- Visualization title:
- `<Name>` (avoid repeating package name in each panel title)
- Dashboard title:
- `[<Metrics | Logs> <PACKAGE NAME>] <Name>`
- examples: `[Metrics System] Host overview`, `[Logs Nginx] Access overview`
- Dashboard asset file:
- `{PACKAGE_NAME}-{identifier}.json`
- example: `nginx-046212a0-a2a1-11e7-928f-5dbe6f6f5519.json`
## Design and modeling best practices
- Use stable released Kibana versions (avoid SNAPSHOT).
- Keep dashboards focused; split overloaded boards and provide navigation links.
- Prefer by-value panels so dashboards remain self-contained.
- Prefer Lens over TSVB for new visualizations.
- Add controls using dashboard-native **Controls** (not deprecated input controls visualization).
- Include dataset-aware filtering to prevent broad `logs-*` / `metrics-*` queries where possible.
- baseline recommendation: filter by `data_stream.dataset`
- Keep visual hierarchy clear:
- most important summary panels near the top
- related charts grouped together
- margins enabled for readability
- Use concise, self-explanatory panel titles and consistent accessible colors.
## Quality checklist before PR
- dashboard assets are in `kibana/dashboard/` and follow expected naming pattern
- dashboard content reflects current field names and types
- visualizations are embedded by value unless there is a documented exception
- dashboard or panel queries include integration-relevant filters (`data_stream.dataset` when applicable)
- controls/drilldowns/navigation are coherent for multi-dashboard packages
- exported dependencies are committed (dashboards plus required saved objects)
- `elastic-package check` passes for the package
## Common pitfalls
- exporting from an unstable Kibana build and committing incompatible saved object data
- using generic, unfiltered `logs-*`/`metrics-*` queries that cause noisy or slow panels
- keeping stale field references after pipeline/field mapping changes
- overloading one dashboard instead of splitting into overview and deep-dive views
- relying on library visualizations unintentionally, causing hidden dependencies
- inconsistent naming between dashboard title, file name, and package context
## Handoff to other skills
After dashboard updates are in place, continue with:
1. `dashboard-review` for reviewing dashboard JSON changes in a PR or branch
2. `integration-testing` → `references/system-testing.md` for system test validation
3. `elastic-package-cli` for broader check/lint/test command selection
4. `package-spec` when dashboard changes require a release note entry
## References
- `references/kibana-assets-layout.md`
© elastic · Apache-2.0 · elastic/integration-skills