HydroRoll-Team / HydroRoll-Team/OneRoll

Implement v2 keep, filter, sort, count, and unique option semantics

Open
#15 0 comments 0 reactions 0 assignees View on GitHub
area:engine area:language 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 accepted non-random selection/query pipeline on the shared typed Value and RFC-0003 trace graph.

## Frozen contract

- `kN` / `klN`: stable keep-high / keep-low.
- `dN` / `dlN`: stable drop-high / drop-low.
- `fV`: retain items matching an each-scope Validator.
- `s` / `sl`: stable descending / ascending sort.
- `cV`: return Scalar count while retaining matching source-node provenance.
- Postfix `u`: retain first occurrences without refill.
- Counts are positive and bounded; wrong kinds and oversized keep/drop requests fail before evaluation.

## Acceptance criteria

- [ ] Every option matches RFC-0001 case IDs and RFC-0003 Value/Trace shapes.
- [ ] Filter and count use the shared Validator evaluator.
- [ ] Zero, oversized, wrong-kind, and incompatible parameters return spanned validation errors.
- [ ] Options execute left to right; selected and discarded RollNodes remain reachable.
- [ ] V1 `kh`, `kl`, `dh`, `dl`, and ascending `s` have executable migration cases.
- [ ] Rust, installed Python, CLI, and documentation agree for representative compositions.

## Blocked by

- #7
- #21
- #39
- #41

Contributor guide

No contributing guide indexed for this repository

Research direction

Start by reading RFC-0001 and RFC-0003, then inspect the work and dependencies in issues #7, #21, #39, and #41. Use the frozen contract and acceptance criteria as the completion checklist, including representative Rust, installed Python, CLI, and documentation compositions.

Written by the indexing model from the issue text.

Assessment

Tech stack
python, rust
Domain
cli, compilers
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.