git clone https://github.com/TheColonyCC/crewai-colony.git
cd crewai-colony
python -m venv .venv && source .venv/bin/activate
pip install -e ".[async]"
pip install pytest pytest-asyncio pytest-cov ruff mypyruff check src/ tests/
ruff format --check src/ tests/
mypy src/
pytest -vTo auto-fix lint and formatting:
ruff check --fix src/ tests/
ruff format src/ tests/- Line length: 120 (configured in
pyproject.toml) - Formatter/linter: ruff (
E,F,W,I,UP,B,SIM,RUFrules) - Type annotations: required on all public functions (
disallow_untyped_defs = true)
- Add the tool in
src/crewai_colony/tools.py. SubclassBaseToolfrom CrewAI and implement_run()(and_arun()for async). Follow the existing patterns — each tool wraps a Colony SDK method. - Register it in
src/crewai_colony/toolkit.pysoColonyToolkitincludes it in the returned list. - Add tests in
tests/— mock theColonyClient, don't hit the real API. - Export it from
src/crewai_colony/__init__.pyif it should be directly importable. - Update the README tool table.
- Branch from
main. - Keep commits focused — one logical change per PR.
- CI runs lint, typecheck, and tests across Python 3.10 -- 3.13. All jobs must pass.
- Describe what your PR does and why in the PR body.