سايمون ويليسون يبني صفحة النشرات البريدية بالصوت: Codex وGPT-6 Astra في ساعة
أطلق سايمون ويليسون على مدونته صفحة Newsletters التي تضم أرشيف جميع نشراته البريدية، وأنجزها بالصوت تقريبًا بالكامل. أملى المهمة على نموذج GPT-6 Astra High لمدة نصف ساعة داخل تبويب Codex في تطبيق ChatGPT لسطح المكتب، بينما كان يعدّ العشاء. كتب النموذج Django-model وmigration والقوالب وأربع عمليات استيراد للبيانات. واستغرقت مراجعة pull request والتعديلات النصية نصف ساعة أخرى. • يتيح الصوت إنجاز التطوير بالتوازي مع أعمال أخرى. • الأفضل لصق التفاصيل والسجلات وأمثلة الشيفرة كتابةً. • لا يعتبر المؤلف الوضع الصوتي أسلوب العمل الرئيسي.
معالج بواسطة الذكاء الاصطناعي من Simon Willison؛ بتحرير Hamidun News
أطلق سايمون ويليسون، مؤلف Django وأحد أبرز الممارسين في مجال التطوير بالاعتماد على LLM، صفحة Newsletters على مدونته. وهي فهرس لجميع نشراته البريدية: النشرة الأسبوعية المجانية على Substack والنشرة الشهرية الخاصة بالرعاة. كتب نموذج GPT-6 Astra High معظم الشيفرة تقريبًا عبر الوضع الصوتي في Codex داخل تطبيق ChatGPT لسطح المكتب. استغرق الإملاء نحو نصف ساعة، بينما كان ويليسون يعدّ العشاء. وذهب نصف ساعة آخر في المراجعة والتعديلات بلوحة المفاتيح.
نصف ساعة قرب الموقد
بدأ الجلسة بأمر نصي هو «Start dev server and open in browser». فظهرت على الشاشة معاينة محلية للمدونة، وأصبح بالإمكان متابعة التقدم بصريًا. ثم ضغط على «Start new voice chat». وهذا ليس زر الميكروفون، بل الزر المجاور له إلى اليمين. وضع الحاسوب المحمول في المطبخ وبدأ العمل.
كانت المهمة نموذجية في Django: نموذج جديد وmigration وview وقوالب وعدة دوال استيراد. وكان ويليسون واثقًا من قدرة النموذج على إنجازها. لذلك جاءت صياغته للمهمة حوارية، مليئة بتلعثمات مثل «إ-إ» وتصحيحات ذاتية. قال في البداية إن النشرات غير مطلوبة في صفحات الوسوم والفهرس وأرشيفات التواريخ، ثم غيّر رأيه بشأن التواريخ: إذا أُرسلت نشرة في 19 سبتمبر، فيجب أن تظهر في صفحة ذلك اليوم. ولا ينبغي فهرسة نسخ Substack في البحث، لأنها تكرار لمواد المدونة. أما الأعداد الشهرية فتحتوي على محتوى فريد، ويجب أن تظهر في البحث بعد مرور شهر على إرسالها، حين تُفتح للعموم. فهم النموذج المتطلبات، ونشر ويليسون النص الكامل للتسجيل في Gist. وكان النموذج يطرح بين الحين والآخر أسئلة توضيحية ثم يمضي إلى تعديل الشيفرة.
ما الذي أُنجز
أُنجز خلال الجلسة ما يلي:
- Django-model جديد وmigration وإعدادات لوحة الإدارة؛
- أربع عمليات استيراد: الأعداد الحديثة من Substack عبر RSS، وبقية أرشيف Substack عبر واجهة API غير موثقة، والأعداد الشهرية المنشورة من مستودع GitHub، وآخر عدد مغلق للرعاة من مستودع خاص؛
- الصفحتان العامتان /newsletters/ و/newsletters/2026/؛
- عرض النشرات في صفحات الأيام والأشهر، لكن ليس في الصفحة الرئيسية ولا في صفحات الوسوم؛
- الروابط: الأعداد الأسبوعية تقود إلى Substack، أما الشهرية فلها صفحاتها الخاصة؛
- التكامل مع البحث في الموقع.
تعامل النموذج مع API الخاصة بـ Substack بمفرده. كان يعرف المسار /api/v1/archive وجرّبه مباشرة. ثم أجرى بحثًا ليفهم آلية الترقيم الصفحي (pagination)، ووجد مقالة كارين سبينر. كما ابتكر النموذج تصميم صفحة الفهرس. وعدّله ويليسون بصوته وهو ينظر إلى المعاينة من الجهة الأخرى للمطبخ.
لم تكتمل عمليات الاستيراد. اقترح Astra تصدير البيانات من النسخة المحلية وتحميلها إلى بيئة الإنتاج، لكن المؤلف أراد آلية مماثلة لما في سكربتاته الأخرى. وجزء من البيانات موجود في مستودع GitHub خاص، ولذلك احتاج الأمر إلى مفتاح API جديد، وهذا يتطلب الجلوس إلى لوحة المفاتيح.
المراجعة وحدود الصوت
بعد ذلك سارت الأمور وفق المخطط المعتاد: أنشأ Codex فرعًا وفتح pull request، وقرأ ويليسون الـ diff في واجهة GitHub. وكانت الملاحظة الرئيسية أن النموذج استدعى Git عبر subprocess في أحد عمليات الاستيراد. ورأى أن API أكثر موثوقية للمستودع الخاص، فانتقل إلى الكتابة النصية وطلب استبدال هذا النهج. وتتضمن الـ commits الإضافية في PR №719 هذا الاستبدال وتعديلات طفيفة على العرض. ثم نصف ساعة أخرى من الأوامر النصية، وانتقلت الشيفرة إلى بيئة الإنتاج.
جاء استنتاج المؤلف الرئيسي متزنًا على نحو غير متوقع: لن يصبح الصوت أداة يومية بالنسبة إليه. تحب OpenAI عرض مثل هذه العروض التوضيحية، كما فعلت في DevDay، وهي تنجح هناك. لكن حين يصل الأمر إلى التفاصيل، يكون لصق مثال أو رسالة خطأ أو تحديد مقطع الشيفرة المطلوب أسرع من وصفها بالكلمات. يضاف إلى ذلك المكتب المشترك: لن يتحدث إلى الحاسوب بهذه الطريقة أمام الزملاء.
تكمن قوة هذه الحزمة في أمر آخر. فالمعاينة البصرية مع إمكانية الانتقال إلى لوحة المفاتيح في أي لحظة تجعلان الوضع الصوتي أنفع بكثير مما هو عليه في الهاتف أثناء التنزه مع الكلب، حيث تنحصر النتائج غالبًا في البحث والعصف الذهني. والخلاصة العملية للمطورين: الصوت يصلح للمرحلة الأولى التي يلزم فيها شرح القصد والبنية العامة. أما الصقل والمراجعة وكل ما يرتبط بالشيفرة الدقيقة، فالأفضل إنجازه كتابةً. ويجب أن تكون مهمة اختبار هذا النهج نموذجية: إطار عمل مألوف، ومخطط بيانات واضح، وخادم محلي لتوفير التغذية الراجعة. وتبقى مراجعة pull request إلزامية: فهي التي التقطت استدعاء Git الزائد.
Build & Ship Production AI Apps with Vibe Coding
Join Zhemal Khamidun's hands-on Vibe Coding Intensive at hamidun.com/vibecoding — master Claude Code, Cursor, and autonomous agentic workflows.
أهم ما في عالم الذكاء الاصطناعي — مرة كل أسبوع
سبع قصص مهمة فعلاً هذا الأسبوع، مختارة بعناية. بلا ضجيج ولا بيانات صحفية.
تم! تحقق من بريدك للتأكيد.