First off, thanks for taking the time to contribute!
The following is a set of guidelines for contributing to @calmo/task-runner. These are mostly guidelines, not rules. Use your best judgment, and feel free to propose changes to this document in a pull request.
This project and everyone participating in it is governed by the Code of Conduct. By participating, you are expected to uphold this code.
- Fork the repository on GitHub.
- Clone your fork locally.
git clone https://github.com/your-username/task-runner.git cd task-runner - Install dependencies using
pnpm.Note: This project usespnpm install
pnpmfor package management. Please do not usenpmoryarn.
- Create a branch for your feature or fix.
git checkout -b feature/my-new-feature
- Make your changes.
- Run checks locally to ensure your changes are valid.
The project uses several pnpm scripts to maintain code quality:
- Build: Compile the project.
pnpm build
- Test: Run tests with coverage.
Important: We enforce 100% code coverage. If your changes lower the coverage, the CI will fail.
pnpm test - Lint: Check for linting errors.
pnpm lint
- Format: Format the code using Prettier.
pnpm format
Please strictly adhere to the following rules:
- No
any: The use ofanytype is strictly forbidden. Useunknownor proper types. - Strict Null Safety: Do not use
??or optional chaining?.when you can guarantee existence via prior validation. Use non-null assertions!only when the invariant is locally provable or enforced by a validator. - Dead Code Elimination: Avoid
v8 ignorecomments. Logic should be structured to prove unreachability. - Atomic Commits: For complex features, commit after completing distinct tasks. Ensure
pnpm build,pnpm lint, andpnpm testpass before each commit.
For more detailed agent-specific instructions (which are also good for humans), refer to AGENTS.md.
We follow the Conventional Commits specification.
You can use the built-in helper to format your commit messages:
pnpm commitOr format them manually:
feat(scope): add new featurefix(scope): fix bugdocs: update documentationtest: add testsrefactor: refactor code
- Push your changes to your fork.
- Open a Pull Request against the
mainbranch. - Ensure the PR description clearly describes the problem and solution.
- Make sure all CI checks pass.
Thank you for your contributions!