# Code of Conduct & Contribution Guidelines Welcome to our project! We expect all contributors to abide by our **Code of Conduct** (outlined below) and adhere to our **Project Contribution Standards**, which specify how to document code, attribute authors, and write Git commit messages. ## 1. Our Pledge In the interest of fostering an open and welcoming environment, we, as contributors and maintainers, pledge to make participation in our project and our community a harassment-free experience for everyone—regardless of age, body size, disability, ethnicity, gender identity and expression, level of experience, nationality, personal appearance, race, religion, or sexual identity and orientation. ## 2. Expected Behavior - Be kind and courteous to others. - Respect differing viewpoints and experiences. - Gracefully accept constructive criticism. - Give and receive feedback in a positive manner. - Collaborate and help each other whenever possible. ## 3. Unacceptable Behavior - The use of sexualized language or imagery and unwelcome sexual attention. - Trolling, insulting or derogatory comments, and personal or political attacks. - Public or private harassment. - Publishing others’ private information (e.g., physical or electronic addresses) without explicit permission. - Other conduct which could reasonably be considered inappropriate. ## 4. Reporting and Enforcement Instances of abusive, harassing, or otherwise unacceptable behavior may be reported by contacting the project team at `[YOUR CONTACT EMAIL HERE]`. The project team will review and investigate all complaints and respond in a way that it deems appropriate to the circumstances. The project team is obligated to maintain confidentiality with regard to the reporter of an incident. --- # Project Contribution Standards In addition to general conduct, our project enforces **coding style**, **docstring conventions**, **author attribution**, and **commit message guidelines** to ensure clarity and consistency. ## 5. Docstring Style We follow the **Google Style Python Docstrings** as documented here: [https://sphinxcontrib-napoleon.readthedocs.io/en/latest/example_google.html](https://sphinxcontrib-napoleon.readthedocs.io/en/latest/example_google.html) Please ensure all public functions, classes, and modules include docstrings adhering to this style. ### 5.1 Module-Level Docstring Format When creating a **new module**, please include a docstring at the top with the following structure (update the content as appropriate): ```python """ Module: twitter_connector ========================= This module implements the TwitterConnector class for interacting with Twitter APIs. Title: Twitter Connector Summary: Twitter connector implementation. Authors: - @TheBlockRhino Date: 2024-12-31 Last Updated: 2024-12-31 URLs: - https://arai-ai.io - https://github.com/ARAIDevHub/arai-ai-agents - https://x.com/TheBlockRhino """ ``` When **modifying an existing module**, add your name to the list of authors, and **update the last updated date**. For example: ```python # # Module: twitter_app_auth # # This module implements the TwitterAppAuth class for authenticating with the Twitter API using OAuth 1.0a. # # Title: Twitter App Auth # Summary: Twitter app authentication implementation. # Authors: # - @TheBlockRhino # Created: 2024-12-31 # Last edited by: @TheBlockRhino # Last edited date: 2025-01-04 # URLs: # - https://arai-ai.io # - https://github.com/ARAI-DevHub/arai-ai-agents # - https://x.com/TheBlockRhino ``` Please make sure the rest of the comments in the file are also updated to match your changes, and follow the **Google Style** guidelines for any function/class docstrings. --- ## 6. Git Commit Messages We encourage **descriptive, consistent commit messages**. Use semantic versioning and tagging where appropriate. For guidelines, see: [https://www.gitkraken.com/gitkon/semantic-versioning-git-tags](https://www.gitkraken.com/gitkon/semantic-versioning-git-tags) ### 6.1 Examples - **feat:** Introduce a new feature (`feat: add user login flow`) - **fix:** Bug fix or patch (`fix: handle null pointer in user data`) - **docs:** Documentation-only changes (`docs: update readme installation steps`) - **style:** Changes that do not affect meaning (white-space, formatting, etc.) - **refactor:** Code change that neither fixes a bug nor adds a feature - **perf:** Code change that improves performance - **test:** Add or correct tests **Example** commit message: ``` feat: add advanced prompt chaining for TwitterConnector - Created new step_4.py for multi-step Twitter workflow - Updated docstring for step_3.py with new Authors entry - Bumped version from 1.2.0 to 1.3.0 ``` --- ## 7. Adding Tags & Versions For **major changes** or new releases, we recommend creating a new Git tag using semantic versioning (e.g., `v2.0.0`). Use tags to mark milestones or significant updates, so others can easily reference or roll back to stable states. --- ## 8. Scope This Code of Conduct and Contribution Standards apply to: - All repositories under the `[YOUR_ORG/PROJECT]` umbrella. - Communication channels such as GitHub issues, pull requests, and social media references. ## 9. Attribution This Code of Conduct is based on the [Contributor Covenant](https://www.contributor-covenant.org), with custom additions to guide documentation practices and commit messages in our project. --- **Thank you for helping us maintain a welcoming, organized, and productive environment!** If you have any questions or concerns about this Code of Conduct or the Contribution Standards, please contact `[YOUR CONTACT EMAIL HERE]`. *Happy coding and contributing!*