UNPKG

quality-mcp

Version:

An MCP server that analyzes to your codebase, with plugin support for DCD and Simian. 🏍️ "The only Zen you find on the tops of mountains is the Zen you bring up there."

66 lines (45 loc) 1.72 kB
# Contributing to Quality MCP Welcome! We're excited you're interested in contributing. This guide covers the essentials. ## Project Vision We follow **Simple Progressive Disclosure Optimization** - start simple, add complexity gradually. ## Quality Standards ### Code Coverage - **Target: 80% statement, 90% function, 70% branch coverage** - Check with: `npm run test:coverage` - Don't worry if you're not there immediately - we'll help during review! ### Testing Pattern All new code must use the getDeps pattern for testability: ```javascript function getDeps() { return { fs: require('fs'), path: require('path') }; } async function myFunction(params, _getDeps = getDeps) { const { fs, path } = _getDeps(); // your logic here } // Test it test('should work', async () => { const mockDeps = { fs: { readFile: jest.fn() }, path: { join: jest.fn() } }; await myFunction(params, () => mockDeps); // assertions }); ``` ## Workflow 1. Fork on [Bitbucket](https://bitbucket.org/grahampheath/quality-mcp) 2. Run `npm test` to verify your environment 3. Make your changes using getDeps pattern 4. Ensure tests pass and coverage is good 5. Submit pull request with clear description ## What We Look For - Tests passing with good coverage (aiming for 80%+) - Code follows ESLint/Prettier style - Uses getDeps pattern for testability - Clear commit messages and PR description ## Getting Help - **Questions/Bugs/Features**: [Jira](https://bitbucket.org/grahampheath/quality-mcp/jira) - **Coverage Examples**: Check `src/plugins/simian/index.js` ## File Organization - **Plugins**: `src/plugins/` - **Utils**: `src/utils/` - **Tests**: `test/` (mirror source structure) Thanks for contributing! 🎉