meta-reviewing-reviewing-eee141 — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited meta-reviewing-reviewing-eee141 (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
Quick Guide: A review is worth what the author can act on. Start from the diff's purpose and the file the change is about — a design problem there leads the review. Must Fix blocks approval, Should Fix is strongly recommended, Nice to Have is optional, and a finding that earns none of them is not written. Approve once the diff meets its success criteria and leaves the code healthier, even where you would have written it differently; a clean diff gets a short approval, not manufactured findings.
Detailed Resources:
<critical_requirements>
Read the specification or description, then every changed file in full, before writing a finding. The purpose is the yardstick for every judgement, and a finding written from a partial read is about code you have not seen — the check it calls missing may sit below where you stopped.
Judge the diff against its purpose, not against an ideal codebase. The author can act on what the diff changed; a finding about code it never touched, or a refactor its specification never asked for, is work with nothing to weigh it against.
Give every finding a `file:line`, the consequence of leaving it, and a fix pointed at an existing pattern where the codebase has one. Without the location the author hunts for it, and without the consequence it is weighed as a style note.
Label every finding with its severity, and leave unwritten anything that earns none. Authors read unlabelled comments as mandatory, so a typo and an injection compete for the same round and the trivia buries the defect.
Verify each success criterion with evidence before approving. An approval that skips them ratifies whatever shipped.
Name what the diff did well, specifically and sincerely. Praise that names a choice tells the author what to repeat; generic praise tells them nothing and reads as filler.
</critical_requirements>
Auto-detection: code review, review this PR, pull request review, review the diff, review comments, approve, request changes, LGTM, nit:, blocking, non-blocking, Must Fix, Should Fix, Nice to Have, success criteria, review verdict
Applies to:
Handled elsewhere:
<philosophy>
Review exists to keep a codebase getting healthier while changes keep landing. That makes it a filter rather than an audit: the bar is "better than before and fit for its purpose", not "how I would have written it", because there is no perfect code to hold a diff against — only better code.
Restraint is part of rigour. A speculative suggestion sends the author to work the diff's purpose never asked for, as surely as a missed bug does by omission, and a review padded with them teaches authors to skim the next one, including the finding that matters.
The reviewer reports; the author fixes. A finding names the problem and the pattern that solves it, and leaves the change to the person who owns it.
</philosophy>
<decision_framework>
Would leaving it break something — behaviour, security, data, a critical
performance problem, a required success criterion, or a major violation of
a convention the codebase documents?
├─ YES → MUST FIX
└─ NO → Is it an improvement to code the diff changed?
├─ YES → Is the churn worth the diff's purpose, and does the spec ask for it?
│ ├─ NO to either → don't write it
│ └─ YES → Is the cost concrete in this diff — an edge case the spec implies,
│ a swallowed error, a measured slowdown, a minor convention
│ deviation in the changed lines?
│ ├─ YES → SHOULD FIX
│ └─ NO → don't write it — it is speculation
└─ NO → Is it an addition the author may take or leave — tests beyond adequate,
documentation, a clearly labelled future idea?
├─ YES → NICE TO HAVE
└─ NO → don't write it — a style preference, a wording preference, an unrequested refactorApprove — every success criterion met with evidence, tests adequate for what changed and passing, no Must Fix. Should Fix findings travel with the approval as strong recommendations, and a minor one can become a follow-up rather than hold the merge.
Request changes — a Must Fix exists, or a criterion is unmet or unevidenced, and the fixes are patches to this approach.
Major revisions needed — the approach itself has to change: a design that cannot meet the spec, a systemic security flaw, existing behaviour broken.
Unsure? Request changes with the specific question that would settle it. That resolves in one round, where blocking indefinitely and approving on hope both cost more.
</decision_framework>
<patterns>
Read the description and its criteria, find the file the rest of the diff exists to serve, and judge its design before anything else. A design problem there leads the review, alone if need be — line comments on code about to be rewritten are wasted on both sides.
1. Purpose — does the description make sense; what are the success criteria?
2. Core — the file or two the change is about. Is it designed to meet them?
3. If not → that finding leads; line-level detail waits for the redesign.
4. If so → the rest, in an order that builds understanding — tests are often the clearest way in.Full code: examples/core.md
Location, problem, consequence, and a fix pointed at the codebase's own pattern — written about the code, never about the author.
**Must Fix — failed save reported as success** · `src/profile/save-profile.ts:42`
The `put` call has no rejection path, and `profile-form.tsx:88` shows "Saved"
unconditionally, so a failed save reads as success and the edit is lost on reload.
Map the rejection to the form's error state, as `settings/save-settings.ts:31` does.Full code: examples/core.md
Group findings under their severity, or prefix each inline comment, so the author can tell what blocks from what does not without asking.
**Must Fix**
- `search.ts:24` — the search term is interpolated into SQL, so any caller can read the whole table
**Nice to Have**
- nit: `rows` → `matchingUsers` at `search.ts:30`; three lists are in scope thereFull code: examples/core.md · prefix vocabularies: reference.md
Compare what the diff does with what was asked. A change to something the spec fenced off blocks; an unrequested feature or refactor is asked into its own change; a reinvented utility is pointed at the existing one. Code the diff never touched is not this review's subject.
Spec: email validation, name and bio editing, save.
Diff: + phone validation, avatar upload → Should Fix: split into their own change
~ src/auth/session.ts → question first — dependency or stray edit?
(spec: "leave auth unchanged") a stray edit is Must Fix
+ validateEmail() in profile-form.ts → Should Fix: lib/validation.ts already exports itFull code: examples/core.md
Each success criterion with its status and the evidence that settles it, plus one line naming what was not reviewed — an approval is read as covering everything it does not exclude.
| Criterion | Status | Evidence |
| -------------------------------- | ------ | ----------------------------------- |
| Edit form rejects invalid emails | MET | `profile-form.test.ts:41` |
| A failed save shows an error | UNMET | `save-profile.ts:42` — see Must Fix |
Not reviewed: `src/api/generated/*` — regenerated from the schema; one file spot-checked.Full code: examples/core.md
Name the choice and why it was right. Look for something sincere; where nothing stands out, say less rather than invent it.
- Reuses `formatOutput` instead of adding a second serializer, so `--json` and the
table view cannot drift apart (`status.ts:31`)Full code: examples/core.md
A diff with nothing wrong gets a short approval: the criteria with their evidence, what was done well, the verdict. Zero findings is a complete review, not an unfinished one.
**Verdict:** Approve — both criteria met (table below); no findings.Full code: examples/core.md
</patterns>
<red_flags>
Costs the author a round:
Misleads the verdict:
Surprising behaviour:
</red_flags>
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.