deadeye-coder
Lean-first coding persona (YAGNI, stdlib-first, shortest diff). Levels: spotter, marksman, sniper.
PR review across four lenses -- over-engineering, correctness, performance, security -- printed locally, opt-in to post.
$ npx -y skills add deepaksinghcs14/deadeye-cc --skill deadeye-pr --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/deadeye-prContext preview
The summary Claude sees to decide when to auto-load this skill.
PR review across four lenses -- over-engineering, correctness, performance, security -- printed locally, opt-in to post.
name: deadeye-pr description: PR review across four lenses -- over-engineering, correctness, performance, security -- printed locally, opt-in to post. license: MIT argument-hint: "[<PR number or URL>] [--post]"
<!-- deadeye-pr: canonical rubric; edit internal/prreview/ruleset.md, the skill and every host rendering are generated from it -->
One shot over a whole pull request: four lenses, one pass, tagged findings. `/deadeye-review` runs this exact four-lens rubric locally against your working diff or the whole repo — this adds what a PR needs on top: resolving a real PR via `gh`, checking what other reviewers already said, huge-PR fan-out, and an opt-in post back to GitHub. `/deadeye-guard` stays the dedicated deep-security pass this lens is drawn from.
Resolve the target PR, then review only its diff:
`--post`) → that PR.
boundary or a caller contract** — "is this input validated" and "does this break a caller" both need the code around the hunk, not just the `+` lines.
Preconditions and graceful degradation:
the user has a local branch, offer to review `git diff <base>...HEAD` instead. Do not invent PR contents.
different scope. <!-- claude-only -->
out one subagent per ~2,500-line package cluster, in parallel, each returning findings in the standard format. Cheapest tier that fits, floor tier 1 (sonnet) for real logic — tier 0 only for purely mechanical clusters (generated code, lockfiles, vendored deps, renames), top tier for a risky cluster (auth, crypto, concurrency, raw SQL/shell, money). Verify every finding yourself; never truncate or report partial coverage as complete. One integration pass over the combined findings after — an export removed in one cluster, its only caller in another (`break:`/`contract:`).
<!-- /claude-only -->
Before claiming a check is MISSING — a sanitizer, an authz guard, a nil-check — grep OUTSIDE the diff and follow the value into the callee: the real guard often lives one call down. An `authz`/bypass claim needs a concrete input that reaches the sink, or drop it; one wrong finding erodes trust in all of them.
**Every finding carries its proof.** Append a `proof:` clause naming the concrete thing in THIS repo that makes the finding true — the caller you traced, the grep that came back empty, the auditor line, the test that fails. A finding you cannot prove from the code in front of you is a guess; drop it. Precision is the product: one finding that's true beats ten maybes, and every hosted reviewer drowns in the maybes — that's the gap you win on.
**Run the repo's own checks and fuse them in.** Run what the project ships — `go vet`, `tsc --noEmit`, the linter, the tests the diff touches — and let their output confirm or kill a FUNCTIONAL finding. Mark it `(confirmed)` when a tool or failing test agrees, else `likely`. You can run the code; a diff-only bot can't.
A `deadeye: <shortcut>. ceiling: <limit>. upgrade: <trigger>.` comment over a hunk is a recorded DECISION, not a finding — someone already chose to ship that corner with eyes open. Count those separately as accepted, don't flag them. Never flag the one runnable check coder mode leaves behind for deletion — lean code without its check is unfinished.
Precision is the floor. Five habits separate a real review from a plausible one:
The tags classify what a trace found; they are not the search. For each value t
Claude Code plugin that fits the model, effort, and context to each task — fewer tokens, same quality. Deterministic policy kernel in the hooks; every number it reports is measured, not estimated.
Lean-first coding persona (YAGNI, stdlib-first, shortest diff). Levels: spotter, marksman, sniper.
View and change deadeye's settings from chat -- the conversational settings picker.
Security review of the current diff -- full OWASP-mapped coverage (Top 10:2025, API Security Top 10 2023, LLM Top 10:2025), injection through auth, config, and…
Four-lens self-review (over-engineering, correctness, performance, security) of the working diff, or the whole repo with --repo.