مهارة إزالة سر مسرّب من تاريخ Git (تدوير المفتاح ثم تطهير السجل)
مهارة تشغيل جاهزة لوكلاء الكود (Claude Code وCursor وCodex وAntigravity) تُنظّم الاستجابة الصحيحة عند تسريب سر — مفتاح API، رمز وصول، كلمة مرور قاعدة بيانات، أو شهادة خاصة — داخل مستودع Git. المشكلة التي تعالجها شائعة وخطيرة: يكتشف المطوّر أنه دفع (push) ملفًا يحوي سرًا، فيحذف السطر في commit جديد ويظن أن المشكلة انتهت، بينما السر يبقى في تاريخ الـ commits ويمكن استخراجه بأمر git واحد. تصحّح هذه المهارة الترتيب الذهني الخاطئ وتفرض المبدأ الأول: لحظة دفع السر إلى مستودع بعيد يصبح مكشوفًا، وقد نسخه آخرون أو حفظته المرايا والنسخ والكاش؛ لذلك الإصلاح الحقيقي هو تدوير المفتاح (إصدار مفتاح جديد) وإبطال القديم فورًا لدى الجهة المُصدِرة، قبل أي عملية تطهير للتاريخ. تختلف هذه المهارة عن مهارة مراجعة متغيرات البيئة (التي تضبط تنظيم الإعدادات وفصل server-only عن NEXT_PUBLIC قبل حدوث المشكلة) وعن قواعد حماية الأسرار من التسريب عبر المحتوى (حقن الأوامر): هدف هذه المهارة تحديدًا هو الاستجابة بعد وقوع التسريب في تاريخ Git وإزالته بشكل لا رجعة فيه. بعد تدوير المفتاح تنتقل المهارة إلى تطهير التاريخ عبر أداة موثوقة (git filter-repo هي الموصى بها رسميًا، أو BFG Repo-Cleaner للمستودعات الكبيرة) باستخدام استبدال النص (--replace-text) لإزالة القيمة الحساسة من كل الـ commits، أو إزالة مسار ملف كامل عندما يكون الملف بأسره سرًا؛ وتُحذّر من git filter-branch اليدوي لبطئه وخطورته. ثم دفع مُعاد للكتابة لكل الفروع والوسوم (git push --force --all و--tags) مع تنسيق إلزامي مع الفريق لأن النسخ المستنسخة القديمة تبقى تحمل السر ويجب إعادة استنساخها. وتوثّق المهارة أن التاريخ المُعاد كتابته على منصة مثل GitHub قد يظل مخبأً في الـ Pull Requests وواجهات المقارنة والكاش، فيبقى تدوير المفتاح هو خط الدفاع الحقيقي، مع إمكانية مراسلة دعم المنصة لتنظيف النسخ المخبأة. تختم بالتحقق أن السر لم يعد في أي commit، ومنع التكرار عبر فحص أسرار قبل الـ commit (gitleaks أو trufflehog كخطاف pre-commit)، وإضافة ملفات البيئة إلى .gitignore، وحفظ الأسرار في مدير أسرار أو متغيرات بيئة لا في الكود. مناسبة لأي مطوّر أو فريق يريد إجراء استجابة موحّدًا وسريعًا لتسريب سر، وقابلة للتحويل إلى SKILL.md داخل أدوات الوكيل.
جلسة استجابة منظّمة تبدأ بتأكيد تدوير المفتاح وإبطال القديم، ثم تحديد موضع السر في التاريخ، فتطهيره من كل الـ commits عبر git filter-repo أو BFG، ثم دفع مُعاد للكتابة لكل الفروع والوسوم مع تنسيق إعادة الاستنساخ، فتحقق بأن السر لم يعد في أي commit (grep يعيد 0)، وتنتهي بإجراءات منع التكرار — دون طباعة قيمة السر كاملة ودون اختراع نتائج خارج مخرجات git الفعلية.