WorkBoard/AGENTS.md
2026-02-24 22:24:21 -06:00

61 lines
2.0 KiB
Markdown

# AGENTS.md
## Build, Lint, and Test Commands
### Build Commands
- `npm run build` - Build the application for production
- `npm run dev` - Start development server with hot reloading
- `npm run preview` - Preview the production build
### Lint Commands
- `npm run lint` - Run ESLint on the entire codebase
- `npm run lint -- --fix` - Run ESLint with auto-fix capabilities
### Test Commands
- No test framework configured yet
- For running individual tests, add a test runner like Vitest or Jest
- Example with Vitest: `npm run test -- --run --reporter=verbose`
## Code Style Guidelines
### Imports
- Use ES6 module syntax: `import { foo } from 'bar'`
- Group imports: standard library, external dependencies, internal modules
- Avoid wildcard imports: `import * as React from 'react'`
- Use named imports for better tree-shaking
### Formatting
- Use Prettier for code formatting (configured via .prettierrc)
- 2-space indentation
- No semicolons
- Arrow functions for component methods
- Type annotations for all props and state
### Types
- TypeScript strict mode enabled
- Use interfaces for component props and state shapes
- Use type aliases for primitive types
- Use `Partial<T>` for optional updates
- Use `Record<string, unknown>` for generic object types
### Naming Conventions
- PascalCase for components and interfaces
- camelCase for variables and functions
- UPPER_CASE for constants
- `use*` prefix for custom hooks
- `is*`, `has*`, `should*` for boolean values
### Error Handling
- Use try/catch blocks for async operations
- Handle errors gracefully in API calls with meaningful error messages
- Localized error states in components
- Use custom error boundaries for React components
- Log errors to console in development only
### React Specific
- Use functional components with hooks
- Prefer hooks over class components
- Use useCallback and useMemo for performance optimization
- Use StrictMode for development
- Component composition over inheritance
- Proper cleanup in useEffect hooks