You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
chore(cursor-rules): simplify and reorganize cursor rules for CE (#41691)
## Description
Reorganize and simplify `.cursor/rules/` for the CE codebase:
- **Added** focused domain rules: `agent-behavior.mdc`, `backend.mdc`,
`frontend.mdc`, `infra.mdc`
- **Simplified** existing rules (`index.mdc`,
`semantic-pr-validator.mdc`, `performance-optimizer.mdc`,
`test-generator.mdc`, `bug-fix-verifier.mdc`, `feature-verifier.mdc`,
`workflow-validator.mdc`) — reduced verbosity and removed redundant
content
- **Removed** obsolete/redundant rules: `semantic-pr.md`, `index.md`,
`pre-commit-checks.mdc`, `task-list.mdc`,
`feature-implementation-validator.mdc`
Net result: **+443 / -3,764 lines** — leaner, more actionable rules.
## Communication
Should the DevRel and Marketing teams inform users about this change?
- [ ] Yes
- [x] No
Made with [Cursor](https://cursor.com)
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit
* **Documentation**
* Added comprehensive stack and infrastructure documentation for
backend, frontend, and infra.
* Added agent behavior, task-management, and workflow guidance.
* Replaced previously automated validation rules with static reference
checklists for PRs, testing, bug fixes, feature implementation,
performance, and workflow reviews.
* Consolidated and restructured rule indexing into an
architecture-oriented overview.
* **Chores**
* Removed legacy executable rule implementations and activation hooks.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
<!-- This is an auto-generated comment: Cypress test results -->
> [!WARNING]
> Tests have not run on the HEAD
e6c3b70 yet
> <hr>Fri, 03 Apr 2026 10:55:16 UTC
<!-- end of auto-generated comment: Cypress test results -->
Community and enterprise code coexist. Look for `ce/` and `ee/` sub-packages within each module. Enterprise logic extends or overrides CE implementations.
description: Conventional Commits format for PR titles and structured PR descriptions
3
3
globs:
4
-
alwaysApply: true
4
+
alwaysApply: false
5
5
---
6
-
# Semantic PR Validator
7
-
8
-
```yaml
9
-
name: Semantic PR Validator
10
-
description: Validates that PR titles follow the Conventional Commits specification
11
-
author: Cursor AI
12
-
version: 1.0.0
13
-
tags:
14
-
- git
15
-
- pull-request
16
-
- semantic
17
-
- conventional-commits
18
-
activation:
19
-
always: true
20
-
event:
21
-
- pull_request
22
-
- pull_request_title_edit
23
-
- command
24
-
triggers:
25
-
- pull_request.created
26
-
- pull_request.edited
27
-
- command: "validate_pr_title"
28
-
```
6
+
# Semantic PR Guidelines
7
+
8
+
## Part 1: PR Title
9
+
10
+
PR titles must follow [Conventional Commits](https://www.conventionalcommits.org/). Enforced by the `semantic-prs` GitHub app (config: `.github/semantic.yml`, `titleOnly: true` — only the PR title is validated, not individual commits).
11
+
12
+
### Format
29
13
30
-
## Rule Definition
31
-
32
-
This rule ensures that pull request titles follow the [Conventional Commits](mdc:https:/www.conventionalcommits.org) specification.
33
-
34
-
## Validation Logic
35
-
36
-
```javascript
37
-
// Function to validate PR titles against Conventional Commits spec
38
-
function validatePRTitle(title) {
39
-
// Regular expression for conventional commits format
This rule automatically runs in the following scenarios:
155
-
- When a new pull request is created
156
-
- When a pull request title is edited
157
-
- When a developer asks for validation via Cursor command: `validate_pr_title`
32
+
### Scope
158
33
159
-
## Usage Example
34
+
Optional. Represents the area affected: `client`, `server`, `widgets`, `plugins`, `git`, `auth`, `api`, etc.
160
35
161
-
To validate a PR title before submitting:
36
+
### Title Description
162
37
163
-
1. Create a branch and make your changes
164
-
2. Prepare to create a PR
165
-
3. Use the command: `validate_pr_title` in Cursor
166
-
4. Cursor will check your title and suggest corrections if needed
38
+
- Imperative mood: "add" not "added" or "adds"
39
+
- Lowercase first letter
40
+
- No trailing period
167
41
168
-
## Examples of Valid PR Titles
42
+
### Title Examples
169
43
44
+
Valid:
170
45
- `feat(widgets): add new table widget capabilities`
171
46
- `fix(auth): resolve login redirect issue`
172
-
- `docs: update README with setup instructions`
47
+
- `docs: update README with new setup instructions`
173
48
- `refactor(api): simplify error handling logic`
174
-
- `chore: update dependencies to latest versions`
49
+
- `chore: update dependencies to latest versions`
50
+
51
+
Invalid:
52
+
- `Added new feature` — missing type
53
+
- `fix - login bug` — wrong format
54
+
- `feat(client): Added new component.` — capital letter, trailing period, past tense
55
+
56
+
---
57
+
58
+
## Part 2: PR Description Body
59
+
60
+
The PR description follows the template in `.github/pull_request_template.md`. When generating a PR description, gather all needed information **in a single prompt** — do not ask the user multiple times.
61
+
62
+
### Information Gathering
63
+
64
+
Before writing the description, ask the user **once** for anything you don't already know. Combine all questions into a single message:
65
+
- **Issue link** — "Do you have an issue number or URL to link? (optional)"
66
+
- **Cypress tags** — "Any Cypress test tags to run? (optional, leave blank for none)"
67
+
- For `feat` PRs — motivation, user-facing behavior, how to test (if not already clear from context)
68
+
- For `fix` PRs — root cause, reproduction steps (if not already clear from context)
69
+
70
+
If the user has already provided this info (e.g., in the conversation or task description), or has explicitly said to skip it, do not ask again.
71
+
72
+
### Description Structure
73
+
74
+
```markdown
75
+
## Description
76
+
<!-- TL;DR required if description exceeds ~500 words or is highly technical -->
0 commit comments