क्लॉड कोड आईडीई वर्कस्पेस मॉड्स बनाएं
Wikiprompt से, मुफ्त प्रॉम्प्ट विश्वकोश
क्लॉड कोड आईडीई वर्कस्पेस मॉड्स बनाएं क्लॉड कोड मॉड्स का एक व्यापक सेट बनाने के लिए एक विस्तृत प्रॉम्प्ट जो टर्मिनल को फाइल एक्सप्लोरर, वर्कस्पेस नेविगेटर और स्टेटस बार के साथ एक IDE-शैली वर्कस्पेस में बदल देता है। इसमें विस्तृत विशिष्टताएं, API नियम, वर्कफ्लो चरण और परीक्षण आवश्यकताएं शामिल हैं।
प्रॉम्प्ट सामग्रीसहेजें
🌐
यह आपके टर्मिनल को एक अल्ट्रा-फास्ट क्लॉड कोड ऐप में बदल देगा
<role>
आप एक वरिष्ठ TypeScript इंजीनियर हैं। आप Claude Code मॉड्स बनाते हैं। आप छोटे मॉड्यूल लिखते हैं, आप प्रत्येक मॉड्यूल का परीक्षण करते हैं, और आप केवल सत्यापित परिणामों की रिपोर्ट करते हैं।
</role>
<variables>
AUTHOR_NAME = "आपका सार्वजनिक नाम"
MARKETPLACE = "आपका-मार्केटप्लेस-नाम"
LICENSE = "MIT"
PANE_COLUMNS = 48
</variables>
<context>
एक मॉड एक Claude Code प्लगइन है। फ़ाइल hooks/hooks.json एक hooks मॉड्यूल का नाम देती है। hooks मॉड्यूल register(on, options) को एक्सपोर्ट करता है। प्रत्येक हुक on('event', matcher, async ($, e, next) => result) है। "$" मॉड्स API है। "e" इवेंट है। "next(e)" अन्य मॉड्स और फिर Claude Code चलाता है।
मैं एक Claude Code टर्मिनल सत्र के अंदर एक IDE-शैली का कार्यक्षेत्र चाहता हूँ। लोग फ़ाइलें पढ़ते हैं, खोजते हैं, डिफ्स देखते हैं, कार्य चलाते हैं, और बिना दूसरी विंडो के सत्रों के बीच चलते हैं। अन्य लोग इन मॉड्स को एक सार्वजनिक मार्केटप्लेस से इंस्टॉल करेंगे, इसलिए मॉड्स को एक साफ मशीन पर लोड होना चाहिए और जब कोई टूल (git, rg, cargo) अनुपस्थित हो तो विफल नहीं होना चाहिए।
आधिकारिक दस्तावेज़ (उन पृष्ठों को पढ़ें जिनकी आपको आवश्यकता है):
- https://t.co/i4akoKobgO
- https://t.co/WPCOsxEplS
- https://t.co/IeRIo28W71
- https://t.co/bQM1hlDd5j
- बिल्ट-इन मॉड स्रोत: https://t.co/XYpFTigXbE (पहले "diff" पढ़ें; यह एक पैन है जिसमें बटन और अपना स्वयं का स्क्रॉल है)
</context>
<source_of_truth>
मॉड्स API रिलीज़ के बीच बदलता है। जब दो स्रोत असहमत हों तो इस क्रम का उपयोग करें:
1. प्रकार की घोषणाएँ जो Claude Code प्रत्येक मॉड के .claude-plugin/types/ में लिखता है। ये इंस्टॉल किए गए संस्करण का वर्णन करती हैं।
2. "claude plugin validate" का आउटपुट।
3. दस्तावेज़ीकरण पृष्ठ।
4. यह प्रॉम्प्ट।
कोड लिखने से पहले /plugin-authoring चलाएँ। किसी इवेंट, विधि, तत्व, या प्रॉप का उपयोग करने से पहले claude-code/index.d.ts पढ़ें। उस फ़ाइल में नाम खोजें। ऐसे नाम का उपयोग न करें जो उस फ़ाइल में नहीं है। यदि यह प्रॉम्प्ट किसी ऐसी चीज़ का नाम देता है जो इंस्टॉल किए गए संस्करण में नहीं है, तो प्रतिस्थापन का आविष्कार न करें। निकटतम संस्करण बनाएँ जो API समर्थन करता है और अंतर को LIMITS.md में रिकॉर्ड करें।
</source_of_truth>
<api_rules>
Claude Code hooks मॉड्यूल पर स्थिर विश्लेषण करता है। ये नियम सत्यापन को हरा रखते हैं:
- प्रत्येक API कॉल को पूर्ण रूप से लिखें: $.fs.read(...), $.ui.open(...)। "$" या नामस्थान को एक चर में असाइन न करें। "$" को डिस्ट्रक्चर न करें।
- "$" को केवल उसी फ़ाइल के शीर्ष स्तर पर घोषित फ़ंक्शन में पास करें। "$" को आयातित फ़ंक्शन, विधि, या हुक के अंदर परिभाषित फ़ंक्शन में पास न करें।
- प्रत्येक इवेंट नाम को on(...) में एक स्ट्रिंग लिटरल के रूप में लिखें। इवेंट नामों की सूची पर लूप न करें।
- register के अंदर "on" नाम का दूसरा चर घोषित न करें।
- ES मॉड्यूल का उपयोग करें। फ़ाइल के शीर्ष पर import घोषणाओं का उपयोग करें। कोई require नहीं। कोई डायनामिक import() नहीं।
- केवल प्लगइन निर्देशिका के अंदर की फ़ाइलें, सापेक्ष पथ द्वारा आयात करें। एकमात्र बेयर इम्पोर्ट "claude-code" है।
- प्लगइन का नाम "claude-" से शुरू न करें।
परिणाम: hooks मॉड्यूल में हर "$" कॉल रखें। शुद्ध तर्क (पार्सर, ट्री मॉडल, खोज रैंकिंग, फ़ॉर्मेटर) को अलग फ़ाइलों में रखें जो सादा डेटा लेती हैं और सादा डेटा लौटाती हैं। शुद्ध फ़ाइलों का सीधे परीक्षण करें।
डिज़ाइन करने के लिए सीमाएँ:
- एक हुक के पास अपने स्वयं के निष्पादन का 10 सेकंड होता है।
- $.fs.read और $.fs.write: एक फ़ाइल के लिए 4 MiB। एक Text स्ट्रिंग और एक Code तत्व: 10,000 वर्ण। लंबी फ़ाइलों को पेज करें।
- $.store: कुल मिलाकर 4 MiB JSON, मशीन पर सभी सत्रों द्वारा साझा। प्रत्येक आइटम को अपनी कुंजी दें। प्रत्येक सूची को कैप करें।
- $.process.run: डिफ़ॉल्ट रूप से 30 सेकंड।
- रीड्रॉ: दृश्य पैन के लिए प्रति सेकंड 30, अन्य साइटों के लिए 10।
- एक पैन जो एक मॉड अपने आप खोलता है वह केवल 144 कॉलम या अधिक पर दिखाई देता है। एक पैन जो उपयोगकर्ता कमांड या प्रेस खोलता है वह प्रत्येक चौड़ाई पर दिखाई देता है। कमांड और प्रेस से पैन खोलें।
कीबोर्ड नियम:
- एक मॉड Tab या तीर कुंजियों को बाइंड नहीं कर सकता। Tab नियंत्रणों के बीच चलता है। ऊपर और नीचे नियंत्रणों के बीच चलते हैं या स्क्रॉल करते हैं।
- एक Button हॉटकी एक अंक या एक लोअरकेस अक्षर है। जबकि एक Input में फोकस है, प्रत्येक प्रिंट करने योग्य कुंजी Input में जाती है।
- प्रत्येक नियंत्रण को एक अद्वितीय कुंजी दें। परीक्षण कुंजी द्वारा नियंत्रण दबाते हैं।
- Claude Code में कोई tabs तत्व नहीं है। टैब को सादे बटनों की एक पंक्ति के रूप में बनाएं।
स्थिति:
- मॉड्यूल चर: प्रत्येक रीलोड पर खो जाता है। उन मानों के लिए उपयोग करें जिन्हें खोया जा सकता है।
- $.state: सत्र के लिए रहता है और उन साइटों को रीड्रॉ करता है जो मान पढ़ती हैं। प्रत्येक मान को types/index.d.ts में घोषित करें और उस फ़ाइल का नाम मैनिफेस्ट में रखें।
- $.store: सत्रों के बीच रहता है। सेटिंग्स, हाल के सत्रों और प्रोजेक्ट्स के लिए उपयोग करें।
</api_rules>
<repository_layout>
.claude-plugin/marketplace.json प्रत्येक प्लगइन के लिए एक प्रविष्टि, मार्केटप्लेस नाम = MARKETPLACE
plugins/file-explorer/
plugins/workspace/
plugins/ide-usage/
plugins/ide-statusbar/
README.md LICENSE PROGRESS.md LIMITS.md tests.json
प्रत्येक प्लगइन:
.claude-plugin/plugin.json नाम, संस्करण 0.1.0, विवरण, लेखक = AUTHOR_NAME, लाइसेंस = LICENSE, आवश्यकता होने पर types
hooks/hooks.json { "modules": ["./register.ts"] }
hooks/register.ts एकमात्र फ़ाइल जो "$" को कॉल करती है
hooks/lib/*.ts शुद्ध तर्क
types/index.d.ts PluginState और कोई भी नामस्थान जो मॉड जोड़ता है
tests/*.test.ts "claude plugin test" के लिए परीक्षण
</repository_layout>
<mod name="file-explorer">
कमांड: /explorer पैन खोलता है (id "explorer", शीर्षक "Explorer", फोकस true, कॉलम PANE_COLUMNS)। कमांड को immediate: true के साथ पंजीकृत करें ताकि यह एक टर्न के दौरान काम करे। दूसरा /explorer पैन बंद करता है। /explorer <path> उस पथ को खोलता है।
हेडर पंक्ति: शब्द EXPLORER, फिर Back, Forward, Up, Close। Back और Forward खोले गए फ़ोल्डरों और फ़ाइलों के इतिहास के माध्यम से चलते हैं।
हेडर के नीचे एक Input। इसका उद्देश्य टैब के साथ बदलता है:
- Files टैब: प्लेसहोल्डर "Find files"। Enter रूट के नीचे फ़ाइल नामों और पथों की खोज करता है। खोज केस को अनदेखा करती है। 500 मैचों पर रुकें और दिखाएं: N फ़ाइलें "query" से मेल खाती हैं (पहले 500, स्कैन रोका गया)। मैचों को उनके पैरेंट फ़ोल्डरों के साथ एक ट्री के रूप में दिखाएं। मेल खाते टेक्स्ट को चिह्नित करें। एक खाली क्वेरी ट्री को पुनर्स्थापित करती है।
- Code टैब: प्लेसहोल्डर "Find in file, :line, or /regex/"। सादा टेक्स्ट प्रत्येक घटना को ढूंढता है। ":42" लाइन 42 पर जाता है। "/re/" एक नियमित अभिव्यक्ति का उपयोग करता है। "match 2 of 5" दिखाएं। बटन n और p अगले और पिछले मैच पर जाते हैं।
टैब: Files, Code, Diff।
Files टैब:
- रूट लाइन: रूट फ़ोल्डर का नाम और पूर्ण पथ। पहला रूट सत्र कार्य फ़ोल्डर है। Up रूट को पैरेंट फ़ोल्डर में ले जाता है।
- क्रिया पंक्ति: New File, New Folder, Refresh, Collapse, More। New File और New Folder एक Input के साथ एक नाम मांगते हैं और चयनित फ़ोल्डर में आइटम बनाते हैं। More में Rename, Delete, Copy path, और Show hidden files हैं। Delete $.ui.ask के साथ पुष्टि मांगता है।
- ट्री: जब उपयोगकर्ता उस फ़ोल्डर को खोलता है तो एक फ़ोल्डर स्तर पढ़ें। पहले फ़ोल्डर, फिर फ़ाइलें, नाम से क्रमबद्ध करें। फ़ोल्डर स्थिति के लिए एक मार्कर, ज्ञात फ़ाइल प्रकारों के लिए एक छोटा प्रकार टैग (json, md, ts, js, py, rs, go, sh), और एक प्रतीकात्मक लिंक के लिए "name → target" दिखाएं। एक खाली फ़ोल्डर में "(empty)" दिखाएं। .git और node_modules को छोड़ें जब तक कि छिपी हुई फ़ाइलें चालू न हों।
- चयन और पेजिंग: एक चयनित पंक्ति। बटन चयन को ऊपर और नीचे ले जाते हैं, एक फ़ोल्डर खोलते हैं, एक फ़ोल्डर बंद करते हैं, और एक फ़ाइल खोलते हैं। सीमा दिखाएं, उदाहरण के लिए "7-49 of 329"। केवल उन पंक्तियों को बनाएं जो e.props.scroll.bodyRows में फिट होती हैं।
Code टैब:
- पथ की ब्रेडक्रंब, फिर "N lines · size"।
- लाइन नंबर और सिंटैक्स रंग। Code तत्व का उपयोग करें। फ़ाइल को पेज करें ताकि कोई तत्व 10,000 वर्णों से बड़ा न हो।
- 4 MiB से बड़ी फ़ाइल या बाइनरी फ़ाइल के लिए, आकार और एक संदेश दिखाएं। फ़ाइल न पढ़ें।
- वर्तमान मैच और वर्तमान लाइन को हाइलाइट करें।
Diff टैब:
- खुली फ़ाइल का अप्रतिबद्ध डिफ दिखाएं (उस पथ के लिए git diff)। diff मोड में Code तत्व का उपयोग करें।
- जोड़ी और हटाई गई पंक्तियों की गिनती दिखाएं।
- जब Claude Edit, Write, या MultiEdit के साथ किसी फ़ाइल को संपादित करता है, तो next(e) लौटने के बाद https://t.co/Lb6btDn0iW हुक में पथ रिकॉर्ड करें। यदि पैन खुला है, तो उस फ़ाइल का चयन करें और Diff टैब दिखाएं। पैन को स्वयं न खोलें।
- यदि फ़ोल्डर एक git रिपॉजिटरी नहीं है, तो इसे एक पंक्ति में कहें।
अन्य मॉड इस मॉड द्वारा मॉड्स API में जोड़े गए नामस्थान के माध्यम से एक फ़ाइल खोलते हैं: https://t.co/crzRXVIH3H({ path, line, tab }। नामस्थान को types/index.d.ts में घोषित करें। यह देखने के लिए "telemetry" बिल्ट-इन मॉड पढ़ें कि एक मॉड अन्य मॉड्स के लिए विधियाँ कैसे जोड़ता है।
</mod>
<mod name="workspace">
file-explorer पर निर्भर करता है (इसे plugin.json में dependencies के तहत सूचीबद्ध करें)।
कमांड: /workspace नेविगेटर पैन खोलता है (id "workspace", शीर्षक "Workspace", कॉलम PANE_COLUMNS)।
नेविगेटर प्लेसमेंट: एक पैन की प्रलेखित स्थिति ट्रांसक्रिप्ट के बगल में एक डॉक है, और Claude Code प्रत्येक खुले पैन को उसके शीर्षक के साथ एक टैब देता है। टाइप्स में एक फ़ील्ड खोजें जो पैन को बाईं ओर रखता है। यदि एक मौजूद है, तो नेविगेटर को बाईं ओर और टूल्स को दाईं डॉक में रखें। यदि कोई नहीं है, तो नेविगेटर डॉक में एक और पैन है। परिणाम LIMITS.md में रिकॉर्ड करें।
नेविगेटर सामग्री, ऊपर से नीचे:
1. शीर्षक CLAUDE CODE और एक New chat बटन। New chat बिल्ट-इन कमांड चलाता है जो एक नई बातचीत शुरू करता है। $.command.list के साथ कमांड नाम खोजें।
2. WORKSPACE: प्रत्येक टूल के लिए एक बटन, इस क्रम में: Files, Terminal, Browser, Source Control, Problems, Run Tasks, Outline, To-do Comments, Timeline, Usage, Model Router। एक प्रेस उस टूल पैन को खोलता है और उसे फोकस देता है। खुले टूल्स को चिह्नित करें।
3. RECENTS: नवीनतम 5 सत्र, "Show more" के साथ। प्रत्येक पंक्ति शीर्षक, प्रोजेक्ट नाम और आयु (8m, 22h, 3d) दिखाती है। शीर्षक सत्र का पहला प्रॉम्प्ट है, फिट करने के लिए काटा गया। एक पंक्ति पर एक प्रेस उस सत्र के प्रॉम्प्ट को पंक्ति के नीचे दिखाता है। वर्तमान सत्र को चिह्नित करें।
4. PROJECTS: प्रत्येक प्रोजेक्ट फ़ोल्डर अपनी सत्र गणना के साथ। एक प्रेस उस प्रोजेक्ट के सत्र दिखाता है।
सत्र सूचकांक: prompt.submit हुक में, { id, cwd, repo, title, prompts[], updatedAt } को $.store में "session:<id>" कुंजी के तहत लिखें। प्रत्येक सत्र के लिए नवीनतम 50 प्रॉम्प्ट और नवीनतम 200 सत्र रखें। प्रत्येक लेखन से पहले स्टोर को फिर से पढ़ें, क्योंकि अन्य सत्र एक ही स्टोर में लिखते हैं। Claude Code की अपनी ट्रांसक्रिप्ट फ़ाइलों को न पढ़ें या पार्स न करें।
हाल का सत्र खोलें: एक सत्र को स्विच या फिर से शुरू करने के लिए एक समर्थित विधि के लिए टाइप्स जांचें। यदि कोई नहीं है, तो $.ui.copy के साथ "claude --resume <id>" कॉपी करें और एक टोस्ट दिखाएं जो ऐसा कहता है।
टूल्स। प्रत्येक टूल एक पैन है जिसका अपना id, एक छोटा शीर्षक और एक Refresh बटन है। प्रत्येक टूल एक स्पष्ट पंक्ति दिखाता है जब उसके पास कोई डेटा नहीं होता है या जब उसका प्रोग्राम अनुपस्थित होता है।
1. Files: सत्र फ़ोल्डर के साथ https://t.co/crzRXVIH3H को कॉल करता है। यह दूसरा ट्री नहीं बनाता है।
2. Terminal: एक Input जो सत्र फ़ोल्डर में $.process.spawn के साथ एक कमांड चलाता है। आउटपुट को पैन में स्ट्रीम करें। अंतिम 500 पंक्तियाँ रखें। निकास कोड दिखाएं। 50 कमांड का इतिहास रखें। एक Stop बटन प्रक्रिया समाप्त करता है। यह एक कमांड रनर है, टर्मिनल एमुलेटर नहीं; README में ऐसा कहें।
3. Browser: URL के लिए एक Input। $.http.fetch के साथ फेच करें। स्थिति कोड, पृष्ठ शीर्षक और पठनीय टेक्स्ट को Markdown के रूप में दिखाएं, तत्व सीमा तक काटा गया। लिंक को बटन के रूप में दिखाएं जो लिंक लोड करते हैं। एक "Open in system browser" बटन ऑपरेटिंग सिस्टम के open कमांड का उपयोग करता है। केवल http और https की अनुमति दें।
4. Source Control: शाखा, आगे और पीछे की गिनती, और git से "+added −removed" स्थिति के साथ बदली गई फ़ाइलें। एक फ़ाइल पर एक प्रेस tab "diff" के साथ https://t.co/crzRXVIH3H को कॉल करता है। बटन: Stage, Unstage, Stage all। एक commit Input $.ui.ask के साथ पुष्टि के बाद चरणबद्ध फ़ाइलों को कमिट करता है। पुश, पुल, रीसेट या परिवर्तनों को त्यागें नहीं।
5. Problems: प्रोजेक्ट का चेक कमांड चलाएं और प्रत्येक समस्या को "file:line message" के रूप में एक गंभीरता चिह्न के साथ सूचीबद्ध करें। कमांड का पता लगाएं: tsconfig.json के लिए tsc --noEmit, Cargo.toml के लिए cargo check, go.mod के लिए go vet, pyproject.toml के लिए ruff check जब ruff स्थापित हो। एक उपयोगकर्ता सेटिंग पता लगाए गए कमांड को बदल देती है। एक प्रेस लाइन के साथ https://t.co/crzRXVIH3H को कॉल करता है। केवल Refresh पर और एक टर्न समाप्त होने के बाद चलाएं, और एक ही समय में दो चेक न चलाएं।
6. Run Tasks: सत्र फ़ोल्डर दिखाएं। package.json स्क्रिप्ट, Makefile लक्ष्य, justfile व्यंजनों, Cargo.toml (build, test, clippy), pyproject.toml स्क्रिप्ट और go.mod (build, test, vet) में कार्य खोजें। यदि कोई नहीं मिलता है, तो दिखाएं: No task found (package.json, Makefile, justfile, Cargo.toml, pyproject.toml, go.mod)। प्रत्येक कार्य के लिए एक बटन। प्लेसहोल्डर "Run a command, then Enter" के साथ एक Input। आउटपुट स्ट्रीम करें और निकास कोड और समय दिखाएं।
7. Outline: एक्सप्लोरर में खुली फ़ाइल के प्रतीक, लाइन नंबरों के साथ: फ़ंक्शन, क्लासेस, स्ट्रक्चर, इंटरफेस, स्थिरांक और Markdown शीर्षक। प्रत्येक भाषा (ts, js, py, rs, go, md) के लिए एक छोटी पैटर्न तालिका का उपयोग करें। नेस्टेड प्रतीकों को इंडेंट करें। एक प्रेस लाइन के साथ https://t.co/crzRXVIH3H को कॉल करता है।
8. To-do Comments: प्रोजेक्ट में TODO, FIXME, HACK और NOTE टिप्पणियाँ खोजें। जब rg स्थापित हो तो इसका उपयोग करें। यदि नहीं, तो $.fs.list के साथ ट्री चलें और .git, node_modules, target और dist छोड़ें। टैग द्वारा समूहित करें। "file:line text" दिखाएं। 300 आइटम पर कैप करें। एक प्रेस लाइन के साथ https://t.co/crzRXVIH3H को कॉल करता है।
9. Timeline: इस सत्र में प्रत्येक प्रॉम्प्ट, टूल कॉल और टर्न एंड के लिए एक पंक्ति, नवीनतम पहले, घड़ी के समय के साथ। Edit और Write के लिए, पथ और लाइन गिनती दिखाएं। एक संपादन पंक्ति पर एक प्रेस tab "diff" के साथ https://t.co/crzRXVIH3H को कॉल करता है। 300 पंक्तियाँ रखें।
10. Usage: $.session.usage() पढ़ें। एक बार के साथ संदर्भ प्रतिशत, टोकन और विंडो दिखाएं। प्रत्येक दर सीमा को उपयोग किए गए प्रतिशत और रीसेट समय के साथ दिखाएं। लागत दिखाएं यदि फ़ील्ड में मान है। session.measure हुक में प्रत्येक टर्न की टोकन गिनती रिकॉर्ड करें और अंतिम 30 टर्न को एक छोटे बार ग्राफ के रूप में बनाएं। टर्मिनल में Raster और अन्य सतहों पर टेक्स्ट का उपयोग करें (e.surface जांचें)।
11. Model Router: मुख्य सत्र का मॉडल और प्रत्येक सबएजेंट स्टार्ट को उसके प्रकार, उसके मॉडल और उसकी स्थिति के साथ दिखाएं। एक Select में तीन मोड: Off, Suggest, Auto। Off केवल रिकॉर्ड करता है। Suggest वह मॉडल दिखाता है जो नियम चुनते हैं और कुछ भी नहीं बदलता है। Auto agent.spawn हुक में एक नियम तालिका (सबएजेंट प्रकार या कार्य कीवर्ड → मॉडल) से एक सबएजेंट का मॉडल सेट करता है जिसे उपयोगकर्ता पैन में संपादित करता है और जो $.store में सहेजा जाता है। नियम: मुख्य सत्र का मॉडल कभी न बदलें, कॉलर द्वारा नामित मॉडल रखें, और यदि कोई नियम विफल हो जाता है तो स्टार्ट को अपरिवर्तित जारी रखें। मॉडल नाम सत्र और सेटिंग्स से पढ़ें। कोड में मॉडल नाम न लिखें। डिफ़ॉल्ट मोड Off है।
</mod>
<mod name="ide-usage">
$.ui.status के साथ एक स्थिति पंक्ति: "ctx 20% · <model>"। इसे session.measure हुक में अपडेट करें। कोई पैन नहीं।
</mod>
<mod name="ide-statusbar">
$.ui.status के साथ एक स्थिति पंक्ति: "<language> · <file name>" एक्सप्लोरर में खुली फ़ाइल के लिए, या वह फ़ाइल जिसे Claude ने अंतिम बार पढ़ा या संपादित किया। भाषा को फ़ाइल एक्सटेंशन से प्राप्त करें। अज्ञात एक्सटेंशन के लिए "Plain Text" दिखाएं। कोई पैन नहीं।
</mod>
<out_of_scope>
- एक से अधिक सत्र के लिए विंडो टैब (उदाहरण के लिए ⌘1 और ⌘2)। टर्मिनल एप्लिकेशन इन्हें बनाता है। एक मॉड नहीं कर सकता।
- पैन में एक पूर्ण टेक्स्ट एडिटर। एक Input एक पंक्ति है।
- अनुमति प्रॉम्प्ट में परिवर्तन। एक मॉड वहां नहीं बना सकता।
ऐसी सुविधाएँ न जोड़ें जो इस प्रॉम्प्ट में नहीं हैं। ऐसे कॉन्फ़िगरेशन विकल्प न जोड़ें जिनकी किसी सुविधा को आवश्यकता नहीं है।
</out_of_scope>
<safety>
एक मॉड उपयोगकर्ता की अनुमतियों के साथ चलता है और सैंडबॉक्स नहीं है। ऐसा कोड लिखें जिसे एक सावधान समीक्षक स्वीकार करे:
- हटाने, नाम बदलने और कमिट से पहले $.ui.ask के साथ पुष्टि करें।
- कभी भी विनाशकारी git कमांड न चलाएं। उपयोगकर्ता के लिए कभी भी टूल कॉल को अनुमोदित न करें। फ़ाइल सामग्री या प्रॉम्प्ट को नेटवर्क पर कभी न भेजें। Browser टूल केवल उस URL को फेच करता है जिसे उपयोगकर्ता ने टाइप या दबाया है।
- ऐसे पर्यावरण चर या सेटिंग्स न पढ़ें जिनकी किसी सुविधा को आवश्यकता नहीं है। "claude plugin validate" env रीड और कॉल सूचीबद्ध करता है; उस सूची को छोटा रखें।
- $.process के लिए तर्क एक सरणी के रूप में पास करें। फ़ाइल नामों से शेल स्ट्रिंग न बनाएं।
इस बिल्ड के दौरान, केवल इस रिपॉजिटरी के अंदर फ़ाइलें संपादित करें। पुश न करें। प्लगइन्स को मेरी उपयोगकर्ता सेटिंग्स में इंस्टॉल न करें। किसी भी क्रिया से पहले मुझसे पूछें जो पूर्ववत करना कठिन है।
</safety>
<workflow>
यह कार्य लंबा है। आपका संदर्भ स्वचालित रूप से कॉम्पैक्ट हो जाता है, इसलिए टोकन बचाने के लिए जल्दी न रुकें। स्थिति को फ़ाइलों में रखें ताकि एक नया संदर्भ जारी रख सके:
- PROGRESS.md: क्या हो गया है, आगे क्या है, और प्रत्येक निर्णय उसके कारण के साथ।
- tests.json: प्रत्येक स्वीकृति परीक्षण के लिए एक प्रविष्टि जिसकी स्थिति not_started, failing, या passing है।
- LIMITS.md: प्रत्येक सुविधा जो स्थापित API नहीं कर सकती है, और आपने उसके स्थान पर क्या बनाया है।
- प्रत्येक सुविधा के लिए एक git कमिट जो पास होता है।
प्रत्येक नए संदर्भ की शुरुआत में: PROGRESS.md, tests.json, LIMITS.md और git लॉग पढ़ें। एक सुविधा जोड़ने से पहले परीक्षण सूट चलाएं।
चरण 0, पता लगाएं। /plugin-authoring चलाएं। "claude --version" चलाएं। दस्तावेज़ीकरण पृष्ठ और "diff" बिल्ट-इन मॉड पढ़ें। फिर PLAN.md लिखें: प्रत्येक सुविधा जिन इवेंट्स और विधियों का उपयोग करती है, उस पंक्ति के साथ जो साबित करती है कि प्रत्येक मौजूद है। प्रत्येक सुविधा को सूचीबद्ध करें जिसे एक अलग डिज़ाइन की आवश्यकता है। मुझे PLAN.md दिखाएं और जब तक मैं आपत्ति न करूं तब तक जारी रखें।
चरण 1, मचान। रिपॉजिटरी लेआउट, चार मैनिफेस्ट, hooks.json फ़ाइलें और खाली register.ts फ़ाइलें बनाएं जो केवल अपने कमांड पंजीकृत करती हैं। प्रत्येक प्लगइन पर "claude plugin validate --strict" चलाएं जब तक यह पास न हो जाए। फिर रुकें और मुझे हॉट रीलोड के साथ पुनः आरंभ करने के लिए यह कमांड दें:
claude --plugin-dir ./plugins/file-explorer --plugin-dir ./plugins/workspace --plugin-dir ./plugins/ide-usage --plugin-dir ./plugins/ide-statusbar
मेरे "continue" टाइप करने के बाद, .claude-plugin/types/ में उत्पन्न टाइप्स पढ़ें और PLAN.md को सही करें।
चरण 2, file-explorer। इस क्रम में बनाएं: ट्री मॉडल और Files टैब, फ़ाइल खोज, Code टैब खोज के साथ, Diff टैब, https://t.co/crzRXVIH3H। इसके कोड से पहले एक सुविधा के लिए परीक्षण लिखें।
चरण 3, workspace। पहले नेविगेटर और सत्र सूचकांक बनाएं। फिर सूचीबद्ध क्रम में टूल्स बनाएं। अगला शुरू करने से पहले एक टूल को समाप्त और परीक्षण करें।
चरण 4, स्थिति पंक्तियाँ। ide-usage और ide-statusbar बनाएं।
चरण 5, रिलीज़। marketplace.json, LICENSE और README.md लिखें। README देता है: प्रत्येक मॉड क्या करता है, इंस्टॉल कमांड (claude plugin marketplace add, claude plugin install <name>@MARKETPLACE), Claude Code संस्करण जिसे आपने परीक्षण किया, कमांड, हॉटकी, प्रत्येक मॉड क्या पहुंच सकता है (validate की "hooks:" और "calls:" पंक्तियों से), और LIMITS.md की सामग्री। पूर्ण सत्यापन चलाएं।
सीधे काम करें। केवल कई फ़ाइलों में खोज के लिए एक सबएजेंट का उपयोग करें जिसे आपके संदर्भ की आवश्यकता नहीं है।
</workflow>
<tests>
परीक्षण "claude plugin test" के साथ चलते हैं और उन्हें कोई सत्र और कोई नेटवर्क की आवश्यकता नहीं होती है। एक परीक्षण इवेंट फायर करता है, कुंजी द्वारा नियंत्रण दबाता है, और ड्राइंग या परिणाम की जांच करता है। $.fs, $.process, $.http और $.store को स्टब करें।
व्यवहार की जांच करने वाले परीक्षण लिखें, उदाहरण के लिए:
- एक स्टब ट्री में "auth" के लिए एक खोज सही फ़ाइलें लौटाती है, मेल खाते टेक्स्ट को चिह्नित करती है, और 500 पर रुकती है।
- ":42" लाइन 42 का चयन करता है। "/re(fresh)?/" सही मैच ढूंढता है। एक अमान्य नियमित अभिव्यक्ति एक त्रुटि पंक्ति दिखाती है और फेंकती नहीं है।
- Source Control पंक्ति पर एक प्रेस tab "diff" के साथ https://t.co/crzRXVIH3H को कॉल करता है।
- बिना मैनिफेस्ट फ़ाइल के Run Tasks "No task found" पंक्ति दिखाता है।
- एक git प्रोग्राम जो अनुपस्थित है वह एक स्पष्ट पंक्ति देता है और कोई त्रुटि नहीं।
- सत्र सूचकांक 200 सत्र रखता है और दूसरे सत्र से एक नए लेखन के साथ विलीन हो जाता है।
- Model Router Off मोड में और Suggest मोड में next(e) अपरिवर्तित लौटाता है।
सामान्य कोड लिखें जो प्रत्येक मान्य इनपुट के लिए सही है। ऐसा कोड न लिखें जो केवल एक परीक्षण को संतुष्ट करता है। इसे पास करने के लिए एक परीक्षण को हटाएं या कमजोर न करें। यदि एक परीक्षण गलत है या एक सुविधा संभव नहीं है, तो मुझे बताएं।
</tests>
<done_when>
1. "claude plugin validate --strict" प्रत्येक प्लगइन के लिए पास होता है।
2. "claude plugin test" प्रत्येक प्लगइन के लिए पास होता है, और tests.json में कोई प्रविष्टि failing या not_started नहीं है।
3. प्रत्येक प्लगइन पर "tsc -p" उत्पन्न टाइप्स के खिलाफ कोई त्रुटि रिपोर्ट नहीं करता है।
4. प्रत्येक कमांड "claude -p" में उत्तर देता है (उदाहरण के लिए: claude -p "/explorer" --plugin-dir ./plugins/file-explorer) बिना किसी त्रुटि के।
5. LIMITS.md इस प्रॉम्प्ट से प्रत्येक अंतर सूचीबद्ध करता है।
6. आप मुझे उन वस्तुओं की एक चेकलिस्ट देते हैं जिन्हें केवल एक व्यक्ति लाइव सत्र में जांच सकता है: प्रत्येक पैन खुलता है, हॉटकी काम करती हैं, और लेआउट 110 और 144 कॉलम पर फिट बैठता है।
</done_when>
<reporting>
प्रत्येक चरण के बाद, एक छोटी रिपोर्ट लिखें: आपने क्या बनाया, आपके द्वारा चलाए गए सटीक कमांड, उनके परिणाम, और क्या सत्यापित नहीं है। "परीक्षण पास होते हैं" को "मैंने इसे एक सत्र में काम करते देखा" से अलग करें। यदि आपने कुछ नहीं चलाया, तो कहें कि आपने इसे नहीं चलाया।
</reporting>
[प्रॉम्प्ट का अंत]
पूरा प्रॉम्प्ट देखने के लिए साइन इन करें
Continue with:
By logging in, you agree to our Terms of Use and Privacy Policy
उपयोग
यह प्रॉम्प्ट coding के साथ उपयोग के लिए डिज़ाइन किया गया है। ऊपर प्रॉम्प्ट सामग्री कॉपी करें और अपने पसंदीदा AI टूल में पेस्ट करें।
सर्वोत्तम परिणामों के लिए, आप अपनी विशिष्ट आवश्यकताओं के अनुसार प्लेसहोल्डर (वर्ग कोष्ठक या बड़े अक्षरों में दर्शाए गए) को अनुकूलित कर सकते हैं।
चर्चा
0 टिप्पणियाँ