---
name: fine-print
description: Review a contract, lease, or terms document clause by clause, quoting exact words and turning concerns into plain questions to ask the other party (never verdicts or legal advice), then prove full coverage and exact quotes with clause-check.py. Use when the user hands over a contract or terms to review.
---

# Fine print review

Use this whenever the user hands you a contract, lease, policy, or terms document to look over.

## Method

1. Read the whole source file. Find every numbered clause and read each one. Skip nothing, including clauses that look routine.
2. Write the review to `review-<source file name without extension>.md` in the same folder as the source. Example: `lease.txt` gives `review-lease.md`; `terms-of-service.pdf.txt` gives `review-terms-of-service.pdf.md` (strip only the last extension).
3. List every clause number exactly once, in order. Each entry starts with a header line in exactly this form:
   - `Clause N: OK` for a clause with nothing to ask. An OK entry is that one line and nothing else.
   - `Clause N: ASK` for a clause worth raising. Follow it with:
     - `Quote: "..."` holding words copied character for character from the source, inside double quotes. Do not paraphrase, fix typos, or join text from different clauses.
     - `Question: ...` holding one plain question the user could put to the other party.
4. Offer questions, never verdicts. Do not say whether anything is safe, fair, legal, enforceable, allowed, standard, or a red flag. Give no legal advice and no recommendation to sign or not sign. Ask about missing numbers, deadlines, caps, notice, fees, and how things work in practice.
5. Do not use em dashes or en dashes in the review.
6. Do not edit the source file.

## Verify

Run the checker from this project (it lives at `clause-check.py` in the project root; use only Python 3 and its standard library):

```
python3 clause-check.py <source file> review-<name>.md
```

It confirms every clause number in the source appears exactly once in the review, that ASK entries have a Quote and a Question, that OK entries are one line, and that every quoted passage appears word for word in the source within its clause. It names each problem and exits nonzero on any failure, zero when all pass.

Fix any problems it names and run it again. In your reply, report the real exit status you observed from the final run. If python3 is unavailable or the checker could not run, say so plainly and never claim the checks passed.
