Skip to content

Latest commit

 

History

History
180 lines (121 loc) · 7.28 KB

CONTRIBUTING.md

File metadata and controls

180 lines (121 loc) · 7.28 KB

Contributing to Personal Context Technology

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.

Table of Contents

  1. Code of Conduct
  2. Contributor Rights
  3. Types of Contributions
  4. Getting Started
  5. Development Workflow
  6. Pull Request Process
  7. Ethical Considerations
  8. Documentation Guidelines
  9. Community and Communication

Code of Conduct

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.

Contributor Rights

  • 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.

Types of Contributions

We welcome many types of contributions:

Documentation

  • Improvements to README, implementation guides, and other docs
  • Translations of documentation into other languages
  • Usage examples and tutorials
  • Use case studies

Code

  • Implementation examples in various programming languages
  • Integration with different AI systems
  • Utility tools for managing personal contexts
  • Automated update/sync mechanisms

Templates and Schemas

  • Context templates for specific use cases (education, healthcare, productivity and new other)
  • Schema definitions for different data formats
  • Access control patterns

Testing and Feedback

  • Testing compatibility with different AI systems
  • User experience feedback
  • Performance benchmarks

Non-technical

  • Design of logos and visual identity
  • User research and interviews
  • Ethics and policy recommendations

Getting Started

Prerequisites

  • Familiarity with Git and GitHub
  • Understanding of structured data formats (JSON, YAML, etc.)
  • Basic knowledge of AI systems and their interaction methods

Setting Up Your Environment

  1. Fork the repository on GitHub
  2. Clone your fork locally:
    git clone https://github.com/YOUR_USERNAME/personal-context-manager.git
    cd personal-context-manager
  3. Add the original repository as an upstream remote:
    git remote add upstream https://github.com/mikhashev/personal-context-manager.git

Development Workflow

  1. Discuss before coding: For significant changes, open an issue first to discuss your approach and ensure your work aligns with the project's direction.

  2. Create a branch: Create a branch from main for your changes:

    git checkout -b feature/your-feature-name
  3. Keep changes focused: Each pull request should address a single concern. If you have multiple unrelated changes, submit separate pull requests.

  4. Follow existing style: Maintain consistency with the existing codebase and documentation style.

  5. Document your changes: Update documentation to reflect your changes. For code, include comments as needed.

  6. Test thoroughly: Test your changes with multiple AI systems if possible to ensure compatibility.

Pull Request Process

  1. Update your fork: Before submitting, merge any changes from the upstream repository:

    git fetch upstream
    git merge upstream/main
  2. Push your changes:

    git push origin feature/your-feature-name
  3. Create a pull request: Go to GitHub and create a pull request from your branch to the main repository.

  4. 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
  5. Review process: Maintainers will review your PR, possibly requesting changes. Be responsive to feedback.

  6. Merge: Once approved, a maintainer will merge your pull request.

Ethical Considerations

When contributing to this project, please consider the ethical implications of your contributions:

  1. Respect privacy: Context examples should use synthetic data, not real personal information.

  2. Consider inclusivity: Ensure your contributions work for diverse users with different abilities, backgrounds, and resources.

  3. Prevent misuse: Design features with safeguards against potential abuse.

  4. Transparency: Any data processing or storage mechanisms should be transparent and understandable to users.

  5. Prohibited applications: Do not contribute features specifically designed for military use, surveillance, or manipulative purposes.

Documentation Guidelines

Documentation is crucial for this project. Please follow these guidelines:

  1. Clear language: Use simple, clear language. Avoid jargon when possible.

  2. Examples: Include practical examples that demonstrate real-world applications.

  3. Step-by-step instructions: For implementation guides, provide clear step-by-step instructions.

  4. Formatting: Use Markdown formatting consistently:

    • # for main headers
    • ## for section headers
    • ` for inline code
    • ``` for code blocks with language specified
  5. Images: Include diagrams or screenshots when they help clarify complex concepts.

Community and Communication

Discussions and Questions

  • Use GitHub Discussions for general questions and ideas
  • Use GitHub Issues for bugs and feature requests

Decision Making Process

This project uses a consensus-seeking process:

  1. Proposals are made through issues or pull requests
  2. Community members provide feedback and suggestions
  3. Maintainers work to find consensus among contributors
  4. In cases where consensus cannot be reached, maintainers make the final decision

Recognition

All contributors will be recognized in our CONTRIBUTORS.md file. We value all forms of contributions equally!

License

By contributing to this project, you agree that your contributions will be licensed under the same MIT License that covers the project.

Thank You!

Your contributions help make personal context technology accessible and useful for everyone. We appreciate your time and effort in helping this project grow!