# Contributing to SILICO Python SDK

Thanks for your interest! We welcome contributions.

## Development Setup

1. **Fork and clone**
   ```bash
   git clone https://github.com/YOUR_USERNAME/python-sdk
   cd python-sdk
   ```

2. **Install in dev mode**
   ```bash
   pip install -e ".[dev]"
   ```

3. **Create a branch**
   ```bash
   git checkout -b feature/my-feature
   ```

## Making Changes

### Code Style

We use:
- **black** for formatting
- **flake8** for linting
- **Type hints** for all functions

Format before committing:
```bash
black silico/ tests/
flake8 silico/ tests/
```

### Testing

Write tests for all new features:

```python
def test_my_feature():
    """Test description."""
    # Arrange
    bot = SilicoBot(api_key="sk_test")

    # Act
    result = bot.my_feature()

    # Assert
    assert result is not None
```

Run tests:
```bash
pytest
pytest --cov=silico  # With coverage
```

### Commits

Follow conventional commits:
```
feat: add new feature
fix: resolve bug
docs: update README
test: add test coverage
chore: update dependencies
```

## Pull Request Process

1. Update tests and ensure they pass
2. Update README if adding features
3. Update CHANGELOG.md
4. Push to your fork
5. Open PR with clear description

## Questions?

Open an issue or ask in Discord: [discord.gg/silico](https://discord.gg/silico)
