This project was built with pastry template.
- We use
adamantitefor linting, formatting and type checking. - Always run
bun run formatafter editing files. - After making changes, run
bun run check,bun run typecheck,bun run test, andbun run buildto ensure the code is still valid. - After installing or removing dependencies, run
bun run analyzeto ensure we are not using any dependencies that are not needed.
- We use
changesetsfor versioning and changelog management. - Never make a major version bump unless the user requests it.
- If a breaking change is being made, and we are on v1.0.0 or higher, alert the user.
- We are currently in v0.
- Backwards compatibility is not required right now.
- Breaking changes are acceptable when they simplify or improve the API.
- Prefer type inference whenever possible.
- Do not add explicit return types unless required by tooling, declaration emit, or a public API contract.
- Do not use explicit return types when inference already produces the correct result.
- Public API type changes must be covered in
src/__tests__/types.test.ts.
- Prefer a WET-first approach while behavior is still evolving: duplicate simple logic when it keeps intent obvious and local.
- Move to DRY only after patterns stabilize and the abstraction clearly improves readability, maintenance, or correctness.