Roast Review Skill
This skill performs a code review by asking Gemini to "roast" the codebase, then translating the roast into actionable feedback.
Why This Works
When asked to "roast" code, LLMs surface the most glaring issues - the things that would stand out to any developer. This is a useful heuristic for finding high-priority problems.
Configuration
Supported Models
| Model | Best For |
|---|---|
gemini-3-pro-preview | Most thorough analysis (recommended) |
gemini-3-flash-preview | Fast, good quality |
gemini-2.5-pro | High quality, large context |
gemini-2.5-flash | Default, balanced |
Repomix Caching
The script caches repomix output in {tempdir}/repomix-{hash}.txt. Use --no-cache to regenerate.
Execution Steps
Step 1: Determine Scope
Ask the user what to roast:
- •Entire repository (default)
- •Specific directory (e.g.,
src/,tests/)
Step 2: Run the Roast
# Set target and output paths
TARGET_DIR="$(pwd)" # or "$(pwd)/src" for specific directory
ROAST_OUTPUT="/tmp/roast-$(echo -n "$TARGET_DIR" | md5sum | cut -c1-12).md"
# Run the roast (use --repo for subdirectory)
python3 ${CLAUDE_SKILL_DIR}/scripts/repo_query.py --quiet --model gemini-3-pro-preview --output "$ROAST_OUTPUT" \
"Roast this repo. Be brutally honest about what's wrong. For EVERY issue, include the specific file path and line number(s) in the format 'file.py:123' or 'file.py:100-150'. Point out bad practices, code smells, missing features, poor organization, security issues, and anything else problematic."
Step 3: Report Token Usage
The script outputs token usage and cost. Report this to the user:
Token usage: X input, Y output, Z total Estimated cost: $0.XXXX (model-name)
Step 4: Read and Present Results
- •Use Read tool to get the roast from
$ROAST_OUTPUT - •Present the roast to the user
- •Translate each issue into constructive feedback with this format:
## Code Review Summary ### Critical Issues - **[file:line]** Issue description → Recommendation ### High Priority - **[file:line]** Issue description → Recommendation ### Medium Priority - **[file:line]** Issue description → Recommendation ### Low Priority - **[file:line]** Issue description → Recommendation ### Positive Observations - What's good about the codebase
For each roasted issue:
- •Extract the file:line reference
- •Rewrite harshly-worded criticism as constructive feedback
- •Add specific, actionable recommendation
- •Prioritize by severity
Step 5: Validate Flagged Issues
IMPORTANT: Gemini may hallucinate file paths, line numbers, or issues that don't exist. You MUST validate each flagged issue.
For each issue with a file:line reference:
- •Use the Read tool to read the flagged file at the specified line(s)
- •Verify the issue actually exists in the code
- •Mark each issue with a validation status:
## Validated Issues ### Critical Issues - **[file:line]** ✅ VERIFIED - Issue description → Recommendation - **[file:line]** ❌ NOT FOUND - Gemini claimed X but the code shows Y ### Unverified Issues - Issues where file/line couldn't be located or code differs significantly
Validation criteria:
- •✅ VERIFIED: The code at that location clearly shows the described issue
- •⚠️ PARTIAL: The issue exists but at a different line or in modified form
- •❌ NOT FOUND: File doesn't exist, line is out of range, or code doesn't match the claim
- •🤔 SUBJECTIVE: The "issue" is a style/opinion matter, not an objective problem
If more than 30% of issues fail validation, warn the user that the roast may be unreliable and suggest re-running with a different model.
Examples
User: "Roast this repo" Action: Run on current directory, read output, present with recommendations
User: "Roast the src directory"
Action: Run with --repo src/, read output, present with recommendations
User: "Quick roast"
Action: Use --model gemini-2.5-flash for faster results
Requirements
- •
GEMINI_API_KEYenvironment variable - •
google-genai:pip install google-genai - •
repomix:npm install -g repomix(or via npx)