Thank you for your interest in contributing to SIA (Self-Improving AI). This document provides guidelines for contributing to the project.
If you find a bug, please open an issue with:
- A clear, descriptive title
- Steps to reproduce the problem
- Expected vs actual behavior
- Python version and OS
- Relevant logs or error messages
Have an idea for a new feature or improvement? Open an issue and describe:
- What you'd like to see added or changed
- Why it would be useful
- Any implementation ideas you have
- Fork the repository
- Create a branch from
master(git checkout -b my-change) - Make your changes
- Run the checks (see below)
- Commit with a clear message describing the change
- Push to your fork and open a pull request against
master
# Clone your fork
git clone https://github.com/<your-username>/sia.git
cd sia
# Create a virtual environment
python3 -m venv .venv
source .venv/bin/activate
# Install in development mode with all extras
pip install -e ".[dev]"All of these must pass before submitting a PR:
# Run tests
python -m pytest tests/ -v
# Lint
ruff check sia/ tests/
# Format check
ruff format --check sia/ tests/
# Type check
ty check sia/To auto-fix lint and formatting issues:
ruff check --fix sia/ tests/
ruff format sia/ tests/To add a new task for SIA to work on, create the following structure:
tasks/<task-name>/
data/
public/
task.md # Task specification (required)
evaluate.py # Evaluation script (recommended)
private/
<ground-truth> # Private evaluation data
reference/
reference_target_agent.py # Agent template (required)
SAMPLE_TASK_DESCRIPTIONS.md # Similar task examples (required)
See existing tasks (tasks/spaceship-titanic/, tasks/lawbench/) for examples. The test suite validates that all tasks follow this structure.
- We use ruff for linting and formatting (configured in
pyproject.toml) - Line length limit is 120 characters
- Use type hints where they aid clarity
- Follow existing patterns in the codebase
By contributing, you agree that your contributions will be licensed under the MIT License.