Contributing
This guide explains how to contribute to the NanoForge Schematics project.Prerequisites
- Node.js 25
- pnpm 10.x
Setup
-
Fork and clone the repository.
-
Ensure you are on the main branch.
-
Install dependencies.
This also sets up Husky git hooks via the
preparescript. -
Create a feature branch.
Development Workflow
- Make your changes in
src/. - Run formatting and lint fixes with
pnpm format. - Build the project with
pnpm build. - Run the full lint check with
pnpm lint.
Commit Convention
This project uses Conventional Commits.feat, fix, docs, chore, refactor, perf, test, and style.
Examples:
commitlint via a git hook.
Pull Request Process
- Push your branch to your fork.
- Open a pull request against
main. - Ensure the CI pipeline passes.
- Request a review from a maintainer.
- Merge once approved.
Code Style
The project enforces consistent code style through ESLint and Prettier. Naming conventions:- Files: kebab-case
- Classes: PascalCase
- Functions: camelCase
- Constants: SCREAMING_SNAKE_CASE
- Enums: PascalCase enum name with SCREAMING_SNAKE_CASE values
src/libs/**/files/ are excluded from linting and TypeScript compilation.
Project Structure
When adding code, follow the existing structure:- Schematics live in
src/libs/<name>/ - Utilities live in
src/utils/ - Types live in
.d.tsfiles alongside implementations or insrc/utils/
Dependencies
Dependencies are managed through pnpm workspace version catalogs defined inpnpm-workspace.yaml.
When adding or updating a dependency, use the catalog reference rather than a direct version.
Reporting Issues
Report bugs and request features on the GitHub Issues page.Security
For security vulnerabilities, refer toSECURITY.md in the repository root.