Thank you for your interest in contributing to this project! This document provides guidelines and instructions for contributing to make the process smooth and effective for everyone involved.
- Code of Conduct
- Contributor Rights
- Types of Contributions
- Getting Started
- Development Workflow
- Pull Request Process
- Ethical Considerations
- Documentation Guidelines
- Community and Communication
This project and everyone participating in it is governed by our Code of Conduct. By participating, you are expected to uphold this code. Please report unacceptable behavior by opening an issue on GitHub or contacting the project team at pcm-contact@proton.me.
- License: By contributing to PCM, you agree to license your contribution under the MIT License (see LICENSE). You retain copyright to your contribution but grant the project owner and users the right to use, modify, and distribute it under MIT terms.
- Attribution: Contributions are tracked in GitHub’s commit history. We recognize all contributors in our CONTRIBUTORS.md file, but explicit attribution in the project (e.g., in a “Contributors” section) is not guaranteed.
- Project Control: The project owner (Mike Shevchenko) retains full control over the project’s direction, including accepting/rejecting pull requests and setting the roadmap.
- Usage Rights: As a contributor, you have the same rights as any user under the MIT License: you can use, copy, modify, merge, publish, distribute, sublicense, and sell copies of the entire project, provided you include the original copyright notice and permission notice in all copies or substantial portions of the software.
We welcome many types of contributions:
- Improvements to README, implementation guides, and other docs
- Translations of documentation into other languages
- Usage examples and tutorials
- Use case studies
- Implementation examples in various programming languages
- Integration with different AI systems
- Utility tools for managing personal contexts
- Automated update/sync mechanisms
- Context templates for specific use cases (education, healthcare, productivity and new other)
- Schema definitions for different data formats
- Access control patterns
- Testing compatibility with different AI systems
- User experience feedback
- Performance benchmarks
- Design of logos and visual identity
- User research and interviews
- Ethics and policy recommendations
- Familiarity with Git and GitHub
- Understanding of structured data formats (JSON, YAML, etc.)
- Basic knowledge of AI systems and their interaction methods
- Fork the repository on GitHub
- Clone your fork locally:
git clone https://github.com/YOUR_USERNAME/personal-context-manager.git cd personal-context-manager
- Add the original repository as an upstream remote:
git remote add upstream https://github.com/mikhashev/personal-context-manager.git
-
Discuss before coding: For significant changes, open an issue first to discuss your approach and ensure your work aligns with the project's direction.
-
Create a branch: Create a branch from
main
for your changes:git checkout -b feature/your-feature-name
-
Keep changes focused: Each pull request should address a single concern. If you have multiple unrelated changes, submit separate pull requests.
-
Follow existing style: Maintain consistency with the existing codebase and documentation style.
-
Document your changes: Update documentation to reflect your changes. For code, include comments as needed.
-
Test thoroughly: Test your changes with multiple AI systems if possible to ensure compatibility.
-
Update your fork: Before submitting, merge any changes from the upstream repository:
git fetch upstream git merge upstream/main
-
Push your changes:
git push origin feature/your-feature-name
-
Create a pull request: Go to GitHub and create a pull request from your branch to the main repository.
-
Describe your changes: In the pull request, provide:
- A concise description of what your changes do
- Why these changes are valuable
- Any testing you've performed
- References to relevant issues
-
Review process: Maintainers will review your PR, possibly requesting changes. Be responsive to feedback.
-
Merge: Once approved, a maintainer will merge your pull request.
When contributing to this project, please consider the ethical implications of your contributions:
-
Respect privacy: Context examples should use synthetic data, not real personal information.
-
Consider inclusivity: Ensure your contributions work for diverse users with different abilities, backgrounds, and resources.
-
Prevent misuse: Design features with safeguards against potential abuse.
-
Transparency: Any data processing or storage mechanisms should be transparent and understandable to users.
-
Prohibited applications: Do not contribute features specifically designed for military use, surveillance, or manipulative purposes.
Documentation is crucial for this project. Please follow these guidelines:
-
Clear language: Use simple, clear language. Avoid jargon when possible.
-
Examples: Include practical examples that demonstrate real-world applications.
-
Step-by-step instructions: For implementation guides, provide clear step-by-step instructions.
-
Formatting: Use Markdown formatting consistently:
#
for main headers##
for section headers`
for inline code```
for code blocks with language specified
-
Images: Include diagrams or screenshots when they help clarify complex concepts.
- Use GitHub Discussions for general questions and ideas
- Use GitHub Issues for bugs and feature requests
This project uses a consensus-seeking process:
- Proposals are made through issues or pull requests
- Community members provide feedback and suggestions
- Maintainers work to find consensus among contributors
- In cases where consensus cannot be reached, maintainers make the final decision
All contributors will be recognized in our CONTRIBUTORS.md file. We value all forms of contributions equally!
By contributing to this project, you agree that your contributions will be licensed under the same MIT License that covers the project.
Your contributions help make personal context technology accessible and useful for everyone. We appreciate your time and effort in helping this project grow!