First-pass review tooling
Find candidate gaps in a MiCAR white paper draft before legal review.
The linter applies fixed rules for Annexes I, II and III of Regulation (EU) 2023/1114 to a draft and lists what is missing or needs review, each with a citation. The same input always gives the same result. No language model is in the checking path.
What it is
- A checklist that flags absent or thin disclosures, per Annex Part.
- A citation and a rule page for every finding.
- Offline LEI checks: check digits and agreement across sections. No registry is queried.
- Statuses: Missing Review Pass. Severity: blocker, major, minor.
What it is not
- Not legal advice, and not a compliance opinion.
- A pass means a check matched: listed terms appear and the section is long enough, or, for the LEI checks, the LEIs found have valid check digits and the parties' LEIs agree across sections. From the next release, and already in the playground, the notification-date and language checks pass when the section names a calendar date, or one of the 24 official EU languages in English or German, and the contact checks of Annex I and III Part A point 6 pass when a telephone number, an e-mail address and a period in days are found; release 1.2.1 (PyPI and
@v1) still checks the notification date and language by listed terms and length and has no contact checks. Accuracy and sufficiency need a lawyer. - Not an iXBRL validator. The format check never passes; tag completeness needs a taxonomy validator.
Your draft stays with you
- The playground runs the rules in your browser. Nothing you paste leaves the page, and it is not stored.
- The CLI and the GitHub Action run where you run them.
- The CI summary, annotations and SARIF log carry rule IDs, citations and line numbers, never draft text. The job log still prints the full report, including the draft title and quoted figures.
Three ways to run it
| Surface | Use it for | Start |
|---|---|---|
| Playground | A quick look at a JSON or XHTML draft | Open the playground |
| Command line | Reports, review tables, review bundles and SARIF | pip install micar-whitepaper-linter, then micar-lint draft.json |
| GitHub Action | Checks a draft in your CI workflow (for example on push or pull request), with a job summary, line annotations and optional code-scanning upload (v1.2.0 or later) | uses: sebastianfoerste/micar-whitepaper-linter@v1 |
Known limits
- Rules work at Annex Part level, with topic rules for an ART's reserve of assets and valuation and for the safeguarding of an e-money token's funds, and, from the next release (already in the playground), a check of the first-page statement of Art. 6(3) and 51(3) MiCAR for other crypto-assets and EMTs. The only point-level checks, from the next release (already in the playground), cover the contact details of Annex I and III Part A point 6.
- The Annex II and III rules have not yet been run against a real ART or EMT white paper.
- No accuracy rate is published: the pilot study's results await human review.
- Citations link to the acts on EUR-Lex at act level.
First-pass screening for review by a qualified lawyer. Use synthetic or public material in the playground.