MethodLM is a verifiable causal-reasoning harness, maintained by one person. The discipline — pre-register, test, keep a ledger — is the product; contributions should uphold it.
- No
FINALwithout a real test. Any new reasoning path must keep the pre-registration gate: a verdict is only accepted afterADJUST/STRAT/RUN/INTERACT/IV/REFUTEhas actually run. - State the assumptions the data can't verify. ADJUST's collider/mediator split and IV's exclusion restriction are printed on every call for a reason — a new tool that hides its assumptions is a regression.
- Benchmark claims come with the script and the audit JSON. If you change
benchmark_causal.py/benchmark_models.pynumbers, include the run and say which model / seed. The "capability-dependent" finding in the README is measured, not rhetorical. - Disclose AI assistance if you used it — a line in the PR is enough.
git clone https://github.com/tritsystem/methodlm
cd methodlm
python -m venv .venv && . .venv/bin/activate # Windows: .venv\Scripts\activate
pip install -e ".[dev]" # reasoning half is numpy-onlyOptional extras: .[frontier] (Anthropic), .[data] (Parquet/Excel),
.[ternary] (torch second witness), .[refute] (DoWhy), .[contrastive].
python -m pytest -q test_bias_guard.py test_judge.py
python methodlm.py --demo # end-to-end on the hidden-confound world- One logical change per PR.
- If it touches a causal tool, add a synthetic scenario where the correct answer is known and show the tool gets it (and flags the failure mode it should).
Don't open a public issue — see SECURITY.md.