-
Notifications
You must be signed in to change notification settings - Fork 0
Tutorial 4 Prompting and Reviewing hi
लक्ष्य: मेटा-कौशल। अब आप एक एजेंट के साथ एक feature बना सकते हैं — यह अध्याय उसे सहजता से और बार-बार करने के बारे में है: ऐसे prompts लिखना जो पहली बार में सही उतरें, diffs को कुशलता से review करना, चीज़ें बिगड़ने पर iterate करना, और कई sessions में गति बनाए रखना।
← पिछला: ट्यूटोरियल 3 आपका पहला एजेंट टास्क · अगला: ट्यूटोरियल 5 लोकलाइज़ेशन
एजेंट एक तेज़, शाब्दिक, उत्साही junior इंजीनियर है। जैसे आप एक अच्छे junior को lead करते, वैसे ही इसे lead करें:
-
लक्ष्य और constraints बताएँ। "
endorseजोड़ो" कमज़ोर है। "connectpattern को follow करते हुएendorseजोड़ो, सिर्फ़ seeded RNG, tests के साथ, गेट हरा रहे" मज़बूत है। Constraints ही वह तरीका हैं जिससे आपको फिट बैठने वाला कोड मिलता है। -
उदाहरण की ओर इशारा करें। "
renderConnectद्वारा इस्तेमाल किए pattern को follow करो" एक पैराग्राफ़ के वर्णन से बेहतर है। मौजूदा कोड सबसे अच्छा spec है। - edits से पहले एक plan माँगें किसी भी non-trivial चीज़ पर। एक plan को redirect करना सस्ता है; दस edited फ़ाइलों को undo करना महँगा।
- प्रति prompt एक task। "endorse जोड़ो, RNG भी refactor करो, README भी update करो" को bundle करना एक उलझा diff देता है जिसे review करना कठिन है।
-
इसे test गेट दें। "
npm testचलाओ और जब तक हरा न हो तब तक इसे पूरा मत मानो" एजेंट को ऐसी चीज़ में बदल देता है जो अपना काम खुद जाँचती है।
गति ही एजेंट का पूरा मकसद है — पर बिना पढ़ी गति ही वह तरीका है जिससे bugs ship होते हैं। एक तेज़, सुसंगत review प्रतिवर्त बनाएँ:
- Scope: क्या इसने सिर्फ़ वही बदला जो बदलना चाहिए था? असंबंधित हिली लाइनें एक smell हैं।
-
Patterns: क्या यह आस-पास के कोड से मेल खाता है, बिना किसी नई dependency और
src/के अंदर बिना किसी I/O के? -
प्रोजेक्ट के नियम: इस repo के लिए, वह है सिर्फ़ seeded RNG (diff में
Math.randomgrep करें), user-visible text language bundles में (hardcoded नहीं), और card लाइनें कभी उस width से ज़्यादा नहीं जिस तक layout pad करता है। -
Accessibility: क्या नया output
--accessibleमें टिकता है?lockedin --accessible <your command>चलाएँ और जाँचें कि यह साफ़ plain text की तरह पढ़ता है — कोई नया decorative glypha11yFilterसे छिपकर नहीं निकल रहा। - Tests: क्या कोई नया test है, और अगर feature टूटे तो क्या वह सचमुच fail होगा? पूछें: "इस नए test को fail कराने के लिए मैं कौन-सी line बदलूँगा?"
-
इसे चलाएँ:
npm test, फिर कमांड चलाएँ और output को देखें।
आपको हर character समझने की ज़रूरत नहीं — पर आपको हर निर्णय समझना होगा। अगर आप किसी बदलाव को समझा नहीं सकते, तो स्वीकार करने से पहले एजेंट से उसे समझाने को कहें।
एक लाल गेट एक सामान्य चरण है, विफलता नहीं। इलाज है सटीक feedback:
"
npm testइससे fail होता है: [paste the exact error]।renderEndorsewidth test उम्मीद करता है कि हर card line ≤ 60 visible columns हो। test को कमज़ोर किए बिना इसे fix करो।"
असली error text paste करें। "यह टूटा है" एजेंट को अनुमान लगवाता है; stack trace उसे fix करवाता है। और नए सिरे से शुरू करने के बजाय उसी conversation को जारी रखना पसंद करें — एजेंट के पास वह जो अभी लिखा उसका context पहले से है। अगर दो-तीन iterations converge न हों, पीछे हटें और re-scope करें: task एक prompt के लिए शायद बहुत बड़ा है।
असल काम एक बैठक से ज़्यादा में फैलता है। दो आदतें एक एजेंट को समय के साथ प्रभावी रखती हैं:
-
Memory / conventions। अगर आपका एजेंट durable memory या एक project instructions
फ़ाइल सपोर्ट करता है, तो वहाँ वे नियम दर्ज करें जिन्हें उसे हमेशा follow करना चाहिए
(जैसे "सारी randomness को
pick/shuffleइस्तेमाल करना चाहिए", "पूरा घोषित करने से पहलेnpm testचलाओ")। आप एक convention हर prompt के बजाय एक बार बताते हैं। -
एक handoff note। यह repo एक छोटा, sanitized status doc रखता है
docs/HANDOFF.mdपर: प्रोजेक्ट क्या है, कैसे बना है, कैसे test होता है, और आगे क्या। जब आप लौटते हैं (या किसी teammate — या किसी दूसरे एजेंट को handoff करते हैं), वह note सेकंडों में context फिर बना देता है। एजेंट से कहें कि किसी बदलाव के हिस्से के रूप में इसे up to date रखे।
- गेट पर समझौता नहीं। कुछ भी ship होने से पहले हरे tests। यही आपको तेज़ चलने और output पर भरोसा करने देता है।
- आप ही रिकॉर्ड के reviewer हैं। एजेंट लिखता है; आप तय करते हैं। एक diff स्वीकार करने का मतलब है कि आप उसकी ज़मानत लेते हैं।
- छोटे, verifiable कदम एक विशाल छलांग से बेहतर हैं। हर स्वीकृत बदलाव को ऐप को चलती हालत में छोड़ना चाहिए।
- एक
mentorकमांड ("बिन माँगी सलाह बाँटता है") के लिए एक-पैराग्राफ़ spec लिखें, constraints सहित, और एजेंट से उसे test-first तरीके से बनवाएँ — plan, tests, code, गेट — हर चरण पर review करते हुए। - एजेंट से
docs/HANDOFF.mdupdate करने को कहें ताकि नए कमांड का ज़िक्र हो। - जानबूझकर कुछ तोड़ें (जैसे एक pool entry delete करें),
npm testचलाएँ, और एजेंट को ठीक failure खिलाकर fix करवाने का अभ्यास करें।
-
src/lockedin.jsका असली कोड स्किम करें — अब आप उसकी बनावट जानते हैं। - प्रोजेक्ट के अपने status और architecture नोट्स के लिए
docs/HANDOFF.mdपढ़ें। - कमांड रेफरेंस में मज़ाक का आनंद लें।
यही ट्यूटोरियल है। अब आप एक AI एजेंट को एक test गेट के पीछे असली software बनाने और बदलने के लिए निर्देशित कर सकते हैं — कल्पनीय सबसे ज़्यादा आत्मविश्वासी उदाहरण के साथ। Agree? 👇
Tutorial
- 1 · Orientation
- 2 · How the Code Works
- 3 · Your First Agent Task
- 4 · Prompting & Reviewing
- 5 · Localization
Reference
Satire · Sátira · 風刺. Not affiliated with LinkedIn. GPL-3.0-or-later.