HydroRoll-Team / HydroRoll-Team/OneRoll
Extend roll traces to explode, reroll, and count operations
- Dominant language
- Python
- Stars
- 3
- Forks
- 1
- Avg merge
- 3d 4h
- Merged PRs (30d)
- 2
Description
## Parent
- #4
## What to build
Extend the RFC-0003 graph primitives to generation chains and count provenance before strict-v2 reroll/explode syntax ships.
## Frozen contract
- A generated RollNode links to the value that caused or was replaced by the draw; its generation is parent generation plus one.
- `draw_index` remains monotonic for all accepted semantic draws from one source.
- Reroll and explode TraceNodes record `generated_roll_ids`; replaced or contributing ancestors remain reachable.
- Count returns Scalar while `related_roll_ids` and selection data retain every matching source node.
- No generation event mutates, overwrites, or deletes an existing RollNode.
## Acceptance criteria
- [ ] Reroll replacement, reroll-and-add contribution, and explosion chains preserve causal parents.
- [ ] Count results retain matching source identities after prior selection and generation.
- [ ] Combined current modifiers serialize as valid topological graphs in Rust and installed Python.
- [ ] Replay produces identical IDs, values, and trace order for one seed and request.
- [ ] Generated nodes and trace operations charge budgets before insertion.
- [ ] Exhaustion returns the atomic RFC-0003 error envelope with replay metadata and no graph prefix.
## Blocked by
- #21
Contributor guide
No contributing guide indexed for this repository
Research direction
Start with the RFC-0003 graph primitives and check blocked issue #21 before extending them to generation chains. Validate the frozen contract by exercising reroll, explode, count, replay, budget exhaustion, and combined modifiers in Rust and installed Python; done means causal graphs, identities, serialization, replay, budgets, and the atomic error envelope meet every acceptance criterion.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python, rust
- Domain
- tooling
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 38/100