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
Markdown
# 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! 🎉