معجبو التطوير القائم على المواصفات، ستُعجبكم sdd-flow
ملخص سريع
بنيتُ مهارة في Claude Code تُجبر على المرور بمراحل البحث، والمواصفة، والتنفيذ، والمراجعات النقدية، ومراجعة الكود — لإنجاز الميزات دفعةً واحدة. استخدمتُها لبناء Redakt (أداة إخفاء هوية PII متوافقة مع GDPR) بست ميزات في يومين. المهارة والإضافة مفتوحتا المصدر.
الأسبوع الماضي أطلقتُ Redakt، أداة مفتوحة المصدر للامتثال لـ GDPR. ست ميزات لواجهة ويب وREST API لمساعدتنا على التعامل بشكل أفضل مع PII (المعلومات التعريفية الشخصية).
كنتُ أستخدم عملية التطوير القائم على المواصفات (SDD) لأشهر عبر إضافة بنيتُها بنفسي. حين رأيتُ أن Claude وسّع نافذة السياق إلى مليون رمز، قلتُ لنفسي: "لمَ لا أحاول دفع حدود طريقتي في تطوير البرمجيات؟" ما أعنيه هو أن عملية SDD صُمّمت في الأساس للمساعدة في إدارة السياق. إنها تتبع دورة تطوير برمجي تقليدية وصارمة، لكنها كانت بطيئة نسبةً إلى وتيرة التطور في مجال الذكاء الاصطناعي. قررتُ تجربة إنجاز ميزة كاملة دفعةً واحدة باستخدام مهارة تُنسّق مراحل دورة التطوير، وقد نجح ذلك بشكل مفاجئ.
لم تكن المهارة الشيء الوحيد الذي حسّن العملية. إطلاق Anthropic لـ --permission-mode auto الأسبوع الماضي كان الدفعة التي احتجتُها لأخلع الحفاضات أخيراً. كنتُ متحمساً لتجربته. هذا الوضع محدود حالياً بحسابات Teams. كان غير مستقر في البداية، لكنه أعطاني لمحة عن الثمرة المحرّمة. لم أرد العودة إلى تأكيد كل طلب. في البيت، كنتُ أعرف أن هناك خياراً آخر، خياراً خطيراً، تجنّبته حتى الآن: --dangerously-skip-permissions. بعد ما يقارب سنة من استخدام Claude دون أي لحظة "يا للهول"، قررتُ إزالة كل الحواجز وتجاوز الصلاحيات. كان الإحساس كأن وجهي يُدفع للخلف بفعل الجاذبية كما ترى في فيديوهات طياري المقاتلات وهم يحلّقون بسرعات عدة ماخ... والشعور يُسبّب الإدمان.
SDD لا STD
ليس STD كما يُخرج نموذج تحويل الكلام إلى نص في أغلب الأحيان. التطوير القائم على المواصفات يوجّه الذكاء الاصطناعي لبحث قاعدة الكود والمتطلبات، وكتابة المواصفة، ثم التنفيذ استناداً إليها. تصبح المواصفة هي ما تضعه تحت التحكم بالإصدار وتراجعه، بينما الكود هو المخرج.
أحببتُ الفكرة وأُعجبتُ بالنتائج.
ما تفعله /sdd-flow
/sdd-flow هي مهارة في Claude Code، أمر مخصص بشرطة مائلة تستدعيه مع مهمة:
/sdd-flow Add GDPR-compliant audit logging for all anonymization requests
ثم تتولى سلسلة من الوكلاء الفرعيين المهمة. محادثات Claude منفصلة، كل منها بنافذة سياق جديدة، كل منها يُعالج مرحلة واحدة.
البحث. يدرس الوكيل الأول قاعدة الكود. بالنسبة لميزة تسجيل التدقيق في Redakt، رسم الإعداد القائم للتسجيل، ووجد خطأ في معالج مكرر لم أكن أعلم به، وأشار إلى أن المخطط في الكود قد انحرف عن المواصفة الأصلية. أنتج وثيقة بحث تتضمن مسارات الملفات، وأرقام الأسطر المحددة، ونقاط التكامل.
المراجعة التعارضية للبحث. وكيل ثانٍ يُفكك البحث ويشقّه. بالنسبة لتسجيل التدقيق، وجد مشكلات حقيقية: ست ثغرات جوهرية، وأربعة افتراضات مشكوك فيها، وأربعة منظورات مفقودة.
المواصفة. وكيل تخطيط يقرأ البحث المراجَع ويكتب مواصفة كاملة: المتطلبات الوظيفية، والحالات الحدّية، وسيناريوهات الفشل، وقيود الأمان.
المراجعة التعارضية للمواصفة. في تسجيل التدقيق، اكتشفت هذه المرحلة مشكلة كان حلّها على مستوى طبقة التدقيق سيستلزم تغييرات جذرية في وظائف مشتركة في المراحل الأولى.
التنفيذ، ومراجعة الكود، والمراجعة النقدية. يُكتب الكود والاختبارات استناداً إلى المواصفة. وكيل مراجعة الكود يتحقق من التوافق، بينما يُجري وكيل المراجعة النقدية جولة تعارضية أخيرة. كل نتيجة، بصرف النظر عن درجة خطورتها، تُحلّ قبل إجراء أي commit.
كيف تبدو /sdd-flow
بعد انتهاء /sdd-flow، ستحصل على مجلد كالتالي:
SDD/
├── research/
│ └── RESEARCH-006-audit-logging.md
├── requirements/
│ └── SPEC-006-audit-logging.md
├── prompts/
│ ├── PROMPT-006-audit-logging-2026-03-29.md
│ ├── implementation-complete/
│ │ └── IMPLEMENTATION-SUMMARY-006-...md
│ └── context-management/
│ └── progress.md
└── reviews/
├── CRITICAL-SPEC-audit-logging-20260329.md
└── CRITICAL-IMPL-audit-logging-20260329.md
مهارة واحدة، وضعان
الوضع المُشرَف هو الوضع الافتراضي لأنه يُجبرك على اتخاذ قرارات جوهرية لا ينبغي أتمتتها في الغالب. تشمل هذه القرارات مراجعة البحث المكتمل ومراجعة الكود قبل إجراء commit.
الوضع المستقل موجود للميزات التي تكون فيها المتطلبات واضحة وتشعر بالثقة الكافية. استخدمتُه في بعض ميزات Redakt اللاحقة بعد أن أثبتت الميزتان الأوليان جدوى العملية. لكن التوقف للمراجعة هو الوضع الافتراضي لسبب وجيه، لأن الثقة كثيراً ما تكون ثقة مفرطة.
جرّبها
المهارة والإضافة كلتاهما مفتوحتا المصدر:
- المهارة (المُنسّق): claude-skills
- الإضافة (أوامر المراحل): claude-plugins
- Redakt (مبني بها): redakt، اطّلع على مجلد
SDD/للاطلاع على كامل مسار المخرجات
المخرجات في مجلد SDD/ الخاص بـ Redakt هي أفضل ما أستطيع تقديمه دليلاً. اقرأ وثائق البحث، والمواصفات، والمراجعات النقدية بشكل خاص. ثم دع SDD تسير بتدفقها.