Contract Redline Negotiator

Document Intelligence reads a contract and tells you what's in it. This one argues back. Paste the counterparty's clauses on the left and your negotiating playbook on the right. One structured-output call rates each clause against your positions and drafts three fallbacks for every problem term — the language you'd send if you had all the leverage, the language you'd actually settle on, and the line you don't cross. Plus what to trade for what, and the order to take them in.

// COUNTERPARTY CLAUSES 0 chars
// YOUR PLAYBOOK · one position per line 0 positions
paste clauses + 2 or more playbook positions, or pick an example
Architecture — what just happened
Browser
  └─→ POST /api/lab/chat
        - system: redline prompt + schema
                  (versioned: contract-redline.v1)
        - user: { clause_text, playbook_positions }
        - temperature: 0.15 (very low — drafted legal
                      language must be stable and literal)
        - max_tokens: 7600 (three drafted positions per
                      clause is the token-heavy part; 4096
                      truncated mid-object in testing)
        ← single response, parsed as JSON: {
            document_context, overall_risk,
            executive_summary, deal_breakers[],
            clauses[ { original_text, risk,
                       playbook_status, issue,
                       business_impact,
                       positions{ ideal, acceptable,
                                  walk_away },
                       negotiation_note } ],
            trade_analysis[], recommended_sequence[]
          }
        ← each clause renders as a card; the three
          positions are a 3-col grid, colour-coded by
          how much ground each one concedes

One call does four jobs that are usually four passes: segment the text into discrete clauses, classify each against the playbook (within / outside / not_covered), rate the residual risk, and draft replacement language at three levels of concession. The third of those is what makes it a negotiator rather than a reviewer — and not_covered is quietly the most useful status, because it surfaces the terms your playbook never anticipated.

Why this matters for a law firm or an in-house team

First-pass contract review is the most heavily leveraged work in legal services. An associate or a junior in-house lawyer reads the counterparty's paper, marks what deviates from standard positions, and drafts alternatives. It is high-volume, highly patterned and almost entirely playbook-driven — which is exactly the shape of work where structured generation earns its place.

The output here is deliberately not a single "correct" redline. Real negotiation is a ladder: you open at your ideal, you expect to land near the middle, and you need to know in advance where your floor is so you don't discover it live on a call. Producing all three at once turns a review into a negotiating brief.

The trade analysis is the part clients actually pay for. Knowing that clause 11 is bad is cheap; knowing that conceding on audit frequency is what buys you a liability cap is the judgement. The model is not reliably good at that yet — but it is good at proposing candidate trades a lawyer can accept or discard in seconds.

Honest caveat: this drafts language; it does not advise. It has no view of the commercial relationship, the governing law's treatment of the terms it is rewriting, or the fifty pages of the agreement you did not paste — and a limitation-of-liability clause cannot be assessed in isolation from the indemnities and the insurance schedule. Treat every output as a first draft for a qualified lawyer to accept, edit or reject. The value is removing the blank page, not removing the lawyer.

Telemetry — request, response, parsed structure

Run the demo to see telemetry.