Thank you for considering contributing to Bibble! This document provides guidelines and instructions for contributing to the project.
Please be respectful and considerate of others when contributing to this project. We aim to foster an inclusive and welcoming community.
If you find a bug, please create an issue with the following information:
- A clear, descriptive title
- A detailed description of the issue
- Steps to reproduce the bug
- Expected behavior
- Actual behavior
- Environment information (OS, Node.js version, etc.)
- Any relevant logs or screenshots
If you have an idea for a new feature, please create an issue with:
- A clear, descriptive title
- A detailed description of the feature
- Any relevant examples or mockups
- An explanation of why this feature would be useful
- Fork the repository
- Create a new branch for your changes
- Make your changes
- Write tests for your changes (if applicable)
- Run the existing tests to ensure nothing is broken
- Submit a pull request
-
Clone the repository:
git clone https://github.com/sizzlebop/bibble.git cd bibble -
Install dependencies:
npm install
-
Build the project:
npm run build
-
Run in development mode:
npm run dev
/
├── src/ # Main source code directory
│ ├── commands/ # CLI command handlers
│ ├── config/ # Configuration management
│ ├── mcp/ # MCP client implementation
│ ├── llm/ # LLM integration
│ ├── ui/ # Terminal UI components
│ ├── utils/ # Utility functions
│ ├── index.ts # Main entry point
│ └── types.ts # TypeScript type definitions
├── bin/ # Binary executable
├── reference/ # Reference documentation
├── package.json # NPM package definition
└── tsconfig.json # TypeScript configuration
- Use TypeScript for all new code
- Follow the existing code style
- Use strict typing
- Document public APIs with JSDoc comments
- Write tests for new features
- Ensure all tests pass before submitting a pull request
- Use the existing testing framework
- Use clear, descriptive commit messages
- Reference issue numbers in commit messages when applicable
- Keep commits focused on a single change
- Update the version in
package.json - Update the CHANGELOG.md
- Create a new tag with the version number
- Push the tag to GitHub
- Create a new release on GitHub
By contributing to this project, you agree that your contributions will be licensed under the project's ISC License.