GitHub का Spec Kit - उच्च-गुणवत्ता वाला सॉफ़्टवेयर तेज़ी से विकसित करना
(github.com/github)- Spec-Driven Development: पारंपरिक development में सहायक साधन मानी जाने वाली spec को executable spec तक उन्नत करके, spec से सीधे काम करने वाला implementation बनाने का दृष्टिकोण
- code-केंद्रित प्रथाओं को बदलकर पहले क्या और क्यों को परिभाषित करना, और बाद में कैसे को ठोस बनाना — इस intent-driven development पर ज़ोर
- मुख्य विचार यह है कि spec के माध्यम से सुसंगत outputs बनाए जाएँ, और दोहराए जाने वाले काम को automate करके developers को product problems पर ध्यान केंद्रित करने में मदद दी जाए
- Spec Kit ऐसे spec को executable artifacts में बदलकर implementation को automate करने में मदद करने वाले tools का संग्रह है
- install करने के बाद
/specifyसे क्या/क्यों लिखा जाता है,/planसे stack/architecture घोषित की जाती है, और/tasksसे work units बनाए जाते हैं - लक्ष्य यह है कि organization अलग पहचान न रखने वाले common code लिखने से बाहर निकलकर product scenarios पर ध्यान दे सके; यह spec-driven तरीके से quality और speed दोनों बढ़ाने के लिए एक प्रयोगात्मक framework है
मुख्य दर्शन: Core philosophy
- intent-driven development के तहत क्या को प्राथमिकता देना और कैसे को बाद में विस्तार देना — एक spec-first सोच
- guardrails और organizational principles से युक्त समृद्ध spec लिखना, और one-off code generation के बजाय multi-stage refinement प्रक्रिया से गुजरना
- उन्नत AI models की व्याख्यात्मक क्षमता पर सक्रिय रूप से निर्भर रहते हुए spec को executable परिणामों में बदलने के उपयोग पर ज़ोर
Spec Kit के साथ spec-driven process
- Spec Kit spec को engineering process के केंद्र में रखता है, जिससे implementation, checklist, और task breakdown संचालित होते हैं; developer मुख्य रूप से निर्देशन की भूमिका निभाता है
- coding agent अधिकांश लिखने का काम संभालता है
- process 4 चरणों से बना है, प्रत्येक चरण में स्पष्ट checkpoints होते हैं, और जब तक वर्तमान काम पूरी तरह validate न हो जाए, अगले चरण में नहीं बढ़ा जाता
- Specify चरण: उच्च-स्तरीय विवरण देने पर coding agent विस्तृत spec बनाता है, जो technical stack के बजाय user journey, experience, और success metrics पर केंद्रित होता है
- इसमें यह map किया जाता है कि user कौन है, कौन-सी समस्या हल की जा रही है, interaction कैसे होगा, और कौन-से परिणाम महत्वपूर्ण हैं
- यह user learning के साथ विकसित होने वाला एक living artifact होता है
- Plan चरण: इच्छित stack, architecture, और constraints देने पर coding agent एक व्यापक technical plan बनाता है
- इसमें company-standard technologies, legacy system integration, compliance, performance goals आदि शामिल हो सकते हैं
- तुलना के लिए कई plan variants माँगे जा सकते हैं, और internal documents देने पर architecture patterns को सीधे शामिल किया जा सकता है
- Tasks चरण: spec और plan के आधार पर coding agent काम को छोटे, review किए जा सकने वाले chunks में तोड़ता है
- हर task को स्वतंत्र रूप से implement और test किया जा सकता है, और इसे इस तरह design किया जाता है कि AI task को validate और track कर सके
- उदाहरण के लिए, "authentication बनाना" की जगह "email format validation करने वाला user registration endpoint बनाना" जैसा अधिक ठोस task
- Implement चरण: coding agent tasks को एक-एक करके या parallel में संभालता है, और developer focused changes की review करता है
- spec बताता है कि क्या बनाना है, plan बताता है कि कैसे बनाना है, और tasks बताते हैं कि किस काम पर काम करना है
- हर चरण में developer reflection और refinement करता है, और यह validation role निभाता है कि spec इरादे को सही पकड़ रहा है या नहीं, plan वास्तविक constraints को ध्यान में रखता है या नहीं, और कहीं कुछ छूटा हुआ या edge cases तो नहीं हैं
Agentic workflow में Spec Kit का उपयोग कैसे करें
- Spec Kit GitHub Copilot, Claude Code, Gemini CLI जैसे coding agents के साथ काम करता है, और साधारण commands की एक श्रृंखला के जरिए agent को निर्देश देकर artifacts तैयार करता है
- इससे अस्पष्ट prompts को स्पष्ट intent में बदलकर भरोसेमंद execution संभव होता है
- project initialize करने के बाद
/specifycommand से high-level prompt देने पर coding agent पूरा spec बनाता है, जो project के "क्या" और "क्यों" पर केंद्रित होता है /plancommand से high-level technical direction देने पर coding agent architecture और constraints का सम्मान करने वाला विस्तृत plan बनाता है/taskscommand से spec और plan को executable task list में तोड़ा जाता है, जिसके आधार पर coding agent project requirements implement करता है
विकास चरण: Development phases
- 0-to-1 (greenfield) चरण: high-level requirements के आधार पर spec generation → planning → production-grade app बनाने के flow को support करता है
- creative exploration चरण: विभिन्न stack/architecture और UX patterns को parallel implementation के साथ आज़माने की प्रक्रिया पर ज़ोर
- incremental improvement (brownfield) चरण: feature addition, legacy modernization, और process adaptation को दोहराने वाला evolutionary development
3 परिदृश्य जहाँ यह दृष्टिकोण अच्छी तरह काम करता है
- greenfield (zero-to-one): नया project शुरू करते समय सीधे coding शुरू करने के बजाय पहले spec और plan बनाकर यह सुनिश्चित करना कि AI वही बनाए जो वास्तव में इरादा है; सामान्य pattern-आधारित generic solutions की जगह tailored results मिलते हैं
- मौजूदा सिस्टम में feature work (N-to-N+1): जटिल codebase में feature जोड़ते समय spec के ज़रिए नए feature की मौजूदा system interactions को स्पष्ट करना, और plan के माध्यम से architectural constraints को encode करना, ताकि native जैसा महसूस होने वाला code तैयार हो
- इससे निरंतर development तेज़ और सुरक्षित होता है, हालांकि इसके लिए उन्नत context engineering techniques की आवश्यकता पड़ सकती है
- legacy modernization: legacy system को फिर से बनाते समय जब मूल intent खो गया हो, तब Spec Kit process आवश्यक business logic को आधुनिक spec में कैप्चर करके नई architecture की योजना बनाता है, ताकि AI technical debt के बिना पुनर्निर्माण कर सके
Prerequisites
- Linux/macOS या Windows पर WSL2 आवश्यक
- AI agent के रूप में Claude Code, GitHub Copilot, Gemini CLI, Cursor में से कोई एक चुनें
9 टिप्पणियां
मुझे Copilot Workspace की याद आ रही है।
लगता है कि यह natural language-आधारित AI programming की नींव बनेगा।
GitHub के Spec Kit का फ़ायदा यह है कि इसे GitHub Copilot में भी इस्तेमाल किया जा सकता है.
चूंकि यह GitHub ने बनाया है, इसलिए यह तो स्वाभाविक ही है? लेकिन कई दूसरे टूल्स Claude-आधारित थे.
मुझे Kiro IDE याद आ रहा है
दिलचस्प है। बात समझ में भी आती है
लेख के बीच में SDD के विस्तृत परिचय का लिंक अच्छा है। नीचे उसका AI से किया गया सारांश है।
स्पेसिफिकेशन-ड्रिवन डेवलपमेंट (Specification-Driven Development, SDD)
The Power Inversion
The SDD Workflow in Practice
Why SDD Matters Now
Core Principles
Implementation Approaches
Streamlining SDD with Commands
/specify: feature description को structured specification में बदलता है और automatic numbering, branch creation, तथा template-based directory setup को automate करता है/plan: specification analysis → constitution compliance review → technical translation → data model·API contracts·test scenarios documentation → quickstart validation तैयार करता है/tasks:plan.mdऔर संबंधित design को पढ़कर actionable task list बनाता है, और parallelizable tasks की पहचान तथा सुरक्षित parallel grouping देता हैThe Power of Structured Automation
Template-Driven Quality
[NEEDS CLARIFICATION]marker के जरिए guesswork पर रोक और स्पष्ट सवाल पूछने को बढ़ावा दिया जाता हैimplementation-details/में अलग रखकर readability बनाए रखी जाती हैThe Constitutional Foundation
memory/constitution.mdके immutable principles के आधार पर सभी implementations को consistent·simple·high-quality बनाए रखने वाली development constitution अपनाई जाती हैThe Transformation
आपने इसे किस AI से संक्षेपित किया?
मैंने यह GPT-5 से किया, और सारांश के लिए अपने हिसाब से तैयार किया हुआ काफ़ी लंबा प्रॉम्प्ट इस्तेमाल करता हूँ.
मैं इस कॉन्सेप्ट से काफ़ी सहमत था, इसलिए वीकेंड पर एक नए प्रोजेक्ट में इसका थोड़ा परीक्षण करके देखा, लेकिन यह उम्मीद के मुताबिक़ उतना अच्छा काम नहीं कर पाया। लगता है कि अभी इसमें काफ़ी सुधार की ज़रूरत है। फ़िलहाल इसकी मोटे तौर पर काम करने की प्रक्रिया, जैसा कि कई बार बताया जा चुका है, इस प्रकार है:
संविधान लिखना → स्पेक लिखना → टास्क लिखना → इम्प्लीमेंटेशन
समस्या यह है कि
constitution.mdफ़ाइल "कैसे डेवलप करना है" के बारे में मुख्य गाइड है, लेकिन इसमें "यह ऐप आखिरकार क्या बनेगा" शामिल नहीं हैspec.mdकिसी एक फीचर को समझाने वाला दस्तावेज़ है/specifyऔर/tasaksकमांड के ज़रिए बहुत सारे दस्तावेज़ output के रूप में बनते हैं (जो मैं चाहता था), लेकिन शायद इसी वजह से context बहुत जल्दी ख़र्च होता है (मैं Claude Code इस्तेमाल कर रहा हूँ)tasks.mdमें परिभाषित कामों को करते-करते पहले ठीक से बनाई गई चीज़ें भी overwrite हो जाती हैं, और बग ठीक करते समय नए फीचर भी बन जाते हैं, जिससेtasks.mdसे दूरी बढ़ती जाती है। मुझे समझ नहीं आता किtasks.mdको स्थायी रूप से सहेजकर रखने का क्या मतलब है।फ़िलहाल मैंने जो निष्कर्ष निकाला है, वह इस प्रकार है: