Contributing¶
Help improve Nova AI.
Getting Started¶
1. Clone the Repository¶
2. Install Development Dependencies¶
3. Run Tests¶
Development Workflow¶
1. Create a Branch¶
2. Make Changes¶
Follow our coding standards:
- Python: Use type hints, follow PEP 8
- Tests: Write tests for new features
- Docs: Update documentation
3. Run Quality Checks¶
4. Submit PR¶
Then create a PR on GitHub.
Code Standards¶
Python¶
# Use type hints
def process_task(task: str, timeout: int = 60) -> TaskResult:
"""Process a task with the given timeout.
Args:
task: The task description
timeout: Timeout in seconds
Returns:
TaskResult with success status and output
"""
...
Tests¶
# tests/test_feature.py
import pytest
from nova_ai.feature import process_task
def test_process_task_success():
"""Test successful task processing."""
result = process_task("simple task")
assert result.success
assert "completed" in result.output
def test_process_task_timeout():
"""Test task timeout handling."""
with pytest.raises(TimeoutError):
process_task("long task", timeout=1)
Documentation¶
- Use present tense ("Add feature" not "Added feature")
- Include code examples
- Keep explanations concise
Project Structure¶
nova_ai/
├── src/orchestrator/ # Main package
│ ├── claude_sdk_executor.py
│ ├── tools/ # MCP servers
│ └── *_pkg/ # Modular packages
├── tests/ # Test suite
│ ├── unit/
│ ├── integration/
│ └── performance/
├── docs/ # Documentation
├── .claude/ # Claude Code config
│ ├── agents/
│ ├── skills/
│ └── commands/
└── scripts/ # Utility scripts
Pull Request Guidelines¶
Title Format¶
type(scope): description
Examples:
feat(agents): add parallel execution support
fix(mcp): resolve timeout in kb server
docs(tutorials): add CI/CD integration guide
Types¶
| Type | Description |
|---|---|
feat |
New feature |
fix |
Bug fix |
docs |
Documentation |
refactor |
Code refactoring |
test |
Adding tests |
perf |
Performance improvement |
Checklist¶
- Tests pass locally
- Lint passes (
ruff check) - Type check passes (
mypy) - Documentation updated
- Changelog entry added
Testing¶
Run All Tests¶
Run Specific Tests¶
# Unit tests only
pytest tests/unit/
# Integration tests
pytest tests/integration/
# With coverage
pytest tests/ --cov=src --cov-report=html
Performance Tests¶
Documentation¶
Local Preview¶
Open http://localhost:8000
Build¶
Deploy¶
Documentation deploys automatically on merge to main.
Release Process¶
- Update version in
pyproject.toml - Update
CHANGELOG.md - Create release PR
- After merge, tag release:
Getting Help¶
- Questions: Open a Discussion
- Bugs: Open an Issue
- Security: Email security@nova-ai.dev
Code of Conduct¶
Be respectful and inclusive. See CODE_OF_CONDUCT.md.
What's Next?¶
-
Quick Start
Get running in 2 minutes
-
Concepts
Understand how it works