{"schema_version":"1","site":"https://decosa.ai","id":"check-their-brief","num":"99","name":"Check their brief","tool_name":"Check the other side's brief","short":"Their brief","blurb":"For the litigator answering an opposition: upload the other side's filing and get findings for your reply. Every cited case, statute and rule is looked up in public sources (a case none of them has is \"not found in the sources searched\", with the search trail, never \"fake\"), quotations are matched word for word against the opinion, holdings are checked against the opinion's text, and the file is scanned for text the judge cannot see (white, tiny or off-page text, invisible characters, metadata, comments) and for instructions aimed at AI tools. Each finding cites the page of their filing and the source, in a Word memo and a signed record.","status":"live","labels":{"industry":["legal"],"job":["review","attest"],"input":["files","text"],"deploy":["hosted","selfhost"],"status":"live","output":["record","text"],"data":["pii"],"hardware":"gpu-96","licence":"permissive"},"industries":["legal"],"runs_in":["hosted","selfhost"],"part_of":[],"built_from":["citation-index","grounding"],"models":"Qwen3.8-27B (holdings against the opinion; which hidden texts speak to AI tools) · document reader for scanned filings","where":"Hosted or self-host; the confidential tier for anything not yet public","hardware":"1x RTX PRO 6000 (96 GB) or 1x RTX 5090 (32 GB) for the judge; the hidden-text scan, lookups and quotation match run on CPU","final_artifact":"Findings for your reply, each tied to a page of their filing and a public source, as a Word memo, plus a signed record of what was checked, when and where.","self_host_first":false,"verification":{"receipt_coverage":"full","summary":"Receipt per model call; search trail per citation; signed record","manual_qa":{"hosted":{"date":"2026-09-30","result":"pass","p50_ms":8303,"p95_ms":8364,"runs":5,"receipts_per_run":7,"cost_per_run_usd":0.012553},"selfhost":{"date":"2026-09-28","result":"pass","method":"fresh clone, compose up, sample against local model servers","notes":"Fresh clone of a decosa-api pre-release build (6ee6b6b), the api image built from docker/api/Dockerfile (theirbrief extra), this prompt's compose with the direct route to the already-running local Qwen3.8-27B, OCR off, anonymous CourtListener. The prompt's smoke steps and the rehearsal bundle passed (11/11): 7 findings on the fictional PDF, 7 receipts, the record verifies and a tampered decision fails, the Word memo exports, a scan is refused with a clear message when OCR is off. 57.9 s, $0.0126. Torn down after."},"known_limits":["Hosted numbers are the production smoke check of the sample, run 5 times in a row on 30 Sep 2026 (all passed); with 5 runs the slowest-1-in-20 figure is simply the slowest run.","No citator: it does not say whether a case is still good law.","Westlaw- and Lexis-only decisions, many unpublished orders and most state codes are not in the free sources: they come back 'look at' or 'not checkable', never 'fine'.","Case citations are looked up in a local index of CourtListener's and the Caselaw Access Project's public data (quarterly; snapshot 30 Jun 2026), with no network call. CourtListener's free API (250 searches a day) is asked only on a miss or for a volume newer than the snapshot; what nothing can answer is listed as 'not checked yet', never as fine.","Quotations and holdings of cases after about 2018 need the opinion PDF from CourtListener, one search per quoted case; if it cannot be asked, those checks stay 'not checked'.","Instructions hidden in the file are caught well; instructions written in plain view are caught only when a pattern or AI word flags the sentence first."],"nightly_covers":null},"nightly":"https://api.decosa.ai/verify/status"},"eval_summary":{"metrics":[{"name":"Non-existent citations caught (strict)","value":"24 / 31 (77%)","unit":null,"n":31,"split":"heldout","note":"LePhantomCite eval split, run once on frozen code; 81% counting 'look at'."},{"name":"Case name and cite from two different cases (strict)","value":"34 / 68 (50%)","unit":null,"n":68,"split":"heldout","note":"75% counting 'look at'."},{"name":"Swapped-word misquotations (strict)","value":"31 / 45 (69%)","unit":null,"n":45,"split":"heldout","note":null},{"name":"Invented citations in real criticised filings called fine","value":"0 / 78","unit":null,"n":78,"split":"test","note":"30 findings and 3 looks among the 34 it could look up; 32 not checked because CourtListener was unavailable (daily limit). Not held out from the fixes this run exposed."},{"name":"Misstated holdings (strict)","value":"4 / 131 (3%)","unit":null,"n":131,"split":"heldout","note":"Not reliably caught by the open judge. Our own citation-support model plus the judge: 80 / 129 at 7 / 372 false flags on held-out pairs (prototype, off by default)."},{"name":"False findings on error-free excerpts","value":"49 / 950 (5.2%)","unit":null,"n":950,"split":"heldout","note":"33 / 950 (3.5%) with the post-test fixes simulated on the same outputs."},{"name":"Hidden AI instructions flagged (blind texts)","value":"71 / 74","unit":null,"n":74,"split":"heldout","note":"The 3 misses were CJK text the planting tool could not encode. Benign hidden texts flagged: 3 / 75."},{"name":"Cost per excerpt at list price","value":"$0.0123","unit":"USD","n":390,"split":"heldout","note":"p50 9.9 s; the fictional two-page opposition: $0.0127, 32-37 s warm."},{"name":"Invented citations in criticised filings, with the local citation index (CourtListener off)","value":"32 / 78 findings, 63 / 78 findings or looks","unit":null,"n":78,"split":"test","note":"0 called fine; 4 not checked (was 32 without the index). Not held out from the lookup fixes made during that run."}],"dataset":"LePhantomCite (CC BY 4.0): 390 held-out excerpts of real federal appellate briefs with injected citation errors; 160 blind-written injection and benign texts hidden in 12 public-domain Solicitor General briefs; 31 real filings courts criticised for invented citations and 23 uncriticised briefs from RECAP.","held_out":true,"caveats":["LePhantomCite errors are injected by its authors; its non-existent citations use reporter series that do not exist, which a code check catches.","The published real-filings run had CourtListener from cache only (free-account daily limit); the re-run with the local citation index checks all but 97 of 2,030 case citations. Labels come from court orders, 17 of 31 of which list only examples.","Pin cites and misstated holdings are not reliably caught by the shipped path.","Some 'false findings' on error-free excerpts are real errors in the original briefs; not all were adjudicated.","About 5% of test items met CourtListener rate limits (shared with our other jobs).","One author wrote the rules and the dev texts; the test injection texts were blind-written.","No human paralegal was timed; the manual baseline is an estimate."],"date":"2026-09-28","doc_url":"https://decosa.ai/metrics/evals/check-their-brief"},"stack":{"summary":"For the associate or paralegal answering an opposition or reply. Upload their filing (PDF, Word or text). The checker renders every page and compares it with the text layer to find what a reader cannot see (white, tiny or off-page text, invisible characters, metadata, comments), and one receipted model call decides which of those texts speak to AI tools. It then reads every citation with eyecite, flags reporter series that do not exist, looks each case, statute and rule up in free public sources with a search trail, matches every quotation against the opinion by string, and has an open judge model check each holding against the opinion's text. Nothing is called fake: a miss is 'not found in the sources searched'. The result is findings for the reply, a Word memo and a signed record.","tagline":"Upload the other side's filing: fake-looking citations, changed quotations, misstated holdings and hidden text aimed at AI tools, each tied to a page and a source.","deployment":"hosted-or-self-host","regulatory_note":"Findings for a lawyer to verify, not legal advice (as of 28 Sep 2026). Before telling a court that a cited case does not exist, pull the reporter: public sources miss some unpublished, very recent and Westlaw- or Lexis-only decisions. Fed. R. Civ. P. 11(b)(2) makes the signer of a filing certify that its legal contentions are warranted by existing law, and courts sanction invented citations (Mata v. Avianca, Inc., 678 F. Supp. 3d 443 (S.D.N.Y. 2023)); a sanctions motion under Rule 11(c)(2) must be served 21 days before it is filed. If the scan finds text under a black box (a failed redaction), ABA Model Rule 4.4(b) requires a lawyer who receives inadvertently sent information to notify the sender; the memo never shows those words. A filed brief is a public record; your notes about it, and papers served but not filed, belong on your own box or the confidential tier.","components":[{"id":"checker","role":"Checker: hidden-text scan (rendered page against text layer, metadata, comments, invisible Unicode), citation parsing, impossible-reporter check, lookups with a search trail, quotation match, Rule 5.2 scan, findings memo, signed record (no model; CPU)","name":"decosa-api check-their-brief (decosa_api/verticals/theirbrief, on the filing pre-flight engine)","hf_repo":null,"license":"AGPL-3.0-or-later","params":null,"quant":null,"vram_gb":0,"memory_gb_estimate":null,"engine":"Python 3.12; eyecite and reporters-db (BSD-2-Clause); pypdfium2 (Apache-2.0 or BSD-3-Clause; PDFium BSD-3-Clause) to render pages and read the text layer; pypdf (BSD-3-Clause); poppler pdftotext","receipt_coverage":"partial","in_hosted_demo":null,"tiers":["lite","standard","wanted"],"alternative_to":null},{"id":"judge","role":"Judge: one call per holding checked against the opinion, and one call for which hidden or embedded texts speak to AI tools (texts quoted as data)","name":"Qwen3.8-27B (NVFP4)","hf_repo":"nvidia/Qwen3.8-27B-NVFP4","license":"Apache-2.0","params":"27.8B","quant":"NVFP4 (MLP NVFP4, GDN/attention FP8) + FP8 KV cache; MTP head, 3 draft tokens","vram_gb":20,"memory_gb_estimate":null,"engine":"vLLM 0.29.0, temperature 0, thinking off, prefix caching","receipt_coverage":"strong","in_hosted_demo":true,"tiers":["standard","wanted"],"alternative_to":null},{"id":"reader","role":"Document reader for scanned filings (no text layer): layout plus OCR, then the same checks","name":"Decosa document reader (Docling layout + PaddleOCR-VL-1.6)","hf_repo":"PaddlePaddle/PaddleOCR-VL-1.6","license":"Apache-2.0","params":null,"quant":null,"vram_gb":null,"memory_gb_estimate":null,"engine":"decosa document reader service (vLLM for the page parser)","receipt_coverage":"partial","in_hosted_demo":true,"tiers":["standard"],"alternative_to":null},{"id":"support","role":"Citation-support model (own model M1, prototype): does the opinion's passage support the brief's sentence","name":"decosa-citation-support-modernbert-large (own model M1, prototype; Apache-2.0)","hf_repo":"decosaai/decosa-citation-support-modernbert-large","license":"Apache-2.0","params":"395M","quant":"BF16","vram_gb":0,"memory_gb_estimate":null,"engine":"transformers on CPU (the grounding-model service API)","receipt_coverage":"partial","in_hosted_demo":false,"tiers":["alternates"],"alternative_to":null},{"id":"glm-judge","role":"Stronger holdings judge (wanted)","name":"GLM-5.3-Flash (NVFP4)","hf_repo":null,"license":"MIT","params":null,"quant":"NVFP4","vram_gb":null,"memory_gb_estimate":170,"engine":"SGLang, tensor parallel over 2 cards","receipt_coverage":"none","in_hosted_demo":false,"tiers":["wanted"],"alternative_to":null}],"tiers":[{"id":"lite","label":"Lite · CPU only, no GPU","summary":"The hidden-text scan with the injection patterns, existence, impossible reporters and quotations. No holdings check, and hidden texts that hit no pattern are listed without a model's reading.","components":["checker"],"hardware":"Any Linux or macOS machine with Python 3.11+","quality_evidence":[{"metric":"Hidden-text scan and reporter/existence checks","value":"same as standard (code, no model)","source":"docs/evals/check-their-brief.md"},{"metric":"Hidden instructions without the model's reading","value":"not measured separately","source":null}],"latency_note":"estimate: seconds plus the lookups; not timed separately.","in_hosted_demo":false,"receipt_coverage":"none","receipt_note":"No model call, so no model receipts; the record is still signed by the box.","hosting":null},{"id":"standard","label":"Standard · one GPU for the judge (hosted demo)","summary":"Adds the holdings check and the model's reading of hidden texts with Qwen3.8-27B, one receipted call each, and scanned filings through the document reader. This is what the hosted API runs.","components":["checker","judge","reader"],"hardware":"1x RTX PRO 6000 96 GB (measured) or 1x RTX 5090 32 GB (estimate, without the document reader)","quality_evidence":[{"metric":"Citations to cases that do not exist, caught as a finding (strict) / as a finding or a look (lenient)","value":"24/31 (77%) / 25/31 (81%)","source":"docs/evals/check-their-brief.md, LePhantomCite held-out test (390 real brief excerpts, CC BY 4.0), run once"},{"metric":"Case name and cite that belong to two different cases","value":"34/68 (50%) strict / 51/68 (75%) lenient","source":"same"},{"metric":"Quotations with a word swapped","value":"31/45 (69%) strict / 36/45 (80%) lenient","source":"same"},{"metric":"Wrong pin cites and misstated holdings (strict)","value":"2/55 and 4/131: not reliably caught","source":"same; the judge marks most misstated holdings 'look at', as it does 25% of holdings in error-free excerpts"},{"metric":"False findings on error-free excerpts","value":"49 of 950 checked items (5.2%) as run; 33 (3.5%) with the post-test fixes simulated on the same outputs","source":"same"},{"metric":"Hidden instructions aimed at AI tools (blind-written texts hidden in 12 real briefs, 13 techniques)","value":"71/74 flagged (the 3 misses were CJK text the planting tool could not encode); benign hidden texts flagged 3/75 as run, 1/75 in the regression re-run after the pattern fix","source":"docs/evals/check-their-brief.md, section 3 (re-run after the real-PDF fixes: same numbers)"},{"metric":"Instructions written in plain view","value":"2/6 flagged, 0/5 benign flagged: weak","source":"same"},{"metric":"Real filings courts criticised for invented citations (31 filings, 161 problems from the orders; CourtListener cache-only)","value":"Invented citations: 0 of 78 called fine; 30 findings and 3 looks among the 34 it could look up; 32 not checked because CourtListener was unavailable. All problems: 37/161 findings, 74/161 findings or looks","source":"docs/evals/check-their-brief.md, section 2 (Charlotin database + RECAP; not held out from the fixes it exposed)"},{"metric":"Same 54 filings with the local citation index, CourtListener off (gateway, 28 Sep 2026)","value":"Invented citations: 0 of 78 called fine; 32 findings and 63 findings or looks; 4 not checked (was 32). Case citations not checked: 97 of 2,030 (was 563). Uncriticised briefs: 47 findings on 2,006 checked items (2.3%). p50 17 s a filing.","source":"docs/evals/citation-index.md (not held out from the lookup fixes made during that run)"},{"metric":"Findings on 23 uncriticised real briefs","value":"66 of 1,645 checked items (4.0%) as run; 49 of 1,666 (2.9%) after the fixes (direct-route re-run); many are real miscites in those briefs or quotes of the other side's invalid cites","source":"docs/evals/check-their-brief.md, section 2"}],"latency_note":"measured on our server, shared card, gateway route (see Latency).","in_hosted_demo":true,"receipt_coverage":"strong","receipt_note":"Every model call is a separate gateway call with a signed receipt; the signed record lists them.","hosting":null},{"id":"wanted","label":"Wanted · a GLM-5.3-Flash holdings judge on your own hardware","summary":"A stronger open judge from another family for the holdings check, where the 27B is weakest here. Your notes can be privileged, so it runs on your hardware, never on community providers. Not served yet.","components":["checker","judge","glm-judge"],"hardware":"Your own hardware: 2x 96 GB cards (NVFP4, about 170 GB, estimate) or a Mac with 192 GB or more (MLX 4-bit, estimate).","quality_evidence":[{"metric":"This eval, same protocol","value":"not measured yet","source":null}],"latency_note":"not measured.","in_hosted_demo":false,"receipt_coverage":"none","receipt_note":"Not a gateway model yet.","hosting":"own-hardware"}],"alternates":[{"id":"support-model","label":"Our citation-support model as a second opinion on holdings","components":["support"],"hardware":"CPU (8 threads, about 0.9 s per holding) or any small GPU","use":"Turns a holding the judge calls unsupported into a finding only when our own fine-tuned model agrees: on held-out pairs 80 of 129 misstated holdings at 7 false flags in 372, against 26 at 22 for the judge alone. Prototype weights, off by default (DECOSA_THEIRBRIEF_SUPPORT_URL).","status":"not served"}],"services":[{"name":"decosa-api","port":8445,"image":"${DECOSA_REGISTRY}/decosa-api:<tag>","purpose":"GET /theirbrief/info, /theirbrief/samples; POST /theirbrief/parse (PDF, DOCX or text; hidden-text scan; scans to the document reader), /theirbrief/check (SSE or JSON); GET /theirbrief/runs/{id}/export?format=md|docx|record. Filings stay in memory for one hour, never on disk."},{"name":"vLLM (judge)","port":8114,"image":"vllm/vllm-openai@sha256:c2914767605584b6d8f45686b82de173ecc99e781897aa3d0a66dacd72c51ae1","purpose":"Qwen3.8-27B NVFP4 behind the gateway (hosted) or called directly (self-host)."}],"tools":[{"name":"eyecite and reporters-db (Free Law Project)","url":"https://github.com/freelawproject/eyecite","license":"BSD-2-Clause","purpose":"Finds citations; reporters-db also lists every real reporter series and edition, which is how a citation to 'N.E.4th' or 'F.5th' is caught before any lookup."},{"name":"Caselaw Access Project (static.case.law)","url":"https://static.case.law/","license":"Public domain (CC0 data)","purpose":"Which case starts at a page and where each case ends, and opinion text with reporter page numbers, for most reporters to about 2018-2020."},{"name":"Local case-law citation index (CourtListener bulk data + Caselaw Access Project metadata)","url":"https://com-courtlistener-storage.s3-us-west-2.amazonaws.com/list.html?prefix=bulk-data/","license":"Public domain (CourtListener bulk data: Public Domain Mark; CAP metadata: CC0 1.0)","purpose":"Every case citation is looked up here first, with no network call: 18.1 M citations, 10.1 M opinions, 6.9 M CAP page ranges and 34.9 M docket names, quarterly snapshot (30 Jun 2026)."},{"name":"CourtListener search API (Free Law Project)","url":"https://www.courtlistener.com/help/api/rest/search/","license":"Free API with an account token; opinions are public domain","purpose":"Only when the local index misses or a volume is newer than its snapshot: the citation search, the case-name search, and the opinion PDF for quotations of recent cases."},{"name":"U.S. Code, eCFR, LII federal rules","url":"https://uscode.house.gov/","license":"Public domain text","purpose":"Statutes, regulations and federal rules."},{"name":"LePhantomCite (Liu, Stammbach and Henderson 2026)","url":"https://huggingface.co/datasets/ai-law-society-lab/Legal_Phantom_Citation","license":"CC BY 4.0","purpose":"The held-out citation benchmark: real appellate brief excerpts with injected non-existent citations, case-name swaps, wrong pincites, misquotes and misrepresented holdings (eval only)."},{"name":"Charlotin AI Hallucination Cases database and CourtListener RECAP","url":"https://www.damiencharlotin.com/hallucinations/","license":"Court filings are public records","purpose":"Real filings that courts found to cite non-existent cases, with the courts' orders as labels (eval only)."}],"hardware":[{"tier":"Any CPU, no GPU","fits":true,"notes":"Lite tier (DECOSA_THEIRBRIEF_JUDGE=off): hidden-text scan, the injection patterns, existence, impossible reporters and quotations; no holdings check. Estimate: not timed separately."},{"tier":"1x RTX 5090 32 GB","fits":true,"notes":"Qwen3.8-27B NVFP4 needs about 20 GB of weights plus KV cache. Estimate: not run here for this tool."},{"tier":"1x RTX PRO 6000 Blackwell 96 GB","fits":true,"notes":"Measured on our server: the hosted demo and the evals ran on this card, shared with other work."}],"latency":[{"lane":"hidden-text scan of a PDF (render every page, compare with the text layer)","typical_ms":150,"source":"measured on our server 2026-09-28: 0.08-0.15 s for 1-2 pages; 12 real briefs of 20-60 pages scanned in the planted eval"},{"lane":"LePhantomCite excerpt (about 2,500 characters), end to end","typical_ms":9900,"source":"measured on our server 2026-09-28, held-out test (390 excerpts, two at a time, cold lookups): p50 9.9 s, p95 61.2 s"}],"benchmark":null,"notes":["Hidden text is measured, not guessed: a character counts as hidden when its box on the rendered page shows nothing, or when it is drawn in the page's colour over other text, in invisible render mode or at zero opacity. Tiny (under 3 pt) and off-page text, metadata, XMP, annotations, bookmarks, embedded files, JavaScript, Word hidden/white/tiny runs, tracked deletions and comments are read too.","An instruction to AI tools is flagged by strong patterns in code (never overruled) and by one receipted model call that reads the texts as quoted data. Hidden text is blanked out of the filing before the citation checks, so it never reaches the judge inside a sentence it is asked about.","Before a citation becomes 'not found', the case name is searched too; a real case at another cite is 'their cite is wrong', a Westlaw or Lexis cite no free source has is a 'look at', and a failed search is never reported as run.","Text under a black box (a failed redaction) is counted, never shown, with a note on Model Rule 4.4(b).","No citator: it does not say whether a case is still good law."]},"buyer_facts":[{"label":"Data retention","value":"Hosted: the filing lives in memory; an uploaded file's text and a finished run are kept for one hour (for the export links), then dropped. Answers from the public sources (the citation queried, public opinion text; never the filing) are cached on disk for 7 days. Logs carry counts only."},{"label":"What leaves the box","value":"Hosted: each model call goes through the gateway to the GPU serving Qwen3.8-27B, with a signed receipt (hashes and token counts, no text). Self-hosted on the direct route: the filing never leaves the box; lookups send only citations and case names to CAP, CourtListener, LII, uscode.house.gov and eCFR; offline mode sends nothing."},{"label":"Input formats","value":"Their filing as a PDF (hidden text is checked), a Word file or pasted text; up to 20 MB and 120,000 characters. Scanned PDFs are read by the document reader (hosted, up to 40 pages)."},{"label":"Typical run","value":"One model call reads the hidden texts and one checks each holding. The first check of a filing is slower, while the public sources are looked up; repeat lookups are cached. The page header shows the time and cost measured on production, and each run shows its own."},{"label":"Wording","value":"Nothing is called fake. A case the public sources lack is 'not found in the sources searched', with the URLs searched; a real case at the wrong cite is 'their cite is wrong'."},{"label":"Confidential tier","value":"For papers that are not public (served but unfiled, your notes): the same check can run inside an attested enclave, where neither Decosa nor the cloud host can read the text; enterprise pricing, ask us. A filed brief is public, so the hosted demo is fine for it."}],"hosted_now":{"needs":["document-reader","qwen3.8-27b"],"off":["document-reader"],"live_by_default":false,"live_status":"https://api.decosa.ai/status"},"data_handling":{"page":"/data#check-their-brief","self_host":{"level":"confidential","leaves":"identifiers","summary":"Runs on your machine; by default only short identifiers or a digest go to the public services listed in external_calls."},"hosted":{"level":"operator-processed","demo_only":false,"summary":"TLS to Decosa's server, then decrypted and processed by Decosa's API server, with the open models run by NEAR AI through OpenRouter, with Reka AI as the only fallback under Decosa's account.","gpus":"operator-contracted","third_parties":[],"retention":"Hosted: the filing lives in memory; an uploaded file's text and a finished run are kept for one hour (for the export links), then dropped. Answers from the public sources (the citation queried, public opinion text; never the filing) are cached on disk for 7 days. Logs carry counts only.","used_for_training":false,"encrypted_while_processed":false},"sealed_tier":{"applies":false,"note":"The sealed tier (raw chat only, never use-case pipelines) is paused at launch (/docs/sealed-tier)."},"external_calls":[{"to":"Caselaw Access Project, CourtListener, LII, uscode.house.gov and eCFR","route":"both","sends":"identifiers","what":"Each citation (for example 550 U.S. 544) and, before a citation is called not found, the case name; never the filing's text. Case citations are answered first from a local index on our server; only its misses, and quotations of recent cases, go to CourtListener.","default":"on","off":"Offline mode (DECOSA_PREFLIGHT_OFFLINE=1) sends nothing; case items are then left not checkable unless you supply the opinions."}]},"console":{"href":"/legal/check-their-brief","input":"theirbrief","lanes":[{"id":"hidden","title":"Hidden text and instructions to AI","kind":"list"},{"id":"authority","title":"Authorities exist","kind":"list"},{"id":"quote","title":"Quotations are verbatim","kind":"list"},{"id":"proposition","title":"Authorities say what the brief claims","kind":"list"},{"id":"privacy","title":"Identifiers left in (Rule 5.2)","kind":"list"},{"id":"signed","title":"Signed record","kind":"json"}],"samples":[{"n":1,"id":"demo-opposition","title":"Demo opposition","deep_link":"/legal/check-their-brief?sample=1&autorun=0"},{"n":2,"id":"mata-ecf21","title":"Mata ecf21","deep_link":"/legal/check-their-brief?sample=2&autorun=0"},{"n":3,"id":"osg-case-v-montana","title":"Osg case v montana","deep_link":"/legal/check-their-brief?sample=3&autorun=0"}],"deep_link_params":{"sample":"1-based index into samples, or a sample id","autorun":"1 = start the run once the sample is loaded; 0 (default) = only preselect","reduce-motion":"1 = turn off animations"}},"api":{"base":"https://api.decosa.ai","contract":"/api/contract.json","contract_markdown":"/api/contract.md","reference":"/docs/api","keys":"/account/keys"},"prompts":{"hosted":"/prompts/check-their-brief-hosted.md","selfhost":"/prompts/check-their-brief-selfhost.md","assemble":"/prompts/check-their-brief-assemble.md","mac":null},"rehearsal":{"bundle":"/samples/check-their-brief.zip","bundle_url":"https://decosa.ai/samples/check-their-brief.zip","folder":"/samples/check-their-brief/","expected":"/samples/check-their-brief/expected.json","files":["/samples/check-their-brief/expected.json","/samples/check-their-brief/inputs/opposition-mr-v-lakeview.pdf"],"bytes":4186,"checks":["the PDF is read and its hidden-text scan runs","the scan finds the hidden texts before any model runs","the decision is: findings","three hidden instructions aimed at AI tools are findings","the harmless hidden 'DRAFT' label is not called an instruction","the student's full birth date is a finding","nothing is called fake","the memo has the table for the reply","the signed record verifies","a record with its decision changed no longer verifies","every model call has a signed receipt"],"licence":"Fictional: the filing, parties and identifiers were written for Decosa (no real case or people); the Supreme Court cases it cites are public domain. Part of decosa-api, which will be released under AGPL-3.0-or-later; until then the source is on request.","about":"A two-page fictional opposition to a summary-judgment motion (M.R. v. Lakeview Unified School District) as a PDF, sent as a raw file. It cites real Supreme Court cases and carries planted problems: white text telling AI reviewers not to flag citations, 1-point text telling a summariser what to say, an instruction in the file's Keywords property, a case at a page that sits inside another case (925 F.3d 1339), a Westlaw cite no public source has, a one-word change inside a T.L.O. quotation, a holding Redding does not contain, and a student's full birth date. The check must find the hidden instructions and the birth date, report the planted citation problems when the public sources answer, and end in a signed record that verifies. Lookups send only citations to the Caselaw Access Project and CourtListener, never the text.","run":{"containers":"docker compose exec api python scripts/rehearse.py check-their-brief","checkout":"python scripts/rehearse.py check-their-brief --bundle check-their-brief.zip --base-url http://127.0.0.1:8445","mac":".venv/bin/python scripts/rehearse.py check-their-brief"},"guidance":"Set up with a coding agent (we recommend Claude Code with Claude Opus 5.5; any capable coding agent works) on mock data only, run the rehearsal until every check passes, then run your own data locally yourself. Never give the agent real data during setup."},"hardware_fit":{"check":"/self-host/hardware?use=check-their-brief","data":"/api/hardware.json","tiers":[{"id":"lite","gpu_gb":0,"basis":null,"unknown":[]},{"id":"standard","gpu_gb":57.6,"basis":"stack","unknown":["reader"]},{"id":"wanted","gpu_gb":249.6,"basis":"estimate","unknown":[]},{"id":"alternate-support-model","gpu_gb":0,"basis":null,"unknown":[]}],"mac":null},"links":{"page":"/legal/check-their-brief","json":"/use-cases/check-their-brief.json","metrics":"/metrics/check-their-brief","console":"/legal/check-their-brief","console_sample":"/legal/check-their-brief?sample=1&autorun=0","stack":"/legal/check-their-brief#stack","try_live":"/legal/check-their-brief","watch":"/legal/check-their-brief","build":"/legal/check-their-brief#build","self_host":"/legal/check-their-brief#self-host","prompts":{"hosted":"/prompts/check-their-brief-hosted.md","selfhost":"/prompts/check-their-brief-selfhost.md","assemble":"/prompts/check-their-brief-assemble.md","mac":null}}}