| Dimension | Shared | Only in A | Only in B | Overlap |
|---|---|---|---|---|
| Sections | 0 | 5 | 13 | 0% |
| Commands | 0 | 0 | 2 | 0% |
| Section tags | 0 | 0 | 6 | 0% |
What each file covers
Sections
0 shared · 5 only in A · 13 only in B- − Core Directives & Hierarchy
- − General Interaction & Philosophy
- − Minimalist & Standard Code Generation
- − Surgical Code Modification
- − Intelligent Tool Usage
- + Code Quality Standards
- + ESLint Configuration
- + Code Style Rules
- + Import Organization
- + TypeScript Rules
- + React Rules
- + Linting Commands
- + Code Formatting
- + Error Handling
- + Frontend
- + Backend
- + Performance
- + Documentation
Commands
0 shared · 0 only in A · 2 only in B- + yarn lint
- + yarn lint:fix
Section tags
0 shared · 0 only in A · 6 only in B- + lint-format
- + code-style
- + types
- + performance
- + do-not
- + docs
Line diff
magdazelena/primer · .cursor/rules/agents.mdc
@@ −1 @@
1---
2alwaysApply: true
3description: Prevent cursor from going haywire
4---
5
6## Core Directives & Hierarchy
7
8This section outlines the absolute order of operations. These rules have the highest priority and must not be violated.
9
101. **Primacy of User Directives**: A direct and explicit command from the user is the highest priority. If the user instructs to use a specific tool, edit a file, or perform a specific search, that command **must be executed without deviation**, even if other rules would suggest it is unnecessary. All other instructions are subordinate to a direct user order.
112. **Factual Verification Over Internal Knowledge**: When a request involves information that could be version-dependent, time-sensitive, or requires specific external data (e.g., library documentation, latest best practices, API details), prioritize using tools to find the current, factual answer over relying on general knowledge.
123. **Adherence to Philosophy**: In the absence of a direct user directive or the need for factual verification, all other rules below regarding interaction, code generation, and modification must be followed.
13
14## General Interaction & Philosophy
15
16- **Code on Request Only**: Your default response should be a clear, natural language explanation. Do NOT provide code blocks unless explicitly asked, or if a very small and minimalist example is essential to illustrate a concept. Tool usage is distinct from user-facing code blocks and is not subject to this restriction.
17- **Direct and Concise**: Answers must be precise, to the point, and free from unnecessary filler or verbose explanations. Get straight to the solution without "beating around the bush".
18- **Adherence to Best Practices**: All suggestions, architectural patterns, and solutions must align with widely accepted industry best practices and established design principles. Avoid experimental, obscure, or overly "creative" approaches. Stick to what is proven and reliable.
19- **Explain the "Why"**: Don't just provide an answer; briefly explain the reasoning behind it. Why is this the standard approach? What specific problem does this pattern solve? This context is more valuable than the solution itself.
20
21## Minimalist & Standard Code Generation
22
23- **Principle of Simplicity**: Always provide the most straightforward and minimalist solution possible. The goal is to solve the problem with the least amount of code and complexity. Avoid premature optimization or over-engineering.
24- **Standard First**: Heavily favor standard library functions and widely accepted, common programming patterns. Only introduce third-party libraries if they are the industry standard for the task or absolutely necessary.
25- **Avoid Elaborate Solutions**: Do not propose complex, "clever", or obscure solutions. Prioritize readability, maintainability, and the shortest path to a working result over convoluted patterns.
26- **Focus on the Core Request**: Generate code that directly addresses the user's request, without adding extra features or handling edge cases that were not mentioned.
27
28## Surgical Code Modification
29
30- **Preserve Existing Code**: The current codebase is the source of truth and must be respected. Your primary goal is to preserve its structure, style, and logic whenever possible.
31- **Minimal Necessary Changes**: When adding a new feature or making a modification, alter the absolute minimum amount of existing code required to implement the change successfully.
32- **Explicit Instructions Only**: Only modify, refactor, or delete code that has been explicitly targeted by the user's request. Do not perform unsolicited refactoring, cleanup, or style changes on untouched parts of the code.
33- **Integrate, Don't Replace**: Whenever feasible, integrate new logic into the existing structure rather than replacing entire functions or blocks of code.
34
35## Intelligent Tool Usage
36
37- **Use Tools When Necessary**: When a request requires external information or direct interaction with the environment, use the available tools to accomplish the task. Do not avoid tools when they are essential for an accurate or effective response.
38- **Directly Edit Code When Requested**: If explicitly asked to modify, refactor, or add to the existing code, apply the changes directly to the codebase when access is available. Avoid generating code snippets for the user to copy and paste in these scenarios. The default should be direct, surgical modification as instructed.
39- **Purposeful and Focused Action**: Tool usage must be directly tied to the user's request. Do not perform unrelated searches or modifications. Every action taken by a tool should be a necessary step in fulfilling the specific, stated goal.
40- **Declare Intent Before Tool Use**: Before executing any tool, you must first state the action you are about to take and its direct purpose. This statement must be concise and immediately precede the tool call.
magdazelena/primer · .cursor/rules/code-quality.mdc
@@ +1 @@
1---
2globs: *.ts,*.tsx,*.js,*.jsx
3---
4
5# Code Quality Standards
6
7## ESLint Configuration
8
9Primer uses custom ESLint configs in [packages/eslint-config-primer/](mdc:packages/eslint-config-primer/):
10
11- **Base**: Common rules for all packages
12- **Client**: Frontend-specific rules with React/Next.js
13- **Server**: Backend-specific rules for Strapi
14
15## Code Style Rules
16
17### Import Organization
18
19```typescript
20// 1. React imports (first)
21import React from 'react';
22
23// 2. External libraries (alphabetical)
24import { NextPage } from 'next';
25import { Button } from '@strapi/design-system';
26
27// 3. Internal modules (alphabetical)
28import { apiClient } from '@/lib/api';
29import { ProductCard } from '@/components/common';
30
31// 4. Type imports (separate group)
32import type { Product } from '@/types/product';
33```
34
35### TypeScript Rules
36
37- Use `type` imports for type-only imports
38- Avoid `any` - use `unknown` or proper typing
39- Use strict type checking
40- Define interfaces for component props
41
42### React Rules
43
44- Use arrow functions for components
45- No default exports (except pages)
46- Proper prop types and interfaces
47- Use React hooks correctly
48
49## Linting Commands
50
51- `yarn lint` - Lint all packages
52- `yarn lint:fix` - Auto-fix linting issues
53- Individual package linting available
54
55## Code Formatting
56
57- **Prettier**: Integrated with ESLint
58- **Consistent**: Same formatting across all packages
59- **Auto-fix**: Available through ESLint
60
61## Error Handling
62
63### Frontend
64
65- Use proper error boundaries
66- Handle loading and error states
67- Type-safe error handling
68
69### Backend
70
71- Proper HTTP status codes
72- Structured error responses
73- Logging with appropriate levels
74
75## Performance
76
77### Frontend
78
79- Use Next.js Image component
80- Implement proper code splitting
81- Optimize bundle size
82- Use React.memo when appropriate
83
84### Backend
85
86- Efficient database queries
87- Proper caching strategies
88- Optimize API responses
89
90## Documentation
91
92- **README**: Each package should have a README
93- **Code Comments**: Document complex logic
94- **Type Definitions**: Well-documented interfaces
95- **API Documentation**: Clear endpoint documentation
@@ −1 +1 @@
11 ---
2−alwaysApply: true
3−description: Prevent cursor from going haywire
2+globs: *.ts,*.tsx,*.js,*.jsx
43 ---
54
6−## Core Directives & Hierarchy
5+# Code Quality Standards
76
8−This section outlines the absolute order of operations. These rules have the highest priority and must not be violated.
7+## ESLint Configuration
98
10−1. **Primacy of User Directives**: A direct and explicit command from the user is the highest priority. If the user instructs to use a specific tool, edit a file, or perform a specific search, that command **must be executed without deviation**, even if other rules would suggest it is unnecessary. All other instructions are subordinate to a direct user order.
11−2. **Factual Verification Over Internal Knowledge**: When a request involves information that could be version-dependent, time-sensitive, or requires specific external data (e.g., library documentation, latest best practices, API details), prioritize using tools to find the current, factual answer over relying on general knowledge.
12−3. **Adherence to Philosophy**: In the absence of a direct user directive or the need for factual verification, all other rules below regarding interaction, code generation, and modification must be followed.
9+Primer uses custom ESLint configs in [packages/eslint-config-primer/](mdc:packages/eslint-config-primer/):
1310
14−## General Interaction & Philosophy
11+- **Base**: Common rules for all packages
12+- **Client**: Frontend-specific rules with React/Next.js
13+- **Server**: Backend-specific rules for Strapi
1514
16−- **Code on Request Only**: Your default response should be a clear, natural language explanation. Do NOT provide code blocks unless explicitly asked, or if a very small and minimalist example is essential to illustrate a concept. Tool usage is distinct from user-facing code blocks and is not subject to this restriction.
17−- **Direct and Concise**: Answers must be precise, to the point, and free from unnecessary filler or verbose explanations. Get straight to the solution without "beating around the bush".
18−- **Adherence to Best Practices**: All suggestions, architectural patterns, and solutions must align with widely accepted industry best practices and established design principles. Avoid experimental, obscure, or overly "creative" approaches. Stick to what is proven and reliable.
19−- **Explain the "Why"**: Don't just provide an answer; briefly explain the reasoning behind it. Why is this the standard approach? What specific problem does this pattern solve? This context is more valuable than the solution itself.
15+## Code Style Rules
2016
21−## Minimalist & Standard Code Generation
17+### Import Organization
2218
23−- **Principle of Simplicity**: Always provide the most straightforward and minimalist solution possible. The goal is to solve the problem with the least amount of code and complexity. Avoid premature optimization or over-engineering.
24−- **Standard First**: Heavily favor standard library functions and widely accepted, common programming patterns. Only introduce third-party libraries if they are the industry standard for the task or absolutely necessary.
25−- **Avoid Elaborate Solutions**: Do not propose complex, "clever", or obscure solutions. Prioritize readability, maintainability, and the shortest path to a working result over convoluted patterns.
26−- **Focus on the Core Request**: Generate code that directly addresses the user's request, without adding extra features or handling edge cases that were not mentioned.
19+```typescript
20+// 1. React imports (first)
21+import React from 'react';
2722
28−## Surgical Code Modification
23+// 2. External libraries (alphabetical)
24+import { NextPage } from 'next';
25+import { Button } from '@strapi/design-system';
2926
30−- **Preserve Existing Code**: The current codebase is the source of truth and must be respected. Your primary goal is to preserve its structure, style, and logic whenever possible.
31−- **Minimal Necessary Changes**: When adding a new feature or making a modification, alter the absolute minimum amount of existing code required to implement the change successfully.
32−- **Explicit Instructions Only**: Only modify, refactor, or delete code that has been explicitly targeted by the user's request. Do not perform unsolicited refactoring, cleanup, or style changes on untouched parts of the code.
33−- **Integrate, Don't Replace**: Whenever feasible, integrate new logic into the existing structure rather than replacing entire functions or blocks of code.
27+// 3. Internal modules (alphabetical)
28+import { apiClient } from '@/lib/api';
29+import { ProductCard } from '@/components/common';
3430
35−## Intelligent Tool Usage
31+// 4. Type imports (separate group)
32+import type { Product } from '@/types/product';
33+```
3634
37−- **Use Tools When Necessary**: When a request requires external information or direct interaction with the environment, use the available tools to accomplish the task. Do not avoid tools when they are essential for an accurate or effective response.
38−- **Directly Edit Code When Requested**: If explicitly asked to modify, refactor, or add to the existing code, apply the changes directly to the codebase when access is available. Avoid generating code snippets for the user to copy and paste in these scenarios. The default should be direct, surgical modification as instructed.
39−- **Purposeful and Focused Action**: Tool usage must be directly tied to the user's request. Do not perform unrelated searches or modifications. Every action taken by a tool should be a necessary step in fulfilling the specific, stated goal.
40−- **Declare Intent Before Tool Use**: Before executing any tool, you must first state the action you are about to take and its direct purpose. This statement must be concise and immediately precede the tool call.
35+### TypeScript Rules
36+
37+- Use `type` imports for type-only imports
38+- Avoid `any` - use `unknown` or proper typing
39+- Use strict type checking
40+- Define interfaces for component props
41+
42+### React Rules
43+
44+- Use arrow functions for components
45+- No default exports (except pages)
46+- Proper prop types and interfaces
47+- Use React hooks correctly
48+
49+## Linting Commands
50+
51+- `yarn lint` - Lint all packages
52+- `yarn lint:fix` - Auto-fix linting issues
53+- Individual package linting available
54+
55+## Code Formatting
56+
57+- **Prettier**: Integrated with ESLint
58+- **Consistent**: Same formatting across all packages
59+- **Auto-fix**: Available through ESLint
60+
61+## Error Handling
62+
63+### Frontend
64+
65+- Use proper error boundaries
66+- Handle loading and error states
67+- Type-safe error handling
68+
69+### Backend
70+
71+- Proper HTTP status codes
72+- Structured error responses
73+- Logging with appropriate levels
74+
75+## Performance
76+
77+### Frontend
78+
79+- Use Next.js Image component
80+- Implement proper code splitting
81+- Optimize bundle size
82+- Use React.memo when appropriate
83+
84+### Backend
85+
86+- Efficient database queries
87+- Proper caching strategies
88+- Optimize API responses
89+
90+## Documentation
91+
92+- **README**: Each package should have a README
93+- **Code Comments**: Document complex logic
94+- **Type Definitions**: Well-documented interfaces
95+- **API Documentation**: Clear endpoint documentation
