From midpage-litigation
Cite-checks a brief, motion, or memo (PDF/Word): verifies each cited case is real, supports the proposition, is good law, and quoted accurately. Returns one marked-up .docx with comments and redlines.
How this skill is triggered — by the user, by Claude, or both
Slash command
/midpage-litigation:cite-checkThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Audit every citation in an uploaded document against ground truth, and hand back **one
Audit every citation in an uploaded document against ground truth, and hand back one
deliverable: a .docx that recreates the document exactly, marked up with Word comments and
tracked-change suggestions. AI-drafted briefs invent cases, misstate holdings, and alter
quotes; human drafts cite stale law and miscite the record. Every citation gets checked
through the Midpage tools and every finding lands in the document itself, anchored where it
occurs. Read references/citations.md for citation form and references/legal-docx.md for
the renderer (including the D.review() comment/redline helpers).
Read the uploaded file faithfully — full text, in order: for a PDF, extract the text; for a
.docx, read the document body. Then extract every authority: case citations (with the
proposition each is cited for and any quotation attributed to it) and record citations (ECF
numbers, page/¶ pins, declarations, exhibits). Build the complete citation inventory before
checking anything — exhaustiveness starts here; a citation missed at intake is a citation
never checked. If the document is a federal filing, note the court and docket number from the
caption; ask for the docket if record cites are present and you don't have it.
Work citation by citation; run independent analyzeOpinion calls in parallel. Never assert a
cite is good until a tool confirms it this session.
analyzeOpinion — reporterCitation exactly as cited,
or the docket tuple (court abbreviation + docket number, no "No." prefix) for
unpublished cases, or a known opinionId. Set question to the cited proposition so the
same call feeds check 2. Resolves → real; use the returned citation and url. Won't
resolve → Review: it may be a fabrication or a case the resolver missed — the attorney
must check. Never substitute a "corrected" cite from memory. A real but mis-formatted cite
that still resolves: existence confirmed, formatting flagged with the tool's exact
citation string as the suggested correction.
WL / LEXIS / other commercial-database citations: Midpage cannot verify a citation to
another commercial database. Resolve the case itself (by case name + court/docket tuple)
and run the remaining checks against the version Midpage has; the comment must say so (see
Comment format). Any suggested correction uses the reporter or docket-number citation the
tool returns — never WL/LEXIS.**doesNotAddress first** — if the
document's point is listed, the case does not stand for it → Fix (the most damaging
miscite). Otherwise match against supportedPropositions: honor scope qualifiers;
central reliance on a background/secondary_matter match → Review (weak support);
a concurrence or dissent (opinionSection) sold as the court's holding → Fix. A
fair-but-aggressive reading the tool can't settle → Review, saying what the case
actually supports.treatment negative (reversed, overruled, criticized) →
Fix, flagged prominently; caution → Review. Separately: does the case actually
help the position citing it? Positive treatment with a holding that cuts against the use →
Review, explained.quote in
supportedPropositions; if not covered, findInOpinion with keywords from the quote.
Verbatim → OK. Altered → Fix with the correct language. Not found → Review
(keyword search can miss) — never assert a quote is accurate just because the case exists.analyzeDocketReport to locate the
entry (missing from the docket → Fix), then analyzeDocketFiling asking whether the
cited content is actually in that filing. Present → OK; absent or different → Fix,
noting what the filing actually says. No docket / not federal → every record cite is
Review with a comment that it could not be checked without the docket.One Word document, rendered through scripts/legal_docx.js, in three layers:
Cover page (centered, then a page break):
That is the whole cover — no "what was checked / what was not checked" essay, no methodology narration, no per-category inventory. The honesty lives where the reader needs it: each citation's own comment says what was confirmed or why it couldn't be checked, and the chat report carries the counts and the uncheckable items.
Exact recreation. Recreate the uploaded document's substantive content exactly —
same text, same order, same headings, same numbering. The unmarked text must read identically
to the original: recreate first, mark up second. You may omit a table of contents, table of
authorities, and the case caption if present — it's the substantive content being checked.
Match the document's structure with the builder API (headings via B.h1–B.h4 or bold
paragraphs to mirror the original's levels; body via B.p; numbered paragraphs via
B.numbered).
The markup. Every finding goes in (a) a Word comment and/or (b) an inline tracked change — nothing else, and nothing in the body text itself:
const D = require("./scripts/legal_docx.js");
const B = D.builders("brief"); // mirror the original's register
const R = D.review(); // author: "Midpage Cite Check"
// a comment anchored to a citation:
B.p([ ...R.comment([B.t("Smith v. Jones, 999 F.3d 100 (9th Cir. 2021)")],
"OK — cited proposition supported (core holding).\nhttps://app.midpage.ai/…") ])
// a redline suggestion (paired with a short comment explaining the basis):
B.p([ B.t("harm must be "), R.del("possible"), R.ins("likely"), B.t(".") ])
// write — passing the comments is required:
B.write("Midpage Cite Check - <filing name>.docx", [cover, body], outDir, { comments: R.comments() });
OK, Fix, or
Review.citation), an altered quote (delete the altered words,
insert the verbatim language). Every tracked change gets a companion comment explaining the
basis. Judgment items (won't-resolve, weak support, negative treatment, unverifiable
quote) are comment-only — never "fix" what a tool didn't establish.Comments are read in a narrow margin pane. Three lines is the target; five is the ceiling.
Too long: "Fix — the case does not appear to stand for the proposition cited. Midpage's analysis of 503 B.R. 571 lists this point among matters the opinion does not address, and two keyword searches found no passage applying the preliminary-injunction standard with 'particular emphasis' on preventing dissipation…; the only 'dissipation' passage quotes the movants' own TRO motion in a footnote. Soundview concerns the automatic stay's immediate and extraterritorial effect… Verify the cited pages or substitute supported authority — e.g., verified this session: In re Netia Holdings…"
Right: "Fix — proposition unsupported. Midpage lists this point as not addressed, and keyword searches found no matching language; 'dissipation' appears only in a footnote. https://app.midpage.ai/document/in-re-soundview-elite-ltd-8496643"
Too long: "OK — case verified; quote verbatim except capitalization. Midpage confirms the sentence '…' 'courts' is lowercase mid-sentence in the original; the redline brackets the case change ('[C]ourts') per Bluebook R5.2. https://app.midpage.ai/…"
Right (the redline already shows the bracket fix): "OK — case verified; quote verbatim except capitalization. Confirm against the case: https://app.midpage.ai/document/matter-of-m4-enterprises-inc-1912384"
WL/LEXIS cite: "OK — Midpage cannot verify citations to other commercial databases, but found this case. The proposition appears supported but worth reviewing. https://app.midpage.ai/document/iovate-health-sciences-international-inc-11137541"
A few sentences: how many citations were checked, the counts by status, the worst findings
first (unresolvable cites, doesNotAddress miscites, negative treatment, altered quotes),
and what could not be checked and why. Then hand over the .docx.
Provides UI/UX resources: 50+ styles, color palettes, font pairings, guidelines, charts for web/mobile across React, Next.js, Vue, Svelte, Tailwind, React Native, Flutter. Aids planning, building, reviewing interfaces.
Fetches up-to-date documentation from Context7 for libraries and frameworks like React, Next.js, Prisma. Use for setup questions, API references, and code examples.
npx claudepluginhub midpage-ai/litigation-skills --plugin midpage-litigation