aoa-property-invariants
Test broad system behaviors through invariant-oriented properties instead of fixed examples.
aoa-property-invariants
Intent
Use invariant-oriented thinking to test broad behavior through properties rather than only through a short list of fixed examples.
Trigger boundary
Use this skill when:
- a rule should hold across many inputs or states
- examples alone feel too narrow
- the system has conservation, monotonicity, idempotency, or structural invariants
- safety or correctness depends on broad input coverage
Do not use this skill when:
- the behavior is mostly about presentation details or narrow snapshots
- the main problem is checking whether existing checks really cover the invariant; use
aoa-invariant-coverage-auditfirst - the main problem is a boundary contract rather than a stable invariant; use
aoa-contract-test - no meaningful invariant is yet understood
Inputs
- target rule or domain truth
- current examples or tests
- input space or generators
- known edge cases
Outputs
- explicit invariants
- property-oriented tests or checks
- notes on generator assumptions
- verification summary
Procedure
- identify what must remain true across many cases
- separate strong invariants from weak hopes or vague expectations
- express those invariants as property-oriented tests or repeated checks
- keep the generators or inputs bounded and reviewable
- run the checks and report what properties now constrain behavior
Contracts
- each property should express a real invariant, not a wish
- the test should broaden coverage beyond a small handpicked set
- generator assumptions should remain understandable
Risks and anti-patterns
- writing weak properties that prove almost nothing
- confusing random data with meaningful coverage
- letting overly broad generators or harness complexity hide the protected domain truth
- using polished invariant language while the actual stable truth remains underspecified
- using property checks where a small set of concrete examples would be clearer
- using invariant language to avoid naming the actual rule or boundary that matters
Verification
- confirm the property expresses a meaningful invariant
- confirm the invariant broadens coverage beyond fixed examples
- confirm the report names which stable truth was violated or protected, not only that generated inputs failed
- confirm the result is understandable to another human or agent
Technique traceability
Manifest-backed techniques:
- AOA-T-0017 from
8Dionysus/aoa-techniquesat5c6f0496edc3c2e74590baa35627c85fe58ef765using pathtechniques/evaluation/property-invariants/TECHNIQUE.mdand sections: Intent, When to use, Inputs, Outputs, Core procedure, Contracts, Risks, Validation - AOA-T-0007 from
8Dionysus/aoa-techniquesat5c6f0496edc3c2e74590baa35627c85fe58ef765using pathtechniques/evaluation/signal-first-gate-promotion/TECHNIQUE.mdand sections: summary, Validation
Adaptation points
Project overlays should add:
- local generator tools
- domain-specific invariants
- rules for when property-based checks are mandatory, optional, or out of scope