Aturan
Aturan memberikan instruksi tingkat sistem kepada Agent. Aturan menggabungkan prompt, skrip, dan lainnya agar Anda dapat dengan mudah mengelola dan berbagi alur kerja di seluruh tim Anda.
Cursor mendukung empat jenis aturan:
Aturan Proyek
Disimpan di .cursor/rules, dikontrol versinya, dan berlaku untuk codebase Anda.
Aturan Pengguna
Berlaku secara global di lingkungan Cursor Anda. Digunakan oleh Agent (Chat).
Aturan Tim
Aturan untuk seluruh tim yang dikelola dari Dashboard. Tersedia dalam paket Team dan Enterprise.
AGENTS.md
Instruksi Agent dalam format markdown. Alternatif sederhana untuk
.cursor/rules.
Cara kerja aturan
Model bahasa besar tidak menyimpan memori antar-completion. Aturan menyediakan konteks persisten yang dapat digunakan kembali pada tingkat prompt.
Saat diterapkan, isi aturan disertakan di awal konteks model. Ini memberikan panduan yang konsisten kepada AI untuk menghasilkan kode, menafsirkan edit, atau membantu alur kerja.
Aturan proyek
Aturan proyek disimpan di .cursor/rules sebagai file .mdc dan dikelola dengan kontrol versi. Aturan ini diterapkan menggunakan pola path, dipanggil secara manual, atau disertakan berdasarkan relevansi.
Gunakan aturan proyek untuk:
- Mengodekan pengetahuan khusus domain tentang codebase Anda
- Mengotomatiskan alur kerja atau templat khusus proyek
- Menstandarkan keputusan terkait gaya atau arsitektur
Struktur berkas aturan
Setiap aturan berupa berkas .mdc yang dapat Anda beri nama sesuka hati. Aturan proyek harus menggunakan ekstensi .mdc. Berkas .md biasa di .cursor/rules diabaikan oleh sistem aturan karena tidak memiliki frontmatter untuk menentukan description, globs, dan alwaysApply. Jika Anda lebih memilih markdown biasa, gunakan AGENTS.md.
.cursor/rules/ react-patterns.mdc # Dikenali sebagai aturan proyek api-guidelines.md # Diabaikan (ekstensi tidak sesuai) frontend/ # Kelompokkan aturan dalam folder components.mdcAnatomi aturan
Setiap aturan adalah berkas Markdown dengan metadata frontmatter dan konten. Atur cara penerapan aturan melalui dropdown jenis, yang mengubah properti description, globs, dan alwaysApply.
| Jenis Aturan | Deskripsi |
|---|---|
Selalu Berlaku | Berlaku untuk setiap sesi chat |
Terapkan Secara Cerdas | Saat agent memutuskan aturan relevan berdasarkan deskripsi |
Terapkan ke File Tertentu | Saat file cocok dengan pola yang ditentukan |
Terapkan Manual | Saat disebutkan dengan @ di chat (misalnya, @my-rule) |
Di balik layar, ketiga field frontmatter berinteraksi untuk menentukan kapan aturan disertakan:
alwaysApply | description | globs | Perilaku |
|---|---|---|---|
true | — | — | Selalu disertakan. Glob dan deskripsi diabaikan. |
false | — | disediakan | Dilampirkan secara otomatis saat file yang cocok ada dalam konteks. |
false | disediakan | hilangkan | Agent membaca deskripsi dan menyertakan aturan saat relevan. |
false | hilangkan | hilangkan | Hanya disertakan saat Anda menyebut aturan dengan @ di chat. |
---alwaysApply: true---- Semua file sumber harus menyertakan header hak cipta perusahaan- Jika ragu tentang detail implementasi, baca file sumber yang relevan sebelum mengusulkan perubahan- Jangan pernah mengubah file yang dihasilkan di direktori `dist/` atau `build/`---globs: src/components/**/*.tsxalwaysApply: false---- Use named exports, not default exports- Co-locate styles in a module CSS file next to the component- Keep components under 200 lines. Extract subcomponents into the same directory when a file grows beyond that- Prefer composition over prop drilling. Pass children or render props instead of threading data through multiple layers---description: RPC service conventions and patterns for the backendalwaysApply: false---- Define each service in its own file under `src/services/`- Always validate inputs at the service boundary before passing data to internal functions- Return structured error objects with a `code` and `message` field, never throw raw strings- Add a `@service-template.ts` reference file when creating a new service for the standard boilerplate---alwaysApply: false---- Setiap migrasi database harus memiliki fungsi `up` dan `down` agar dapat sepenuhnya dibatalkan- Jangan pernah mengubah tipe kolom secara langsung. Tambahkan kolom baru, lakukan backfill, lalu hapus kolom lama dalam migrasi terpisah- Rujuk template untuk struktur file yang diharapkan@migration-template.sqlContoh pola glob
Gunakan globs untuk menerapkan aturan pada file atau direktori tertentu. Pisahkan beberapa pola dengan koma.
| Pola | Cocok dengan |
|---|---|
* | Segmen nama file tunggal apa pun |
** | Sejumlah direktori (rekursif) |
*.ts | Semua file .ts di root |
**/*.ts | Semua file .ts di direktori mana pun |
src/** | Semua file di bawah src/ |
src/**/*.tsx | Semua file .tsx di bawah src/ |
docs/**/*.md, docs/**/*.mdx | File .md dan .mdx di bawah docs/ (dipisahkan koma) |
tailwind.config.* | tailwind.config dengan ekstensi apa pun |
Membuat aturan
Ada dua cara untuk membuat aturan:
/create-ruledi chat: Ketik/create-ruledi Agent, lalu jelaskan kebutuhan Anda. Agent akan membuat berkas aturan dengan frontmatter yang sesuai dan menyimpannya di.cursor/rules.- Melalui menyesuaikan: Buka menyesuaikan di bilah sisi, pilih aturan, lalu klik Add Rule. Tindakan ini membuat berkas aturan baru di
.cursor/rules. Di menyesuaikan, Anda dapat melihat semua aturan beserta statusnya.
Praktik Terbaik
Aturan yang baik berfokus pada satu hal, dapat ditindaklanjuti, dan memiliki cakupan yang jelas.
- Batasi aturan hingga 500 baris
- Pecah aturan besar menjadi beberapa aturan yang dapat dikombinasikan
- Berikan contoh konkret atau file rujukan
- Hindari panduan yang samar. Tulis aturan seperti dokumentasi internal yang jelas
- Gunakan kembali aturan saat mengulang prompt di chat
- Rujuk file alih-alih menyalin isinya—ini membuat aturan tetap ringkas dan mencegahnya usang saat kode berubah
Hal yang perlu dihindari dalam aturan
- Menyalin seluruh panduan gaya: Gunakan linter. Agent sudah memahami konvensi gaya umum.
- Mendokumentasikan setiap kemungkinan perintah: Agent memahami tool umum seperti npm, git, dan pytest.
- Menambahkan instruksi untuk kasus tepi yang jarang terjadi: Pastikan aturan tetap berfokus pada pola yang sering Anda gunakan.
- Menduplikasi hal yang sudah ada di codebase Anda: Rujuk contoh kanonis, bukan menyalin kode.
Mulai dari yang sederhana. Tambahkan aturan hanya ketika Anda melihat Agent berulang kali membuat kesalahan yang sama. Jangan terlalu mengoptimalkan sebelum memahami pola Anda.
Simpan aturan Anda di git agar seluruh tim dapat memanfaatkannya. Saat Agent membuat kesalahan, perbarui aturannya. Anda bahkan dapat menandai @cursor di issue atau PR GitHub agar Agent memperbarui aturan untuk Anda.
Format berkas aturan
Setiap aturan berupa berkas Markdown dengan metadata frontmatter dan konten. Metadata frontmatter digunakan untuk mengatur cara penerapan aturan. Kontennya adalah aturan itu sendiri.
---description: "This rule provides standards for frontend components and API validation"alwaysApply: false---...rest of the rule contentJika alwaysApply bernilai true, aturan akan diterapkan pada setiap sesi chat. Jika tidak, deskripsi aturan akan diberikan kepada Cursor Agent untuk menentukan apakah aturan tersebut perlu diterapkan.
Contoh
Aturan ini menetapkan standar untuk komponen frontend:
Saat bekerja di direktori components:
- Selalu gunakan Tailwind untuk styling
- Gunakan Framer Motion untuk animasi
- Ikuti konvensi penamaan komponen
Aturan ini menerapkan validasi untuk endpoint API:
Di direktori API:
- Gunakan zod untuk semua validasi
- Tentukan tipe nilai kembalian dengan schema zod
- Ekspor tipe yang dihasilkan dari schema
Aturan ini menyediakan templat untuk layanan Express:
Gunakan templat ini saat membuat layanan Express:
- Ikuti prinsip RESTful
- Sertakan middleware penanganan error
- Siapkan logging yang sesuai
@express-service-template.ts
Aturan ini menentukan struktur komponen React:
Komponen React harus mengikuti tata letak ini:
- Antarmuka props di bagian atas
- Komponen sebagai ekspor bernama
- Gaya di bagian bawah
@component-template.tsx
Aturan ini mengotomatiskan analisis aplikasi:
Saat diminta menganalisis aplikasi:
- Jalankan server dev dengan
npm run dev - Ambil log dari konsol
- Sarankan peningkatan performa
Aturan ini membantu membuat dokumentasi:
Bantu menyusun dokumentasi dengan:
- Mengekstrak komentar kode
- Menganalisis README.md
- Membuat dokumentasi markdown
Pertama, buat properti untuk mengaktifkan/menonaktifkan fitur di @reactiveStorageTypes.ts.
Tambahkan nilai default ke INIT_APPLICATION_USER_PERSISTENT_STORAGE di @reactiveStorageService.tsx.
Untuk fitur beta, tambahkan kontrol aktifkan/nonaktifkan di @settingsBetaTab.tsx; jika tidak, tambahkan di @settingsGeneralTab.tsx. Kontrol aktifkan/nonaktifkan dapat ditambahkan sebagai <SettingsSubSection> untuk kotak centang umum. Lihat bagian lain dari file untuk contohnya.
<SettingsSubSection label="Your feature name" description="Your feature description" value={ vsContext.reactiveStorageService.applicationUserPersistentStorage .myNewProperty ?? false } onChange={(newVal) => { vsContext.reactiveStorageService.setApplicationUserPersistentStorage( "myNewProperty", newVal, ); }}/>Untuk digunakan di aplikasi, impor reactiveStorageService dan gunakan properti tersebut:
const flagIsEnabled = vsContext.reactiveStorageService.applicationUserPersistentStorage .myNewProperty;Contoh tersedia dari penyedia dan framework. Aturan yang dikontribusikan komunitas dapat ditemukan di berbagai koleksi crowdsourcing dan repositori online.
Aturan Tim
Paket Team dan Enterprise dapat membuat dan menerapkan aturan di seluruh organisasi melalui Dashboard Cursor. Admin dapat mengatur apakah setiap aturan wajib diikuti oleh anggota tim.
Aturan Tim berfungsi bersama jenis aturan lainnya dan memiliki prioritas lebih tinggi untuk memastikan standar organisasi tetap diterapkan di semua proyek. Aturan ini menyediakan cara efektif untuk memastikan standar coding, praktik, dan alur kerja yang konsisten di seluruh tim tanpa memerlukan penyiapan atau konfigurasi individual.
Mengelola Aturan Tim
Administrator tim dapat membuat dan mengelola aturan langsung dari Dashboard Cursor:
Setelah aturan tim dibuat, aturan tersebut otomatis berlaku untuk semua anggota tim dan terlihat di Dashboard:
Aktivasi dan penerapan
- Langsung aktifkan aturan ini: Jika dicentang, aturan akan aktif segera setelah Anda membuatnya. Jika tidak dicentang, aturan disimpan sebagai draf dan tidak berlaku sampai Anda mengaktifkannya nanti.
- Terapkan aturan ini: Jika diaktifkan, aturan wajib berlaku bagi semua anggota tim dan tidak dapat dinonaktifkan di Menyesuaikan. Jika tidak diterapkan, anggota tim dapat menonaktifkan aturan ini di bagian Aturan Tim di Menyesuaikan.
Secara default, Aturan Tim yang tidak diterapkan dapat dinonaktifkan oleh pengguna. Gunakan Terapkan aturan ini untuk mencegahnya.
Format dan penerapan aturan tim
- Konten: Aturan tim berupa teks bebas. Aturan ini tidak menggunakan struktur folder aturan proyek.
- Pola glob: Aturan tim mendukung pola glob untuk penerapan berdasarkan file. Saat pola glob ditetapkan (misalnya,
**/*.py), aturan hanya berlaku jika file yang cocok ada dalam konteks. Aturan tanpa pola glob berlaku untuk setiap percakapan. - Penerapan: Saat aturan tim diaktifkan (dan tidak dinonaktifkan oleh pengguna, kecuali jika enforced), aturan tersebut disertakan dalam konteks model untuk Agent (Chat) di semua repo dan proyek tim tersebut.
- Prioritas: Aturan diterapkan dalam urutan berikut: Aturan tim → Aturan proyek → Aturan pengguna. Semua aturan yang berlaku digabungkan; sumber yang lebih awal diprioritaskan jika panduannya bertentangan.
Beberapa tim menggunakan aturan enforced sebagai bagian dari alur kerja kepatuhan internal. Meskipun didukung, panduan AI tidak boleh menjadi satu-satunya kontrol keamanan Anda.
Mengimpor Aturan
Anda dapat mengimpor aturan dari sumber eksternal untuk menggunakan kembali konfigurasi yang ada atau mengimpor aturan dari alat lain.
Aturan jarak jauh (melalui GitHub)
Impor aturan langsung dari repositori GitHub apa pun yang dapat Anda akses—publik atau privat.
- Buka menyesuaikan di bilah sisi
- Buka aturan lalu klik Add Rule
- Pilih Remote Rule (Github)
- Tempel URL repositori GitHub yang berisi aturan. Cursor akan memindai semua file
.mdcdalam repo. - Cursor akan mengambil dan menyinkronkan aturan ke proyek Anda
Aturan akan ditempatkan di .cursor/rules/imported/<repoName>. Aturan juga akan mempertahankan path relatifnya, sehingga dir/rule.mdc akan diimpor sebagai .cursor/rule/imported/<repoName>/dir/rule.mdc.
AGENTS.md
AGENTS.md adalah berkas Markdown sederhana untuk menentukan instruksi agent. Letakkan di direktori root proyek sebagai alternatif .cursor/rules untuk kasus penggunaan sederhana.
Berbeda dengan aturan proyek, AGENTS.md adalah berkas Markdown biasa tanpa metadata atau konfigurasi kompleks. Berkas ini ideal untuk proyek yang memerlukan instruksi sederhana dan mudah dibaca tanpa kerumitan aturan terstruktur.
Cursor mendukung AGENTS.md di direktori root proyek dan subdirektori.
# Instruksi Proyek## Gaya Kode- Gunakan TypeScript untuk semua file baru- Utamakan komponen fungsional dalam React- Gunakan snake_case untuk kolom database## Arsitektur- Terapkan pola repositori- Simpan logika bisnis di lapisan layananPeningkatan
Dukungan AGENTS.md bertingkat dalam subdirektori kini tersedia. Anda dapat menempatkan file AGENTS.md di subdirektori mana pun dalam proyek Anda. File tersebut akan otomatis diterapkan saat bekerja dengan file di direktori tersebut atau direktori turunannya.
Hal ini memungkinkan kontrol yang lebih terperinci atas instruksi agent berdasarkan bagian codebase yang sedang Anda kerjakan:
project/ AGENTS.md # Instruksi global frontend/ AGENTS.md # Instruksi khusus frontend components/ AGENTS.md # Instruksi khusus komponen backend/ AGENTS.md # Instruksi khusus backendInstruksi dari file AGENTS.md bertingkat digabungkan dengan instruksi dari direktori induk, dengan instruksi yang lebih spesifik diprioritaskan.
Aturan Pengguna
Aturan Pengguna adalah preferensi global yang ditentukan di Menyesuaikan → Aturan dan berlaku untuk semua proyek. Aturan ini digunakan oleh Agent (Chat) dan ideal untuk menetapkan gaya komunikasi atau konvensi coding pilihan:
Harap jawab secara ringkas. Hindari pengulangan atau kata-kata pengisi yang tidak perlu.FAQ
Periksa jenis aturan. Untuk Terapkan Secara Cerdas, pastikan deskripsi telah ditetapkan. Untuk Terapkan ke File Tertentu, pastikan pola file cocok dengan file yang dirujuk.
Ya. Gunakan @filename.ts untuk mencakup file dalam konteks aturan Anda. Anda juga dapat @mention aturan di chat untuk menerapkannya secara manual.
Ya, Anda dapat meminta agent membuat aturan baru untuk Anda.
Tidak. Aturan tidak memengaruhi Cursor Tab atau fitur AI lainnya.
Tidak. Aturan pengguna tidak diterapkan pada Inline Edit (Cmd/Ctrl+K). Aturan tersebut hanya digunakan oleh Agent (Chat).