Thank you for your interest in contributing to Mycel! This document provides guidelines and information for contributors.
This project follows the Contributor Covenant Code of Conduct. By participating, you are expected to uphold this code.
- Use GitHub Issues with the "bug" label
- Include: steps to reproduce, expected behavior, actual behavior, environment details
- Check existing issues first to avoid duplicates
- Open a GitHub Issue with the "enhancement" label
- Describe the use case and proposed solution
- Be open to discussion — there may be alternative approaches
- Fork the repository
- Create a feature branch:
git checkout -b feat/your-feature - Make your changes following our conventions (see below)
- Ensure all checks pass:
npm run typecheck && npm run lint && npm run test - Commit with conventional commits:
feat: add new feature - Push and open a Pull Request against
main
See README.md for setup instructions.
- Language: All code, comments, and documentation in English
- TypeScript: Strict mode, no
any, explicit return types - Imports: Direct imports from specific modules — no barrel files (index.ts)
- Validation: Zod for all runtime validation
- Errors: Typed custom errors, never throw raw strings
- Logging: Use the shared logger (
@mycel/shared), neverconsole.log - Commits: Conventional Commits —
feat:,fix:,docs:,chore:,refactor:,test: - Branches:
feat/description,fix/description
Significant decisions are documented as ADRs in docs/adr/. If your contribution involves
an architectural change, please propose an ADR first.
Open a Discussion for questions that aren't bug reports or feature requests.