Verify that interface and class contracts (preconditions, postconditions, invariants) are preserved across program versions. Use when validating refactorings, checking API compatibility, verifying design-by-contract implementations, or ensuring behavioral contracts remain intact after code changes. Automatically detects contract violations, identifies affected methods and classes, and provides actionable guidance for resolving violations while maintaining program correctness.
90
86%
Does it follow best practices?
Impact
95%
2.02xAverage score across 3 eval scenarios
Passed
No known issues
Verify that formal or structured contracts (preconditions, postconditions, invariants) defined in interfaces and classes are preserved when updating to a new program version.
Extract contracts from both versions:
python scripts/contract_extractor.py --program old_version --output old_contracts.json
python scripts/contract_extractor.py --program new_version --output new_contracts.jsonCompare and verify contract preservation:
python scripts/contract_verifier.py --old old_contracts.json --new new_contracts.json --output report.jsonExamine violations: weakened preconditions, strengthened postconditions, broken invariants.
Requirements before method execution:
def withdraw(amount):
"""Precondition: amount > 0 and amount <= balance"""Guarantees after method execution:
def deposit(amount):
"""Postcondition: balance == old(balance) + amount"""Properties always true for a class:
class BankAccount:
"""Invariant: balance >= 0"""Liskov Substitution Principle:
New version rejects previously valid inputs.
New version guarantees less.
Class invariant no longer holds.
Relax precondition or update callers.
Strengthen implementation to meet original guarantee.
Add checks to maintain invariant in all methods.
0f00a4f
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.