| name | add-propagator-chirho |
| description | Add a new propagator type to propagators-chirho |
| disable-model-invocation | true |
| allowed-tools | Bash, Read, Edit, Write, Grep, Glob |
| argument-hint | ["propagator description","e.g.","modulo propagator for a % b = c"] |
Add a new propagator to propagators-chirho: $ARGUMENTS
Instructions
- Analyze the requested propagator type and its bidirectional semantics
- Determine if it fits existing macros:
ternary_propagator_chirho! - for a op b = c patterns
binary_propagator_chirho! - for unary a = b patterns
comparison_propagator_chirho! - for max/min style patterns
- Add the propagator to
src/propagator_chirho.rs following existing patterns
- Add corresponding method to
ConstraintSystemChirho in src/constraint_system_chirho.rs
- If arena feature is used, add to
src/arena_chirho.rs as well
- Add unit tests for the new propagator
- Update CHANGELOG.md with the new propagator under [Unreleased]
- Run tests to verify:
cargo test
Naming Convention
- Struct:
{Name}Chirho (e.g., ModuloChirho)
- Install method:
install_chirho
- ConstraintSystem method:
add_{name}_chirho (e.g., add_modulo_chirho)
- All fields/variables use
_chirho suffix per project convention