Custos builds a model bake-off into the review grid

You can now re-run any cell of a document review on a different AI model and keep both answers side by side.

workflowanalytics

Custos's fork uses a spreadsheet-style grid to pull answers out of documents - one row per document, one column per question. The new work gives every cell its own version history. Each time the AI rewrites a cell, the previous answer is archived rather than discarded, along with the exact model and instructions that produced it.

A new history window lets you browse those archived answers and line up "before" and "after" in the same view. The headline addition: a toolbar to re-run a single cell on a different model - say, one vendor's model versus another's - without losing the earlier result. You can also re-run a hand-picked set of rows instead of rebuilding the whole review. In effect, it's a hands-on tool for judging which model gives the better answer, baked straight into the review screen.

So what Anyone choosing or defending which AI model does their document review now has a built-in way to compare them on real cells, not in the abstract.

View this fork on GitHub →

Spotted something wrong? Or know the PR text has fresher detail than the writeup above?

Commits in this thread

3 commits from Custos/legalos, oldest first. Source extracted verbatim from the harvested git log.

SHA Subject Author Date
ce6e9c27 Tabular: run on selected rows + version history with model & prompts Custos 2026-05-04 ↗ GitHub
commit body
- New tabular_cell_versions table archives prior cell state (content, model,
  system_prompt, column_prompt) on every overwrite.
- tabular_cells gains model/system_prompt/column_prompt/updated_at columns
  capturing what produced the current content.
- POST /tabular-review/:id/generate accepts optional document_ids; when
  provided, those rows force-rerun and prior values are archived.
- POST /tabular-review/:id/regenerate-cell archives prior content first.
- New GET /tabular-review/:id/cells/:cellId/versions returns history.
- Frontend: 'Run selected (N)' button appears in the header when rows are
  checked, posts document_ids to the streaming endpoint.
- .env.example: add XAI_API_KEY and R2_REGION.
c2471472 Tabular: cell history modal - view archived versions, models, prompts Custos 2026-05-04 ↗ GitHub
1f3d4cb9 Multi-model comparison from cell history modal Custos 2026-05-04 ↗ GitHub
commit body
- /regenerate-cell now accepts an optional model param that overrides the
  user's tabular_model for that one run; the new content is saved with
  that model id, prior content archived as usual.
- regenerateTabularCell(reviewId, docId, colIdx, model?) on the client.
- Cell history modal: a 'Run on ...' row of model pills in the header lets
  you re-run the same cell against any other supported model (Claude,
  Gemini, Grok). Each run appears as a new history entry, so you can
  click between versions to compare. The current model is disabled.

Capture this thread into my fork

Download a single Markdown prompt that tells Claude how to port every commit above into your working tree — adapting paths and structure to match your repo. Run it via claude -p < capture-thread-47.md from inside the repo you want the changes in.

⬇ Download capture-thread-47.md