For Florida law firms
Decisions answered once, and where things stand in the attorney's own words
firm lane · Deterministic — no model call
Current availability
ShippedConfigured and enabled: a firm's matter — an attorney of the firm with the second factor on the firm side; the matter's client and active co-principals in the client room.
- Where it lives
- The firm's matter (/admin/matter/[id]) → The client's room · the client's matter (/matter/[id]) → Where things stand · Decisions your firm asked you to make · /api/admin/client-room · /api/client-decisions
- What unlocks it
- an attorney of the firm puts a decision to one of the matter's principals and writes where things stand; that principal answers the decision once; the matter's principals read the account
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
- ShippedAn attorney puts a decision to one account — the matter's client or an active co-principal, by name: a question with 2 to 12 options the attorney writes (each a label and, if wanted, a sentence of what it means), with context and a date to answer by if wanted. The question and its options are set once.
- ShippedThe person asked answers once — one of the options, with a note if they want. The decision's id is the key: the same answer sent again records nothing, and a different one is refused. In five languages.
- ShippedOnly the account a decision was put to sees it and answers it — two principals on one matter each see their own; a helper sees none; the firm never answers for the client.
- ShippedEvery answer reaches the firm's attorneys through one outbox notice, keyed by the decision — the attorney who asked when they can still open the matter, otherwise the assigned attorney, otherwise every attorney who can (the matter's walls decide); only its delivery writes the answer's routing receipt, and the client reads that the firm has the answer only then.
- ShippedAn attorney withdraws a decision nobody has answered, once; the client sees that nothing is needed.
- ShippedWhere things stand: an attorney writes the matter's account for its client in plain words; the client reads the latest version first in their room, with the author's name and the date. Every earlier version stays on the firm's record. Until an attorney writes one, the client sees that there is no update yet.
- ShippedNo model writes, summarises or suggests anything on either surface — every word is the attorney's or the client's.
Limits
- Decisions and the account are a firm's: a matter on the direct service has no attorney to write them.
- Only an attorney puts a decision or writes the account — administration confers no such authority; the rest of the staff read both.
- An answer cannot be changed once sent; a client who changes their mind tells the firm, which can put a new decision.
- The client hears of a decision, and the principals of a new account, in the app; no e-mail is sent for them.
What EstateDraftFL refuses
| Reason code | HTTP | What it means |
|---|---|---|
| invalid | 400 | The decision, the answer or the account is not complete — the field is named (2 to 12 different, named options; a date to answer by not already past in Florida; a recipient who is the matter's client or an active co-principal). |
| forbidden | 403 | The session is not the firm's staff. |
| not-authorized | 403 | An attorney of the firm able to open the matter puts a decision and writes where things stand. |
| not-a-firm | 409 | The matter has no firm. |
| unknown-decision | 404 | The decision was not found — or it was not put to the caller. |
| already | 409 | The decision is already answered with a different choice. |
| answered | 409 | The decision is answered, so it cannot be withdrawn. |
| withdrawn | 409 | The decision was withdrawn. |
| matter_archived | 409 | The matter is archived — its record reads, and nothing is added. |
| unavailable | 503 | The decision, the answer or the account could not be read or recorded just now — nothing was changed. |
Evidence
- supabase/migrations/20260929230000_phase11_decisions_and_narrative.sql
- src/lib/client-room/policy.ts
- src/lib/client-room/server.ts
- src/lib/client-requests/routing.ts
- src/lib/actions/handlers.ts
- src/app/api/admin/client-room/route.ts
- src/app/api/client-decisions/route.ts
- src/components/ClientRoomPanels.tsx
- src/components/client-room/FirmRoomPanel.tsx
- src/components/client-room/FirmRoomControls.tsx
- docs/security/MASTER-PLAN-PHASE11-PART2-2026-09-29.md
Last reviewed 2026-09-29