How it works

Checking a contract.

Large Language ModelGPT, Claude, Gemini, Llama, DeepSeek, …
robuster.aiThe reasoning layer
session · contract review · as of April 30ready

Here is the contract.

Software development agreement · signed January 1

14 sections · 59 clauses · showing 9

§1–3 Definitions, scope of work, project team · 14 clauses

§4 Fees and payment

  1. 4.1Client pays a deposit of $50,000 within 5 days of signing.
  2. 4.2Client pays the balance of $50,000 on April 30, unless §11.2 applies.
  3. 4.3An invoice does not by itself create an obligation to pay.

§5 Intellectual property · 6 clauses

§6 Delivery

  1. 6.1Developer delivers the software by March 1.

+ 1 more clause

§7 Acceptance

  1. 7.3Client may reject the software for cause by April 1. Otherwise it is accepted.
  2. 7.4If the software is rejected, developer must cure the defects by April 15.
  3. 7.5A fix the client rejects for cause within 3 days of its delivery is not a cure.

+ 2 more clauses

§8–10 Warranties, confidentiality, change requests · 12 clauses

§11 Remedies

  1. 11.1Developer is in breach if it misses §6.1 or §7.4.
  2. 11.2On developer's breach, client is refunded all fees paid and owes nothing more.

+ 2 more clauses

§12–14 Notices, term and termination, general · 13 clauses

Stored. 59 clauses as 64 rules, in force from January 1. Each rule keeps its section number.

§4.1 deposit by Jan 6 §6.1 deliver by Mar 1 §7.3 reject by Apr 1 §7.4 cure by Apr 15 §4.2 balance Apr 30 + 59 more

Here's an amendment.

Amendment 1 · signed March 28

3 changes · showing 1

  1. A1.1In §7.3, "April 1" is replaced by "April 8".

A1.2–A1.3 Client's project lead and notice address · 2 changes

Applied 3 changes from March 28 on. Anything earlier still falls under the original terms.

§7.3 reject by Apr 1 Apr 8 §3.2 project lead updated §12.1 notice address updated

Here's what happened.

Project record · January 2 to April 29

27 entries from email, tickets, and the bank · showing 13

Jan 2
Kickoff meeting held.
Jan 4
Client paid $50,000.
Jan 19
Developer sent status report 1.
Feb 10
Client asked for an extra reporting screen.
Feb 12
Developer declined the request as out of scope.
Feb 27
Developer delivered version 1.0.
Mar 3
Client named a new project lead.
Apr 6
Client rejected version 1.0 for cause, listing 14 defects.
Apr 9
Both sides met to review the defects.
Apr 14
Developer delivered version 1.1.
Apr 16
Client rejected version 1.1 for cause. 3 defects remain.
Apr 22
Developer invoiced the $50,000 balance.
Apr 29
Client's finance team asked about the invoice.
…
14 more entries

All 27 entries placed on the timeline, each checked against the terms in force on its date. No conflicts.

  1. Jan 1Contract signed
  2. Jan 2Kickoff meeting
  3. Jan 4Client paid $50,000
  4. Jan 6Deposit due§4.1
  5. Jan 19Status report 1
  6. Feb 10Client asked for a reporting screen
  7. Feb 12Developer declined it
  8. Feb 27Developer delivered v1.0
  9. Mar 1Delivery due§6.1
  10. Mar 3New client project lead
  11. Mar 28Amendment 1 signed
  12. Apr 1Rejection deadline§7.3, replaced
  13. Apr 6Client rejected v1.0
  14. Apr 8Rejection deadline§7.3 as amended by A1.1
  15. Apr 9Defect review meeting
  16. Apr 14Developer delivered v1.1
  17. Apr 15Cure deadline§7.4
  18. Apr 16Client rejected v1.1
  19. Apr 17Fix rejection window closes§7.5
  20. Apr 22Developer invoiced $50,000
  21. Apr 29Client asked about the invoice
  22. Apr 30Balance due§4.2

+ 14 more entries not shown

eventdeadline

Describe party obligations as of April 30.

The developer owes the client $50,000. The client owes the developer nothing.

by §11.2

Prove it.

robuster.ai · proof

7 facts from the record · 7 rules · 8 steps

Given

E1Client paid $50,000 on Jan 4.record · Jan 4
E2Developer delivered version 1.0 on Feb 27.record · Feb 27
E3Amendment 1 was signed on Mar 28.amendment 1
E4Client rejected version 1.0 for cause on Apr 6.record · Apr 6
E5Developer delivered version 1.1 on Apr 14.record · Apr 14
E6Client rejected version 1.1 for cause on Apr 16.record · Apr 16
E7No other delivery is recorded from Apr 14 to Apr 15.record · complete for the period

Derived

T1A1.1 applied to E3From Mar 28, the §7.3 rejection deadline is Apr 8.
T2§7.3 applied to E2, E4, T1 · Apr 6 ≤ Apr 8Version 1.0 was rejected on time, so it was not accepted.
T3§7.4 applied to T2Developer must cure the defects by Apr 15.
T4§7.5 applied to E5, E6 · Apr 16 ≤ Apr 14 + 3 daysVersion 1.1 is not a cure.
T5§7.4 applied to T3, T4, E7The defects were not cured by Apr 15.
T6§11.1 applied to T5Developer is in breach.
T7§11.2 applied to T6, E1Client is refunded the $50,000 it paid and owes nothing more.
T8§4.2 applied to T7 · exception: §11.2 appliesThe $50,000 balance is not due on Apr 30.
from T7, T8 Developer owes client $50,000. Client owes developer $0.

Not needed: the other 22 entries in the record. The Apr 22 invoice changes nothing, by §4.3.

same facts, same rules, same proof, every run

(LLM response to user)

The developer owes the client a $50,000 refund, and the April 22 invoice isn't payable.

Proof by robuster.ai

Miss the amendment, get it backwards.

Under the original §7.3, the April 6 rejection is late, the software counts as accepted, and the client owes $50,000. robuster.ai applied A1.1 from the date it was signed, and step T1 says so.

Only what bears on the answer.

Of 27 entries and 64 rules, the proof uses 7 facts and 7 rules. The invoice, the meetings, and the change request are all on the timeline, and none of them changes the outcome.

Every step can be checked.

Each line applies one cited rule to facts or earlier steps. A lawyer can dispute T4 without rereading the whole contract.

The explanation matches the logic.

The LLM's summary is written from the proof, not after the fact. It cannot cite a clause the proof didn't use.

Your documents, your rules

Try it on a problem of yours.

Contracts, care protocols, tax rules, policies. If the answer has to be right and you have to show why, we'd like to hear about it.