03 · Discovery
Read the production once. Know what it proves.
BRON reads the held record against the claims, custodians, privilege posture and outstanding requests, and keeps every finding attached to the page that produced it.
Sources stay attached to every finding.
The question in the room
“They produced 4,200 documents. What is missing, and can I prove it before the meet and confer?”
How it works
The mechanism, not the promise.
Seven kinds of gap, and a ledger that remembers your answer
Findings land as a closed set of kinds covering Bates holes, broken families, referenced attachments and documents that never arrived, privilege that should not have been produced, material withheld without an adequate log entry, and specification violations. A finding you resolved or dismissed is never reopened by a later scan.
A gap hunter with no model in it
ShippedThe passes are deterministic, because an accusation leveled at opposing counsel has to be machine-provable. Only documents carrying email indicators are scanned for attachment references, since attached hereto in a contract is legalese rather than a missing file.
backend/src/lib/discovery/gapHunter.ts
A gap phrased as a question when it must be
ShippedWhere the load file discloses document-level numbers only, the gap is reported as a question rather than as an accusation of withholding.
backend/src/lib/discovery/productionImport.ts
A standing produced-versus-privileged diff
ShippedTwo different alarms, never merged: privileged material that reached a production, and material withheld without an adequate log entry. Adequacy is a named defect list, because every content column is nullable and a blank row once satisfied a presence check while discharging nothing.
backend/src/lib/discovery/privilegeLog.ts
Classification takes the more protective of two
ShippedWhere a model and a heuristic disagree, the more protective reading wins, and the basis stays visible for review.
backend/src/lib/compliance/autoClassify.ts
A continuous-active-learning ranker
ShippedReview order is learned from the calls already made, by a deterministic pass over embeddings the matter already holds.
backend/src/lib/discovery/tarRanker.ts
Load files, read and written
ShippedDAT and OPT in both directions, so a production arrives and leaves in the form the other side actually uses.
backend/src/lib/discovery/loadFile.ts
The outbound set
ShippedSpecification, privilege log, redaction and meet-and-confer, kept on the same record as the inbound findings.
backend/src/lib/discovery/meetConfer.ts
Refusals
What it will not do, and why.
- Hunt a production it cannot read in full.
- Past its document ceiling the hunt is declined outright. A partial production cannot be hunted honestly, and a short hunt would report a clean set rather than an unread one.
- Accuse the other side of your own privilege hygiene.
- The two outbound privilege kinds are excluded from the deficiency catalog by name. They are ours, not theirs.
- Advise you to log your own filed brief.
- That advice was shipped and then removed. The candidate set includes the firm's own filed motions, served responses and hold notice, so following it would put a public filing onto the log served on opposing counsel.
- Call a page unread and a page unreadable the same thing.
- An unread page is deferred with a continuation row naming where to resume. A page that will not be read is truncated. One is a queue, the other is a limit.
One record
Nothing here stands on its own.
What feeds it
- The matter brain
- Every production and load file
- The privilege log
What it feeds
- Drafting and the citation gate
- Deadlines
- Trial exhibits
- Valuation
Limits
What this does not establish.
- A gap is what the received set does not contain between its own first and last number. It is not proof of withholding.
- A rate with no denominator is reported as unmeasurable, never as zero.
Check the work before you believe it.
Run a sample manifest in your own browser, or read where publication refuses for want of evidence.