New to Claude Skills? Learn how to install them →

alirezarezvani on GitHub

Named Persona Adversarial Review

Free

Enhance code reviews with real engineering philosophies.

Get this skill

Free · Opens the source repo

What Named Persona Adversarial Review does

Named Persona Adversarial Review is a skill designed to enrich the code review process by incorporating the documented philosophies of renowned engineers. By using perspectives from figures like Linus Torvalds, Ken Thompson, and Steve Jobs, this skill aims to provide concrete, actionable insights that go beyond generic automated reviews. When faced with a pull request (PR) that has architectural or user experience implications, or when the author seeks to strengthen their code before submission, this skill offers a more grounded approach to critique.

The skill operates by applying a structured process where each review is filtered through the lens of specific personas, each representing a unique philosophy. For example, Torvalds' principle of eliminating special cases can guide reviewers to identify unnecessary complexity in the code. The findings are not just opinions; they are anchored in documented principles, allowing developers to cite authoritative sources to support their decisions. This approach helps to ensure that the feedback is not only relevant but also defensible.

One of the key advantages of this skill is its ability to address the limitations of abstract adversarial reviews. Traditional methods often yield findings that feel superficial or disconnected from real-world practices. In contrast, this skill emphasizes the importance of grounding each critique in a verifiable source, enhancing the credibility of the feedback. This discipline is crucial in maintaining the integrity of the review process, as it discourages the fabrication of quotes or principles, ensuring that all findings stand on their own technical merit.

This skill is particularly useful for teams looking to elevate their code review practices by integrating established engineering philosophies into their workflow. It is suitable for both individual developers seeking to improve their code quality and teams aiming to foster a culture of rigorous review. By leveraging the insights of respected engineers, users can gain a deeper understanding of best practices and enhance the overall quality of their software development efforts.

When to use it

Use this skill when automated code reviews feel too abstract or when a PR requires deeper architectural or UX considerations.

When not to use it

This skill may not be suitable for straightforward code reviews where standard checks suffice, or when quick feedback is needed without philosophical grounding.

What you can build with it

Architectural Review

When assessing a PR with significant architectural changes, this skill provides insights grounded in the philosophies of engineers like Ken Thompson.

UX Considerations

Before submitting a PR that impacts user experience, leverage Steve Jobs' principles to ensure the code aligns with user-centric design.

Pre-Submission Hardening

Use this skill to conduct a thorough review of your code before submission, ensuring it meets high standards backed by engineering philosophies.

How to install Named Persona Adversarial Review

View source

1. Install with the skills CLI

npx skills add alirezarezvani/claude-skills/named-persona-adversarial-review --agent claude-code

2. Or install it manually

Download the skill folder and drop it into ~/.claude/skills/ for all projects, or .claude/skills/ to scope it to one repo. Restart Claude Code so it picks up the new skill.

Anthropic's agentic coding CLI, and the reference implementation of Agent Skills. Drop a skill folder into ~/.claude/skills and Claude Code loads it automatically whenever a task matches the skill's description. Claude Code docs

Inside SKILL.md

Written by alirezarezvani

Named-Persona Adversarial Review

TL;DR: Abstract roles find abstract problems. Named engineers with documented, sourced philosophies find problems you would actually fix — as long as you cite the real principle and never invent the quote.

Triggers: "review this PR with real engineers" | "named persona review" | "philosophy-grounded review"

Example Output

CRITICAL [Torvalds]: Special-case error handling at auth.ts:47 duplicates the
  happy path. Torvalds' documented "good taste" principle: restructure so the
  special case disappears rather than adding a branch. (confidence: high — TED 2016)
WARNING  [Thompson]: parseConfig() does three unrelated things; the Unix
  "do one thing well" principle argues to split it. (confidence: high)
NOTE     [Jobs]: Error "EACCES:13" leaks an errno at the user surface; "start
  from the customer experience" argues for a human message. (confidence: high — WWDC 1997)
Verdict: CONCERNS — fix CRITICAL before merge.

Problem

Abstract adversarial review ("act as a saboteur") produces generic findings — the model imagines what a reviewer might say. This skill grounds each lens in a real, sourced engineering philosophy documented in references/persona_principles.md: what Ken Thompson actually argued about trust, what Linus actually demonstrated about good taste — not what an AI imagines.

How it differs from adversarial-reviewer: abstract roles → surface-level findings; named, sourced personas → findings anchored to a documented principle you can cite and defend.

Cost: 1 round ≈ 8-12 min. Comparable to waiting for CI.

Attribution discipline (read this first — it is the load-bearing rule)

This skill puts named, real people's principles to work. That power is also its failure mode: language models hallucinate quotes. To stay honest:

  1. Cite the principle, not a fabricated verbatim quote. Prefer paraphrasing a documented position ("Thompson's Reflections on Trusting Trust argues you can't trust code you didn't fully create") over inventing quotation marks around words the person may never have said.
  2. Attach a confidence level to every attributionhigh (documented, in references/persona_principles.md with a source), moderate (widely attributed, source not pinned), low/unknown (you're inferring). Mirrors productivity/andreessen's citation discipline.
  3. If you cannot ground a persona's lens in a real source, drop that persona. A confidently-wrong quote attributed to a living engineer is worse than one fewer reviewer. Never fabricate a citation to hit the "≥1 finding" bar.
  4. The finding must stand on its own technical merit. The persona is a lens that directs attention, not the authority that makes the finding true. A real bug found "through Carmack's lens" is real because it's a bug, not because Carmack said so.

Rules

  • Ground before role-play. Anchor each persona in references/persona_principles.md (or a verifiable search) first. Ungrounded = invalid.
  • Findings stand on technical merit, with the persona's principle as the lens — see the discipline above.
  • Product persona mandatory every round. Engineers miss UX. Always include one.
  • Honesty over quantity. Don't fabricate findings or citations. Clean dimensions get reported clean (with the zero-finding burden below).
  • Zero-finding burden. "Looks fine" is only valid if you name 3+ principles the code demonstrably satisfies, and how. Non-findings are as expensive as findings.

Persona Pools

Each persona's documented principles + sources + confidence live in references/persona_principles.md.

Product (pick 1 per round — mandatory):

PersonaDocumented principleBest for
Steve JobsStart from the customer experience, work back to the techUX, onboarding
Marty CaganFall in love with the problem, not the solutionPRDs, feature specs, scope creep
Des Traynor (Intercom)The first 30 seconds decide adoptionDocs, READMEs, quick starts

Engineers (pick 2 per round):

PersonaDocumented principleBest forBlind spot
Ken ThompsonTrust boundaries; do one thing wellArchitecture, supply chain, APIUX, docs
Linus TorvaldsEliminate the special case ("good taste"); never break userspaceLogic, data structures, compatUser empathy, DX
John CarmackMeasure before you optimize; performance as craftAlgorithms, hot pathsMinimalism
Kent BeckSimple design; make it work → right → fastProcess, testabilityPerformance, security
Fred BrooksEssential vs. accidental complexitySystem design, estimationLow-level perf

Routing (which personas when):

  • Code correctness → Torvalds + Carmack + Jobs
  • Architecture / design → Thompson + Brooks + Cagan
  • Documentation / API → Thompson + Beck + Traynor
  • Performance → Carmack + Torvalds + Jobs
  • Security / supply chain → Thompson + Torvalds + Cagan
  • 1st round on any PR → Torvalds + Thompson + Jobs (broadest coverage)

Severity Levels

LevelDefinitionAction
BLOCKER2+ personas concur on a CRITICAL, or security / data-loss riskFix before any further work
CRITICALWrong result, data loss, security hole, or violated core invariantFix before merge
WARNINGFragile, misleading, or likely to cause future bugsFix, or explain if deferred
NOTEImprovement that doesn't affect correctnessOptional; record for follow-up

Promotion: NOTE → WARNING → CRITICAL → BLOCKER. Two personas independently finding the same issue promotes it one level (concurrence is signal). BLOCKER is the ceiling.

The Process

Step 0: Read twice

  1. Top-down (comprehension): what changed, and why.
  2. Bottom-up (adversarial): read function by function, last to first. Ask what each function actually guarantees vs. what its name implies, where it can fail, and what it assumes about callers. Reading bottom-up breaks the author's mental model. Multi-file → trace one end-to-end path.

Step 1: Ground the principles first

For each persona, pull their documented principles from references/persona_principles.md (or search "[Name] engineering philosophy principles" and extract only sourced positions) before looking at the code, so you apply the principle rather than retrofitting one to an opinion you already formed.

Step 2: Review (3 independent — 2 engineers + 1 product)

Each persona gets: Mindset (one sentence from their principles), Priorities (3-5 criteria), Findings (each mapped to a documented principle + confidence level), or the zero-finding burden (3+ principles the code satisfies, with how).

Step 3: Synthesize & post

Merge duplicates; count concurrences; promote per the rule; flag single-lens findings (often the most interesting). Post the report as a PR comment (default) or save to .claude/review-[timestamp].md.

Integrity Check (Feynman)

"The first principle is that you must not fool yourself — and you are the easiest person to fool." — Richard Feynman, Cargo Cult Science (Caltech commencement, 1974)

After each round, ask:

  1. Would this person's documented philosophy actually direct attention here — or am I projecting?
  2. Did I cite a real, sourced principle (confidence marked), or dress generic advice in a famous name?
  3. Are my findings true on technical merit independent of the name attached?
  4. All NOTE-level? Then I'm narrating one perspective in different voices. Switch ≥2 personas and re-review.

Exit Condition

  • 1 round minimum for any PR.
  • BLOCKER/CRITICAL found → fix, then 1 re-review round.
  • CONCERNS (WARNING) → fix or accept risk, then 1 more round.
  • CLEAN on 2 consecutive rounds → done.
  • CLEAN on round 1 for a low-impact PR → done (1 round is enough).

When to Use

  • You want deeper coverage than standard automated checks alone.
  • A self-authored PR needs pre-submit hardening.
  • adversarial-reviewer findings feel generic and you want sourced specificity.
  • Reviewing methodologies or docs (product personas excel here).
  • Auth, data, architecture, or public-API changes.

When NOT to Use

  • Low-impact PR (cosmetic only, no logic change) → use adversarial-reviewer.
  • No web access AND the persona isn't covered in references/persona_principles.md → you can't ground it; don't fabricate.
  • Throwaway / prototype code.

Anti-Patterns

Inherits all from adversarial-reviewer. Plus:

Anti-PatternWhy wrong
Inventing a verbatim quote to sound authoritativeFabricated attribution to a real person. Cite the sourced principle + confidence, or drop it.
"As a senior engineer" without groundingNot a named, sourced lens. Ground first.
Same 3 personas every timeRotate per problem type — see Routing.
Product person skippedProduct catches what engineers miss.
Fabricating a finding to hit "≥1 issue"The bar is honesty, not quota. Use the zero-finding burden instead.
Skipping the integrity checkVerification without verification = rubber-stamp.
3 rounds for a trivial changeLow-impact PRs: 1 round is enough.

Cross-References


Attribution: Concept contributed by @YuhaoLin2005 (PR #866). Hardened for this repo: consolidated to one location, anti-fabrication/confidence discipline added, principles sourced in references/.

Frequently asked questions about Named Persona Adversarial Review

Similar skills