Research and instrumentation for an AI workspace that generates legal filings
First-use testing, expert validation and soft-launch analytics for prosecutors and public attorneys generating case documents
A legaltech company built a generative AI workspace where prosecutors and public attorneys assemble a case (documents imported from the case system plus their own PDFs) and generate summaries, strategies and draft filings. I joined at kickoff as the product designer and ran the full evidence cycle for the product: I planned what to measure and what to test, collected data in moderated sessions and in Mixpanel, structured the findings so each one reached an owner, and took the result to the people who make product decisions.
Between 30 July and 11 August 2026 the qualitative base grew to four sessions (three with the same specialist from a state prosecution office, one with the head of a municipal attorney’s office) and the reports of four client activations, which I consolidated into one cross-client reading. In both first-use sessions the major findings were in the generated content. AI instability appeared in every session with the specialist and in three of the four activated offices. In soft launch, 1 of 12 case imports completed at one client office. I built the evidence base that escalated performance to product leadership and into the development pipeline as an urgent priority.
- Role
- Product Designer, leading design and user research, from kickoff
- My part
- Usage tracking plan and data reading, research planning and moderation, findings analysis and synthesis across clients, interface improvements for the workspace, design system adoption across the platform
- Not mine
- The first navigable prototype and several screens came from the external agency. Prompt refinement belongs to a dedicated team member. The performance fix and the decision to pause activations belong to engineering and operations.
How the evidence moved
Plan, collect, structure, escalate. I set up the tracking and the research from kickoff, read the soft-launch data, classified every finding by severity and layer, and took the evidence to the product team, to leadership and back to the participant for validation.
- Plan
- Tagging plan after the analytics board failed, and a seven-task script tied to hypotheses.
- Collect
- Four moderated sessions between 30 July and 11 August, plus the soft-launch board.
- Structure
- Severity by Nielsen, layer and hypothesis; a cross-client synthesis; Kano for requests.
- Escalate
- Deck for product and leadership, validation with the specialist, summaries to the business unit, alert to CS.
See the full record (17 entries)
| Step | What I did | Record |
|---|---|---|
| Plan | Opened a ticket when all 22 cards of the analytics board returned errors, and wrote a tagging plan with entry points and core-loop funnels | Jul 2026 |
| Plan | Wrote a seven-task script around the actions that deliver value (find a case, open the study, generate from quick actions, generate a filing from the chat, send a question, save as PDF or copy, import a source), each task tied to a hypothesis | Jul 2026 |
| Collect | Moderated a first-use session with think-aloud and SUS, 2h27 of recording | 30 and 31 Jul 2026 |
| Collect | Moderated a session with the head of a municipal attorney’s office, requested by her, on the previous version of the product | 3 Aug 2026 |
| Collect | Expert interview: the session 1 participant reviewed the video and report of the 3 Aug session | 6 Aug 2026 |
| Collect | Participant-led comparison: same inquiry, same prompt, the product against a general-purpose assistant and against the indictment actually filed | 11 Aug 2026 |
| Collect | Read the soft-launch board for one client office and audited its takeaways, correcting 4 that were out of date | 26 Aug 2026 |
| Structure | Classified findings by Nielsen severity, by layer (development, usability, product/AI) and each script hypothesis as validated, invalidated or inconclusive, with unexecuted tasks listed for rescheduling | Jul and Aug 2026 |
| Structure | Consolidated the reports of four client activations into one cross-client synthesis, ranking each finding by how many offices sustained it | Aug 2026 |
| Structure | Reclassified severity at program level (two findings raised to 4) and classified user requests with the Kano model | Aug 2026 |
| Structure | Wrote per-client usage summaries for two offices | 27 and 28 Aug 2026 |
| Escalate | Presented both first-use sessions to the product team and leadership in one deck | Aug 2026 |
| Escalate | Sent the specialist a validation document with the team’s record of three sessions, for him to check the technical content | Aug 2026 |
| Escalate | Connected the specialist to the team member refining the prompts; delivery of his real filing models scheduled | 12 Aug 2026 |
| Escalate | Posted session results to the team’s user-evidence channel | From Aug 2026 |
| Escalate | Sent the per-client summaries to the head of the business unit | 27 and 28 Aug 2026 |
| Escalate | Told the CS group that a critical performance issue in import and generation was blocking use at the two activated prosecution offices, and that the team was treating it that week | 3 Sep 2026 |
The problem
Users already had a working alternative, and there were two kinds of it.
- A general-purpose assistant.
- The specialist from the state prosecution office downloaded PDFs from the court system, processed them in the general-purpose AI assistant his institution licenses, and pasted the result into the office’s drafting system.
- A specialized legal AI tool.
- The head of the municipal attorney’s office used a competitor every day. So did attorneys in two of the other activated offices.
The product had to beat both on quality and speed, in a domain where an imprecise sentence can end up in a filed document. The second baseline set a higher bar: users who already had a legal AI tool compared the draft with that tool’s output, and not with their manual work.
Tracking from the start
In July the analytics board for the product returned errors on all 22 cards, so the team had no usage data before soft launch. I opened a ticket and wrote a tagging plan so the team could follow use from the first activation: one naming convention for every event, a property for the three entry points from the case system (task panel, case folder, editor), and funnels for the core loop (open, start generation, complete, export).
I recorded what the plan did not cover yet: the user’s role, load time, extraction quality and CSAT.
First-use research
I planned and moderated first-use sessions with think-aloud, a task script and the SUS questionnaire. The participant used the product first without guidance, so the questionnaire would not be biased, and the open conversation came after it. I classified findings with Nielsen’s severity scale, which combines frequency, impact and persistence, and adapted it for the domain: legal imprecision was raised to severity 3 because it can reach a filed document.
Session 1 · state prosecution office, 30 and 31 July
A specialist from a state prosecution office with advanced criminal-law practice, on his first use of the current version. 2h27 of recording, SUS 57.5: below the market reference of 68 and above 50.
- What worked.
- He found the case and created the study without help, went to the quick-action card and generated a summary without hesitation, and read parties, court, requests and case history from the home screen without opening the files. The value he named was integration: one environment for what today takes three systems.
- Script hypotheses.
- 4 validated, 2 invalidated, 5 inconclusive. The two invalidated: he did not understand where the generated document went (about 8 minutes between generating and finding it the first time, and the difficulty came back twice), and the “detach” control was not understood without a verbal explanation, given twice. Three tasks were not executed and went to the next session.
- The most severe finding.
- Asked about the sentencing calculation, the AI stated a sentence of 3 years and 6 months and answered that the sentence was not in the accessible files. The sentence was in the imported files.
- Content.
- Good base with gaps at the decision points of criminal practice: sentencing, prescription, two defendants with different outcomes, appeal status. Two conceptual errors: an administrative-misconduct case treated as part of the criminal case, and a criminal chamber assigned to the district instead of the court.
- Trust.
- His first question, before any task, was whether the PDF he uploaded with his institutional credential would stay inside the environment.
“If it is telling me there is a conviction of 3 years and 6 months, it is because it has the sentence. It just did not show the document.”
| Finding | Layer | Freq. | Impact | Rating |
|---|---|---|---|---|
| Legal inaccuracies in generated content | Product / AI | medium | high | 3* |
| No traceability from a claim back to its source | Usability | high | medium | 3 |
| AI states a sentence it cannot locate or reason about | Product / AI | medium | high | 3 |
| Summary or draft fails to generate or errors out | Development | high | medium | 3 |
| Chat returns no response at all | Development | low | blocking | 3 |
| Reading a case is interrupted at every document | Usability | high | medium | 3 |
| Finding the generated document (about 8 min) | Usability | medium | medium | 2 |
| “Refine with AI” appears intermittently | Usability | medium | medium | 2 |
| Dead space and quick actions taking over the screen | Usability | high | low | 2 |
Session 1 only (30 and 31 July). *Raised from 2 to 3 under a domain caveat: in a legal system, a wrong legal term or citation can go unnoticed and reach the filed document. Method: 1 session, 1 user. Frequency refers to occurrences within the session and does not measure frequency across the user base. The transcript had audio contamination, so severity-3 findings were marked for confirmation against the screen recording.
There was no usability catastrophe. Of the six severity-3 findings, three sat in the AI core (generation errors, a chat question with no answer, the sentence the AI said it could not find), one was raised by the domain caveat and two were raised by persistence in the activity that dominates the user’s day: reading long texts. Traceability to the source was the most repeated request of the session, in four surfaces: summary events, case history, a split case and each item of the draft.
Session 2 · municipal attorney’s office, 3 August
The head of a municipal attorney’s office, a daily user of a specialized legal AI tool, on the previous version of the product. She requested the meeting herself. SUS 37.5.
Navigation caused no difficulty: she found her workspaces, opened cases, added and removed sources and used the available skills. The rejection was about content, and it held across every skill tested (response, motions, appeals): a draft with no legal citation although the law was in the imported files, the main argument turned into a different one, and her own template, added as a source, ignored. Her questions about the interface were about vocabulary: “source”, “context document” and “strategy” are not the words attorneys use.
“I imagine it could be much better than what we use today. As it stands, it falls well short.”
She also described why she trusts the tool she uses: before the draft, it shows the resources, searches, sources and strategy it is using, with links to the origin; it brings law and precedent without being asked; and it applies the office’s templates with an adherence level she chooses.
Reading the two sessions together
SUS scores are from different versions and user profiles, so I did not compare them. I placed the two sessions side by side on the same themes, without concluding a common cause:
- Source retrieval failed in both versions: a document present in the imported files did not reach the answer.
- Both participants asked to see the origin of the information before accepting the result.
- Both completed the flow without help, and both criticized the content.
- Interface terms needed translation in both sessions.
- The verdicts on content differed, and so did the participants’ reference: the user who already had a legal AI tool judged against it.
From findings to requirements
The sessions produced a requirements benchmark:
- Content without rebuilding context.
- The applicable law and precedent arrive before the prompt.
- Institutional templates with an adherence level.
- Flexible, strict or template.
- A visible generation process.
- Every claim linked to its source document.
- Case law users can verify.
- From official sources.
- Reading built on conventions users already know.
- The court system’s event tree on the left and the document on the right, a reading mode with narrow margins, keyboard editing in the editor. Without keyboard support, the specialist said many people in his office write in a word processor and paste the text in.
- Explicit data scope and confidentiality.
- A precondition for institutional use.
The specialist’s legal explanations during the session became a base of domain requirements for the generated content: specific articles of the Penal Code and the Code of Criminal Procedure, service-of-process rules, appeal deadlines and the office’s writing manual.
Expert validation and field tests
From the second meeting on, the session 1 participant worked as a domain expert for the team.
Cross-validation, 6 August
The specialist watched the video of session 2 and commented on each of its eight findings. I coded his answers with a convergence matrix (Farmer et al., 2006, with complementarity added) and separated what he observed, what he reported from his own experience and what was his opinion. The result: two findings confirmed, two confirmed with a caveat, one deepened into a requirement, three outside the meeting’s scope, and no divergence.
- Confirmed and explained.
- The draft stayed in the facts of the case and left out the legal framing the attorney needed. He named the missing doctrine.
- Caveat of method.
- He pointed out that the comparison in session 2 mixed two causes: the product received only a shortcut command, while the competitor received a prompt that explained the case. A test with and without context was designed in the session to separate prompt quality from tool capability.
- Deepened.
- Style personalization has three layers: the individual, the institution (writing manual and unwritten rules from internal review) and the type of office.
Participant-led comparison, 11 August
The specialist ran the same inquiry PDF in the product and in the general-purpose assistant, with an identical, deliberately short prompt (“draft the indictment for the case”), and read both against the indictment actually filed in the case.
- Content.
- “Both brought satisfactory answers.” The product included a request for minimum compensation to the victim, supported by the asset appraisal in the files. The general-purpose assistant and the filed indictment both left it out. It was the first record in the program of the tool going beyond the human-written filing on one item.
- Gaps.
- The product listed 11 witnesses against a legal limit of 8 and stated a qualifying circumstance without narrating how it happened. Both tools anticipated evidence that belongs to a later stage.
- Speed and stability.
- The assistant was faster, shorter and more objective. The product was slower and sometimes did not answer: “the Studio sometimes has this problem, and then it makes the work impossible.” A demonstration to a stakeholder had failed for the same reason.
Two outcomes went to the team. The method stayed for the program: compare each generation with the document actually filed. The product direction was consolidated in the session: build fixed legal rules into the system by stage and document type (witness limit, narration of qualifying circumstances, compensation request when there is an appraisal) instead of depending on a detailed prompt from the user. A hypothesis fell in the same session: a legal-search aggregator’s API is not an official source of case law.
A/B test of a beta generation mode
Same case and same prompt. The beta mode produced a more correct indictment (one offense, no spurious second count, office formatting, pages analyzed and sources listed) in about 3 minutes. The participant said the output could be copied and filed. Model unavailability stalled the test for about 8 minutes.
What the data showed in soft launch
Client activations, 31 July to 6 August
I consolidated the reports of four activations at municipal attorney’s offices and ranked each finding by how many offices sustained it.
- Every attorney who used the specialized competitor rejected the draft in direct comparison, for lack of legal argument or for case law and formatting.
- Speed and stability came up at three offices. At one, a source import was still loading after 16 minutes, inside the activation. At another, an attorney wrote that processing speed was the first thing to fix, before any other improvement; none of its 3 activated attorneys appeared in the access log of 10 August. At a third, 5 of 8 attorneys were active in the week of activation.
- One use the team considered low-value delivered value on its own: a tax-enforcement attorney used the chat to find information in the case files, did in seconds what took her hours, and showed her colleagues, who started using it the same way.
Usage data
- 1 of 12case imports completed at one client office
- 27%generation success at the same office (3 of 11); “Error” was the most frequent status
- 0 of 3case imports completed at a second office, where 1 of 3 users generated anything
I sent per-client usage summaries for both offices to the head of the business unit. He defined four minimum indicators for the team: cases started, completed and with errors; summaries and drafts generated; chat interactions; and users who performed each action at least once.
Outcome
After the third session with the specialist I reclassified the findings at program level, with the activations as evidence of frequency. Two findings went to severity 4, “fix before launch”: AI instability (chat with no answer, generation errors, answers that stop halfway; four occurrences with the specialist and convergent reports from three activated offices) and the sentence the AI said it did not have. Requests and positives went to a Kano classification, marked as inferential until validated with the users’ paired questionnaire. Basic requirements (traceability, data scope, generation status, file naming, keyboard editing, autonomous case import) formed a separate queue. The rest went to an impact by effort matrix with silent voting (NN/g), where UX and product vote impact and engineering votes effort.
By the third session the team had shipped part of the queue: generation status and error states in the quick actions, direct access to the generated document, search performance analysis, mapped error feedback, a revised files tab and document naming, all scheduled for verification with the specialist on 13 August.
The qualitative sessions and the soft-launch data pointed at the same cause. Engineering confirmed a bottleneck in the document pipeline, the PM framed slowness and missing feedback as the blocker to engagement, a fix was released, and new client activations were paused while it was reviewed.
I built the evidence base that escalated performance to product leadership and into the development pipeline as an urgent priority.
Standardizing research and telemetry
I built two Claude skills so research reports and telemetry plans follow one standard regardless of who writes them.
Research-report skill
1 week saved
on every research report
Identifying and classifying findings, applying the method, validating the information and building the report presentation.
Turns raw session material (transcript, recording, SUS answers, screenshots) into a report and a short post for the user-evidence channel, in the same structure every time. Page 2 answers four questions first: was the session positive, mixed or negative and why; which actions the participant completed, completed with help, or did not complete; the successes, each with its evidence; the errors, each with its severity.
- Observed and stated are tagged apart.
- Every claim is tagged as seen on screen, participant’s account, participant’s opinion, or information from the team. Information from the team never enters the report. Based on Nielsen’s guidance to watch what users do and not rely on what they say (NN/g, 2001).
- Three layers, three owners.
- Development, Usability, and Product/AI findings route to different owners on the team.
- Chained sessions.
- Prior findings return as starting themes. Each gets a status: confirmed, confirmed and deepened, reported improvement, observed improvement, or new.
- Requests logged by area.
- User requests go under Product, Design or Business, marked one-off or recurring, and prioritized by what the participant said mattered.
The skill applies writing rules in order:
- Every sentence is verifiable, with the transcript timestamp in brackets; inference becomes an explicit hypothesis.
- A number replaces an adjective. One fact per sentence; detail that does not change a decision goes to notes.
- A closed list of banned emphasis words outside quotes (real, crucial, essential and others), and no rhetorical antithesis.
- Quotes are literal and short, with who said it and when, and keep speech patterns and grammar as spoken.
Telemetry-planning skill
4 days saved
on every telemetry plan
From identifying the events on a screen to checking the documentation.
Mixpanel’s event catalog is closed: a value outside the list is silently dropped, breaking the metric’s history. Planning a screen’s telemetry meant knowing the production and staging catalogs, every property’s allowed values, privacy rules and the team’s document format. The skill takes a PM or designer from a screen to a tagging plan, with two human checkpoints.
- Catalog first.
- Production and staging events regenerate from Lexicon exports through a Python script. Lexicon does not export custom-property values, so a second reference tracks each value and its source.
- Screen in, inventory out.
- Every interactive element is listed with its exact visible label, then matched against the catalog as existing, an extension, or new. Items that cannot be verified go to a confirmation queue.
- Three property layers.
- Cross-cutting (who, which entity), context (where the user is), and action (what happened).
- Two validation stops.
- The analysis pauses for approval before the document is written, and a Python validator checks the generated plan for banned properties, missing units and section format. A plan ships only with zero errors.
What’s next
A technical assessment of latency, and a new test with an active user at one of the client offices once performance improves substantially.
What I learned
In AI products the usability test and the content test are separate tests. In session 2 navigation caused no difficulty and the participant rejected the content. I now script tasks so each session produces a separate finding for navigation and for output quality.
References
- Nielsen, J. Severity Ratings for Usability Problems (opens in new tab). NN/g.
- Nielsen, J. First Rule of Usability? Don’t Listen to Users (opens in new tab). NN/g, 2001.
- Farmer, T. et al. (2006). Developing and implementing a triangulation protocol for qualitative health research. Qualitative Health Research, 16(3).
- Lincoln, Y. S. and Guba, E. G. (1985). Naturalistic Inquiry. Sage.
- Kano, N. et al. (1984). Attractive quality and must-be quality. Journal of the Japanese Society for Quality Control, 14(2).