HydroRoll-Team / HydroRoll-Team/OneRoll
Expose auditable traces for base, keep, and drop rolls
- Dominant language
- Python
- Stars
- 3
- Forks
- 1
- Avg merge
- 3d 4h
- Merged PRs (30d)
- 2
Description
## Parent
- #4
## What to build
Implement the normalized RFC-0003 RollNode pool and topological TraceNode graph for numeric/range/list sources plus base keep/drop selection.
## Frozen contract
- Every semantic draw is one immutable `rN` RollNode with atomic value, source descriptor, generation, optional parent, and cause trace.
- RollSet outputs reference nodes instead of copying them; selected and discarded nodes remain in the pool.
- Source and selection operations produce monotonic `tN` TraceNodes whose inputs always refer backward.
- Selection data records `selected_roll_ids` and `discarded_roll_ids`; final views preserve item order, multiplicity, annotations, and `item_kind`.
- Every serialized RollNode and TraceNode charges the shared RFC-0002 trace budget before insertion.
## Acceptance criteria
- [ ] Original numeric, range, and list draws have stable replay-deterministic identities.
- [ ] Kept and dropped nodes remain distinguishable without parsing display text.
- [ ] Instruction values equal their trace-root values and scalar projections.
- [ ] Rust and installed Python payloads validate against the RFC schema and graph invariants.
- [ ] Dangling, duplicate, cyclic, wrong-kind, and out-of-span graphs cannot be produced.
- [ ] Base trace charging respects exact limit boundaries and atomic failure.
## Blocked by
- #4
- #39
Contributor guide
No contributing guide indexed for this repository
Research direction
Start with the parent issue #4 and the blocked issue #39, then read the RFC-0003 RollNode and TraceNode contract together with the RFC-0002 trace-budget requirements. No files or test entry points are named; done means satisfying the listed schema, graph-invariant, replay, selection, scalar-projection, and exact-budget acceptance criteria in both Rust and installed Python payloads.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python, rust
- Domain
- testing-qa, tooling
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100