Developer home
This page routes Limen contribution work to the matching maintenance path before code, docs, or release metadata changes.
For cross-product Vaquum process and organization-wide norms, see the external Vaquum Developer Docs. Limen release and versioning contracts live in this repository.
Prerequisites
- a Limen repository checkout
- the task's authoritative issue and repository workflow instructions
Read this first
Before opening or updating a Limen PR:
- read the relevant Limen page for the task
- check the repo PR template and satisfy every applicable item
- update docs, changelog, tests, and version metadata when the change requires it
Route by task
| Task | Read this next | Why |
|---|---|---|
| changing docs structure, navigation, or page roles | Documentation System Contract | Defines the docs architecture, page types, site model, and rewrite rules. |
| updating reducer behavior | Pruning Strategies | Defines reducer semantics, YAML shape, testing, and failure modes. |
| updating or adding public functions, classes, or modules | Writing Docstrings | Defines Limen's docstring expectations and the repo's current house style. |
| adding a new foundational experiment template | Contributing Foundational SFDs | Covers research expectations, file ownership, and review criteria for foundational SFDs. |
| preparing a release or checking release automation | Making a Release | Defines the local evidence required before Limen release publication. |
| changing release or publish-path controls | Release Policy | Defines the publish-path gates, model authority boundary, release deliverables, and version-reuse rules. |
| changing package metadata, artifacts, extras, or packaging gates | Packaging | Defines the wheel/sdist, dependency, reproducibility, and provenance contract. |
| deciding how to bump the version | Semantic Versioning | Defines the Limen-local version surfaces and bump rules. |
| assessing recorded known risk | Technical Debt | Tracks accepted debt, trigger conditions, and candidate remedies. |
Contributor workflow
- Start with data: confirm whether the task uses bundled YAML templates, direct
HistoricalData, or an external OHLC-compatible source. - Confirm the signal layer: read the relevant Indicators, Features, Transforms, and Scalers pages before changing prep.
- Confirm prep semantics: preserve split-first preparation, CCO behavior, strict-mode null handling, and train-fitted transformations.
- Confirm the target: read Targets and make sure fitting happens only on the training split when the target learns thresholds.
- Confirm hyperparameters: route search-space changes through the manifest/YAML params surface unless the task is Python-extension-only.
- Train through the current run surface: prefer YAML plus CLI for operator-facing work, and direct UEL only for Python extension or test work.
- Benchmark outcomes with Log, Benchmark, and Backtest before claiming the change improves research behavior.
- Make code, docs, tests, changelog, and version changes together when they belong together.
- Review the full GitHub diff before requesting review.
- Confirm the PR template items are true, not just checked.
Canonical bootstrap:
python3 -m venv .venv
source .venv/bin/activate
python -m pip install --upgrade pip
python -m pip install -e ".[dev]"
Canonical validation paths:
python -m pytest
python -m tests.run
python -m build
python scripts/package_audit.py
ruff check .
python -m tests.run delegates to pytest collection and adds the CI runtime profile artifact. It is not a separate curated test list.
Docs-site validation:
cd docs-site
npm ci
npm run check
Limen does not define a tox, nox, or Makefile contract; these direct commands are the authoritative local workflow.
Test runtime budget
PR Validationpublishes atest-runtime-profileartifact frompython -m coverage run -m tests.run, which uses pytest collection.PR Checks Runtimeenforces the suite ceiling committed intests/runtime_budget.json.- Update
tests/runtime_budget.jsononly when recent greenmainCI runs show a real new baseline, and keep that evidence in the linked issue or PR. - Do not raise the budget to absorb avoidable slow tests; every pytest test executed through
tests/run.pyis timed automatically.
Scope notes
/docsis the canonical public docs layer./docs/Developeris the canonical Limen contributor layer.- package
READMEs under/limenare orientation pages, not the main contributor process docs. - release and versioning policy lives in this repository; shared Vaquum docs are background only.