
---
alwaysApply: true
description: Development process, tools, and quality assurance requirements
---

# Development Workflow & Quality Assurance

## Development Environment Setup
- **UV package manager**: Use UV for dependency management and virtual environments
- **Python 3.12+**: Ensure compatibility with the minimum Python version requirement
- **Development dependencies**: Install dev tools: `uv sync --dev`
- **Pre-commit hooks**: Consider setting up pre-commit hooks for code quality

## Code Quality Tools
- **Ruff**: Fast Python linter and formatter (configured in [pyproject.toml](mdc:pyproject.toml))
- **MyPy**: Static type checking with strict settings
- **Pytest**: Testing framework for unit and integration tests
- **Coverage**: Test coverage analysis and reporting

## Development Workflow
1. **Feature planning**: Document requirements before implementation
2. **Code implementation**: Follow coding standards and architecture patterns
3. **Testing**: Write comprehensive tests for new functionality
4. **Code review**: Self-review code before committing
5. **Documentation**: Update documentation to reflect changes
6. **Integration testing**: Ensure all tests pass before merging

## Quality Assurance Checklist
- [ ] **Code quality**: Passes Ruff linting and formatting
- [ ] **Type safety**: Passes MyPy static type checking
- [ ] **Tests**: All tests pass with 100% success rate
- [ ] **Documentation**: Updated documentation reflects code changes
- [ ] **Performance**: No significant performance regressions
- [ ] **Memory usage**: Maintains efficient memory usage patterns

## Testing Workflow
- **Unit tests**: Test individual functions and methods
- **Integration tests**: Test component interactions
- **Performance tests**: Verify memory efficiency and processing speed
- **Error testing**: Test error conditions and edge cases
- **Real data testing**: Test with actual Claude export files

## Code Review Standards
- **Functionality**: Does the code do what it's supposed to do?
- **Code quality**: Does it follow project coding standards?
- **Performance**: Does it maintain efficient memory usage?
- **Testing**: Are there adequate tests for the new functionality?
- **Documentation**: Is the code well-documented and clear?

## Release Process
- **Version bump**: Update version in [pyproject.toml](mdc:pyproject.toml)
- **Changelog**: Document changes and new features
- **Testing**: Run full test suite on release candidate
- **Documentation**: Ensure all documentation is current
- **Tagging**: Create git tag for the release version

## Continuous Integration
- **Automated testing**: Run tests on every commit
- **Code quality**: Automated linting and type checking
- **Coverage reporting**: Track test coverage over time
- **Performance monitoring**: Monitor memory usage and processing speed

## Project-Specific Commands
```bash
# Install dependencies
uv sync --dev

# Run tests
uv run pytest tests/ -v

# Code quality checks
uv run ruff check src/
uv run ruff format src/
uv run mypy src/

# Run the tool
uv run claude-extract --help
```
