Lifecycle: extract & display structured contract facts

↗ view on GitHub · Custos · 2026-05-04 · b4c38597

- New contract_facts table tracks effective_date, term_months, total_value
  (in minor units), currency, auto_renew, notice_days, governing_law per
  document version. Re-uploads/renewals add new rows so changes can be
  charted later.
- New lib/contractFacts.ts: maybeExtractContractFacts() runs an LLM call
  on uploaded text and inserts a row keyed to the doc's current version.
  Fires fire-and-forget alongside counterparty extraction; never blocks.
- GET /projects/:id/facts returns rows sorted newest-first.
- New KeyTermsPanel on the project documents tab (collapsible, default
  open) renders the rows as a compact table with formatted money/term/dates.
Repository Custos/legalos
Author Custos <jfeinblum@gmail.com>
Authored
Parents 1f3d4cb9
Stats 6 files changed , +433
Part of Lifecycle - structured contract facts and version deltas

Capture this commit into my fork

Download a Markdown prompt that tells Claude how to port this exact commit into your working tree. Run it via claude -p < capture-commit-b4c38597.md from inside the repo you want the change in.

⬇ Download capture-commit-b4c38597.md