Skip to content

Contributing

Help improve Nova AI.


Getting Started

1. Clone the Repository

git clone https://github.com/Jaureguy760/nova_ai.git
cd nova_ai

2. Install Development Dependencies

pip install -e ".[dev]"

3. Run Tests

pytest tests/

Development Workflow

1. Create a Branch

git checkout -b feature/your-feature

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

# Lint
ruff check src/

# Type check
mypy src/

# Tests
pytest tests/ --cov=src

4. Submit PR

git push -u origin feature/your-feature

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

pytest 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

pytest tests/performance/ --benchmark-only

Documentation

Local Preview

mkdocs serve

Open http://localhost:8000

Build

mkdocs build

Deploy

Documentation deploys automatically on merge to main.


Release Process

  1. Update version in pyproject.toml
  2. Update CHANGELOG.md
  3. Create release PR
  4. After merge, tag release:
git tag v4.0.0
git push origin v4.0.0

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?