Thank you for your interest in contributing to Livcap! This document outlines our contribution guidelines and core principles that guide all development decisions.
Livcap is built around three fundamental principles that ALL contributions must align with:
- Zero data collection: No user data collection, analytics, or telemetry
- No network communication: All processing must remain local
- No third-party services: No external APIs or cloud dependencies
⚠️ Any code introducing data collection or network communication will be rejected
- Minimal resource usage: Keep CPU, memory, and battery consumption low
- Efficient algorithms: Prioritize performance over feature complexity
- Native frameworks only: Use Apple's native frameworks for optimal performance
⚠️ Features that significantly impact performance will be rejected
- Minimal interface: Clean, distraction-free captioning display
- Essential controls only: Only include absolutely necessary UI elements
- Consistent design: Follow established UI patterns and styling
⚠️ Complex UI redesigns or excessive visual elements will be rejected
Every pull request MUST include:
-
Feature Motivation
- Clear explanation of why this feature is needed
- How it aligns with Livcap's core principles
- User benefit description
-
Code Changes Summary
- Simplified explanation of what was changed
- Which files were modified and why
- Architecture impact assessment
-
AI Assistance Documentation
- How AI tools (Claude, ChatGPT, etc.) helped with the implementation
- Which parts were AI-generated vs human-written
- Verification steps taken for AI-generated code
-
Demo/Showcase(optional)
- Screenshots or screen recordings of the feature in action
- Before/after comparisons for improvements
- Test results or performance metrics
Pull requests that don't follow these requirements will NOT be merged. We reserve the right to refuse any PR that doesn't align with our principles or meet our standards.
- Swift best practices: Follow Swift API design guidelines
- Documentation: Include inline documentation for public APIs
- Error handling: Implement proper error handling and recovery
- Testing: Include unit tests for new functionality when possible
- MVVM pattern: Follow the established MVVM architecture
- Dependency injection: Use constructor injection for testability
- AsyncStream: Prefer AsyncStream for async operations
- ObservableObject: Use @Published properties for UI state
- macOS Requirements: macOS 14.4+ for system audio features
- Xcode: Latest stable version
- Swift: 5.9+
- Permissions: Microphone access required for testing
- Read the code: Understand the existing architecture
- Check existing issues: Avoid duplicate work
- Start small: Begin with minor improvements or bug fixes
- Test thoroughly: Ensure your changes don't break existing functionality
- Fork the repository
- Create a feature branch:
git checkout -b feature/your-feature-name - Make your changes: Following our guidelines
- Test extensively: Verify functionality and performance
- Submit a PR: With all required documentation
- Analytics or tracking: Any form of user data collection
- Network features: Cloud sync, remote processing, online features
- Complex UI: Dashboards, settings panels, visual customization
- Performance-heavy features: Real-time effects, complex processing
- Feature creep: Adding too many options or configurations
- UI complexity: Making the interface more complex
- Performance regression: Slowing down the core functionality
- Privacy concerns: Any potential data leakage or collection
- GitHub Issues: For bug reports and feature discussions
- Pull Requests: For code contributions
- Discussions: For general questions and ideas
- Respectful communication: Professional and constructive feedback
- Constructive criticism: Focus on code and ideas, not individuals
- Collaborative spirit: Help others learn and improve
By contributing to Livcap, you agree to these guidelines and principles. We appreciate your interest in making Livcap better while maintaining our core values of privacy, performance, and simplicity.
Last Updated: July 2025