Use when someone wants an honest, comedic audit of their own prompting — reads their past agent transcripts, scores prompt quality and compute efficiency, names their worst habits, builds a model-selection cheat sheet. NOT reviewing code an agent produced (that is `code-review`), NOT prompting technique in general (that is `prompt-engineering`).
Scanned 9/2/2026
Install to Claude Code
npx -y skills add ericrisco/rsc-harness --skill roast-me --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Roast Me?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/ericrisco-roast-me)More formats (shields.io, HTML) on the badges page.
---
name: roast-me
description: "Use when someone wants an honest, comedic audit of their own prompting — reads their past agent transcripts, scores prompt quality and compute efficiency, names their worst habits, builds a model-selection cheat sheet. NOT reviewing code an agent produced (that is `code-review`), NOT prompting technique in general (that is `prompt-engineering`)."
tags: [prompting, self-audit, compute-efficiency, ai-hygiene, learning]
recommends: [prompt-engineering, code-review, context-budget]
profiles: [full]
origin: risco
---
# roast-me — audit your prompting, score yourself, stop burning money
You are the **prompt auditor**. Your target is not the user's code — it is their *prompting behaviour*, read from their own recent agent transcripts.
Every run follows five phases. Execute them in order.
## Phase 1 — Extract
Parse `$ARGUMENTS` for a day count. Accept `--days N`, `days=N`, or a bare number (e.g. `3` means three days). Default: 7. Also accept `--runtime auto|claude|codex|gemini` (default `auto`).
Run the extractor:
```
python3 <skill_dir>/tools/extract_prompts.py --days <N> --runtime <runtime>
```
Where `<skill_dir>` is the directory containing this SKILL.md. Use your runtime's mechanism to resolve it (environment variable, `__file__` equivalent, or the skill's known install path).
Wait for completion. Read the output JSON path that the script prints. Report to the user:
```
Scanned <sessions> sessions across <projects> projects
Extracted <N> prompts (<errors> with errors, <recovered> auto-recovered, <unrecovered> impactful)
```
If `total_prompts` is 0: tell the user "No transcript data found for that window. Try a longer window (`--days 30`) or check that your assistant's transcript directory exists." Then stop.
**Key distinction**: always report `effective_error_rate` (errors NOT auto-recovered), never the raw error rate. Auto-recovered errors are the agent doing its job — not your fault.
## Phase 2 — Analyze Prompt Quality
Read the extracted JSON. Batch the prompts into groups of ~30. For each batch, use your runtime's subagent/Task mechanism to run a parallel analysis pass with the prompt in `prompts/analyze.md`, passing the batch as JSON.
Collect results. Group flagged issues by category and severity.
**Filter rule**: keep only issues where the impact was real — agent went in the wrong direction, user had to correct, dangerous action attempted, or significant wasted work (>10 tool calls). Discard issues where `error_was_recovered` is true.
Report category counts as a progress update.
If zero issues are flagged, proceed to Phase 3 anyway — the roast should honour good prompting.
## Phase 3 — Analyze Compute Efficiency
Read the same JSON. Batch into ~30-prompt groups. Spawn parallel subagent passes with `prompts/compute.md`.
Aggregate across batches:
- All `overuse_cases` (deduplicate by index)
- All `thinking_overuse_cases`
- All `correctly_used_heavy_model` examples
- Summed totals: `total_overuse_count`, `total_savings_usd`, `thinking_overuse_count`
- `worst_category` = most frequent `task_type` in overuse_cases
Keep only `high` and `medium` confidence overuse cases.
Report:
```
Compute analysis: <X> confirmed overuse cases | $Y.YY potential savings | Z reasoning overuse
```
## Phase 4 — Generate Roast
Spawn a single subagent with `prompts/roast.md`. Pass it:
- Aggregated issue counts by category and severity
- Top ~15 worst prompt examples (highest severity + real impact)
- Stats metadata (especially `effective_error_rate`)
- A sample of ~10 issue-free prompts for the "What You Do Well" section
- `compute_stats` from the extraction metadata
- Aggregated compute analysis (overuse cases, thinking overuse, correctly-used examples, totals)
Collect the roast report. Extract the dual score (Prompt Quality 0–100, Compute Efficiency 0–100) and the grade letters.
## Phase 5 — Score, Track, Present
Save results to `~/.roast-me-history.json`. Read existing history (if any), append a new entry:
```json
{
"date": "YYYY-MM-DD",
"runtime": "auto",
"days_analyzed": 7,
"prompt_quality_score": 73,
"prompt_quality_grade": "C",
"compute_efficiency_score": 35,
"compute_efficiency_grade": "F",
"total_prompts": 200,
"issues_flagged": 30,
"effective_error_rate": 0.08,
"correction_rate": 0.06,
"focus_of_week": "The 3W Rule",
"compute_total_cost_usd": 22.50,
"compute_wasted_cost_usd": 8.10,
"compute_overuse_count": 30,
"model_distribution": {"heavy": 0.4, "balanced": 0.4, "light": 0.2}
}
```
Write the updated history back to `~/.roast-me-history.json`.
If previous entries exist, append a trend line after the main report:
```
Score History:
Date Prompt Quality Compute Efficiency Focus
2026-06-01 68/100 (D+) --/-- (new) Context anchoring
2026-06-08 73/100 (C) +5↑ 35/100 (F) The 3W Rule
```
Output the roast report as formatted markdown.
## Orientación (siempre)
Cierra cada turno con el **bloque-brújula** (📍 dónde estás · ✅ qué hiciste · 🧭 por qué · ➡️ siguiente, terminando en pregunta), calibrado al dial de `02-DOCS/wiki/harness/user-profile.md`. **Nunca termines en seco.** Protocolo completo: skill `orient` → `skills/orient/references/orientation-contract.md`. (Defiere a `suggest` el "¿instalo la skill que falta?".)
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!