HydroRoll-Team / HydroRoll-Team/OneRoll

Evaluate scoped validator expressions across filters and roll options

Open
#41 0 comments 0 reactions 0 assignees View on GitHub
area:engine area:language area:python blocked breaking-change priority:p1 type:feature workflow:afk
Dominant language
Python
Stars
3
Forks
1
Avg merge
3d 4h
Merged PRs (30d)
2

Description

## Parent

- #7

## What to build

Implement the pure typed Validator contract used by filter, count, reroll, explode, and conditional options.

## Frozen contract

- Missing scope means each; `*`, `.`, and `:` mean all, any, and scalar.
- Each scope returns an item mask; aggregate scopes are valid only for conditionals.
- Comparisons are longest-first and type checked; omitted comparison means equality.
- Ranges are inclusive; modulo rejects zero divisors; `min`/`max` require a finite source-backed RollSet.
- `&`, `^`, and `|` share one precedence level and associate left to right. AND/OR short-circuit; XOR evaluates both sides.

## Acceptance criteria

- [ ] RFC-0001 Validator case IDs pass in Rust and installed Python.
- [ ] Equality, ordering, ranges, modulo, source bounds, variables, and wrong-kind errors are covered.
- [ ] Filter, count, reroll, explode, and conditionals reuse one evaluator.
- [ ] Empty validators and invalid scopes return structured spanned errors before random evaluation.
- [ ] Work charging and deterministic short-circuit behavior are explicit.
- [ ] Canonical rendering is identical across Rust, Python, CLI, and docs.

## Blocked by

- #7
- #4
- #12
- #39

Contributor guide

No contributing guide indexed for this repository

Research direction

Start with the RFC-0001 Validator case IDs and the existing Rust and Python implementations used by filter, count, reroll, explode, and conditionals. Check blocked issues #7, #4, #12, and #39 before starting. Done means the listed acceptance criteria pass consistently across Rust, Python, CLI, and docs.

Written by the indexing model from the issue text.

Assessment

Tech stack
python, rust
Domain
cli, devtools, documentation, testing-qa
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.