HydroRoll-Team / HydroRoll-Team/OneRoll
Implement bounded seeded Monte Carlo statistics
- Dominant language
- Python
- Stars
- 3
- Forks
- 1
- Avg merge
- 3d 4h
- Merged PRs (30d)
- 2
Description
## Parent
- #3
## What to build
Replace the Python sampling loop with a bounded seeded engine operation that returns a stable statistical summary suitable for SDK, CLI, and later TUI consumers.
## RFC-0006 contract
- Implement `Engine.sample`; do not add an exact-mode flag or result union.
- Execute complete Programs through `Engine.run_batch`.
- Use `oneroll-chacha12-v1` and `oneroll-sha256-batch-v1`; preserve sample-index order.
- Return an atomic `SampleResult` with canonical AnalysisValue histogram keys.
- Provide count, min, max, mean, unbiased sample variance, standard error, nearest-rank quantiles at 5/25/50/75/95%, and Wilson 95% histogram intervals.
- Preserve one shared budget, deadline, and cancellation token. Never return partial samples.
- Optional typed child ProgramResults are charged to output limits.
## Acceptance criteria
- [ ] Results match `docs/rfcs/0006-analysis-contract.json`.
- [ ] The same seed and configuration reproduce byte-equivalent normative summaries.
- [ ] Sampling observes shared workload/output budgets, deadline, and cancellation.
- [ ] Scalar summaries are null for multi-instruction or non-scalar outcomes.
- [ ] Rust and installed-Python conformance cases cover success and stable failures.
- [ ] Rust and Python benchmarks cover representative dice expressions.
## Blocked by
- #3 — Draft contract delivered; final review remains.
- #22
- #18
Contributor guide
No contributing guide indexed for this repository
Research direction
Read docs/rfcs/0006-analysis-contract.json first, then inspect Engine.sample and Engine.run_batch to understand the existing execution path. Review the Rust and installed-Python conformance cases and benchmarks mentioned in the acceptance criteria. Done means contract-matching, reproducible summaries with shared limits and cancellation, stable failures, and coverage in both language suites.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python, rust
- Domain
- api, backend, cli
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 32/100