For Florida law firms
ChatGPT 5.6 Sol tier and the dual consensus mode
firm lane · Generative, gated — the model output is the paid, role-gated work product
Current availability
Owner-gatedWaiting on the platform owner: the governed OpenAI key (owner gate).
- Where it lives
- /admin/workspace tier selector
- What unlocks it
- included in the workstation AI plans
Status is evaluated against this deployment's configuration by the capability-status service at build time; the catalogue's facts were last reviewed on the date shown.
Capabilities
- Owner-gatedThe alternate engine on the same operations, through the same governed gateway, and the dual consensus mode that cross-compares both engines' findings deterministically.
Limits
- Work product for a licensed attorney's own review — never legal advice to a client and never a substitute for the attorney's judgment.
- Opus 5 by default through the governed gateway (audit row per call, spend brake, the operative-text cage); the direct consumer tenant has no door to it.
- Nothing here files, signs, sends or approves anything; every consequential act is recorded as a firm decision by a person.
- Renders disabled until the OpenAI engine is configured; never simulated.
What EstateDraftFL refuses
| Reason code | HTTP | What it means |
|---|---|---|
| engine-not-configured | 503 | The engine's governed key is not configured on this deployment; the option renders disabled, never simulated. |
| forbidden | 403 | The session is not firm staff (or a platform admin); every workspace door answers this before reading any input. |
| matter-required | 402 | A paid matter must be selected; a platform admin may run unbilled platform work without one. |
| payment-required | 402 | This exact matter carries no active grant or plan for the operation (the picker names the activation page). |
| matter-not-found | 404 | The matter is not readable in the caller's tenant context (RLS decides; a cross-tenant id reads back nothing). |
| workstation-ai-locked | 402 | The lane grant found no workstation AI access for the matter (membership or per-matter plan). |
| surcharge-not-priced | 422 | The maximum tier is staged until the owner sets its per-document price; the option renders disabled. |
| document-required | 400 | A run needs document text (pasted or attached). |
| revised-document-required | 400 | A redline needs both versions. |
| invalid-manifest | 400 | The attachment manifest must be up to ten {name, sha256, chars, includedChars, truncated} rows. |
| input-too-large | 413 | A document exceeds the 400,000-character request envelope — split it. |
| input-over-lane-cap | 413 | The input exceeds the selected engine's token allowance (chars ÷ 3, conservatively) — split it or choose the larger-capacity lane. |
| rate-limited | 429 | Too many AI runs in the window; the reply names the wait. |
| engine-error | 502 | The engine failed mid-run; nothing was delivered and nothing was charged. |
| unavailable | 503 | The governed gateway is unavailable (spend brake, provider outage); honest 503, never a degraded answer. |
| unsupported | 415 | Only .pdf, .docx, .txt and .md attach. |
| invalid-file | 422 | The bytes fail the shared upload policy: name/content mismatch, structure, empty, oversized, or binary under a text name. |
| unsafe-file | 422 | The armed scanner reported the file; it is not read. |
| scanner-unavailable | 503 | The armed scanner could not be reached; retry later, nothing kept. |
| scan-required | 503 | SCAN_REQUIRED is set and no scanner is configured — fail closed, the file is not read. |
| unreadable | 422 | No text layer, an encrypted or damaged file, or the parser exceeded its time budget. |
| too-large | 413 | Attachments up to 10 MB. |
Evidence
- src/lib/workspace/workspace-gates.test.ts
- src/lib/models.test.ts
- src/lib/models.ts
Last reviewed 2026-09-24