|
1 | | -# Contributing to RooFlow |
| 1 | +# Contributing to CursorFlow MCP Server |
2 | 2 |
|
3 | | -Thank you for your interest in contributing to RooFlow! We welcome contributions from everyone. This document outlines how to contribute to the project. |
| 3 | +Thank you for considering contributing to the CursorFlow MCP Server! This document provides guidelines and instructions for contributing to this project. |
4 | 4 |
|
5 | | -## Ways to Contribute |
| 5 | +## Code of Conduct |
6 | 6 |
|
7 | | -* **Bug Reports:** If you find a bug, please open an issue on the GitHub repository, providing a clear description of the problem, steps to reproduce it, and your expected vs. actual results. Include the Roo version, VS Code version, and operating system. |
8 | | -* **Feature Requests:** If you have an idea for a new feature, open an issue on GitHub and describe the feature, its benefits, and any potential implementation details. |
9 | | -* **Code Contributions:** If you want to contribute code (bug fixes, new features, improvements), please follow these steps: |
10 | | - 1. **Fork the Repository:** Create a fork of the RooFlow repository on GitHub. |
11 | | - 2. **Create a Branch:** Create a new branch for your changes (e.g., `feature/my-new-feature` or `bugfix/issue-123`). Use descriptive branch names. |
12 | | - 3. **Make Changes:** Make your changes, following the coding style and conventions of the project. |
13 | | - 4. **Test Thoroughly:** Ensure your changes work correctly and don't introduce new issues. Test with and without an existing Memory Bank. Test the UMB command. |
14 | | - 5. **Commit Changes:** Commit your changes with clear and descriptive commit messages. |
15 | | - 6. **Push to Your Fork:** Push your branch to your forked repository. |
16 | | - 7. **Create a Pull Request:** Create a pull request from your branch to the `main` branch of the RooFlow repository. Clearly describe your changes and the problem they solve or the feature they add. |
17 | | -* **Documentation:** Improvements to the documentation (README, etc.) are also welcome. Follow the same process as for code contributions. |
| 7 | +By participating in this project, you agree to maintain a respectful and inclusive environment for everyone. |
18 | 8 |
|
19 | | -## Development Setup |
| 9 | +## How Can I Contribute? |
20 | 10 |
|
21 | | -To develop RooFlow, you'll need: |
| 11 | +### Reporting Bugs |
22 | 12 |
|
23 | | -1. **VS Code:** Install Visual Studio Code. |
24 | | -2. **Roo Code Extension:** Install the Roo Code extension from the VS Code Marketplace. |
25 | | -3. **Git:** Install Git for version control. |
26 | | -4. **Node.js and npm (likely):** While RooFlow itself doesn't have *code* in the traditional sense, the Roo Code extension likely uses Node.js and npm for its build process. If you're modifying the `system-prompt-[mode]` files, you *might* need to rebuild the extension. Check the Roo Code documentation for specific instructions. |
| 13 | +When reporting bugs, please include: |
| 14 | +- A clear and descriptive title |
| 15 | +- Steps to reproduce the issue |
| 16 | +- Expected behavior |
| 17 | +- Actual behavior |
| 18 | +- Screenshots (if applicable) |
| 19 | +- Environment details (OS, Node.js version, etc.) |
27 | 20 |
|
28 | | -**Project Structure:** |
| 21 | +### Suggesting Enhancements |
29 | 22 |
|
30 | | -The RooFlow project consists of the following files, which you should place in your project's root directory: |
| 23 | +Enhancement suggestions are also welcome. Please include: |
| 24 | +- A clear and descriptive title |
| 25 | +- A detailed description of the proposed enhancement |
| 26 | +- Any potential implementation details (if you have ideas) |
| 27 | +- Why this enhancement would be useful to most users |
31 | 28 |
|
32 | | -* `.clinerules-architect`: Defines the behavior of Architect mode. |
33 | | -* `.clinerules-code`: Defines the behavior of Code mode. |
34 | | -* `.clinerules-debug`: Defines the behavior of Debug mode. |
35 | | -* `.clinerules-ask`: Defines the behavior of Ask mode. |
36 | | -* `.clinerules-test`: Defines the behavior of Test mode. |
37 | | -* `.roo/`: A directory containing the system prompts. |
38 | | - * `system-prompt-architect`: System prompt for Architect mode. |
39 | | - * `system-prompt-code`: System prompt for Code mode. |
40 | | - * `system-prompt-debug`: System prompt for Debug mode. |
41 | | - * `system-prompt-ask`: System prompt for Ask mode. |
42 | | - * `system-prompt-test`: System prompt for Test mode. |
43 | | -* `.roomodes`: Defines custom modes. |
44 | | -* `README.md`: This file. |
45 | | -* `projectBrief.md`: Optional project brief. |
| 29 | +### Pull Requests |
46 | 30 |
|
47 | | -**Memory Bank:** |
| 31 | +1. Fork the repository |
| 32 | +2. Create a feature branch (`git checkout -b feature/amazing-feature`) |
| 33 | +3. Make your changes |
| 34 | +4. Run tests to ensure they pass (`npm test`) |
| 35 | +5. Commit your changes (`git commit -m 'Add some amazing feature'`) |
| 36 | +6. Push to the branch (`git push origin feature/amazing-feature`) |
| 37 | +7. Open a Pull Request |
48 | 38 |
|
49 | | -The `memory-bank/` directory is created automatically by RooFlow. Do *not* create it manually. |
| 39 | +## Development Setup |
50 | 40 |
|
51 | | -**Testing:** |
| 41 | +1. Clone your fork of the repository |
| 42 | +2. Install dependencies: `npm install` |
| 43 | +3. Create your `.env` file based on `.env.example` |
| 44 | +4. Start the server in development mode: `npm run dev` |
52 | 45 |
|
53 | | -* **Test Thoroughly:** Before submitting any changes, test them thoroughly in various scenarios. |
54 | | -* **Memory Bank Presence/Absence:** Test with and without an existing Memory Bank. |
55 | | -* **UMB Command:** Test the "Update Memory Bank" (UMB) command to ensure it works correctly. |
56 | | -* **Mode Switching:** Test switching between different modes. |
57 | | -* **Error Handling:** Test how RooFlow handles errors and unexpected situations. |
| 46 | +## Coding Guidelines |
58 | 47 |
|
59 | | -## Coding Style |
| 48 | +- Follow the existing code style |
| 49 | +- Write unit tests for new features |
| 50 | +- Update documentation for any changes to the API or features |
| 51 | +- Keep pull requests focused on a single feature or bug fix |
60 | 52 |
|
61 | | -* **YAML:** The `.clinerules-[mode]` and `system-prompt-[mode]` files use YAML format. Use consistent indentation (2 spaces) and follow YAML best practices. |
62 | | -* **Markdown:** The Memory Bank files (`.md`) use Markdown format. |
63 | | -* **Clarity:** Write clear, concise, and unambiguous instructions. |
64 | | -* **Comments**: Use comments within the YAML files to explain complex logic. |
| 53 | +## Commit Messages |
65 | 54 |
|
66 | | -## Pull Request Guidelines |
| 55 | +- Use the present tense ("Add feature" not "Added feature") |
| 56 | +- Use the imperative mood ("Move cursor to..." not "Moves cursor to...") |
| 57 | +- Limit the first line to 72 characters or less |
| 58 | +- Reference issues and pull requests in the commit message |
67 | 59 |
|
68 | | -* **Descriptive Title:** Use a clear and descriptive title for your pull request. |
69 | | -* **Detailed Description:** Provide a detailed description of your changes, including the motivation for the changes, the approach taken, and any relevant context. |
70 | | -* **Link to Issue:** If your pull request addresses an existing issue, link to the issue in the description. |
71 | | -* **Small, Focused Changes:** Prefer smaller, focused pull requests over large, monolithic ones. |
72 | | -* **Tests:** Include tests for any new functionality or bug fixes. |
| 60 | +## Documentation |
73 | 61 |
|
74 | | -## Code of Conduct |
| 62 | +If your changes affect how users interact with the project, please update the README.md file accordingly. |
| 63 | + |
| 64 | +## Testing |
| 65 | + |
| 66 | +Please ensure all tests pass before submitting a pull request: |
| 67 | + |
| 68 | +```bash |
| 69 | +npm test |
| 70 | +``` |
| 71 | + |
| 72 | +For new features, please add appropriate tests to ensure functionality. |
75 | 73 |
|
76 | | -Please be respectful and constructive in all interactions. |
| 74 | +## License |
77 | 75 |
|
78 | | -By contributing to RooFlow, you agree to abide by the terms of the [Apache 2.0 License](LICENSE). |
| 76 | +By contributing to this project, you agree that your contributions will be licensed under the project's [MIT License](LICENSE). |
0 commit comments