تعرف على مفهوم Spec-driven Development، المنهج الثوري الذي يسمح بكتابة التطبيقات بلغة Markdown وتحويلها إلى كود حقيقي باستخدام الذكاء الاصطناعي مثل GitHub Copilot وClaude. مستقبل البرمجة التعاونية يبدأ هنا!
في عالمٍ تتسارع فيه أدوات الذكاء الاصطناعي لتغيير طريقة البرمجة، يظهر اتجاه جديد يكسر القواعد القديمة ويعيد تعريف العلاقة بين الإنسان والآلة:
Spec-driven Development — التطوير المدفوع بالمواصفات.
تخيل أن تكتب تطبيقًا كاملاً بلغة Markdown، ثم تطلب من الذكاء الاصطناعي تحويله إلى كود حقيقي بلغة مثل Go أو Python أو TypeScript.
قد يبدو هذا كأنه خيال علمي، لكنه واقع بدأت شركات كبرى مثل GitHub في تطبيقه بالفعل.
ما هو Spec-driven Development؟
هو منهج تطوير جديد يقوم على فكرة الكتابة بالمواصفات قبل الكود.
بدلاً من كتابة الشيفرة مباشرة، يقوم المطور بكتابة ملف منظم بصيغة Markdown يحتوي على وصف لما يجب أن يفعله التطبيق، مثل:
## Feature: Summarize GitHub Discussions
- The app receives the repository name.
- It fetches open discussions via GraphQL.
- It applies a text summarization model and stores results in an SQLite database.
ثم يطلب من الذكاء الاصطناعي تنفيذها:
“Convert these specifications to Python code.”
وفي لحظات، يولّد الذكاء الاصطناعي تطبيقًا حقيقيًا جاهزًا للتشغيل.
لماذا Markdown بالتحديد؟
Markdown ليست مجرد لغة لتوثيق المشاريع، بل لغة تصريحية (Declarative) تُستخدم لوصف المطلوب دون تفاصيل التنفيذ.
هذا يجعلها بيئة مثالية للعمل مع أدوات الذكاء الاصطناعي مثل Copilot أو Claude، لأنها:
- تحافظ على السياق طوال دورة التطوير.
- تدمج بين التوثيق والمواصفات في ملف واحد.
- تسهّل عملية التكرار والتحديث دون أن يضيع السياق.
- تجعل الاختبارات والمراجعات أكثر وضوحًا وشفافية.
مثال عملي: مشروع GitHub Brain MCP Server
أحد أبرز النماذج الواقعية لتطبيق Spec-driven Development هو مشروع GitHub Brain MCP Server،
وهو أداة لتلخيص المناقشات والقضايا وطلبات السحب على GitHub، بدأ تطويره بالكامل من ملفات Markdown!
1. ملف README.md — التوثيق التفاعلي
يبدو كأي ملف README تقليدي، لكنه في هذا النظام جزء فعّال من الكود نفسه:
# GitHub Brain MCP Server
A server for summarizing GitHub discussions and issues.
## Usage
go run main.go pull -o my-org -t <token>
عندما يضيف المستخدم خيارًا جديدًا (مثل --org بدلاً من -o)، يتولى الذكاء الاصطناعي تحديث الكود تلقائيًا ليطابق التوثيق الجديد.
2. ملف main.md — عقل التطبيق الحقيقي
يحتوي على المواصفات البرمجية التي يُنشئ منها الذكاء الاصطناعي الكود:
# GitHub Brain MCP Server
## CLI
- Parse parameters into struct Config:
  - Organization (required)
  - GithubToken (required)
  - DBDir (default: ./db)
- Fetch data: repositories, discussions, issues, teams.
3. ملف compile.prompt.md — تعليمات التحويل
يحدد كيف يتعامل الذكاء الاصطناعي مع الملفات أثناء عملية البناء:
- Use [main.md](../../main.md) as the source for specifications.
- Generate code using VS Code tasks without manually running go build.
4. ملف lint.prompt.md — تنظيف المواصفات
يُستخدم هذا الملف لتحسين صياغة المواصفات نفسها:
- Improve clarity of specifications.
- Use consistent terminology (choose between pull/get/fetch).
إنه أشبه بعملية “linting” للكود، ولكن للمواصفات النصية نفسها!
دورة التطوير في Spec-driven Development
النظام بسيط لكنه قوي:
- ✏️ تكتب أو تعدل المواصفات في main.md.
- ⚙️ تطلب من Copilot أو GPT تحويلها إلى كود.
- 🚀 تشغّل التطبيق وتختبر النتيجة.
- 🔄 تعود لتحديث المواصفات عند الحاجة.
بهذه الطريقة، تضمن دورة تطوير سريعة، موثقة بالكامل، وذات اتساق عالٍ بين التوثيق والكود.
أهم فوائد Spec-driven Development
| الفائدة | الوصف | 
|---|---|
| 🧩 وضوح المنطق | كل وظيفة موصوفة مسبقًا بشكل بشري وواضح. | 
| 🚀 تسريع التطوير | لا حاجة للغوص في التفاصيل البرمجية. | 
| 🔒 استقرار الكود | المواصفات هي المرجع الدائم. | 
| 🤝 تسهيل التعاون | يمكن لأي مطور فهم المشروع من قراءة Markdown فقط. | 
| 🧠 تحسين التعاون مع الذكاء الاصطناعي | لأن السياق محفوظ ومُهيكل في النصوص. | 
🧱 التحديات الحالية
رغم جاذبية الفكرة، إلا أن هناك بعض العقبات التقنية:
- مع كِبَر المشروع، تصبح الملفات ضخمة ويصعب على الذكاء الاصطناعي معالجتها دفعة واحدة.
- التحويل الكامل قد يستغرق وقتًا أطول في المشاريع الكبيرة.
- تحتاج لتقسيم المشروع إلى Modules صغيرة.
- يتطلب اختبارًا يدويًا للتأكد من مطابقة السلوك الفعلي للمواصفات النصية.
ومع ذلك، تبقى هذه التحديات مؤقتة — ومع تطور قدرات الذكاء الاصطناعي، سيصبح هذا الأسلوب أكثر واقعية واعتمادية.
المستقبل: Markdown كلغة برمجة بشرية
هذا النهج لا يُلغي المبرمج، بل يُعيد تعريف دوره.
فبدلاً من كتابة الكود يدويًا، سيصبح المبرمج كاتب مواصفات ومنطقيات — يوجّه الذكاء الاصطناعي ماذا يفعل التطبيق، وليس كيف يفعله.
قد يكون هذا هو اللبنة الأولى نحو ما يمكن تسميته بـ
Natural Programming — البرمجة باللغة الطبيعية.
خلاصة
Spec-driven Development ليست خيالًا… بل الخطوة القادمة في تطور البرمجة التعاونية بين الإنسان والذكاء الاصطناعي.
ابدأ بتجربتها على مشروع صغير:
وثّق فكرتك في ملف main.md، ثم اطلب من Copilot أو GPT تحويلها إلى كود.
ستُدهش من السرعة التي يمكن بها تحويل الأفكار إلى تطبيقات واقعية!

