Skip to content

Make one independently reviewable contribution

Start with a small change whose intended behavior and checks can be inspected together. These are contribution entry points, not open modernization blockers or automatically posted issues.

Contribution Where to work Acceptance before review
Integrate a MAPF method solvers/, reviewed request/capability composition, method tests Follow the extension guide; declare information access, supported settings, method identity and termination; validate trajectories and real spawned-worker execution
Add a licensed teaching scenario examples/, docs/SCENARIOS.md, scenario tests Attribute its source/license; validate coordinates, roster and setting; keep raw research data out; demonstrate a bounded run and all outcomes
Explain a confusing replay layer docs/GLOSSARY.md, docs/GALLERY.md, capture script Preserve the real run/tick; identify local evidence versus hindsight; add alt text; pass docs/link checks
Add an adversarial importer fixture tests/test_workspace_invariants.py, application/artifacts.py Start with a failing meaningful malformed input; reject it without changing the source bundle or creating misleading evidence
Improve a keyboard interaction frontend/src/components/, frontend/tests/ Show the failing interaction, preserve focus and labels, pass browser/axe checks; do not claim universal screen-reader acceptance
Clarify a headless task guide docs/HEADLESS.md, examples/capsules/ Execute the documented command against an installed wheel outside the checkout; retain the output contract and any limitations

Pick an existing problem or an actual reader report. Do not create work merely to satisfy a checklist. Explain which domain/service/adapter owns a change; keep a feature out of the solver core when it belongs to presentation or persistence. Propose method changes separately because they alter the scientific comparison contract.

Next: read CONTRIBUTING, the project map and public API boundaries.