ai-agent-specialist — Cursor rule: what it does, how to install
This Cursor rule sets guidance for TypeScript, React, and Node.js, covering architecture, tests, security, errors, and Git. It suits projects that need WHY explanations.
.cursor/rules/ai-agent-specialist.mdcWhat ai-agent-specialist does
The rule guides Cursor while working on TypeScript, React, and Node.js code. It asks for strict typing without any, limits functions to twenty lines, defines naming conventions, and favors interfaces for objects. Each guideline includes a WHY explanation that gives the reasoning behind it.
Its architecture section calls for Clean Architecture, dependency inversion, and the repository pattern. React Query handles server state and Zustand handles client state; Redux is excluded. The rule also covers an AppError hierarchy, Result values, Winston logging, Zod validation, rate limiting, helmet, and test targets of 80% unit coverage and 100% coverage for critical paths. The file targets **/*, while alwaysApply is false.
For Git, it sets a 400-line PR limit and Conventional Commit types: feat, fix, refactor, test, and docs. A project that already uses Redux will need to reconcile that setup with the rule’s direct “No Redux” requirement.
What it helps with
- enforce strict TypeScript conventions
- separate domain logic from persistence
- handle expected and exceptional failures differently
- validate API input with Zod schemas
- set testing and pull request boundaries
Example prompts for the agent
- Review this module against the TypeScript rules and extract functions longer than twenty lines.
- Design this feature with Clean Architecture and the repository pattern.
- Add Zod validation at the API boundary and keep tokens out of logs.
How to install ai-agent-specialist
Manually: put the files in place
.cursor/rules/ai-agent-specialist.mdcFrontmatter: description, globs, alwaysApply
Manually: put the files in place
.claude/rules/ai-agent-specialist.mdThe paths frontmatter field limits the files: move globs from the source into paths
AGENTS.md
Codex reads AGENTS.md: paste the rule text there
Manually: put the files in place
.github/instructions/ai-agent-specialist.instructions.mdThe applyTo field sets which files it applies to: move globs from the source into applyTo
Manually: put the files in place
.devin/rules/ai-agent-specialist.mdManually: put the files in place
.clinerules/ai-agent-specialist.mdStep by step, with commands for each platform: Cursor rules: .mdc files, four modes and what replaced .cursorrules
Questions about ai-agent-specialist
How do I install ai-agent-specialist in Cursor?
Create the file .cursor/rules/ai-agent-specialist.mdc in the project.
What does ai-agent-specialist do?
It gives Cursor guidance for TypeScript, React, and Node.js, including architecture, testing, error handling, security, and Git. Each rule includes a WHY explanation.
What does the rule require for React state management?
It assigns server state to React Query and client state to Zustand. Redux is explicitly excluded.
Source text
ai-agent-specialist.mdc · CC0-1.0
--- description: "Cursor rules for TypeScript, React, Node.js, clean architecture, testing, and WHY-oriented engineering guidance." globs: **/* alwaysApply: false --- 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`. Use `unknown` for 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.
© PatrickJS · CC0-1.0 · PatrickJS/awesome-cursorrules