Install
$ agentstack add skill-8dionysus-aoa-skills-aoa-property-invariants ✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.
Verified badge
Passed review? Show it. Paste this badge into your README, it links to the public security report.
Reliability & compatibility
Declared compatibility
Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.
We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.
How agent discovery & health will work →About
aoa-property-invariants
Intent
Use invariant-oriented thinking to test broad behavior and stable artifact relationships 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
- a stable relationship should hold across artifacts, transformations, generated/export outputs, workflow phases, route choices, or provenance chains
- correctness depends on repeatability, round-trip behavior, source-ref preservation, lifecycle ordering, uniqueness, freshness bounds, or authorization limits
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
- the proposed property would only restate one example with random inputs around it
- the input generator or artifact family cannot be bounded enough for review
Inputs
- target rule or domain truth
- current examples or tests
- input space or generators
- known edge cases
- artifact families, transformations, lifecycle states, or generated/export surfaces when the invariant is not simple data behavior
- invalid cases, exclusion rules, and claim limits for the property
Outputs
- explicit invariants
- property-oriented tests or checks
- notes on generator assumptions
- verification summary
- notes on what the property proves and what remains outside its claim
Procedure
- identify what must remain true across many cases
- separate strong invariants from weak hopes or vague expectations
- when the invariant is not a simple input/output behavior rule, choose the smallest useful shape from
references/invariant-shapes.md - define the valid input space, artifact family, lifecycle range, or transformation surface, including exclusions
- express those invariants as property-oriented tests or repeated checks
- keep the generators or inputs bounded and reviewable
- keep a few concrete examples when they explain failures better than generated data alone
- run the checks and report what properties now constrain behavior and what they do not prove
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
- failures should point back to the protected rule rather than only to generated data
- generated/export, workflow, provenance, lifecycle, and structural invariants should stay tied to the source truth they protect
- a property should name its claim limit so broad input coverage does not pretend to prove total quality
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
- turning every stable example into a property when the variation space is not meaningful
- treating generated data volume as evidence when the generator misses the important states
- letting project-specific artifact names dominate the portable invariant shape
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
- confirm the input generator or artifact set is bounded and reviewable
- confirm the claim limit is visible when the property does not cover all states, artifacts, or consumers
Technique traceability
Manifest-backed techniques:
- AOA-T-0017 from
8Dionysus/aoa-techniquesat3b1d5d623569aa4920b87280d0db0e911d2e29d5using pathtechniques/proof/skill-support/property-invariants/TECHNIQUE.mdand sections: Intent, When to use, Inputs, Outputs, Core procedure, Contracts, Risks, Validation - AOA-T-0007 from
8Dionysus/aoa-techniquesat3b1d5d623569aa4920b87280d0db0e911d2e29d5using pathtechniques/proof/evaluation-chain/signal-first-gate-promotion/TECHNIQUE.mdand sections: summary, Validation
Adaptation points
Project overlays should add:
- local generator tools
- domain-specific invariants
- local artifact, generated/export, lifecycle, workflow, or provenance invariant examples from
references/invariant-shapes.md - rules for when property-based checks are mandatory, optional, or out of scope
Source & license
This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.
- Author: 8Dionysus
- Source: 8Dionysus/aoa-skills
- License: Apache-2.0
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet, be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.