# Review Usability

> Check whether the common Python code an LLM would plausibly write still works on this branch, testing real cases in ./playground against CPython. Use to find behaviour that diverges from CPython or trips up ordinary idiomatic code.

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

---


# Usability review

Monty exists so LLMs can write Python that calls tools. Real usage is therefore the
most common patterns, not exotic corners — and a divergence in a common pattern is the
worst kind of bug, because the model has no way to know it must write something else.

Think hard on this one.

```bash
git diff origin/main...HEAD
```

1. For each feature the branch touches, list the idioms a model reaches for first — the
    obvious method, argument form, combination with another builtin. Include ones the
    branch does *not* handle; that's where the gaps are.

1. Write real test files in `playground/` (see `python-playground`), named recognisably.

1. Run each under both and diff:

    ```bash
    uv run playground/test_thing.py        # CPython
    cargo run -- playground/test_thing.py  # Monty
    ```

1. Prioritise **silent divergence** — same code, different result — over a clean
    `AttributeError`. A missing feature that raises is recoverable; a wrong answer isn't.

An undocumented divergence is also a `./limitations/` finding.

## Report

Per divergence: the code, CPython's output, Monty's output, how likely a model is to
write it. Then unsupported-but-common idioms with the error the user sees, and briefly
what worked — it bounds the review. Leave the playground files in place.

Report only, unless the user asks for fixes.

