Skip to main content
skill CX Codex

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.

Install into Claude Code · Skills CLI (Vercel) All methods and platforms ↓
npx skills add elastic/integration-skills --skill dashboard-guidelines -a claude-code
Open on GitHub

What 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-package workflow 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-code

2Manually: put the files in place

~/.claude/skills/dashboard-guidelines/SKILL.md

Copy the whole skill folder; for one project use .claude/skills/dashboard-guidelines/

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

Similar skills

All skills for DevOps and infrastructure →

From the same set14

Project sponsors

Companies that keep this analytics open
Gold sponsor

Impressions, clicks and code copies — open statistics. We keep the numbers public for the same reason NeBlask itself is public. Become a sponsor