HydroRoll-Team / HydroRoll-Team/OneRoll
Introduce typed values, inclusive ranges, and immutable variables
- Dominant language
- Python
- Stars
- 3
- Forks
- 1
- Avg merge
- 3d 4h
- Merged PRs (30d)
- 2
Description
## Parent
- #7
## What to build
Add the RFC-0001 runtime kinds and the RFC-0003 schema `2.0` serialization foundation for instructions and values.
## Frozen contract
- `Value` is a closed Scalar, Text, Boolean, Values, or RollSet union.
- RollSet items are `{node_id, annotations}` references and always retain `item_kind: scalar | text`, including when empty.
- Source Values literals are flat; occurrences, grouping, and repeat may produce bounded nested Values.
- `InstructionResult` contains `id`, frame-local `index`, byte `span`, canonical text, `value`, nullable `scalar`, `trace_root`, and nested `executions`.
- Scalar projection is identity for Scalar, a checked sum for flat scalar Values and Scalar RollSets, zero for empty scalar collections, and null for all other kinds.
- `${name}` and `${0}` resolve from immutable environments and preserve typed values.
## Acceptance criteria
- [ ] Rust types serialize exactly to the RFC-0003 schema and installed Python exposes the same decoded fields.
- [ ] Inclusive ranges, Boolean literals, nested Values, quoted strings, and empty typed collections have boundary cases.
- [ ] Variables return spanned unknown/wrong-kind errors without implicit coercion.
- [ ] Scalar arithmetic and projection use checked i64 operations.
- [ ] Instruction IDs are request-local, monotonic, and replay deterministic.
- [ ] Conformance covers every kind, projection, and invalid cross-kind operation.
## Blocked by
- #7
- #4
- #12
- #17
Contributor guide
No contributing guide indexed for this repository
Research direction
Start by reading RFC-0001 and RFC-0003, then review blocking issues #7, #4, #12, and #17. Map the required Rust serialization types to the installed Python decoded fields and use the acceptance criteria to define conformance for every value kind, projection, boundary case, error, arithmetic operation, and deterministic instruction ID.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python, rust
- Domain
- backend
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Quiet
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100