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 guarantees

Resolve the finding

  1. Compare the reported contracts and their downstream traces, including any differing assumptions or guarantees.
  2. Where the records duplicate one contract, select a canonical requirement and merge the meaningful content through review.
  3. 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 --verbose

This 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.