Use when the user asks for a written record of what was done: \"write it up\", \"give me a report\", \"summarize what you changed\", \"document this cycle\": or at the end of a build/QA cycle ONLY if the project's cycle-report preference is on. Off by default: never produce one unprompted, and skip it for a one-line change.
Installs into .claude/skills of the current project.
Are you the author of Report?
Add the live security badge to your README. It updates with every re-scan.
[](https://www.skillsdirectory.com/skills/mehrad-dm-report)
---
name: report
description: "Use when the user asks for a written record of what was done: \"write it up\", \"give me a report\", \"summarize what you changed\", \"document this cycle\": or at the end of a build/QA cycle ONLY if the project's cycle-report preference is on. Off by default: never produce one unprompted, and skip it for a one-line change."
---
# report: a receipt for the work
Turn a completed cycle into a concise, skimmable record someone can read **without re-reading the diff**.
It's the same content as the in-chat verdict, made durable and shareable.
## When it runs
- **On request**: "give me a report", "write up what you did", "summarize this cycle".
- **Automatically** at the end of `build` / `qa` **only if** the project preference says so (below).
Default is **off**: otherwise the in-chat verdict is the whole deliverable.
## Preference (per project): off by default
Read **`.mastermind/prefs.md`** in the project root for a `cycle-report:` line: one of:
- `off` (default, and the assumption if the file/key is missing): report only on explicit request.
- `ask`: at the end of a report-worthy cycle, offer once: *"want a report? markdown / html / no"*.
- `markdown`: always write a Markdown report.
- `html`: always write a self-contained HTML report.
The `init` skill sets this once, at the first task. The user can change it anytime ("reports off",
"always give me html reports"): update the line in `.mastermind/prefs.md` to match.
## What goes in it: signal, not a log
1. **Title + verdict**: Done · Done, not fully checked · Not done · Wrong thing, one line why,
and the `not checked:` line.
2. **What changed**: files touched (path + one-line what), grouped by area.
3. **Key decisions**: the non-obvious calls and the one-line reason (not what the model already knows).
4. **How it was verified**: what was actually run/observed end-to-end, and what it produced.
5. **Follow-ups / risks**: anything left, edge cases, TODOs.
Keep it tight: a bloated report gets ignored (same rule as the brain: signal density beats volume).
## Format
- **Markdown (default)**: write `.mastermind/reports/<slug>-<YYYY-MM-DD>.md` (use today's date), or a
path the user names. Cheap, diffable, opens anywhere.
- **HTML (on request / `cycle-report: html`)**: one **self-contained** file (inline CSS, no external
assets or scripts), lightly MasterMind-styled, so it opens in any browser. Costs more tokens.
Tool-agnostic: always a plain file on disk, so it survives whatever tool wrote it.
## Cost & restraint
An HTML report adds meaningful output tokens (~1.5–4k) vs Markdown (~0.4–1k); the in-chat verdict is
~free. Match effort to stakes: **for a one-line change, skip the report entirely**: offer nothing. Reserve
it for cycles someone would actually want to read or share.