Files
SkillOpt/docs/contributing.md
2026-07-14 17:11:40 +00:00

2.3 KiB

Contributing to SkillOpt

Thank you for your interest in contributing to SkillOpt! This guide covers how to get started.

Development Setup

git clone https://github.com/microsoft/SkillOpt.git
cd SkillOpt
pip install -e ".[dev]"

Ways to Contribute

🐛 Bug Reports

Open an issue with:

  • Steps to reproduce
  • Expected vs actual behavior
  • Config file used (sanitize API keys)
  • Python version and OS

🔧 New Benchmark

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.json artifacts for shared reflection
  • Environment adapter in skillopt/envs/<benchmark>/adapter.py
  • Config file in configs/<benchmark>/default.yaml
  • Lazy registration in scripts/train.py and scripts/eval_only.py
  • Focused tests and an optional seed skill referenced by env.skill_init
  • Documentation update

🤖 New Model Backend

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.example and backend/configuration reference updates

📝 Documentation

Documentation is built with MkDocs Material:

pip install -e ".[docs]"
mkdocs serve  # Preview at http://localhost:8000

Code Style

  • Follow existing patterns in the codebase
  • Use type hints for function signatures
  • Keep docstrings concise

Pull Request Process

  1. Fork the repository
  2. Create a feature branch: git switch -c feature/my-benchmark
  3. Make your changes
  4. Run focused tests, the full test suite, and mkdocs build --strict when docs change
  5. Submit a PR with a clear description

License

By contributing, you agree that your contributions will be licensed under the MIT License.