| name | assert |
| version | 1.0.0 |
| description | Assertion patterns reference — guard clauses, preconditions, invariants, and contract programming. Use when writing defensive code, validating inputs, or implementing design-by-contract. |
| author | BytesAgain |
| homepage | https://bytesagain.com |
| source | https://github.com/bytesagain/ai-skills |
| tags | ["assert","assertion","precondition","invariant","contract","defensive","testing"] |
| category | devtools |
Assert — Assertion Patterns Reference
Quick-reference skill for assertion techniques, design-by-contract, and defensive programming patterns.
When to Use
- Writing precondition checks for function inputs
- Implementing class invariants and postconditions
- Choosing between assertions and exceptions
- Applying design-by-contract methodology
- Understanding assertion behavior across languages
Commands
intro
scripts/script.sh intro
Overview of assertions — purpose, philosophy, and when to use them vs exceptions.
preconditions
scripts/script.sh preconditions
Precondition patterns: validating inputs, guard clauses, and fail-fast design.
postconditions
scripts/script.sh postconditions
Postcondition patterns: validating outputs and return value contracts.
invariants
scripts/script.sh invariants
Class and loop invariants — maintaining consistent state throughout execution.
languages
scripts/script.sh languages
Assertion syntax and behavior in Python, Java, C, JavaScript, Rust, Go.
contracts
scripts/script.sh contracts
Design-by-contract methodology — Bertrand Meyer's approach and modern implementations.
antipatterns
scripts/script.sh antipatterns
Common assertion mistakes: side effects, catching AssertionError, using in production flow.
strategies
scripts/script.sh strategies
Assertion strategies for different contexts: unit tests, production code, APIs, libraries.
help
scripts/script.sh help
version
scripts/script.sh version
Powered by BytesAgain | bytesagain.com | hello@bytesagain.com