/generate-slide
Regenerate the gcx marketing bento-box slide (slide.html) with verified commands from the current codebase. Builds a fresh binary and reflects against the actual command tree. Use when the user says "regenerate slide", "update slide", "generate slide", or "/generate-slide".
$ npx -y skills add grafana/gcx --skill generate-slide --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
- Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
- You can call itInvoke it directly when you want it.
- Slash command
/generate-slide
Context preview
The summary Claude sees to decide when to auto-load this skill.
Regenerate the gcx marketing bento-box slide (slide.html) with verified commands from the current codebase. Builds a fresh binary and reflects against the actual command tree. Use when the user says "regenerate slide", "update slide", "generate slide", or "/generate-slide".
SKILL.md
generate-slide.SKILL.mdname: generate-slide
description: >
Regenerate the gcx marketing bento-box slide (slide.html) with verified commands
from the current codebase. Builds a fresh binary and reflects against the actual
command tree. Use when the user says "regenerate slide", "update slide",
"generate slide", or "/generate-slide".
Generate gcx Marketing Slide
Regenerate `docs/bento_marketing_slide.html` — a 1440x900 "bento box" marketing slide — so that every command shown is verified against the live binary and all stats are accurate.
Prerequisites
- Go toolchain available
- `docs/bento_marketing_slide.html` must exist
Workflow
Stage 1: Build & Reflect
Build a fresh gcx binary and extract the full command catalog and stats.
# 1. Build
go build -buildvcs=false -o bin/gcx ./cmd/gcx/
# 2. Extract the full flat command catalog (commands + resource_types)
./bin/gcx commands --flat -o json > /tmp/gcx-catalog.json
# 3. Extract counts from the catalog
python3 -c "
import json, sys
d = json.load(open('/tmp/gcx-catalog.json'))
cmds = d.get('commands', [])
rt = d.get('resource_types', [])
leaves = [c for c in cmds if c.get('token_cost')]
print(f'Total commands: {len(cmds)}')
print(f'Leaf commands (with token_cost): {len(leaves)}')
print(f'Resource types: {len(rt)}')
"
# 4. Get provider count
./bin/gcx providers list -o json | python3 -c "
import json, sys
d = json.load(sys.stdin)
print(f'Providers: {len(d)}')
for p in d: print(f' - {p[\"name\"]}')
"
# 5. Get the human-readable command tree (for selecting showcase commands)
./bin/gcx help-tree --depth 3 -o textStage 2: Verify Card Commands
For each card topic, extract the relevant subtree from the binary and confirm every command shown on the slide actually exists.
# Per-card verification — run one per card topic:
./bin/gcx help-tree kg --depth 3 -o text # Card 1: Knowledge Graph
./bin/gcx help-tree assistant --depth 3 -o text # Card 2: Grafana Assistant
./bin/gcx help-tree fleet --depth 3 -o text # Card 3: Fleet Management
./bin/gcx help-tree frontend --depth 3 -o text # Card 4a: App O11y (frontend/faro)
./bin/gcx help-tree appo11y --depth 3 -o text # Card 4b: App O11y (appo11y)
./bin/gcx help-tree incidents --depth 3 -o text # Card 5a: Incident Response
./bin/gcx help-tree oncall --depth 3 -o text # Card 5b: Incident Response (OnCall)
./bin/gcx help-tree synth --depth 3 -o text # Card 5c: Incident Response (Synth)
./bin/gcx help-tree setup --depth 3 -o text # Card 6: K8s Observability
./bin/gcx help-tree metrics adaptive --depth 3 -o text # Card 7a: Adaptive Telemetry
./bin/gcx help-tree logs adaptive --depth 3 -o text # Card 7b: Adaptive Telemetry
./bin/gcx help-tree traces adaptive --depth 3 -o text # Card 7c: Adaptive Telemetry
./bin/gcx help-tree slo --depth 3 -o text # Card 8: Agent-Ready Platform
./bin/gcx help-tree profiles --depth 3 -o text # Card 8: Agent-Ready Platform
For each card, compare the commands currently in `slide.html` against the help-tree output. Flag any command that does not appear in the tree — it must be replaced.
Stage 3: Select Showcase Commands
Pick the best commands per card from the help-tree output. Selection criteria:
- **Exists in tree**: The command must appear in the `help-tree` output. No invented commands.
- **Compelling**: Prefer the most impressive capability per product (queries, inspections,
create/apply operations over plain list commands)
- **Fits width**: Narrow 3fr cards allow ~42 monospace characters. Wide 5fr and 1fr cards
allow ~80 characters including inline comments.
- **Diverse verbs**: Vary the actions across cards (list, get, create, query, inspect,
status, apply, show) — avoid walls of `list` commands.
- **Flag accuracy**: Only use flags that appear in the help-tree output for that command.
Stage 4: Update slide.html
Update `docs/bento_marketing_slide.html` preserving the exact layout and styling. Only modify HTML content inside card elements and the stats bar — never touch CSS or grid structure.
Layout
Header: [gcx logo] [tagline] [gcx auth login badge]
Row 1: [ Card 1: Knowledge Graph (1fr) ] [ Card 2: Grafana Assistant (1fr) ]
Row 2: [ Card 3: Fleet Mgmt (5fr) ] [ Card 4: App O11y (3fr) ] [ Card 5: IRM (3fr) ]
Row 3: [ Card 6: K8s O11y (5fr) ] [ Card 7: Adaptive (3fr) ] [ Card 8: Agent (3fr)]
Stats: [ 1 binary ] [ N+ resource types ] [ N+ commands ] [ N products ]
Card Topic Mapping
| Card | Provider(s) to query | Badge | |------|---------------------|-------| | 1. Knowledge Graph | `kg` | badge-green "Dependencies & Health" | | 2. Grafana Assistant | `assistant`, `auth` | badge-orange "AI-Powered" | | 3. Fleet Management | `fleet` | badge-green "Infrastructure" | | 4. App O11y | `frontend` (faro), `appo11y` | badge-green "End to End Observability" | | 5. Incident Response | `incidents`, `oncall`, `synth`, `k6` | badge-filled-orange "IRM" | | 6. K8s Observability | `setup instrumentation`, `fleet` | badge-green "Kubernetes" | | 7. Adaptive Telemetry | `metrics adaptive`, `logs adaptive`, `traces adaptive` | badge-orange "Cost Control" | | 8. Agent-Ready Platform | `slo`, `profiles`, `resources`, `assistant` | badge-filled-orange "A2A" |
Styling Reference
- Body: `#0b0c0e`, Cards: `#14161a` bg / `#1e2127` border / 10px radius
- Code blocks: `#0e1014` bg / `#2a2d33` left-border / JetBrains Mono 12.5px / line-height 1.7
- Syntax highlighting spans:
- `.c-bin` (`#6E9FFF`): the `gcx` binary name
- `.c-cmd` (`#c8ccd0`): provider/group name
- `.c-kw` (`#c8ccd0`, weight 500): action/subcommand
- `.c-flag` (`#6E9FFF`): flags like `--type`
- `.c-val` (`#ff9830`): values and strings
- `.c-cmt` (`#4a4f57`): inline comments
- Code line format: `<div class="line"><span class="c-bin">gcx</span> <span class="c-cmd">provider</span> <span class="c-kw">action</span> ..
Read more
name: generate-slide description: > Regenerate the gcx marketing bento-box slide (slide.html) with verified commands from the current codebase. Builds a fresh binary and reflects against the actual command tree. Use when the user says "regenerate slide", "update slide", "generate slide", or "/generate-slide".
Generate gcx Marketing Slide
Regenerate `docs/bento_marketing_slide.html` — a 1440x900 "bento box" marketing slide — so that every command shown is verified against the live binary and all stats are accurate.
Prerequisites
- Go toolchain available
- `docs/bento_marketing_slide.html` must exist
Workflow
Stage 1: Build & Reflect
Build a fresh gcx binary and extract the full command catalog and stats.
# 1. Build
go build -buildvcs=false -o bin/gcx ./cmd/gcx/
# 2. Extract the full flat command catalog (commands + resource_types)
./bin/gcx commands --flat -o json > /tmp/gcx-catalog.json
# 3. Extract counts from the catalog
python3 -c "
import json, sys
d = json.load(open('/tmp/gcx-catalog.json'))
cmds = d.get('commands', [])
rt = d.get('resource_types', [])
leaves = [c for c in cmds if c.get('token_cost')]
print(f'Total commands: {len(cmds)}')
print(f'Leaf commands (with token_cost): {len(leaves)}')
print(f'Resource types: {len(rt)}')
"
# 4. Get provider count
./bin/gcx providers list -o json | python3 -c "
import json, sys
d = json.load(sys.stdin)
print(f'Providers: {len(d)}')
for p in d: print(f' - {p[\"name\"]}')
"
# 5. Get the human-readable command tree (for selecting showcase commands)
./bin/gcx help-tree --depth 3 -o textStage 2: Verify Card Commands
For each card topic, extract the relevant subtree from the binary and confirm every command shown on the slide actually exists.
# Per-card verification — run one per card topic: ./bin/gcx help-tree kg --depth 3 -o text # Card 1: Knowledge Graph ./bin/gcx help-tree assistant --depth 3 -o text # Card 2: Grafana Assistant ./bin/gcx help-tree fleet --depth 3 -o text # Card 3: Fleet Management ./bin/gcx help-tree frontend --depth 3 -o text # Card 4a: App O11y (frontend/faro) ./bin/gcx help-tree appo11y --depth 3 -o text # Card 4b: App O11y (appo11y) ./bin/gcx help-tree incidents --depth 3 -o text # Card 5a: Incident Response ./bin/gcx help-tree oncall --depth 3 -o text # Card 5b: Incident Response (OnCall) ./bin/gcx help-tree synth --depth 3 -o text # Card 5c: Incident Response (Synth) ./bin/gcx help-tree setup --depth 3 -o text # Card 6: K8s Observability ./bin/gcx help-tree metrics adaptive --depth 3 -o text # Card 7a: Adaptive Telemetry ./bin/gcx help-tree logs adaptive --depth 3 -o text # Card 7b: Adaptive Telemetry ./bin/gcx help-tree traces adaptive --depth 3 -o text # Card 7c: Adaptive Telemetry ./bin/gcx help-tree slo --depth 3 -o text # Card 8: Agent-Ready Platform ./bin/gcx help-tree profiles --depth 3 -o text # Card 8: Agent-Ready Platform
For each card, compare the commands currently in `slide.html` against the help-tree output. Flag any command that does not appear in the tree — it must be replaced.
Stage 3: Select Showcase Commands
Pick the best commands per card from the help-tree output. Selection criteria:
- **Exists in tree**: The command must appear in the `help-tree` output. No invented commands.
- **Compelling**: Prefer the most impressive capability per product (queries, inspections,
create/apply operations over plain list commands)
- **Fits width**: Narrow 3fr cards allow ~42 monospace characters. Wide 5fr and 1fr cards
allow ~80 characters including inline comments.
- **Diverse verbs**: Vary the actions across cards (list, get, create, query, inspect,
status, apply, show) — avoid walls of `list` commands.
- **Flag accuracy**: Only use flags that appear in the help-tree output for that command.
Stage 4: Update slide.html
Update `docs/bento_marketing_slide.html` preserving the exact layout and styling. Only modify HTML content inside card elements and the stats bar — never touch CSS or grid structure.
Layout
Header: [gcx logo] [tagline] [gcx auth login badge] Row 1: [ Card 1: Knowledge Graph (1fr) ] [ Card 2: Grafana Assistant (1fr) ] Row 2: [ Card 3: Fleet Mgmt (5fr) ] [ Card 4: App O11y (3fr) ] [ Card 5: IRM (3fr) ] Row 3: [ Card 6: K8s O11y (5fr) ] [ Card 7: Adaptive (3fr) ] [ Card 8: Agent (3fr)] Stats: [ 1 binary ] [ N+ resource types ] [ N+ commands ] [ N products ]
Card Topic Mapping
| Card | Provider(s) to query | Badge | |------|---------------------|-------| | 1. Knowledge Graph | `kg` | badge-green "Dependencies & Health" | | 2. Grafana Assistant | `assistant`, `auth` | badge-orange "AI-Powered" | | 3. Fleet Management | `fleet` | badge-green "Infrastructure" | | 4. App O11y | `frontend` (faro), `appo11y` | badge-green "End to End Observability" | | 5. Incident Response | `incidents`, `oncall`, `synth`, `k6` | badge-filled-orange "IRM" | | 6. K8s Observability | `setup instrumentation`, `fleet` | badge-green "Kubernetes" | | 7. Adaptive Telemetry | `metrics adaptive`, `logs adaptive`, `traces adaptive` | badge-orange "Cost Control" | | 8. Agent-Ready Platform | `slo`, `profiles`, `resources`, `assistant` | badge-filled-orange "A2A" |
Styling Reference
- Body: `#0b0c0e`, Cards: `#14161a` bg / `#1e2127` border / 10px radius
- Code blocks: `#0e1014` bg / `#2a2d33` left-border / JetBrains Mono 12.5px / line-height 1.7
- Syntax highlighting spans:
- `.c-bin` (`#6E9FFF`): the `gcx` binary name
- `.c-cmd` (`#c8ccd0`): provider/group name
- `.c-kw` (`#c8ccd0`, weight 500): action/subcommand
- `.c-flag` (`#6E9FFF`): flags like `--type`
- `.c-val` (`#ff9830`): values and strings
- `.c-cmt` (`#4a4f57`): inline comments
- Code line format: `<div class="line"><span class="c-bin">gcx</span> <span class="c-cmd">provider</span> <span class="c-kw">action</span> ..
Grafana — in your terminal and your agentic coding environment. gcx works with Grafana Cloud, Enterprise, and OSS (Grafana 12+). See the compatibility matrix for details. Query production. Investigate alerts. Let the Assistant root-cause issues.
Repo: grafana/gcx
Other skills on gcx.
- /add-datasource
Use when adding a new datasource type to gcx (e.g., Elasticsearch, CloudWatch, InfluxDB), or when the user says "add datasource", "new datasource type", or "integrate [datasource]".
Open skill - /add-provider
Use when adding a new Grafana Cloud product provider to gcx (SLO, OnCall, Synthetic Monitoring, k6, ML, etc.), or when the user says "add provider", "new provider", or "integrate [product]".
Open skill - /migrate-provider
Use when porting a Grafana Cloud product from grafana-cloud-cli (gcx) to gcx, when a bead task references gcx provider migration, or when user says "migrate provider", "port from gcx", "port oncall", "port k6". Not for building providers from scratch — use /add-provider for that.
Open skill - /release
Tag and release a new gcx version. Use when the user wants to cut a release, tag a version, run the release process, or says "release patch/minor/major".
Open skill - /agento11y-instrument
Sets up and instruments a developer's own LLM app or agent to send generations and agentic workflow to Grafana Agent Observability (the Agent Observability SDKs) — greenfield setup, fixing broken instrumentation, or filling gaps in existing instrumentation. Uses gcx for the
Open skill - /agento11y-prod-setup
Sets up production evaluation and guardrails for a DEPLOYED AI agent in Grafana Agent Observability, grounded in the agent's own code and its real ingested traffic. The judgment layer on top of the `agento11y` skill: it reads the agent's source (system prompt, tools, entrypoint)
Open skill

