Thank you for helping advance transparent reasoning systems. This document captures the workflow we expect for every change.
- Benchmark-first – never add hidden shortcuts or canned answers.
- Snake_case everything – functions, variables, files. Classes stay
PascalCaseonly if unavoidable. - Deterministic diffs – no auto-formatters; match the surrounding style.
- Tests before hype – every change that touches the pipeline needs coverage.
git clone https://github.com/nullure/Reasoner.git
cd Reasoner
npm install
cp .env.example .env # add provider API keys
npm run build # type-check
npm test # math, logic, pipeline sanity- Branches:
feature/<slug>orfix/<slug>(lowercase, dashes allowed). - Commits: imperative, lowercase verbs (
add verifier retries,fix router import). - Keep commits focused; squash locally if a PR contains noisy reversions.
- Use TypeScript strict mode patterns already present (no implicit
any). - Stick to snake_case for files, functions, and variables (
classify_query,repair_reasoning). - Prefer small helpers over massive functions; each pipeline stage should stay under ~200 lines.
- Logging: use
log_info/log_error. Debug logging was removed—do not addconsole.log. - Comments are optional but keep them short and lowercase; add them only when the code is non-obvious.
| Area | Expectation |
|---|---|
| Unit/Pipeline | npm test must pass (math, logic, reason suites). Add or update tests relevant to your change. |
| Bench (optional) | Run npm run bench only if your change affects benchmarking; document quota blockers in the PR. |
| Type safety | npm run build must succeed with zero warnings. |
When adding new files under tests/, keep them minimal and focused; avoid reintroducing broad fixture suites.
- Linked issue or rationale in the description.
- Summary of changes, test evidence, and any follow-up TODOs.
- Confirm no API keys or secrets were added to code, docs, or fixtures.
- Reference updates to docs (
README,architecture.md, etc.) when behavior changes. - Ensure CI can run without extra credentials (use mocks or guards when necessary).
- Pipeline quality: classifier accuracy, skeleton robustness, solver retries, verifier heuristics.
- Memory system: smarter similarity scoring, eviction policies, tracing tools.
- Bench tooling: new scenarios, scoring metrics, regression automation.
- Docs/examples: showcase integrations or troubleshoot common provider setups.
- Use GitHub Issues for bugs/features; tag
benchmarkfor regressions,docsfor documentation work. - Draft PRs early if you need architectural feedback.
- Security-sensitive findings should follow the instructions in
SECURITY.md.
By contributing you agree your code is released under the repository’s Apache-2.0 license.
Appreciate your help keeping Reasoner candid, auditable, and benchmark-ready.