{"_id":"@avisek_yorkie/cursor-rules","_rev":"9-a5d09938d36daf68f38cf1b089469ab5","name":"@avisek_yorkie/cursor-rules","dist-tags":{"latest":"1.0.8"},"versions":{"1.0.0":{"name":"@avisek_yorkie/cursor-rules","version":"1.0.0","keywords":["cursor","cursor-rules","code-quality","documentation","naming-conventions","javascript","typescript"],"license":"MIT","_id":"@avisek_yorkie/cursor-rules@1.0.0","maintainers":[{"name":"avisek_yorkie_41","email":"avisek@york.ie"}],"homepage":"https://github.com/avisek41/cursor-rules-js-ts#readme","bugs":{"url":"https://github.com/avisek41/cursor-rules-js-ts/issues"},"dist":{"shasum":"4556443665fdd8fded1e6a07242b5cd2865e78d7","tarball":"https://registry.npmjs.org/@avisek_yorkie/cursor-rules/-/cursor-rules-1.0.0.tgz","fileCount":7,"integrity":"sha512-JEaNsKRm4vNf/HrT8oZy7lu9v19CLBfJC246AXkNwEe6ViYDtVPfCkJ+R9es5t7dp9U7tIDQsakTVUwXBuxtbA==","signatures":[{"sig":"MEUCIHQVlWyWDoSVolSR8ogygAIw1Ps/iMoLhFnkobk7ynjIAiEA3j8bh573ySOVZ4iwJMxwS/wcprEUdkZgch/ixfddRNY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":44916},"gitHead":"2259ad8d0e4dcf49ad7f709d3b2851a67a00ab8d","_npmUser":{"name":"avisek_yorkie_41","email":"avisek@york.ie"},"repository":{"url":"git+https://github.com/avisek41/cursor-rules-js-ts.git","type":"git"},"_npmVersion":"10.9.4","description":"Cursor AI rules for code quality, documentation, and naming conventions (JS/TS)","directories":{},"_nodeVersion":"22.22.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/cursor-rules_1.0.0_1770703706605_0.17594964282334513","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"name":"@avisek_yorkie/cursor-rules","version":"1.0.1","keywords":["cursor","cursor-rules","code-quality","documentation","naming-conventions","javascript","typescript"],"license":"MIT","_id":"@avisek_yorkie/cursor-rules@1.0.1","maintainers":[{"name":"avisek_yorkie_41","email":"avisek@york.ie"}],"homepage":"https://github.com/avisek41/cursor-rules-js-ts#readme","bugs":{"url":"https://github.com/avisek41/cursor-rules-js-ts/issues"},"bin":{"cursor-rules-init":"bin/init.js"},"dist":{"shasum":"b87fa1591122103b848c0a87a82422866bc71b81","tarball":"https://registry.npmjs.org/@avisek_yorkie/cursor-rules/-/cursor-rules-1.0.1.tgz","fileCount":8,"integrity":"sha512-iyPGI9htyj4d2S2nLZaHb6euxQSwVKxPrcV1mIvJFZ38xm1rx0IX1fRfVTb2sKVdTlwo1N35oyC1nIznr4xT/Q==","signatures":[{"sig":"MEQCIHTjMHA2LGSxG/vFDDBxD+6zad997S3arIDQChb1wCUKAiADpQvOgDgPplZh6MG8QmJgAxHYo1isxoCrqBV6J0DDuQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":46454},"gitHead":"5a4da343d6a5a9d4ac716bf557b799657bc5fba9","_npmUser":{"name":"avisek_yorkie_41","email":"avisek@york.ie"},"repository":{"url":"git+https://github.com/avisek41/cursor-rules-js-ts.git","type":"git"},"_npmVersion":"10.9.4","description":"Cursor AI rules for code quality, documentation, and naming conventions (JS/TS)","directories":{},"_nodeVersion":"22.22.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/cursor-rules_1.0.1_1770704758131_0.44776188386655025","host":"s3://npm-registry-packages-npm-production"}},"1.0.2":{"name":"@avisek_yorkie/cursor-rules","version":"1.0.2","keywords":["cursor","cursor-rules","code-quality","documentation","naming-conventions","javascript","typescript"],"license":"MIT","_id":"@avisek_yorkie/cursor-rules@1.0.2","maintainers":[{"name":"avisek_yorkie_41","email":"avisek@york.ie"}],"homepage":"https://github.com/avisek41/cursor-rules-js-ts#readme","bugs":{"url":"https://github.com/avisek41/cursor-rules-js-ts/issues"},"bin":{"cursor-rules-init":"bin/init.js"},"dist":{"shasum":"89b10221da3c5daa82b4853904b35f91140423f4","tarball":"https://registry.npmjs.org/@avisek_yorkie/cursor-rules/-/cursor-rules-1.0.2.tgz","fileCount":8,"integrity":"sha512-4ksN1N24E65AzjVKaHGH38iAWcoHe9OnK89hSVZhiybN8IHyKg0lIDk6iQ7wTOCJeBdWChhj8uicd8TS2ANIUg==","signatures":[{"sig":"MEUCIQDN/Dme1hPCN6mJDQpJqxtALUro+PUUhO7LuZQ/UJF19QIgJpuvMsIPHDTvSFfi6v1WY+REvetpNZa2kN+cu6Nh2I0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":46634},"gitHead":"a9ee4c109b69e472331bd3b20f6be9c9d107d20b","_npmUser":{"name":"avisek_yorkie_41","email":"avisek@york.ie"},"repository":{"url":"git+https://github.com/avisek41/cursor-rules-js-ts.git","type":"git"},"_npmVersion":"10.9.4","description":"Cursor AI rules for code quality, documentation, and naming conventions (JS/TS)","directories":{},"_nodeVersion":"22.22.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/cursor-rules_1.0.2_1770706505409_0.3304184064505731","host":"s3://npm-registry-packages-npm-production"}},"1.0.3":{"name":"@avisek_yorkie/cursor-rules","version":"1.0.3","keywords":["cursor","cursor-rules","code-quality","documentation","naming-conventions","ai-assisted-development","javascript","typescript","react","angular","node","react-native"],"license":"MIT","_id":"@avisek_yorkie/cursor-rules@1.0.3","maintainers":[{"name":"avisek_yorkie_41","email":"avisek@york.ie"}],"homepage":"https://github.com/avisek41/cursor-rules-js-ts#readme","bugs":{"url":"https://github.com/avisek41/cursor-rules-js-ts/issues"},"bin":{"cursor-rules-init":"bin/init.js"},"dist":{"shasum":"d5eb0a5dae4ac6a19ca2f5846e5645104dd52bb5","tarball":"https://registry.npmjs.org/@avisek_yorkie/cursor-rules/-/cursor-rules-1.0.3.tgz","fileCount":9,"integrity":"sha512-JIGp9W30lAgAI//wXcvPCboDadoZNmmPObQYflRx/qRU1dGk/2KHAGDpHf9xovrhvHd0XwYXoFUmAym07QzyvA==","signatures":[{"sig":"MEUCIEMkow/EjMlhIwRIk3qrPlN9P+CcUjsuXP5SPW/lV25wAiEA0NrWsOPHEhZczRZH0q59yf1L7jhIGLQRj6OL461m2Rk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":59825},"gitHead":"363c51f15ed2af25b5283a39c87de2ca2b621b34","_npmUser":{"name":"avisek_yorkie_41","email":"avisek@york.ie"},"repository":{"url":"git+https://github.com/avisek41/cursor-rules-js-ts.git","type":"git"},"_npmVersion":"10.9.4","description":"Cursor AI rules for TS/JS (React, Angular, Node, React Native): code quality, docs, naming, AI-assisted development.","directories":{},"_nodeVersion":"22.22.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/cursor-rules_1.0.3_1770717505131_0.40118831441101754","host":"s3://npm-registry-packages-npm-production"}},"1.0.4":{"name":"@avisek_yorkie/cursor-rules","version":"1.0.4","keywords":["cursor","cursor-rules","code-quality","documentation","naming-conventions","ai-assisted-development","javascript","typescript","react","angular","node","react-native"],"license":"MIT","_id":"@avisek_yorkie/cursor-rules@1.0.4","maintainers":[{"name":"avisek_yorkie_41","email":"avisek@york.ie"}],"homepage":"https://github.com/avisek41/cursor-rules-js-ts#readme","bugs":{"url":"https://github.com/avisek41/cursor-rules-js-ts/issues"},"bin":{"cursor-rules-init":"bin/init.js"},"dist":{"shasum":"bd4dbe3d1e16050c587903116067d20769958d95","tarball":"https://registry.npmjs.org/@avisek_yorkie/cursor-rules/-/cursor-rules-1.0.4.tgz","fileCount":10,"integrity":"sha512-WUl7fURcmNMuIecAgcvY91qAVe0EjiEOo+2+XHI9Ya2wmoENNWN+mVuzq4Aiy48rIZt8Lnk8XxFQBvupEfR1lQ==","signatures":[{"sig":"MEUCIBVyJcOlf/El9Vjh1h+nz9i1Nl67nPNrZnb3OJALSNotAiEAycmTSh7K5vQBlZ5magLlxRYZ9yPCQUMAy7iBVEYV6P8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":67192},"gitHead":"da5a57e85cd96454033d49f8d66755c6d9947edb","_npmUser":{"name":"avisek_yorkie_41","email":"avisek@york.ie"},"repository":{"url":"git+https://github.com/avisek41/cursor-rules-js-ts.git","type":"git"},"_npmVersion":"10.9.4","description":"Cursor AI rules for TS/JS (React, Angular, Node, React Native): code quality, docs, naming, AI-assisted development.","directories":{},"_nodeVersion":"22.22.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/cursor-rules_1.0.4_1770722328170_0.9751880664387003","host":"s3://npm-registry-packages-npm-production"}},"1.0.5":{"name":"@avisek_yorkie/cursor-rules","version":"1.0.5","keywords":["cursor","cursor-rules","code-quality","documentation","naming-conventions","ai-assisted-development","javascript","typescript","react","angular","node","react-native"],"license":"MIT","_id":"@avisek_yorkie/cursor-rules@1.0.5","maintainers":[{"name":"avisek_yorkie_41","email":"avisek@york.ie"}],"homepage":"https://github.com/avisek41/cursor-rules-js-ts#readme","bugs":{"url":"https://github.com/avisek41/cursor-rules-js-ts/issues"},"bin":{"cursor-rules-init":"bin/init.js"},"dist":{"shasum":"25f91eb847224a02f912d3a052506390db986cd4","tarball":"https://registry.npmjs.org/@avisek_yorkie/cursor-rules/-/cursor-rules-1.0.5.tgz","fileCount":11,"integrity":"sha512-3utJr4vPyWp1W3aYnlBq1hbwv9lqQeumEeDeBaZdGDPa9eyq8S/DTya2Fzy6Nv5ZxWUAePTqM6lFEhzF7i4uRw==","signatures":[{"sig":"MEUCIA61gPi8+7jTOe7BzD3WKH/dj7cyul1bjGlkSGEWLOjmAiEAgtRmgdl+1QRSFVu4EXTO2ZrTKXNNJJr71pjtHIHY+9E=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":74666},"gitHead":"6a6df429e29971eada7c7f8c31ba9420d2fd7358","_npmUser":{"name":"avisek_yorkie_41","email":"avisek@york.ie"},"repository":{"url":"git+https://github.com/avisek41/cursor-rules-js-ts.git","type":"git"},"_npmVersion":"10.9.4","description":"Cursor AI rules for TS/JS (React, Angular, Node, React Native): code quality, docs, naming, AI-assisted development.","directories":{},"_nodeVersion":"22.22.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/cursor-rules_1.0.5_1770724241597_0.5990532735645846","host":"s3://npm-registry-packages-npm-production"}},"1.0.6":{"name":"@avisek_yorkie/cursor-rules","version":"1.0.6","keywords":["cursor","cursor-rules","code-quality","documentation","naming-conventions","ai-assisted-development","javascript","typescript","react","angular","node","react-native"],"license":"MIT","_id":"@avisek_yorkie/cursor-rules@1.0.6","maintainers":[{"name":"avisek_yorkie_41","email":"avisek@york.ie"}],"homepage":"https://github.com/avisek41/cursor-rules-js-ts#readme","bugs":{"url":"https://github.com/avisek41/cursor-rules-js-ts/issues"},"bin":{"cursor-rules-init":"bin/init.js"},"dist":{"shasum":"3b18c81e8c0d456ad04ae5e5d838876a418c230b","tarball":"https://registry.npmjs.org/@avisek_yorkie/cursor-rules/-/cursor-rules-1.0.6.tgz","fileCount":11,"integrity":"sha512-mV81aBWi/Go1Af4giBB7j+syBTM4BInJ8cOZlOkNPuM9g54NdmETbQfoIo9Og40Lte7TVfAbXh84FMQTFHRbyA==","signatures":[{"sig":"MEUCICRfTVMr5k2v+8xsFweCobOnuT+gg5BTXS+KEKFc3XTQAiEA6YWg21uZni9eWz7xCe92m5jKd/XE9vq221FF/Qz9vsk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":75831},"gitHead":"f435ad9c266a04b96eca321238a98b95e5886f4f","_npmUser":{"name":"avisek_yorkie_41","email":"avisek@york.ie"},"repository":{"url":"git+https://github.com/avisek41/cursor-rules-js-ts.git","type":"git"},"_npmVersion":"10.9.4","description":"Cursor AI rules for TS/JS (React, Angular, Node, React Native): code quality, docs, naming, AI-assisted development.","directories":{},"_nodeVersion":"22.22.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/cursor-rules_1.0.6_1772001454530_0.2193716152345846","host":"s3://npm-registry-packages-npm-production"}},"1.0.7":{"name":"@avisek_yorkie/cursor-rules","version":"1.0.7","keywords":["cursor","cursor-rules","code-quality","documentation","naming-conventions","ai-assisted-development","javascript","typescript","react","angular","node","react-native"],"license":"MIT","_id":"@avisek_yorkie/cursor-rules@1.0.7","maintainers":[{"name":"avisek_yorkie_41","email":"avisek@york.ie"}],"homepage":"https://github.com/avisek41/cursor-rules-js-ts#readme","bugs":{"url":"https://github.com/avisek41/cursor-rules-js-ts/issues"},"bin":{"cursor-rules-init":"bin/init.js"},"dist":{"shasum":"7e9230b2eae43aedb99487818877d1cbd68064b9","tarball":"https://registry.npmjs.org/@avisek_yorkie/cursor-rules/-/cursor-rules-1.0.7.tgz","fileCount":12,"integrity":"sha512-f6EtjhNDTdFPIPHwmSn4ZOxrTUuFOkFzn0sPx/EwxeVNYicDW0nCK60ufEenrN1x+bnLJO7yJ8kSlpwQtacM0w==","signatures":[{"sig":"MEUCIQDtJzmxJ4LMkJdG9IsJK0xRZXez6lsnWIfDbVFVs/+s8wIgAfeYZwKGBqwwR1nrUcAYgtJL/PrnujlzDWcdh2kMib0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":76322},"gitHead":"a17d67ada799c8e1af6874997073d7472dc24623","scripts":{"postinstall":"node bin/postinstall.js"},"_npmUser":{"name":"avisek_yorkie_41","email":"avisek@york.ie"},"repository":{"url":"git+https://github.com/avisek41/cursor-rules-js-ts.git","type":"git"},"_npmVersion":"10.9.4","description":"Cursor AI rules for TS/JS (React, Angular, Node, React Native): code quality, docs, naming, AI-assisted development.","directories":{},"_nodeVersion":"22.22.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/cursor-rules_1.0.7_1772449520836_0.6589301217713894","host":"s3://npm-registry-packages-npm-production"}},"1.0.8":{"name":"@avisek_yorkie/cursor-rules","version":"1.0.8","description":"Cursor AI rules for TS/JS (React, Angular, Node, React Native): code quality, docs, naming, AI-assisted development.","keywords":["cursor","cursor-rules","code-quality","documentation","naming-conventions","ai-assisted-development","javascript","typescript","react","angular","node","react-native"],"license":"MIT","repository":{"type":"git","url":"git+https://github.com/avisek41/cursor-rules-js-ts.git"},"bin":{"cursor-rules-init":"bin/init.js"},"scripts":{"postinstall":"node bin/postinstall.js"},"publishConfig":{"access":"public"},"_id":"@avisek_yorkie/cursor-rules@1.0.8","gitHead":"2d737044a63cad294c44f22eb5c8c84ca4018a83","bugs":{"url":"https://github.com/avisek41/cursor-rules-js-ts/issues"},"homepage":"https://github.com/avisek41/cursor-rules-js-ts#readme","_nodeVersion":"22.22.0","_npmVersion":"10.9.4","dist":{"integrity":"sha512-9QvtjLycEs1ksrC5Mw+pfr1eEfcTWkAt3AqCfy5j/isUECueeOjiGMBziEMbWrmCEIu3DtPXhsVs40RqoESoQQ==","shasum":"ad688ac450a6e7b98496fcc9e32ae6adea61b6f0","tarball":"https://registry.npmjs.org/@avisek_yorkie/cursor-rules/-/cursor-rules-1.0.8.tgz","fileCount":12,"unpackedSize":76928,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIAPuPSNn3s6zsnVYmNBYKjh5F1HlBWrG/ED9rRwMkHOVAiA+f0UGA7fKeD3w37kvhNfb9pDlkACPgescVpzky2tE9Q=="}]},"_npmUser":{"name":"avisek_yorkie_41","email":"avisek@york.ie"},"directories":{},"maintainers":[{"name":"avisek_yorkie_41","email":"avisek@york.ie"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/cursor-rules_1.0.8_1772450066217_0.338228224005628"},"_hasShrinkwrap":false}},"time":{"created":"2026-02-10T06:08:26.493Z","modified":"2026-03-02T11:14:26.546Z","1.0.0":"2026-02-10T06:08:26.793Z","1.0.1":"2026-02-10T06:25:58.286Z","1.0.2":"2026-02-10T06:55:05.565Z","1.0.3":"2026-02-10T09:58:25.274Z","1.0.4":"2026-02-10T11:18:48.305Z","1.0.5":"2026-02-10T11:50:41.740Z","1.0.6":"2026-02-25T06:37:34.688Z","1.0.7":"2026-03-02T11:05:20.978Z","1.0.8":"2026-03-02T11:14:26.387Z"},"bugs":{"url":"https://github.com/avisek41/cursor-rules-js-ts/issues"},"license":"MIT","homepage":"https://github.com/avisek41/cursor-rules-js-ts#readme","keywords":["cursor","cursor-rules","code-quality","documentation","naming-conventions","ai-assisted-development","javascript","typescript","react","angular","node","react-native"],"repository":{"type":"git","url":"git+https://github.com/avisek41/cursor-rules-js-ts.git"},"description":"Cursor AI rules for TS/JS (React, Angular, Node, React Native): code quality, docs, naming, AI-assisted development.","maintainers":[{"name":"avisek_yorkie_41","email":"avisek@york.ie"}],"readme":"# Cursor Rules - Generic Tech Stack\n\nThis directory contains comprehensive cursor rules designed to work with any technology stack. These rules help maintain code quality, consistency, and best practices across all your projects.\n\n## Install & Integrate\n\n**1. Install the package** (as a dev dependency so it doesn’t ship to production):\n\n```bash\nnpm install -D @avisek_yorkie/cursor-rules\n```\n\n**2. Apply the rules to your project** (run from your project root):\n\n```bash\nnpx cursor-rules-init\n```\n\n`npx cursor-rules-init` is the primary CLI output path and always shows setup progress in the terminal.\n\nThis creates:\n\n- **`.cursorrules`** in your project root  \n- **`.cursor/rules/`** with `ai-assisted-development.mdc`, `code-quality.mdc`, `documentation.mdc`, `naming-conventions.mdc`, `typescript-patterns.mdc`, and `modern-js-ts-patterns.mdc`\n\nCursor will **use and apply** these rules automatically when you write code, refactor, get completions, or ask for reviews.\n\n**Manual copy (alternative):**\n\n```bash\nmkdir -p .cursor/rules\ncp node_modules/@avisek_yorkie/cursor-rules/.cursorrules .\ncp node_modules/@avisek_yorkie/cursor-rules/rules/*.mdc .cursor/rules/\n```\n\n**3. Verify:** Ensure `.cursorrules` exists and `.cursor/rules/` contains the six `.mdc` files. Restart Cursor if needed. You’re done.\n\n**Resulting structure in your project:**\n\n```\nyour-project/\n├── .cursorrules\n├── .cursor/\n│   └── rules/\n│       ├── ai-assisted-development.mdc\n│       ├── code-quality.mdc\n│       ├── documentation.mdc\n│       ├── naming-conventions.mdc\n│       ├── typescript-patterns.mdc\n│       └── modern-js-ts-patterns.mdc\n├── src/\n└── ...\n```\n\n## 📁 Directory Structure (this package)\n\n```\ncursor-rules/\n├── rules/\n│  ├── ai-assisted-development.mdc  # AI workflow (plan-first, small steps)\n│  ├── code-quality.mdc             # Code quality standards and best practices\n│  ├── documentation.mdc           # Documentation standards and guidelines\n│  ├── naming-conventions.mdc       # Naming conventions (JS/TS)\n│  ├── typescript-patterns.mdc       # TypeScript patterns and type safety\n│  ├── modern-js-ts-patterns.mdc    # Modern JS/TS - async, optional chaining, array methods\n├── .cursorrules            # Main cursor rules file (copy to project root)\n├── README.md\n└── SETUP.md\n```\n\n## 🚀 Quick Start\n\n### Step 1: Install\n\n```bash\nnpm install -D @avisek_yorkie/cursor-rules\n```\n\n### Step 2: Apply rules (choose one)\n\n**Option A – One command (recommended):**\n```bash\nnpx cursor-rules-init\n```\n\nThis command always shows the setup banner and progress output.\n\n**Option B – Manual copy from node_modules:**\n```bash\nmkdir -p .cursor/rules\ncp node_modules/@avisek_yorkie/cursor-rules/.cursorrules .\ncp node_modules/@avisek_yorkie/cursor-rules/rules/*.mdc .cursor/rules/\n```\n\n**Option C – From a local clone:**\n```bash\nmkdir -p .cursor/rules\ncp /path/to/cursor-rules/.cursorrules .\ncp /path/to/cursor-rules/rules/*.mdc .cursor/rules/\n```\n\n### Step 3: Verify integration\n\nCursor will automatically detect and use the `.cursorrules` file in your project root. The rules will be applied when:\n- Writing new code\n- Refactoring existing code\n- Code completion suggestions\n- Code review assistance\n\n### Step 4: Customize (Optional)\n\nYou can customize these rules for your specific project by:\n- Adding project-specific rules to `.cursorrules`\n- **Adding new `.mdc` files in `.cursor/rules/`** (see below — they are automatically linked and applied)\n- Modifying the existing `.mdc` files to include team-specific conventions\n\n## ➕ Adding Project-Specific Rules (Auto-Applied)\n\n**Yes — any `.mdc` file you add inside `.cursor/rules/` is automatically loaded and applied by Cursor.** You don’t need to “link” it anywhere. Cursor scans the `.cursor/rules/` folder and uses every rule file. **You do not need to add the new file to `.cursorrules`**—it is picked up automatically.\n\n### How to add a project-specific rule\n\n1. Create a new file in your project’s `.cursor/rules/` folder, e.g. `project-conventions.mdc` or `react-patterns.mdc`.\n2. Use the same format as the existing rules: YAML frontmatter + markdown content.\n\n**Example: rule that always applies**\n\n```markdown\n---\ndescription: Our project's React and API conventions\nalwaysApply: true\n---\n\n# Project Conventions\n\n- Use our design system components from `@company/ui`.\n- API base URL from env: `process.env.VITE_API_URL`.\n- All new screens go under `src/screens/`.\n```\n\n**Example: rule that applies only for certain files**\n\n```markdown\n---\ndescription: React component patterns for this project\nglobs: \"**/*.tsx\"\nalwaysApply: false\n---\n\n# React Patterns\n\n- Functional components only; use hooks for state.\n- Add testID to interactive elements for E2E.\n```\n\n### Frontmatter options\n\n| Field | Meaning |\n|-------|--------|\n| `alwaysApply: true` | Rule is included in every conversation. |\n| `alwaysApply: false` | Rule is included only when relevant (e.g. when matching files are open). |\n| `globs: \"**/*.tsx\"` | When set, rule is applied when you work with files matching that pattern. |\n\n### Resulting structure (example)\n\n```\nyour-project/\n├── .cursorrules\n├── .cursor/\n│   └── rules/\n│       ├── ai-assisted-development.mdc   # from this package\n│       ├── ai-assisted-development.mdc   # from this package\n│       ├── code-quality.mdc               # from this package\n│       ├── documentation.mdc              # from this package\n│       ├── naming-conventions.mdc        # from this package\n│       ├── typescript-patterns.mdc        # from this package\n│       ├── modern-js-ts-patterns.mdc     # from this package\n│       └── project-conventions.mdc        # your project-specific rule ✅\n├── src/\n└── ...\n```\n\nPackage rules and your own rules work together: Cursor applies all of them. Keep package rules as-is and add project-specific ones in the same folder.\n\n## 📚 Rule Files Overview\n\n### 1. Code Quality (`.cursor/rules/code-quality.mdc`)\n\nCovers:\n- ✅ Clean code standards\n- ✅ Error handling best practices\n- ✅ Security guidelines\n- ✅ Performance considerations\n- ✅ Code complexity management\n- ✅ Testing requirements\n- ✅ Language-specific guidelines\n\n**Key Principles:**\n- Functions should be 20-30 lines (max 50)\n- Always handle errors explicitly\n- Validate all inputs\n- Never hardcode secrets\n- Keep cyclomatic complexity low\n\n### 2. Documentation (`.cursor/rules/documentation.mdc`)\n\nCovers:\n- ✅ Function/method documentation standards\n- ✅ README file requirements\n- ✅ API documentation guidelines\n- ✅ Architecture documentation\n- ✅ Inline comments best practices\n- ✅ Documentation tools and generators\n\n**Key Principles:**\n- Document all public APIs\n- Write self-documenting code\n- Include code examples\n- Keep documentation up-to-date\n- Use appropriate documentation tools\n\n### 3. Naming Conventions (`.cursor/rules/naming-conventions.mdc`)\n\nCovers:\n- ✅ Variable and function naming\n- ✅ Class and type naming\n- ✅ File and directory naming\n- ✅ TypeScript/JavaScript conventions\n- ✅ Database naming\n- ✅ API endpoint naming\n- ✅ Configuration naming\n\n**Key Principles:**\n- Use descriptive names that reveal intent\n- Follow language-specific conventions\n- Be consistent throughout codebase\n- Avoid abbreviations and generic names\n- Use appropriate prefixes for booleans\n\n### 4. TypeScript Patterns (`.cursor/rules/typescript-patterns.mdc`)\n\nCovers:\n- ✅ Type safety: avoid `any`, use `unknown` and type guards; strict mode\n- ✅ Interface vs type; discriminated unions for complex state\n- ✅ Utility types: Partial, Pick, Omit, Record, ReturnType, Parameters, Awaited\n- ✅ Generics: constraints, default params; avoid over-engineering\n- ✅ Advanced: `as const`, `satisfies`, readonly, template literal types\n\n**Key Principles:**\n- Enable `strict: true`; prefer `unknown` + type guards over `any`\n- Use interfaces for object shapes; types for unions and complex types\n- Use built-in utility types; constrain generics; 1–2 type params preferred\n\n### 5. Modern JS/TS Patterns (`.cursor/rules/modern-js-ts-patterns.mdc`)\n\nCovers:\n- ✅ Async/await over promise chains; try/catch; Promise.all / Promise.allSettled\n- ✅ No async in forEach—use for...of or Promise.all\n- ✅ Optional chaining (`?.`) and nullish coalescing (`??`)\n- ✅ Destructuring for params and defaults; rename when needed\n- ✅ Prefer map/filter/reduce, some/every, find/findIndex over imperative loops\n\n**Key Principles:**\n- Use `?.` and `??` instead of nested `&&` and `||` for optional/default values\n- Use array methods for transformation and boolean checks; avoid filter()[0] in favor of find()\n\n## 📐 Coding Styles & Principles\n\nAll rule styles referenced in the code-quality and related rules, in one place.\n\n### Core acronyms\n\n| Style | Full name | Meaning |\n|-------|-----------|----------|\n| **SOLID** | **S**ingle Responsibility, **O**pen/Closed, **L**iskov Substitution, **I**nterface Segregation, **D**ependency Inversion | One thing per class/function; extend without modifying; depend on abstractions. |\n| **DRY** | Don't Repeat Yourself | Extract repeated logic; use configuration over duplication; no copy-paste without refactoring. |\n| **KISS** | Keep It Simple, Stupid | Simple solution > clever; readable > clever; avoid over-engineering. |\n| **YAGNI** | You Aren't Gonna Need It | Build what you need now; don't build for hypotheticals; remove unused code. |\n\n### Golden rules (summary)\n\n1. **Readability > Cleverness** — Code is read 10× more than written  \n2. **Simple > Complex** — Simplest solution that works  \n3. **Small Functions** — One function, one responsibility (~20–30 lines, max 50)  \n4. **Meaningful Names** — Names should reveal intent  \n5. **Handle Errors** — Never fail silently  \n6. **Delete Code** — Remove dead code; don't just comment it out  \n7. **Test Your Code** — If you can't test it, refactor it  \n8. **Composition over Inheritance** — Compose small pieces; avoid deep hierarchies (especially in React)  \n9. **Immutability** — Prefer `const` and immutable updates; avoid hidden mutation  \n10. **Explicit over Implicit** — Clear types and APIs; no magic; avoid `any`  \n\n### Additional JS/TS principles\n\n| Principle | One-line meaning |\n|-----------|-------------------|\n| **Pure functions when possible** | Same inputs → same output; no hidden side effects; isolate I/O at boundaries. |\n| **Single source of truth** | One canonical place per piece of state; avoid syncing duplicate state. |\n| **Declarative over imperative** | Describe *what* you want (e.g. JSX) over step-by-step *how*. |\n| **Principle of least surprise** | APIs and behavior should match what a reasonable developer would expect. |\n| **Colocate / locality** | Keep related code together (component + styles + tests; route + handler + types). |\n| **Encapsulation** | Don't leak implementation details; expose a small, stable API surface. |\n| **Strict TypeScript** | Use `strict: true`; avoid `any`; prefer `unknown` and type guards when needed. |\n\n### Documentation & naming (from rule files)\n\n- **Document WHY, not WHAT** — Explain decisions and non-obvious logic.  \n- **Names reveal intent** — Descriptive, specific names from the problem domain; avoid `data`, `info`, `handler`, `manager`.  \n- **Verbs for functions** — e.g. `get`, `set`, `create`, `validate`, `is`, `has`, `can`.  \n- **Boolean prefixes** — `is`, `has`, `can` (e.g. `isActive`, `hasPermission`, `canEdit`).\n\n## 🔧 Customization Guide\n\n### Adding Project-Specific Rules\n\nEdit `.cursorrules` to add project-specific rules:\n\n```markdown\n# Project-Specific Rules\n\n## React/React Native Specific\n- Always use functional components\n- Add testID to interactive components\n- Use hooks for state management\n\n## Your Custom Rules\n- Follow our internal API conventions\n- Use our design system components\n```\n\n### Language-Specific Customization\n\nEdit the appropriate `.mdc` file to add language-specific rules:\n\n```markdown\n# In .cursor/rules/code-quality.mdc\n\n### Your Language\n- Follow your language style guide\n- Use your preferred linter configuration\n- Follow your team's conventions\n```\n\n## 📋 Code Review Checklist\n\nUse this checklist during code reviews:\n\n### Code Quality\n- [ ] Functions are small and focused (20-30 lines)\n- [ ] All errors are handled appropriately\n- [ ] Input validation is present\n- [ ] No security vulnerabilities\n- [ ] No hardcoded secrets or values\n- [ ] Code complexity is manageable\n\n### Documentation\n- [ ] All public APIs are documented\n- [ ] README is complete and up-to-date\n- [ ] Code examples are included where needed\n- [ ] Comments explain \"why\" not \"what\"\n\n### Naming\n- [ ] Names are descriptive and reveal intent\n- [ ] Follows language-specific conventions\n- [ ] Consistent throughout codebase\n- [ ] Boolean names use appropriate prefixes\n- [ ] No abbreviations or generic names\n\n## 🌐 Supported Stack\n\nThese rules target **JavaScript/TypeScript** (Node.js, React, React Native, Vue, Angular, etc.). Core principles are universal; conventions are JS/TS-specific.\n\n## 🔄 Maintenance\n\n### Updating Rules\n\n1. Edit the `.mdc` files as needed\n2. Update `.cursorrules` if structure changes\n3. Test rules in a sample project\n4. Document any breaking changes\n\n### Version Control\n\nConsider versioning your rules:\n- Tag releases: `v1.0.0`, `v1.1.0`, etc.\n- Document changes in CHANGELOG\n- Keep rules in sync across projects\n\n## 📖 Best Practices\n\n1. **Start Early**: Add rules at project inception\n2. **Team Alignment**: Ensure all team members use the same rules\n3. **Regular Review**: Review and update rules quarterly\n4. **Consistency**: Use the same rules across all projects\n5. **Documentation**: Document any project-specific exceptions\n\n## 🐛 Troubleshooting\n\n### Rules Not Being Applied\n\n1. Check that `.cursorrules` is in project root\n2. Verify `.cursor/rules/` contains the three `.mdc` files\n3. Restart Cursor if needed\n4. Check for syntax errors in rule files\n\n### Conflicts with Existing Rules\n\n1. Review existing `.cursorrules` in your project\n2. Merge rules carefully\n3. Test in a sample file\n4. Document any conflicts resolved\n\n## 📝 License\n\nThese rules are provided as-is for use in your projects. Customize as needed for your team and organization.\n\n## 🤝 Contributing\n\nTo improve these generic rules:\n\n1. Test changes in multiple projects\n2. Ensure rules remain generic (not project-specific)\n3. Document language-specific additions\n4. Keep examples clear and practical\n\n## 📞 Support\n\nFor questions or issues:\n- Review the rule files for detailed guidelines\n- Check language-specific sections\n- Customize rules for your needs\n- Consult your team's coding standards\n\n---\n\n**Happy Coding! 🚀**\n\nThese rules will help you maintain high-quality, consistent code across all your projects, regardless of the technology stack.\n\n","readmeFilename":"README.md"}