Agent skill

Grafana Dashboards

by hardisgroupcom in hardisgroupcom/sfdx-hardis

Rules and workflow for the "Org Monitoring by sfdx-hardis" Grafana dashboards v2 (docs/grafana/dashboards-v2).

AGPL-3.0Auto-check: notesDevOps & Cloud

Install Grafana Dashboards

skills CLI
$ npx skills add hardisgroupcom/sfdx-hardis --skill grafana-dashboards -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install hardisgroupcom/sfdx-hardis grafana-dashboards --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/hardisgroupcom/sfdx-hardis.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.claude/skills/grafana-dashboards .claude/skills/grafana-dashboards && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
grafana-dashboards
GitHub stars
403
Token cost
~3.5k tokens
SKILL.md length
1,746 words
Files
1
Skills in repo
21
Repo updated
First seen
Licence
AGPL-3.0

At a glance

Rules and workflow for the "Org Monitoring by sfdx-hardis" Grafana dashboards v2 (docs/grafana/dashboards-v2).

  • Works in 6 steps: New indicator / new metric key: decide… → Renamed/removed metric key: grep the… → Changed logElements fields: check Loki… → …
  • Modifying v2 dashboards
  • SKILL.md covers Source of truth, Data model reminder, DOs and DON'Ts, plus 2 more sections
  • Calls node, npx and git; needs GRAFANA_TOKEN and SFDX_HARDIS_MONITORING_KEY

What it does

Grafana Dashboards is an agent skill from hardisgroupcom/sfdx-hardis. Rules and workflow for the "Org Monitoring by sfdx-hardis" Grafana dashboards v2 (docs/grafana/dashboards-v2). Use when creating or modifying v2 dashboards or alert rules, AND whenever a monitoring indicator (notification type, metric, logElements shape) is created, updated, or deleted - every indicator evolution must handle its impact on the dashboards.

Its SKILL.md is about 3.5k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

It sits in DevOps & Cloud, covering Monitoring and alerting. It works with Grafana and Salesforce. The repository describes itself as: French-army-knife Toolbox for Salesforce. Orchestrates base commands and assist users with interactive wizards to make much more than native Salesforce CLI + Allows you to define…. The licence is AGPL-3.0.

When your agent uses it

  • Modifying v2 dashboards
  • Whenever a monitoring indicator (notification type
  • LogElements shape) is created
  • Deleted - every indicator evolution must handle its impact on the dashboards

Example prompts

  • “Org Monitoring by sfdx-hardis”
  • “Use the grafana-dashboards skill to rule and workflow for the "Org Monitoring by sfdx-hardis" Grafana dashboards v2 (docs/grafana/dashboards-v2)”
  • “/grafana-dashboards”

Requirements

  • Node.js
  • A credential in GRAFANA_TOKEN
  • A credential in SFDX_HARDIS_MONITORING_KEY

Workflow steps

6 steps, taken from the first numbered list in SKILL.md.

  1. New indicator / new metric key: decide where it surfaces - existing dashboard row, new panel, fleet column, or only the generic Indicator…
  2. Renamed/removed metric key: grep the generator for the old _metric name and update every query, and check docs/grafana/alerts-v2/ for…
  3. Changed logElements fields: check Loki table panels extracting those fields (jsonArrayToRows, extractJson paths) and the anonymizer's…
  4. New notification type: it appears automatically in the Indicator Detail dashboard $type variable (Loki label values) - explicit panels are…
  5. Regenerate (node generator.mjs), run the lint suite, re-import to the sfdx-hardis-v2 folder, and update…
  6. The monitoring AGENTS.md tells coding agents how to query these logs and metrics (labels, payload fields, _metric naming, lookback…

What it can do on your machine

Read from SKILL.md and the folder at commit 3fc5532. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • node
    • npx
    • git

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md. Its commands use npx and git, which can reach the network depending on how they are called.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names these keys or tokens, usually read from environment variables:

    • GRAFANA_TOKEN
    • SFDX_HARDIS_MONITORING_KEY

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Grafana Dashboards loads about 3.5k tokens when it runs. Until then it costs about 94 tokens; SKILL.md has 1,746 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~94
When it runs · the whole SKILL.md, loaded when a task matches
~3.5k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check: notes

The automated check noted patterns worth knowing about, such as sudo or a known installer.

  • NoteMentions a .env fileSKILL.md:50
    **DO validate live before delivering**: `.env` contains `GRAFANA_TOKEN`, a service account of the team's Grafana instanc

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from hardisgroupcom/sfdx-hardis at commit 3fc5532, republished under its AGPL-3.0 licence (© hardisgroupcom). 1,746 words, ~3,483 tokens.

Download SKILL.mdSave it as .claude/skills/grafana-dashboards/SKILL.md (or your agent's skills folder).
name
grafana-dashboards
description
Rules and workflow for the "Org Monitoring by sfdx-hardis" Grafana dashboards v2 (docs/grafana/dashboards-v2). Use when creating or modifying v2 dashboards or alert rules, AND whenever a monitoring indicator (notification type, metric, logElements shape) is created, updated, or deleted - every indicator evolution must handle its impact on the dashboards.
user-invocable
false

Grafana Dashboards v2 (Org Monitoring by sfdx-hardis)

Everything needed to build, modify and validate the v2 Grafana dashboards without rediscovering the constraints. The generic Grafana skills (dashboarding, promql, loki, alerting-irm in .claude/skills/) cover Grafana itself; THIS skill covers the sfdx-hardis-specific rules.

Source of truth

  • Dashboards: docs/grafana/dashboards-v2/*.json - GENERATED FILES, never edit them directly.
  • Generator: docs/grafana/dashboards-v2/generator.mjs. Edit it, then run node generator.mjs from that folder to rewrite all JSONs.
  • Panel id lock: docs/grafana/panel-ids-v2.json - generated, commit it with the dashboards, never hand-edit. Keeps every panel id stable across insertions and reorderings (see the DON'Ts).
  • Alert pack: docs/grafana/alerts-v2/sfdx-hardis-alerts.yaml (hand-written YAML, all rules isPaused: true).
  • Lint suite: test/grafana-dashboards-v2.test.ts - enforces most rules below; run with npx mocha "test/grafana-dashboards-v2.test.ts".
  • Docs page: docs/salesforce-monitoring-grafana-v2.md.
  • Installer command: hardis:org:configure:grafana-dashboards (src/common/grafana/grafanaDashboardsInstaller.ts) fetches the dashboards from GitHub raw at runtime and imports them via the Grafana HTTP API. When adding or removing a dashboard JSON, update GRAFANA_V2_FALLBACK_DASHBOARD_FILES there (enforced by the lint suite).
  • v1 dashboards (docs/grafana/dashboards/) are frozen: never modify them.

Data model reminder

sfdx-hardis pushes to two backends (see src/common/notifProvider/apiProvider.ts):

  • Loki (logs): stream labels source="sfdx-hardis", type (notification type key), orgIdentifier, gitIdentifier, severity. The log line is a JSON body: metric, _metrics, _metricsKeys, _logElements (detail rows), _title, _logBodyText, _dateTime, _jobUrl.
  • Prometheus/Mimir (metrics): each metrics key of a notification becomes <Key>_metric (plus _max / _percent variants for object-form values), labeled with source, type, orgIdentifier, gitIdentifier.

PII: in CI, sensitive fields in _logElements are pseudonymized (user_xxxxxxxxxx, id_xxxxxxxxxx, ip_xxxxxxxxxx) by src/common/utils/anonymizeUtils.ts (levels: standard / strict, actor fields readable at standard). Dashboards must never rely on readable usernames.

Two emission rules decide whether a panel can show a number at all:

  • A value of exactly 0 IS emitted. apiProvider used to test min/max/percent/value for truthiness, so a metric sitting at zero produced no field and the series disappeared: a limit at 0% read as "no data" instead of charting a zero. Fixed in 7.24; older CLI versions still drop it, which is what RECENT_CLI_NOTE warns about.
  • A feature that is not provisioned emits NO metric, rather than a zero (no AiUsageCreditsTotal on an org without a Data 360 consumption model). A confident 0 would claim "nothing consumed" when the truth is "not available here". Such panels need a noValue empty state ("Requires Data 360"), never a threshold that treats 0 as good news.

DOs

  • DO wrap every Prometheus selector in a lookback window: last_over_time(M{...}[2d]), avg_over_time(M{...}[7d]), etc. Metrics arrive ONCE PER DAY; a bare selector returns "no data" (5-minute default lookback). Enforced by lint.
  • DO aggregate per org: max by (orgIdentifier) (...) on every stat/gauge query (min by for time-to-exhaustion forecasts). Orgs can expose several series for one metric (two gitIdentifier values after a monitoring repo/branch rename); without aggregation, stat panels show two confusing values. For per-limit series use max by (__name__).
  • DO use the datasource variables ${ds_prom} / ${ds_loki} for every panel and target (helpers DS_PROM/DS_LOKI in the generator). They are hidden (hide: 2) - there is always exactly one Prometheus and one Loki receiving sfdx-hardis data.
  • DO put a detail link on every number: each stat/gauge/bargauge must be clickable via fieldConfig.defaults.links. Helpers: indicatorLink('<TYPE>') (generic Indicator Detail dashboard filtered on the notification type), detailLink('<dash-slug>') (another org dashboard), viewPanelLink(...) / linkStatToPanel(...) (full-screen view of a table on the same dashboard, used on fleet for silent orgs / orgs without backup). Enforced by lint (exempt: "Stats generation date", "Latest value", the dtl-indicator dashboard).
  • DO propagate variables AND the time range in links: append ${ds_prom:queryparam}&${ds_loki:queryparam}&${__url_time_range} (already in the helpers) or ${__all_variables}&${__url_time_range} for same-dashboard viewPanel links. The time range is not optional: a stat viewed over 180d shows the last non-null value in that window, so its detail link must open the same window or a stale value lands on an empty page.
  • DO show averages and trends: new numeric indicators should get avg/day (7d/30d) context where relevant (avgStat helper), not just the latest value.
  • DO respect the fleet Environment filter: every fleet-dashboard query must include the $env matcher ({source="sfdx-hardis", $env, orgIdentifier=~"$org"}). It injects orgIdentifier!~".*sandbox.*" for "Production only" (RE2 has no lookbehind, hence matcher-as-variable-value).
  • DO use whitelist organize transformations on Loki tables (includeByName) so backend noise columns (labels, traceID, detected_level) can never appear. __proxy_source__ is excluded centrally by the organize() helper.
  • DO reuse the v1-proven jsonArrayToRows('<field>') chain to render a JSON array field of the latest Loki entry as table rows (_logElements, topFailingFlows, ...).
  • DO keep tables vertical: one row per item, 2-4 columns. Wide "one column per item" layouts cause horizontal scrollbars (the days-until-limit table uses reduce seriesToRows + legendFormat per query for this).
  • DO keep stat titles short (fits a 4-unit-wide box, ~15 chars): "Apex avg/day (30d)", not "Apex errors average per day (30 days)". Longer context goes in the panel description. The ~15 char budget is tied to the box width, so scale it with gridPos.w: on a wider panel a longer title is fine, and when a title reads as clipped mid-word the fix is to widen the panel or shorten the words, never to let Grafana truncate it.
  • DO handle no-data: noValue text on stats (e.g. "Schedule dora-report"), range mappings for degenerate values ("Limit exceeded" for negative forecast days, "No growth" above 3650), and a description mentioning "Requires a recent sfdx-hardis version" for panels fed by newly added metrics (RECENT_CLI_NOTE).
  • DO validate live before delivering: .env contains GRAFANA_TOKEN, a service account of the team's Grafana instance, whose URL goes in GRAFANA_API_URL in the same .env (never in the repository). Test queries through the datasource proxy (/api/datasources/proxy/uid/grafanacloud-prom/api/v1/query, .../grafanacloud-logs/loki/api/v1/query), then import into folder uid sfdx-hardis-v2 via POST /api/dashboards/db with overwrite: true.
  • DO run the lint suite after regenerating - it checks JSON validity, v2 uids/tags, ds variables, no hardcoded stack references, *_over_time wrappers, unique panel ids, and detail links on every number.
Show full SKILL.md (812 more words)Show less

DON'Ts

  • DON'T edit the generated JSONs - always the generator.
  • DON'T hardcode datasource UIDs or any stack-specific string (grafanacloud-, cloudity) anywhere in dashboards - they must import on any Grafana instance (OSS/Enterprise/Cloud). Enforced by lint.
  • DON'T use Grafana Cloud-only features: no ML forecasting (use PromQL predict_linear/deriv), no Cloud-only datasources or panel plugins. Core panels only: stat, gauge, timeseries, table, bargauge, text, row.
  • DON'T display usernames or user lists on dashboards - counts, aggregates and pseudonymized IDs only.
  • DON'T create per-user or per-flow Prometheus label cardinality - per-item detail belongs in Loki _logElements, not in metric labels.
  • DON'T write a {__name__=~"..."} selector without a type="<NOTIF_TYPE>" matcher. A name regex matches across every indicator, so any metric shipped later whose name happens to fit silently joins the panel. The limits dashboard queried {__name__=~".+_percent", source="sfdx-hardis"} with no type, and the day usage entitlements shipped their percent fields they landed in the "All limits" table and timeseries. Scoping each name-regex query to its own notification type also documents which indicator a panel belongs to. When adding an indicator that emits percent/max fields, grep the generator for __name__=~ and check whether an existing panel would swallow it.
  • DON'T do binary operations across {__name__=~...} multi-metric selectors - vector matching collides (same label sets after name is ignored). Use one query per metric, or label_replace tricks, or per-metric explicit queries (see days-until-limit).
  • DON'T touch the v1 dashboards or their Grafana folder (cdklj9xhp8074d).
  • DON'T activate alert rules by default - the alert pack ships isPaused: true (Grafana Cloud free-tier cost), with ${DS_PROMETHEUS}/${DS_LOKI} placeholders documented for replacement at import.
  • DON'T mint new dashboard UIDs for existing dashboards - uids are sfdx-hardis-v2-<slug> and stable; changing one breaks bookmarks and cross-dashboard links.
  • DON'T let an existing panel id change, and DON'T hand-edit docs/grafana/panel-ids-v2.json. Panel ids are frozen in that lock (<dashboard uid> -> <panel type>::<panel title> -> id) and the generator reuses them whatever the construction order; only a panel missing from the lock gets a fresh id above the high-water mark, and the generator rewrites the lock so it stays frozen. Ids are public surface on an installed dashboard - ?viewPanel=<id> links, /d-solo/...?panelId=<id> iframe embeds and user-authored alert annotations all reference them, and a renumber silently points them at a different panel rather than failing. Before this lock existed the generator used one global counter, so inserting a panel into an early dashboard renumbered 67 panels across 7 otherwise-untouched dashboards. After regenerating, always confirm git diff shows no "id" change in a dashboard you did not intend to touch. Renaming a panel's title changes its key and therefore allocates a new id: rename deliberately, and if the id must survive, rename the key in the lock in the same commit.
  • DON'T put anything but a dashboard in docs/grafana/dashboards-v2/. The lint suite treats every *.json there as a dashboard and asserts the set matches GRAFANA_V2_FALLBACK_DASHBOARD_FILES. That is why the id lock lives one level up.
  • DON'T write to the Salesforce test org, and when running commands that push test data, set SFDX_HARDIS_MONITORING_KEY=claude-test so real org series stay clean.

When a monitoring indicator changes (create / update / delete)

Any change to a notification type, its metrics keys, or its logElements shape (in src/commands/** or src/common/notifProvider/**) MUST evaluate dashboard impact:

  1. New indicator / new metric key: decide where it surfaces - existing dashboard row, new panel, fleet column, or only the generic Indicator Detail dashboard (which picks up any type automatically). Add panels via the generator, with lookback wrapper, per-org aggregation, detail link, and RECENT_CLI_NOTE description (older CLIs won't send it yet).
  2. Renamed/removed metric key: grep the generator for the old <Key>_metric name and update every query, and check docs/grafana/alerts-v2/ for alert rules using it. Old series keep their data in Prometheus under the old name; mention the rename in the dashboard panel description if history matters.
  3. Changed logElements fields: check Loki table panels extracting those fields (jsonArrayToRows, extractJson paths) and the anonymizer's field rules (src/common/utils/anonymizeUtils.ts) if user-identifying fields are involved.
  4. New notification type: it appears automatically in the Indicator Detail dashboard $type variable (Loki label values) - explicit panels are only needed if the indicator deserves dedicated visibility.
  5. Regenerate (node generator.mjs), run the lint suite, re-import to the sfdx-hardis-v2 folder, and update docs/salesforce-monitoring-grafana-v2.md if the dashboard list or prerequisites changed.
  6. The monitoring AGENTS.md tells coding agents how to query these logs and metrics (labels, payload fields, <Key>_metric naming, lookback windows, datasource detection, the dashboards folder). If the change touches any of that, load the monitoring-agents-md skill and update defaults/templates/monitoring/AGENTS.md in the same change.

Alert pack rules

  • One YAML file, provisioning format, apiVersion: 1, group sfdx-hardis-org-monitoring, evaluation interval 6h.
  • Every rule: isPaused: true, noDataState: OK, execErrState: OK (daily data = "no data" is normal), shape A (query) -> B (reduce last) -> C (threshold).
  • Health-score rules use an 8-day lookback ([8d]) because the score is weekly.
  • Freshness/silent-org logic uses LogQL unless between a 7d and a 36h count_over_time (per-org absence cannot be expressed with absent_over_time alone).

© hardisgroupcom, AGPL-3.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in .claude/skills/grafana-dashboards of hardisgroupcom/sfdx-hardis.

Open the folder on GitHubat commit 3fc5532

Compare with similar skills

Grafana Dashboards next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Grafana Dashboards compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Grafana Dashboards this skillhardisgroupcom/sfdx-hardis403—~3.5kAutomated safety check: NotesAGPL-3.0
Web Console Local Tracesforcedotcom/salesforcedx-vscode1k—~796Automated safety check: PassBSD-3-Clause
Mz Release SignoffMaterializeInc/materialize6.4k—~7.2kAutomated safety check: PassCustom licence
Axiom Dashboard Builderopenclaw/clawhub9.5k—~4.9kAutomated safety check: PassMIT
Happy Infra Metrics and Grafanaslopus/happy24k—~2kAutomated safety check: NotesMIT
Syncmetapawurb/hotpath-rs1.9k—~1.2kAutomated safety check: NotesMIT

Similar skills

  • Web Console Local Traces

    forcedotcom/salesforcedx-vscode

    Unblock hosted Web Console OTLP to localhost:4318. An agent skill from forcedotcom/salesforcedx-vscode.

    1k GitHub stars~796 tokensUpdated yesterday
    DevOps & CloudAuto-check passed
  • Mz Release Signoff

    MaterializeInc/materialize

    Verify a release candidate on the Grafana dashboards and sign off in release.

    6.4k GitHub stars~7.2k tokensUpdated today
    DevOps & CloudAuto-check passed
  • Axiom Dashboard Builder

    openclaw/clawhub

    Designs and deploys Axiom dashboards through the API, choosing chart types and writing APL or metrics queries, with templates and migration notes for Splunk and Grafana.

    9.5k GitHub stars~4.9k tokensUpdated yesterday
    DevOps & CloudAuto-check passed
  • Queries live Prometheus metrics and manages Grafana dashboards as code for Happy's infrastructure, using the grafanactl CLI and the Grafana datasource proxy API.

    24k GitHub stars~2k tokensUpdated today
    DevOps & CloudAuto-check: notes
  • Syncmeta

    pawurb/hotpath-rs

    Sync changes from the hotpath, hotpath-macros and hotpath-drain crates to their meta counterparts (hotpath-meta, hotpath-macros-meta and hotpath-drain-meta).

    1.9k GitHub stars~1.2k tokensUpdated yesterday
    DevOps & CloudAuto-check: notes
  • Optimize AlpaSim Slurm topology throughput using persistent local Prometheus/Grafana telemetry and run artifacts.

    1.3k GitHub stars~1.6k tokensUpdated 22 days ago
    DevOps & CloudAuto-check passed

More from hardisgroupcom/sfdx-hardis

All 21 skills in this repo
  • sfdx-hardis Training End-to-End Test

    hardisgroupcom/sfdx-hardis

    Walks the sfdx-hardis training course end to end as a learner would, against a real Developer Edition org and fork, fixing broken steps and screenshots that no longer match.

    403 GitHub stars~2.6k tokensUpdated today
    Auto-check: notes
  • Promotion Branches E2E Test

    hardisgroupcom/sfdx-hardis

    Runs a full end-to-end test of sfdx-hardis promotion branches and backpromote against real Salesforce orgs and a throwaway repository, then writes a report.

    403 GitHub stars~11k tokensUpdated today
    Auto-check: notes
  • sfdx-hardis Architecture Guide

    hardisgroupcom/sfdx-hardis

    Explains how the sfdx-hardis Salesforce CLI plugin is built: its TypeScript and Oclif stack, command layout, agent-mode flag and provider classes for git, notifications and AI.

    403 GitHub stars~2.1k tokensUpdated today
    Auto-check passed
  • Changelog Style Rules

    hardisgroupcom/sfdx-hardis

    Style rules for adding CHANGELOG.md entries: short, user-facing bullets grouped by command under the beta section, each linking the command's docs page.

    403 GitHub stars~1.4k tokensUpdated today
    Auto-check passed
  • Documentation

    hardisgroupcom/sfdx-hardis

    Documentation standards for sfdx-hardis commands (description format with Command Behavior and Technical explanations sections, MkDocs site, build:doc).

    403 GitHub stars~1k tokensUpdated today
    Auto-check passed
  • Fix Jscpd

    hardisgroupcom/sfdx-hardis

    Decision framework for fixing jscpd (copy-paste detector) errors.

    403 GitHub stars~613 tokensUpdated today
    Auto-check passed

Categories

Questions about Grafana Dashboards

What does Grafana Dashboards do?

Rules and workflow for the "Org Monitoring by sfdx-hardis" Grafana dashboards v2 (docs/grafana/dashboards-v2). Grafana Dashboards is an agent skill from hardisgroupcom/sfdx-hardis. Rules and workflow for the "Org Monitoring by sfdx-hardis" Grafana dashboards v2 (docs/grafana/dashboards-v2).

When should I use Grafana Dashboards?

Grafana Dashboards fits situations like: modifying v2 dashboards; whenever a monitoring indicator (notification type; logElements shape) is created; deleted - every indicator evolution must handle its impact on the dashboards.

How do I install Grafana Dashboards in Claude Code?

Run `npx skills add hardisgroupcom/sfdx-hardis --skill grafana-dashboards -a claude-code`. Or copy the skill folder (.claude/skills/grafana-dashboards in hardisgroupcom/sfdx-hardis) into .claude/skills/grafana-dashboards in your project. Claude Code loads it when a task matches its description.

How do I install Grafana Dashboards in Codex?

Run `npx skills add hardisgroupcom/sfdx-hardis --skill grafana-dashboards -a codex`. Or copy the skill folder (.claude/skills/grafana-dashboards in hardisgroupcom/sfdx-hardis) into .agents/skills/grafana-dashboards in your project. Codex loads it when a task matches its description.

Can I use Grafana Dashboards in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add hardisgroupcom/sfdx-hardis --skill grafana-dashboards -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/grafana-dashboards, .gemini/skills/grafana-dashboards, .github/skills/grafana-dashboards and .opencode/skills/grafana-dashboards in your project.

What does Grafana Dashboards need to run?

Going by SKILL.md and its folder, Grafana Dashboards needs the command-line tools its instructions call (node, npx and git) and credentials named GRAFANA_TOKEN and SFDX_HARDIS_MONITORING_KEY. Our summary lists: Node.js; A credential in GRAFANA_TOKEN; A credential in SFDX_HARDIS_MONITORING_KEY.

Does Grafana Dashboards access the network?

SKILL.md contains no URLs. Its commands use npx and git, which can reach the network depending on how they are called. This is read from the text; nothing was executed.

Is Grafana Dashboards safe to install?

Our automated static check of SKILL.md found notes only (mentions a .env file), nothing it rates as a warning. It is not a guarantee. Review the folder before installing.

What licence does Grafana Dashboards use?

Grafana Dashboards is published under the AGPL-3.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Grafana Dashboards use?

About 3.5k tokens (SKILL.md is roughly 14k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Grafana Dashboards?

Skills that share tags, products or a category with Grafana Dashboards: Web Console Local Traces (forcedotcom/salesforcedx-vscode, 1k stars), Mz Release Signoff (MaterializeInc/materialize, 6.4k stars), Axiom Dashboard Builder (openclaw/clawhub, 9.5k stars) and Happy Infra Metrics and Grafana (slopus/happy, 24k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Grafana Dashboards?

hardisgroupcom (a GitHub organization) maintains it in hardisgroupcom/sfdx-hardis, which has 403 GitHub stars. The repository holds 21 skills in this directory. The repository was last updated on October 10, 2026.

Source: hardisgroupcom/sfdx-hardis on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.