99 पॉइंट द्वारा spilist2 2025-06-23 | 22 टिप्पणियां | WhatsApp पर शेयर करें

6/23 के आधार पर, और मेरे अनुभव + Cursor Reddit + Cursor कम्युनिटी + SNS + कई ब्लॉग पोस्ट्स को मिलाकर यह तैयार किया गया है। असहमति, आलोचना और चर्चा का स्वागत है।


टिप 1. रणनीतिक तरीके से मॉडल चुनें

  • हर मॉडल की coding क्षमता, speed और cost अलग होती है, इसलिए स्थिति के अनुसार चुनना महत्वपूर्ण है।
  • Thinking मॉडल (Claude 4, Gemini 2.5 Pro आदि) ज्यादा autonomous होते हैं, लेकिन speed धीमी होती है।
  • Non-Thinking मॉडल (GPT 4.1 आदि) स्पष्ट निर्देशों का अच्छी तरह पालन करते हैं और speed तेज होती है।
  • काम के प्रकार के अनुसार सुझाए गए मॉडल अलग होते हैं (उदाहरण: simple बदलाव के लिए Sonnet, complex planning के लिए Opus)।
  • 'Auto-select' फीचर की reliability कम है, इसलिए कई मॉडल खुद आजमाकर अपनी शैली ढूँढना बेहतर है।

टिप 2. complex app में बदलाव करते समय पहले Ask मोड में plan बनाएं

  • Agent मोड सीधे code में बदलाव करता है, इसलिए complex app में यह मौजूदा features को खराब कर सकता है।
  • Ask मोड file को modify नहीं करने वाला read-only मोड है, जो planning के लिए बहुत उपयोगी है।
  • पहले Ask मोड में AI के साथ plan पर चर्चा करें, फिर Agent मोड में उसे लागू करें — यह ज्यादा सुरक्षित है।
  • अगर prompt को स्पष्ट रखें, जैसे “अभी तुरंत बदलाव मत करो”, तो Ask मोड की अनावश्यक गतिविधि कम हो सकती है।
  • Manual मोड में reference files खुद बतानी पड़ती हैं, इसलिए उसका उपयोग अपेक्षाकृत कम है।

टिप 3. debugging करते समय सीधे file modify न करवाएं; test के साथ root cause समझें

  • अगर bug fix सीधे AI को सौंप दें, तो बार-बार failure होने की संभावना बढ़ जाती है।
  • चरण 1 (Agent): पहले bug को reproduce करने वाला 'failing' test code लिखवाएं (TDD तरीका)।
    • “X पेज पर Y दबाने पर A की तरह काम होना चाहिए, लेकिन B की तरह हो रहा है। मैं इसे TDD तरीके से ठीक करना चाहता हूँ, इसलिए इस behavior को reproduce करने वाला test code लिखकर चलाओ। याद रहे कि इस समय test code का fail होना ही सही है। हो सकता है मेरी समझ गलत हो, इसलिए अगर reproduce न हो तो मुझे बताओ। मेरे निर्देश के बिना समस्या को ठीक करना शुरू मत करो।”
  • चरण 2 (Ask): संभावित कारण और उन्हें verify करने के तरीके समझवाकर root cause पहचानें।
    • “मैं bug का root cause समझना चाहता हूँ। यह behavior क्यों और किन स्थितियों में होता है, उसके possible options बताओ। और उन options में से कौन-सा सही है, यह verify करने के तरीके भी बताओ। कौन-सी जानकारी और चाहिए, किन चीज़ों को log करना चाहिए आदि भी बताओ। उन तरीकों को चलाने की जरूरत नहीं है, सिर्फ समझाओ। अगर test code लिखते समय ही कारण समझ आ गया हो, तो वही समझाओ।”
  • चरण 3 (Agent): test code को .cursorignore से lock करें, फिर test pass होने तक code fix करवाएं।
    • “अभी जो test code बना है, उसे .cursorignore में जोड़ दो। उसके बाद, जैसा तुमने बताया है, सबसे संभावित कारणों से शुरू करके root cause पता करो, और ideal execution flow को flowchart में व्यवस्थित करो। फिर उसी ideal flow का उपयोग करके test code pass होने तक code modify करो। अगर मुझे कुछ verify या intervene करना हो, तो बताओ।”
  • test code लिखने के rules पहले से बनाकर रखना भी अच्छा है।

टिप 4. Cursor को rules खुद manage करने दें ताकि वह धीरे-धीरे और स्मार्ट बने

  • अगर chat session में meaningful बातचीत हुई हो, तो /Generate Cursor Rules फीचर का उपयोग किया जा सकता है।
  • बस ऐसा कहें: “इस बातचीत के आधार पर Rule बनाओ या modify करो।”
  • खासकर debugging के बाद, अगर bug का कारण समझ आ गया हो, तो वही गलती दोबारा न हो इसके लिए Rule जोड़ना या बदलना उपयोगी है।
  • इससे Cursor खुद सीखता, maintain करता और समय के साथ और स्मार्ट बनता जाता है।

टिप 5. multiple tabs और Auto options से productivity बढ़ाएं

  • Cursor में कई chat tabs एक साथ इस्तेमाल किए जा सकते हैं। एक tab में Agent code modify कर रहा हो, तो दूसरे tab में Ask मोड से अलग काम किया जा सकता है।
  • 'Auto-run' option चालू हो तो terminal execution या file writing जैसी चीज़ों के लिए हर बार approval नहीं देना पड़ता।
  • 'Auto-Fix Lints' option चालू हो तो type errors जैसी चीज़ें अपने-आप ठीक हो जाती हैं, जो सुविधाजनक है।

टिप 6. एक ही chat session को बहुत लंबा न खींचें

  • chat लंबी होने पर context size limit के कारण AI पहले की महत्वपूर्ण जानकारी भूल सकता है। (Cursor उसे अपने-आप summarize कर देता है)
  • एक task पूरा होने पर नई chat session शुरू करना ज्यादा फायदेमंद है।
  • नई chat में @Past Chats का इस्तेमाल करके पिछली बातचीत का summary context में inject किया जा सकता है।
  • meaningful बातों को rules में बदल दें (टिप 4), तो लंबी chat बनाए रखने की जरूरत और कम हो जाती है।

टिप 7. meaningful बदलाव पूरा होते ही commit ज़रूर करें

  • हर task पूरा होने पर Git में commit करने की आदत बहुत महत्वपूर्ण है।
  • commit वह न्यूनतम safety net है, जो AI के गलत code बदलाव की स्थिति में वापस लौटने में मदद करता है।
  • Cursor chat के जरिए Git की शुरुआती setup से लेकर commit message लिखने तक मदद ली जा सकती है।
    • “मैं इस codebase को GitHub पर upload करना चाहता हूँ। समस्या यह है कि मुझे Git और GitHub के बारे में कुछ भी नहीं पता, और मेरा account भी नहीं है। मुझे यह भी नहीं पता कि Git install है या नहीं। Step by step मदद करो।”
  • AI Commit Message फीचर से commit message अपने-आप generate भी कराया जा सकता है।

टिप 8. Cursor को code structure समझाएं, और file length व file names नियंत्रित रखें

  • Cursor के internal Tools की प्रकृति समझना उपयोगी है।
    • List Directory file content नहीं पढ़ता, सिर्फ directory names और file names पढ़ता है।
    • Read File एक बार में file की अधिकतम 250 lines ही पढ़ता है (Max मोड में 750 lines)।
    • अगर referenced file या directory बहुत बड़ी हो, तो पूरा शामिल होने की बजाय compress होकर केवल महत्वपूर्ण हिस्से, जैसे function call sites, बचे रह सकते हैं।
    • एक chat session में Tool calls केवल 25 बार तक किए जा सकते हैं; उससे अधिक के लिए Continue खुद दबाना पड़ता है (Auto apply edit option चालू हो तब भी यही है। Max मोड में Continue के बिना 200 बार तक संभव है)।
  • इसलिए files और directories के नाम ऐसे रखें जिनसे उनका role स्पष्ट हो, और file length 500 lines के भीतर रखने की कोशिश करें।
  • core directory structure या component जानकारी को Always Applied rule में जोड़ दें, तो AI को हर बार दोबारा explore नहीं करना पड़ता।
  • आप AI से ऐसा documentation बनवाने को कह सकते हैं जिससे उसे code structure समझने में आसानी हो, और उसे rule के रूप में जोड़ने को भी कह सकते हैं।
    • “इस codebase की structure और important files को एक नज़र में समझने लायक documentation बनाओ। चाहो तो mermaid diagram इस्तेमाल करो। और फिर उसे उचित project rule के रूप में जोड़ दो। इसे AlwaysApply: true के साथ बनाओ।”

टिप 9. file लंबी हो जाए तो Cursor से modularization करवाएं

  • अगर file बहुत लंबी हो जाए, तो AI से modularize करने के लिए कहना अच्छा रहता है।
  • चरण 1 (Ask): “अगर इस project को modularize करना हो, तो किन viewpoints या strategies से करना बेहतर होगा? उदाहरण के लिए: 1) Layered Architecture viewpoint 2) AOP viewpoint 3) FSD viewpoint 4) Clean Architecture viewpoint”
  • चरण 2 (Ask): “तुम्हारी सुझाई हुई strategies को मिलाकर एक उपयुक्त modularization plan बनाओ।”
  • चरण 3 (Agent): “उस plan को document करो और फिर लागू करो।”

टिप 10. @ का उपयोग करके सक्रिय रूप से context inject करें

  • @ symbol का उपयोग करके files, folders के अलावा कई तरह के context सीधे inject किए जा सकते हैं, जिससे AI बेहतर काम करता है।
  • @Code: code के सिर्फ कुछ हिस्सों, जैसे specific functions या variables, को refer किया जा सकता है।
  • @Docs: library की official docs को refer कराकर ज्यादा accurate code लिखवाया जा सकता है। कुछ docs Cursor के पास पहले से होते हैं और कुछ सीधे URL से जोड़े जा सकते हैं।
  • @Git: किसी specific branch या commit content को refer कराकर comparison या explanation कराया जा सकता है।
  • @Web, @Link: web search कराना या किसी specific link की content पढ़वाना संभव है।
  • @Recent Change: हाल के codebase changes को refer कराया जा सकता है। इसका exact behavior स्पष्ट नहीं मिला, लेकिन लगता है कि यह unstaged changes और recent commits पर आधारित है। जो non-developers commit management सख्ती से नहीं करते, उनके लिए यह उपयोगी हो सकता है।

टिप 11. security महत्वपूर्ण हो तो Privacy मोड चालू करें

  • अगर Privacy मोड चालू न हो, तो code, prompts आदि data collect होकर model training में इस्तेमाल हो सकते हैं।
  • Privacy मोड चालू होने पर code के कुछ हिस्से encrypted रूप में थोड़ी देर के लिए store हो सकते हैं, लेकिन उन्हें permanently store नहीं किया जाता और training में भी इस्तेमाल नहीं किया जाता।
  • हालांकि, Privacy मोड में background agent जैसी कुछ नई features इस्तेमाल नहीं की जा सकतीं।
  • अधिक जानकारी के लिए Cursor की privacy mode पर दी गई documentation देखें।

टिप 12. development को आसान और अधिक accurate बनाने वाले MCP और tools का उपयोग करें

  • task management के हिसाब से memory bank, TaskMaster, Vooster की सिफारिश है।
  • Cursor official docs के MCP deep link के जरिए एक बार में install किए जा सकते हैं।
    • Browserbase से browser चलाना, click करना, console पढ़ना, screenshot लेना आदि
    • PlayWright से E2E tests जोड़ना
    • Sentry से errors monitor और fix करना
    • Stripe और Paypal से payments करना
    • Netlify और Heroku से deploy करना
    • Snyk और Semgrep से security checks करना
    • Supabase से DB tables पढ़ना और लिखना → यह Cursor official docs में नहीं दिखता, लेकिन vibe coders के लिए मुझे यह अनिवार्य installation लगता है
  • अगर आप कंपनी के भीतर काम कर रहे हैं और कंपनी की स्थिति या कई products के context को अच्छे से बताने की जरूरत है, तो खुद MCP develop करना भी अच्छा विकल्प हो सकता है। (संदर्भ: Working with Documentation)
  • StageWise जैसे external tools का उपयोग करके UI के किसी specific हिस्से को point करके bug fix जैसी requests भी की जा सकती हैं।

इसके अलावा कुछ छोटी टिप्स

  • Max मोड: यह request-based नहीं बल्कि token-based billing पर चलता है, और इसमें बड़ा context तथा ज्यादा Tool usage संभव होता है।
  • मॉडल जोड़ना: settings में Claude 4 Opus जैसे default रूप से hidden models को enable किया जा सकता है।
  • Custom API Key: अपनी LLM API key जोड़ने का फीचर। इसका practical उपयोग अपेक्षाकृत कम है। ध्यान रहे, ऐसा करने पर भी Cursor server से होकर ही जाना पड़ता है।
  • settings sync: कई PCs के बीच settings sync अभी आधिकारिक रूप से बहुत अच्छी तरह support नहीं होती। Profile Export/Import के बारे में भी reports हैं कि यह ठीक से काम नहीं करता, और कुछ हफ्ते पहले एक extension आया था, लेकिन 6/23 तक उसमें कुछ समस्याएँ हैं।
    • VSCode Marketplace में यह दिखता है, लेकिन Cursor की Extension list में search नहीं होता
    • VSCode में install करने के बाद Cursor के Import VSCode Settings and Extensions फीचर से इसे लाया जा सकता है। लेकिन extension वास्तव में सही तरह initialize नहीं होता (related issue)
    • यह ठीक-ठाक लगता है, इसलिए उम्मीद है कि developer इसे जल्दी ठीक करेगा

22 टिप्पणियां

 
elddytbt 2025-06-25

टिप 4 और टिप 6 अच्छे हैं~~

एक बात जाननी थी, मेरे लिए महीने के 500 बहुत ही कम पड़ते हैं, तो आप इस समस्या को कैसे हल करते हैं?

 
spilist2 2025-06-25

क्या हाल ही में limits हटे नहीं थे?

मैं Claude Code भी साथ में इस्तेमाल कर रहा हूँ, और शायद इसलिए भी कि मैं ज़्यादातर AI Studio में चर्चा अच्छी तरह पूरी करने के बाद ही refined request देने की कोशिश करता हूँ + rules सेट करना + ज़रूरत पड़ने पर tab autocomplete के साथ सीधे implementation करना वगैरह, इसलिए मुझे बहुत कम ही लगा कि यह कम पड़ रहा है।

 
fanotify 2025-06-24

क्या उन फीचर्स का इस्तेमाल करने के लिए मूल रूप से paid subscription लेना ज़रूरी है? या अगर usage कम हो, तो क्या free basic member भी इन्हें follow कर सकता है?

 
spilist2 2025-06-24

मेरे अनुभव में Cursor का free plan फीचर्स और उपलब्ध उपयोग-सीमा, दोनों के मामले में काफ़ी सीमित है, इसलिए इसे मुफ्त में इस्तेमाल करना आसान नहीं लगता।

कुछ models ऐसे हैं जिन्हें मुफ्त में इस्तेमाल किया जा सकता है, लेकिन उतना ही उनकी coding क्षमता भी अच्छी नहीं है।

 
eususu 2025-06-24

टिप्स बहुत अच्छे हैं।
धन्यवाद!

 
dnltmdwhd 2025-06-24

कई उपयोगी बातें थीं जो मुझे पहले पता नहीं थीं~ धन्यवाद!

 
jk34011 2025-06-24

अच्छे टिप्स के लिए धन्यवाद~ इससे बहुत कुछ सीखने को मिला।

 
dkmin 2025-06-24

उपयोगी जानकारी साझा करने के लिए धन्यवाद। =b

"हालांकि, Privacy mode में background agent जैसी कुछ नवीनतम सुविधाओं का उपयोग नहीं किया जा सकता।"
=> मैं इसका ठोस विवरण जानना चाहता हूँ। कृपया स्रोत भी बताइए..

ref.
https://docs.cursor.com/background-agent

Background Agents are available in Privacy Mode. We will never train on your code, and we will only retain code for the purposes of running the agent. Learn more about Privacy mode

 
spilist2 2025-06-24

अरे, अभी कुछ समय पहले तक यह इस्तेमाल नहीं किया जा सकता था, लेकिन अब बदल गया है!! धन्यवाद।

 
baeba 2025-06-23

मेरे मामले में,
AI के source code बदलने से पहले, या prompt में सवाल पूछने से पहले,
मैं पूरे source code का local backup ले लेता हूँ।
./history/ के नीचे
./hisrory/r0001/
./hisrory/r0002/ ...
ऐसी structure वाली directory बनाकर development source का backup लेने वाला script चलाता हूँ..

Windows development environment होने की वजह से यह ps1 file है।

# backup.ps1  
$base = "./src"  
$history = "./history"  
  
# 최신 rXXXX 폴더 찾기  
$latest = Get-ChildItem -Path $history -Directory | Where-Object { $_.Name -match '^r\d{4}$' } | Sort-Object Name -Descending | Select-Object -First 1  
if ($latest) {  
    $num = [int]($latest.Name.Substring(1)) + 1  
} else {  
    $num = 1  
}  
$next = "r{0:D4}" -f $num  
$dest = "$history/$next"  
  
# 백업 폴더 생성  
New-Item -ItemType Directory -Path "$dest" -Force | Out-Null  
New-Item -ItemType Directory -Path "$dest/css" -Force | Out-Null  
New-Item -ItemType Directory -Path "$dest/js" -Force | Out-Null  
New-Item -ItemType Directory -Path "$dest/html" -Force | Out-Null  
New-Item -ItemType Directory -Path "$dest/images" -Force | Out-Null  
New-Item -ItemType Directory -Path "$dest/doc" -Force | Out-Null  
New-Item -ItemType Directory -Path "$dest/server" -Force | Out-Null  
  
# 파일/폴더 복사  
Copy-Item "$base/SPA_index.html" "$dest/SPA_index.html"  
Copy-Item "$base/css/*" "$dest/css/" -Recurse  
Copy-Item "$base/js/*" "$dest/js/" -Recurse  
Copy-Item "$base/images/*" "$dest/images/" -Recurse  
Copy-Item "$base/doc/*" "$dest/doc/" -Recurse  
  
# 서버 파일 복사: node_modules 제외  
Copy-Item "$base/server/*" "$dest/server/" -Recurse -Exclude "node_modules"  
  
Write-Host "백업 완료: $dest"  
 
spilist2 2025-06-23

Git का उपयोग करने की तुलना में इस तरीके के क्या फायदे और नुकसान हैं?

 
baeba 2025-06-24

Git भी साथ में इस्तेमाल कीजिए..
असल में development करते समय AI source code में काफी बदलाव कर सकता है..
इसलिए चाहे आप इसे एक-एक करके बहुत ध्यान से check भी करें, build करने पर error या bug आ सकता है
क्योंकि..

पिछले code पर rollback करना आसान हो जाता है.

Git से code rollback किया जा सकता है, लेकिन..
पूरा code पूरी तरह backup रहता है, इसलिए
बदले हुए code को जल्दी ढूंढकर देखते हुए implement करने में यह मददगार रहा.

 
turastory 2025-06-25

लगता है git subtree का इस्तेमाल करना अच्छा रहेगा।

 
lux1024 2025-06-25

git worktree?

 
turastory 2025-06-26

अरे, नाम में कन्फ्यूजन हो गया था haha, worktree ही सही है

 
spilist2 2025-06-24

जवाब के लिए धन्यवाद!

 
joyoo 2025-06-24

इसमें कोई फ़ायदा नहीं है.. ऐसे कामों से बचने के लिए ही version control system आया है.
मेरी नज़र में, आपको git को और ज़्यादा पढ़ना बेहतर रहेगा.

 
nakyup 2025-06-23

context7 नाम का MCP उपयोगी है, इसलिए लाइब्रेरी इस्तेमाल करने का तरीका पूछते समय मैं इसे अक्सर उपयोग करता हूँ

 
spilist2 2025-06-23

अरे, मुझे याद आया कि इसका परिचय देना मैं भूल गया था, इसलिए मैंने lecture materials तो अपडेट कर दिए थे, लेकिन ब्लॉग अपडेट नहीं किया था। इसी वजह से इसे जोड़ दिया। धन्यवाद।

 
aqqnucs 2025-06-23

टिप 2 प्रश्न. क्या यह ask मोड में होने पर भी, अगर इसे एडिट न करने के लिए न कहा जाए, तो एडिट करने की कोशिश करता है?

 
spilist2 2025-06-23

हाँ, कभी-कभी ऐसा होता है कि edit_files से संशोधन करने की कोशिश करते-करते timeout निकल जाता है, फिर edit_files काम नहीं करता और हम कोई दूसरा काम करने लगते हैं।

 
kissdesty 2025-06-23

भले ही यह वास्तव में edit न करे, लेकिन लगता है कि Ask mode में भी edit से ठीक पहले तक होने वाली अनावश्यक तैयारी वाली कार्रवाइयों को यह कम कर देता है.