stochastic-rs

Contributing

How to contribute to stochastic-rs — coding conventions, the SKILL system that automates per-feature recipes, and the per-PR docs/tests/bench rule.

Contributing

Contributions welcome. Every PR that adds a public type ships with three things, in this order:

  1. The implementation, with a paper citation in the source file.
  2. A comparison test against the cited paper's numerical example.
  3. A criterion bench under benches/.

For documentation:

  1. A docs page under website/content/docs/<section>.mdx (or website/content/docs/<section>/<name>.mdx if the section already has multiple pages), following one of the eight templates in the docs-writing SKILL.
  2. A Python wrapper if the type is user-facing (per the python-bindings SKILL).

SKILLs — the per-feature recipes

The .claude/skills/ directory contains step-by-step recipes for each extension axis. Read the relevant SKILL before opening a PR. Each SKILL captures load-bearing project conventions plus the file-by-file order of operations.

SKILLUse when
dev-rulesProject-wide development conventions
new-moduleCreating any new top-level module
add-diffusion-processNew SDE process (GBM / OU / CIR style)
add-jump-processJump-diffusion / Lévy / compound-Poisson
add-fractional-processHurst-parameterised / rough process
add-gpu-samplerPort a CPU sampler to CUDA / Metal
adding-distributionNew univariate distribution
copula-bivariateNew bivariate copula
stats-estimatorNew statistical estimator
calibration-patternNew calibrator
greeks-patternExpose first- + second-order Greeks
add-mc-variance-reductionNew MC variance-reduction technique
vol-surrogate-nnNew NN volatility surrogate
bench-writingWriting or refactoring criterion benches
integration-test-writingWriting integration tests
feature-flag-managementAdding / propagating Cargo features
python-bindingsPython (PyO3) wrapping
adding-python-bindingQuickstart Python wrap
docs-writingPer-page docs templates + KaTeX gotchas
release-checklistCutting an rc / stable / patch release

License

Dual-licensed under MIT or Apache-2.0 at your option. By contributing you agree your code can be distributed under both.

On this page