Compare legal terms between a robot/drone survey operator's standard terms and a GC's proposed subcontract. Identifies conflicts, flags unenforceable clauses (anti-indemnity statutes), and highlights risk imbalances across 12 key dimensions. Use whenever the user uploads two contracts, asks to compare subcontract terms, mentions "AIA A401", "ConsensusDocs 750", "indemnification clause", "limitation of liability", "subcontract review", or needs to understand how two sets of terms differ. Also trigger on "compare contracts", "review subcontract", or "what are the risks in this agreement."
Compare two sets of construction contract terms side-by-side across 12 key dimensions. Flag conflicts, unenforceable clauses, and risk imbalances. This is NOT legal advice — it's a structured comparison to inform negotiation.
Accept any combination of:
If only one document is provided, compare it against the marketplace default terms (ConsensusDocs 751 baseline in references/marketplace-baseline-terms.md).
For each document, extract the specific clause language for:
Mark each as: FOUND (with exact clause text) or NOT FOUND (missing from document).
Read references/anti-indemnity-by-state.md for the project's state. Flag any clause that violates the state's anti-indemnity statute.
For Michigan public projects: MCL 691.991 prohibits broad-form indemnity (indemnifying for sole negligence of the indemnitee).
For each dimension, classify as:
Output:
{
"comparison_status": "COMPATIBLE | CONFLICTS_FOUND | REVIEW_REQUIRED",
"project_state": "MI",
"documents": {
"doc_a": "Operator standard terms",
"doc_b": "GC proposed subcontract"
},
"dimensions": [
{
"dimension": "Indemnification",
"doc_a": "Intermediate — each party indemnifies for own negligence",
"doc_b": "Broad — sub indemnifies for any claim arising from the work",
"status": "UNENFORCEABLE",
"detail": "Broad-form indemnity unenforceable on MI public projects per MCL 691.991",
"risk_level": "high",
"recommendation": "Negotiate to intermediate form (comparative fault)"
}
],
"summary": {
"matches": 5,
"conflicts": 4,
"missing": 2,
"unenforceable": 1,
"risk_imbalances": 3
},
"negotiation_points": [
"Indemnification: request intermediate form per MCL 691.991",
"LOL: cap at 1x task fee ($72,000) — current draft is uncapped",
"Data ownership: specify client owns upon payment (currently silent)"
],
"disclaimer": "This comparison is informational only. It is not legal advice. Consult an attorney before signing."
}
python scripts/validate_terms_comparison.py < report.json
references/marketplace-baseline-terms.md — The marketplace's default terms (ConsensusDocs 751 framework). Used as comparison baseline when only one document is provided.references/anti-indemnity-by-state.md — Anti-indemnity statutes for key states (MI, TX, CA, OH, FL). Which indemnity forms are void and unenforceable.references/clause-comparison-guide.md — For each of the 12 dimensions: what "good" looks like for operators, what "good" looks like for GCs, and what the balanced position is.Every output includes the disclaimer. The skill informs negotiation; it does not authorize signing.