Skip to content

إعداد المشروع (config.yaml) ​

كل حقل في openspec/config.yaml: المخطط والسياق والقواعد التي يخطط لها هذا المشروع.

الموقع ​

يحتفظ كل مشروع OpenSpec بملف الإعداد الخاص به في openspec/config.yaml، في جذر المشروع.

الحقول ​

المفتاحالنوعمطلوبالتأثير
schemastringنعممخطط سير العمل الذي تتبعه تغييرات هذا المشروع
contextstringلايُحقن في كل مُخرَج وتطبيق وأرشفة
rulesmap: معرف المُخرَج ← قائمة من السلاسل النصيةلاقواعد إضافية تُضاف إلى الإرشادات المضمنة لمُخرَج واحد
operationsmap: عملية ← قائمة إرشاداتلاإرشادات استشارية لأعمال التطبيق والأرشفة
storestringلاجذر OpenSpec الاحتياطي عندما يكون مجلد openspec/ للإعداد فقط
referenceslistلامتاجر تتم فهرسة مواصفاتها في التعليمات

الحقول غير الصالحة لا تتسبب أبدًا في فشل أمر ما. يتم التحقق من صحة كل حقل بشكل مستقل، وتُسقط القيمة السيئة مع تحذير. الملف الذي لا يمكن قراءته أو ليس YAML صالحًا يتم تجاهله مع تحذير، باستثناء openspec validate الذي يخرج بالرمز 1 ليتم اكتشافه من قبل CI.

ما يجب كتابته في هذه الحقول مغطى في إعداد المشروع.

schema ​

مخطط سير العمل الذي يتبعه كل تغيير في هذا المشروع. القيم الصالحة هي spec-driven أو اسم مخطط يعرّفه المشروع. شغّل openspec schemas لسرد أسماء المخططات المتاحة.

context ​

نص حر يُحقن في تعليمات كل مُخرَج ويُزوَّد به التطبيق والأرشفة. الحد الأقصى هو 50KB، والقيمة الأكبر تُتجاهل مع تحذير.

rules ​

قواعد إضافية لمُخرَج واحد، تُضاف إلى الإرشادات المضمنة في المخطط:

yaml
rules:
  proposal:
    - Keep proposals under 500 words

معرفات المُخرَجات غير مقيدة بالأسماء المضمنة، لذا تعمل المُخرَجات من المخططات المخصصة كمفاتيح.

operations ​

إرشادات استشارية حول كيفية إجراء أعمال التطبيق والأرشفة، منفصلة عن قواعد المُخرَجات:

yaml
operations:
  apply:
    guidance:
      - Keep test summaries concise

فقط apply و archive يتم قراءتهما.

store ​

معرف متجر يُستخدم كجذر لـ OpenSpec، ويُستشار فقط عندما يكون مجلد openspec/ للإعداد فقط (بدون specs/ أو changes/). هو بمثابة خيار احتياطي وليس تجاوزًا أبدًا. السلم الكامل هو تحديد الجذر.

references ​

معرفات متاجر تستند إليها أعمال هذا المشروع. تتم إضافة فهرس بمواصفات كل متجر (المعرف، الملخص، أمر الجلب) إلى مخرجات التعليمات. محتوى المواصفات لا يُضمَّن أبدًا، وتحديد الجذر لا يتأثر أبدًا. الإدخال هو إما معرف متجر أو map يحتوي على id ومصدر استنساخ اختياري remote:

yaml
references:
  - platform-specs
  - id: billing-specs
    remote: git@github.com:acme/billing-specs.git

مثال ​

ملف config.yaml معبأ:

yaml
schema: spec-driven

context: |
  Designs and tasks must cover Windows, macOS, and Linux
  Write all artifacts in Spanish

rules:
  proposal:
    - Keep proposals under 500 words
    - Always state what is out of scope
  tasks:
    - Break tasks into chunks of max 2 hours

operations:
  apply:
    guidance:
      - Keep test summaries concise
  archive:
    guidance:
      - Summarize the archive outcome before finishing

أسماء قديمة ​

يُقرأ openspec/config.yml كاسم مستعار عندما لا يوجد config.yaml. عندما يوجد كلا الملفين، يُفضَّل config.yaml ويُتجاهل config.yml. الأمر openspec init يُنشئ config.yaml.