{"schema_version":"1","site":"https://decosa.ai","id":"legal-drafting-editor","num":"33","name":"Privileged drafting editor","tool_name":"Redline from firm precedents","short":"Drafting editor","blurb":"Applies a firm's playbook to a contract and returns a Word file with real tracked changes and a margin comment on each, naming the rule, the position and the precedent. New wording comes only from the firm's own precedent clauses: code traces every inserted word back to one, a grounding check and a second read of the rule confirm each edit, and reject-all gives back the original word for word.","status":"live","labels":{"industry":["legal"],"job":["draft","review"],"input":["files","text"],"deploy":["selfhost"],"status":"live","output":["text","record"],"data":["privileged"],"hardware":"gpu-96","licence":"permissive"},"industries":["legal"],"runs_in":["selfhost","crp-legal-matter"],"part_of":[],"built_from":["grounding","signed-record"],"models":"Qwen3.8-27B","where":"Self-host for client contracts; hosted for public and fictional samples","hardware":"1× RTX PRO 6000 (96 GB) or 1× RTX 5090 (32 GB) for the model; the DOCX writer, search and checks run on CPU","final_artifact":"A .docx with tracked changes and margin comments to accept or reject in Word, a review memo, a signed record, and a signed ledger of the lawyer's decisions read back from the returned file.","self_host_first":true,"verification":{"receipt_coverage":"full","summary":"Receipt per call; every insertion traced to a precedent; validated redline; signed record and decision ledger","manual_qa":{"hosted":{"date":"2026-09-25","result":"pass","p50_ms":28000,"p95_ms":null,"runs":null,"receipts_per_run":20,"cost_per_run_usd":0.0066},"selfhost":{"date":"2026-09-25","result":"pass","method":"Fresh clone of the branch into a clean directory, docker build of docker/api/Dockerfile, the assemble prompt's api service with a named volume, pointed at the already-running local vLLM (Qwen3.8-27B NVFP4 on 127.0.0.1:8114) through host networking; then torn down.","notes":"Verified on 2026-09-25: the image builds, the service starts healthy, the Northwind sample passes end to end (9.7 s, 20 attested calls, 7 tracked changes, 0 untraced insertions, the file's checks pass), the signed record verifies and fails when one finding is changed, and the .docx export downloads. The model server's own startup was not re-verified (no new GPU load)."},"known_limits":["The playbook and precedent library in the demo are synthetic; a firm's own need to be loaded (as JSON) and were not tested.","Paragraphs with fields, hyperlinks, drawings or earlier tracked changes get a comment, not an in-place edit; inserted clauses are not numbered.","Checked against the OOXML rules and LibreOffice; not yet opened in Microsoft Word by us.","Position errors: 2% of planted clauses got the wrong one of five positions (v2 held-out run) and no planted deviation was missed; like-for-like clause detection against CUAD is 0.77 / 0.79, and warranty-duration and insurance clauses are the ones most often missed.","The client-side playbook needs a buyer side: contracts between equals (joint ventures, cooperation agreements) get findings but party-specific precedents stay in comments."],"nightly_covers":null},"nightly":"https://api.decosa.ai/verify/status"},"eval_summary":{"metrics":[{"name":"Clause detection vs CUAD labels, v1 mapping (like for like): precision / recall","value":"0.77 / 0.79","unit":null,"n":30,"split":"heldout","note":"30 CUAD test contracts, 8 rules, run once. v1 was 0.78 / 0.82: no gain like for like."},{"name":"Clause detection vs CUAD labels, v2 mapping: precision / recall","value":"0.82 / 0.85","unit":null,"n":30,"split":"heldout","note":"Part of the gain is the rule redefinition (new CONSEQ rule matches CUAD 'Cap On Liability'), not better reading."},{"name":"Planted deviations flagged: precision / recall","value":"0.98 / 1.00","unit":null,"n":102,"split":"heldout","note":"52 of 52 deviations flagged, 1 false flag; 17 contracts could be planted."},{"name":"Exact position of a planted clause (5 classes)","value":"0.98","unit":null,"n":102,"split":"heldout","note":"100 / 102"},{"name":"Inserted text not traceable to a precedent","value":"0 in 136","unit":"tracked changes","n":136,"split":"heldout","note":null},{"name":"LibreOffice Accept All matches our proposal","value":"46 / 47","unit":null,"n":47,"split":"heldout","note":"Mismatch was a deleted last paragraph; writer bug fixed after the run, test set not re-run."},{"name":"Model cost per contract (median, list price)","value":"US$0.0089","unit":null,"n":null,"split":"heldout","note":"16 calls, 22.9k prompt + 1.5k output tokens"}],"dataset":"CUAD v1 (510 SEC EDGAR contracts, expert clause labels, CC BY 4.0): 40 train-split dev contracts for tuning, 30 test-split contracts run once after the configuration was frozen. Playbook and precedents are synthetic; planted deviations from a clause-template bank.","held_out":true,"caveats":["The playbook and precedent library are synthetic, written for this demo; only clause presence and location come from CUAD.","Per-rule samples are small (3 to 6 labelled contracts per rule): warranty duration found in 0 of 3 and insurance in 2 of 5.","Only 17 of 30 test contracts had a buyer side, so only those could be planted.","Not measured: real firm playbooks, Microsoft Word itself, agreement with a lawyer's own redline, latency on a dedicated card.","One writer bug found by the test run was fixed afterwards; the test set was not re-run."],"date":"2026-09-25","doc_url":"https://decosa.ai/metrics/evals/legal-drafting-editor"},"stack":{"summary":"Send a contract (.docx or text) and the firm's playbook: preferred, fallback and walk-away positions per clause, and a library of the firm's precedent clauses. For each rule a search picks the candidate paragraphs and an open model places the clause (preferred, fallback, outside, walk-away or missing) and quotes the words that decide it. Where the playbook says to act, the model proposes the smallest find-and-replace using only the precedent's words; code applies it, diffs it word by word and traces every inserted chunk to the precedent, then the grounding checker and a second read of the rule confirm the edit, and anything that fails falls back to the precedent's own sentence or a comment. Missing clauses are inserted word for word from the library. The result is a .docx with w:ins / w:del revisions and a comment per change naming the rule, the precedent and the receipts; reject-all must give back the input and accept-all exactly the proposal. Upload the file back from Word and the lawyer's accept or reject decisions go into a signed ledger. It proposes; a lawyer decides.","tagline":"A firm's playbook applied to a contract: a Word redline with real tracked changes, a margin comment on each, and new wording only from the firm's own precedents, traced in code.","deployment":"self-host-first","regulatory_note":"A drafting aid for lawyers, not legal advice; the lawyer reviews and adopts every change. Under ABA Model Rule 1.1 (comment 8) a lawyer using it must understand what it does and check its output, and Rules 5.1 and 5.3 make supervision of the tool the lawyer's duty: the signed record and the ledger of accepted and rejected changes are evidence of that review. Rule 1.6(c) requires reasonable efforts to prevent unauthorised disclosure of client information, and ABA Formal Opinion 512 (29 Jul 2024) asks lawyers to understand how a generative-AI tool uses what they put in and to get informed consent before putting client information into a self-learning tool (boilerplate in an engagement letter is not enough); United States v. Heppner (S.D.N.Y., Feb 2026) held chats with a consumer AI service not privileged, partly because its terms allowed disclosure. Self-hosted, the contract never leaves the firm's machine and nothing is trained on it; the hosted demo is for public (CUAD) and fictional contracts only. Bar guidance varies by state (California's 2026 practical guidance, for example, requires AI costs to be billed at cost without markup unless agreed in writing); check the rules where you practise. The playbook and precedents in the demo are synthetic. CUAD v1 (The Atticus Project) is CC BY 4.0; its contracts are public SEC EDGAR filings. Model licence: Apache-2.0 (Qwen3.8-27B). Checked 25 Sep 2026.","components":[{"id":"editor","role":"Editor: DOCX reading and the tracked-change writer, candidate search, traceability check, file checks, signed record and ledger (no model; CPU)","name":"decosa-api drafting module (decosa_api/verticals/drafting)","hf_repo":null,"license":"AGPL-3.0-or-later","params":null,"quant":null,"vram_gb":0,"memory_gb_estimate":null,"engine":"Python 3.12, standard library only for OOXML (zipfile, ElementTree); BM25 over sentence windows; the grounding checker (vertical 17) for each targeted edit","receipt_coverage":"partial","in_hosted_demo":null,"tiers":["lite","standard","wanted"],"alternative_to":null},{"id":"reader","role":"Model: places each clause against the playbook, proposes the find-and-replace edits, judges the grounding of each changed sentence, re-reads the edited clause","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":["lite","standard"],"alternative_to":null},{"id":"gemma-reader","role":"Faster model for the clause-by-clause reading at volume (alternate)","name":"Gemma-4-26B-A4B-it","hf_repo":"google/gemma-4-26B-A4B-it","license":"Apache-2.0","params":"26B","quant":"BF16 (49 GB)","vram_gb":49,"memory_gb_estimate":null,"engine":"vLLM","receipt_coverage":"none","in_hosted_demo":null,"tiers":["alternates"],"alternative_to":null},{"id":"glm-wanted","role":"Second reader for clause detection","name":"GLM-5.3-Flash","hf_repo":"zai-org/GLM-5.3-Flash","license":"MIT","params":"321B","quant":"NVFP4 on NVIDIA (nvidia/GLM-5.3-Flash-NVFP4, about 170-186 GB, unconfirmed); MLX 4-bit on a Mac (165 GB)","vram_gb":null,"memory_gb_estimate":170,"engine":"SGLang SM120 build, TP2 on 2x 96 GB (vLLM is broken on sm_120 for this model, and the SGLang build hung on our server), or mlx-lm on a Mac with 192 GB or more","receipt_coverage":"none","in_hosted_demo":false,"tiers":["wanted"],"alternative_to":null}],"tiers":[{"id":"lite","label":"Lite · one 32 GB card, self-hosted","summary":"The same model and prompts on a single RTX 5090. The grounding check of each edit can be switched off (DECOSA_DRAFTING_GROUNDING=0) to save a call or two per change; the code trace still guarantees no invented words.","components":["editor","reader"],"hardware":"1x RTX 5090 32 GB","quality_evidence":[{"metric":"Findings and redlines on CUAD","value":"not measured separately: the same weights and prompts as the standard tier; speed on a 5090 not measured","source":"not measured yet"}],"latency_note":"estimate: not timed on a 5090.","in_hosted_demo":false,"receipt_coverage":"partial","receipt_note":"Self-hosted: calls and records are signed by your own box, not countersigned by the gateway.","hosting":null},{"id":"standard","label":"Standard · one 96 GB card (measured; hosted demo)","summary":"Qwen3.8-27B on an RTX PRO 6000: one call per playbook rule (with the closest CUAD train-split examples of the rule's clause), one per targeted edit, plus the grounding check and the re-read of each edit.","components":["editor","reader"],"hardware":"1x RTX PRO 6000 96 GB","quality_evidence":[{"metric":"Clause detection vs CUAD expert labels, 8 units × 30 held-out test contracts: precision / recall","value":"0.82 / 0.85 under the v2 mapping (v1: 0.81 / 0.79, re-scored); like for like with v1's mapping 0.77 / 0.79 (v1: 0.78 / 0.82), so no gain there","source":"docs/evals/legal-drafting-editor.md (v2). The v2 gain is the new CONSEQ rule, which finds the exclusions of indirect damages CUAD files under \"Cap On Liability\" (9 of 9); warranty duration 0 of 3 and insurance 2 of 5 labelled contracts found"},{"metric":"Planted deviations flagged (102 planted clauses, 17 CUAD test contracts): precision / recall","value":"0.98 / 1.00 (52 of 52 deviations flagged, 1 false flag); exact position (of 5) 0.98","source":"docs/evals/legal-drafting-editor.md; v1 was 0.89 / 0.95, exact 0.85, on 13 contracts, and 0.95 / 0.97, exact 0.92, once 6 items a harness bug had left out of the file are removed"},{"metric":"Contracts where the buyer side was named (needed for party-specific precedents)","value":"17 of 30 (v1: 13); both names among CUAD's labelled parties in 17 of 17","source":"docs/evals/legal-drafting-editor.md"},{"metric":"Redlines that are valid, reject-all = input, accept-all = proposal","value":"47 of 47","source":"docs/evals/legal-drafting-editor.md, every output file of the v2 held-out run"},{"metric":"Redlines LibreOffice opens and whose Accept All / Reject All match","value":"47 of 47 open, Reject All 47 of 47, Accept All 46 of 47; 284 of 284 comments imported","source":"docs/evals/legal-drafting-editor.md: the mismatch was a deleted last paragraph (LibreOffice and Word keep an empty one); fixed after the run and tested, not re-run on the test set"},{"metric":"Inserted text not traceable to a firm precedent","value":"0 in 136 tracked changes","source":"docs/evals/legal-drafting-editor.md; enforced in code: an untraced chunk sends the edit back to the precedent's sentence"},{"metric":"Targeted edits the checks sent back to the precedent's own sentence","value":"26 of 77","source":"docs/evals/legal-drafting-editor.md (v2 held-out run)"},{"metric":"Model cost per contract, eleven rules (median)","value":"US$0.0089 at list price ($0.30 / $1.50 per million tokens), 16 calls (v1: US$0.0065, 14 calls)","source":"docs/evals/legal-drafting-editor.md, 47 runs"},{"metric":"Levers tried on 40 dev contracts and left off","value":"Self-consistency (3 readings): 2.6x the cost, no detection gain. Topic gate: +0.05 precision, -0.06 recall. Embedding retrieval (bge-small, CPU): +0 to +1 point of labelled text shown. Log-probabilities: the gateway does not return them.","source":"docs/evals/legal-drafting-editor.md, lever study"}],"latency_note":"measured: seconds per contract in the eval, up to about a minute per demo run on the shared gateway, seconds self-hosted.","in_hosted_demo":true,"receipt_coverage":"strong","receipt_note":"Every model call has a gateway-signed receipt; the record and ledger are signed by the instance key.","hosting":null},{"id":"wanted","label":"Wanted · a larger second reader on your own hardware","summary":"GLM-5.3-Flash reads each clause beside Qwen3.8-27B, and a rule fires only when both agree or the reviewer decides. Privileged drafts stay on your hardware, never on community providers. Not served yet.","components":["editor","reader","glm-wanted"],"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":"CUAD precision and recall on the same 8 rules","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":"fast-judge","label":"Fast reader for long contracts","components":["gemma-reader"],"hardware":"1x RTX PRO 6000 96 GB (BF16 weights are 49 GB)","use":"Gemma-4-26B-A4B for the clause-by-clause reading at volume, keeping Qwen3.8-27B for edits (page 28's plan; not run). Page 32 suggests the dense Qwen3.5-9B (Apache-2.0) instead.","status":"not served"}],"services":[{"name":"decosa-api","port":8445,"image":"${DECOSA_REGISTRY}/decosa-api:<tag>","purpose":"GET /drafting/info, /drafting/playbook, /drafting/samples; POST /drafting/review (SSE or JSON); GET /drafting/runs/{id}/export?format=docx|md|record|ledger; POST /drafting/runs/{id}/reconcile and /decisions; POST /drafting/validate. Contracts are held in memory for the request and runs for one hour, never on disk; logs carry counts only."},{"name":"vLLM","port":8114,"image":"vllm/vllm-openai@sha256:c2914767605584b6d8f45686b82de173ecc99e781897aa3d0a66dacd72c51ae1","purpose":"Qwen3.8-27B NVFP4 behind our gateway (hosted) or called directly (self-host)."}],"tools":[{"name":"CUAD v1 (Contract Understanding Atticus Dataset)","url":"https://www.atticusprojectai.org/cuad","license":"CC BY 4.0 (The Atticus Project); contracts are public SEC EDGAR filings","purpose":"The eval's contracts and expert clause labels (30 held-out test-split contracts; 40 train-split dev contracts for tuning), the two public samples in the demo (train split), and the few-shot examples in the finding prompts (clause spans from the rest of the train split only; about 200 KB, data/exemplars.json)."},{"name":"LibreOffice (headless, through UNO)","url":"https://www.libreoffice.org/","license":"MPL-2.0","purpose":"The eval's independent reader: opens every redline and applies its own Accept All and Reject All (scripts/drafting/lo_roundtrip.py). Optional on a self-hosted box (DECOSA_DRAFTING_SOFFICE) to check every run."},{"name":"Synthetic playbook and precedent library","url":null,"license":"Synthetic, written for Decosa (CC0); a fictional firm","purpose":"Eleven rules (governing law, liability cap amount, exclusion of indirect damages, IP indemnity, confidentiality, work-product ownership, assignment, termination for convenience, non-compete, warranty, insurance) and fourteen precedent clauses. Replace them with the firm's own."}],"hardware":[{"tier":"1x RTX 5090 32 GB","fits":true,"notes":"Qwen3.8-27B NVFP4 needs about 20 GB of weights; the longest prompt (six candidate paragraphs and a rule) is under 4k tokens. Estimate: same model and prompts as the measured card, not run here on a 5090."},{"tier":"1x RTX PRO 6000 Blackwell 96 GB","fits":true,"notes":"Measured on our server: the eval, the hosted demo and the self-host check ran on this card, shared with other services the whole time."}],"latency":[{"lane":"one contract, ten rules, hosted gateway route","typical_ms":28000,"source":"measured on our server 2026-09-25: 10 to 58 s over 8 runs of the three samples (15 to 22 calls each) on the shared gateway; v1 code. v2 (eleven rules): 40 to 60 s for the two samples on 2026-09-25 with 2 requests in flight on a saturated GPU"},{"lane":"one contract, ten rules, eval (v1: CUAD test contracts through the gateway, 3 contracts at a time)","typical_ms":12400,"source":"measured on our server 2026-09-25: median over 43 runs, 14 calls each"},{"lane":"synthetic sample, self-hosted (clean clone, container build, direct route)","typical_ms":9700,"source":"measured on our server 2026-09-25: 20 attested calls, one run"}],"benchmark":null,"notes":[]},"buyer_facts":[{"label":"Data retention","value":"The contract is held in memory for the request; the run (findings, changes, the redline) for one hour, for the token or key that made it. Nothing is written to disk; logs carry counts only."},{"label":"What leaves the box","value":"Self-hosted: nothing. Hosted demo: the contract's candidate paragraphs go to the model through our gateway, which is why the hosted demo is for public and fictional contracts only."},{"label":"Where new wording comes from","value":"Only the firm's precedent clauses, with the parties' defined terms filled in. Every inserted chunk is traced to its precedent in code; if a check fails the change falls back to the precedent's own sentence or to a comment."},{"label":"Input","value":"A .docx up to 2 MB or text up to 200,000 characters; a playbook of up to 20 rules and a library of up to 80 precedent clauses as JSON (the default is a synthetic one)."},{"label":"Output","value":"A .docx with Word tracked changes and a comment per change; a review memo; a signed record; and, from the file returned from Word, a signed ledger of which changes the lawyer accepted or rejected."},{"label":"Model cost per contract","value":"About a cent or less per contract at the gateway's list price (median, measured on CUAD runs); GPU time only when self-hosted."}],"hosted_now":{"needs":["qwen3.8-27b"],"off":[],"live_by_default":true,"live_status":"https://api.decosa.ai/status"},"data_handling":{"page":"/data#legal-drafting-editor","self_host":{"level":"confidential","leaves":"nothing","summary":"Runs on your machine; nothing is sent to Decosa or a third party by default."},"hosted":{"level":"operator-processed","demo_only":true,"summary":"Hosted demo on sample or public data only; self-host for real data.","gpus":"operator-contracted","third_parties":[],"retention":"The contract is held in memory for the request; the run (findings, changes, the redline) for one hour, for the token or key that made it. Nothing is written to disk; 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":[]},"console":{"href":"/legal/legal-drafting-editor","input":"drafting","lanes":[{"id":"findings","title":"Playbook findings","kind":"list"},{"id":"redline","title":"Redline","kind":"list"},{"id":"checks","title":"Checks on the file","kind":"list"},{"id":"record","title":"Signed record","kind":"json"}],"samples":[{"n":1,"id":"northwind-msa","title":"Northwind msa","deep_link":"/legal/legal-drafting-editor?sample=1&autorun=0"},{"n":2,"id":"cuad-dragon-outsourcing","title":"Cuad dragon outsourcing","deep_link":"/legal/legal-drafting-editor?sample=2&autorun=0"},{"n":3,"id":"cuad-garman-software","title":"Cuad garman software","deep_link":"/legal/legal-drafting-editor?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/legal-drafting-editor-hosted.md","selfhost":"/prompts/legal-drafting-editor-selfhost.md","assemble":"/prompts/legal-drafting-editor-assemble.md","mac":"/prompts/legal-drafting-editor-mac.md"},"rehearsal":{"bundle":"/samples/legal-drafting-editor.zip","bundle_url":"https://decosa.ai/samples/legal-drafting-editor.zip","folder":"/samples/legal-drafting-editor/","expected":"/samples/legal-drafting-editor/expected.json","files":["/samples/legal-drafting-editor/expected.json","/samples/legal-drafting-editor/inputs/northwind-msa.docx","/samples/legal-drafting-editor/inputs/playbook.json","/samples/legal-drafting-editor/inputs/precedents.json"],"bytes":11768,"checks":["Texas governing law is placed outside the playbook","the governing-law clause is redlined from Texas to New York as a tracked change","the 30-day warranty is flagged","the exclusion of indirect loss (clause 4.2) is found and quoted","no inserted word is untraced","the redline passes its package checks","rejecting every change gives back the input","accepting every change gives the proposal","the review memo (Markdown) has the governing-law finding","the signed record verifies","a record with its title edited no longer verifies","every model call has a signed receipt"],"licence":"Synthetic: Northwind, Brightwell and Halvorsen & Pike LLP are fictional; the contract, playbook and precedent clauses were written for the Decosa demo. 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 synthetic services agreement (Northwind / Brightwell) as a .docx, reviewed against three rules of a fictional firm's playbook and precedent library, both sent as files. Texas law must be found outside the playbook and redlined to New York, the 30-day warranty flagged, and the mutual exclusion of indirect loss found; the redline must pass its checks (reject-all gives the input, accept-all the proposal) with no untraced words, and the signed record must verify.","run":{"containers":"docker compose exec api python scripts/rehearse.py legal-drafting-editor","checkout":"python scripts/rehearse.py legal-drafting-editor --bundle legal-drafting-editor.zip --base-url http://127.0.0.1:8445","mac":".venv/bin/python scripts/rehearse.py legal-drafting-editor"},"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=legal-drafting-editor","data":"/api/hardware.json","tiers":[{"id":"lite","gpu_gb":57.6,"basis":"stack","unknown":[]},{"id":"standard","gpu_gb":57.6,"basis":"stack","unknown":[]},{"id":"wanted","gpu_gb":249.6,"basis":"estimate","unknown":[]},{"id":"alternate-fast-judge","gpu_gb":57,"basis":"estimate","unknown":[]}],"mac":{"fit":"full","memory_gb":32}},"links":{"page":"/legal/legal-drafting-editor","json":"/use-cases/legal-drafting-editor.json","metrics":"/metrics/legal-drafting-editor","console":"/legal/legal-drafting-editor","console_sample":"/legal/legal-drafting-editor?sample=1&autorun=0","stack":"/legal/legal-drafting-editor#stack","try_live":"/legal/legal-drafting-editor","watch":"/legal/legal-drafting-editor","build":"/legal/legal-drafting-editor#build","self_host":"/legal/legal-drafting-editor#self-host","prompts":{"hosted":"/prompts/legal-drafting-editor-hosted.md","selfhost":"/prompts/legal-drafting-editor-selfhost.md","assemble":"/prompts/legal-drafting-editor-assemble.md","mac":"/prompts/legal-drafting-editor-mac.md"}}}