{"schema_version":"1","site":"https://decosa.ai","id":"filing-preflight","num":"21","name":"Filing pre-flight","tool_name":"Check a brief before filing","short":"Pre-flight","blurb":"One check before a brief is filed: every cited case, statute and rule exists, the cited opinion says what the brief claims, record cites resolve to the excerpts, quotations are verbatim, and no full SSN, birth date, account number or minor's name is left in. Ends in a signed record a partner can review.","status":"live","labels":{"industry":["legal"],"job":["review","attest"],"input":["files","text"],"deploy":["hosted","selfhost"],"status":"live","output":["record","data"],"data":["privileged","pii"],"hardware":"gpu-96","licence":"permissive"},"industries":["legal"],"runs_in":["hosted","selfhost","crp-legal-matter"],"part_of":[],"built_from":["grounding","signed-record","citation-index"],"models":"Qwen3.8-27B","where":"Self-host for drafts; hosted for public filings","hardware":"1× RTX PRO 6000 (96 GB) or 1× RTX 5090 (32 GB) for the judge; parsing, lookups, quotes and the privacy check run on CPU","final_artifact":"A checklist with every problem located in the brief, a Markdown review for the partner, and a signed record.","self_host_first":true,"verification":{"receipt_coverage":"full","summary":"Exact-match quotes; receipt per proposition; signed record","manual_qa":{"hosted":{"date":"2026-09-29","result":"pass","p50_ms":12063,"p95_ms":19008,"runs":5,"receipts_per_run":15,"cost_per_run_usd":0.015458},"selfhost":{"date":"2026-09-25","result":"pass","method":"fresh clone, compose up, sample against local model servers","notes":"Method: a fresh clone of decosa-api main, the api image built from it, the compose file from this prompt, then the prompt's smoke steps and the nightly smoke module, against the already-running local Qwen3.8-27B vLLM. Verified on 25 Sep 2026: images build, services start, sample passes end to end against local model servers equivalent to the documented ones; model-server startup itself not re-verified. Offline (the default in the prompt) the planted record-cite and privacy problems are found and the cases come back unverified, as documented; with lookups on, the same 9 problems as hosted. The signed record verifies and a tampered entry is named."},"known_limits":["No citator: it does not say whether a case is still good law. Westlaw- or Lexis-only decisions, many unpublished orders, agency decisions and state codes come back unverified, never OK.","Hosted speed depends on load on the shared service: the time shown is the median of our latest production runs of the fictional sample."],"nightly_covers":null},"nightly":"https://api.decosa.ai/verify/status"},"eval_summary":{"metrics":[{"name":"Fake citations caught as problem (strict)","value":"89%","unit":null,"n":19,"split":"test","note":"17 of 19; 95% lenient (problem or review). Wilson 95% 0.69-0.97."},{"name":"Citations for a holding the case does not contain, caught","value":"92%","unit":null,"n":13,"split":"test","note":"12 of 13, strict and lenient."},{"name":"One-word misquotations caught as problem (strict)","value":"64%","unit":null,"n":22,"split":"test","note":"95% lenient; the 7 'review' ones are singular/plural changes."},{"name":"False problems on 9 unaltered real briefs","value":"19 of 511 (3.7%)","unit":null,"n":511,"split":"test","note":"Plus 67 items (13%) marked review; Wilson 95% 0.02-0.06."},{"name":"Privacy pattern findings on 12 real briefs","value":"0","unit":null,"n":12,"split":"test","note":"570,911 characters of public-domain briefs."}],"dataset":"12 real Solicitor General briefs from 2025-2026 (public domain; 3 dev, 9 test, first ~9,000 characters of the argument) with planted errors: Mata v. Avianca fake cites, moved pages, hand-written wrong propositions and one-word misquotes.","held_out":true,"caveats":["Small: 12 briefs and 54 planted errors on test, so the rates have wide intervals.","One author wrote the wrong propositions, and they lean toward clear reversals; subtle mischaracterisations are harder.","The real briefs come from one careful filer; briefs citing more unpublished or Westlaw-only decisions are covered less well.","Propositions are a triage list: 47% of real-brief propositions came back 'review'.","No human cite-checker was timed against it, and there is no good-law (citator) signal."],"date":"2026-09-25","doc_url":"https://decosa.ai/metrics/evals/filing-preflight"},"stack":{"summary":"Send a brief (pasted, PDF or DOCX) and the record excerpts it cites. The checker reads every citation with eyecite, looks each case, statute and rule up in free public sources (only the citation leaves the machine), compares every quotation with the source text by string match, resolves App., J.A., ECF and Tr. cites to the pages you gave, and scans for full SSNs, birth dates, account numbers, minors' names and text left under black boxes. An open judge model then checks each proposition against the opinion and each record cite against its page, one receipted call each. The result is a checklist that points at the exact words in the brief, a Markdown review for the partner, and a signed hash-chained record. It is a triage list for the lawyer who signs, not a verdict.","tagline":"One check before a brief is filed: authorities exist and say what the brief claims, record cites resolve, quotations are verbatim, and Rule 5.2 identifiers are gone. Ends in a signed record.","deployment":"hosted-or-self-host","regulatory_note":"A pre-flight check, not legal advice and not a substitute for reading the authorities: under Fed. R. Civ. P. 11(b)(2) the lawyer who signs still certifies that the legal contentions are warranted by existing law, and courts have sanctioned lawyers for filing citations an AI tool invented (Mata v. Avianca, Inc., 678 F. Supp. 3d 443 (S.D.N.Y. 2023); Park v. Kim, 91 F.4th 610 (2d Cir. 2024); Wadsworth v. Walmart Inc., No. 2:23-cv-00118 (D. Wyo. Feb. 24, 2025)). Many judges' standing orders now require disclosure of AI use or a certification that a person checked every citation; this tool does not write that certification, and its signed record is evidence that a check ran, not the certification. It does not check whether a case is still good law. Privacy: Fed. R. Civ. P. 5.2(a) (and Fed. R. Crim. P. 49.1, Fed. R. Bankr. P. 9037) allow only the last four digits of Social Security, taxpayer and financial-account numbers, the year of birth and a minor's initials; the check finds likely identifiers but cannot know which Rule 5.2(b) exemptions apply. Confidentiality: a draft brief is client information and may be work product; ABA Formal Opinion 512 (29 Jul 2024) asks lawyers to understand how a tool uses what they put in and to protect it, so self-host drafts (offline mode sends nothing out). The hosted demo is for public filings and the fictional sample, and sends only citations to the public sources. Model licence: Apache-2.0 (Qwen3.8-27B). Checked 25 Sep 2026.","components":[{"id":"checker","role":"Checker: citation parsing, lookups, quotation matching, record cites, privacy scan, signed record (no model; CPU)","name":"decosa-api filing pre-flight (decosa_api/verticals/preflight)","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 2.7 (BSD-2-Clause) for citations, rule-based record and privacy patterns, poppler pdftotext and pdfplumber (MIT) for PDFs","receipt_coverage":"partial","in_hosted_demo":null,"tiers":["lite","standard","wanted"],"alternative_to":null},{"id":"judge","role":"Judge: one call per proposition and per record cite, plus one call for minors' names","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"],"alternative_to":null},{"id":"glm-judge","role":"Stronger judge for propositions (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},{"id":"super-judge","role":"One-card second judge from another model family","name":"Nemotron-3-Super-120B-A12B (NVFP4)","hf_repo":"nvidia/NVIDIA-Nemotron-3-Super-120B-A12B-NVFP4","license":"NVIDIA Nemotron Open Model License","params":"120B","quant":"NVFP4 (80.3 GB of weights)","vram_gb":null,"memory_gb_estimate":80,"engine":"vLLM (sm_120 support unconfirmed: smoke-test first)","receipt_coverage":"none","in_hosted_demo":false,"tiers":["alternates"],"alternative_to":null}],"tiers":[{"id":"lite","label":"Lite · CPU only, no GPU","summary":"Existence, quotations, record pages and the privacy patterns. No proposition check, and minors' names are only flagged for review.","components":["checker"],"hardware":"Any Linux or macOS machine with Python 3.11+","quality_evidence":[{"metric":"Fake citations caught (existence and name checks need no model)","value":"17/19 problem, same as standard","source":"docs/evals/filing-preflight.md, 9 held-out Solicitor General briefs; the existence check is identical without the judge"},{"metric":"One-word misquotations (string match, no model)","value":"14/22 problem, 21/22 problem or review, same as standard","source":"docs/evals/filing-preflight.md, 9 held-out Solicitor General briefs"},{"metric":"Citations for a holding the case does not contain","value":"not checked in this tier","source":"no judge"}],"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 proposition and record-support checks with Qwen3.8-27B, one receipted call each. This is what the hosted API runs.","components":["checker","judge"],"hardware":"1x RTX PRO 6000 96 GB (measured) or 1x RTX 5090 32 GB (estimate)","quality_evidence":[{"metric":"Fake citations caught (the six Mata v. Avianca fakes plus real cites with the first page moved): problem / problem or review","value":"17/19 (89%) / 18/19 (95%)","source":"docs/evals/filing-preflight.md, 9 held-out Solicitor General briefs"},{"metric":"Citations for a holding the case does not contain, caught as problem","value":"12/13 (92%)","source":"docs/evals/filing-preflight.md, 9 held-out Solicitor General briefs"},{"metric":"One-word misquotations: problem / problem or review","value":"14/22 (64%) / 21/22 (95%); the 7 reviews are singular/plural changes","source":"docs/evals/filing-preflight.md, 9 held-out Solicitor General briefs"},{"metric":"False problems on the same briefs unaltered (511 checked items)","value":"19 (3.7%): quotations tied to the wrong source 11, authorities the free indexes lack 6, name parse 1, proposition 1","source":"docs/evals/filing-preflight.md, 9 held-out Solicitor General briefs"},{"metric":"Propositions read by the judge on real briefs: supported / partly / not supported by passages read / contradicted","value":"29 / 24 / 25 / 4 of 82 (all but 1 shown as review, not problem)","source":"docs/evals/filing-preflight.md, 9 held-out Solicitor General briefs"},{"metric":"Privacy patterns on the full text of 12 real briefs (570,911 characters)","value":"0 false findings","source":"docs/evals/filing-preflight.md"}],"latency_note":"Measured on our server, shared card, gateway route: most of the time is judge calls and CourtListener lookups. The sample's measured time per task is at the top of the page; a real argument section's is in the latency table.","in_hosted_demo":true,"receipt_coverage":"strong","receipt_note":"Every judge call is a separate gateway call with a gateway-signed receipt; the signed record lists them.","hosting":null},{"id":"wanted","label":"Wanted · a GLM-5.3-Flash judge on your own hardware","summary":"A stronger open judge from another family for propositions, where the 27B is least sure. Briefs 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-186 GB, unconfirmed) or a Mac with 192 GB or more (MLX 4-bit, 165 GB). Estimate; GLM's SGLang SM120 build hung on our server.","quality_evidence":[{"metric":"This eval, same protocol","value":"not measured yet","source":null}],"latency_note":"not measured yet","in_hosted_demo":false,"receipt_coverage":"none","receipt_note":"On your own hardware its calls are attested by the box's key only: not a hosted model there, so no gateway receipts. Never sent to community providers.","hosting":"own-hardware"}],"alternates":[{"id":"one-card-judge","label":"A second judge on one card","components":["super-judge"],"hardware":"1x RTX PRO 6000 96 GB (80 GB of weights)","use":"A cross-family second judge that fits beside the 27B, so we would host it ourselves. sm_120 support unconfirmed.","status":"not served"}],"services":[{"name":"decosa-api","port":8445,"image":"${DECOSA_REGISTRY}/decosa-api:<tag>","purpose":"GET /preflight/info, /preflight/samples; POST /preflight/parse (PDF, DOCX or text), /preflight/check (SSE or JSON); GET /preflight/runs/{id}/export?format=md|record. Keeps briefs 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 our gateway (hosted) or called directly (self-host)."}],"tools":[{"name":"eyecite (Free Law Project)","url":"https://github.com/freelawproject/eyecite","license":"BSD-2-Clause","purpose":"Finds full, short, id. and supra citations to cases, statutes and journals; reporters-db and courts-db (BSD-2-Clause) come with it."},{"name":"Caselaw Access Project (static.case.law)","url":"https://static.case.law/","license":"Public domain (CC0 data)","purpose":"Case existence by volume and first page, each case's page range, and opinion text with the reporter's page numbers, for most reporters up to about 2018-2020. Also downloadable in bulk for an offline mirror."},{"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 (anonymous use is rate-limited); opinions are public domain","purpose":"Only when the local index misses or a volume is newer than its snapshot: the citation search, a name search, and the opinion PDF from CourtListener's public storage."},{"name":"U.S. Code (Office of the Law Revision Counsel)","url":"https://uscode.house.gov/","license":"Public domain","purpose":"Whether a cited U.S.C. section exists, and its text for quotations."},{"name":"eCFR API","url":"https://www.ecfr.gov/developers/documentation/api/v1","license":"Public domain","purpose":"Whether a cited C.F.R. section exists in the current edition, and its text."},{"name":"Legal Information Institute, federal rules","url":"https://www.law.cornell.edu/rules","license":"Rule text is public domain","purpose":"Fed. R. Civ. P., Crim. P., App. P., Bankr. P. and Evid.: whether the rule and subdivision exist, and their text."},{"name":"scripts/preflight_eval.py and docs/evals/filing-preflight.md","url":null,"license":"Apache-2.0","purpose":"The eval: planted fake citations, wrong propositions and misquotes in real Solicitor General briefs, and the false-problem rate on the same briefs unaltered."}],"hardware":[{"tier":"Any CPU, no GPU","fits":true,"notes":"CPU-only tier (DECOSA_PREFLIGHT_JUDGE=off): existence, quotations, record-page resolution and the privacy patterns; no proposition 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 for prompts of up to about 16k tokens. Estimate: same judge as the grounding check, not run here for this vertical."},{"tier":"1x RTX PRO 6000 Blackwell 96 GB","fits":true,"notes":"Measured on our server: the hosted demo and the eval ran on this card, shared with other services."}],"latency":[{"lane":"9,000-character argument section of a real brief, end to end","typical_ms":35000,"source":"measured on our server 2026-09-25 over the eval's briefs: the median of the test split (docs/evals/filing-preflight.md)"},{"lane":"citation lookup, cached vs uncached","typical_ms":400,"source":"measured on our server 2026-09-28: a case from the local index, or from CAP or CourtListener when the index misses; lookups are cached for a day"}],"benchmark":null,"notes":["Quotations and record pages are compared by code: both sides are reduced to letters and digits, so line breaks, hyphenation and curly quotes do not count, but a changed, added or dropped word does, and the item shows the word diff. Bluebook alterations ([W]arrants, ellipses, bracketed insertions) are honoured.","Statuses are conservative. 'Problem' needs positive evidence; a source that is missing, unreachable or does not cover an authority gives 'unverified', never 'OK'. A proposition is a 'problem' only when the sentence attributes a holding to the court and the judge finds it contradicted or unsupported with high certainty; otherwise 'review'.","Most false problems on real briefs are quotations tied to the wrong source (words quoted from the record or a statute next to a case cite) and Supreme Court orders or recent Westlaw-only decisions that the free indexes do not hold.","It does not check whether a case is still good law (no citator), and it does not write the judge's AI-use certification.","Case citations are looked up in a local index (CourtListener and CAP public data, quarterly; snapshot 30 Jun 2026) with no network call; CourtListener's API is asked only on a miss or for a volume newer than the snapshot, and a free account token (DECOSA_PREFLIGHT_COURTLISTENER_TOKEN) raises its limit. Offline mode (DECOSA_PREFLIGHT_OFFLINE=1) sends nothing out and still uses the local index if one is installed."]},"buyer_facts":[{"label":"Data retention","value":"Hosted: the brief and excerpts live in memory; an uploaded file's text and a finished run are kept for one hour (for the export links), then dropped. Logs carry counts only."},{"label":"What leaves the box","value":"Hosted: every model call goes through our gateway to the GPU serving Qwen3.8-27B, and its receipt (hashes, token counts, no text) is kept by the gateway and this API. Self-hosted on the direct route: the brief never leaves the box; case lookups send only the citation to CAP, CourtListener, LII and uscode.house.gov; offline mode sends nothing and leaves case items unverified."},{"label":"Input formats","value":"Brief as text, PDF or DOCX (up to 15 MB; 80,000 characters checked); up to 8 record excerpts as text with [[page]] markers or PDFs that keep their pages."},{"label":"Model calls per brief","value":"One receipted judge call per proposition and per record cite; citation lookups use free public case-law data. The measured cost per brief is the cost per task at the top of the page."}],"data_handling":{"page":"/data#filing-preflight","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 brief and excerpts live in memory; an uploaded file's text and a finished run are kept for one hour (for the export links), then dropped. 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), never the brief, to check that the authority exists and to fetch its text. Case citations are answered first from a local index on our server; only its misses go out.","default":"on","off":"Offline mode sends nothing; case items are then left unverified."}]},"console":{"href":"/legal/filing-preflight","input":"preflight","lanes":[{"id":"authority","title":"a. Authorities exist","kind":"list"},{"id":"proposition","title":"b. Authorities say what the brief claims","kind":"list"},{"id":"record","title":"c. Record cites resolve","kind":"list"},{"id":"quote","title":"d. Quotations are verbatim","kind":"list"},{"id":"privacy","title":"e. Privacy (Fed. R. Civ. P. 5.2)","kind":"list"},{"id":"signed","title":"Signed record","kind":"json"}],"samples":[{"n":1,"id":"demo-planted","title":"Demo planted","deep_link":"/legal/filing-preflight?sample=1&autorun=0"},{"n":2,"id":"osg-case-v-montana","title":"Osg case v montana","deep_link":"/legal/filing-preflight?sample=2&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/filing-preflight-hosted.md","selfhost":"/prompts/filing-preflight-selfhost.md","assemble":"/prompts/filing-preflight-assemble.md","mac":"/prompts/filing-preflight-mac.md"},"rehearsal":{"bundle":"/samples/filing-preflight.zip","bundle_url":"https://decosa.ai/samples/filing-preflight.zip","folder":"/samples/filing-preflight/","expected":"/samples/filing-preflight/expected.json","files":["/samples/filing-preflight/expected.json","/samples/filing-preflight/inputs/appendix-app-1-6.pdf","/samples/filing-preflight/inputs/brief-doe-v-harbor-point.docx"],"bytes":5739,"checks":["the Word file is read as a brief","the appendix PDF is read and its redaction check runs","the pre-flight decision is: problems","the invented case (Varghese v. China Southern Airlines, from Mata v. Avianca) is a problem","the one-word misquote of T.L.O. is a problem","the record cite the appendix contradicts (App. 4) is a problem","the cite to a page not in the appendix (App. 9) is a problem","at least four privacy items (SSN, birth date, account number, minor's name) are problems","the partner-review Markdown lists the invented case as a problem","the signed record verifies","a record with its decision changed to ok no longer verifies","every model call has a signed receipt"],"licence":"Fictional: the brief, the appendix, the parties and every identifier were written for Decosa (no real case or people); the Supreme Court cases it cites are public domain. Part of decosa-api, AGPL-3.0-or-later.","about":"A short fictional appellate brief (Doe v. Harbor Point Unified School District) as a .docx and its six-page appendix as a PDF, both sent as raw files the way a firm would upload them. The brief has planted problems: a record cite the appendix contradicts (App. 4), a cite to a page not in the appendix (App. 9), a synthetic SSN, birth date, account number and a minor's full name, an invented case and a misquote. The check must find the planted record-cite and privacy problems and end in a signed record that verifies. Case lookups go to the free public sources (Caselaw Access Project, CourtListener, LII, uscode.house.gov); the brief's text is never sent to them.","run":{"containers":"docker compose exec api python scripts/rehearse.py filing-preflight","checkout":"python scripts/rehearse.py filing-preflight --bundle filing-preflight.zip --base-url http://127.0.0.1:8445","mac":".venv/bin/python scripts/rehearse.py filing-preflight"},"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=filing-preflight","data":"/api/hardware.json","tiers":[{"id":"lite","gpu_gb":0,"basis":null,"unknown":[]},{"id":"standard","gpu_gb":57.6,"basis":"stack","unknown":[]},{"id":"wanted","gpu_gb":249.6,"basis":"estimate","unknown":[]},{"id":"alternate-one-card-judge","gpu_gb":81.6,"basis":"estimate","unknown":[]}],"mac":{"fit":"full","memory_gb":48}},"links":{"page":"/legal/filing-preflight","json":"/use-cases/filing-preflight.json","metrics":"/metrics/filing-preflight","console":"/legal/filing-preflight","console_sample":"/legal/filing-preflight?sample=1&autorun=0","stack":"/legal/filing-preflight#stack","try_live":"/legal/filing-preflight","watch":"/legal/filing-preflight","build":"/legal/filing-preflight#build","self_host":"/legal/filing-preflight#self-host","prompts":{"hosted":"/prompts/filing-preflight-hosted.md","selfhost":"/prompts/filing-preflight-selfhost.md","assemble":"/prompts/filing-preflight-assemble.md","mac":"/prompts/filing-preflight-mac.md"}}}