Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Constructive critique via 5 HackerNews personas with claim validation.
.claude/skills/notque-roast/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-05 | ✗→✓ | ▲ Improved | 178% | 0% |
| case-07 | ✗→✓ | ▲ Improved | 167% | 0% |
| case-11 | ✗→✓ | ▲ Improved | 177% | 0% |
| case-12 | ✗→✓ | ▲ Improved | 99% | 0% |
| case-19 | ✗→✓ | ▲ Improved | 123% | 0% |
This skill produces evidence-based constructive critique through 5 specialized HackerNews commenter personas: Skeptical Senior, Well-Actually Pedant, Enthusiastic Newcomer, Contrarian Provocateur, and Pragmatic Builder. The workflow spawns these personas in parallel, validates all claims against actual files and lines, and synthesizes findings into an improvement-focused report.
Key constraints baked into the workflow:
read-only-ops skill invocation| Signal | Load These Files | Why | |---|---|---| | dispatching roast personas; claim format and validation verdicts | personas.md | Loads detailed guidance from personas.md. | | writing the synthesized roast report | report-template.md | Loads detailed guidance from report-template.md. |
Goal: Establish guardrails before any analysis begins.
Invoke the read-only-ops skill:
skill: read-only-opsThis ensures no modifications can occur during the analysis workflow.
Allowed operations:
Read tool for file contentsGlob tool for file patternsGrep tool for content searchls, wc, du, git status, git log, git diffForbidden operations:
Write tool -- no file creationEdit tool -- no file modificationrm, mv, cp, mkdir, touch, git add, git commit, git pushIf read-only mode cannot be activated, stop immediately. Never proceed with unguarded analysis.
Gate: Read-only mode active. Proceed only when gate passes.
Goal: Understand the target thoroughly before spawning critical perspectives.
Step 1: Identify target type
| Input | Target | Action | |-------|--------|--------| | No argument | README.md + repo structure | Read README, survey project layout | | @file.md | Specific file | Read that file, identify related files | | Description | Described concept | Search repo for related implementation |
Step 2: Read key files
Use Read tool to examine: README.md, main documentation, key implementation files relevant to the target.
Step 3: Survey structure
Use Glob to map the landscape:
**/*.md for documentation coverageStep 4: Search for patterns
Use Grep to find: specific claims to verify, usage patterns, dependency references, related test files.
Step 5: Ground verbal descriptions
If user describes a concept rather than pointing to a file, search the repo for existing implementation. Critique grounded in actual code beats critique of a strawman every time. Never analyze a verbal description without confirming the code exists.
Gate: Target identified and sufficient context gathered. Proceed only when gate passes.
Goal: Launch 5 agents in parallel, each embodying a roaster persona, analyzing the target with full evidence-gathering discipline.
Launch 5 general-purpose agents in parallel via Task tool. Load the full persona specification from the corresponding agent file into each prompt.
The 5 parallel tasks:
agents/reviewer-code.md, senior lens)Focus: Sustainability, maintenance burden, long-term viability
agents/reviewer-code.md, pedant lens)Focus: Precision, intellectual honesty, terminological accuracy
agents/reviewer-perspectives.md, newcomer lens)Focus: Onboarding experience, documentation clarity, accessibility
agents/reviewer-perspectives.md, contrarian lens)Focus: Fundamental assumptions, alternative approaches
agents/reviewer-domain.md, pragmatic-builder lens)Focus: Production readiness, operational concerns
Each agent must:
read-only-ops skill first to enforce no-modification guardrails[CLAIM-N] with specific file:line referencesSee references/personas.md for full prompt template and claim format.
CRITICAL: Wait for all 5 agents to complete before proceeding to Phase 4. Do not begin validation on partial results. Every persona must contribute before synthesis can happen.
Gate: All 5 agents complete with tagged claims. Proceed only when gate passes.
Goal: Verify every [CLAIM-N] against actual evidence before including in the report.
Collect and validate every [CLAIM-N] from all 5 agents.
Step 1: Collect all claims
Extract every [CLAIM-N] tag from all 5 agent outputs. For each, track:
Step 2: Validate each claim
For each [CLAIM-N], read the referenced file/line using Read tool and assign a verdict:
| Verdict | Meaning | Criteria | |---------|---------|----------| | VALID | Claim is accurate | Evidence directly supports it | | PARTIAL | Overstated but has merit | Some truth, some exaggeration | | UNFOUNDED | Not supported | Evidence contradicts or doesn't exist | | SUBJECTIVE | Opinion, can't verify | Matter of preference/style |
Critical: You must read the file and check the line. Visual inspection misses nuance. "Obviously valid" is a rationalization word. Do not accept a claim because it sounds right or all personas agree on it — consensus is not the same as correctness.
Step 3: Cross-reference
Note claims found independently by multiple agents. If 3+ personas independently identify the same issue, escalate to HIGH priority regardless of individual severity.
Step 4: Prioritize
Sort VALID and PARTIAL findings by impact:
Gate: All claims validated with evidence. Proceed only when gate passes.
Goal: Transform aggressive persona outputs into constructive, actionable report.
Follow the full template in references/report-template.md. Key synthesis rules:
Validation Summary Table (include in report):
markdown## Claim Validation Summary | Claim | Agent | Verdict | Evidence | |-------|-------|---------|----------| | [CLAIM-1] | Senior | VALID | [file:line shows X] | | [CLAIM-2] | Pedant | PARTIAL | [true that X, but Y mitigates] | | [CLAIM-3] | Newcomer | UNFOUNDED | [code shows otherwise] |
Gate: Report complete with all sections populated. Analysis done.
User says: "Roast this repo"
skill: roastActions:
Result: Evidence-based critique with actionable improvements and validated strengths
User says: "Poke holes in the architecture doc"
skill: roast @README.mdActions:
Result: Multi-perspective architecture review grounded in implementation
User says: "Devil's advocate on using SQLite for the error learning database"
skill: roast the idea of using SQLite for the error learning databaseActions:
Result: Critique anchored in actual implementation, not a strawman
Cause: Persona agent skipped evidence-gathering or analyzed verbally Solution:
Cause: Phase 1 skipped or read-only-ops skill invocation failed Solution:
read-only-ops before proceedingCause: Persona agent crossed from analysis into implementation Solution:
Cause: User invoked roast without specifying target and no README.md exists Solution:
${CLAUDE_SKILL_DIR}/references/report-template.md: Full report output template with tone transformation rules${CLAUDE_SKILL_DIR}/references/personas.md: Persona specifications, prompt template, and claim formatagents/reviewer-code.md: Code quality reviewer (senior and pedant lenses)agents/reviewer-perspectives.md: Perspectives reviewer (newcomer and contrarian lenses)agents/reviewer-domain.md: Domain reviewer (pragmatic-builder lens)| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-01 | fail→fail | 21,971 | 3,192 | -85% | 1 | 1 | 0% | 3,737 | 3,097 | -17% | 0 | 0 | — |
case-02 | fail→fail | 3,600 | 6,593 | +83% | 1 | 1 | 0% | 255 | 3,401 | +1234% | 0 | 0 | — |
case-03 | fail→fail | 27,568 | 3,504 | -87% | 1 | 1 | 0% | 4,019 | 3,180 | -21% | 0 | 0 | — |
case-04 | pass→fail | 5,856 | 18,092 | +209% | 1 | 1 | 0% | 418 | 3,177 | +660% | 0 | 0 | — |
case-05 | fail→pass | 9,018 | 6,145 | -32% | 1 | 1 | 0% | 1,348 | 3,751 | +178% | 0 | 0 | — |
case-06 | fail→fail | 25,039 | 5,909 | -76% | 1 | 1 | 0% | 4,540 | 3,348 | -26% | 0 | 0 | — |
case-07 | fail→pass | 8,549 | 4,198 | -51% | 1 | 1 | 0% | 1,340 | 3,582 | +167% | 0 | 0 | — |
case-08 | pass→pass | 9,533 | 1,871 | -80% | 1 | 1 | 0% | 1,418 | 3,034 | +114% | 0 | 0 | — |
case-17 | pass→pass | 15,428 | 2,755 | -82% | 1 | 1 | 0% | 2,803 | 3,211 | +15% | 0 | 0 | — |
case-09 | pass→pass | 8,112 | 5,214 | -36% | 1 | 1 | 0% | 1,313 | 3,602 | +174% | 0 | 0 | — |
case-10 | fail→fail | 13,443 | 4,210 | -69% | 1 | 1 | 0% | 2,039 | 2,998 | +47% | 0 | 0 | — |
case-11 | fail→pass | 8,783 | 5,069 | -42% | 1 | 1 | 0% | 1,348 | 3,735 | +177% | 0 | 0 | — |
case-12 | fail→pass | 12,521 | 4,586 | -63% | 1 | 1 | 0% | 1,832 | 3,653 | +99% | 0 | 0 | — |
case-22 | pass→pass | 10,430 | 20,774 | +99% | 1 | 1 | 0% | 2,026 | 5,698 | +181% | 0 | 0 | — |
case-13 | fail→fail | 13,266 | 2,425 | -82% | 1 | 1 | 0% | 2,055 | 3,099 | +51% | 0 | 0 | — |
case-14 | pass→fail | 8,820 | 5,428 | -38% | 1 | 1 | 0% | 1,289 | 3,802 | +195% | 0 | 0 | — |
case-15 | pass→pass | 7,822 | 7,175 | -8% | 1 | 1 | 0% | 1,235 | 4,056 | +228% | 0 | 0 | — |
case-16 | fail→fail | 11,300 | 6,021 | -47% | 1 | 1 | 0% | 1,779 | 3,127 | +76% | 0 | 0 | — |
case-18 | pass→pass | 11,441 | 4,141 | -64% | 1 | 1 | 0% | 1,946 | 3,518 | +81% | 0 | 0 | — |
case-19 | fail→pass | 8,754 | 1,884 | -78% | 1 | 1 | 0% | 1,372 | 3,065 | +123% | 0 | 0 | — |
case-20 | pass→fail | 8,281 | 9,801 | +18% | 1 | 1 | 0% | 1,617 | 3,700 | +129% | 0 | 0 | — |
case-21 | pass→pass | 9,384 | 8,397 | -11% | 1 | 1 | 0% | 1,897 | 4,374 | +131% | 0 | 0 | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 22 cases were attempted, and 14 counted toward the lift figure. The other 8 produced results that are not comparable between the two arms, so they are excluded from the headline rather than averaged into it. The headline lift of +9 percentage points is the difference between those two pass rates over the 14 comparable cases. 3 cases got worse with the skill loaded, and they are included in that figure.
Without the skill loaded, the model failed this case. With it loaded, the same prompt on the same model passed. This is one improved case from the latest verified run; every case, including any that regressed, is in the table above.
Other measured skills in the registry, with their headline benchmark lift.