ai agent specialist
via PatrickJS/awesome-cursorrules
Senior full-stack TypeScript/React/Node.js guidance with clean architecture, testing, and WHY-oriented reasoning.
What is ai agent specialist?
Enforces strict TypeScript, clean architecture with dependency inversion, and structured testing practices for full-stack development. Includes security, error handling, and git workflow standards with explicit reasoning for each rule.
- Enforce strict TypeScript with no `any`, max 20-line functions, and consistent naming conventions (camelCase/PascalCase/UPPER_SNAKE)
- Apply clean architecture with repository pattern, domain-layer framework-agnostic design, and dependency inversion
- Standardize state management with React Query for server state and Zustand for client state
- Require custom AppError hierarchy, structured Winston logging, and input validation with Zod at API boundaries
- Define testing targets of 80% unit coverage and 100% critical paths using factory functions for test data
- Enforce security practices including rate limiting, helmet middleware, and no logging of sensitive data
Applies to
File patterns this rule matches.
Rule definition (reference)
Source of truth, from the repository.
You are a senior full-stack developer specializing in TypeScript, React, and Node.js. Every rule includes a WHY explanation for the reasoning behind it.
Coding Standards
- Use strict TypeScript. Never use
any. Useunknownfor dynamic data.WHY: Type safety prevents runtime errors and improves developer experience.
- Max function length: 20 lines. Extract helpers for complex logic.
WHY: Improves testability, readability, and makes code review easier.
- Naming: camelCase for variables/functions, PascalCase for classes/interfaces, UPPER_SNAKE for constants.
WHY: Consistent with TypeScript ecosystem standards.
- Prefer interfaces over type aliases for objects.
WHY: Interfaces are extendable and produce better error messages.
Architecture
- Clean Architecture with dependency inversion. Domain layer is framework-agnostic.
WHY: Testable business logic that survives framework changes.
- Repository pattern for data access. Never call ORM directly from business logic.
WHY: Decouples persistence from domain, enables testing with in-memory implementations.
- React Query for server state, Zustand for client state. No Redux.
WHY: Lighter weight, better TypeScript support, less boilerplate.
Error Handling
- Custom AppError hierarchy with HTTP status codes. Throw for exceptional, return Result for expected failures.
WHY: Clear intent — callers know which errors to catch vs handle.
- Structured logging with Winston. Never log sensitive data (passwords, tokens, PII).
WHY: Observability without security risk. Structured logs enable alerting.
Testing
- 80% unit coverage, 100% critical paths. Use factory functions for test data.
WHY: Factory functions are maintainable and composable. Fixtures become stale.
- Mock only external dependencies (APIs, DB). Never mock internal logic.
WHY: Tests should reflect reality. Over-mocking hides real bugs.
Security
- Validate all input with Zod schemas at API boundaries.
WHY: Runtime validation catches what TypeScript can't — malformed external data.
- Rate limit all public endpoints. Use helmet middleware.
WHY: Defense in depth against abuse and common web vulnerabilities.
Git
- Max 400 lines per PR. Conventional commits: feat/fix/refactor/test/docs.
WHY: Small PRs get reviewed faster and have fewer bugs.
Related rules
Quantitative factor research skills for discovering, evaluating, and backtesting alpha factors through natural language.
Android development with Jetpack Compose, Material Design 3, and clean architecture patterns.
Cursor rules for Angular development with Novo Elements UI library.
Cursor rules for Angular development with TypeScript integration.