Agent skill

Blindspot Code Critique

by yologdev in yologdev/yoyo-evolve

Runs a structured critique of code, architecture or APIs to surface what familiarity hides, such as panics, security holes and design debt.

MITAuto-check passedDevelopment

Install Blindspot Code Critique

skills CLI
$ npx skills add yologdev/yoyo-evolve --skill blindspot -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install yologdev/yoyo-evolve blindspot --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/yologdev/yoyo-evolve.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/blindspot .claude/skills/blindspot && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
blindspot
GitHub stars
1.9k
Token cost
~2.2k tokens
SKILL.md length
930 words
Files
1
Skills in repo
15
Repo updated
First seen
Licence
MIT

At a glance

Runs a structured critique of code, architecture or APIs to surface what familiarity hides, such as panics, security holes and design debt.

  • Works in 12 steps: Error handling gaps → Security blind spots → Architecture debt → …
  • Reviewing unfamiliar code before changing it
  • SKILL.md covers When to use, When NOT to use, Parameters and Analysis Dimensions, plus 3 more sections
  • Instructions only: no scripts, shell commands, URLs or credentials in SKILL.md

What it does

Blindspot asks the agent to critique a target the way an outsider would: not style or syntax, but design decisions that cause trouble later. The target can be a file, a directory, a module or concept such as error handling in the REPL, or the agent's own codebase. It is suggested before changing unfamiliar code, as a last-mile audit once a feature seems done, and for searching for sibling problems when an issue reports a class of bug.

Findings are grouped by lenses including error handling gaps (unwrap and expect on fallible operations, swallowed errors, panic paths reachable from user input), security blind spots (hardcoded secrets, unsanitized input passed to shell commands, path traversal, unsafe blocks without comments, vulnerable dependencies) and architecture debt (god objects, circular dependencies, leaky abstractions, dead code, tight coupling). A roast level sets how much is reported: gentle gives only critical items and warnings, standard adds smells and is the default, and brutal includes nitpicks. Style and formatting issues belong to linters and formatters instead.

When your agent uses it

  • Reviewing unfamiliar code before changing it
  • Auditing a feature after it seems done
  • Searching for sibling problems when an issue reports a class of bug
  • Checking error handling, security and architecture debt in a module

Example prompts

  • “Run blindspot on src/tools.rs at the standard level.”
  • “Do a brutal blindspot pass over error handling in the REPL.”
  • “Critique the src/format/ directory and report only critical items and warnings.”

Workflow steps

12 steps, taken from the step headings in SKILL.md.

  1. Error handling gaps
  2. Security blind spots
  3. Architecture debt
  4. Scalability risks
  5. Testing gaps
  6. API design issues
  7. Dependency risks
  8. Scope the target
  9. Decide: direct analysis or sub-agent dispatch?
  10. Analyze each dimension
  11. Classify findings
  12. Produce the report

What it can do on your machine

Read from SKILL.md and the folder at commit 637e940. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    No scripts in the folder and no shell commands in SKILL.md (its code samples are bash).

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Blindspot Code Critique loads about 2.2k tokens when it runs. Until then it costs about 36 tokens; SKILL.md has 930 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~36
When it runs · the whole SKILL.md, loaded when a task matches
~2.2k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from yologdev/yoyo-evolve at commit 637e940, republished under its MIT licence (© yologdev). 930 words, ~2,198 tokens.

Download SKILL.mdSave it as .claude/skills/blindspot/SKILL.md (or your agent's skills folder).
name
blindspot
description
Systematically find blind spots in code, architecture, APIs, and deployment — structured critique that catches what familiarity hides
tools
bash, read_file, list_files, search, sub_agent
core
false
origin
yoyo
status
active
score
0.59
uses
1
wins
1
last_used
2026-08-19T23:06:39Z
last_evolved
2026-08-21
keywords
skills/blindspot, roast level, structured critique, Analysis Dimensions

Blindspot

You are performing a structured critique of code, architecture, or systems. Your job is to find what the author can't see — the gaps that familiarity hides, the risks that daily use normalizes, the debt that accumulates silently.

This is not a linter. Linters catch syntax and style. You catch design decisions that will hurt later — the unwrap() that will panic in production, the O(n²) that's fine with 10 items but fatal with 10,000, the API that can't evolve without breaking clients.

When to use

  • During evolution self-assessment (proactive self-critique)
  • On-demand via /skill run blindspot with a target
  • When reviewing unfamiliar code before modifying it
  • After a feature is "done" — the last-mile audit
  • When a community issue reports a class of problem (search for siblings)

When NOT to use

  • For style/formatting issues (use clippy/rustfmt)
  • When you need to understand code before critiquing it (use explore-codebase first)
  • For single-line fixes you can see directly (just fix them)

Parameters

Target

What to analyze. One of:

  • A file path: src/tools.rs
  • A directory: src/format/
  • A module or concept: "error handling in the REPL"
  • self — yoyo's own codebase (defaults to src/)
Roast level

Controls the threshold for reporting:

  • gentle — Critical and Warning only. For when you want actionable items without noise.
  • standard (default) — Critical + Warning + Smell. The balanced default.
  • brutal — Everything, including nitpicks. For when you want the full picture.

Analysis Dimensions

Examine the target through these lenses:

1. Error handling gaps
  • unwrap() / expect() on fallible operations in non-test code
  • Functions that return Ok(()) but swallow errors silently
  • Missing error context (bare ? without .context() or .map_err())
  • Panic paths reachable from user input
  • Error types that lose information (stringly-typed errors)
2. Security blind spots
  • Hardcoded secrets, tokens, or credentials
  • User input passed to shell commands without sanitization
  • Path traversal vulnerabilities (unchecked ../)
  • Unsafe blocks without safety comments
  • Dependencies with known vulnerabilities
3. Architecture debt
  • God objects (structs/modules doing too many things)
  • Circular dependencies between modules
  • Leaky abstractions (implementation details in public interfaces)
  • Dead code that's maintained but never called
  • Tight coupling that prevents independent testing
4. Scalability risks
  • O(n²) or worse in paths that handle user data
  • Unbounded collections (Vec/HashMap that grow without limit)
  • Missing pagination on queries or listings
  • Blocking operations in async contexts
  • Single-threaded bottlenecks in concurrent code
5. Testing gaps
  • Public functions without any test coverage
  • Tests that only check the happy path
  • Tests that mirror implementation rather than behavior
  • Missing edge cases: empty input, Unicode, very large input, concurrent access
  • Brittle tests that break on unrelated changes
6. API design issues
  • Inconsistent naming conventions within the same module
  • Functions that accept String when &str would suffice
  • Missing input validation at API boundaries
  • Breaking change risks (public types that can't evolve)
  • Boolean parameters that should be enums
7. Dependency risks
  • Outdated dependencies with available updates
  • Heavy dependencies used for trivial functionality
  • Dependencies with single maintainers or low activity
  • Vendored or forked code that's drifted from upstream
  • Missing Cargo.lock entries or version pinning

Procedure

1. Scope the target

Determine what you're analyzing and how large it is.

bash
# For a file
wc -l <target_file>

# For a directory
find <target_dir> -name '*.rs' | xargs wc -l | sort -rn | head -20

# For "self"
find src/ -name '*.rs' | xargs wc -l | sort -rn | head -20
2. Decide: direct analysis or sub-agent dispatch?
  • ≤5KB total (roughly ≤150 lines): Read directly, analyze in main context.
  • >5KB but ≤30KB: Read key files directly, focus analysis on highest-risk areas.
  • >30KB: Use sub_agent dispatch. Give each sub-agent one analysis dimension and a subset of files. Synthesize their reports.

For sub-agent dispatch, store the file contents in SharedState and dispatch focused questions:

  • "Analyze error handling patterns in these files. Find unwrap() calls, swallowed errors, and missing error context."
  • "Find scalability risks: O(n²) algorithms, unbounded collections, missing pagination."
Show full SKILL.md (358 more words)Show less
3. Analyze each dimension

For each of the 7 dimensions, scan the target with appropriate tools:

bash
# Error handling: find unwrap/expect in non-test code
grep -rn '\.unwrap()' <target> | grep -v '#\[cfg(test)\]' | grep -v 'tests/'
grep -rn '\.expect(' <target> | grep -v '#\[cfg(test)\]' | grep -v 'tests/'

# Security: find potential secrets
grep -rn 'password\|secret\|token\|api_key' <target> --include='*.rs'

# Architecture: find large files (potential god objects)
find <target> -name '*.rs' -exec wc -l {} \; | sort -rn | head -10

# Scalability: find nested loops
grep -rn 'for.*{' <target> --include='*.rs' -A 5 | grep -B 1 'for.*{'

# Testing: find public functions and check for corresponding tests
grep -rn '^pub fn' <target> --include='*.rs'

These are starting points. Use judgment — not every grep hit is a real finding. Read context around hits before reporting.

4. Classify findings

Assign each finding a severity:

  • Critical — Will cause failures in production, security vulnerability, or data loss risk. Fix now.
  • Warning — Will cause problems under specific conditions (scale, edge cases, maintenance). Fix soon.
  • Smell — Not broken, but makes the code harder to understand, maintain, or extend. Consider fixing.
  • Acknowledged — A known trade-off that the codebase documents or explicitly accepts. Note but don't nag.
5. Produce the report

Format output as:

🔍 BLINDSPOT REPORT — [target]
   Roast level: [gentle|standard|brutal]
   Analyzed: [N files, M lines]

## Critical (fix now)
- **[category]** `file:line` — [description of the issue and why it matters]

## Warning (fix soon)
- **[category]** `file:line` — [description]

## Smell (consider)
- **[category]** `file:line` — [description]

## Acknowledged (known, accepted)
- [items explicitly documented as accepted trade-offs in the codebase]

---
Summary: N critical, M warnings, K smells
6. Distinguish real findings from noise

Before including a finding, ask:

  • Is this actually reachable? (Dead code unwrap() isn't critical)
  • Is there context I'm missing? (A comment explaining why)
  • Does the codebase explicitly accept this trade-off? (Move to Acknowledged)
  • Would fixing this actually improve the code? (If not, skip it)

The goal is signal, not volume. Ten precise findings beat fifty grep hits.

RLM dispatch pattern (for large targets)

When the target exceeds 30KB:

  1. Partition — split files into groups by module or concern
  2. Store — shared_state.set("blindspot.group-1", <file contents>)
  3. Dispatch — one sub-agent per analysis dimension per file group:
    "You are analyzing [files] for [dimension]. Report findings as JSON:
    {findings: [{file, line, severity, category, description}]}"
  4. Synthesize — collect sub-agent results, deduplicate, rank by severity
  5. Report — format the final structured report

Hard depth cap: 3. If you're already at depth 2, do direct analysis instead of dispatching further.

Principles

  • Familiarity is the enemy. The code's author has read it a hundred times. You're the fresh eyes.
  • Severity over volume. One critical finding is worth more than twenty smells.
  • Specificity is respect. "Error handling could be improved" is useless. "src/tools.rs:247 — unwrap() on user-supplied path will panic on non-UTF8 filenames" is actionable.
  • Acknowledge good decisions. If you find something the codebase handles well despite complexity, note it. Context for what's working helps prioritize what isn't.
  • Don't nag about accepted trade-offs. If there's a comment saying "// SAFETY: this is fine because X", move it to Acknowledged unless the safety argument is actually wrong.

© yologdev, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in skills/blindspot of yologdev/yoyo-evolve.

Open the folder on GitHubat commit 637e940

Compare with similar skills

Blindspot Code Critique next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Blindspot Code Critique compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Blindspot Code Critique this skillyologdev/yoyo-evolve1.9k—~2.2kAutomated safety check: PassMIT
Cross-Language Coding Standardszereight/gitlab-mcp2k1 repos~1.4kAutomated safety check: PassMIT
Code Qualitypiomin/claude-ai-spring-boot1.3k—~2.2kAutomated safety check: PassApache-2.0
Code Quality Reviewrsmdt/the-startup536—~525Automated safety check: PassMIT
Aif Best Practicesunxed/f4240—~2.3kAutomated safety check: PassBSD-3-Clause
Mole Bug Patternstw93/Mole69k—~2kAutomated safety check: PassGPL-3.0

Similar skills

  • Shared reference for naming, function size, complexity and error handling rules that reviewer agents apply across TypeScript, Python, Go, Rust, Java, C# and Swift.

    2k GitHub starsUsed in 1 repo~1.4k tokens
    DevelopmentAuto-check passed
  • Code Quality

    piomin/claude-ai-spring-boot

    Comprehensive code review for Java - clean code principles, API contracts, null safety, exception handling, and performance.

    1.3k GitHub stars~2.2k tokensUpdated 5 mo ago
    DevelopmentAuto-check passed
  • Code Quality Review

    rsmdt/the-startup

    Unified code review skill for correctness, design, readability, security, performance, testability, accessibility, and error-handling conventions.

    536 GitHub stars~525 tokensUpdated 2 mo ago
    DevelopmentAuto-check passed
  • Code quality guidelines and best practices for writing clean, maintainable code.

    240 GitHub stars~2.3k tokensUpdated today
    DevelopmentAuto-check passed
  • A catalog of recurring bug shapes in the Mole Mac cleaner, used to review safety-sensitive diffs for deletion safety, unbounded commands, shell traps and weak tests.

    69k GitHub stars~2k tokensUpdated today
    DevelopmentAuto-check passed
  • WooCommerce Code Review

    woocommerce/woocommerce

    Reviews WooCommerce code changes against the project's standards, flagging backend PHP architecture, naming, documentation, data integrity and testing violations.

    11k GitHub starsUsed in 3 repos~1.1k tokens
    DevelopmentAuto-check passed

More from yologdev/yoyo-evolve

All 15 skills in this repo
  • Analyze Trajectory

    yologdev/yoyo-evolve

    Diagnoses a recurring failure such as a stuck task, repeated CI error or frequent reverts by sending sub-agents through the logs and returning one root-cause diagnosis.

    1.9k GitHub stars~3.6k tokensUpdated today
    Auto-check passed
  • Sets a warm, plain-spoken voice for an agent's journal entries and GitHub issue replies, with rules on openings, jargon, honesty and endings.

    1.9k GitHub stars~2.6k tokensUpdated today
    Auto-check passed
  • Codebase Explorer

    yologdev/yoyo-evolve

    Builds a structural map of a large or unfamiliar codebase by dispatching sub-agents to summarize regions, keeping the main context small.

    1.9k GitHub stars~2.8k tokensUpdated today
    Auto-check passed
  • Crates.io Release Check

    yologdev/yoyo-evolve

    Decides when a Rust crate is due for a release and gates publishing to crates.io, using a short git-based cadence check run at the start of a session.

    1.9k GitHub stars~2.1k tokensUpdated today
    Auto-check passed
  • Agent Self-Evolution Rules

    yologdev/yoyo-evolve

    Sets ground rules for a coding agent that edits its own Rust source: read the code and journal first, write tests first, commit small changes and check compilation after each file.

    1.9k GitHub stars~1.9k tokensUpdated today
    Auto-check: warnings
  • Self Assess

    yologdev/yoyo-evolve

    Analyze your own source code and capabilities to find bugs, gaps, and improvement opportunities

    1.9k GitHub stars~547 tokensUpdated today
    Auto-check passed

Categories

Questions about Blindspot Code Critique

What does Blindspot Code Critique do?

Runs a structured critique of code, architecture or APIs to surface what familiarity hides, such as panics, security holes and design debt. Blindspot asks the agent to critique a target the way an outsider would: not style or syntax, but design decisions that cause trouble later. The target can be a file, a directory, a module or concept such as error handling in the REPL, or the agent's own codebase.

When should I use Blindspot Code Critique?

Blindspot Code Critique fits situations like: reviewing unfamiliar code before changing it; auditing a feature after it seems done; searching for sibling problems when an issue reports a class of bug; checking error handling, security and architecture debt in a module.

How do I install Blindspot Code Critique in Claude Code?

Run `npx skills add yologdev/yoyo-evolve --skill blindspot -a claude-code`. Or copy the skill folder (skills/blindspot in yologdev/yoyo-evolve) into .claude/skills/blindspot in your project. Claude Code loads it when a task matches its description.

How do I install Blindspot Code Critique in Codex?

Run `npx skills add yologdev/yoyo-evolve --skill blindspot -a codex`. Or copy the skill folder (skills/blindspot in yologdev/yoyo-evolve) into .agents/skills/blindspot in your project. Codex loads it when a task matches its description.

Can I use Blindspot Code Critique in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add yologdev/yoyo-evolve --skill blindspot -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/blindspot, .gemini/skills/blindspot, .github/skills/blindspot and .opencode/skills/blindspot in your project.

What does Blindspot Code Critique need to run?

SKILL.md names no scripts, command-line tools or credentials: Blindspot Code Critique is instructions for the agent only.

Does Blindspot Code Critique access the network?

SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.

Is Blindspot Code Critique safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Blindspot Code Critique use?

Blindspot Code Critique is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Blindspot Code Critique use?

About 2.2k tokens (SKILL.md is roughly 8.8k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Blindspot Code Critique?

Skills that share tags, products or a category with Blindspot Code Critique: Cross-Language Coding Standards (zereight/gitlab-mcp, 2k stars), Code Quality (piomin/claude-ai-spring-boot, 1.3k stars), Code Quality Review (rsmdt/the-startup, 536 stars) and Aif Best Practices (unxed/f4, 240 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Blindspot Code Critique?

yologdev (a GitHub user) maintains it in yologdev/yoyo-evolve, which has 1,888 GitHub stars. The repository holds 15 skills in this directory. The repository was last updated on October 7, 2026.

Source: yologdev/yoyo-evolve on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.