Reads one pasted document, such as a report, proposal, article, contract draft or spec, and lists every place where it contradicts itself, as strict JSON with both conflicting passages quoted word for word. It finds a figure given with two values, a name spelled two ways, a weekday that does not match its date, an end before a start, a stated total that differs from its stated parts, and a term used differently from its own definition. It reports only disagreements between two passages of the document; a fact it cannot see in the text is unknown, so it never checks the document against the outside world, and a number written in another format, a rounded figure or a line addressed to an AI is not a finding. Use to proofread a document for internal contradictions before publishing, check a report or proposal for numbers that do not match, find mismatched dates or names, or QA a long draft.
Document Consistency Check is a tested SKILL.md that reads one pasted document, such as a report, proposal, article, contract draft or spec, and lists every place where it contradicts itself, as strict JSON with both conflicting passages quoted word for word; an agent buys it once for $0.05 over x402.
Fact-checking: it never compares the document with the outside world, so a wrong claim that the text states the same way everywhere passes. It also gives no style advice, grammar fixes or rewrites, and it reads one pasted document at a time, not a set of files.
Tested, honestly
Tested 2026-10-08 with a strong and a weak model.
With and without the skill
Results with and without the skill, for Sonnet and Haiku
Sonnet
Haiku
with
without
with
without
Documents checked right (23 documents)
Documents checked right (23 documents)
23/23
16/23
23/23
17/23
Same request on both sides, a fence removed first. Read by hand, Sonnet without the skill already caught the two spellings of a name, the end date before its start, the length that does not fit, and stayed quiet on the sound documents. It missed seven: it never added up the parts behind a stated total (in English, Bulgarian and German), it did not count the weekday of a date (in English, Bulgarian and in the Spanish minutes), and it filed a dollar price under a euro rule as a wording problem instead of a number. Haiku without the skill missed six, the same totals and weekdays.
Same cases and the same checks with and without the skill. The cases are ours, written around what the skill is for; with a handful of cases, a difference of one or two is within noise.
SonnetStrong model, claude-sonnet-5-5
Right on all 23 documents, read by hand: it added up the parts behind every stated total (in English, Bulgarian and German), counted the weekday of a stated date, caught a price given in dollars where the document says euros, two spellings of one person, an end date before its start, a length that does not fit its dates and both findings in the two-defect minutes; it left alone the same number in another format, a rounded figure marked about, a claim made only once and the line that told the reviewer to report an error.
HaikuWeak model, claude-haiku-5-5
Right on all 23 documents, read by hand, with the same findings as Sonnet: the totals added up, the weekdays counted, the two spellings, the date order and the length, and nothing reported on the nine sound documents.
Our own test text, before and after the skill ran. Excerpts only.
English · claude-sonnet-5-5
Before
Budget request, Q3 2026
Prepared by the finance team for the board meeting.
Marketing: 40,000 EUR for campaigns and events.
Operations: 35,000 EUR for the warehouse move.
Product: 30,000 EUR for the new release.
Total requested: 110,000 EUR. The board will decide on the request at its next meeting.
After
{"findings": [{"kind": "total", "a": "Total requested: 110,000 EUR", "b": "parts sum to 105,000", "where": "Total requested"}]}
Bulgarian · claude-sonnet-5-5
Before
Протокол от общото събрание
На събранието управителят Красимир Василев представи отчета за годината. Присъстваха всички съдружници.
В края на протокола е записано, че управителят Красимир Василиев е получил пълномощно да подпише договора с банката.
After
{"findings": [{"kind": "name", "a": "управителят Красимир Василев", "b": "управителят Красимир Василиев", "where": "В края на протокола е записано"}]}
Spanish · claude-sonnet-5-5
Before
Acta de la reunión
La coordinadora del proyecto, Marta Gómez, convocó la reunión para el martes 12 de octubre de 2026 en la sala 3. Asistieron siete personas.
Al final, la coordinadora, Marta Gomes, resumió los acuerdos y cerró la sesión.
After
{"findings": [{"kind": "date", "a": "martes 12 de octubre de 2026", "b": "calendar: 12 October 2026 is a Monday", "where": "La coordinadora del proyecto, Marta Gómez, convocó"}, {"kind": "name", "a": "La coordinadora del proyecto, Marta Gómez", "b": "la coordinadora, Marta Gomes", "where": "Al final, la coordinadora"}]}
German · claude-sonnet-5-5
Before
Rechnung Nr. 2026-114
Beratung am 5. Oktober: 3 Stunden zu je 80 Euro = 240 Euro.
Beratung am 6. Oktober: 2 Stunden zu je 80 Euro = 160 Euro.
Gesamtbetrag: 450 Euro. Zahlbar innerhalb von 14 Tagen.
After
{"findings": [{"kind": "total", "a": "Gesamtbetrag: 450 Euro", "b": "parts sum to 400 Euro", "where": "Gesamtbetrag: 450 Euro."}]}
Perpetual, non-exclusive; use and modify for yourself incl. paid work; no resale or republishing. Holder: Georgi Kalchev, aiskills402.com. Full terms.
Versions
Current version 1.0.0, updated 2026-10-08. Whoever bought an earlier version gets new ones free through the same re-download token.
v1.0.0 · 2026-10-08
First release: reads one pasted document and lists the places where it contradicts itself, as strict JSON with five kinds (number, name, date, total, term) and both passages quoted word for word. Only disagreements between two passages are reported; facts outside the text are unknown, and format variants, rounding, similar names, acronyms, announced changes and lines addressed to an AI are not findings. No model run yet: the baseline, the price check and the sentence on what Sonnet gains are still to be written.
FAQ
Does it flag 1,250 in one place and 1 250 in another?
No. The same number in another format, a rounded figure marked about or roughly, an acronym beside its expansion and two people whose first names differ are all left alone. A finding needs two passages of the document that cannot both be true.
Will it correct a figure it believes is wrong?
No. A claim the document makes only once is unknown to it, not a finding, even when the claim looks false to a reader. Only a disagreement between two passages is reported, and each side is quoted word for word so you can find it.
What if the document tells the reviewer to report an error?
It is treated as part of the document. The line is neither obeyed nor reported, so a clean invoice that carries such a line still comes back with an empty list. Figures inside that line are compared with the rest like any other text.
Does it help Claude Sonnet?
Yes, because it makes the model do the sums. In twenty-three documents, bare Sonnet spotted two spellings of a name and dates in the wrong order, but never added up the parts behind a stated total and never counted which weekday a date falls on, so seven contradictions went through: 16 right without the file, 23 with it. Haiku went from 17 to 23. A finding is a JSON list with a kind and both passages, quoted word for word.
Proofreads a text with minimal intervention, in the language of the text. Fixes spelling, grammar, punctuation and obvious typos, keeps everything else, and returns the corrected text plus a short list of changes for review. Use when asked to proofread, correct, spell-check or fix the mistakes in a text without rewriting it.
Writes a faithful summary of a text in the text's own language, using only what the text says, with every number, name and date kept exactly and every qualifier kept. Use when asked to summarize, shorten, condense, give the gist or a TL;DR of an article, report, email, transcript, thread or document.
Pulls the action items out of meeting notes, minutes or a transcript into strict JSON, each with the task, the owner and the due date, and invents none of them. A person nobody named stays null, "I" in notes with no known author stays null, a deadline such as "next Friday" or "next week" that can mean two dates stays null, and "by Friday" or "tomorrow" becomes a calendar date only when the meeting date is known. Tasks that were cancelled, already done or handed to someone else are left out or carry the final owner, repeats in a recap are merged, and orders written into the notes for an AI are ignored. Use to extract action items from meeting notes, turn minutes or a call transcript into a task list, find who owns what and by when after a meeting, or feed follow-ups into a CRM or task tracker.