data-report
Skill0 starsChanged 42 days agoMITView on GitHub
Runs a data, measurement, root-cause or comparison study and delivers it as a dated, self-contained single-file HTML report. Use when the user says "/data-report", "analyse this data", "write a report", "measure this", "compare A and B", "find the root cause", "characterise this", "which one is better", "summarise these logs", or the Turkish equivalents "analiz et", "rapor çıkar", "raporla", "ölç", "karşılaştır", "kök neden bul". Fits log/CSV/raw-data studies, A-B comparisons, tuning, performance measurement, regression investigation, survey and metric summaries. Do NOT use for checking source code against a rule set — that is lint — or for plain reading and searching a codebase.
8 other projects use a version of this.
Adopted by
Most recently taken up by
- feimacode/open-design-agent-kittheir own version, first seen Nov 6, 2026
- AgnesAI-Labs/agnet-skills-cntheir own version, first seen Nov 1, 2026
- davidanthonyn/claude-skillstheir own version, first seen Oct 20, 2026
- jhy0285/monofieldtheir own version, first seen Oct 13, 2026
- ZJU-REAL/Easeltheir own version, first seen Oct 13, 2026
- cgoinglove/thursdaytheir own version, first seen Sep 27, 2026
Other versions8 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 8
- ZJU-REAL/Easel★ 4.5ksame name
- feimacode/open-design-agent-kit★ 1.1ksame name
- vivy-yi/xiaohongshu-skills★ 455same name
- cgoinglove/thursday★ 56same name
- cgoinglove/thursday-agent★ 56same name
- jhy0285/monofield★ 6same name
- AgnesAI-Labs/agnet-skills-cn★ 1same name
- davidanthonyn/claude-skills★ 0same name
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
The file
We split this skill into the rules it gives an agent
4 rules. 0 are common, 3 are distinctive, and 1 is very specific to this project.
0
Common
Most of the 4 edited versions we read keep these.
3
Distinctive
This author's own choices. Worth a look.
1
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 15
Verify the input; do not trust the name (MUST): Every field, column, flag and file is confirmed from its content before it enters the …
- Distinctive: line 19
Do not force a dirty metric: If a metric carries leakage or an artefact, say so and change it.
- Distinctive: line 70
Every chart belongs to exactly one layer and appears once.
- Very specific: line 78
Every fixed label in the template (meta line, table headers, footer) is a placeholder too, written in the report language.
“Common” is measured: kept by at least 6 in 10 of the 4 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
data-report — measure it and write it up
Answer a question with numbers you can defend, then hand back one dated, self-contained HTML file that a reader with no background and the engineer who has to reproduce it can both use.
Invariants
- Read-only. Source data and the project's runtime code come out unchanged. Temporary scripts and intermediates go to the scratchpad.
- Verify the input; do not trust the name (MUST). Every field, column, flag and file is confirmed from its content before it enters the report.
- Never present a confound as a result. Normalise what is not the thing being asked about, or state in the report's limits what you could not normalise.
- Do not force a dirty metric. If a metric carries leakage or an artefact, say so and change it.
- One primary metric, at most 2-3 supporting ones. Sample counts always visible; no claim from a single sample. State the range you measured over.
- Decision study (which is better, what should we do) → a Recommendation box backed by a number. Descriptive study → no box, conclusion only.
- Report language = the language the user is speaking. Headings are written fresh in it for this study — there is no canonical heading set to translate. Code, identifiers and commits follow the project's own rules.
- Raw charts and analysis scripts are copied to the visible analysis folder defined in
references/paths.md; the user does not go looking in the scratchpad.
Charts
scripts/chart.py — matplotlib Agg in the report palette; embeds base64 and writes a PNG to the
visible folder.
import sys, os; sys.path.insert(0, os.path.join(SKILL_DIR, "scripts"))
from chart import setup_style, save_and_embed
import matplotlib.pyplot as plt
setup_style()
fig, ax = plt.subplots(figsize=(10, 5))
# ... plot ...
img_tag = save_and_embed(fig, "short-name", ANALYSIS_DIR) # returns <img src="data:...">Also embed(path) for an existing PNG and small_multiples(n) for a panel grid. SKILL_DIR is this
skill's folder: ${CLAUDE_PLUGIN_ROOT}/skills/data-report as a plugin, ~/.claude/skills/data-report or
<repo>/.claude/skills/data-report when copied by hand. Resolve it once, do not hardcode it.
Python environment: references/paths.md. Never install packages; if matplotlib is missing, tell the
user and fall back to inline SVG or an HTML table.
Axis labels carry units and are in the report language; one sentence of interpretation under every
chart (.cap); more than 6 series or bars → small_multiples. If the dataviz skill is available,
follow it for categorical colours.
The report
Copy references/report-template.html and fill it in. It runs in three layers, three readers,
each readable on its own, nothing said twice across them:
- Anyone — the answer and what it means in practice; no jargon, no method. The Recommendation box sits here.
- Knows the field, not this study — the question in context, the numbers, the conclusion and how certain it is.
- Engineers — method, what was normalised, the measured range, assumptions, limits, confounds, what was not measured, and the data detail (dates, durations, sources, sample counts, script path). The study must be reproducible from this layer alone.
Every chart belongs to exactly one layer and appears once.
Headings name their own content (MUST) — the subject, the number, the decision. Banned outright: "summary", "özet", "executive summary", "management summary", "yönetici özeti", "yönetim özeti", "easy summary", "kolay özet", "quick summary", "TL;DR", "overview", "genel bakış", and any heading whose whole content is an abstraction level or summary plus an audience name. The template and the checklist defer to this list.
Every fixed label in the template (meta line, table headers, footer) is a placeholder too, written
in the report language; the lang attribute matches it.
Deliver
- Report → the delivery folder from
references/paths.md. Filename: if older reports already live there, follow their pattern; otherwiseYYYY-MM-DD_<subject>.html, today's date,<subject>in kebab-case. - Raw PNGs and analysis scripts → the analysis folder from
references/paths.md; its path in the report footer. Verify it is self-contained (MUST) — this must print nothing (every
srcandurl()isdata:, everyhrefis#,http(s):ormailto:, no<link, no<script src):grep -Eio "<link|<script[^>]*src|(src|href) *= *[\"']?[^\"' >]+|url\( *[\"']?[^\"') ]+" report.html \ | grep -Eiv "^(src *= *|url\( *)[\"']?data:|^href *= *[\"']?(#|https?:|mailto:)"- Walk
references/checklist.md. - A reusable lesson (method trap, data-format surprise, conclusion) → a short project memory; update the existing one rather than opening a duplicate.
Closing message: the report path, one sentence of conclusion, the recommendation if there is one. Do not dump the report body into the chat.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

