Contributing
How to contribute to the Zudo framework — setup, workflow, code style, and PR process.
How to Contribute
We welcome contributions of all kinds — bug fixes, new features, documentation improvements, and more.
Development Setup
Code Style & Conventions
- Named exports only (no default exports)
- readonly on all interface properties
- import type for type-only imports
- .js extensions on all relative imports
- JSDoc on all public API surfaces
- No any — use unknown or specific types
- No var — use const or let
- No default exports
- No business logic in barrel index.ts files
- No inline comments unless absolutely necessary
Testing Requirements
All new code must include unit tests. Tests run with Vitest.
Always run npm run typecheck and npm test before submitting your PR. CI will reject PRs that fail these checks.
PR Review Process
| Severity | Category | Action |
|---|---|---|
| Critical | Error hierarchy, DI container, lifecycle state machine changes | Must be reviewed by maintainer |
| Should Fix | Files > 150 lines, folders > 5 files, wrong naming convention | Fix before merge |
| Nice to Have | Missing JSDoc, missing tests, missing barrel exports | Address in follow-up |
Issue Templates
Use the appropriate issue template when reporting bugs or requesting features.
Include reproduction steps, expected vs actual behavior, and environment details.
Describe the problem, your proposed solution, and alternatives considered.
Report missing or incorrect documentation with the affected page URL.