Contributing to DialectOS
May 7, 2026 ยท View on GitHub
Thank you for your interest in contributing! DialectOS is a community-driven project and we welcome contributions of all kinds โ code, documentation, bug reports, feature requests, and translations.
๐ Getting Started
Prerequisites
- Node.js โฅ 20.0.0
- pnpm 9.15.0 (managed via corepack)
Setup
git clone https://github.com/KyaniteLabs/DialectOS.git
cd DialectOS
pnpm install
pnpm build
pnpm test
All 590 tests should pass before you submit a PR.
๐ Repository Structure
packages/
โโโ mcp/ MCP server (stdio, 16 tools)
โโโ cli/ CLI commands and translation pipelines
โโโ providers/ Translation providers with circuit breaker
โโโ security/ Rate limiting, validation, sanitization
โโโ types/ Shared TypeScript types
โโโ locale-utils/ Locale file diff/merge
โโโ markdown-parser/ Structure-preserving markdown parser
Each package is independently versioned and tested.
๐งช Testing
# Run all tests
pnpm test
# Run tests for a specific package
pnpm test -- --filter=@dialectos/cli
# Run tests in watch mode
pnpm --filter=@dialectos/cli test:watch
# Run with coverage
pnpm test:coverage
Writing Tests
- We use Vitest for testing
- Tests live next to source code in
src/__tests__/ - Follow the existing patterns: mock providers, use temporary directories, clean up after tests
- New features must include tests
๐ Code Style
- TypeScript with strict mode enabled
- Use
typeimports where possible - Prefer explicit return types on exported functions
- Follow existing naming conventions (
kebab-casefor files,camelCasefor functions)
๐ Commit Convention
We use atomic commits with descriptive messages:
feat(cli): add new translate-batch command
fix(providers): handle LibreTranslate timeout edge case
docs(readme): update MCP configuration examples
test(security): add SSRF validation tests
๐ Reporting Bugs
Please open an issue with:
- A clear description of the bug
- Steps to reproduce
- Expected vs actual behavior
- Your environment (Node version, OS, DialectOS version)
๐ก Requesting Features
Open an issue with the enhancement label. Describe:
- The problem you're trying to solve
- Your proposed solution
- Any alternatives you've considered
๐ Security
If you discover a security vulnerability, please see SECURITY.md for responsible disclosure.
๐ท๏ธ Good First Issues
Look for issues tagged with good first issue โ these are designed for newcomers and have clear acceptance criteria.
๐ Code of Conduct
This project adheres to the Contributor Covenant Code of Conduct. By participating, you are expected to uphold this code.
โ Questions?
- Open a GitHub Discussion
- Or reach out via the issue tracker
Thank you for making DialectOS better! ๐
Agent-law contribution rule
This repository follows the Empower Orchestrator law in docs/agent-law/empower-orchestrator.md.
If a change exposes a repeated task or repeated agent failure, contributors and agents should either ship the smallest durable prevention artifact or explain why this PR is intentionally one-off.
Automation and durable system changes require the scale/severity/reversibility/predictability blast-radius check before dispatch.