مجموعة أدوات تطوير مفتوحة المصدر من GitHub تعتمد على المواصفات، توجه مساعد ترميز الذكاء الاصطناعي لإنشاء تعليمات برمجية عالية الجودة من خلال المواصفات والخطط المنظمة.
نظرة عامة مفصلة على مشروع GitHub Spec Kit
نظرة عامة على المشروع
GitHub Spec Kit هي مجموعة أدوات للتطوير الموجه بالمواصفات (Spec-Driven Development, SDD) مفتوحة المصدر من GitHub. توفر هذه المجموعة سير عمل منظمًا لمساعدي ترميز الذكاء الاصطناعي، وتغير نموذج التطوير التقليدي "الترميز أولاً ثم التوثيق" من خلال كتابة مواصفات مفصلة أولاً ثم إنشاء التعليمات البرمجية.
عنوان المشروع: https://github.com/github/spec-kit
الفلسفة الأساسية
ما هو التطوير الموجه بالمواصفات؟
التطوير الموجه بالمواصفات هو منهجية لتطوير البرمجيات تتمحور حول المواصفات (Specification)، وتتمثل فكرتها الأساسية في:
- المواصفات أولاً: إنشاء وثائق متطلبات المنتج (PRD) وخطط التنفيذ التقني المفصلة قبل البدء في الترميز.
- المواصفات هي الحقيقة: تصبح المواصفات مصدر الحقيقة الوحيد للمشروع.
- التطور الديناميكي: المواصفات ليست وثائق ثابتة، بل هي "وثائق حية" تتطور مع المشروع.
لماذا نحتاج إلى Spec Kit؟
عند استخدام مساعدي ترميز الذكاء الاصطناعي (مثل Claude Code، GitHub Copilot، Gemini CLI)، تشمل المشكلات الشائعة ما يلي:
- المدخلات الغامضة تؤدي إلى مخرجات خاطئة: يمكن لمساعدي الذكاء الاصطناعي إنشاء التعليمات البرمجية فقط بناءً على المطالبات، ويفتقرون إلى فهم شامل للمشروع.
- الترميز الافتراضي: قد يقوم الذكاء الاصطناعي بافتراضات لا تتوافق مع المتطلبات الفعلية.
- نقص قيود البنية: قد لا تتطابق التعليمات البرمجية التي تم إنشاؤها مع بنية النظام الحالية.
- جودة غير متسقة: لا توجد معايير موحدة، مما يؤدي إلى تباين في جودة التعليمات البرمجية.
يعالج Spec Kit هذه المشكلات من خلال توفير إطار عمل منظم، مما يضمن أن مساعدي الذكاء الاصطناعي يمكنهم فهم نية المشروع بدقة وإنشاء تعليمات برمجية عالية الجودة.
المكونات الأساسية
1. واجهة سطر الأوامر Specify CLI
Specify CLI هي أداة سطر أوامر مبنية على Python، تُستخدم لتهيئة هيكل SDD للمشروع بسرعة.
طريقة التثبيت:
# التثبيت باستخدام uvx (موصى به)
uvx --from git+https://github.com/github/spec-kit.git specify init <PROJECT_NAME>
# أو التثبيت الدائم
uv tool install specify-cli --from git+https://github.com/github/spec-kit.git
الوظائف الرئيسية:
- التحقق من الأدوات المثبتة (git, claude, gemini, code, cursor-agent، إلخ).
- تنزيل ملفات القوالب المتكيفة تلقائيًا.
- تهيئة هيكل SDD للمشروع.
- دعم العديد من مساعدي ترميز الذكاء الاصطناعي.
أمثلة الاستخدام:
# تهيئة مشروع جديد وتحديد مساعد الذكاء الاصطناعي
specify init my-project --ai claude
specify init my-project --ai copilot
specify init my-project --ai gemini
# التهيئة في الدليل الحالي
specify init . --ai claude
specify init --here --ai copilot
# فرض الدمج في دليل غير فارغ
specify init . --force --ai claude
# تخطي تهيئة git
specify init my-project --ai gemini --no-git
2. القوالب والبرامج النصية المساعدة
يوفر Spec Kit نظام قوالب كاملاً، بما في ذلك:
Constitution.md (ميثاق المشروع)
المبادئ الأساسية للمشروع والمبادئ غير القابلة للتفاوض، مثل:
- متطلبات منهجية الاختبار
- اتفاقيات البنية
- إرشادات نمط التعليمات البرمجية
- اختيار المكدس التقني
هذه أداة قوية تساعد المؤسسات على بناء "مكدس تقني ذي رأي".
قوالب المواصفات
تحدد هيكل المحتوى الذي يجب أن تتضمنه وثيقة المواصفات.
قوالب الخطط التقنية
تحدد تنسيق وعناصر خطة التنفيذ التقني الضرورية.
قوالب تقسيم المهام
تقسم الميزات الكبيرة إلى مهام صغيرة قابلة للتنفيذ.
البرامج النصية المساعدة
موجودة في مجلدات powershell أو bash، وتُستخدم لضمان التطبيق المتسق لهيكل SDD.
سير العمل
يتبع Spec Kit عملية تطوير من أربع خطوات:
الخطوة 1: تحديد المواصفات (/specify)
استخدم الأمر /specify لتقديم وصف عالي المستوى للمشروع، مع التركيز على "ماذا نفعل" و"لماذا نفعل"، بدلاً من التفاصيل التقنية.
مثال:
/specify
بناء تطبيق لإدارة المهام Taskify، يدعم:
- مصادقة المستخدم
- التعاون في الوقت الفعلي
- دعم الأجهزة المحمولة
- إنشاء المشاريع وتعيين المهام
- لوحة كانبان لتتبع التقدم
سيقوم مساعد ترميز الذكاء الاصطناعي بإنشاء وثيقة مواصفات المنتج (PRD) كاملة، تتضمن:
- دافع المشروع وأهدافه
- وصف الوظائف الأساسية
- قصص المستخدمين
- المتطلبات غير الوظيفية
- معايير القبول
الخطوة 2: وضع الخطة التقنية (/plan)
استخدم الأمر /plan لتقديم توجيه تقني عالي المستوى، وسيقوم الذكاء الاصطناعي بإنشاء خطة تنفيذ تقنية مفصلة.
مثال:
/plan
استخدام React + TypeScript للواجهة الأمامية
Node.js للواجهة الخلفية
قاعدة بيانات PostgreSQL
تتضمن الخطة التقنية التي تم إنشاؤها:
- تصميم بنية النظام
- أسباب اختيار المكدس التقني
- تصميم نموذج البيانات
- تصميم واجهة برمجة التطبيقات (API)
- اعتبارات الأمان
- استراتيجيات تحسين الأداء
الخطوة 3: تقسيم المهام (/tasks)
/tasks
تقسيم الخطة التقنية إلى مهام صغيرة قابلة للتنفيذ، تتضمن كل مهمة:
- وصف المهمة
- التبعيات
- الناتج المتوقع
- شروط القبول
الخطوة 4: التنفيذ (/implement)
/implement
يقوم مساعد ترميز الذكاء الاصطناعي بإنشاء التعليمات البرمجية بناءً على المواصفات والخطة وقائمة المهام، ويتبع مبادئ التطوير الموجه بالاختبار (TDD).
الميزات الأساسية
1. التوافق عبر مساعدي الذكاء الاصطناعي
يدعم Spec Kit العديد من مساعدي ترميز الذكاء الاصطناعي الرئيسيين:
- Claude Code (Anthropic)
- GitHub Copilot
- Cursor
- Gemini CLI (Google)
- Windsurf
- Qwen Code
- OpenCode
- Codex
- والمزيد...
2. تكامل التطوير الموجه بالاختبار
دعم مدمج لـ TDD، يضمن:
- أن كل وظيفة لها اختبارات مقابلة.
- استخدام اختبارات البيئة الحقيقية بدلاً من Mocking أولاً.
- يجب إكمال اختبارات العقود (Contract Tests) قبل التنفيذ.
3. قائمة المراجعة والقبول
توجد معايير قبول واضحة لكل مرحلة، بما في ذلك:
- هل المواصفات كاملة؟
- هل الخطة التقنية قابلة للتطبيق؟
- هل المهام قابلة للتنفيذ بشكل مستقل؟
- هل اجتازت التعليمات البرمجية جميع الاختبارات؟
4. آلية التحسين التكراري
تدعم العودة للتعديل في أي مرحلة:
- المواصفات غير واضحة؟ قم بتحديث المواصفات.
- هل تحتاج البنية إلى تعديل؟ قم بتعديل الخطة التقنية.
- المهمة كبيرة جدًا؟ أعد تقسيمها.
سيناريوهات الاستخدام
1. المشاريع الجديدة تمامًا (Zero-to-One)
المشاريع الجديدة من الصفر، حيث يتم تجنب حلول الذكاء الاصطناعي العامة من خلال التخطيط المسبق.
2. توسيع الميزات (N-to-N+1)
إضافة ميزات جديدة إلى أنظمة معقدة موجودة، وهذا هو أقوى سيناريوهات استخدام Spec Kit:
- تحديد كيفية تفاعل الميزة الجديدة مع النظام الحالي.
- قيود بنية الترميز تضمن اتساق نمط التعليمات البرمجية.
- جعل التعليمات البرمجية الجديدة تبدو وكأنها وظيفة أصلية وليست "تصحيحًا".
3. تحديث الأنظمة القديمة
عند إعادة هيكلة الأنظمة القديمة:
- التقاط منطق العمل الأساسي في مواصفات حديثة.
- تصميم بنية جديدة تمامًا.
- السماح للذكاء الاصطناعي بإعادة بناء النظام من الصفر، دون ديون تقنية.
مثال على هيكل المشروع
هيكل المشروع بعد التهيئة باستخدام Specify CLI:
my-project/
├── .specify/ # إعدادات وقوالب Spec Kit
│ ├── templates/ # قوالب المواصفات، الخطط، المهام
│ ├── scripts/ # برامج نصية مساعدة
│ └── config.json # ملف التكوين
├── constitution.md # ميثاق المشروع
├── spec.md # وثيقة مواصفات المنتج
├── plan.md # خطة التنفيذ التقني
├── tasks/ # قائمة المهام
│ ├── task-001.md
│ ├── task-002.md
│ └── ...
└── src/ # دليل التعليمات البرمجية المصدر
حالة عملية: مشروع Taskify
يوفر Spec Kit رسميًا مشروع Taskify كمثال كامل، يوضح كيفية استخدام التطوير الموجه بالمواصفات لبناء أداة لإدارة المشاريع بأسلوب كانبان.
الميزات الوظيفية:
- 5 مستخدمين محددين مسبقًا، تسجيل الدخول بدون كلمة مرور.
- إدارة مشاريع متعددة.
- عرض لوحة كانبان.
- إدارة المهام بالسحب والإفلات.
- تعيين المهام وتتبع الحالة.
- وظيفة التعليقات (يمكن تحرير/حذف التعليقات الخاصة فقط).
- تمييز مهام المستخدم الحالي.
سير العمل التطويري:
- استخدام الأمر
/specifyلوصف متطلبات Taskify. - يقوم الذكاء الاصطناعي بإنشاء مواصفات منتج مفصلة.
- استخدام
/speckit.clarifyلتوضيح التفاصيل. - استخدام
/planلإنشاء خطة تنفيذ تقنية. - التحقق من قائمة المراجعة والقبول.
- إنشاء المهام وتنفيذها.
المزايا والقيمة
القيمة للمطورين
- تقليل التخمين: المواصفات الواضحة تزيل الغموض.
- تحسين الجودة: سير العمل المنظم يضمن جودة التعليمات البرمجية.
- سهولة التعاون: المواصفات تصبح لغة مشتركة للتواصل بين الفريق.
- سهولة الصيانة: الوثائق والتعليمات البرمجية تتطور بشكل متزامن.
القيمة للفرق
- معايير موحدة: بناء معايير الفريق من خلال Constitution.
- تراكم المعرفة: المواصفات والخطط تصبح أصولًا قابلة لإعادة الاستخدام.
- تقليل إعادة العمل: التخطيط المسبق يقلل المشكلات في مرحلة التنفيذ.
- قابلية التتبع: سجلات قرارات واضحة.
القيمة لمساعدي الذكاء الاصطناعي
- فهم السياق: المواصفات الكاملة توفر سياقًا كافيًا.
- توجيه القيود: الخطة التقنية توفر قيود البنية.
- تركيز المهام: المهام الصغيرة تجعل الذكاء الاصطناعي أكثر تركيزًا.
- ضمان الجودة: معايير القبول المدمجة توجه إنشاء التعليمات البرمجية.
القيود والاعتبارات
1. منحنى التعلم
قد يكون معقدًا جدًا للمشاريع الصغيرة والبسيطة، ويتطلب موازنة بين الاستثمار والعائد.
2. طبيعة تجريبية
لا يزال Spec Kit في مرحلة تجريبية، وقد أوضح فريق GitHub أن هناك العديد من الأسئلة التي تحتاج إلى إجابات.
3. مرونة القوالب
القوالب المدمجة مبنية على أفضل ممارسات فريق GitHub، ولكن قد تحتاج إلى تعديل لتناسب متطلبات المؤسسة.
4. تكامل المشاريع الحالية
يركز حاليًا على المشاريع الجديدة، ولا يزال دعم المشاريع الحالية قيد الاستكشاف.
المجتمع والنظام البيئي
المشاريع ذات الصلة
- SpecLang: مشروع بحثي لـ GitHub عام 2023، يستكشف المواصفات باللغة الطبيعية كمصدر رئيسي لإنشاء التعليمات البرمجية.
- AWS Kiro: بيئة تطوير متكاملة "وكيلة" من AWS، تسمح للذكاء الاصطناعي ببناء البرمجيات مباشرة من المواصفات.
- Codeplain: مشروع ناشئ يستخدم لغة مواصفات مخصصة Plain.
- Tessl: منصة توفر إطار عمل وسجلًا موجهًا بالمواصفات.
ملاحظات المجتمع
نقاط النقاش الرئيسية للمجتمع حول Spec Kit:
- متطلبات التوحيد القياسي: يأمل المستخدمون في إنشاء إطار عمل مشترك لتجنب تجزئة التطوير بمساعدة الذكاء الاصطناعي.
- التعاون عبر الفرق: اقتراحات لدعم مشاركة المواصفات والمنتجات عبر المستودعات.
- الإنشاء التلقائي: أمل في القدرة على إنشاء Constitution تلقائيًا من قواعد التعليمات البرمجية الموجودة.
- دعم المشاريع الحالية: دعوات لتحسين دعم تكامل المشاريع المطورة بالفعل.
الحصول على الدعم
- مشكلات GitHub: https://github.com/github/spec-kit/issues
- الوثائق: https://speckit.org/
- مقالات المدونة: https://github.blog/ai-and-ml/generative-ai/spec-driven-development-with-ai-get-started-with-a-new-open-source-toolkit/
- صفحة الدعم: https://support.claude.com (لمشكلات Claude ذات الصلة)
الخلاصة
يمثل GitHub Spec Kit اتجاهًا مهمًا في تطوير البرمجيات بمساعدة الذكاء الاصطناعي: الانتقال من "الترميز العفوي" (Vibe Coding) إلى "البناء المخطط له". من خلال توفير إطار عمل منظم للتطوير الموجه بالمواصفات، فإنه يساعد المطورين ومساعدي الذكاء الاصطناعي على إنشاء أنماط تعاون أكثر فعالية.
على الرغم من أنه لا يزال في مرحلة تجريبية، فقد أظهر Spec Kit بالفعل قيمته في تطوير المشاريع المعقدة. ومع التحسين المستمر للأداة والمساهمات المستمرة من المجتمع، من المتوقع أن يصبح التطوير الموجه بالمواصفات ممارسة هندسية برمجية مهمة في عصر الذكاء الاصطناعي.
الترخيص: ترخيص MIT
أحدث إصدار: يرجى زيارة https://github.com/github/spec-kit/releases للحصول على أحدث إصدار.