Contributing¶
Thank you for your interest in contributing to the AI Imaging Agent! This guide will help you get started.
Getting Started¶
1. Fork and Clone¶
# Fork the repository on GitHub
# Then clone your fork
git clone https://github.com/YOUR_USERNAME/ai-agent.git
cd ai-agent
2. Set Up Development Environment¶
# Create virtual environment
python -m venv .venv
source .venv/bin/activate # On Windows: .venv\Scripts\activate
# Install in development mode
pip install -e ".[dev]"
3. Create a Branch¶
Development Workflow¶
Making Changes¶
- Make your changes in the appropriate module
- Test your changes (see Testing)
- Update documentation if needed
- Update CHANGELOG.md following Keep a Changelog format
Feature Requests¶
Before implementing new features:
- Check existing issues for similar requests
- Open an issue to discuss the feature
- Get feedback from maintainers
- Implement after discussion
Documentation¶
Writing Documentation¶
Documentation lives in docs/ and uses MkDocs Material.
# Install MkDocs
pip install mkdocs-material
# Serve locally
mkdocs serve
# Open http://127.0.0.1:8000
Documentation Style¶
- Use clear headings and structure
- Include code examples where relevant
- Add warnings and tips for important information
- Keep language simple and accessible
Adding Tools to Catalog¶
Process¶
- Create tool entry in
dataset/catalog.jsonl:
{
"@type": "SoftwareSourceCode",
"name": "ToolName",
"description": "Tool description",
"url": "https://github.com/user/tool",
"license": "Apache-2.0",
"keywords": ["segmentation", "CT"],
"supportingData": {
"modalities": ["CT"],
"dimensions": ["3D"],
"formats": ["DICOM"],
"demo_url": "https://huggingface.co/spaces/user/tool"
}
}
- Validate entry:
- Update checksum:
- Sync catalog:
- Test retrieval:
Tool Criteria¶
Tools should:
- ✅ Be relevant to imaging analysis
- ✅ Be actively maintained
- ✅ Have clear documentation
- ✅ Preferably have a runnable demo
- ✅ Be open-source or have free tier
Reporting Issues¶
Bug Reports¶
Include:
- Description of the bug
- Steps to reproduce
- Expected behavior
- Actual behavior
- Environment (OS, Python version, etc.)
- Logs if available
Feature Requests¶
Include:
- Use case for the feature
- Proposed solution (if you have one)
- Alternatives considered
- Examples of similar features
Code Review Process¶
- Automated checks run on PR (tests, linting)
- Maintainer review provides feedback
- Address feedback and update PR
- Approval from maintainer(s)
- Merge into main branch
Release Process¶
Releases follow semantic versioning:
- Update version in
pyproject.toml - Update
CHANGELOG.mdwith release date - Create git tag:
git tag v0.2.0 - Push tag:
git push origin v0.2.0 - GitHub Actions deploys documentation
Getting Help¶
- GitHub Discussions: Ask questions
- GitHub Issues: Report bugs
Code of Conduct¶
Be respectful and professional:
- Use welcoming and inclusive language
- Respect differing viewpoints
- Accept constructive criticism
- Focus on what's best for the community
License¶
By contributing, you agree that your contributions will be licensed under the Apache 2.0 License.
Next Steps¶
- Review Project Structure
- Learn about Testing
- Read Architecture Overview