Legal & contracts¶
Solution
Contracts change. Clauses get amended, obligations get renegotiated, and by the time a dispute lands on someone's desk, three versions of the agreement are floating around and nobody is quite sure which one governed which date. Search retrieves text; Telha resolves state, so "which version of this clause was in force on this date" has one answer, with the exact text behind it.
The state questions legal needs to answer¶
- Which version of clause 7.3 was in force on the date the incident occurred?
- What obligations were active under this contract as of a given date, before the amendment that changed them?
- When did this counterparty's termination right first appear, and in which amendment?
- What did the contract say before the current, superseded version, and can we still prove it said that?
- Which effective dates on this agreement are still unconfirmed or ambiguous, and who needs to confirm them?
- What is the full amendment history of this obligation, in the order it actually changed, not the order the documents were filed?
Why generic RAG breaks here
A vector index returns the paragraph most similar to your question. If three versions of clause 7.3 exist, it may well return the superseded one, with no signal that it's superseded, and no way to ask for the version that was in force on a specific date. Contract review is a temporal question wearing a legal costume; Telha treats it as one.
What to connect¶
| Source | Ingestion path | Shipped connector | Notes |
|---|---|---|---|
| Executed contracts and amendments (PDF) | pdf (docling worker) | SharePoint/OneDrive | Each new upload is a new source version; old spans stay citable. |
Word-drafted agreements (.docx) | docx (docling worker) | SharePoint/OneDrive | Same provenance model as PDF; redlines ingest as their own version. |
| Contract repository / DMS folders | pdf/docx (docling worker) | SharePoint/OneDrive | Point the connector's site allowlist at the DMS library. |
| Negotiation and countersignature correspondence | email (email worker) | Exchange | Signature-date disputes resolve against the actual message thread. |
Other DMS platforms
Only SharePoint/OneDrive has a shipped connector. A contract system that exports to PDF/DOCX or a filesystem SharePoint can reach can still be ingested through the same pdf/docx path via /v1/ingest; there is no shipped connector for other document-management systems today.
Example queries¶
{
"find": "CLAUSE",
"where": {
"contractId": { "$eq": "msa-acme-2024" },
"clauseType": { "$eq": "termination" }
}
}
{
"find": "CLAUSE",
"where": {
"contractId": { "$eq": "msa-acme-2024" },
"clauseNumber": { "$eq": "7.3" }
},
"atValidTime": "2025-11-02T00:00:00Z"
}
{
"find": "CLAUSE",
"where": { "contractId": { "$eq": "msa-acme-2024" }, "clauseNumber": { "$eq": "7.3" } },
"atValidTime": "2025-11-02T00:00:00Z",
"atTxTime": "2025-12-01T00:00:00Z"
}
{
"find": "OBLIGATION",
"where": { "contractId": { "$eq": "msa-acme-2024" }, "status": { "$eq": "active" } },
"expand": [{ "type": "OWNED_BY", "direction": "out", "depth": 1 }],
"limit": 200
}
A verified answer in practice¶
Q: Which version of the termination clause governed the Acme MSA on November 2, 2025, and what did it require?
{
"question": "Which version of the termination clause governed the Acme MSA on November 2, 2025, and what did it require?",
"query": {
"find": "CLAUSE",
"where": { "contractId": { "$eq": "msa-acme-2024" }, "clauseNumber": { "$eq": "7.3" } },
"atValidTime": "2025-11-02T00:00:00Z"
},
"semanticModel": "text-embedding-3-small",
"expandDepth": 1
}
Telha: On November 2, 2025, clause 7.3 of the Acme MSA required 60 days' written notice for termination without cause [S1]. This was the version introduced by Amendment 2, effective September 1, 2025, which shortened the notice period from the original 90 days [S2].
[S1]
MSA-Acme-Amendment-2.pdf, clause 7.3 [S2]MSA-Acme-Original.pdf, clause 7.3 (superseded, still queryable at its original transaction time)
Each claim, the notice period, the effective date, the fact that it changed from 90 to 60 days, is checked against its own cited span before the answer is returned; a wrong day count would fail verification even in an otherwise fluent sentence. See Verified answers.
When a date can't be pinned
If Amendment 2's effective date were ambiguous (a signature page dated one day, a countersignature dated another), Telha would apply a best guess at reduced confidence and open a clarification routed to the document's author or owner, rather than silently picking a date. Any answer depending on that clause carries a caveat until it resolves.
Evidence and permissions¶
- Provenance to the exact clause text. Citations resolve to the byte span of the clause as extracted from the specific contract version, not "this document" in general. See Provenance to the span.
- Supersession without loss. A new amendment ingests as a new source version; the prior version's spans keep resolving to the same text they always did, so a superseded clause remains exactly as citable as the day it was created. See the tritemporal model.
- Deny-by-default RBAC. Contract access follows your identity provider's groups; legal holds and matter-based restrictions map onto Telha roles with nothing visible by default. See Tenancy & security.
- Field-level encryption. Sensitive commercial terms (pricing, penalty figures, named individuals under NDA) can be declared classified fields and are encrypted in the app layer before core ever sees them.