Thank you for your interest in contributing to SkillOpt! This guide covers how to get started.
git clone https://github.com/microsoft/SkillOpt.git
cd SkillOpt
pip install -e ".[dev]"Open an issue with:
- Steps to reproduce
- Expected vs actual behavior
- Config file used (sanitize API keys)
- Python version and OS
See Add a New Benchmark for the implementation guide.
Checklist:
- Data loader in
skillopt/envs/<benchmark>/dataloader.py - Scored rollout implementation in
skillopt/envs/<benchmark>/rollout.py - Per-item
predictions/<id>/conversation.jsonartifacts for shared reflection - Environment adapter in
skillopt/envs/<benchmark>/adapter.py - Config file in
configs/<benchmark>/default.yaml - Lazy registration in
scripts/train.pyandscripts/eval_only.py - Focused tests and an optional seed skill referenced by
env.skill_init - Documentation update
See Add a New Model Backend for the implementation guide.
Checklist:
- Function-based backend module in
skillopt/model/<name>_backend.py - Alias and default model in
skillopt/model/common.py - Optimizer/target whitelist entries in
skillopt/model/backend_config.py - Dispatch, token tracking, and setter forwarding in
skillopt/model/__init__.py - YAML/CLI wiring when the backend exposes structured config fields
- Focused routing, configuration, tool-call, and token-accounting tests
-
.env.exampleand backend/configuration reference updates
Documentation is built with MkDocs Material:
pip install -e ".[docs]"
mkdocs serve # Preview at http://localhost:8000- Follow existing patterns in the codebase
- Use type hints for function signatures
- Keep docstrings concise
- Fork the repository
- Create a feature branch:
git switch -c feature/my-benchmark - Make your changes
- Run focused tests, the full test suite, and
mkdocs build --strictwhen docs change - Submit a PR with a clear description
See the code review checklist for common considerations that may help reviewers and contributors. Apply the items relevant to the scope and risk of each change.
By contributing, you agree that your contributions will be licensed under the MIT License.