review

review is a command for Claude Code from mendixlabs/mxcli. It costs 13 tokens per session (6,879 once invoked), scanned B, original, Apache-2.0.

A branch-review command that checks code changes against a project's PR checklist, the list of requirements for reviewing a proposed change.

In plain words
What is it for?
It is for reviewing pull requests or branch differences, checking project-specific rules, and recording newly discovered recurring problems.
Why use it?
It brings recurring mistakes into the review and orders findings by severity, with a concrete fix for each blocker.

Command for Claude Code

Written for Claude Code: installed under .claude/. Also seen: reads .claude/ paths; mentions CLAUDE.md.

Good fit It is for reviewing pull requests or branch differences, checking project-specific rules, and recording newly discovered recurring problems.

Compare 6 commands from other repositories ↓
Install with agentmods
npx agentmods add commands/mendixlabs/mxcli/review
Install

Getting it into your agent

One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.

Clone the repo
git clone --depth 1 https://github.com/mendixlabs/mxcli

Made for: Claude Code.

Wrote this? Show the measurements

A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.

agentmods badge for review

README.md
[![agentmods](https://agentmods.dev/badge/commands/mendixlabs/mxcli/review/github.svg)](https://agentmods.dev/commands/mendixlabs/mxcli/review)
Your own site
<a href="https://agentmods.dev/commands/mendixlabs/mxcli/review"><img src="https://agentmods.dev/badge/commands/mendixlabs/mxcli/review/github.svg" alt="Measured on agentmods" height="20"></a>

Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.

agentmods 80×15 button for review

Your own site · 80×15
<a href="https://agentmods.dev/commands/mendixlabs/mxcli/review"><img src="https://agentmods.dev/badge/commands/mendixlabs/mxcli/review.svg" alt="Reviewed on agentmods" width="80" height="20"></a>
Per session 13 Only the description is in the session, so the agent can decide to use it. The body loads when it is invoked.
When invoked 6,879 The whole file, excluding the scripts and references it only reads on demand.
Security scan B 1 finding. A grade says what 26 rules found in the file — not that it is safe.
Origin original No closer match found in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5.1 $0.00013 $0.06879
Opus 5.5 $0.00005 $0.02752
Sonnet 5.5 $0.00003 $0.01376
Haiku 4.5 $0.00001 $0.00688

Measured 4d ago against content hash 06badc7b16b0, method: parsed. Prices are Anthropic first-party input rates as of 2026-10-07, from the pricing page.

Security

Grade B, and why

review scanned grade B with 1 finding against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 4d ago.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Reads agent configuration directoriesmediumAgent snooping

.claude/, .codex/, .gemini/ hold keys, settings and other credentials a mod has no legitimate need for.

| 24 | A skill or command still instructs work into a package the repo has deleted (`sdk/mpr` test locations, a symptom table moved to `findings/*.jsonl` years prior) — the doc reads as authoritative and every instructio
.claude/commands/mxcli-dev/review.md · 162 lines

How it starts

The opening of the file, as written. The whole thing — 162 lines — stays where its author put it; the contents beside it link to each section on GitHub.

/mxcli-dev:review — PR Review

Run a structured review of the current branch's changes against the CLAUDE.md checklist, then check the recurring findings table below for patterns that have burned us before.

Steps

  1. Run gh pr view and gh pr diff (or git diff main...HEAD) to read the change.
  2. Work through CLAUDE.md's "Working Rules for a Change" (the evidence bar) and the subsystem checklists at the end of this file, in full.
  3. Then check every row in the Recurring Findings table below — flag any match.
  4. Report: blockers first, then moderate issues, then minor. Include a concrete fix option for every blocker (not just "this is wrong").
  5. After the review: add a row to the Recurring Findings table for any new pattern not already covered.

Recurring Findings

Patterns caught in real reviews. Each row is a class of mistake worth checking proactively. Add a row after every review that surfaces something new.

# Finding Category Canonical fix
1 Formatter emits a keyword not present in MDLParser.g4 → DESCRIBE output won't re-parse (e.g. RANGE(...)) DESCRIBE roundtrip Grep grammar before assuming a keyword is valid; if construct can't be expressed yet, emit -- TypeName(field=value) — not yet expressible in MDL
2 Output uses $currentObject/Attr prefix — non-idiomatic; Studio Pro uses bare attribute names Idiomatic output Verify against a real Studio Pro BSON sample before choosing a prefix convention
3 Malformed BSON field (missing key, wrong type) produces silent garbage output (e.g. RANGE($x, , )) Error handling Default missing numeric fields to "0"; or emit -- malformed <TypeName> rather than broken MDL
4 No DESCRIBE roundtrip test — grammar gap went undetected until human review Test coverage Add roundtrip test: format struct → MDL string → parse → confirm no error
5 Hardcoded personal path in committed file (e.g. /c/Users/Ylber.Sadiku/...) Docs quality Use bare commands (go test ./...) without absolute paths in any committed doc or skill
6 Docs-only PR cites an unmerged PR as a "model example" — cited PR had blockers Docs quality Only cite merged, verified PRs; or annotate with known gaps if citing in-flight work
7 Skill/doc table references a function that doesn't exist (e.g. formatActionStatement() vs formatAction()) Docs quality Grep function names before writing: grep -r "func formatA" mdl/executor/
8 "Always X" rule is too absolute for trivial edge cases (e.g. "always write failing test first" for one-char typos) Docs quality Soften to "prefer X" or add an exception clause; include the reasoning so readers can judge edge cases
9 Doc comment promises a fallback/feature that doesn't exist in the code (e.g., "raw-map fallback in the client" when no such fallback was implemented) Docs quality Grep for function/type names referenced in doc comments to confirm they exist before committing
10 BSON array items decoded by mongo driver are primitive.D, not map[string]any — bare type assertion item.(map[string]any) always fails silently, causing silent data loss (e.g. Languages not parsed, issue #480) BSON parsing Always use extractBsonMap(item) instead of item.(map[string]any); write a parser unit test with primitive.D items to catch this class of bug
11 execShow switch missing a case for a new ShowXxx constant — executor handler is wired but never dispatched, command silently does nothing Dispatch gap After adding a new Show* constant and handler, grep executor_query.go to confirm the case is present; add a mock test that calls the handler directly
12 Mock test constructs a Kind value (e.g. "Array") that parseImportMappingElement can never produce — parser only sets "Object" or "Value" — giving false assurance for a code path that is dead against real MPR data Test coverage Before writing a mock test for a fallback path, verify the parser can actually produce the mocked value; if not, either extend the parser or remove the dead fallback
13 Go type switch: inserting case TypeB: between case TypeA: and its body silently empties TypeA — unlike regular switch, type switch has no fallthrough, so an empty case is a no-op (e.g. EnumSplitStmt handler stolen by InheritanceSplitStmt in PR #475) Code correctness Always give each type switch case its own complete block; never share a body by relying on fall-through
14 Visitor test for CREATE JAVA ACTION omits AS $$ ... $$ body, causing opaque parse error no viable alternative at input '...' — the body is mandatory, not optional Test coverage / grammar The grammar rule ends with AS DOLLAR_STRING SEMICOLON?; always include a minimal body (as $$ return false; $$;) even in tests
15 New MDL document type or OR MODIFY variant added but cmd/mxcli/syntax/features_*.go not updated — mxcli syntax <topic> and REPL help show stale syntax Docs quality Add/update SyntaxFeature entries: new type → new Register(...) block; changed syntax → update Syntax field of existing topic; grep Path: to confirm topic exists
16 Bug-fix PR missing mdl-examples/bug-tests/<issue>-description.mdl — checklist requires one per fix so Studio Pro can validate the regression case Test coverage Add minimal MDL that reproduces the symptom; commit alongside the fix; the PR description often contains the exact reproduction snippet already
17 Commit message claims a change (e.g. "PERF001": "Performance" mapping in report.go) that is not present in the diff — git body overstates the actual change, often referencing an example rule as if it were shipped Docs quality Diff the file the commit names (git show <sha> -- <file>); if the change isn't there, fix the commit body so it doesn't imply shipped behavior

Read the full file on GitHub · 162 lines

Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. 4d ago Changed · +1 lines 06badc7b16b0
  2. 11d ago Changed · +1 lines 45334c3a5973
  3. 15d ago Changed · +1 lines 16bfbefc636e
  4. 16d ago Changed · +1 lines d975af695afc
  5. 20d ago Changed · +1 lines 97ae1bdd4aba
  6. 1mo ago Changed · +2 lines ea349a65c9f8
  7. 1mo ago Changed · +84 lines 3f82a279f998
  8. 1mo ago Changed · +3 lines 540137e34faf
  9. 1mo ago Changed · +3 lines 8450f9bfb6c3
  10. 1mo ago First seen · 65 lines · 13 tokens per session scan B 03ed00d3d706

Subscribe to this mod's changes

review is a command published in the GitHub repository mendixlabs/mxcli (132 stars, last pushed 2d ago), licensed Apache-2.0. It adds 13 tokens to every session and 6,879 once invoked, about $0.0001 per session on Opus 5.5. A static security scan graded it B with 1 finding (reads agent configuration directories). No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.