previews · sprint reports · Lawrence Experience · Sprint 5

Sprint 5 — Forms & the Demo Pivot

A six-goal planning sprint that was paused mid-flight and re-scoped around a single deliverable: a working "Hacking Law Firm" demo. Scope tripled, a cross-squad cast was pulled in, and the forms + citations + confidence backbone landed on the final day.

✅ Final Cycle 5 · May 14 → May 27 2026 Generated 2026-05-27 Notion source · LEX Sprint 5 Report Linear · team/LEX Goals · Sprint 5 goals
TL;DR

Sprint 5 began as a six-goal planning sprint. On the 22 May standup it was paused and re-scoped around one deliverable — a working "Hacking Law Firm" demo. Linear scope ballooned ~91 → 227 pts (23 → 79 issues) as the squad pulled in engineers from AI Capabilities, LegalOS and Legal Eng to land the demo centrepiece: forms in the Lawrence canvas, with inline citations and confidence-based filling.

The cycle closed at ~83 pts landed (26 of 79 issues), with another 36 pts in review. The citations + confidence-in-forms backbone landed on the final day across both the ai-platform (LLM wiring) and platform-v3 (FormEditor) stacks. The demo itself, forms-in-canvas, the forms-processing service and thread search carry into Sprint 6. Despite the nominal scope tripling, landed delivery sits inside the team's sustainable 70–100 pt band.

The demo pivot — what changed

The defining event of the sprint. On 22 May the goals doc gained a top section — "Sprint 5 has been paused to focus the team on demo readiness for Friday, 29 May 2026" — splitting work into demo Must-Haves and Nice-to-Haves and pushing the original Goals 1–6 below the fold. Three goals scoped as plans / spikes (Threads, Intake, parts of Citations) were escalated to shipping code, and a brand-new Matter dashboard workstream appeared.

Original Sprint 5 plan (pre-22 May)What the demo pivot turned it into
G1 Forms — immigration demo, flattened-PDF pipeline, front-end forms UIForms = the centrepiece. Forms into the Lawrence canvas; agentic filling; per-field UI
G2 Granular Citations — standalone impl + 150-char previewFolded into citations in form explanation fields; standalone granular work continued as a SPEC + calibration spike
G3 Threads M1 — back-end + front-end tech plans onlyEscalated to shipping cross-thread search
G4 Create & Edit polish — bug fixes from test passEdit-DSL (format / set_block / list_op) deployed; batched-edit UX in progress
G5 Intake forms — high-level tech plan onlyEscalated to a demo-ready intake flow (Titan/Salesforce deep-dive, Tally-form → matter PDF)
G6 Legal Eng — Legal Data Strategy tech plan + demo supportContinued strongly: legislation remapping, CourtListener/OpenLaws partnerships, 10x hackathon cases
(not in original plan)+NEW: Matter dashboard M1 — demo addition (Sedona/Aliyyah scope → Dom build → Jaime)
(not in original plan)+NEW: confidence-based fill rules — 100% → no review; <60% → prompt review; <20% → blank; 0% → draft client email

Sprint health

227pts
In scope
79 issues · grew from 91 at the pivot
43%
Landed
83 pts deployed or merged · 26 issues
61%
At or past review
+36 pts in review · one merge away
112pts
In flight → Sprint 6
demo + forms-in-canvas + thread search

Points distribution by status

Pointed work only (195 of the 227-pt scope is pointed). Landed = deployed + merged. The big In-Progress block is the demo tail carrying into Sprint 6. A further 27 unpointed polish issues (LEX-421 → LEX-456) sit in Todo and aren't shown here.

Deployed (36%) Merged (6%) In review (18%) In progress (39%) Todo · 27 issues, unpointed

Burndown note: Linear's completed-scope snapshot reads ~45 pts because it predates the final-day deploy wave (citations + confidence landed 13:14–14:58 on 27 May). The status-level count (~83 pts) is current. LEX-433/LEX-434 landed on trunk via Graphite merge queue today but their tickets still read In Review — ticket hygiene lagging the merge.

May 14
May 17
May 20
Pivot · May 22
May 24
Closed · May 27

Two-week cycle. Paused & re-scoped for the demo on May 22; cycle closed May 27. The Hacking Law Firm demo runs Fri May 29 — two days past cycle close — and carries into Sprint 6.

Sprint goals — at a glance

The 6 goals as committed at sprint start, with status reflecting where they landed by close. The demo pivot escalated several from plans to shipping — see the expanded cast for who delivered.

Goal 1 · Centrepiece

Forms

Backbone landed
Agentic form-fill across 3 repos · demo UI in flight

Agent fill stack landed; the canvas UI and forms-processing service carry into Sprint 6.

Landed vs open
  • Landed: fill_form tool + forms:// VFS surface + form-editing skill (agents); CaseData schema endpoint + FL-100 seed (ai-platform #587); form-fill UX loader card (#10256); matter-scope jurisdictions resolver + self-heal fixes (#10482–#10484, #10538); Tally-form → matter-PDF intake (George)
  • Open → Sprint 6: agent-edit-into-live-form 3-way merge (#10531–#10537); forms into the Lawrence canvas (Wills, #10405–#10407); forms-processing admin service (Peter, ~50-PR stack); form-detection pipeline spike (Gareth, #598–#604)
Goal 2

Granular Citations

Citations landed, rules WIP
Citations + confidence on the wire · 27 May

Citations stopped being a standalone goal and became a forms feature for the demo.

What landed
  • Landed 27 May: per-field citations + confidence in the FormEditor + VFS read (#10413/#10414, Martin); citations + confidence wired into the LLM call (ai-platform #624/#625, Martin); passage highlighting through the Lawrence 2 panel (AICAP-153); LEX-400 granular citations → field explanations (Merged)
  • In progress → Sprint 6: confidence-band rules — remove per-field Review button, flag only <60% (LEX-401); calibration v0 (LEX-450); SPEC (LEX-451) — Gareth
Goal 3

Threads M1

Plan met, build started
Escalated from tech-plans to shipping

The pivot pushed Threads M1 from plans-only to actual cross-thread search build.

Landed vs open
  • Landed: cross-thread referencing (LEX-409, Deployed); cross-thread spike (LEX-337, Deployed)
  • Open → Sprint 6: exact-string search across threads (Peter, #605 / #10389); threadMessageQuery over a new typesense search-service (George, #10403/#10404); LEX-411 search implementation
Goal 4

Create & Edit polish

Mostly landed
Edit-DSL deployed · batched-edit UX WIP

The Sprint-4 edit-DSL follow-up shipped; long-edit progress UX continues.

What landed
  • LEX-372 edit-DSL format / set_block / list_op (#10125/#10128/#10129) — Deployed
  • LEX-376 batched-edit progress UX — In Progress
Goal 5

Intake forms

Demo flow in progress
Escalated past a tech plan into a demo flow

Scoped as a tech plan; the pivot pulled it into a demo-ready intake flow.

What moved
  • Titan / Salesforce deep-dive to recalibrate the collection flow (Sedona, Harry)
  • Tally-form → matter PDF (George) — the demo intake path
Goal 6 · Legal Eng

Legal data & demo support

Strong
Deepest goal-level delivery of the sprint

Legal Data Strategy plus the legislation + partnership work that feeds the demo.

Open items
  • Deployed: Legal Data Strategy (LEX-356); legislation source remapping + parallel search (agents #578); CourtListener / OpenLaws API tests
  • In progress / review: CourtListener + OpenLaws partnerships (LEX-386/387); 10x hackathon cases + QA (Emtenan); LCO PRD / spike

The expanded cast — who contributed

Sprint 5 reached well beyond the core squad. Found via a full-author git sweep across platform-v3, agents, ai-platform, content-retrieval and ingestion — not just the configured roster.

ContributorSquadWhat they drove
Adolfo TamayoLEX (TL)fill_form tool + forms:// VFS adapter, agent edit path for filled forms, form-editing skill, edit-DSL commands, CaseData schema endpoint, jurisdictions resolver
Peter ZacharesLEXforms-processing service (large stacked build), cross-thread / exact-string thread search, DRAFT-note canvas review
Pratik BordeLEXAgentBar / LawrencePanel architecture, docked + floating sidebar, thread tabs
Martin HarttAI CapabilitiesCitations + confidence: passage highlighting (AICAP-153), per-field citations + confidence in FormEditor, form-fill citation/confidence LLM wiring, email-citation threadId
Gareth Wyn Molyneuxpulled inConfidence scoring + rules, granular-citations SPEC + calibration v0, agentic form-detection pipeline spike
George GebbettLegalOSIntake: Tally-form → matter PDF; thread search backend — threadMessageQuery over a new typesense search-service
Jaime van Oerspulled inMatter dashboard / overview card, matter pill, MatterContentLayout, Lawrence panel animation polish (untracked under LEX)
Dominic Westpulled inMatter-view + pinned-Lawrence-panel polish (LEX-404/405/406/407/420), form-fill SidebarDocumentCard
Wills BithreyLegalOS + LEXForms into the Lawrence canvas, streaming in-editor edit ghosts, SidePanel / AgentBar animation
Harry GreenLegal EngLegal Data Strategy, legislation source remapping + parallel search, CourtListener/OpenLaws partnerships, PDF radio-button fix, demo prep
Emtenan SuleimanLegal Eng10x hackathon cases, QA audits, demo case content (evictions / disrepair)
Alex Salas-Wardmanpulled inMatter homepage (LEX-408, Deployed) — Linear-tracked; no commits matched under his name, likely paired

Carried into Sprint 6

The demo (Fri 29 May) and its open branches roll into Sprint 6, alongside the original Sprint 5 plan the pivot deferred.

In review9 · 36 pts
One merge away.
Form-fill citations + confidence wiring (code on trunk; ticket lagging)LEX-433/434
Granular citations: SPEC explorationLEX-451Gareth
Hackathon QA audit · 10x casesLEX-394Emtenan
Finalise hackathon demo data + legal data accessLEX-417Harry
In progress15 · 76 pts
The demo tail.
Bring forms into canvas experienceLEX-399Wills
Confidence rules + calibration v0LEX-401/450Gareth
Batched-edit progress UXLEX-376Adolfo
AgentBar UX snags · Demo prep · LCO PRDLEX-390/455Wills · Harry
Todo27 · unpointed
Demo-polish backlog + thread search.
Search implementation across threadsLEX-411Peter
Polish chip backlog — z-index, padding, animations, mobileLEX-421→456
Email draft bugs (empty body, send)LEX-382Harry

UI polish & sidebar refinement

Heavy polish load — much of it the unpointed demo backlog targeting demo surfaces.

Pinned-Lawrence panel surround LEX-404 Matter nav ribbon padding LEX-405 DataTable header weight / compact cols LEX-406 Task side-sheet alignment LEX-407 Panel top-padding match LEX-420 Floating↔docked genie+slide SidePanel snap / resize SidebarDocumentCard for form-fill LEX-415/431 Lawrence animation de-spring (Jaime) Matter pill (Jaime)

Bugs squashed

AreaWhatPR
Formsfill_form self-heals workflow status when it succeeds without progress events#10484
FormsCatalogue no longer truncated by caller pageSize; stop duplicating case_data_schema#10538
CitationsPDF citation highlight tolerates whitespace; note-viewer matches across inline marks#10344/#10540
PDF formsPyMuPDF boolean on_state for radio buttons without an "On" value#531
IntakeTally endpoint payload limit increase#10355
Retrievalchunk_text O(n²) hang bounded on long paragraphs#661

Lessons learnt

What went well

  • A working demo was assembled mid-sprint by a cross-squad cast — AI Capabilities, LegalOS and Legal Eng all pulled in, coordinating across five repos.
  • Citations were pragmatically re-framed from a standalone goal into a forms feature — what the demo actually needed — and the backbone landed on the wire by close.
  • Landed delivery (~83 pts) held inside the sustainable 70–100 pt band even as nominal scope tripled.

What to improve

  • Mid-sprint scope explosion (91 → 227) is now a repeating pattern (Sprint 4 went 88 → 174). "Pause and re-scope around a demo" is becoming the default — worth a retro on planning demos as a sprint, not injecting one.
  • Cycle boundary and demo deadline are misaligned — the cycle closed 27 May, the demo is 29 May, so must-have work spills into Sprint 6 by construction. Consider aligning cycle dates to demo dates.
  • Ticket hygiene lagged the code: LEX-433/434 landed on trunk but read In Review; Alsal's matter-homepage shows on Linear but not in git under his name; the 28-item polish backlog is unpointed.

Sprint 6 preview

Dominated by the demo tail — forms-in-canvas, forms-processing service, thread-search build, confidence calibration, and the polish backlog — plus the original Sprint 5 plan resuming (Threads M1 / Intake tech-plans, granular-citations follow-through).