HydroRoll-Team / HydroRoll-Team/OneRoll
Implement typed merge, bind, occurrences, paint, split, and group options
- Dominant language
- Python
- Stars
- 3
- Forks
- 1
- Avg merge
- 3d 4h
- Merged PRs (30d)
- 2
Description
## Parent
- #7
## What to build
Implement typed collection transformations on RFC-0003 Values, RollSet references, immutable instruction history, and trace DAGs.
## Frozen contract
- `m(expr)` combines explicit compatible collections and produces a `merge` trace node; bare `m` is invalid.
- `b` reads compatible completed instruction values, records `source_instruction_ids`, and never mutates ProgramResult history.
- `o` / `o(N,S)` returns ordered nested `[value, count]` Values with occurrence provenance.
- `p[color:N,...]` changes RollSet-view annotations and emits paint assignments without mutating RollNodes.
- `y` flattens one Values level or spreads compound draws while keeping node IDs.
- `gN` creates consecutive width-N nested Values with a final short remainder.
## Acceptance criteria
- [ ] Every option matches RFC-0001 input/output and cardinality cases.
- [ ] Merge/bind preserve instruction IDs, trace inputs, and source-node identity.
- [ ] Occurrence order, selectors, paint normalization, split depth, and group remainder are deterministic.
- [ ] Empty RollSets retain `item_kind`; annotations do not alter scalar projection.
- [ ] Wrong-kind, zero, oversized, forward-bind, and incompatible requests return spanned RFC-0003 errors.
- [ ] Rust, installed Python, CLI JSON, and docs agree on schema-valid output.
## Blocked by
- #7
- #4
- #12
- #15
- #21
- #39
- #41
Contributor guide
No contributing guide indexed for this repository
Research direction
Read RFC-0001 and RFC-0003 first, then inspect the blocked issues #7, #4, #12, #15, #21, #39, and #41 for prerequisite behavior and schemas. Validate the implementation through the Rust, installed-Python, CLI JSON, and documentation paths; done means all listed options satisfy the frozen contract, deterministic cases, error handling, and schema agreement.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python, rust
- Domain
- cli, documentation, testing, tooling
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 30/100