Rules ngasih instruksi level sistem buat Agent dan Inline Edit. Anggap aja ini sebagai konteks, preferensi, atau workflow yang persistent buat proyek lo. Cursor mendukung empat jenis rules:

Project Rules

Disimpan di .cursor/rules, di-version control dan di-scope ke codebase lo.

User Rules

Global buat environment Cursor lo. Didefinisikan di settings dan selalu diterapkan.

AGENTS.md

Instruksi Agent dalam format markdown. Alternatif simpel buat .cursor/rules.

.cursorrules (Legacy)

Masih didukung, tapi deprecated. Mending pake Project Rules.

Cara kerja rules

Large language models nggak nyimpen memori antar completion. Rules ngasih konteks yang persisten dan bisa dipakai ulang di level prompt. Saat diterapkan, isi rule bakal disertakan di awal konteks model. Ini kasih panduan yang konsisten buat AI untuk ngasilin kode, ngeinterpretasi edit, atau bantuin workflow.
Rule diterapkan dalam konteks dengan chat
Rules berlaku untuk Chat dan Inline Edit. Rules yang aktif bakal muncul di sidebar Agent.

Aturan proyek

Aturan proyek ada di .cursor/rules. Setiap aturan adalah sebuah file dan dilacak dengan kontrol versi. Aturan bisa dibatasi dengan pola path, dipanggil secara manual, atau disertakan berdasarkan relevansi. Subdirektori bisa memiliki direktori .cursor/rules sendiri yang cakupannya hanya folder tersebut. Gunakan aturan proyek untuk:
  • Menyandikan pengetahuan domain-spesifik tentang codebase kamu
  • Mengotomatiskan alur kerja atau templat khusus proyek
  • Menyeragamkan keputusan gaya atau arsitektur

Anatomi rule

Setiap file rule ditulis dalam MDC (.mdc), format yang mendukung metadata dan konten. Atur bagaimana rule diterapkan lewat dropdown tipe yang mengubah properti description, globs, alwaysApply.
Tipe RuleDeskripsi
AlwaysSelalu disertakan dalam konteks model
Auto AttachedDisertakan saat file yang cocok dengan pola glob direferensikan
Agent RequestedTersedia untuk AI, yang memutuskan apakah akan menyertakannya. Harus menyertakan deskripsi
ManualHanya disertakan saat disebutkan secara eksplisit menggunakan @ruleName
---
description: Boilerplate layanan RPC
globs:
alwaysApply: false
---

- Gunakan pola RPC internal kami saat mendefinisikan layanan
- Selalu gunakan snake_case untuk nama layanan.

@service-template.ts

Aturan bertingkat

Susun aturan dengan menaruhnya di direktori .cursor/rules di seluruh proyek lo. Aturan bertingkat bakal otomatis nempel saat file di direktori itu direferensiin.
project/
  .cursor/rules/        # Aturan untuk seluruh proyek
  backend/
    server/
      .cursor/rules/    # Aturan khusus backend
  frontend/
    .cursor/rules/      # Aturan khusus frontend

Membuat rule

Bikin rule pakai perintah New Cursor Rule atau lewat Cursor Settings > Rules. Ini bakal bikin file rule baru di .cursor/rules. Dari Settings kamu bisa lihat semua rule beserta statusnya.
Perbandingan rule yang ringkas vs yang panjang

Membuat rule

Bikin rule langsung di percakapan pakai perintah /Generate Cursor Rules. Berguna kalau kamu udah nentuin perilaku agent dan pengin pakai ulang.

Praktik terbaik

Aturan yang bagus itu fokus, bisa dieksekusi, dan jelas ruang lingkupnya.
  • Jaga aturan tetap di bawah 500 baris
  • Pecah aturan besar jadi beberapa aturan yang bisa dikomposisikan
  • Sertakan contoh konkret atau file rujukan
  • Hindari panduan yang samar. Tulis aturan seperti dok internal yang jelas
  • Pakai ulang aturan saat ngeulang prompt di chat

Contoh

Aturan ini menetapkan standar untuk komponen frontend:Saat bekerja di direktori components:
  • Selalu pakai Tailwind untuk styling
  • Pakai Framer Motion untuk animasi
  • Ikuti konvensi penamaan komponen
Aturan ini juga menegakkan validasi untuk endpoint API:Di direktori API:
  • Pakai zod untuk semua validasi
  • Definisikan return type dengan skema zod
  • Ekspor tipe yang dihasilkan dari skema
Aturan ini menyediakan template untuk layanan Express:Pakai template ini saat bikin layanan Express:
  • Ikuti prinsip RESTful
  • Sertakan middleware penanganan error
  • Siapkan logging yang proper
@express-service-template.tsAturan ini mendefinisikan struktur komponen React:Komponen React harus mengikuti layout berikut:
  • Interface Props di bagian atas
  • Komponen sebagai named export
  • Styles di bagian bawah
@component-template.tsx
Aturan ini mengotomatiskan analisis app:Saat diminta menganalisis app:
  1. Jalankan dev server dengan npm run dev
  2. Ambil log dari console
  3. Sarankan peningkatan performa
Aturan ini membantu generasi dokumentasi:Bantu menyusun dokumentasi dengan:
  • Mengekstrak komentar kode
  • Menganalisis README.md
  • Menghasilkan dokumentasi markdown
Pertama, bikin properti toggle di @reactiveStorageTypes.ts.Tambahkan nilai default di INIT_APPLICATION_USER_PERSISTENT_STORAGE dalam @reactiveStorageService.tsx.Untuk fitur beta, tambahkan toggle di @settingsBetaTab.tsx, kalau bukan, tambahkan di @settingsGeneralTab.tsx. Toggle bisa ditambahkan sebagai <SettingsSubSection> untuk checkbox umum. Lihat bagian lain file untuk contoh.
<SettingsSubSection
				label="Nama fitur kamu"
				description="Deskripsi fitur kamu"
				value={
					vsContext.reactiveStorageService.applicationUserPersistentStorage
						.myNewProperty ?? false
				}
				onChange={(newVal) => {
					vsContext.reactiveStorageService.setApplicationUserPersistentStorage(
						'myNewProperty',
						newVal
					);
				}}
			/>
Untuk dipakai di app, import reactiveStorageService dan gunakan propertinya:
const flagIsEnabled = vsContext.reactiveStorageService.applicationUserPersistentStorage.myNewProperty
Banyak contoh tersedia dari berbagai provider dan framework. Aturan yang dikontribusikan komunitas bisa ditemukan di beragam koleksi dan repositori crowdsourced online.

AGENTS.md

AGENTS.md adalah file markdown sederhana untuk mendefinisikan instruksi agent. Simpan di root proyek sebagai alternatif .cursor/rules untuk use case yang straightforward. Berbeda dari Project Rules, AGENTS.md adalah file markdown polos tanpa metadata atau konfigurasi yang kompleks. Pas banget buat proyek yang butuh instruksi sederhana, mudah dibaca, tanpa overhead aturan terstruktur.
# Instruksi Proyek

## Gaya Kode
- Gunakan TypeScript untuk semua file baru
- Utamakan komponen fungsional di React
- Gunakan snake_case untuk kolom database

## Arsitektur
- Ikuti pola repository
- Letakkan logika bisnis di layer service

Aturan Pengguna

Aturan pengguna adalah preferensi global yang ditetapkan di Cursor Settings → Rules dan berlaku di semua proyek. Aturan ini berupa teks biasa dan pas buat ngatur gaya komunikasi yang kamu mau atau konvensi penulisan kode:
Balas dengan ringkas. Hindari pengulangan atau kata-kata pengisi yang nggak perlu.

.cursorrules (Legacy)

File .cursorrules di root project lo masih didukung, tapi bakal ditinggalkan. Disaranin migrasi ke Project Rules buat kontrol, fleksibilitas, dan visibilitas yang lebih baik.

FAQ

Cek tipe aturan. Untuk Agent Requested, pastikan deskripsi sudah ditentukan. Untuk Auto Attached, pastikan pola file cocok dengan file yang direferensikan.
Bisa. Gunakan @filename.ts untuk menyertakan file ke konteks aturan kamu.
Bisa, bikin aturan proyek dari chat pakai perintah /Generate Cursor Rules. Kalau Memories diaktifkan, Memories bakal dibuat otomatis.
Nggak. Aturan cuma berlaku untuk Agent dan Inline Edit