Check reference
Find overlapping interface contract records
Two active interface requirements can govern the same callee surface and drift apart over time. This check finds a specific structural overlap worth reviewing.
What the check observes
The check groups active integration requirements by normalized interface.callee and interface.signature. Case and whitespace differences do not distinguish the groups. Two or more records in the same group produce a finding. Retired, superseded, and rejected records are excluded. The matching key is deliberately narrower than a semantic comparison of every guarantee or caller precondition.
Example: different callers recorded the same callee twice
Illustrative case. Two teams each wrote a contract for the same lookup function. Their caller lists differ, but the normalized callee and signature match. Read both contracts before choosing whether they are duplicate promises or genuinely distinct caller patterns.
INT-REQ-042: callee=directory, signature=Lookup(id)
INT-REQ-057: callee=Directory, signature= Lookup(id)
Compare:
caller assumptions
absence and error results
timeout and retry guaranteesResolve the finding
- Compare the reported contracts and their downstream traces, including any differing assumptions or guarantees.
- Where the records duplicate one contract, select a canonical requirement and merge the meaningful content through review.
- Supersede the duplicate while preserving lineage and updating affected links. Where the surfaces are genuinely distinct, correct their structured identities so the records describe that distinction accurately.
Run and interpret
proof audit --check interface_contract_duplicates --verboseThis is a specification-stage warning. Audit's default warning threshold can make it a failing command result, but the check itself neither edits contracts nor enforces repository merge rules.
A duplicate key does not prove that the prose is equivalent, and different keys do not prove the contracts are independent. Do not blindly supersede the newer ID or discard a stricter guarantee to reduce the count. Consolidation is a requirement change with its own authority and evidence implications.
Continue from here
Define an interface contract. Preserve supersession history.
Bring the overlapping interface records and one caller affected by their differences. Bring a change to Proof.