Thank you for your interest in contributing to Codingbuddy! This document provides guidelines and instructions for contributing.
- Code of Conduct
- Getting Started
- Development Workflow
- Coding Standards
- Translation Guidelines
- Commit Messages
- Pull Request Process
- Issue Guidelines
This project follows the Contributor Covenant Code of Conduct. By participating, you agree to uphold this code.
Please report unacceptable behavior via GitHub Issues. For sensitive matters, you can use GitHub Security Advisories to report privately.
- Node.js v18+
- Yarn (via Corepack)
# Clone the repository
git clone https://github.com/JeremyDev87/codingbuddy.git
cd codingbuddy
# Install dependencies
yarn install
# Run tests to verify setup
yarn workspace codingbuddy test
# Start development server
yarn workspace codingbuddy start:devcodingbuddy/
├── apps/
│ └── mcp-server/ # NestJS-based MCP server (codingbuddy)
│ └── src/
│ ├── mcp/ # MCP protocol handlers
│ ├── rules/ # Rules service
│ ├── config/ # Configuration loading
│ └── keyword/ # Keyword parsing
├── packages/
│ └── rules/ # AI rules package (codingbuddy-rules)
│ └── .ai-rules/ # Shared AI coding rules
│ ├── rules/ # Core rules (markdown)
│ ├── agents/ # Specialist agent definitions (JSON)
│ └── adapters/# Tool-specific integration guides
└── docs/ # Documentation
- Check existing issues
- For new features, create an issue first to discuss the approach
- For bug fixes, you can proceed directly with a PR
# Feature branch
git checkout -b feat/your-feature-name
# Bug fix branch
git checkout -b fix/bug-description
# Documentation
git checkout -b docs/what-you-are-documenting- Follow the coding standards
- Write tests for new functionality
- Update documentation if needed
# Run all checks at once
yarn workspace codingbuddy validate
# Or run individual checks
yarn workspace codingbuddy lint # ESLint
yarn workspace codingbuddy format:check # Prettier
yarn workspace codingbuddy typecheck # TypeScript
yarn workspace codingbuddy test # Unit tests
yarn workspace codingbuddy test:coverage # Coverage (must be 80%+)
yarn workspace codingbuddy circular # Circular dependency check
yarn workspace codingbuddy build # Build verification
# If you modified packages/rules/.ai-rules/ files:
yarn workspace codingbuddy validate:rules # Validate rules structure, schema, and markdown- Fill out the PR template completely
- Link related issues
- Request review from maintainers
- Strict mode: No
anytypes allowed - Type safety: Use proper types for all parameters and return values
- Naming conventions:
- Files:
kebab-case.ts - Classes:
PascalCase - Functions/variables:
camelCase - Constants:
SCREAMING_SNAKE_CASE
- Files:
- Follow SOLID principles
- Keep functions small and focused
- Separate pure and impure functions
- Aim for 80%+ test coverage
We use ESLint and Prettier for code formatting:
# Check formatting
yarn workspace codingbuddy lint
yarn workspace codingbuddy format:check
# Auto-fix
yarn workspace codingbuddy lint:fix
yarn workspace codingbuddy format- Use Vitest for testing
- Follow TDD when possible: Red → Green → Refactor
- Test file naming:
*.spec.ts
# Run tests
yarn workspace codingbuddy test
# Run with coverage
yarn workspace codingbuddy test:coverageWe welcome translations to make Codingbuddy accessible to developers worldwide.
| Language | Directory | Status |
|---|---|---|
| English | docs/ |
Source |
| Korean (한국어) | docs/ko/ |
Complete |
| Japanese (日本語) | docs/ja/ |
Complete |
| Chinese (中文) | docs/zh-CN/ |
Complete |
| Spanish (Español) | docs/es/ |
Complete |
| Portuguese (Português) | docs/pt-BR/ |
Complete |
- Follow the existing directory pattern:
docs/{lang}/filename.md - Keep the same file names as English source files
- Include language selector at the top of each file
- Technical terms: Keep in English (PLAN, ACT, EVAL, MCP, API, CLI, etc.)
- Code blocks: Do not translate code or commands
- URLs: Keep all URLs unchanged
- Mermaid diagrams: Do not translate diagram content
Portuguese (pt-BR):
- Use proper diacritical marks (ã, ç, é, í, ó, ú, ê, â, ô)
- Common patterns:
- -ção/-ções (Instalação, configurações)
- você, método, versão, sessão
Spanish (es):
- Use proper accents (á, é, í, ó, ú, ñ)
- Use formal "usted" form for instructions
Chinese (zh-CN):
- Use Simplified Chinese characters
- Keep technical terms in English with Chinese explanation if needed
Japanese (ja):
- Use appropriate mix of hiragana, katakana, and kanji
- Technical terms can be in katakana or English
Korean (ko):
- Use 합니다 (formal) style
- Technical terms can remain in English
Each translated file must include:
- Language selector at the top:
<p align="center">
<a href="../plugin-guide.md">English</a> |
<a href="../ko/plugin-guide.md">한국어</a> |
<a href="../zh-CN/plugin-guide.md">中文</a> |
<a href="../ja/plugin-guide.md">日本語</a> |
<a href="../es/plugin-guide.md">Español</a> |
<a href="plugin-guide.md">Português</a>
</p>- AI translation disclaimer at the bottom (for AI-assisted translations):
---
<sub>🤖 This document was translated with AI assistance. If you find errors or have suggestions, please report them on [GitHub Issues](https://github.com/JeremyDev87/codingbuddy/issues).</sub>Before submitting, run the translation validation script:
./scripts/validate-translations.shThis checks for:
- Missing diacritical marks (Portuguese)
- Language selector consistency
- AI disclaimer presence
The validation script can be integrated into CI workflows. Example for GitHub Actions:
# .github/workflows/docs.yml
name: Documentation Checks
on:
pull_request:
paths:
- 'docs/**'
jobs:
validate-translations:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Validate Translations
run: ./scripts/validate-translations.shFor quality assurance, we recommend using:
- VS Code: Install language-specific spell-check extensions
- CLI: Use
aspellorhunspellwith appropriate dictionaries
# Example: Check Portuguese file with aspell
aspell --lang=pt_BR check docs/pt-BR/plugin-guide.mdFor best quality, we encourage native speaker review before merging translation PRs. If you are a native speaker and can help review, please comment on translation PRs.
We follow Conventional Commits:
<type>(<scope>): <description>
[optional body]
[optional footer]
| Type | Description |
|---|---|
feat |
New feature |
fix |
Bug fix |
docs |
Documentation changes |
style |
Code style changes (formatting, etc.) |
refactor |
Code refactoring |
test |
Adding or updating tests |
chore |
Maintenance tasks |
perf |
Performance improvements |
ci |
CI/CD changes |
feat(mcp): add new search_rules tool
fix(config): handle missing config file gracefully
docs(readme): update installation instructions
refactor(rules): simplify rule parsing logic
test(mcp): add coverage for error cases
chore(deps): update dependenciesCommon scopes:
mcp- MCP server functionalityrules- Rules serviceconfig- Configurationagents- Agent definitionsdocs- Documentationci- CI/CD
- All tests pass (
yarn test) - Code is formatted (
yarn format:check) - No linting errors (
yarn lint) - No type errors (
yarn typecheck) - Coverage meets threshold (
yarn test:coverage) - Documentation updated if needed
Follow the same format as commit messages:
feat(mcp): add new tool for agent activation
Include:
- Summary: What does this PR do?
- Related Issues: Link to related issues
- Testing: How was this tested?
- Checklist: Confirm all checks pass
- Maintainers will review your PR
- Address any feedback
- Once approved, maintainers will merge
Include:
- Clear description of the bug
- Steps to reproduce
- Expected vs actual behavior
- Environment details (Node version, OS, etc.)
- Error messages or logs
Include:
- Problem you're trying to solve
- Proposed solution
- Alternative approaches considered
- Any additional context
- Open a GitHub Discussion
- Check existing issues and documentation
Thank you for contributing to Codingbuddy!