# ๐ค Contributing Guidelines This guide explains how to contribute to the Acode AI CLI Assistant Plugin project. We welcome contributions from the community! ## ๐ฏ Overview Contributions to the plugin can take many forms: - Bug reports and feature requests - Code contributions and improvements - Documentation enhancements - Testing and feedback - translations and localization ## ๐ Reporting Issues ### Before Submitting 1. Check existing issues to avoid duplicates 2. Ensure you're using the latest version of the plugin 3. Verify the issue isn't related to your API provider ### Submitting Bug Reports When reporting bugs, include: - **Description**: Clear explanation of the problem - **Steps to Reproduce**: Detailed steps to recreate the issue - **Expected Behavior**: What you expected to happen - **Actual Behavior**: What actually happened - **Environment**: Acode version, Android version, device model - **Screenshots**: If relevant to the issue ### Feature Requests For feature requests, provide: - **Use Case**: Why this feature would be valuable - **Description**: Detailed explanation of the proposed feature - **Examples**: Sample implementations or similar features - **Priority**: How important this feature is to you ## ๐งช Testing ### Testing New Features 1. Fork the repository 2. Create a feature branch 3. Implement your changes 4. Test thoroughly on different devices 5. Submit a pull request ### Beta Testing Participate in beta testing by: - Installing development builds - Reporting issues with new features - Providing feedback on user experience - Testing on various Android versions ## ๐ Documentation Contributions ### Improving Existing Docs 1. Fork the repository 2. Edit files in the `docs` directory 3. Submit a pull request with your changes 4. Include rationale for improvements ### Adding New Documentation When adding new documentation: - Follow the existing format and style - Use appropriate markdown headers - Include code examples when relevant - Add navigation links at the bottom ## ๐ป Code Contributions ### Development Setup 1. Fork the repository 2. Clone your fork: ```bash git clone https://github.com/your-username/Acode-Plugin-AI-cli.git ``` 3. Install dependencies: ```bash npm install ``` 4. Create a feature branch: ```bash git checkout -b feature/your-feature-name ``` ### Code Standards - **ESLint**: Follow configured ESLint rules - **Prettier**: Use Prettier for consistent formatting - **JSDoc**: Write documentation for functions and classes - **Modularity**: Keep code modular and reusable - **Security**: Follow security best practices ### Commit Guidelines - Use clear, descriptive commit messages - Reference issues in commit messages when relevant - Keep commits focused on single changes - Follow conventional commit format: ``` feat: Add new provider integration fix: Resolve encryption issue with long keys docs: Update installation guide ``` ## ๐งช Testing Guidelines ### Unit Tests - Write tests for new functionality - Ensure existing tests still pass - Test edge cases and error conditions - Use Jest or similar testing framework ### Integration Tests - Test API integrations with mock responses - Verify UI components render correctly - Check plugin initialization and setup - Validate data flow between components ### Device Testing - Test on various Android versions - Check performance on different hardware - Verify UI responsiveness - Test with different Acode configurations ## ๐ฆ Pull Request Process ### Before Submitting 1. Ensure your code follows project standards 2. Run all tests and verify they pass 3. Update documentation if needed 4. Sync with upstream main branch ### Submitting Pull Requests 1. Push your changes to your fork: ```bash git push origin feature/your-feature-name ``` 2. Open a pull request against the main repository 3. Provide a clear description of changes 4. Link to any related issues 5. Request review from maintainers ### Pull Request Review - Maintainers will review your code - Address any feedback or requested changes - Be patient during the review process - Participate in discussion of improvements ## ๐จ UI/UX Contributions ### Design Guidelines - Follow the galaxy theme aesthetic - Maintain consistent styling - Ensure responsive design works - Test accessibility features ### Implementation Standards - Use existing CSS variables - Follow component structure - Implement animations smoothly - Ensure cross-browser compatibility ## ๐ API Integration Contributions ### Adding New Providers 1. Research the provider's API documentation 2. Implement using LangChain when possible 3. Add provider to the constants list 4. Implement model fetching functionality 5. Add UI elements for configuration ### Provider Guidelines - Use secure API communication - Handle rate limits appropriately - Provide clear error messages - Follow provider's terms of service ## ๐ Documentation Standards ### Writing Style - Use clear, concise language - Write in present tense - Address the user directly - Include practical examples ### Formatting - Use appropriate headers and subheaders - Include tables for structured information - Use code blocks for examples - Add navigation links between documents ### Content Organization - Keep related information together - Use consistent terminology - Provide progressive learning paths - Include troubleshooting sections ## ๐ก๏ธ Security Contributions ### Reporting Security Issues For security vulnerabilities: - Contact maintainers directly - Provide detailed vulnerability description - Include reproduction steps - Allow time for patch development before public disclosure ### Security Improvements When contributing security enhancements: - Follow established encryption standards - Don't roll your own crypto - Validate inputs properly - Handle errors securely ## ๐ Localization Contributions ### Translation Process 1. Fork the repository 2. Create language-specific files 3. Translate UI elements and documentation 4. Test localization in Acode 5. Submit pull request ### Language Guidelines - Maintain consistent terminology - Follow cultural conventions - Test text expansion/contraction - Ensure RTL support if needed ## ๐ Communication Guidelines ### Community Interaction - Be respectful and constructive - Help others learn and improve - Share knowledge freely - Follow code of conduct ### Discussion Topics - Focus on technical issues - Share implementation ideas - Discuss best practices - Provide helpful feedback ## ๐ Contribution Tracking ### Recognition Contributors are recognized: - In the README.md acknowledgments - Through GitHub contributor lists - In release notes for significant contributions ### Metrics We track contributions through: - Pull request acceptance rates - Issue resolution times - Community engagement levels - Code quality improvements ## ๐ Troubleshooting Contribution Issues ### Common Problems #### Build Failures - Check Node.js version compatibility - Ensure all dependencies are installed - Verify build configuration - Check for syntax errors #### Test Failures - Run tests in isolation - Check for environmental dependencies - Verify test data is correct - Ensure proper mocking #### Integration Issues - Test with latest Acode version - Check API provider status - Verify plugin manifest - Confirm file structure ### Contribution Verification To verify your contribution environment: 1. Clone the repository 2. Install dependencies 3. Run the build process 4. Test in Acode development environment ## ๐ Getting Help If you need help with contributions: 1. Join our [Discussions](https://github.com/RenzMc/Acode-Plugin-AI-cli/discussions) community 2. Contact maintainers through GitHub 3. Check existing documentation and code 4. Review accepted pull requests for examples ---