Web Console Local Traces
forcedotcom/salesforcedx-vscode
Unblock hosted Web Console OTLP to localhost:4318. An agent skill from forcedotcom/salesforcedx-vscode.
Rules and workflow for the "Org Monitoring by sfdx-hardis" Grafana dashboards v2 (docs/grafana/dashboards-v2).
$ npx skills add hardisgroupcom/sfdx-hardis --skill grafana-dashboards -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install hardisgroupcom/sfdx-hardis grafana-dashboards --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ 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-srcUse ~/.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/
Install the "grafana-dashboards" agent skill from https://github.com/hardisgroupcom/sfdx-hardis/tree/main/.claude/skills/grafana-dashboards into .claude/skills/grafana-dashboards/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "grafana-dashboards", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/hardisgroupcom/sfdx-hardis/tree/main/.claude/skills/grafana-dashboardsType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add hardisgroupcom/sfdx-hardis --skill grafana-dashboards -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install hardisgroupcom/sfdx-hardis grafana-dashboards --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/hardisgroupcom/sfdx-hardis.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.claude/skills/grafana-dashboards .agents/skills/grafana-dashboards && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "grafana-dashboards" agent skill from https://github.com/hardisgroupcom/sfdx-hardis/tree/main/.claude/skills/grafana-dashboards into .agents/skills/grafana-dashboards/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "grafana-dashboards", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add hardisgroupcom/sfdx-hardis --skill grafana-dashboards -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install hardisgroupcom/sfdx-hardis grafana-dashboards --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/hardisgroupcom/sfdx-hardis.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.claude/skills/grafana-dashboards .cursor/skills/grafana-dashboards && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "grafana-dashboards" agent skill from https://github.com/hardisgroupcom/sfdx-hardis/tree/main/.claude/skills/grafana-dashboards into .cursor/skills/grafana-dashboards/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "grafana-dashboards", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/hardisgroupcom/sfdx-hardis.git --path .claude/skills/grafana-dashboards--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add hardisgroupcom/sfdx-hardis --skill grafana-dashboards -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install hardisgroupcom/sfdx-hardis grafana-dashboards --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/hardisgroupcom/sfdx-hardis.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.claude/skills/grafana-dashboards .gemini/skills/grafana-dashboards && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "grafana-dashboards" agent skill from https://github.com/hardisgroupcom/sfdx-hardis/tree/main/.claude/skills/grafana-dashboards into .gemini/skills/grafana-dashboards/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "grafana-dashboards", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install hardisgroupcom/sfdx-hardis grafana-dashboardsInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add hardisgroupcom/sfdx-hardis --skill grafana-dashboards -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/hardisgroupcom/sfdx-hardis.git skills-src && mkdir -p .github/skills && cp -r skills-src/.claude/skills/grafana-dashboards .github/skills/grafana-dashboards && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "grafana-dashboards" agent skill from https://github.com/hardisgroupcom/sfdx-hardis/tree/main/.claude/skills/grafana-dashboards into .github/skills/grafana-dashboards/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "grafana-dashboards", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add hardisgroupcom/sfdx-hardis --skill grafana-dashboards -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install hardisgroupcom/sfdx-hardis grafana-dashboards --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/hardisgroupcom/sfdx-hardis.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.claude/skills/grafana-dashboards .opencode/skills/grafana-dashboards && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "grafana-dashboards" agent skill from https://github.com/hardisgroupcom/sfdx-hardis/tree/main/.claude/skills/grafana-dashboards into .opencode/skills/grafana-dashboards/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "grafana-dashboards", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
grafana-dashboardsRules 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). 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.
6 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit 3fc5532. It shows what the files ask for, not the result of running them.
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.
Shell commands in SKILL.md call:
nodenpxgitFrom the folder's file list and the shell code blocks in SKILL.md.
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.
Names these keys or tokens, usually read from environment variables:
GRAFANA_TOKENSFDX_HARDIS_MONITORING_KEYFrom names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
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.
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.
The automated check noted patterns worth knowing about, such as sudo or a known installer.
**DO validate live before delivering**: `.env` contains `GRAFANA_TOKEN`, a service account of the team's Grafana instancAutomated 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.
The full file from hardisgroupcom/sfdx-hardis at commit 3fc5532, republished under its AGPL-3.0 licence (© hardisgroupcom). 1,746 words, ~3,483 tokens.
.claude/skills/grafana-dashboards/SKILL.md (or your agent's skills folder).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.
docs/grafana/dashboards-v2/*.json - GENERATED FILES, never edit them directly.docs/grafana/dashboards-v2/generator.mjs. Edit it, then run node generator.mjs from that folder to rewrite all JSONs.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).docs/grafana/alerts-v2/sfdx-hardis-alerts.yaml (hand-written YAML, all rules isPaused: true).test/grafana-dashboards-v2.test.ts - enforces most rules below; run with npx mocha "test/grafana-dashboards-v2.test.ts".docs/salesforce-monitoring-grafana-v2.md.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).docs/grafana/dashboards/) are frozen: never modify them.sfdx-hardis pushes to two backends (see src/common/notifProvider/apiProvider.ts):
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.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:
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.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.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.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__).${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.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).${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.avgStat helper), not just the latest value.$env matcher ({source="sfdx-hardis", $env, orgIdentifier=~"$org"}). It injects orgIdentifier!~".*sandbox.*" for "Production only" (RE2 has no lookbehind, hence matcher-as-variable-value).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.jsonArrayToRows('<field>') chain to render a JSON array field of the latest Loki entry as table rows (_logElements, topFailingFlows, ...).reduce seriesToRows + legendFormat per query for this).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.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)..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.*_over_time wrappers, unique panel ids, and detail links on every number.grafanacloud-, cloudity) anywhere in dashboards - they must import on any Grafana instance (OSS/Enterprise/Cloud). Enforced by lint.predict_linear/deriv), no Cloud-only datasources or panel plugins. Core panels only: stat, gauge, timeseries, table, bargauge, text, row._logElements, not in metric labels.{__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.{__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).cdklj9xhp8074d).isPaused: true (Grafana Cloud free-tier cost), with ${DS_PROMETHEUS}/${DS_LOKI} placeholders documented for replacement at import.sfdx-hardis-v2-<slug> and stable; changing one breaks bookmarks and cross-dashboard links.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.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.SFDX_HARDIS_MONITORING_KEY=claude-test so real org series stay clean.Any change to a notification type, its metrics keys, or its logElements shape (in src/commands/** or src/common/notifProvider/**) MUST evaluate dashboard impact:
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).<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.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.$type variable (Loki label values) - explicit panels are only needed if the indicator deserves dedicated visibility.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.<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.apiVersion: 1, group sfdx-hardis-org-monitoring, evaluation interval 6h.isPaused: true, noDataState: OK, execErrState: OK (daily data = "no data" is normal), shape A (query) -> B (reduce last) -> C (threshold).[8d]) because the score is weekly.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
Just SKILL.md in .claude/skills/grafana-dashboards of hardisgroupcom/sfdx-hardis.
Open the folder on GitHubat commit 3fc5532
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.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Grafana Dashboards this skillhardisgroupcom/sfdx-hardis | 403 | — | ~3.5k | Automated safety check: Notes | AGPL-3.0 | |
| Web Console Local Tracesforcedotcom/salesforcedx-vscode | 1k | — | ~796 | Automated safety check: Pass | BSD-3-Clause | |
| Mz Release SignoffMaterializeInc/materialize | 6.4k | — | ~7.2k | Automated safety check: Pass | Custom licence | |
| Axiom Dashboard Builderopenclaw/clawhub | 9.5k | — | ~4.9k | Automated safety check: Pass | MIT | |
| Happy Infra Metrics and Grafanaslopus/happy | 24k | — | ~2k | Automated safety check: Notes | MIT | |
| Syncmetapawurb/hotpath-rs | 1.9k | — | ~1.2k | Automated safety check: Notes | MIT |
forcedotcom/salesforcedx-vscode
Unblock hosted Web Console OTLP to localhost:4318. An agent skill from forcedotcom/salesforcedx-vscode.
MaterializeInc/materialize
Verify a release candidate on the Grafana dashboards and sign off in release.
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.
slopus/happy
Queries live Prometheus metrics and manages Grafana dashboards as code for Happy's infrastructure, using the grafanactl CLI and the Grafana datasource proxy API.
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).
NVlabs/alpasim
Optimize AlpaSim Slurm topology throughput using persistent local Prometheus/Grafana telemetry and run artifacts.
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.
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.
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.
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.
hardisgroupcom/sfdx-hardis
Documentation standards for sfdx-hardis commands (description format with Command Behavior and Technical explanations sections, MkDocs site, build:doc).
hardisgroupcom/sfdx-hardis
Decision framework for fixing jscpd (copy-paste detector) errors.
Works with
Categories
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).
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.