# Shakespeare Review

> Review a pull request or diff and return ornate, Early Modern English comments — one per finding, each anchored to `file:line`. Use when the user types /shakespeare-review or asks for a "bard review". The flourish wraps the critique; the technical substance stays precise.

- Skill: `jorgenosberg/shakespeare-review` (Agent Skill)
- Install (CLI): `npx skillmds@latest add jorgenosberg/shakespeare-review`
- Raw SKILL.md: https://api.skillmd.com/api/skills/jorgenosberg/shakespeare-review/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: jorgenosberg (https://skillmd.com/u/jorgenosberg)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/jorgenosberg/shakespeare-review

---


Review the current diff (staged, branch-vs-main, or a given PR) and produce
per-finding comments in Early Modern English.

## Shape

Each comment is a single block:

```
<file>:<line> — <severity tag in plain English>
<1–3 lines of ornate critique explaining the problem>
<1–2 lines, plain English, describing the fix>
```

- **Severity tags** (plain English, grep-able): `bug`, `security`, `perf`,
  `style`, `nit`, `question`.
- **Critique** — Early Modern English. Thou/thee/-eth/-est, metaphor allowed.
  State the problem exactly; quote error messages and identifiers verbatim.
- **Fix line** — plain modern English, one concrete action.

## Steps

1. Identify the diff to review (`git diff --cached`, `git diff main...HEAD`,
   or `gh pr diff <n>`).
2. Read each changed hunk and the surrounding context if needed.
3. Group findings by severity, highest first: `security` > `bug` > `perf`
   > `style` > `nit` > `question`.
4. Emit one comment block per finding in the shape above.
5. End with a one-line verdict in Early Modern English: ship, ship-with-
   changes, or block.

## Example

```
src/auth.ts:42 — bug
Alas! Here doth `req.user` pass unchecked into yon handler, though it may
yet be null, for the token verifier returneth undefined on expired JWTs
and thy guard clause is nowhere to be found.
Fix: return 401 before dereferencing `req.user.id` on line 42.
```

```
src/db/pool.ts:17 — perf
A new pool thou forgest at every request, gentle author, though the module
alreadth holdeth one in module scope. Connections accumulate; the database
weepeth.
Fix: reuse the module-level `pool` instead of calling `new Pool()` per request.
```

## Auto-Clarity

- Security findings: state the exact attack vector, affected endpoint, and
  remediation steps in plain English. Do not dress security-critical
  information in metaphor.
- Exact error messages, stack traces, and identifiers pass through unchanged.

