प्रोजेक्ट कॉन्फ़िगरेशन
config.yaml में कुछ पंक्तियों के साथ वर्कफ़्लो को वैसे बदलावों की योजना बनाने दें जैसे आप चाहते हैं।
openspec/config.yaml वर्कफ़्लो को बताता है कि आप बदलावों की योजना कैसे बनाना चाहते हैं।
उदाहरण के लिए, निम्नलिखित कॉन्फ़िगरेशन tasks.md आर्टिफैक्ट के निर्माण नियमों को अपडेट करता है:
rules:
tasks:
- End every task with a commitजब एजेंट चलता है, तो वह इन नियमों से निर्देश लेता है और सुनिश्चित करता है कि हर टास्क एक कमिट चरण के साथ समाप्त हो।
नियम संक्षिप्त रखें। यहाँ का सब कुछ एजेंट के कॉन्टेक्स्ट में पहुँचता है, और लंबे नियम आउटपुट को ख़राब कर सकते हैं।
यह कैसे काम करता है
config.yaml में वे निर्देश होते हैं जो एजेंट को आर्टिफैक्ट बनाते समय या वर्कफ़्लो के माध्यम से काम करते समय मिलते हैं।
हर रन पर यह होता है:
- आप एक वर्कफ़्लो चलाते हैं (जैसे
/openspec-propose)। - एजेंट
openspec instructionsकमांड को कॉल करता है। - कमांड config.yaml से आपका कॉन्टेक्स्ट और नियम पढ़ता है।
- OpenSpec के अंतर्निहित निर्देश और आपके कस्टमाइज़ेशन एजेंट के लिए एक ही प्रॉम्प्ट में मिलाए जाते हैं।
- एजेंट आर्टिफैक्ट लिखने के लिए उस प्रॉम्प्ट का पालन करता है।
उदाहरण के लिए, एक context फ़ील्ड और इस पृष्ठ के शीर्ष पर दिए गए नियम के साथ, openspec instructions tasks.md के लिए यह लौटाता है (संक्षिप्त और एनोटेटेड):
<artifact id="tasks" change="add-dark-mode" schema="spec-driven">
<!-- आपकी config.yaml से: context -->
<project_context>
Designs and tasks must cover Windows, macOS, and Linux
Write all artifacts in Spanish
</project_context>
<!-- आपकी config.yaml से: tasks के लिए नियम -->
<rules>
- End every task with a commit
</rules>
<!-- OpenSpec से: अंतर्निहित मार्गदर्शन -->
<instruction>
...how to write a good tasks.md...
</instruction>
<template>
...the tasks.md structure to fill in...
</template>
</artifact>आपका कॉन्फ़िग पहले पहुँचता है, फिर OpenSpec का अंतर्निहित निर्देश और टेम्पलेट आते हैं। नियम अंतर्निहित निर्देशों में जोड़ते हैं और उन्हें कभी प्रतिस्थापित नहीं करते। config.yaml में किए गए संपादन अगले रन पर एजेंट तक पहुँचते हैं।
फ़ील्ड
तीन फ़ील्ड यह निर्धारित करते हैं कि एजेंट को क्या मिलता है। प्रत्येक फ़ील्ड का सटीक कॉन्ट्रैक्ट (प्रकार, सीमाएँ, वैलिडेशन) प्रोजेक्ट कॉन्फ़िगरेशन (config.yaml) में है।
| फ़ील्ड | यह क्या करता है | किसमें इंजेक्ट होता है |
|---|---|---|
context | एजेंट को हमेशा मिलने वाले निर्देश | सब कुछ: हर आर्टिफैक्ट, apply, archive |
rules | एक आर्टिफैक्ट के लिए अतिरिक्त निर्देश | केवल उस आर्टिफैक्ट का निर्माण |
operations | वर्कफ़्लो चरण कैसे निष्पादित किया जाए, इसके लिए मार्गदर्शन | केवल apply और archive |
config.yaml के अन्य फ़ील्ड (schema, store, references) यह चुनते हैं कि प्रोजेक्ट कौन-सा schema और कौन-सा OpenSpec root उपयोग करता है। कॉन्ट्रैक्ट पृष्ठ उन्हें कवर करता है।
अंतिम कॉलम सटीक है, इसलिए कोई फ़ील्ड केवल वहाँ सूचीबद्ध चरणों तक ही पहुँचता है। विशेष रूप से, verify को rules कभी नहीं मिलते। यह इम्प्लीमेंटेशन की जाँच लिखे गए आर्टिफैक्ट्स के अनुसार करता है।
context
context वह पृष्ठभूमि है जो एजेंट को आर्टिफैक्ट बनाते समय, टास्क लागू करते समय या किसी बदलाव को आर्काइव करते समय मिलती है।
context: |
We ship cross-platform. Designs and tasks must cover Windows, macOS, and Linux
Write all artifacts in Spanishcontext का उपयोग उन तथ्यों और प्रतिबंधों के लिए करें जो वर्कफ़्लो आउटपुट को आकार दें। स्थायी प्रोजेक्ट दस्तावेज़ीकरण को प्रोजेक्ट की दस्तावेज़ फ़ाइलों में रखें, और वह सब छोड़ दें जो एजेंट कोड पढ़कर सीख सकता है।
दूसरी भाषा: चूँकि context हर आर्टिफैक्ट तक पहुँचता है, आप एजेंट को यह निर्देश देने के लिए कि वह proposal, spec, design, और tasks आर्टिफैक्ट्स स्पेनिश में लिखे, Write all artifacts in Spanish. जोड़ सकते हैं।
rules
rules किसी एक आर्टिफैक्ट से जुड़ते हैं और आर्टिफैक्ट id से कुंजीबद्ध होते हैं। प्रत्येक पंक्ति उस आर्टिफैक्ट के अंतर्निहित मार्गदर्शन में जोड़ी जाती है:
rules:
proposal:
- Keep proposals under 500 words
tasks:
- Every UI task includes a Playwright testअब प्रस्ताव संक्षिप्त रहते हैं और tasks.md हमेशा ब्राउज़र टेस्ट की योजना बनाता है। बाकी हर आर्टिफैक्ट अपरिवर्तित रहता है।
operations
operations यह मार्गदर्शन करता है कि एजेंट apply और archive को कैसे निष्पादित करता है, न कि आर्टिफैक्ट क्या कहते हैं:
operations:
apply:
guidance:
- Run the linter before marking a task complete
archive:
guidance:
- Summarize what shipped before archivingapply के दौरान, एजेंट टास्क पूरे करते समय लिंट करता है। archive के दौरान, यह सारांश के साथ समाप्त करता है।
जब config.yaml पर्याप्त न हो
कॉन्फ़िग मानक वर्कफ़्लो के ऊपर निर्देश जोड़ता है, लेकिन यह नहीं बदल सकता कि कौन-से आर्टिफैक्ट मौजूद हैं या उनकी संरचना कैसी है। जब आपको उस स्तर का नियंत्रण चाहिए, या नियम व्यवहार को लगातार दिशा नहीं दे रहे हों, तो schema को फ़ोर्क करें।