
* chore: init CLAUDE.md * Add Copilot instructions * update gitignore * simplify --------- Co-authored-by: Mark Tolmacs <mark@lazycat.hu>
46 lines
1.6 KiB
Markdown
46 lines
1.6 KiB
Markdown
# Project coding standards
|
|
|
|
## Generic Communication Guidelines
|
|
|
|
- Be succint and be aware that expansive generative AI answers are costly and slow
|
|
- Avoid providing explanations, trying to teach unless asked for, your chat partner is an expert
|
|
- Stop apologising if corrected, just provide the correct information or code
|
|
- Prefer code unless asked for explanation
|
|
- Stop summarizing what you've changed after modifications unless asked for
|
|
|
|
## TypeScript Guidelines
|
|
|
|
- Use TypeScript for all new code
|
|
- Where possible, prefer implementations without allocation
|
|
- When there is an option, opt for more performant solutions and trade RAM usage for less CPU cycles
|
|
- Prefer immutable data (const, readonly)
|
|
- Use optional chaining (?.) and nullish coalescing (??) operators
|
|
|
|
## React Guidelines
|
|
|
|
- Use functional components with hooks
|
|
- Follow the React hooks rules (no conditional hooks)
|
|
- Keep components small and focused
|
|
- Use CSS modules for component styling
|
|
|
|
## Naming Conventions
|
|
|
|
- Use PascalCase for component names, interfaces, and type aliases
|
|
- Use camelCase for variables, functions, and methods
|
|
- Use ALL_CAPS for constants
|
|
|
|
## Error Handling
|
|
|
|
- Use try/catch blocks for async operations
|
|
- Implement proper error boundaries in React components
|
|
- Always log errors with contextual information
|
|
|
|
## Testing
|
|
|
|
- Always attempt to fix #problems
|
|
- Always offer to run `yarn test:app` in the project root after modifications are complete and attempt fixing the issues reported
|
|
|
|
## Types
|
|
|
|
- Always include `packages/math/src/types.ts` in the context when your write math related code and always use the Point type instead of { x, y}
|