Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx skills add richardhe-fundamenta/practical-gcp-examples --skill data-analysisgit clone --depth 1 https://github.com/richardhe-fundamenta/practical-gcp-examplesWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/richardhe-fundamenta/practical-gcp-examples/data-analysis)<a href="https://agentmods.dev/skills/richardhe-fundamenta/practical-gcp-examples/data-analysis"><img src="https://agentmods.dev/badge/skills/richardhe-fundamenta/practical-gcp-examples/data-analysis.svg" alt="Measured on agentmods" height="20"></a>- NVIDIA SkillSpector pass
What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00033 | $0.00808 |
| Opus 5 | $0.00016 | $0.00404 |
| Sonnet 5 | $0.00007 | $0.00162 |
| Haiku 4.5 | $0.00003 | $0.00081 |
Grade A, and why
data-analysis scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 7d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
What it actually says
data-analysis
Use this skill when the user wants to analyze data and/or get a chart or report — especially when they uploaded a data file.
Steps:
- Load the uploaded data by filename (it's in the working directory), e.g.
df = pandas.read_csv("data.csv")(orread_excel). Inspect columns/dtypes as needed. - Compute the requested aggregation/analysis with pandas (group-by, resample, etc.).
- Produce output files — they are returned to the user as attachments:
- Chart → save an image:
matplotlib/seabornfig.savefig("chart.png", dpi=150, bbox_inches="tight"). - Tabular report → write
report.xlsx(df.to_excel) orreport.csv. - Do not print raw bytes or a giant table to stdout — write a file instead.
- Chart → save an image:
- Print a short text summary (the headline finding) to stdout alongside the file(s).
- Call
run_codewith the full script.
Displaying charts in the UI:
- After run_code returns, any image you saved is reported back as a short placeholder token,
e.g.
chart.png -> {{chart:ab12}}. To show it, make ONEsend_a2ui_json_to_clientcall whosea2ui_jsonis a JSON list with BOTH abeginRenderingand asurfaceUpdate— neverbeginRenderingalone (that's an empty surface). Lay the surface out top-to-bottom: atitleText, athinkingText (2–4 short sentences explaining how you approached the task and what the data shows — your reasoning, in plain language), then the chart in anImagewhoseurlis the token copied EXACTLY (it resolves to the real image).Column.childrenuses{"explicitList": [<ids>]}:[ {"beginRendering": {"surfaceId": "report", "root": "root", "styles": {}}}, {"surfaceUpdate": {"surfaceId": "report", "components": [ {"id": "root", "component": {"Column": {"children": {"explicitList": ["title", "thinking", "chart"]}}}}, {"id": "title", "component": {"Text": {"text": {"literalString": "<headline>"}, "usageHint": "h3"}}}, {"id": "thinking", "component": {"Text": {"text": {"literalString": "<2-4 sentences: how you analyzed it + what the data shows>"}}}}, {"id": "chart", "component": {"Image": {"url": {"literalString": "{{chart:ab12}}"}}}} ]}} ]
Guidance:
- Available packages include pandas, numpy, polars, pyarrow, duckdb, scipy, scikit-learn, statsmodels, matplotlib, seaborn, altair, plotly, openpyxl.
- Prefer matplotlib
savefig("chart.png", ...)so the user gets a rendered image. - One clear chart per request unless asked otherwise; label axes and give it a title.
- No network access; work only from the uploaded data.
- Never hardcode, reconstruct, or invent the dataset. Analyze only the actual file in the working directory (open it by name). If the file isn't there, do NOT recreate it from memory — ask the user to attach it and stop.
- If run_code returns an error, fix the script and retry.
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 7d ago First seen · 54 lines · 33 tokens per session scan A 27c4bb9dc439
data-analysis is a skill published in the GitHub repository richardhe-fundamenta/practical-gcp-examples (56 stars, last pushed 22d ago), licensed MIT. It adds 33 tokens to every session and 808 once invoked, about $0.0002 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.
Other skills, from other repositories
dcf-model
Build discounted cash flow valuation workbooks in Excel.
audit-xls
Audit a spreadsheet for formula accuracy, errors, and common mistakes. Scopes to a selected range, a single sheet, or the entire model (including financial-model integrity checks like BS balance, cash tie-out, and logic sanity). Triggers on "audit this sheet", "check my formulas", "find formula errors", "QA this…
google-drive-sheets
Find, read, export, edit, and manage the user's Google Drive, Docs, Sheets, and Slides through per-user OAuth.
feishu
Work with Feishu or Lark bots, docs, sheets, bitables, approval flows, and OpenAPI/MCP setup without hardcoding credentials.
large-file-parquet-analysis-and-highlight
A workflow for processing large Excel workbooks by counting their rows, converting them to Parquet when needed, and finding maximum values. Parquet is a data-file format designed for efficient reading.
excel-basic-statistics-and-routing
An Excel workflow for filtering grouped data, calculating averages, extracting row ranges, removing duplicates, and adding totals.