fable-review
Skill6 starsChanged 3 months agoMITView on GitHub
Perform an independent, evidence-grounded review of git diffs against requested specifications, architectural invariants, and code standards. Use when reviewing pull requests, inspecting code changes before merge, auditing diffs for regressions, or performing pre-commit sanity reviews — even if the user does not explicitly say \"fable-review\" (e.g. \"review this diff\", \"check this PR\", \"critique my changes\", \"code review this branch\"). Do NOT use for implementing fixes directly (use fable-tdd/fable-execute) or executing tests (use fable-verify).
7 other projects use a version of this.
Adopted by
Most recently taken up by
- itgenius-au/skills-librarytheir own version, first seen Oct 30, 2026
- davidondrej/skillstheir own version, first seen Oct 29, 2026
- abdurshd/skillstheir own version, first seen Oct 13, 2026
- Kohulan/orthonym-skillstheir own version, first seen Sep 29, 2026
- debabsah/fable-methodtheir own version, first seen Jul 28, 2026
- elon-choo/fablevertheir own version, first seen Jun 29, 2026
Other versions7 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 7
- davidondrej/skills★ 4.3ksame name
- ZoneMinder/zmNinjaNg★ 101same name
- elon-choo/fablever★ 33same name
- abdurshd/skills★ 2same name
- Kohulan/orthonym-skills★ 2same name
- debabsah/fable-method★ 1same name
- itgenius-au/skills-library★ 1same name
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository55 other files it gives its agents.
- AGENTS.mdAGENTS.md
- .codex/AGENTS.mdAGENTS.md
- docs/AGENTS.mdAGENTS.md
- skills/fable-tend/AGENTS.mdAGENTS.md
- skills/fable-wise/AGENTS.mdAGENTS.md
- CLAUDE.mdCLAUDE.md
- skills/fable-tend/CLAUDE.mdCLAUDE.md
- skills/fable-tend/site/CLAUDE.mdCLAUDE.md
- skills/fable-wise/CLAUDE.mdCLAUDE.md
- public/llms.txtllms.txt
- get-fableSkill
- typesafe-aiSkill
- get-fableSkill
- get-fableSkill
- fable-architectureSkill
- fable-artifactSkill
- fable-configSkill
- fable-context-thriftSkill
- fable-councilSkill
- fable-coworkSkill
- fable-datavizSkill
- fable-delegateSkill
- fable-discoverSkill
- fable-domainSkill
- fable-ecoSkill
- fable-evalSkill
- fable-executeSkill
- fable-finish-your-turnSkill
- fable-handoffSkill
- fable-healSkill
- fable-judgeSkill
- fable-learningSkill
- fable-loopSkill
- fable-memorySkill
- fable-methodSkill
- fable-native-codeSkill
- fable-outcome-firstSkill
- fable-planSkill
- fable-prove-itSkill
- fable-recoverSkill
- fable-redteamSkill
- fable-releaseSkill
- fable-researchSkill
- fable-runSkill
- fable-scope-disciplineSkill
- fable-securitySkill
- fable-simplifySkill
- fable-simulatorSkill
- fable-skill-creatorSkill
- fable-sparkSkill
- fable-tddSkill
- fable-tendSkill
- fable-verifySkill
- fable-wiseSkill
- get-fableSkill
The file
We split this skill into the rules it gives an agent
10 rules. 0 are common, 9 are distinctive, and 1 is very specific to this project.
0
Common
Most of the 5 edited versions we read keep these.
9
Distinctive
This author's own choices. Worth a look.
1
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 46
no diff or concrete change exists.
- Distinctive: line 76
Do not review isolated snippets only.
- Distinctive: line 104
Do not demand tests for trivial static changes when no meaningful behavior is testable.
- Distinctive: line 114
Avoid style-only comments unless repository rules make them blocking or they materially reduce readability/correctness.
- Distinctive: line 128
APPROVE: no critical or high severity defects found.
- Distinctive: line 133
Never approve without reading the actual diff against a known base.
- Very specific: line 141
If a blocking issue is narrow and understood, produce one repair card to fable-execute.
- Distinctive: line 146
No severity inflation to fill a quota.
- Distinctive: line 147
No style preference masquerades as correctness.
- Distinctive: line 198
every reported issue has a concrete failure mode and location.
“Common” is measured: kept by at least 6 in 10 of the 5 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Fable Review
Review the change as an independent engineer trying to find plausible defects, not as the implementer explaining why the patch is probably fine.
Mission
A useful review connects a concrete line/change to a concrete failure mode. It prioritizes correctness, invariants, compatibility, lifecycle behavior, and test adequacy before style preference.
The reviewer should be skeptical without manufacturing noise.
Activate When
- a diff/PR/implementation is ready for independent inspection;
- verification is green but human/semantic risks remain;
- repository conventions or public contracts may have been violated;
- a release/merge needs grounded review evidence.
Do Not Activate When
- no diff or concrete change exists;
- the main task is automated execution evidence (
fable-verify); - the requested work is threat modeling/security specialization (
fable-security); - blocking behavior is already known and needs implementation (
fable-execute).
Review Classification
Classify the change because different diffs deserve different review depth.
| Change | Primary review focus |
| Bug fix | root cause, regression test, adjacent paths |
| New feature | contract, error states, lifecycle, compatibility |
| Refactor | invariant preservation, accidental behavior delta |
| Concurrency | ordering, shared state, cleanup, race/deadlock |
| Persistence/migration | partial failure, transactions, compatibility, rollback |
| Public API/CLI | callers, defaults, error/exit behavior, versioning |
| Dependency upgrade | changed semantics, transitive behavior, config |
| Packaging/build | exports, artifact contents, generated files, runtime entrypoints |
Review Protocol
Stage 1 — Reconstruct intent independently
Read:
- user/issue/card acceptance;
- diff against the correct base;
- relevant existing contracts/tests/instructions.
State the intended behavior in your own words before judging the implementation.
Stage 2 — Read the whole diff, then trace risky changes
Do not review isolated snippets only. Identify:
- public/observable behavior delta;
- state/data-flow delta;
- control-flow/error delta;
- lifecycle/resource delta;
- concurrency delta;
- config/generated/package delta.
Trace important changes into callers/callees where a local diff cannot establish correctness.
Stage 3 — Check invariants and failure paths
For each material change ask:
- What must remain true before/after?
- What happens on invalid input?
- What happens when dependency call fails/partially succeeds?
- Are cleanup/rollback paths complete?
- Can retries duplicate side effects?
- Can async work outlive ownership/lifecycle?
- Can old/new formats/callers coexist?
Stage 4 — Check tests as evidence, not decoration
Ask:
- Does a test fail on the pre-fix bug/old behavior where appropriate?
- Does it exercise the real changed boundary?
- Are important negative/error/concurrency/compatibility paths missing?
- Were tests weakened/snapshots blindly updated?
- Could implementation be wrong while tests still pass?
Do not demand tests for trivial static changes when no meaningful behavior is testable.
Stage 5 — Check scope and maintainability only after correctness
Look for:
- hidden unrelated refactors;
- duplicated logic that creates inconsistent behavior;
- new abstractions whose complexity exceeds need;
- API/config names that misrepresent semantics;
- comments/docs inconsistent with new behavior.
Avoid style-only comments unless repository rules make them blocking or they materially reduce readability/correctness.
Stage 6 — Calibrate findings (Alibaba OCR Line-Level Anchoring)
Each finding must adhere to the Alibaba OCR schema and exact line anchoring:
- path: relative file path
- start_line / end_line: exact line numbers in the new file (both 0 means unanchored positioning, requiring fallback inspection)
- severity:
critical/high/medium/low - category:
bug/security/performance/maintainability/test/style/documentation/other - concrete failure scenario: why this code will fail or breach invariants
- suggestion_code: actionable code replacement
Discard trivial low-severity style nits or noise. If you cannot describe a plausible failure mode, it is not a defect.
Stage 7 — Produce verdict
- APPROVE: no critical or high severity defects found; remaining suggestions are optional.
- CHANGES_REQUIRED: at least one critical or high issue can cause incorrect behavior, data corruption, vulnerability, or contract violation.
- INCOMPLETE: review cannot establish correctness because required context/diff/evidence is missing or coverage rate is incomplete.
Decision Rules
- Never approve without reading the actual diff against a known base.
- A passing test suite lowers some risk but does not cancel a code-level defect visible in the diff.
- A suspicious pattern is not a finding until tied to a realistic failure mode.
- Missing test is blocking only when the untested behavior is material and existing evidence cannot cover it.
- For concurrency, reason about interleavings/ownership, not just whether promises are awaited.
- For error handling, trace where the error goes and what state may already have changed.
- For migrations, consider partial execution and mixed-version operation.
- For package/config changes, review the user-installed/runtime artifact path, not just source shape.
- If a blocking issue is narrow and understood, produce one repair card to
fable-execute; if root cause is uncertain/repeated, route tofable-recover.
Invariants
- Review is independent and read-only.
- Findings are grounded in changed code or directly affected contracts.
- No severity inflation to fill a quota.
- No style preference masquerades as correctness.
- Approval does not claim security proof unless security review actually ran.
- Review verdict covers the actual diff/base inspected.
Failure Taxonomy
Rubber stamp
Reviewer relies on tests/author summary and barely reads diff. Re-run full diff review.
Pattern matching without failure model
Reviewer flags a pattern because it "looks bad" but cannot show impact. Investigate or drop it.
Local-only review
Change is correct locally but breaks caller/contract/lifecycle. Trace affected boundary.
Test deference
Reviewer assumes green tests prove all semantics. Inspect test adequacy and changed risk.
Scope blindness
Unrelated mutation or accidental behavior change hides in a large diff. Compare against card/non-goals.
Noise overload
Many cosmetic suggestions obscure a real defect. Prioritize by impact and remove quota-driven comments.
Anti-Patterns
- approving based on PR description alone;
- line-by-line style commentary before understanding behavior;
- "add error handling" without naming a failing error path;
- "add tests" without naming the missing risk;
- flagging every
any, TODO, or long function independent of change impact; - assuming an awaited promise means concurrency is safe;
- reviewing only files changed without following a public contract to callers;
- treating absence of findings as evidence the review was deep.
Finding Template
Path: src/example.ts
Lines: L42-L46
Severity: critical | high | medium | low
Category: bug | security | performance | maintainability | test
Changed behavior/invariant:
Failure scenario:
Why current evidence does not cover it:
Suggested bounded repair:Completion Criteria
Review completes when:
- complete relevant diff/base was read;
- intended behavior and changed risks were reconstructed;
- important invariants/error/concurrency/compatibility/test surfaces were checked as applicable;
- every reported issue has a concrete failure mode and location;
- low-value noise is removed;
- verdict is APPROVE, CHANGES_REQUIRED, or INCOMPLETE with evidence.
Progressive Resources
- Alibaba OCR Rulesets & Delegation Guide:
references/alibaba-ocr-rulesets.md - Deep guide:
references/behavioral-diff-review-playbook.md - Existing checklist:
references/diff-review-checklist.md - Example:
examples/code-review-finding.md
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

