Recipe catalog / clause-conflict
Detect conflicting clauses
Do firstClause and secondClause impose requirements that cannot both be satisfied?
You need a yes/no check that two clauses from a contract, policy set, or amendment can both be honored before flagging them for review.
Explore this recipe interactively ยท Source and implementation guide
Use clause-conflict in TypeScript
Install with npm install jev-recipes. Requires Node.js 22.9 or newer and ES modules. Set TYPESAFE_API_KEY in your server environment for live calls, which send input to TypeSafe and use API quota. See the installation guide.
import { clauseConflict } from 'jev-recipes/clause-conflict';
const result = await clauseConflict({
"firstClause": "The Customer shall pay each undisputed invoice within thirty (30) days of the invoice date.",
"secondClause": "All invoices are payable in full within fourteen (14) days of the invoice date, and no invoice may be disputed after payment is due.",
"minConfidence": 0.8
});
console.log(result);
Input contract
| Field | Type | Needed |
|---|---|---|
| firstClause | string | Required |
| secondClause | string | Required |
| minConfidence | number | Optional |
Full input and result schemas
{
"input": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"firstClause": {
"type": "string"
},
"secondClause": {
"type": "string"
},
"minConfidence": {
"type": "number",
"minimum": 0,
"maximum": 1
}
},
"required": [
"firstClause",
"secondClause"
]
},
"result": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"model": {
"type": "string"
},
"usage": {
"type": "object",
"properties": {
"input_tokens": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"output_tokens": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
}
},
"required": [
"input_tokens",
"output_tokens"
],
"additionalProperties": false
},
"status": {
"type": "string",
"enum": [
"ready",
"review"
]
},
"probability": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"confidence": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"verdict": {
"type": "string",
"enum": [
"conflict",
"compatible"
]
}
},
"required": [
"model",
"usage",
"status",
"probability",
"confidence",
"verdict"
],
"additionalProperties": false
}
}Saved example result
This hand-authored response demonstrates the contract. It is not a model accuracy measurement. Run it without an API key: npx jev-recipes demo clause-conflict.
{
"model": "demo-fixture",
"usage": {
"input_tokens": 0,
"output_tokens": 0
},
"status": "ready",
"probability": 0.89,
"confidence": 0.89,
"verdict": "conflict"
}
Evaluation evidence
No verified live accuracy measurement is available. Evaluate representative cases before using this decision in your workflow.
Use the evaluation guide to measure this decision on your own labeled cases.
Limitations
- Judges whether both clauses can be satisfied as written. It is not legal advice and does not decide which clause prevails, whether a precedence rule applies, or how a court would read them.
- Compares two clauses in isolation. Definitions or exceptions elsewhere in the document are unknown unless included in the clause text.
Related recipes
- instruction-conflict: Use instruction-conflict to compare two operational instructions rather than contract or policy clauses, with a separate different-scope outcome.
- evidence-conflict: Use evidence-conflict to check whether two factual statements contradict each other rather than whether two requirements can both be met.