Skip to content
Back to skills

Roast Me

ASecurity

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`).

  • 134 stars
  • 0 votes
  • 1 copy
  • 33 views
  • Added September 2, 2026
ai-agentspythongocode-review

Security analysis

A100/100

Pro scans all 13 files and shows the line behind each finding

Scanned October 7, 2026

npx -y skills add ericrisco/rsc-harness --skill roast-me --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Roast Me?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Roast Me
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/ericrisco-roast-me/badge)](https://www.skillsdirectory.com/skills/ericrisco-roast-me)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
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)

Habla con la voz de `orient`: frases cortas, una idea por frase, y cada respuesta se entiende sola. Registro técnico o con analogías según `technical_level` en `02-DOCS/wiki/harness/user-profile.md`. Cierra cada turno con el **bloque-brújula** (📍 dónde estás · ➡️ siguiente, terminando en pregunta; ✅ y 🧭 cuando hay algo hecho o decidido). **Nunca termines en seco.** Protocolo completo: skill `orient` → `skills/orient/references/orientation-contract.md`. (Defiere a `suggest` el "¿instalo la skill que falta?".)

Files in this skill

  • SKILL.md5.3 KB
  • evals/README.md3.8 KB
  • evals/cases.yaml5.7 KB
  • prompts/analyze.md5.5 KB
  • prompts/compute.md4.8 KB
  • prompts/roast.md7.6 KB
  • tools/adapters/__init__.py36 B
  • tools/adapters/base.py2.4 KB
  • tools/adapters/claude.py4.2 KB
  • tools/adapters/codex.py8 KB
  • tools/adapters/gemini.py5.4 KB
  • tools/adapters/registry.py2 KB
  • tools/extract_prompts.py20.2 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.