Analytics Strategy
rampstackco/claude-skills
Design measurement frameworks including event taxonomy, KPI hierarchy, dashboard architecture, attribution models, and analytics implementation strategy.
A skill your agent uses when building or fixing a KPI dashboard decision-makers must read in one screen: which metrics earn a tile, how each tile is framed to answer a decision, and which chart fits…
$ npx skills add ericrisco/rsc-harness --skill dashboard -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install ericrisco/rsc-harness dashboard --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/ericrisco/rsc-harness.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/dashboard .claude/skills/dashboard && 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 "dashboard" agent skill from https://github.com/ericrisco/rsc-harness/tree/main/skills/dashboard into .claude/skills/dashboard/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "dashboard", 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/ericrisco/rsc-harness/tree/main/skills/dashboardType 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 ericrisco/rsc-harness --skill dashboard -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install ericrisco/rsc-harness dashboard --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/ericrisco/rsc-harness.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/dashboard .agents/skills/dashboard && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "dashboard" agent skill from https://github.com/ericrisco/rsc-harness/tree/main/skills/dashboard into .agents/skills/dashboard/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "dashboard", 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 ericrisco/rsc-harness --skill dashboard -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install ericrisco/rsc-harness dashboard --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/ericrisco/rsc-harness.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/dashboard .cursor/skills/dashboard && 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 "dashboard" agent skill from https://github.com/ericrisco/rsc-harness/tree/main/skills/dashboard into .cursor/skills/dashboard/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "dashboard", 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/ericrisco/rsc-harness.git --path skills/dashboard--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 ericrisco/rsc-harness --skill dashboard -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install ericrisco/rsc-harness dashboard --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/ericrisco/rsc-harness.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/dashboard .gemini/skills/dashboard && 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 "dashboard" agent skill from https://github.com/ericrisco/rsc-harness/tree/main/skills/dashboard into .gemini/skills/dashboard/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "dashboard", 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 ericrisco/rsc-harness dashboardInstalls 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 ericrisco/rsc-harness --skill dashboard -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/ericrisco/rsc-harness.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/dashboard .github/skills/dashboard && 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 "dashboard" agent skill from https://github.com/ericrisco/rsc-harness/tree/main/skills/dashboard into .github/skills/dashboard/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "dashboard", 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 ericrisco/rsc-harness --skill dashboard -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install ericrisco/rsc-harness dashboard --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/ericrisco/rsc-harness.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/dashboard .opencode/skills/dashboard && 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 "dashboard" agent skill from https://github.com/ericrisco/rsc-harness/tree/main/skills/dashboard into .opencode/skills/dashboard/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "dashboard", 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.
dashboardA skill your agent uses when building or fixing a KPI dashboard decision-makers must read in one screen: which metrics earn a tile, how each tile is framed to answer a decision, and which chart fits…
Dashboard is an agent skill from ericrisco/rsc-harness. Use when building or fixing a KPI dashboard decision-makers must read in one screen: which metrics earn a tile, how each tile is framed to answer a decision, and which chart fits it. NOT defining the metrics or their targets (that is kpi-framework), wiring the data (that is analytics), or writing a narrative status report (that is reporting).
Its SKILL.md is about 2.5k tokens, which your agent loads only when the skill is triggered. The skill folder holds 8 other files, including scripts and reference files (for example `evals/README.md`, `evals/cases.yaml` and `references/chart-selection.md`).
It sits in Business, Finance & HR, covering OKRs and executive reporting. The repository describes itself as: Your agent invents things because it has no memory, and can't touch your database because it has no arms. rsc is the meta-harness that gives it both, plus the trade to know the… The licence is MIT.
Read from SKILL.md and the folder at commit 92fde8f. 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.
Ships 1 file in scripts/ (Shell), which the agent can run.
From the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Dashboard loads about 2.5k tokens when it runs, and up to ~4.9k if it reads all its reference files. Until then it costs about 89 tokens; SKILL.md has 974 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 found no risky patterns in SKILL.md.
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); the scripts in this folder are not scanned.
The full file from ericrisco/rsc-harness at commit 92fde8f, republished under its MIT licence (© ericrisco). 974 words, ~2,459 tokens.
.claude/skills/dashboard/SKILL.md (or your agent's skills folder). This skill also uses 5 other files; get the full folder from GitHub.A dashboard is read in 5 seconds by someone who will not scroll. If a busy reader cannot grasp business status that fast, the design failed — no matter how accurate the numbers are. Your job here is arrangement, framing, and chart choice, producing a checkable artifact:
dashboard.yaml — a tile manifest (each tile: metric, chart, comparison, owner, refresh, decision).You do not decide which metrics matter (that is kpi-framework) and you do not wire the data source (that is analytics). You take a metric set that already exists and make it readable at a glance.
Run scripts/verify.sh dashboard.yaml before you hand off. It checks shape and discipline — tile count 1-9, exactly one north_star: true, the required keys on every tile, no banned charts — never whether the numbers are correct.
No tile exists until its metric names the action it drives. Ask: what does someone do differently based on this number? If the answer is vague ("good to know", "shows we're growing"), the metric is vanity — cut it or convert it. A tile that changes no decision is decoration.
| Vanity metric (Bad) | Actionable conversion (Good) | Decision it drives |
|---|---|---|
| Total followers | Follower-growth rate WoW | Double down or change content cadence |
| Total page views | Conversion rate by source | Reallocate spend to the converting channel |
| Cumulative signups | Activation rate (signup → key action) | Fix onboarding if activation drops |
| Total revenue (all-time) | MRR + net revenue retention | Whether to hire / extend runway |
| App downloads | 7-day retention | Kill or scale the acquisition channel |
Rule: an always-up counter ("total X") is almost always vanity. Convert it to a rate or ratio that can go down. Why: a number that only ever rises never triggers an action.
Executive dashboards carry roughly 5 to 9 KPIs. Human working memory caps near ~7 items; more tiles cause analysis paralysis and the screen stops being a glance.
north_star: true. Why: a glance needs a single first read.When a stakeholder demands 20 metrics, do not cram them — tier:
The minimum viable tile is not a number. It is a number plus the context that makes it actionable:
value + comparison(target | prior | benchmark) + delta + units + date range
+ RYG status + owner + refresh cadenceBad → Good:
Bad: Churn: 4.1%
Good: Monthly logo churn — 4.1% ▲0.6pp vs prior month (target ≤3.0%) 🔴
Owner: Head of CS · Refresh: daily · Range: May 2026Why each field earns its place:
Choose the chart from the shape of the question, not from what looks impressive. Full matrix and edge cases in references/chart-selection.md.
| Metric shape | Chart | Why |
|---|---|---|
| Single headline number | Big-number tile + delta | Fastest read; the north-star usually lives here |
| Trend over time | Line | Slope shows direction instantly |
| Category comparison | Sorted horizontal bar | Length is easy to compare; sorting answers "who's worst" |
| Target vs actual | Bullet chart | Compact, comparable; replaces gauges/dials |
| Part-to-whole (≤5 parts) | Stacked bar or treemap | Pie only legible to 3-5 slices |
| Correlation | Scatter | Shows relationship between two measures |
| Distribution | Histogram | Shape of spread, not just average |
Kill-list: no pie beyond 5 categories (sorted bar instead) and no gauge / dial (bullet chart instead) — verify.sh rejects both; no dual-axis, which invents correlations that aren't there; no 3D and no donut-with-center-number gimmicks.
Lay tiles out for the Z / F scan pattern: the eye starts top-left, sweeps right, drops down. Put the north-star top-left; group related KPIs together (acquisition cluster, revenue cluster, health cluster).
Apply the data-ink ratio: if a pixel shows no new information, remove it. Strip heavy borders, drop shadows, gradients, 3D, background textures — they raise cognitive load without adding meaning.
Color is meaning, not decoration. Use a status palette (red/yellow/green) only for status. A rainbow of tile colors with no semantic meaning makes the screen harder, not friendlier.
Before: 9 boxed-and-shadowed tiles, each a different bright color,
3 pie charts, two gauges, no clear starting point.
After: north-star top-left (big number + sparkline);
flat tiles, hairline separators, neutral palette;
RYG reserved for status; bullets replace gauges;
sorted bar replaces the pies.dashboard.yamlEmit a manifest a BI tool, a web app, or a human can build from. Short schema here; full field reference in references/tile-schema.md.
# dashboard.yaml — one screen, one north-star
title: SaaS Exec Dashboard
date_range: "2026-05"
tiles:
- id: waa
north_star: true
metric: Weekly Active Accounts
chart: big_number # + sparkline trend
value_source: warehouse.fct_active_accounts
units: accounts
comparison: { type: target, value: 1200 }
delta: vs_prior_week
status_logic: "green ≥ target; yellow ≥ 90%; red < 90%"
owner: VP Product
refresh: daily
decision: "If below 90% of target two weeks running, escalate activation work."
- id: nrr
metric: Net Revenue Retention
chart: big_number
comparison: { type: benchmark, value: 110 } # %
units: percent
owner: VP Sales
refresh: monthly
decision: "Below 100% triggers a save/expansion review."
- id: churn
metric: Monthly Logo Churn
chart: line
comparison: { type: target, value: 3.0 }
units: percent
owner: Head of CS
refresh: daily
decision: "Above target investigates cohort + reason codes."
- id: runway
metric: Cash Runway
chart: bullet # actual vs target months
comparison: { type: target, value: 18 }
units: months
owner: CFO
refresh: monthly
decision: "Under 12 months opens fundraise / cost review."
- id: pipeline
metric: New Pipeline by Source
chart: sorted_bar
comparison: { type: prior, value: last_month }
units: currency
owner: Head of Marketing
refresh: weekly
decision: "Shift spend toward the top-converting source."
layout:
north_star: top_left
scan: Z
groups: [growth, revenue, health]The keys verify.sh requires on every tile: metric, chart, comparison, owner, refresh, decision.
| Anti-pattern | Why it fails | Do instead |
|---|---|---|
| 20 tiles on one screen | Past ~7, no one can read it in 5 seconds | Cut to 5-9; tier the rest to a drill-down |
| Vanity metrics (totals, followers) | Never trigger an action | Apply the Decision Test; convert to rates |
| Bare numbers, no comparison | No "is this good?" signal | Add target / prior / benchmark + delta |
| Pie chart with 8 slices | Slices become unreadable | Sorted horizontal bar |
| Gauges and dials | Waste space, resist comparison | Bullet chart |
| Rainbow tile colors | Color reads as meaning when it isn't | Neutral tiles; RYG for status only |
| "Real-time" on everything | False precision; refresh-cost theater | Match refresh to decision cadence |
| It's actually a report | Prose + commentary isn't a glance | Move narrative to reporting |
| No north-star | Reader has no entry point | One north_star: true tile, top-left |
Beyond the routes named above: reading out an experiment or variant significance → ab-testing; visual polish, spacing and type scale of the rendered screen → design; pulling or joining the underlying numbers in a sheet → spreadsheet-ops.
© ericrisco, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 5 other files (scripts, references) in skills/dashboard of ericrisco/rsc-harness.
Open the folder on GitHubat commit 92fde8f
Dashboard 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 |
|---|---|---|---|---|---|---|
| Dashboard this skillericrisco/rsc-harness | 156 | — | ~2.5k | Automated safety check: Pass | MIT | |
| Analytics Strategyrampstackco/claude-skills | 935 | 1 repos | ~2.4k | Automated safety check: Pass | MIT | |
| Pine BacktesterTradersPost/pinescript-agents | 167 | 1 repos | ~3.9k | Automated safety check: Pass | None | |
| Onboarding Plannerbpinheiroms/dotfiles | 108 | — | ~5.4k | Automated safety check: Pass | None | |
| Replit Decksanqiufong/slides-from-anything | 132 | 1 repos | ~2.9k | Automated safety check: Pass | Apache-2.0 | |
| Building Streamlit Dashboardsiusztinpaul/designing-real-world-ai-agents-workshop | 512 | — | ~1.1k | Automated safety check: Pass | Apache-2.0 |
rampstackco/claude-skills
Design measurement frameworks including event taxonomy, KPI hierarchy, dashboard architecture, attribution models, and analytics implementation strategy.
TradersPost/pinescript-agents
Implements comprehensive backtesting and performance metrics.
bpinheiroms/dotfiles
Plan high-conversion mobile app onboarding flows from scratch.
sanqiufong/slides-from-anything
Single-file horizontal-swipe HTML deck in the style of Replit Slides's landing-page template gallery.
iusztinpaul/designing-real-world-ai-agents-workshop
Building dashboards in Streamlit. An agent skill from iusztinpaul/designing-real-world-ai-agents-workshop.
ibuilder/massing
Drive a Massing BIM/AEC project from an AI agent over MCP — read a project's status, records, CDE, KPI and model-quality checks; run standards-compliance, schedule-risk, embodied-carbon, permit-…
ericrisco/rsc-harness
A skill your agent uses when designing or analyzing a controlled experiment — falsifiable hypothesis, sample size from an MDE, reading significance/CI/power, CUPED, or rescuing tests that won't go…
ericrisco/rsc-harness
A skill your agent uses when making a web UI conform to WCAG 2.2 Level AA — axe-core or Lighthouse a11y violations, keyboard operability, focus management, ARIA roles/names/live regions, contrast…
ericrisco/rsc-harness
A skill your agent uses when running or fixing paid acquisition on Google or Meta — campaign structure (Performance Max, Demand Gen, Search, Advantage+), platform-fit creative, budget/scaling rules…
ericrisco/rsc-harness
A skill your agent uses when measuring whether an LLM or agent system actually got better and gating merges on it: golden sets, fixing an inflated LLM-as-judge, scoring RAG (faithfulness, contextual…
ericrisco/rsc-harness
A skill your agent uses when a creative goal must become a finished media file: pick and order generative-media models per modality — AI voiceover, image-to-video clips, score — then glue them with…
ericrisco/rsc-harness
A skill your agent uses when instrumenting product or web analytics — GA4/PostHog SDK wiring, event taxonomy, funnels, double-counted events, consent gating, PII scrubbing.
Categories
A skill your agent uses when building or fixing a KPI dashboard decision-makers must read in one screen: which metrics earn a tile, how each tile is framed to answer a decision, and which chart fits…. Dashboard is an agent skill from ericrisco/rsc-harness. Use when building or fixing a KPI dashboard decision-makers must read in one screen: which metrics earn a tile, how each tile is framed to answer a decision, and which chart fits it.
Dashboard fits situations like: fixing a KPI dashboard decision-makers must read in one screen: which metrics earn a tile; how each tile is framed to answer a decision; which chart fits it.
Run `npx skills add ericrisco/rsc-harness --skill dashboard -a claude-code`. Or copy the skill folder (skills/dashboard in ericrisco/rsc-harness) into .claude/skills/dashboard in your project. Claude Code loads it when a task matches its description.
Run `npx skills add ericrisco/rsc-harness --skill dashboard -a codex`. Or copy the skill folder (skills/dashboard in ericrisco/rsc-harness) into .agents/skills/dashboard 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 ericrisco/rsc-harness --skill dashboard -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/dashboard, .gemini/skills/dashboard, .github/skills/dashboard and .opencode/skills/dashboard in your project.
Going by SKILL.md and its folder, Dashboard needs a shell for the scripts in its folder. Our summary lists: A Bash shell.
SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. The check reads SKILL.md only: the scripts in the folder are not scanned, so read them before running anything.
Dashboard is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 2.5k tokens (SKILL.md is roughly 9.8k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 2.4k tokens, read only when the agent opens those files.
Skills that share tags, products or a category with Dashboard: Analytics Strategy (rampstackco/claude-skills, 935 stars), Pine Backtester (TradersPost/pinescript-agents, 167 stars), Onboarding Planner (bpinheiroms/dotfiles, 108 stars) and Replit Deck (sanqiufong/slides-from-anything, 132 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
ericrisco (a GitHub user) maintains it in ericrisco/rsc-harness, which has 156 GitHub stars. The repository holds 229 skills in this directory. The repository was last updated on October 6, 2026.
Source: ericrisco/rsc-harness on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.