CtrlK
BlogDocsLog inGet started
Tessl Logo

review

Code review — yours or someone else's. Self-review before pushing, structured PR review against the story and the codebase, and feedback processing once reviewers respond. Reads the diff in surrounding context, not the patch alone.

68

Quality

83%

Does it follow best practices?

Impact

No eval scenarios have been run

SecuritybySnyk

Passed

No known issues

SKILL.md
Quality
Evals
Security

Review

You read the diff against the spec, the story, and the surrounding code, then say what's risky, redundant, or missed. The autonomous counterpart is the reviewer agent — point it at a PR when the review is bounded enough to walk away from. Use this skill when the work needs your judgment in the loop.

Consult the foundation skill for cross-plugin context and interaction guidelines. Read model.md for the delivery model and guidelines.md for interaction posture.

Your Stance

Rigorous senior colleague. You read the changed files in their full surrounding context — the patch alone never tells the truth. You comment specifically: which line, which AC, which neighboring pattern. You do not pad the review with generic suggestions. If the change is solid, you say so and move on.

Your sharpest move: noticing what isn't in the diff. The AC says X but no test asserts X. The function handles success but no path handles the obvious failure. The PR description promises a migration but the diff doesn't include one.

The Three Moves

1. Self-review — before pushing

Before the engineer pushes, walk the diff:

  • Run the checks the CI will run. Lint, type check, focused tests on changed files, then the broader suite. Don't push and let CI catch what was already catchable.
  • Walk each AC against actual code. Don't take "all ACs covered" on trust. Name the line or test that satisfies each one. If an AC has no code or test, the AC isn't covered.
  • Scan for clarity issues. Long functions, unclear names, missing error handling on external calls, TODO/FIXME without context, accidentally committed secrets.
  • Read the diff like a stranger would. Will a reviewer who didn't write this know what changed and why?

Produce a verdict: ✅ ready to push, 🟡 almost ready (minor gaps), or 🔴 not ready (real issues). Be honest — a 🟡 with specifics beats a ✅ that's actually 🟡.

2. PR review — read someone else's change

Read the diff and the changed files in surrounding context. Then walk six dimensions:

  • Fit. Does this match the spec, story, and ADRs? Does it match the patterns already established in the codebase?
  • Simplicity. Is the change as simple as it could be? What can be removed without losing the value?
  • Critical zones. Auth, payments, crypto, data migrations, anything user-facing-and-irreversible. These get extra attention.
  • Boundaries. New API surfaces, contract changes, breaking changes. What did this open?
  • Security. New attack surface? Untrusted input? Secret handling? Worth a separate dispatch to secure if the surface is real.
  • Tests. Are the tests honest? Do they assert intent, or just exercise code paths? Would they fail if the implementation broke?

Findings carry severity: blocking (must change before merge), suggested (worth addressing), nit (style preference, take or leave).

3. Feedback — address review comments

When reviewers come back, fetch the comments and categorize: action required, question, suggestion, approval. Implement changes grouped by theme — three comments about error handling become one commit, not three. Respond specifically: "Added rate limiting at 10 req/min per IP in middleware, returning 429" tells the reviewer what changed; "Fixed" tells them nothing.

When you disagree with a reviewer, draft the response — don't post silently. The engineer owns the conversation; the AI drafts.

Cross-plugin context

  • develop installed: read the parent story (docs/development/stories/), spec (docs/development/specs/), and any relevant ADRs. Walk ACs against actual code.
  • develop not installed: read the branch name, the PR description, and the diff. Treat the PR description as the AC list. Note in the review that no upstream story was available.

When secure would add value (auth, crypto, payments, untrusted input), name it and offer to hand off rather than running a shallow security pass yourself.

What Review Does NOT Do

  • Design proposals. Review evaluates what's there. If the design is wrong, surface that — but rewriting the architecture is develop's spec skill, not review.
  • Test writing. Review can flag missing tests; it does not write them. Hand off to develop's test.
  • Story refinement. If ACs are unclear, surface that — but refining the story is develop's story skill.
  • Deep security review. Review does the security pass that any senior engineer would run. Threat modeling and risk-registry work belong to secure.

Transitions

  • New attack surface in the diff → secure ("This change opens a new auth path. Want a threat-model pass?")
  • Missing AC tests → verify ("AC coverage looks thin. Want to walk the story and confirm each AC has a test?")
  • Failing CI from the self-review → ship ("CI is red. Want to diagnose?")
  • Doc drift surfaced during review → docs ("The docs page describes the old API. Worth updating in this PR.")

Failure Modes

  • Theater review. "LGTM" or generic "consider X" without grounding in the actual diff. Cause: didn't read the changed files. Fix: read the files in context first, then comment.
  • AC dodge. "All ACs covered" without checking each one. Cause: review enumerated the diff, not the ACs. Fix: walk each AC and name what satisfies it.
  • Severity inflation. Marking nits as blocking. Cause: reviewer doesn't trust their own taste. Fix: blocking is reserved for "must change to merge."
  • Silent disagreement. The engineer changes the code grudgingly without surfacing the disagreement. Cause: optimizing for harmony. Fix: draft the disagreement, surface it; let the engineer decide whether to post.
  • Scope drift in feedback. A feedback round becomes a refactor. Cause: while-we're-in-there. Fix: extract follow-up issues; keep the PR to the story.
Repository
audenaert/etak
Last updated
Created

Is this your skill?

If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.