Thank you for your interest in contributing to Inspect Eval Convertor!
To add a new example converter:
-
Create example directory:
mkdir examples/my_format
-
Add input data (
input.jsonor other format):- Use synthetic data only (no private content)
- Make it clear and simple (3-5 samples is fine)
- Include edge cases if relevant
-
Add task script (
task.py):- Follow the pattern from existing examples
- Use
@taskdecorator to create your task function - Use
task_main()frominspect_convertor.utilsto run the task - Include docstrings explaining the format
- Handle errors gracefully
- Store messages and scores in sample metadata
-
Test it:
python examples/my_format/task.py examples/my_format/input.json # Creates: examples/my_format/input.eval inspect-convert-validate examples/my_format/input.eval -
Update documentation:
- Add to
examples/README.mdif it demonstrates a unique pattern - Document in
docs/CONVERSION_GUIDE.mdif it adds insights
- Add to
- Use
blackfor formatting (line length 100) - Use
rufffor linting - Use type hints
- Add docstrings to public functions
- Use
structlogfor logging
Before submitting:
# Run all tests
make test
# Check linting
ruff check src/
# Format code
black src/ examples/- Keep examples clear and educational
- Update relevant docs when adding features
- Use the same style as existing docs
Use clear, descriptive commit messages:
Add example: CSV format converterFix: Handle missing tool_call_id in tool messagesUpdate docs: Add troubleshooting for score extraction
Thank you for contributing!