00:00:00हर कोई जानता है कि कोडिंग एजेंट्स के साथ काम करने के लिए आपको एक फ्रेमवर्क की ज़रूरत होती है, लेकिन बहुत कम
00:00:04लोगों के पास ऐसा फ्रेमवर्क है जो सरल हो, वास्तव में उनका अपना हो, और जिसे वे समय के साथ विकसित कर सकें। अब,
00:00:09GitHub पर बहुत सारे ओवर-इंजीनियर्ड फ्रेमवर्क मौजूद हैं। लोग ये जो मल्टी-एजेंट सिस्टम बना रहे हैं,
00:00:15मैं उनके काम का सम्मान करता हूँ, लेकिन अक्सर आपको बस कुछ बहुत ही सरल चीज़ चाहिए होती है
00:00:19जो आपके लिए काम पूरा कर दे। क्योंकि मुझे पता है कि आपके पास बनाने के लिए अच्छे विचार हैं,
00:00:24और आप अपने एजेंटी कोडिंग वर्कफ़्लो बनाने में उससे ज़्यादा समय नहीं बिताना चाहते जितना
00:00:29आप वास्तव में कोडिंग में बिताते हैं, और इसीलिए मेरे पास अभी आपके लिए यही है। यह मेरा एकदम सरल फ्रेमवर्क है
00:00:35जिसे मैं हर बार अपने कोडिंग एजेंट के साथ एक नया प्रोजेक्ट शुरू करते समय इस्तेमाल करता हूँ। अब, ब्राउनफील्ड
00:00:40डेवलपमेंट, यानी किसी मौजूदा कोड बेस पर काम करना, थोड़ा अलग है। वह किसी दूसरे वीडियो के लिए है। यहाँ,
00:00:45हम ग्रीनफील्ड डेवलपमेंट पर ध्यान केंद्रित कर रहे हैं। हम चीज़ों को जल्द से जल्द शुरू करने के लिए एक सरल फ्रेमवर्क चाहते हैं,
00:00:50ताकि कुछ भी नया बनाया जा सके, और मैं यहाँ जो कुछ भी बता रहा हूँ वह सार्वभौमिक है।
00:00:56ये सिद्धांत लागू होंगे चाहे आप किसी भी कोडिंग एजेंट का उपयोग कर रहे हों। तो इस वीडियो के वास्तव में दो
00:01:00हिस्से हैं, और मैं आपको सब कुछ समझाने के साथ-साथ आपके साथ एक लाइव बिल्ड भी करूँगा” ताकि
00:01:05इसे पूरी तरह ठोस बनाया जा सके। और अभी मेरे कोड बेस में मेरे AI लेयर के अलावा
00:01:11लगभग कुछ भी नहीं है। तो कुछ कमांड्स और स्किल्स हैं जिन्हें मैं लेकर आया हूँ। इसे मैं अपने हर
00:01:16प्रोजेक्ट के शुरुआती बिंदु के रूप में उपयोग करता हूँ। हम शुरुआत से कुछ बनाने जा रहे हैं,
00:01:21इसलिए हमें अपनी शुरुआती प्लानिंग से शुरू करना होगा, जिसे PRD कहा जाता है। यह
00:01:27काम का शुरुआती दायरा है जिसे हमें अपने एप्लीकेशन के लिए 'मिनिमम वायबल प्रोडक्ट' (MVP) बनाने के लिए तैयार करना है।
00:01:32इसमें काफी कुछ आता है, जैसे कोडिंग शुरू करने से पहले अपना शुरुआती AI लेयर सेट करना।
00:01:37और फिर हम अपनी PRD लेते हैं और उसे काम के चरणों (phases) में विभाजित करते हैं, और हम उसे PIV लूप्स के साथ पूरा करेंगे।
00:01:43तो मैं बात करूँगा कि इसका क्या मतलब है, हम इसका एक उदाहरण देखेंगे, और फिर
00:01:47इस पूरे कार्यान्वयन के दौरान, मैं उन चार सुनहरे नियमों को कवर करूँगा जिनका हम हर समय पालन करना चाहते हैं।
00:01:52तो ये सुनहरे नियम PRD बनाने, हमारे AI लेयर और PIV लूप के दौरान काफी स्वाभाविक रूप से फिट हो जाएँगे।
00:01:57उदाहरण के लिए, कॉन्टेक्स्ट मैनेजमेंट (context management)।
00:02:03AI कोडिंग सहायकों के साथ काम करते समय कॉन्टेक्स्ट आपका सबसे कीमती संसाधन है। यह पूरे वीडियो में एक
00:02:08बड़ा विषय होगा। इसके अलावा हर चीज़ के लिए कमांड्स और स्किल्स बनाना और सिस्टम इवोल्यूशन माइंडसेट,
00:02:14क्योंकि हमारे सिस्टम का लक्ष्य कुछ ऐसा बनाना है जो विश्वसनीय और
00:02:18दोहराने योग्य (repeatable) हो। इसलिए मैं आगे बढ़ते हुए इस बारे में बात करता रहूँगा। तो बस कुछ
00:02:23मुख्य विषयों पर रोशनी डालने की कोशिश कर रहा हूँ जो आप इसमें देखेंगे। यह एक बहुत ही मूल्यवान वीडियो होने वाला है। और इसलिए
00:02:28हम यहाँ अपनी शुरुआती प्लानिंग से शुरू करेंगे, जिसे मैं AI लेयर कहना पसंद करता हूँ। तो मैं समझाऊँगा
00:02:34कि वह क्या है और हम उसे अभी साथ मिलकर बनाएंगे। तो आपकी AI लेयर आपके कोड बेस की वे सभी संपत्तियां हैं
00:02:39जिन्हें आपने अपने कोडिंग एजेंट के लिए कॉन्टेक्स्ट के रूप में बनाया है। जैसे आपकी PRD—हम क्या बनाने जा रहे हैं?
00:02:45आपके ग्लोबल नियम—हम इसे कैसे बनाएंगे? कमांड्स—ताकि हमारे पास हमारे कोडिंग एजेंट के लिए
00:02:50पुन: प्रयोज्य (reusable) वर्कफ़्लो हों। हम पहले मुख्य कमांड पर ध्यान केंद्रित करेंगे। और फिर सब-एजेंट्स—ताकि हम
00:02:55रिसर्च के काम सौंप सकें। और आम तौर पर मैं अपनी AI लेयर के साथ कैसे काम करता हूँ, और मेरे पास आपके लिए इसका एक संसाधन है,
00:03:01मेरे पास कमांड्स का एक सामान्य सेट है जिसे मैं किसी भी नए प्रोजेक्ट में ले आता हूँ। और
00:03:07इसका उद्देश्य यह है कि जैसे-जैसे मेरा कोड बेस बढ़ता है और मैं इसे बनाना शुरू करता हूँ, मैं अपने कमांड्स को भी विकसित करूँगा ताकि वे
00:03:13विशिष्ट उपयोग के मामलों के लिए अधिक शक्तिशाली बनें, बस उन्हें मेरे कोड के प्रति अधिक विशिष्ट बनाकर। और यही
00:03:18आम तौर पर आपके लिए मेरी सिफारिश है। और इसलिए यदि आप चाहें तो इसे एक शुरुआती बिंदु के रूप में उपयोग करें। मैं
00:03:23विवरण में GitHub रेपो का लिंक दे दूँगा। इसे इतना सरल रखने का उद्देश्य यह है कि आप
00:03:27इसे खुद अपना सकें और आसानी से अपने उपयोग के मामले और अपने काम करने के तरीके के अनुसार इसे विकसित कर सकें। इसीलिए
00:03:33मैं 'Beemad' या 'GitHub spec kit' जैसे अधिक जटिल फ्रेमवर्क के बजाय इसकी सिफारिश करता हूँ।
00:03:38वे वास्तव में बहुत शक्तिशाली हैं, लेकिन उन्हें वास्तव में अपना बनाना मुश्किल है। मैं चाहता हूँ कि आप
00:03:42इसे अपना बना सकें। तो अभी मैं आपको दिखाऊँगा कि एक पूरा PRD बनाना कैसा दिखता है। हमारे कोड बेस के लिए
00:03:48शुरुआती नियम परिभाषित करें। हम अपने पहले कमांड को थोड़ा कस्टमाइज़ भी करेंगे। और फिर
00:03:52मैं पूरे समय सब-एजेंट्स के बारे में बात करूँगा। और मुझे पता है कि हम PIV लूप्स के साथ अपना वास्तविक कोड लिखने से पहले
00:03:57बहुत सारी प्लानिंग कर रहे हैं, लेकिन ऐसा करना महत्वपूर्ण है। पहले से प्लानिंग करना
00:04:03शायद ऐसा लग सकता है कि हम चीज़ों को बहुत धीमा कर रहे हैं, लेकिन अगर हम एक बहुत अच्छी योजना बनाते हैं, जैसे कि हमारे पास अच्छे
00:04:07नियम हैं, एक अच्छा PRD है, तो इसका मतलब है कि उसके बाद हमारा सारा डेवलपमेंट बहुत तेज़
00:04:13और अधिक विश्वसनीय होने वाला है। तो चलिए अपनी PRD से शुरू करते हैं। बहुत से लोग इसे 'स्पेक' (spec) कहते हैं। फिर से, यह
00:04:18हमारे एप्लिकेशन का शुरुआती वर्जन बनाने के लिए काम का पूरा दायरा है। और फिर उस
00:04:24बिंदु के बाद, जब हमारे पास एक अच्छी नींव होती है, तो यह ब्राउनफील्ड डेवलपमेंट की ओर बढ़ जाता है। वह अगला
00:04:28वीडियो है जो मैं लेकर आ रहा हूँ। तो उसके लिए बने रहें। और इसलिए मैं यहाँ अपने क्लॉड कोड के साथ क्या करूँगा,
00:04:34मेरे पास यहाँ अपनी AI लेयर के अलावा मूल रूप से एक खाली प्रोजेक्ट है, मैं पहले बस एक अनौपचारिक बातचीत करूँगा।
00:04:40बस इसे अपने विचार के बारे में बताऊंगा, शायद कुछ विचार जो मेरे पास टेक स्टैक और
00:04:45आर्किटेक्चर के लिए हैं। आप वास्तव में असंरचित (unstructured) तरीके से शुरू करते हैं, जिससे शुरुआत करना आसान हो जाता है।
00:04:50और फिर आप अंततः उस बिंदु पर पहुँच जाते हैं जहाँ आप अपनी बातचीत को एक संरचित (structured) PRD बनाने के लिए
00:04:55कॉन्टेक्स्ट के रूप में उपयोग करते हैं। और मेरे पास एक कमांड है जो हमें काम पूरा करने में मदद करेगा। मैं उस पर तब बात करूँगा जब
00:05:01हम वहां पहुँचेंगे, लेकिन पहले चलिए बस अपने विचार से शुरू करते हैं। तो मैं जो बनाना चाहता हूँ, इस वीडियो के लिए
00:05:06एक मज़ेदार उदाहरण के रूप में, वह 'लिंक ट्री' जैसा कुछ है, लेकिन एक स्व-होस्टेड (self-hosted) वर्जन
00:05:12जहाँ आप अपना खुद का लैंडिंग पेज सेटअप कर सकें जिसमें बहुत सारे लिंक हों जिन्हें आप व्यवस्थित कर सकें।
00:05:16आपके पास एनालिटिक्स हों जैसे आपके विभिन्न लिंक पर क्लिक-थ्रू रेट क्या है। मैं ऐसा ही कुछ बनाना चाहता हूँ।
00:05:20यह अभी के लिए एक अच्छा उदाहरण है क्योंकि यह बहुत मामूली नहीं है जहाँ आप
00:05:24इसे आसानी से कुछ बेहतरीन फीचर्स के साथ 'वाइब कोड' कर सकें, लेकिन साथ ही यह
00:05:29इतना जटिल भी नहीं होने वाला है कि इस वीडियो के अंत तक हमारे पास मुश्किल से कुछ हाथ लगे।
00:05:33और इसलिए मैं यहाँ काम पूरा करने के लिए स्पीच-टू-टेक्स्ट टूल का उपयोग करने जा रहा हूँ। मैं
00:05:39Aqua Voice जैसी किसी चीज़ का उपयोग करने की अत्यधिक अनुशंसा करता हूँ। मैं इसी का उपयोग करता हूँ। इसके अलावा कई अच्छे मुफ्त और ओपन सोर्स विकल्प
00:05:43भी हैं। Whisper Flow, Epicenter Whispering, बेहतरीन टूल्स हैं जो हमारे पास यहाँ हैं, लेकिन मुझे स्पीच-टू-टेक्स्ट का उपयोग करना
00:05:48पसंद है क्योंकि मैं आपसे वादा कर सकता हूँ, मैं कभी भी 226 शब्द प्रति मिनट टाइप नहीं कर पाऊँगा। और इसलिए मैं
00:05:54इस तरह के टूल का उपयोग करूँगा ताकि मैं जो बनाना चाहता हूँ उसके लिए पहले बस एक बड़ा ब्रेन डंप (विचारों का भंडार) दे सकूँ। और यह
00:05:59बहुत ही कच्चा होने वाला है, लेकिन मैं अभी आपके लिए लाइव ब्रेन डंप करने जा रहा हूँ और इस पर
00:06:03ध्यान दें कि मैं क्लॉड कोड से क्या करने के लिए कह रहा हूँ, क्योंकि यह उतना ही महत्वपूर्ण है जितने कि वे विचार जो
00:06:09मैं साझा कर रहा हूँ। मैं इसके बारे में थोड़ा बाद में भी समझाऊँगा। और वैसे, आप यह
00:06:13पूरी चीज़ किसी भी AI कोडिंग असिस्टेंट के साथ कर सकते हैं। तो चलिए शुरू करते हैं। मैं एक 'लिंक इन बायो' पेज बिल्डर बनाना चाहता हूँ।
00:06:20तो लिंक ट्री जैसा कुछ जहाँ उपयोगकर्ता एक अकाउंट बना सकें। वे अपना खुद का
00:06:24लैंडिंग पेज बना सकें जहाँ वे लिंक निर्दिष्ट करें। वे क्रम बदल सकें। मैं चाहता हूँ कि उनके पास
00:06:29एनालिटिक्स हों ताकि वे अपने लिंक पर क्लिक-थ्रू रेट भी देख सकें। और वे थीम को
00:06:33कस्टमाइज़ कर सकें। और फिर टेक स्टैक के लिए, मैं शायद Next.js के बारे में सोच रहा हूँ, मैं अपने डेटाबेस के लिए Neon
00:06:37और Neon ऑथेंटिकेशन का उपयोग करना चाहूँगा। तो निश्चित रूप से इसके लिए रिसर्च करने के लिए एक सब-एजेंट तैयार करें।
00:06:43और फिर आर्किटेक्चर के लिए, मैं उसके बारे में बहुत ज़्यादा चूज़ी नहीं हूँ। निश्चित रूप से उसके लिए आपकी सिफारिशें
00:06:48चाहूँगा। और बस हम थीमिंग और लिंक बिल्डिंग इन सबको कैसे संभालेंगे। और इसलिए
00:06:55मैं चाहता हूँ कि आप वेब रिसर्च करने के लिए एक एजेंट भी तैयार करें कि इस तरह के लिंक ट्री
00:07:00एप्लीकेशन बनाने के लिए सर्वोत्तम अभ्यास (best practices) क्या हैं। और फिर मैं चाहता हूँ कि आप उसके बाद मेरे पास
00:07:04बहुत सारे सवालों के साथ वापस आएँ ताकि हम उन छोटी-छोटी बारीकियों पर भी एक ही पृष्ठ पर आ सकें कि हम यहाँ क्या
00:07:10बना रहे हैं। ठीक है, बहुत अच्छे। तो मैं इसे भेजने जा रहा हूँ और यह बस कुछ ही
00:07:14सेकंड में ट्रांसक्राइब हो जाएगा। यह लीजिए। और बस, हम शुरू हो चुके हैं। और सबसे महत्वपूर्ण
00:07:20चीज़ जो मैंने वहां की, वह वास्तव में अंत में थी जब मैंने इसे अपनी रिसर्च के बाद मुझसे
00:07:25बहुत सारे सवाल पूछने के लिए कहा। तो इसे समझना बहुत ज़रूरी है। कोडिंग एजेंट्स के साथ
00:07:32किसी भी तरह की प्लानिंग के लिए आपका नंबर एक लक्ष्य उन मान्यताओं (assumptions) की संख्या को कम करना है जो आपका कोडिंग
00:07:37एजेंट बना रहा है। क्योंकि अंत में, जब कोई कोडिंग एजेंट आपके कोड बेस में कोई गलती करता है, तो आधा समय
00:07:42ऐसा नहीं होता कि कोड खराब है, बल्कि यह होता है कि आप इस बात पर सहमत नहीं थे कि आपको वास्तव में क्या
00:07:48बनाना चाहिए। आम कहावत है कि खराब कोड की एक लाइन बस खराब कोड की एक लाइन है। खराब
00:07:54प्लान की एक लाइन शायद सौ लाइनों का खराब कोड हो सकती है। लेकिन फिर PRD में एक खराब लाइन, वह एक हज़ार
00:08:02खराब कोड लाइनें हो सकती हैं क्योंकि आपके बीच तालमेल की कमी है। और इसलिए मैं समय के साथ
00:08:08मान्यताओं को कम करने के तरीकों के साथ बहुत सारे प्रयोग कर रहा हूँ। और कोडिंग एजेंट द्वारा
00:08:13मुझसे सवालों की बौछार करवाना मेरे लिए अविश्वसनीय रूप से अच्छा रहा है। क्योंकि विशेष रूप से
00:08:17क्लॉड कोड अपने 'आस्क यूजर क्वेश्चन' टूल के साथ, जहाँ यह बहुविकल्पीय प्रश्न दे सकता है या आप अपना उत्तर लिख सकते हैं।
00:08:23हम उसे एक सेकंड में देखेंगे। यह बहुत शक्तिशाली है। वे उन सभी एज केस और छोटी बारीकियों के बारे में सोचने का वास्तव में अच्छा काम करते हैं
00:08:28जिनके बारे में शायद हम सोच भी नहीं रहे होते। हमारे लिए खुद यह सोचना मुश्किल है कि
00:08:33कोडिंग एजेंट क्या मान सकता है। इसलिए यह बहुत, बहुत शक्तिशाली है। और फिर
00:08:38दूसरी चीज़ जो मैंने की, जैसा कि आप यहाँ देख सकते हैं, वह यह है कि हमारे पास अलग-अलग सब-एजेंट्स हैं जो
00:08:42रिसर्च के लिए चल रहे हैं। मुझे किसी भी तरह की प्लानिंग, PRD बनाने, या उन
00:08:48PIV लूप्स की प्लानिंग प्रक्रिया के लिए सब-एजेंट्स का उपयोग करना पसंद है जिनके बारे में हम थोड़ी देर में बात करेंगे। और क्लॉड
00:08:53कोड के साथ, मुझे वास्तव में अपने स्वयं के सब-एजेंट बनाने की ज़रूरत नहीं है क्योंकि हमारे पास अन्वेषण (exploration) और
00:08:59रिसर्च सब-एजेंट्स सीधे टूल में बने हुए हैं। अन्य कोडिंग एजेंट्स के लिए, आपको
00:09:04अपने खुद के बनाने पड़ सकते हैं, इसीलिए मैं यहाँ इसका उल्लेख करना चाहता था। लेकिन आज के समय में लगभग हर
00:09:08अच्छा कोडिंग एजेंट सब-एजेंट्स के विचार का समर्थन करता है। और मुझे रिसर्च के लिए उनका उपयोग करना पसंद है। और इसका
00:09:14कारण कॉन्टेक्स्ट आइसोलेशन (context isolation) है। फिर से, यहाँ मुख्य विषयों में से एक यह है कि हम वास्तव में अपने मुख्य कोडिंग एजेंट के
00:09:20कॉन्टेक्स्ट की रक्षा करना चाहते हैं। और रिसर्च सब-एजेंट्स के लिए विशेष रूप से इतना अच्छा उपयोग का मामला इसलिए है
00:09:26क्योंकि जब वे एक्सप्लोर करते हैं, तो वे सब कुछ देख रहे होते हैं। वे बहुत सारा
00:09:32कोड-आधारित अन्वेषण या वेब रिसर्च कर रहे होते हैं। वे अपने काम के लिए हज़ारों, यहाँ तक कि लाखों
00:09:36टोकन लोड कर रहे होते हैं। लेकिन वास्तव में हमें केवल उनके निष्कर्षों से मतलब होता है, अंत में वह सारांश
00:09:41जो वे हमारे मुख्य कॉन्टेक्स्ट को वापस देते हैं। और इस तरह हम अपने मुख्य कॉन्टेक्स्ट को साफ़ रख सकते हैं। मैं इम्प्लीमेंटेशन (कार्यान्वयन)
00:09:46के लिए सब-एजेंट्स का उपयोग करने की अनुशंसा नहीं करता क्योंकि इम्प्लीमेंटेशन के साथ, हम आमतौर पर उन सभी फाइलों के
00:09:51कॉन्टेक्स्ट की परवाह करते हैं जिन्हें हम एडिट और क्रिएट कर रहे हैं। अन्यथा मेरे अनुभव में यह बहुत सारे भ्रम (hallucinations) पैदा
00:09:57करता है। और यही कारण है कि क्लॉड कोड में इम्प्लीमेंटेशन के लिए कोई अंतर्निहित एजेंट नहीं है।
00:10:01यह केवल रिसर्च के लिए है। और हम अभी यही देख रहे हैं। और इसलिए मैं
00:10:06सब कुछ पूरा होने दूँगा और फिर जब इसके पास हमारे लिए सवाल होंगे तब मैं वापस आऊँगा। ठीक है, तो हमारी सारी
00:10:12सब-एजेंट रिसर्च पूरी हो गई है और अब हमारे पास उत्तर देने के लिए सवालों का शुरुआती सेट है। और जैसे-जैसे मैं
00:10:17इसे करूँगा, मुझे लगता है कि आप वास्तव में इसकी उतनी ही सराहना करेंगे जितनी मैं करता हूँ क्योंकि हम बहुत
00:10:22सारी चीज़ों को स्पष्ट कर रहे हैं। हर एक सवाल जिसका हम यहाँ जवाब देते हैं, वह कोडिंग
00:10:26एजेंट की एक धारणा (assumption) को हटा रहा है। और क्योंकि यह बहुविकल्पीय है और आमतौर पर यह यहाँ जो विकल्प प्रस्तुत करता है उनमें से एक अच्छा होता है, हम
00:10:31इसे बहुत जल्दी निपटा सकते हैं। और इसलिए हम कार्यान्वयन में जाते समय काफी आश्वस्त हो सकते हैं कि
00:10:36हमारे पास सभी विवरण स्पष्ट हैं। और इसलिए उदाहरण के लिए, सार्वजनिक पेज का URL स्ट्रक्चर
00:10:41कैसे काम करना चाहिए? मुझे यहाँ विकल्प नंबर एक पसंद है और फिर धड़ल्ले से अगले पर। प्रत्येक उपयोगकर्ता
00:10:46कितने पेज बना पाएगा? चलिए प्रति उपयोगकर्ता बस एक पेज रखते हैं। मेरा मतलब है, इनमें से कुछ में बस
00:10:50डिफ़ॉल्ट के साथ आगे बढ़ूँगा, लेकिन ऐसे कई उदाहरण हैं जहाँ यह वास्तव में मौलिक रूप से
00:10:54किसी चीज़ को गलत समझता है और वहीं मैं वास्तव में स्पष्ट करने के लिए अपना उत्तर टाइप कर सकता हूँ। तो मुझे
00:10:59नहीं पता कि मुझे अभी कोई उदाहरण मिलेगा या नहीं, लेकिन मैं क्या करने जा रहा हूँ कि मैं बस इसके
00:11:03सभी सवालों के जवाब दूँगा, और ऐसा करने के बाद वापस आऊँगा। आपको वास्तव में मुझे हर एक सवाल
00:11:07करते हुए देखने की ज़रूरत नहीं है क्योंकि यह 20, 25 सवालों तक पूछ सकता है। मतलब, यह इसे काफी गहराई तक ले जाएगा।
00:11:14और फिर से, आपको इसके साथ थोड़ा धैर्य रखना होगा, लेकिन आपके द्वारा दिया गया हर एक जवाब आपको
00:11:19सैकड़ों लाइनों के खराब कोड से बचा सकता है। तो वास्तव में यहाँ एक अच्छा उदाहरण है जहाँ मैं
00:11:24यहाँ दिए गए सुझाव से बिल्कुल अलग कुछ स्पष्ट करना चाहता हूँ। तो यह कह रहा है कि यह सवालों का दूसरा
00:11:30बैच है जो क्लॉड ने मुझसे पूछा है, वैसे। क्या लिंक एडिटर में लाइव फोन फ्रेम
00:11:35प्रीव्यू होना चाहिए? तो Lovable या Bolt.new जैसा कुछ, जहाँ आपके पास जो आप बना रहे हैं उसका दृश्य हो और
00:11:39फिर बाईं ओर बिल्डर हो या क्या यह इनलाइन होना चाहिए? और मैं वास्तव में दोनों
00:11:44विकल्प चाहता हूँ। तो मैं इसके बारे में चैट पर जा सकता हूँ। और फिर यह मुझसे बाद में दूसरे सवाल पूछेगा,
00:11:49लेकिन अब हमें विशेष रूप से इस चीज़ के लिए थोड़ी बातचीत करने को मिलती है। और इसलिए
00:11:53मैं यहाँ कहूँगा, मैं एक इनलाइन एडिटर चाहता हूँ, लेकिन मैं प्रीव्यू देखने में सक्षम होने
00:11:58का विकल्प भी चाहता हूँ। तो अनिवार्य रूप से मैं तीन बटन चाहता हूँ, एक जहाँ मैं सिर्फ एडिटर देखूँ, एक
00:12:03जहाँ मैं दोनों देखूँ, और एक जहाँ मैं सिर्फ प्रीव्यू देखूँ। तो मैं उसे भेजता हूँ और फिर यह वापस आएगा
00:12:08और मुझसे और सवाल पूछेगा और मैं बस प्रक्रिया जारी रखूँगा। तो हम यहाँ हैं। क्लॉड ने मुझसे
00:12:13बहुत सारे सवाल पूछना खत्म कर दिया है, शायद मेरी ज़रूरत से ज़्यादा, लेकिन आप वास्तव में इसे अपनी पसंद के अनुसार बदल सकते हैं।
00:12:18और अब समय आ गया है हमारी PRD बनाने का क्योंकि जैसा कि आप फाइनल स्पेक समरी (विवरण सारांश) से देख सकते हैं,
00:12:23इसे वास्तव में स्पष्ट समझ है कि हम वास्तव में क्या बनाने जा रहे हैं,
00:12:28यहाँ तक कि यह भी कि मैं इसे कहाँ तैनात (deploy) करने जा रहा हूँ। मैं इसे बनाने के बाद Vercel पर तैनात करूँगा।
00:12:31यह शानदार है। जैसे मुझे लगता है कि यह अब वास्तव में बहुत कुछ मानकर नहीं चल रहा है। तो अब मैं क्या करने जा रहा हूँ
00:12:36कि बस अपना 'क्रिएट PRD' कमांड चलाऊँगा। मैं इसे बस .claud/prd.md में डाल दूँगा। आप वास्तव में इसे
00:12:43कहीं भी रख सकते हैं। आप इसे कुछ भी कह सकते हैं। और इसलिए मैं उसी कमांड का उपयोग कर रहा हूँ जिसका मैंने
00:12:47पहले उल्लेख किया था क्योंकि हमारे चार सुनहरे नियमों पर वापस जाते हुए, उनमें से एक बड़ा नियम
00:12:53हर चीज़ को 'कमांडिफाई' (commandify) करना है। यदि आप किसी चीज़ को दो से अधिक बार करते हैं, और मैंने निश्चित रूप से
00:12:59कुछ प्रोजेक्ट्स से ज़्यादा शुरू किए हैं, तो आपको उसे एक कमांड बना देना चाहिए। और फिर जिसे स्किल (skill) के रूप में भी
00:13:03जाना जाता है क्योंकि क्लॉड कोड ने हाल ही में कमांड्स को स्किल्स के साथ मिला दिया है, लेकिन मुझे अभी भी यह अंतर रखना पसंद है कि
00:13:10कमांड्स वे चीज़ें हैं जिन्हें आप खुद कॉल करते हैं जैसे /commit। और फिर स्किल्स, वह तब होता है जब एक एजेंट
00:13:15कॉन्टेक्स्ट पढ़ने का फैसला करता है, जैसे कुछ नया करना सीखना। और इसलिए मैं यहाँ एक कमांड
00:13:20बना रहा हूँ क्योंकि मैं तय कर रहा हूँ, ठीक है, बातचीत के इस बिंदु पर, मैं एक संरचित
00:13:27PRD आउटपुट करने के लिए यह कमांड चलाना चाहता हूँ। तो इस कमांड के हिस्से के रूप में, मैं इसे सटीक संरचना और
00:13:32वे सभी विभिन्न सेक्शन्स दे रहा हूँ जो मैं PRD में चाहता हूँ। इस तरह मैं अपनी पूरी प्रक्रिया को दोहराने योग्य बना रहा हूँ, है ना? इस
00:13:38सिस्टम का एक बड़ा हिस्सा जो मैं आपको यहाँ दिखा रहा हूँ वह यह है कि आप कुछ ऐसा बना सकते हैं जो आपके लिए काम करे
00:13:42और फिर आप इसे नए फीचर्स और नए कोड बेस के लिए बार-बार कर सकते हैं।
00:13:48और इसलिए मैं /create PRD करने जा रहा हूँ। मैं इसे चलने दूँगा और जब हमारे पास हमारी अंतिम PRD होगी तब वापस आऊँगा।
00:13:53ठीक है, तो हमारी PRD अब बन गई है और यह बहुत व्यापक है, लेकिन यह अच्छा है
00:14:00क्योंकि ऐसा नहीं है कि हम इसे लागू करने के लिए अपने कोडिंग एजेंट को भेजने जा रहे हैं। इसके बजाय,
00:14:04हम उन चरणों में चीज़ें बनाने जा रहे हैं जो हमारी PRD द्वारा वर्णित हैं। तो मैं अभी कैमरे पर
00:14:09बहुत अधिक सत्यापन (validation) नहीं करने जा रहा हूँ। निश्चित रूप से आपके समय के लायक नहीं है, लेकिन मैं यह कहना चाहता हूँ कि यह
00:14:14महत्वपूर्ण है कि इसे पढ़ें और सुनिश्चित करें कि आप वास्तव में हर चीज़ पर सहमत हैं। अन्यथा
00:14:18यह भविष्य में बहुत सारे खराब कोड की ओर ले जाएगा। और इसलिए पहली चीज़ जो मैं यहाँ बहुत जल्दी
00:14:22बताना चाहता हूँ वह यह है कि हमारे पास हमारा MVP स्कोप है और इसमें हम अपने सभी सवालों को
00:14:29अपनी PRD में जीवंत होते देख सकते हैं। और यह महत्वपूर्ण है क्योंकि जो बातचीत हमने अभी की वह वास्तव में
00:14:34PRD में फीड करने के लिए सिर्फ एक असंरचित कॉन्टेक्स्ट था। PRD ही एकमात्र चीज़ है जो बचेगी। इसलिए हमें
00:14:40सुनिश्चित करना होगा कि हमने अपने एजेंट के साथ जो पूरी बातचीत की है वह वास्तव में यहाँ डाली गई है। हमारे पास हमारा
00:14:44'आउट ऑफ स्कोप' (दायरे से बाहर) है, जो उतना ही महत्वपूर्ण है कि हम अभी क्या नहीं बनाना चाहते हैं। हमारे पास पूरा
00:14:49डायरेक्टरी स्ट्रक्चर है। तो यह पहले से ही समझता है कि आम तौर पर हमारे कोड बेस में क्या जाने वाला है,
00:14:53जो कि अच्छा है क्योंकि हमने पहले ही अपना टेक स्टैक और आर्किटेक्चर स्थापित कर लिया है। और
00:14:58इसके साथ महत्वपूर्ण बात यह है कि हमारे पास काम के चरण (phases) हैं। और इसलिए यहाँ से, जब हम अपने प्राइम कमांड
00:15:04का उपयोग करते हैं जिसके बारे में हम थोड़ी देर में बात करेंगे, तो हम यह स्थापित करने में सक्षम होते हैं कि, ठीक है, हमने अपने कोड बेस में
00:15:09पहले से क्या बना लिया है? PRD के आधार पर हमें आगे क्या बनाना है? तो जैसे-जैसे हम अपना
00:15:13MVP बनाते हैं, यह हर बातचीत की शुरुआत में कॉन्टेक्स्ट के महत्वपूर्ण हिस्सों में से एक होने वाला है। और वैसे,
00:15:19यहाँ वह सेक्शन है जहाँ मैं चरणों को बताता हूँ। इनमें से प्रत्येक एक सूक्ष्म कार्यान्वयन (granular implementation), हमारे PIV लूप में से एक
00:15:24होने वाला है। तो हम नींव बनाते हैं और हम लिंक मैनेजमेंट बनाते हैं। फिर हम थीम बनाते हैं और
00:15:29हम इनमें से प्रत्येक की व्यक्तिगत रूप से योजना बनाएंगे। तो हम कोडिंग एजेंट से कभी भी एक साथ बहुत अधिक काम करने की कोशिश नहीं कर रहे हैं।
00:15:33ठीक है। तो हमने अभी-अभी अपनी PRD बनाई और वह वास्तव में सबसे बड़ी चीज़ है। तो हम अपने पहले कार्यान्वयन
00:15:38में बस पहुँचने ही वाले हैं। अगली चीज़ जो हमें सेटअप करनी है वह है हमारे नियम। और यह पहले तो
00:15:43काफी बुनियादी होने वाला है क्योंकि हमारे नियम निश्चित रूप से सबसे अधिक विकसित होंगे जैसे-जैसे हम अपना वास्तविक
00:15:48कोड बेस विकसित करेंगे। और इसलिए मैं क्लॉड कोड का उपयोग कर रहा हूँ। मैं बस .agents और agents.md का उल्लेख कर रहा हूँ
00:15:53क्योंकि यह वैश्विक नियमों (global rules) के नामकरण के लिए अधिक सार्वभौमिक मानक है। और इसलिए यहाँ महत्वपूर्ण
00:15:58बात यह है कि वे बाधाएँ (constraints) और परंपराएँ (conventions) जिनका हम हमेशा चाहते हैं कि हमारा कोडिंग एजेंट पालन करे,
00:16:04वे हमारी ग्लोबल रूल फाइल में जाती हैं। और इसलिए ये चीज़ें जैसे हमारे एप्लीकेशन को चलाने के कमांड,
00:16:10हमारी टेस्टिंग स्ट्रेटेजी, हमारी लॉगिंग स्ट्रेटेजी। चाहे हम कुछ भी बना रहे हों, हम हमेशा चाहते हैं कि हमारा
00:16:16कोडिंग एजेंट इसे देखे। और इसलिए हम इसे अभी बनाना चाहते हैं, कम से कम हमें शुरू करने के लिए एक शुरुआती वर्जन।
00:16:20और फिर दूसरा घटक जो मेरे पास यहाँ है वह रेफरेंस फोल्डर (reference folder) है। वैसे आप इसके लिए क्लॉड कोड स्किल्स का भी उपयोग कर सकते हैं,
00:16:25लेकिन यह अधिक सार्वभौमिक है क्योंकि कई बार हमारे पास अन्य कॉन्टेक्स्ट होते हैं जो हम चाहते हैं कि एजेंट के
00:16:30ध्यान में रहें, लेकिन केवल तभी जब हम अपने एप्लीकेशन के विशिष्ट हिस्सों पर काम कर रहे हों, जैसे कि फ्रंट एंड कंपोनेंट्स बनाने
00:16:35के लिए एक गाइड यदि हम फ्रंट एंड पर काम कर रहे हैं। और कारण यह है कि हम इस सब को अपने
00:16:40agents.md में ही क्यों नहीं डालना चाहते हैं, वह यह है कि यह हर एक बातचीत में कोडिंग एजेंट के कॉन्टेक्स्ट
00:16:44में लोड किया जाता है। और याद रखें कॉन्टेक्स्ट कीमती है। इसलिए हम इसे वास्तव में संक्षिप्त रखना चाहते हैं
00:16:49और फिर बस इसे इनमें से प्रत्येक फाइल की ओर इंगित करें। तो हम कोडिंग एजेंट को बता सकते हैं, यदि आप
00:16:55फ्रंट एंड पर काम कर रहे हैं, तो आप इस फाइल को पढ़ सकते हैं। या यदि आप नए API एंडपॉइंट बना रहे हैं, तो आप
00:17:00इस फाइल को पढ़ सकते हैं। तो यह अनिवार्य रूप से प्रगतिशील प्रकटीकरण (progressive disclosure) है। हमारे पास कॉन्टेक्स्ट की अलग-अलग परतें हैं
00:17:04तो यह अनिवार्य रूप से प्रोग्रेसिव डिस्क्लोजर (progressive disclosure) है। हमारे पास संदर्भ की अलग-अलग परतें हैं
00:17:09जिन्हें एजेंट समय के साथ खोज सकता है ताकि यह सुनिश्चित हो सके कि वह केवल वही लोड कर रहा है जिसकी उसे वास्तव में
00:17:14मौजूदा काम के आधार पर जरूरत है। और इसके लिए, मेरे पास एक और कमांड है। फिर से, हर चीज को कमांडिफाई करें,
00:17:20जैसे मेरे पास मेरे PRD के लिए एक टेम्पलेट है। वैसे ही ग्लोबल रूल्स बनाने के लिए भी मेरे पास एक पसंदीदा टेम्पलेट है।
00:17:25तो पहले हम यह पता लगाएंगे कि कोड बेस में हमारे पास पहले से क्या है।
00:17:30क्योंकि मैंने इसे मौजूदा कोड बेस और नए कोड बेस, दोनों के लिए काम करने के हिसाब से बनाया है। और इसके लिए,
00:17:35यह वास्तव में सिर्फ PRD की जांच करेगा। यह पता लगाएगा कि हमारा टेक स्टैक क्या है, हमारा आर्किटेक्चर क्या है,
00:17:38टेस्टिंग और लॉगिंग रणनीतियों के लिए कुछ वेब रिसर्च करेगा, और फिर उन सबको
00:17:43मेरे मार्गदर्शन के साथ मिलाकर मेरे ग्लोबल रूल्स तैयार करेगा। और मेरे पास यहाँ सटीक स्ट्रक्चर मौजूद है।
00:17:50तो यह मेरे पास मौजूद इस टेम्पलेट पर आधारित होगा। तो मैं आपको इसे भी जल्दी से दिखा देता हूँ,
00:17:55क्योंकि यह वह टेम्पलेट है जिसे मैं अपने सभी ग्लोबल रूल्स के लिए उपयोग करना पसंद करता हूँ। और आप देख सकते हैं कि
00:17:59यहाँ सब कुछ ऐसा है जिसकी हम अपने एजेंट के लिए हमेशा परवाह करते हैं। जैसे, ठीक है, यहाँ हमारा टेक स्टैक है,
00:18:04चीजों को चलाने और टेस्ट करने के कमांड्स, हमारा प्रोजेक्ट स्ट्रक्चर। तो इसमें मूल रूप से हमारे
00:18:08कोड बेस का एक इंडेक्स, हमारा आर्किटेक्चर, हमारे कोड पैटर्न, जैसे नाम रखने के नियम, टेस्टिंग
00:18:13और वैलिडेशन रणनीतियाँ शामिल हैं। यह कुल मिलाकर काफी बेसिक है, लेकिन हम इसे पहले बनाएंगे,
00:18:17और फिर मैं आपको रेफरेंस डॉक्यूमेंट्स के कुछ उदाहरण दूंगा जैसे कि हमारे सेकेंडरी ऑन-डिमांड कॉन्टेक्स्ट।
00:18:22और इसके लिए मैं यहाँ क्लाउड (Claude) में जाऊंगा और उसी बातचीत में जहाँ मैंने अपना
00:18:27PRD बनाया था, मैं बस “create rules” लिखूंगा क्योंकि मैं इस पूरी बातचीत को संदर्भ के रूप में
00:18:33मदद के लिए उपयोग कर सकता हूँ। तो इसे तुरंत पता चल जाता है कि, ठीक है, यह हमारा PRD है। यहाँ हमारा टेक स्टैक है और ऐसी ही चीजें।
00:18:38ठीक है। तो हमारा “create rules” कमांड पूरा हो गया है, और अब हमारे पास हमारे ग्लोबल रूल्स हैं। और
00:18:43मैंने इसे पहले ही खोल रखा है। यहाँ काफी स्टैंडर्ड चीजें हैं। हमारे पास हमारा टेक स्टैक है, कमांड्स हैं,
00:18:47जैसे हम अपने डेटाबेस के लिए ड्रिज़ल ORM (Drizzle ORM) का उपयोग कर रहे हैं, उदाहरण के लिए, प्रोजेक्ट स्ट्रक्चर, आर्किटेक्चर,
00:18:52कोड पैटर्न। संक्षिप्तता के लिए, मैं यहाँ चीजों को कस्टमाइज़ नहीं कर रहा हूँ या अपने
00:18:57विचारों को इसमें ज़्यादा लागू नहीं कर रहा हूँ, लेकिन आप कितने तकनीकी हैं इसके आधार पर, यह सुनिश्चित करने का आपका समय है
00:19:03कि सीमाएं और कन्वेंशन, कोड पैटर्न वास्तव में उसी के अनुरूप हों जैसे आप
00:19:07अपना कोड बेस बनाना चाहते हैं। तो अगर आप चाहें तो इसमें काफी समय बिता सकते हैं। मैं बस ऐसा नहीं कर रहा हूँ
00:19:12क्योंकि मैं अभी आपके साथ हाई-लेवल विचारों पर ध्यान केंद्रित कर रहा हूँ। और इसके अलावा, मुझे फ्रंट-एंड
00:19:16कंपोनेंट्स और API एंडपॉइंट्स बनाने जैसी चीजों के लिए सर्वोत्तम प्रथाओं पर कुछ वेब रिसर्च भी करनी थी।
00:19:21और फिर उसके आधार पर, मुझे कुछ ऑन-डिमांड कॉन्टेक्स्ट भी बनाने थे। और फिर से,
00:19:24यदि आप चाहें तो ये क्लाउड कोड स्किल्स (Claude code skills) हो सकते हैं। और इसलिए यदि हम ग्लोबल रूल्स पर वापस जाएं और
00:19:29नीचे ऑन-डिमांड कॉन्टेक्स्ट सेक्शन तक स्क्रॉल करें, तो यहाँ देखिए। जब फ्रंट-एंड कंपोनेंट्स पर काम कर रहे हों,
00:19:34तो यह फाइल पढ़ें। जब API रूट्स पर काम कर रहे हों, तो यह फाइल पढ़ें। तो claud.md ही एकमात्र ऐसी चीज है जो
00:19:40शुरुआत में लोड होती है, लेकिन फिर ज़रूरत पड़ने पर यह इसे लाने का फैसला करेगा। और मेरे अनुभव में, यह
00:19:45इसे रेफरेंस देने में बहुत अच्छा है, खासकर यदि हमारे ग्लोबल रूल्स संक्षिप्त हों, जैसा कि उन्हें होना चाहिए। जैसे हमारे पास यहाँ
00:19:50240 लाइनें भी नहीं हैं। हमारे ग्लोबल रूल्स के लिए 233 लाइनें हैं। और फिर हमारे पास api.md और
00:19:58components.md हैं। ये काफी बड़े हैं क्योंकि जब हम किसी टास्क पर काम कर रहे होते हैं और वह बहुत विशिष्ट
00:20:03होता है, तो यह सुनिश्चित करने के लिए कि हमारे कोडिंग एजेंट के पास अच्छा मार्गदर्शन हो,
00:20:08बहुत अधिक जानकारी लाना ठीक है। तो फिर से, हमारे इस डायग्राम पर वापस चलते हैं, नियम (rules), यह वह है कि हम
00:20:14चीजें कैसे बनाना चाहते हैं। PRD वह है कि हम वास्तव में क्या बनाने जा रहे हैं। और इन दोनों चीजों को ध्यान में रखते हुए,
00:20:19आखिरी चीज जिसके बारे में मैं यहाँ बात करना चाहता हूँ वह है कमांड्स, विशेष रूप से प्राइम (prime) कमांड।
00:20:23फिर हम अपने पहले चरण की योजना बनाने और कोड बनाने की ओर बढ़ेंगे। तो इस बिंदु पर,
00:20:29हमारे पास शुरुआती AI लेयर है। हमारे पास हमारा PRD, हमारे नियम, और वे जेनेरिक कमांड्स हैं जिन्हें मैं लाया हूँ
00:20:34और जिन्हें आप अपने लिए बेझिझक उपयोग कर सकते हैं। तो अब हम इम्प्लीमेंटेशन (implementation) की ओर बढ़ रहे हैं। लेकिन
00:20:39बात यह है। AI कोडिंग असिस्टेंट के साथ हर नई बातचीत की शुरुआत में,
00:20:44हमें इसे कोड बेस के बारे में अपडेट करने की ज़रूरत होती है। हम क्या बना रहे हैं? आगे क्या होने वाला है? यहीं पर
00:20:50प्राइम कमांड काम आता है। और यह एक कमांड है। हम हर नए सेशन की शुरुआत में /prime चलाएंगे।
00:20:56यह हमारे कोड बेस को एक्सप्लोर करने की एक गाइडेड प्रक्रिया है ताकि यह उस बिंदु तक पहुँच सके
00:21:02जहाँ इसके पास एक मेंटल मॉडल हो, और यह अगले फीचर इम्प्लीमेंटेशन के लिए तैयार हो। और इसके लिए हम
00:21:06इसे डॉक्यूमेंटेशन पढ़वाएंगे, स्ट्रक्चर एक्सप्लोर करवाएंगे। यह इन सब कामों के लिए सब-एजेंट्स का भी उपयोग कर सकता है।
00:21:11गिट लॉग (git log) की जाँच करना, क्योंकि यह एक और चीज़ है जिसके बारे में मैं थोड़ी देर में और विस्तार से बात करूँगा,
00:21:15वह है गिट लॉग को हमारी लॉन्ग-टर्म मेमोरी के रूप में उपयोग करना। तो यह समय के साथ देख सकता है कि हमारा कोड बेस कैसे विकसित हुआ है,
00:21:21क्योंकि इससे उसे आगे क्या बनाना है, इस बारे में निर्णय लेने में मदद मिलेगी। और इस कमांड के बाद,
00:21:26यह हमें कोड बेस के बारे में अपनी समझ आउटपुट के रूप में देगा। ताकि हम वैलिडेट कर सकें कि इसे पता है कि
00:21:31हमारे कोड बेस में क्या चल रहा है, और हम अगली चीज़ बनाने की ओर बढ़ सकें। और प्राइम कमांड को यहाँ बहुत अधिक
00:21:36विस्तार से कवर नहीं करूँगा, लेकिन हम इतिहास का लाभ उठाने के लिए गिट के साथ कुछ ऑपरेशन्स करते हैं।
00:21:40और फिर हम कोर फाइल्स को पढ़ रहे हैं और ऐसी किसी भी चीज़ की पहचान कर रहे हैं जिस पर हमें
00:21:45विशेष ध्यान देने की ज़रूरत है, जैसे हमारे एप्लिकेशन के मुख्य एंट्री पॉइंट्स, उदाहरण के लिए। और
00:21:49फिर यह आउटपुट रिपोर्ट वह तरीका है जिससे हम इसकी समझ को वैलिडेट कर सकते हैं। और हम इसे समय के साथ विकसित कर सकते हैं ताकि
00:21:55इसे अपने प्रोजेक्ट के लिए विशिष्ट बनाया जा सके। आपको एक बहुत छोटा उदाहरण देने के लिए, कोर डॉक्यूमेंटेशन
00:22:01पढ़ने के लिए, मैं कह सकता हूँ कि ड्रिज़ल माइग्रेशन्स (drizzle migrations) को पढ़ें ताकि आप डेटाबेस स्कीमा को समझ सकें,
00:22:08है न? इसमें टैब कम्प्लीट (tab complete) भी था। उसे ठीक से पता था कि मैं क्या चाहता हूँ। और जैसे-जैसे आप
00:22:12अपनी खुद की समझ बनाते हैं कि वे कौन सी मुख्य चीजें हैं जिन पर मैं चाहता हूँ कि मेरा कोडिंग एजेंट
00:22:16इस कोड बेस में ध्यान दे, जैसे शायद रेफरेंस फोल्डर में मौजूद अन्य डॉक्यूमेंटेशन,
00:22:20उदाहरण के लिए, तो हम उसे यहाँ जोड़ सकते हैं। और अब मैं क्या करूँगा कि मैं क्लाउड में जाऊंगा, लेकिन मैं एक
00:22:25बिल्कुल नई बातचीत शुरू करूँगा, क्योंकि अब हम अपने पहले PIV लूप में प्रवेश करने जा रहे हैं। और मैं
00:22:30थोड़ी देर में पूरे PIV लूप को समझाऊंगा, लेकिन यह देखिए। मैं बस प्राइम (Prime) चलाने जा रहा हूँ। और
00:22:34यह मेरी बातचीत की शुरुआत होगी, इससे पहले कि मैं कुछ भी एक्सप्लोर करना चाहूँ। और इस मामले में,
00:22:39इसे अहसास होगा कि, ठीक है, यह एक बिल्कुल नया प्रोजेक्ट है। मुझे PRD की जाँच करने दें। और
00:22:44यह सलाह देगा कि, चलिए पहले चरण (phase one) को पहले करते हैं। चलिए अपने प्रोजेक्ट के लिए फाउंडेशन तैयार करते हैं।
00:22:49तो हमारा प्राइम पूरा हो गया। यहाँ प्रोजेक्ट ओवरव्यू है - लिंक इन बायो पेज बिल्डर। वर्तमान स्थिति,
00:22:54यह सिर्फ डॉक्यूमेंटेशन के साथ एक खाली रिपॉजिटरी है। मैंने पहले एक टेस्ट बिल्ड किया था, इसलिए यह
00:22:59यह दिखा रहा है, लेकिन मैंने अभी के लिए सब कुछ साफ़ कर दिया है। और फिर इसने हमारे PRD से पहला चरण,
00:23:04फाउंडेशन निकाला। और यह वही है जो इसे बनाने की सिफारिश कर रहा है। और मैं बिल्कुल यही
00:23:10चाहता हूँ। मैं चाहता हूँ कि यह PRD से एक-एक करके चरणों को चुने। ताकि हमारे पास
00:23:14हमारे PIV लूप्स के लिए विस्तृत इम्प्लीमेंटेशन हों, और PIV लूप्स की बात करें तो, अब हम इसमें प्रवेश करने वाले हैं।
00:23:20तो PIV, प्लान (Plan), इम्प्लीमेंट (Implement), वैलिडेट (Validate) का संक्षिप्त रूप है। हम केंद्रित काम लेते हैं, आमतौर पर PRD से एक चरण,
00:23:29और हम इसे इस पूरी प्रक्रिया के माध्यम से चलाते हैं। तो हम एक स्ट्रक्चर्ड प्लान बनाते हैं। वह यह हिस्सा
00:23:34है कि हम किस चीज़ से निपटने जा रहे हैं। और यह प्रक्रिया वास्तव में काफी हद तक
00:23:38PRD बनाने के समान ही है। फिर हम इम्प्लीमेंटेशन की ओर बढ़ते हैं। और हमारा लक्ष्य यहाँ कोडिंग एजेंट को
00:23:44सारी कोडिंग सौंपना है। और फिर हम बाद में वैलिडेशन करते हैं। और इसलिए मैं बहुत जल्दी कवर करने जा रहा हूँ कि यह
00:23:50प्रक्रिया कैसी दिखती है। फिर हम इसे एक्शन में देखेंगे। और सबसे पहले, जब हम
00:23:55अपनी प्लानिंग में होते हैं, तो हमारे पास प्लानिंग की दो परतें होती हैं, हमारे पास टॉप लेवल प्रोजेक्ट प्लानिंग होती है। वह
00:24:00वही है जो हमने अपना PRD और नियम बनाकर पहले ही कर लिया है। और अब हमारे पास टास्क स्पेसिफिक प्लानिंग है। तो जैसा कि
00:24:07मैंने अभी बताया, ये काफी समान हैं। एक स्ट्रक्चर्ड प्लान बनाना काफी हद तक
00:24:13हमारा स्ट्रक्चर्ड PRD बनाने जैसा ही है। मुख्य अंतर यह है कि स्ट्रक्चर्ड प्लान सिर्फ
00:24:19एक व्यक्तिगत फीचर और उसके साथ आने वाले सभी टास्क पर केंद्रित होता है। तो अब हम
00:24:24कोड के करीब पहुँच रहे हैं। हम उतने हाई-लेवल पर नहीं हैं, लेकिन फिर भी हम एक बहुत ही अनस्ट्रक्चर्ड
00:24:30बातचीत के साथ शुरुआत करेंगे। मैं इसे वाइब प्लानिंग (vibe planning) कहना पसंद करता हूँ, जहाँ हम सामान्य विचारों का पता लगाएंगे।
00:24:35हम विशेष रूप से क्या बना रहे हैं उसका आर्किटेक्चर क्या है, कोड-बेस्ड एनालिसिस और डॉक्यूमेंटेशन के लिए सब-एजेंट्स को सक्रिय करना,
00:24:40और फिर बस यह पता लगाना कि इस फीचर के लिए हमें किन विशिष्ट कार्यों को पूरा करने की
00:24:44ज़रूरत है? और इसलिए हमारे बीच यह बातचीत होती है और मैं आपको इसका एक उदाहरण दिखाऊंगा।
00:24:50और फिर हम उसे एक स्ट्रक्चर्ड डॉक्यूमेंट में बदल देते हैं, बिल्कुल PRD की तरह। तो यहाँ लक्ष्य हमारी
00:24:56बातचीत के आधार पर AI कोडिंग असिस्टेंट के लिए हमले का एक विस्तृत प्लान (plan of attack) बनाना है। तो
00:25:02बातचीत हमारे कॉन्टेक्स्ट का एक हिस्सा है, लेकिन यहाँ हमारे पास बहुत विशिष्ट सेक्शन्स हैं जिन्हें मैं
00:25:09स्ट्रक्चर्ड प्लान में बनाना चाहता हूँ। इस फीचर का लक्ष्य और सफलता की कसौटी (success criteria), कोई भी डॉक्यूमेंटेशन
00:25:13जिसे हम रेफरेंस देना चाहते हैं जिसे शायद किसी सब-एजेंट ने खोजा हो, हमारी टास्क लिस्ट, जो कि उतनी ही
00:25:18विशिष्ट हो सकती है जितनी कि वे व्यक्तिगत फाइलें जिन्हें हम बनाना और अपडेट करना चाहते हैं। और फिर शायद इस पूरे
00:25:23प्लान का सबसे महत्वपूर्ण हिस्सा वैलिडेशन स्ट्रैटेजी (validation strategy) है। यह कुछ-कुछ टेस्ट ड्रिवन डेवलपमेंट (test driven development)
00:25:27की तरह है जहाँ हम एक भी लाइन कोड लिखने से पहले इस बारे में बहुत विशिष्ट होना चाहते हैं कि हम फीचर को
00:25:33कैसे वैलिडेट कर सकते हैं। यह हमें और कोडिंग एजेंट, दोनों को सफलता की कसौटी के बारे में बहुत
00:25:38विशिष्ट होने के लिए मजबूर करता है। और इसलिए हम अपना स्ट्रक्चर्ड प्लान बनाते हैं और हम बहुत हद तक
00:25:45इसका हिस्सा होते हैं, लेकिन फिर हम सारी कोडिंग एजेंट को ही सौंप देते हैं। हालाँकि यह वाइब कोडिंग
00:25:51नहीं है। मैं एजेंट पर भरोसा करने लेकिन उसे वेरिफाई करने का एकमात्र कारण यह है कि मैं
00:25:56इम्प्लीमेंटेशन को प्लानिंग और वैलिडेशन के बीच सैंडविच कर रहा हूँ, जिसकी प्रक्रिया का मैं बहुत हिस्सा हूँ।
00:26:01और इसलिए हम कोडिंग एजेंट से यूनिट टेस्टिंग, इंटीग्रेशन टेस्टिंग और एंड-टू-एंड टेस्टिंग के साथ उसके
00:26:06खुद के काम की जाँच करवाएंगे। हम वह भी देखेंगे। लेकिन फिर मैं अपना खुद का
00:26:11कोड रिव्यू करूँगा और एप्लिकेशन को मैन्युअल रूप से टेस्ट करूँगा। मैं इसे खुद सबमिट करूँगा। मैं
00:26:16एप्लिकेशन को वैसे ही देखूंगा जैसे कोई यूजर देखेगा, यह सुनिश्चित करने के लिए कि कमिट करने और इसे प्रोडक्शन
00:26:20या स्टेजिंग या जो भी हो, उस पर भेजने से पहले सब कुछ ठीक से काम कर रहा है। यहाँ महत्वपूर्ण बात यह है कि
00:26:26प्लानिंग और इम्प्लीमेंटेशन के बीच, मैं कॉन्टेक्स्ट को रीसेट करने जा रहा हूँ। यह सुनहरे नियमों में से
00:26:32एक है। कॉन्टेक्स्ट बहुत कीमती है। और इसलिए मेरे पास इस फीचर को समझने के लिए एक लंबी और विस्तृत बातचीत होती है जिसे हम
00:26:38इम्प्लीमेंट करने जा रहे हैं। और फिर यहाँ जो स्ट्रक्चर्ड प्लान मैं बनाता हूँ, मैं चाहता हूँ कि कोडिंग एजेंट के लिए
00:26:44काम पूरा करने के लिए बस उतना ही कॉन्टेक्स्ट हो ताकि मेरे पास एक ताज़ा
00:26:50बातचीत हो सके जहाँ प्लान ही एकमात्र ऐसी चीज़ हो जिसे मैं भेजता हूँ क्योंकि इसमें रेफरेंस देने के लिए सारा डॉक्यूमेंटेशन है।
00:26:55इसमें पूरी टास्क लिस्ट है। तो हमें पता है कि हमें क्या करना है। हमें पता है कि कैसे वैलिडेट करना है। तो
00:27:00इस तरह हम चीजों को काटकर सीधे निष्पादन (execution) पर जा सकते हैं ताकि चीजें बहुत फोकस्ड रहें, है न? हम
00:27:06नहीं चाहते कि जब हम वास्तविक कोड लिखना शुरू करें तो बातचीत बहुत ज़्यादा कॉन्टेक्स्ट से भर जाए।
00:27:12ठीक है। तो इसके साथ, अब चलिए अपने पहले PIV लूप में चलते हैं। और यह आपकी
00:27:16सोच से कहीं ज़्यादा आसान होने वाला है क्योंकि हमने पहले से जो प्लानिंग की है, उसका फल हमें अब मिलने वाला है।
00:27:22हम अपने कोडिंग एजेंट के साथ एक ही पेज पर हैं। हमें भरोसा है कि वह समझता है कि
00:27:27हम क्या बनाना चाहते हैं। और इसलिए इनमें से प्रत्येक चरण के लिए हमें बहुत अधिक प्लानिंग करने की ज़रूरत नहीं होगी,
00:27:31कम से कम शुरुआत में। और इसलिए यहाँ वापस चलते हुए, हमने प्राइम पूरा कर लिया है। हम कोडिंग एजेंट के साथ एक ही पेज पर हैं।
00:27:36और मैंने इसे यहाँ एक बहुत ही सरल प्रॉम्प्ट दिया है। जैसे, हाँ, पहला चरण
00:27:40अच्छा लग रहा है। बस मुझे उन सभी चीजों की पुष्टि करें जो हम बनाने जा रहे हैं। अब, आमतौर पर पहले लूप के बाद
00:27:44PIV लूप्स अधिक विस्तृत होते हैं। जैसे चलिए यह पता लगाने के लिए कोड बेस को देखते हैं कि हम
00:27:49इसे वास्तव में कैसे बनाएंगे। लेकिन यहाँ, यह वास्तव में सरल है। तो यह अच्छा लग रहा है। और अब
00:27:53याद रखें, हर चीज़ को कमांडिफाई करें। मैं इस बातचीत और पहले चरण के इस विचार को
00:27:59टास्क लिस्ट और वैलिडेशन के साथ एक स्ट्रक्चर्ड प्लान में बदलना चाहता हूँ। तो मेरे पास उसके लिए एक और कमांड है। यह
00:28:04बस “create or plan feature” /plan feature कहलाता है। वही है। तो मैं इसे भेजूंगा और अब प्लान
00:28:10फीचर, बिल्कुल क्रिएट PRD की तरह, इसमें एक स्ट्रक्चर्ड प्लान का विचार पहले से ही शामिल है। तो मैं आपको
00:28:17यह कमांड भी दिखाऊंगा। तो प्लान फीचर, इसे खोलते हैं। तो यह एक वैकल्पिक तर्क (optional argument) स्वीकार करता है जहाँ मैं
00:28:23निर्दिष्ट कर सकता हूँ कि मैं क्या बनाना चाहता हूँ। इस मामले में, मैं बस बातचीत के इतिहास का उपयोग कर रहा हूँ। तो इसे पहले से ही पता था,
00:28:28लेकिन हम यहाँ एक चरणबद्ध प्रक्रिया से गुजरते हैं। तो फीचर को समझना, कोड बेस में गहराई से उतरना, जो कि
00:28:33फिर से, भविष्य के PIV लूप्स के लिए अधिक लागू होता है, लेकिन यह बहुत रिसर्च करता है, प्रासंगिक
00:28:38डॉक्यूमेंटेशन खींचता है, यह सुनिश्चित करता है कि निष्पादन में जाने से पहले हमारे पास कॉन्टेक्स्ट का एक समृद्ध सेट हो। और फिर
00:28:44आप यहाँ जो देख रहे हैं, वह टेम्पलेट है। तो हम समस्या के विवरण (problem statement), किसी भी संदर्भ
00:28:49या रेफरेंस का वर्णन करना चाहते हैं। यहाँ टास्क लिस्ट के साथ हमारा इम्प्लीमेंटेशन प्लान है। और फिर
00:28:55बेशक हमारे पास हमारी टेस्टिंग स्ट्रैटेजी है। हम वैलिडेशन को पहले ही परिभाषित करना चाहते हैं। और इस प्लान को बनाने के
00:29:00बाद, निश्चित रूप से, हम इसे वैलिडेट करेंगे। हम यह सुनिश्चित करने जा रहे हैं कि हम बहुत विशिष्ट हों,
00:29:05स्टेप-बाय-स्टेप कि यहाँ बिल्कुल बताया गया है कि हम आपसे एप्लिकेशन को कैसे वैलिडेट करवाना चाहते हैं। और मैं वास्तव में
00:29:11Vercel एजेंट ब्राउज़र CLI स्किल का उपयोग कर रहा हूँ, जिस पर मैंने एक वीडियो बनाया है जिसे मैं यहाँ लिंक करूँगा। तो हम
00:29:17पूर्ण ब्राउज़र ऑटोमेशन बनाने जा रहे हैं। एजेंट बैकएंड और फ्रंटएंड को सक्रिय करेगा
00:29:21और डेटाबेस माइग्रेशन चलाएगा, आगे बढ़ेगा और अपना खुद का लिंक ट्री बनाएगा और मूल रूप से बस यह सुनिश्चित करेगा
00:29:26कि सब कुछ बिल्कुल वैसे ही काम कर रहा है जैसे कोई यूजर एप्लिकेशन का उपयोग करेगा। तो यह काफी रोमांचक है,
00:29:31लेकिन वैलिडेशन यहाँ बहुत विस्तृत होने वाला है ताकि जब तक कंट्रोल वापस
00:29:36हमें दिया जाए, तब तक हम खुद भी वैलिडेशन करते हुए इम्प्लीमेंटेशन में बहुत आश्वस्त हो सकें, लेकिन इसमें
00:29:42मेहनत बहुत कम लगेगी। ठीक है। और हमारा प्लान अब बन गया है। तो चलिए एक नज़र डालते हैं। तो मैंने
00:29:47कैमरे के पीछे थोड़ा वैलिडेशन किया था। मैं आपको थोड़ी देर में वह दिखाऊंगा। आमतौर पर आप काफी ज़्यादा इट्रेट (iterate) करेंगे
00:29:52क्योंकि आप यह सुनिश्चित करना चाहते हैं कि पहले चरण के बारे में उसकी समझ आपके PRD के अनुरूप हो,
00:29:56आप वास्तव में क्या बनाना चाहते हैं, सभी सेक्शन्स को देखें। मैं आपको ऐसा करने के लिए प्रोत्साहित करता हूँ। तो
00:30:01यहाँ टास्क लिस्ट के साथ हमारा इम्प्लीमेंटेशन प्लान है। यह बहुत विस्तृत है, जो कि अच्छा है। हम अब
00:30:05विशिष्ट होना चाहते हैं क्योंकि हम एक ही फीचर पर बहुत फोकस्ड हैं। हमारे पास वैलिडेशन पिरामिड के साथ हमारी वैलिडेशन प्रक्रिया है,
00:30:10जैसा कि मैं इसे कहना पसंद करता हूँ। तो टाइप चेकिंग और लिंटिंग और यूनिट टेस्टिंग। और फिर
00:30:15हम एंड-टू-एंड टेस्टिंग के लिए बहुत विशिष्ट हैं, वे सभी यूजर जर्नी जो हम चाहते हैं कि एजेंट पूरा करे।
00:30:20ताकि जब यह वापस हमारे पास आए तो हम इम्प्लीमेंटेशन में आश्वस्त हो सकें। और यह कुछ ऐसा है
00:30:24जो इसने शुरुआत में बहुत अच्छी तरह से नहीं किया था। और इसलिए मेरे पास यहाँ एक फॉलो-अप प्रॉम्प्ट था बस आपको
00:30:29एक त्वरित उदाहरण देने के लिए कि हम इम्प्लीमेंटेशन के लिए भेजने से पहले प्लान को कैसे इट्रेट और रिफाइन कर सकते हैं।
00:30:34और फिर एक और छोटी सी कीमती बात, मैं वादा करता हूँ कि हम एक सेकंड में इम्प्लीमेंटेशन में उतरेंगे,
00:30:38लेकिन यह वास्तव में महत्वपूर्ण है। आम तौर पर कोडिंग एजेंट एनवायरनमेंट वेरिएबल्स (environment variables) के साथ काम करने में सबसे अच्छे नहीं होते।
00:30:43वे उलझ जाते हैं। यदि आपने इम्प्लीमेंटेशन से पहले एनवायरनमेंट वेरिएबल्स सेट नहीं किए हैं,
00:30:48तो यह बस ढेर सारी मॉक टेस्टिंग करेगा और कहेगा कि सब कुछ वैलिडेट हो गया है जबकि वास्तव में ऐसा नहीं होता,
00:30:53यह वास्तव में निराशाजनक है। और इसलिए आमतौर पर मैं प्लानिंग के साथ-साथ जो करना पसंद करता हूँ
00:30:57वह यह है कि हम एक .env.example बनाएंगे और मैं इसे यहाँ देखने के लिए कहूँगा। तो इसे उन सभी एनवायरनमेंट
00:31:03वेरिएबल्स का पता होता है जो मैंने सेट किए हैं, और फिर मैं अपने एनवायरनमेंट वेरिएबल्स भी सेट करूँगा। तो ज़ाहिर है
00:31:09मैं यह फाइल नहीं दिखाऊंगा क्योंकि इसमें डेटाबेस URL और ऐसी ही चीजों के लिए मेरे सीक्रेट्स हैं। लेकिन
00:31:13चूंकि मेरे पास वह पहले से ही सेट है, अब हम पूरे इम्प्लीमेंटेशन को तेज़ी से कर सकते हैं और फिर न
00:31:19सिर्फ कोड लिख सकते हैं, बल्कि यह डेटाबेस माइग्रेशन चला सकता है, बैकएंड और फ्रंटएंड शुरू कर सकता है,
00:31:23सब कुछ टेस्ट करने के लिए Vercel एजेंट ब्राउज़र CLI का उपयोग कर सकता है। और मुझे एनवायरनमेंट वेरिएबल्स सेट करने के लिए
00:31:29इसे बीच में रुकना नहीं पड़ता। और इसलिए मैंने अब स्टेज पूरी तरह से तैयार कर लिया है और मैं
00:31:34इम्प्लीमेंटेशन की ओर बढ़ रहा हूँ और मैं इस प्लान से काफी खुश हूँ। तो अब याद रखें कॉन्टेक्स्ट रीसेट क्योंकि कॉन्टेक्स्ट
00:31:40कीमती है। मैं अब एक बिल्कुल नए कॉन्टेक्स्ट विंडो में हूँ जहाँ मैं अपने “execute” कमांड का उपयोग करूँगा और
00:31:45एक पैरामीटर वह प्लान है जिसकी ओर मैं इसे इंगित कर रहा हूँ। अब इसके कॉन्टेक्स्ट के लिए बस इतनी ही ज़रूरत है। और इसलिए
00:31:51मैं अभी रुकूंगा और जब यह पूरी चीज़ कर लेगा तब वापस आऊंगा। और वास्तव में हम
00:31:56अब सारी कोडिंग एजेंट को सौंप रहे हैं, और उस सारी मेहनत का फल पा रहे हैं जो हमने प्लानिंग में लगाई थी।
00:32:01इस बिंदु पर हर एक PIV लूप अब इतना तेज़ होने वाला है क्योंकि हमने इसमें काफी काम किया है।
00:32:06ठीक है, हमारा इम्प्लीमेंटेशन पूरा हो गया है। हम स्क्रीनशॉट से देख सकते हैं कि इसने पूरी
00:32:11एंड-टू-एंड टेस्टिंग की है। तो आप इम्प्लीमेंटेशन के बारे में काफी आश्वस्त हो सकते हैं क्योंकि एजेंट ने
00:32:16यहाँ पहले ही सब कुछ संभाल लिया है, लेकिन हमारे लिए ह्यूमन वैलिडेशन करना अभी भी महत्वपूर्ण है। हम
00:32:21वास्तव में यह सुनिश्चित कर सकते हैं कि हम भरोसा कर रहे हैं लेकिन वेरिफाई भी कर रहे हैं। और इसलिए कोड रिव्यू,
00:32:26वह काफी गहराई की चीज़ है। इसलिए मैं अभी ऐसा नहीं करने जा रहा हूँ, लेकिन यदि आप अधिक तकनीकी हैं,
00:32:30तो यह निश्चित रूप से महत्वपूर्ण है कि आप ऐसा करें। लेकिन मैं जो करने जा रहा हूँ वह है आपके साथ लाइव एप्लिकेशन टेस्ट करना।
00:32:35तो मैंने कैमरे के पीछे केवल एक काम किया है कि मैंने पहले से ही एक अकाउंट बना लिया है बस यह सुनिश्चित करने के लिए कि बेसिक
00:32:39ऑथेंटिकेशन (authentication) काम कर रहा है, लेकिन मैंने अभी तक यहाँ कुछ और नहीं किया है। और इसे देखिए। यह
00:32:43बहुत अच्छा है। यह पहले से ही वास्तव में बहुत अच्छा लग रहा है। तो मैं अपना डिस्प्ले नेम सेट कर सकता हूँ। मैं बायो लिख सकता हूँ जैसे
00:32:49एक कूल AI बिल्डर। ठीक है, मैं अपना अवतार URL सेट कर सकता हूँ। तो मैंने अभी Imgur पर एक इमेज अपलोड की है। तो, ठीक है,
00:32:55यह भी बहुत अच्छा लग रहा है। मैं कुछ लिंक जोड़ सकता हूँ जैसे, ठीक है, मैं यूट्यूब जोड़ूंगा। और फिर वह
00:32:59https [youtube.com/@colemedine](https://www.google.com/search?q=https://youtube.com/%40colemedine) है। ठीक है, अच्छा लग रहा है। एक और लिंक जोड़ें। मैं लिंक्डइन (LinkedIn) जोड़ूंगा। मेरे पास
00:33:08अभी मेरा लिंक्डइन URL नहीं है। इसलिए मैं बस linkedin.com जैसा कुछ कर दूंगा। मुझे वास्तव में परवाह नहीं है। ठीक है,
00:33:11बढ़िया। और मुझे बस एक और जोड़ने दें। मैं X (ट्विटर) जोड़ूंगा। ठीक है, तो चलिए बस x.com करते हैं। बहुत अच्छा। और मैं
00:33:18इन्हें पुनर्व्यवस्थित करने के लिए ड्रैग (drag) कर सकता हूँ। यह स्वचालित रूप से यहाँ दिखाई देता है। मैं सिर्फ एडिटर देख सकता हूँ और फिर
00:33:24प्रिव्यू को एडजस्ट कर सकता हूँ। थीम अभी सबसे अच्छी नहीं लग रही है। जैसे कि यह सिर्फ सफेद है, लेकिन मुझे लगता है कि
00:33:28वह वैसे भी बाद के चरण में आता है, क्योंकि अभी हम सिर्फ फाउंडेशन बना रहे हैं। तो इसमें से बहुत
00:33:32कुछ अभी सही नहीं है, लेकिन शुरुआती बिंदु के हिसाब से यह अभी भी बहुत ही शानदार लग रहा है। और फिर मैं
00:33:37सेव (save) पर क्लिक कर सकता हूँ। और, उम, हाँ, चलिए API एंडपॉइंट्स लोड करते हैं। यह लोकल होस्ट पर चल रहा है।
00:33:42वहाँ देखिए। बदलाव सफलतापूर्वक सेव हो गए। तो मैं रिफ्रेश कर सकता हूँ और सब कुछ अभी भी
00:33:46वहीं रहेगा। ठीक है। यह अद्भुत है। तो यह बहुत, बहुत अच्छा लग रहा है। अब, मैं जिस बारे में बात करना चाहता हूँ
00:33:51चूंकि हमने एक अच्छा फाउंडेशन तैयार कर लिया है, वह है कमिट मैसेज (commit message), बस यहाँ जल्दी से।
00:33:57तो मेरे पास एक और कमांड है जिसे स्लैश कमिट (/commit) कहते हैं, और यह बहुत ही बेसिक है। आप
00:34:01इसे चाहें तो और विस्तृत बना सकते हैं, लेकिन अनिवार्य रूप से आप बस एजेंट को निर्देश देना चाहते हैं कि
00:34:06गिट मैसेज कैसे बनाया जाए, क्योंकि हम उसे अपनी लॉन्ग-टर्म मेमोरी के रूप में उपयोग करने जा रहे हैं। तो डायग्राम पर वापस
00:34:11डायग्राम पर वापस चलते हैं, यह उन सुनहरे नियमों में से एक है। आपकी कमिट हिस्ट्री आपकी लॉन्ग-टर्म
00:34:17मेमोरी है। इसलिए हम अपने मैसेज को स्टैंडर्डाइज कर रहे हैं और इसीलिए हम इसे दोबारा इस्तेमाल करने के लिए
00:34:22कमांड स्लैश कमिट का उपयोग कर रहे हैं, ताकि जब हमारा एजेंट प्राइम से गुजर रहा हो, तो वह गिट लॉग को देख सके और
00:34:28हाल ही में हमने जो बनाया है उसका इतिहास देख सके, जो आगे क्या करना है और शायद उन पैटर्न्स के लिए मार्गदर्शन करेगा
00:34:32जिनका हम पालन करना चाहते हैं। और यही इस कमिट मैसेज की शक्ति है। तो मैं स्लैश कमिट करूँगा,
00:34:38जो मैं खुद भी गिट कमिट चला सकता था। यह बहुत आसान है, लेकिन यह बस इसे ऐसा बनाता है
00:34:43कि कंसिस्टेंसी के लिए मैसेज हमेशा एक ही तरह का हो। इस मामले में, कमिट करने के लिए कुछ भी नहीं है क्योंकि
00:34:48मैंने इसे पहले ही ऑफ-कैमरा चला लिया था, लेकिन हर एक इम्प्लीमेंटेशन के बाद इसका ध्यान रखना महत्वपूर्ण है।
00:34:53अब, प्रोजेक्ट की नींव तैयार होने के बाद एक और बेहद महत्वपूर्ण चीज़ जो कवर करनी है,
00:34:58वह है रिग्रेशन टेस्टिंग के लिए एक फ्रेमवर्क सेट करना। हम यह सुनिश्चित करना चाहते हैं
00:35:04कि जैसे-जैसे हम भविष्य के PIV लूप्स से गुजरें, और उन सभी फीचर्स के लिए इस प्रक्रिया को बार-बार दोहराएं
00:35:09जिन्हें हम बनाना चाहते हैं, हमें यह सुनिश्चित करना होगा कि पुरानी चीज़ें न टूटें। और इसे
00:35:14मैं किसी दूसरे वीडियो में विस्तार से कवर करूँगा, इस तरह के टेस्टिंग हार्नेस को खुद लागू करने की सभी रणनीतियाँ,
00:35:19क्योंकि असल में आप एजेंट के पास जाते हैं और कहते हैं कि, ठीक है, हमारे पास अभी जो है वह बढ़िया है, लेकिन
00:35:25मैं एक्वा वॉइस में भी जा सकता हूँ और कह सकता हूँ कि, मैं चाहता हूँ कि तुम उन सभी
00:35:31एंड-टू-एंड टेस्टिंग की लिस्ट बनाओ जो तुमने की हैं और इसे मेरे लिए एक कमांड में डाल दो। ताकि मैं इसे बाद में चला सकूँ जब
00:35:36मैं अन्य फीचर्स बना लूँ, ताकि हम यह सुनिश्चित कर सकें कि हमने पहले जो कुछ भी बनाया था वह अभी भी
00:35:41काम कर रहा है, है ना? कुछ इस तरह। फिर से, मैं अभी इसकी गहराई में नहीं जाऊँगा।
00:35:46इसे सेट करने और एक टेस्ट हार्नेस बनाने में समय लगता है, लेकिन इसी तरह आप यह सुनिश्चित करते हैं
00:35:50कि आपका एप्लिकेशन स्थिर रहे जैसे-जैसे आप इसके ऊपर निर्माण जारी रखते हैं। और इसे बनाने और
00:35:55मेंटेन करने में काफी मेहनत लगती है क्योंकि आपको इसे लगातार अपडेट करना पड़ता है। और इसलिए
00:36:00ऐसे समाधान भी मौजूद हैं जो आपके लिए इसका ख्याल रखते हैं। और वे बहुत शक्तिशाली हैं।
00:36:05इनमें से एक एप्लिकेशन QA tech है। उनके पास AI टेस्टिंग एजेंट हैं जो आपके कोडबेस के साथ विकसित और अनुकूलित होते हैं।
00:36:11जैसे-जैसे आप और अधिक फीचर्स जोड़ते हैं, वे और अधिक टेस्ट केसेस जोड़ते हैं ताकि यह सुनिश्चित हो सके कि
00:36:16आपका एप्लिकेशन ठीक से काम कर रहा है। मैं आपको
00:36:22इसका एक उदाहरण जल्दी से दिखाता हूँ। इसे शुरू करना बहुत आसान है। आप QA tech में जाएँ, उनके पास
00:36:26इसे आज़माने के लिए एक फ्री टियर है। मैं यहाँ एक प्रोजेक्ट बनाऊँगा, और फिर आपको बस
00:36:30उस URL को पेस्ट करना होगा जिसे आप टेस्ट करना चाहते हैं। मैंने इस एप्लिकेशन को लिया, क्योंकि मैंने पहले ही कमिट
00:36:35करके गिटहब पर पुश कर दिया था। मैंने इसे बस एक मिनट में Vercel पर डिप्लॉय कर दिया। अपनी साइट्स को मुफ्त में होस्ट
00:36:40करने के लिए सबसे आसान जगह, खासकर जब आप Next.js के साथ निर्माण करते हैं। तो मैं अपने प्रोजेक्ट पर जाऊँगा
00:36:45और बस इस URL को पेस्ट कर दूँगा। आपके प्रोजेक्ट को बनाने और आपके कोडबेस का विश्लेषण करने में
00:36:50थोड़ा समय लगेगा। और हम बस यह कह सकते हैं कि, मुझे अपनी साइट के लिए एक अच्छा टेस्ट सेटअप चाहिए।
00:36:55पहले तीन से पांच टेस्ट केस बनाने में मेरी मदद करो। और यह कुछ-कुछ bolt.new या lovable जैसा है,
00:36:59या आप अपने प्रोजेक्ट के लिए टेस्ट सुइट सेट करने के लिए जो भी चाहते हैं उसका प्रॉम्प्ट दे सकते हैं।
00:37:04लेकिन वे शुरू करने के लिए इसी की सलाह देते हैं। मैं इसे भेज देता हूँ।
00:37:08और यह बहुत शानदार है क्योंकि यह आपकी वेबसाइट को पूरी तरह से खंगालेगा, वास्तव में इसे क्रॉल करेगा, लेकिन आपको
00:37:12इंफ्रास्ट्रक्चर को मैनेज करने की बिल्कुल ज़रूरत नहीं है। यह आपकी वेबसाइट का विश्लेषण करता है और टेस्ट केसेस
00:37:16तैयार करता है। जब यह हो जाएगा तो मैं वापस आऊँगा। अभी प्रोसेस के बीच में, मैं आपको जल्दी से दिखाना चाहता हूँ
00:37:21कि इसने मेरी वेबसाइट को कुछ ही मिनटों में क्रॉल कर लिया। और फिर सबसे महत्वपूर्ण
00:37:25चीज़ों में से एक यह है कि हमें अपनी वेबसाइट पर लॉग इन करने का एक तरीका चाहिए। हम चाहते हैं कि ऑटोमेशन इसे कर सके।
00:37:29तो उनके पास हमारे लिए अपना यूजरनेम और पासवर्ड डालने का एक तरीका है, और फिर वे इसे
00:37:34सुरक्षित तरीके से स्टोर करेंगे। मैंने यहाँ एक टेस्ट अकाउंट बनाया है। मैं इसे सेव कर देता हूँ। और फिर
00:37:38यह वेबसाइट में प्रवेश करने, गहराई से समझने और उन सभी यूजर जर्नी को समझने के लिए इसका उपयोग करेगा
00:37:43जिन्हें हम यहाँ टेस्ट करना चाहते हैं। और देखिए, इसने हमारे लिए कई टेस्ट केसेस जेनरेट किए हैं, और हम
00:37:48इनमें से हर एक पर क्लिक भी कर सकते हैं। और हम देख सकते हैं कि यह वास्तव में किस फ्लो से गुजरा। तो अब
00:37:53हमारे पास ये सभी टेस्ट सेट अप हैं। और QA tech में AI टेस्टिंग एजेंट समय के साथ इन टेस्ट केसेस को
00:37:59विकसित करेंगे ताकि यह सुनिश्चित हो सके कि यह हमारे कोडबेस की हर चीज़ को कवर करता रहे। जैसे-जैसे हम और अधिक
00:38:04फीचर्स बनाते हैं, यह बहुत ही शानदार होता जाता है। फिर से, हम इस तरह का कुछ करने के लिए अपना खुद का कमांड सिस्टम
00:38:09बना सकते हैं। लेकिन मैं वास्तव में एक ऐसे प्लेटफॉर्म की सराहना करता हूँ जो मेरे लिए यह सब संभाल लेता है।
00:38:14और इसके पीछे ऐसे एजेंट हैं जिनसे मैं यहाँ टेस्टिंग पर काम करने के लिए चैट भी कर सकता हूँ और
00:38:19यह सुनिश्चित कर सकता हूँ कि मैं वास्तव में हर चीज़ का रिग्रेशन टेस्ट कर रहा हूँ। और फिर जब भी
00:38:24कोई चीज़ टूटती है, तो मैं यहाँ आकर कह सकता हूँ कि, ठीक है, अभी एप्लिकेशन में एक बग है,
00:38:28एक ऐसा टेस्ट बनाओ जो फेल होना चाहिए। मुझे समस्या का समाधान करने दो। और फिर टेस्ट
00:38:33पास होना चाहिए। और यह हमें मेरे आखिरी सुनहरे नियम पर ले जाता है, सिस्टम इवोल्यूशन माइंडसेट।
00:38:40तो जब भी हमें अपने कोडबेस में किसी बग का सामना करना पड़ता है, तो यह महत्वपूर्ण है कि हम केवल बग को ठीक न करें,
00:38:46बल्कि यह भी सोचें कि हम अपनी AI लेयर में क्या सुधार कर सकते हैं ताकि ऐसा दोबारा न हो। जैसे शायद हमें
00:38:51अपने स्टाइल गाइड और नियमों के बारे में अधिक विशिष्ट होने की ज़रूरत है, या उसके लिए एक नया ऑन-डिमांड कॉन्टेक्स्ट बनाना होगा।
00:38:57शायद हमें और अधिक एंड-टू-एंड टेस्टिंग की ज़रूरत है जो हमारे कमांड्स, वर्कफ्लो में दी गई हो,
00:39:02ताकि यह सुनिश्चित हो सके कि हमें दोबारा इस समस्या का सामना न करना पड़े। और फिर हम
00:39:06वह भी कर सकते हैं जो मैंने अभी QA tech या अपने कमांड सिस्टम में दिखाया, जहाँ हम यह सुनिश्चित करने के लिए एक टेस्ट जोड़ते हैं
00:39:12कि हमें कोडबेस में दोबारा उस समस्या का सामना न करना पड़े। और इसकी शक्ति, भले ही इसे करने में समय
00:39:16लगता है, यह है कि हम अपने कोडिंग एजेंट को समय के साथ अधिक विश्वसनीय और रिपीट करने योग्य बनाते हैं, और इसे
00:39:21अपने कोडबेस के साथ विकसित करते हैं। तो हम समानांतर में तीन चीज़ें कर रहे हैं। जैसे-जैसे हम अपना
00:39:26कोडबेस बना रहे हैं, हम अपने टेस्ट बेस, कोडबेस और अपनी AI लेयर को विकसित कर रहे हैं। और यह
00:39:32समय के साथ बहुत अधिक प्रभावशाली हो जाता है। तो क्लाउड कोड पर वापस चलते हुए, मैं आपको इसका एक बहुत सरल उदाहरण देता हूँ।
00:39:37एक चीज़ जो मैंने ऑफ-कैमरा एक बार की, वह थी साइट के स्टाइल पर काम करना।
00:39:43क्योंकि अगर आप वीडियो की शुरुआत में वापस जाएँ, तो आप देखेंगे कि मैं स्टाइल के बारे में बात करना भूल गया था,
00:39:47कि मैं साइट को कैसा दिखाना चाहता था। इसलिए क्लाउड कोड ने खुद ही अपनी धारणाएँ
00:39:51बना ली थीं। और वह उतना अच्छा नहीं लग रहा था। इसलिए मुझे उस पर दोबारा काम करना पड़ा। और यहाँ मैं एक चीज़
00:39:56कर सकता हूँ, जैसे, "शुरुआत में मुझे तुम्हारा लागू किया गया फ्रंट-एंड स्टाइल पसंद नहीं आया। हमारे पास
00:40:01निश्चित रूप से स्टाइल गाइडलाइन के लिए नियमों और ऑन-डिमांड कॉन्टेक्स्ट के साथ AI लेयर में पर्याप्त जानकारी नहीं है।
00:40:06इसलिए मैं चाहता हूँ कि तुम यहाँ कुछ मेटा रीजनिंग करो। अभी कुछ भी मत बदलो, लेकिन मेरी यह सोचने में मदद करो
00:40:10कि अभी हम अपने नियमों या ऑन-डिमांड कॉन्टेक्स्ट में क्या बदल सकते हैं, हम क्या जोड़ या अपडेट कर सकते हैं
00:40:15ताकि हमारे पास अधिक कंसिस्टेंट स्टाइल हों क्योंकि हम इस एप्लिकेशन में
00:40:20एनालिटिक्स और अन्य पेजों का निर्माण जारी रखेंगे।"
00:40:25और यहाँ मैं महत्वपूर्ण बात यह कर रहा हूँ कि उसे अभी कुछ भी नहीं बदलने के लिए कह रहा हूँ,
00:40:29क्योंकि आमतौर पर मैं कोडबेस की तुलना में AI लेयर को बदलने पर बहुत अधिक नियंत्रण रखना चाहता हूँ,
00:40:34जबकि कोडबेस के लिए मैं एजेंट को जितना हो सके उतना काम सौंपना चाहता हूँ। तो मैं उससे तर्क करवाता हूँ,
00:40:39लेकिन मैं आमतौर पर ये छोटे और केंद्रित बदलाव खुद करना पसंद करता हूँ। और आप यहाँ देख सकते हैं कि
00:40:44यह रेफरेंस फोल्डर में style.md बनाने की सलाह देता है। हमारे लिए ऑन-डिमांड कॉन्टेक्स्ट का तीसरा हिस्सा।
00:40:50और यह components.md के साथ जाएगा। वह कुछ ऐसा है कि, "हमें चीज़ों को कैसे व्यवस्थित करना चाहिए।"
00:40:54और फिर styles.md यह है कि यह कैसे काम करता है। हमें Tailwind CSS और शायद Shad CN के साथ कैसे काम करना चाहिए।
00:40:58तो मैं इसके पूर्ण इम्प्लीमेंटेशन और सब कुछ सही करने की प्रक्रिया में नहीं जाऊँगा, लेकिन
00:41:03बस आपको एक अच्छा उदाहरण देने की कोशिश कर रहा हूँ कि जब भी हमें कोड में कोई बग मिलता है या कुछ हमारे अनुसार नहीं होता,
00:41:06जैसा कि यहाँ है, तो यह हमेशा हमारे लिए AI लेयर को विकसित करने का एक अवसर होता है।
00:41:11और इस तरह हम इस विशिष्ट प्रोजेक्ट के लिए अपने कोडिंग एजेंट के साथ और अधिक तालमेल बिठाते हैं, जैसे-जैसे हम इसे बनाना जारी रखते हैं।
00:41:16और मेरे दोस्त, यही पूरी प्रक्रिया का सबसे प्रभावशाली हिस्सा है, वास्तव में सबसे अच्छी चीज़ को अंत के लिए बचाकर रखा गया था।
00:41:20तो बस इतना ही है। जब आप नए प्रोजेक्ट शुरू कर रहे हों, तो अपने कोडिंग एजेंटों के साथ विश्वसनीय और बार-बार
00:41:26परिणाम प्राप्त करने की यह वास्तव में एक बहुत ही सरल प्रक्रिया है। क्योंकि अब सिस्टम इवोल्यूशन के बाद,
00:41:32हम इसे वापस ऊपर ले जाते हैं और अपने PRD में सभी चरणों को बनाने के लिए, किसी भी अन्य फीचर को जोड़ने के लिए,
00:41:35उसी प्रक्रिया से गुजरते हुए और अधिक PIV लूप्स चलाते हैं, जो उस मिनिमम वायबल प्रोडक्ट तक पहुँचने के लिए
00:41:40ज़रूरी है। और फिर यह हमें ब्राउनफील्ड डेवलपमेंट की ओर ले जाएगा
00:41:45जिसके बारे में मैं अपने चैनल पर आने वाले अगले वीडियो में बात करूँगा।
00:41:49और अगर यह सब आपको अच्छा लगता है और आप कमांड और रूल्स की मेरी पूरी रिसोर्स लाइब्रेरी के साथ और गहराई में जाना चाहते हैं,
00:41:54आप देखना चाहते हैं कि सिस्टम इवोल्यूशन वास्तव में कैसा दिखता है और उसकी गहराई में जाना चाहते हैं, तो
00:41:59डाइनैमिक्स कम्युनिटी में मेरे एजेंटिक कोडिंग कोर्स को ज़रूर देखें। मैं इसका लिंक
00:42:04डिस्क्रिप्शन और पिन किए गए कमेंट में दे दूँगा। और अभी के लिए मेरे पास बस इतना ही है।
00:42:08तो अगर आपने इस वीडियो की सराहना की, और आप एजेंटिक कोडिंग और ब्राउनफील्ड
00:42:13डेवलपमेंट वीडियो के बारे में और जानने के लिए उत्सुक हैं, तो मुझे एक लाइक और सब्सक्राइब पाकर बहुत खुशी होगी।
00:42:17और इसी के साथ, मैं आपसे अगले वीडियो में मिलूँगा।
00:42:22नमस्ते।