1{
2 "task": "comprehensive_repository_analysis",
3 "objective": "إجراء تحليل شامل ودقيق لكامل قاعدة الكود لتحديد جميع الأخطاء القابلة للتحقق، والثغرات الأمنية، والمشكلات الحرجة عبر أي مكدّس تقني، ثم ترتيبها حسب الأولوية وإصلاحها وتوثيقها",
4 "analysis_phases": [
5 {
6 "phase": 1,
7 "name": "اكتشاف المستودع وتخطيطه",
8 "steps": [
9 {
10 "step": "1.1",
11 "title": "تحليل المعمارية والهيكلية",
12 "actions": [
13 "رسم خريطة كاملة لهيكل المجلدات (src/, lib/, tests/, docs/, config/, scripts/, build/, deploy/)",
14 "تحديد جميع المكدسات التقنية والأطر المستخدمة",
15 "تحليل ملفات تعريف الاعتماديات (package.json, requirements.txt, go.mod, pom.xml, Gemfile, Cargo.toml, composer.json)",
16 "توثيق نقاط الدخول، ومسارات التنفيذ الرئيسية، وحدود الوحدات",
17 "تحليل أنظمة البناء (Webpack, Gradle, Maven, Make, CMake)",
18 "مراجعة إعدادات CI/CD (GitHub Actions, GitLab CI, Jenkins, CircleCI)",
19 "فحص التوثيق الحالي (README, CONTRIBUTING, مواصفات API، مخططات المعمارية)"
20 ]
21 },
22 {
23 "step": "1.2",
24 "title": "حصر بيئة التطوير",
25 "actions": [
26 "تحديد أطر الاختبار (Jest, Mocha, pytest, PHPUnit, Go test, JUnit, RSpec, xUnit)",
27 "مراجعة إعدادات أدوات الفحص والتنسيق (ESLint, Prettier, Black, Flake8, RuboCop, golangci-lint, Checkstyle)",
28 "البحث عن مؤشرات المشكلات داخل الكود (TODO, FIXME, HACK, XXX, BUG, NOTE)",
29 "تحليل سجل Git لاكتشاف الأنماط الإشكالية والإصلاحات العاجلة الأخيرة",
30 "استخراج تقارير ومقاييس تغطية الاختبارات الحالية",
31 "تحديد أدوات تحليل الكود المستخدمة مسبقًا (SonarQube, CodeClimate، وغيرها)"
32 ]
33 }
34 ]
35 },
36 {
37 "phase": 2,
38 "name": "اكتشاف الأخطاء بشكل منهجي",
39 "bug_categories": [
40 {
41 "category": "CRITICAL",
42 "severity": "P0",
43 "types": [
44 "ثغرات حقن SQL (SQL Injection)",
45 "ثغرات البرمجة النصية عبر المواقع (XSS)",
46 "ثغرات تزوير الطلبات عبر المواقع (CSRF)",
47 "تجاوز المصادقة أو التفويض",
48 "مخاطر تنفيذ الأوامر عن بُعد (RCE)",
49 "تلف البيانات أو فقدانها بشكل دائم",
50 "تعطل النظام، أو حالات deadlock، أو الحلقات اللانهائية",
51 "تسرب الذاكرة واستنزاف الموارد",
52 "تطبيقات تشفير غير آمنة",
53 "أسرار أو بيانات اعتماد مضمّنة مباشرة في الكود"
54 ]
55 },
56 {
57 "category": "FUNCTIONAL",
58 "severity": "P1-P2",
59 "types": [
60 "أخطاء منطقية (شروط غير صحيحة، حسابات خاطئة، أخطاء off-by-one)",
61 "مشكلات إدارة الحالة (race conditions، حالة قديمة، تعديلات غير سليمة)",
62 "عقود API غير صحيحة أو ربط خاطئ للطلبات والاستجابات",
63 "غياب أو ضعف التحقق من المدخلات",
64 "خلل في منطق الأعمال أو مخالفة لتدفقات العمل",
65 "تحويلات بيانات أو serialization غير صحيح",
66 "عدم تطابق الأنواع أو تحويلات نوعية غير آمنة",
67 "معالجة استثناءات أو تمرير أخطاء بشكل غير صحيح"
68 ]
69 },
70 {
71 "category": "INTEGRATION",
72 "severity": "P2",
73 "types": [
74 "استخدام غير صحيح لـ API خارجي أو نقاط نهاية قديمة",
75 "أخطاء في استعلامات قواعد البيانات، أو مشكلات صياغة SQL، أو مشاكل N+1",
76 "فشل التعامل مع طوابير الرسائل (RabbitMQ, Kafka, SQS)",
77 "أخطاء عمليات نظام الملفات (الصلاحيات، اجتياز المسارات path traversal)",
78 "مشكلات الاتصال الشبكي (timeouts، retries، connection pooling)",
79 "عدم اتساق الكاش أو مشكلات إبطاله",
80 "سوء استخدام مكتبات طرف ثالث أو عدم توافق الإصدارات"
81 ]
82 },
83 {
84 "category": "EDGE_CASES",
85 "severity": "P2-P3",
86 "types": [
87 "فك مرجعية مؤشرات null/undefined/nil/None",
88 "التعامل مع المصفوفات/القوائم/المجموعات الفارغة",
89 "حالات القيم الصفرية أو السالبة",
90 "الشروط الحدية (أكبر/أصغر أعداد صحيحة، حدود طول النصوص)",
91 "غياب معالجة الأخطاء أو كتم الاستثناءات",
92 "فشل منطق المهلة الزمنية وإعادة المحاولة",
93 "مشكلات الوصول المتزامن دون قفل مناسب",
94 "حالات overflow/underflow في العمليات الرقمية"
95 ]
96 },
97 {
98 "category": "CODE_QUALITY",
99 "severity": "P3-P4",
100 "types": [
101 "استخدام API مهمل أو قديم",
102 "كود ميت أو مسارات غير قابلة للوصول",
103 "اعتماديات دائرية",
104 "اختناقات أداء (خوارزميات غير فعالة، عمليات مكررة بلا داعي)",
105 "غياب أو عدم صحة توصيفات الأنواع",
106 "أنماط غير متسقة لمعالجة الأخطاء",
107 "تسرب الموارد (file handles، اتصالات قواعد البيانات، network sockets)",
108 "تسجيل غير مناسب (كشف بيانات حساسة، سياق غير كافٍ)"
109 ]
110 }
111 ],
112 "discovery_methods": [
113 "تحليل ثابت للكود باستخدام أدوات مخصصة لكل لغة",
114 "مطابقة الأنماط لاكتشاف الممارسات المضادة ومؤشرات ضعف التصميم الشائعة",
115 "فحص ثغرات الاعتماديات (npm audit, pip-audit, bundle-audit, cargo audit)",
116 "تحليل تدفق التحكم وتدفق البيانات",
117 "اكتشاف الكود الميت",
118 "التحقق من الإعدادات مقابل أفضل الممارسات",
119 "التحقق المتقاطع بين التوثيق والتنفيذ",
120 "مراجعة كود مركّزة على الأمان"
121 ]
122 },
123 {
124 "phase": 3,
125 "name": "توثيق الأخطاء وترتيب أولوياتها",
126 "bug_report_schema": {
127 "bug_id": "معرّف تسلسلي (BUG-001, BUG-002، وهكذا)",
128 "severity": {
129 "type": "enum",
130 "values": [
131 "CRITICAL",
132 "HIGH",
133 "MEDIUM",
134 "LOW"
135 ],
136 "description": "مستوى خطورة الخلل"
137 },
138 "category": {
139 "type": "enum",
140 "values": [
141 "SECURITY",
142 "FUNCTIONAL",
143 "PERFORMANCE",
144 "INTEGRATION",
145 "CODE_QUALITY"
146 ],
147 "description": "تصنيف الخلل"
148 },
149 "location": {
150 "files": [
151 "مصفوفة من مسارات الملفات المتأثرة مع أرقام الأسطر"
152 ],
153 "component": "اسم الوحدة/الخدمة/الميزة",
154 "function": "اسم الدالة أو الطريقة المحددة"
155 },
156 "description": {
157 "current_behavior": "ما السلوك المعطّل أو الخاطئ",
158 "expected_behavior": "ما المفترض أن يحدث بدلًا من ذلك",
159 "root_cause": "تفسير تقني لسبب الخلل"
160 },
161 "impact_assessment": {
162 "user_impact": "الأثر على المستخدمين النهائيين (فقدان بيانات، تعرض أمني، تراجع تجربة المستخدم)",
163 "system_impact": "الأثر على النظام (الأداء، الاستقرار، قابلية التوسع)",
164 "business_impact": "الأثر على الأعمال (الامتثال، الإيرادات، السمعة، الجوانب القانونية)"
165 },
166 "reproduction": {
167 "steps": [
168 "تعليمات خطوة بخطوة لإعادة إنتاج الخلل"
169 ],
170 "test_data": "بيانات عينة أو شروط مطلوبة",
171 "actual_result": "ما الذي يحدث عند إعادة الإنتاج",
172 "expected_result": "ما المفترض أن يحدث"
173 },
174 "verification": {
175 "code_snippet": "مقطع كود توضيحي يبيّن الخلل",
176 "test_case": "اختبار سيفشل بسبب هذا الخلل",
177 "logs_or_metrics": "دليل من السجلات أو أنظمة المراقبة"
178 },
179 "dependencies": {
180 "related_bugs": [
181 "مصفوفة بمعرّفات BUG-ID ذات الصلة"
182 ],
183 "blocking_issues": [
184 "مصفوفة بالأخطاء التي يجب إصلاحها أولًا"
185 ],
186 "blocked_by": [
187 "عوامل خارجية تمنع الإصلاح"
188 ]
189 },
190 "metadata": {
191 "discovered_date": "طابع زمني بصيغة ISO 8601",
192 "discovered_by": "الأداة أو الطريقة المستخدمة",
193 "cve_id": "معرّف CVE إن وُجد",
194 "cwe_id": "معرّف CWE إن وُجد"
195 }
196 },
197 "prioritization_matrix": {
198 "criteria": [
199 {
200 "factor": "severity",
201 "weight": 0.4,
202 "scale": "CRITICAL=100, HIGH=70, MEDIUM=40, LOW=10"
203 },
204 {
205 "factor": "user_impact",
206 "weight": 0.3,
207 "scale": "جميع المستخدمين=100، عدد كبير=70، بعض المستخدمين=40، عدد قليل=10"
208 },
209 {
210 "factor": "fix_complexity",
211 "weight": 0.15,
212 "scale": "بسيط=100، متوسط=60، معقّد=20"
213 },
214 {
215 "factor": "regression_risk",
216 "weight": 0.15,
217 "scale": "منخفض=100، متوسط=60، مرتفع=20"
218 }
219 ],
220 "formula": "priority_score = Σ(factor_value × weight)"
221 }
222 },
223 {
224 "phase": 4,
225 "name": "تنفيذ الإصلاحات",
226 "fix_workflow": [
227 {
228 "step": 1,
229 "action": "إنشاء فرع إصلاح مستقل",
230 "naming": "fix/BUG-{id}-{short-description}"
231 },
232 {
233 "step": 2,
234 "action": "كتابة اختبار فاشل أولًا",
235 "rationale": "أسلوب التطوير الموجّه بالاختبارات (TDD) يضمن أن الإصلاح قابل للتحقق"
236 },
237 {
238 "step": 3,
239 "action": "تنفيذ إصلاح محدود ومركّز",
240 "principle": "أصغر تغيير يعالج المشكلة بشكل صحيح"
241 },
242 {
243 "step": 4,
244 "action": "التحقق من نجاح الاختبار بعد الإصلاح",
245 "validation": "تشغيل الاختبار المحدد وحزمة الاختبارات ذات الصلة"
246 },
247 {
248 "step": 5,
249 "action": "تشغيل حزمة اختبارات الانحدار كاملة",
250 "validation": "التأكد من عدم كسر أي وظيفة قائمة"
251 },
252 {
253 "step": 6,
254 "action": "تحديث التوثيق",
255 "scope": "توثيق API، التعليقات داخل الكود، سجل التغييرات"
256 }
257 ],
258 "fix_principles": [
259 "MINIMAL_CHANGE: نفّذ أصغر تغيير يعالج المشكلة بشكل صحيح",
260 "NO_SCOPE_CREEP: تجنّب إعادة الهيكلة أو إضافة ميزات غير مرتبطة",
261 "BACKWARDS_COMPATIBLE: حافظ على عقود API الحالية ما لم يكن الخلل نفسه يكسرها",
262 "FOLLOW_CONVENTIONS: التزم بأسلوب الكود والأنماط المعمول بها في المشروع",
263 "DEFENSIVE_PROGRAMMING: أضف حمايات تمنع تكرار أخطاء مشابهة مستقبلًا",
264 "EXPLICIT_OVER_IMPLICIT: اجعل النية واضحة من خلال بنية الكود والتعليقات",
265 "FAIL_FAST: تحقق من المدخلات مبكرًا وأوقف التنفيذ برسائل خطأ واضحة"
266 ],
267 "code_review_checklist": [
268 "الإصلاح يعالج السبب الجذري وليس الأعراض فقط",
269 "جميع الحالات الطرفية معالجة بشكل سليم",
270 "رسائل الخطأ واضحة وقابلة للتنفيذ ولا تكشف معلومات حساسة",
271 "أثر الأداء مقبول (لا تستخدم O(n²) عندما تكفي O(n))",
272 "تمت دراسة الآثار الأمنية بعناية",
273 "لا توجد تحذيرات مترجم أو أخطاء linting جديدة",
274 "التغييرات مغطاة بالاختبارات",
275 "التوثيق محدث ودقيق",
276 "التغييرات الكاسرة موضحة ومبررة بوضوح",
277 "الاعتماديات محدثة وآمنة"
278 ]
279 },
280 {
281 "phase": 5,
282 "name": "الاختبار والتحقق",
283 "test_requirements": {
284 "mandatory_tests_per_fix": [
285 {
286 "type": "unit_test",
287 "description": "اختبار معزول لإصلاح الخلل المحدد",
288 "coverage": "يجب أن يغطي مسار الكود المحدد الذي كان معطوبًا"
289 },
290 {
291 "type": "integration_test",
292 "description": "اختبار عند ارتباط الخلل بعدة مكونات",
293 "coverage": "تدفق شامل عبر الأنظمة المتأثرة"
294 },
295 {
296 "type": "regression_test",
297 "description": "التأكد من أن الإصلاح لا يكسر الوظائف الحالية",
298 "coverage": "جميع الميزات ومسارات الكود ذات الصلة"
299 },
300 {
301 "type": "edge_case_tests",
302 "description": "تغطية الشروط الحدية والحالات الخاصة",
303 "coverage": "قيم null، المدخلات الفارغة، الحدود، حالات الخطأ"
304 }
305 ]
306 },
307 "test_structure_template": {
308 "description": "هيكل اختبار مستقل عن اللغة",
309 "template": [
310 "describe('BUG-{ID}: {description}', () => {",
311 " test('يعيد إنتاج الخلل الأصلي', () => {",
312 " // هذا الاختبار يوضح أن الخلل كان موجودًا",
313 " // يجب أن يفشل قبل الإصلاح وينجح بعده",
314 " });",
315 "",
316 " test('يتحقق من أن الإصلاح عالج المشكلة', () => {",
317 " // هذا الاختبار يثبت السلوك الصحيح بعد الإصلاح",
318 " });",
319 "",
320 " test('يتعامل مع الحالة الطرفية: {case}', () => {",
321 " // تغطية إضافية للسيناريوهات ذات الصلة",
322 " });",
323 "});"
324 ]
325 },
326 "validation_steps": [
327 {
328 "step": "تشغيل حزمة الاختبارات كاملة",
329 "commands": {
330 "javascript": "npm test",
331 "python": "pytest",
332 "go": "go test ./...",
333 "java": "mvn test",
334 "ruby": "bundle exec rspec",
335 "rust": "cargo test",
336 "php": "phpunit"
337 }
338 },
339 {
340 "step": "قياس تغطية الكود",
341 "tools": [
342 "Istanbul/NYC",
343 "Coverage.py",
344 "JaCoCo",
345 "SimpleCov",
346 "Tarpaulin"
347 ]
348 },
349 {
350 "step": "تشغيل التحليل الثابت",
351 "tools": [
352 "ESLint",
353 "Pylint",
354 "golangci-lint",
355 "SpotBugs",
356 "Clippy"
357 ]
358 },
359 {
360 "step": "قياس الأداء",
361 "condition": "إذا كان الإصلاح يؤثر على مسارات التنفيذ كثيفة الاستخدام أو العمليات الحرجة"
362 },
363 {
364 "step": "الفحص الأمني",
365 "tools": [
366 "Snyk",
367 "OWASP Dependency-Check",
368 "Trivy",
369 "Bandit"
370 ]
371 }
372 ]
373 },
374 {
375 "phase": 6,
376 "name": "التوثيق والتقارير",
377 "fix_documentation_requirements": [
378 "تحديث التعليقات داخل الكود لشرح الإصلاح وسبب الحاجة إليه",
379 "مراجعة توثيق API إذا تغيّر السلوك",
380 "تحديث CHANGELOG.md بإدخال خاص بإصلاح الخلل",
381 "إنشاء أو تحديث أدلة استكشاف الأخطاء وإصلاحها",
382 "توثيق أي حلول مؤقتة للمشكلات المؤجلة أو غير المُصلحة",
383 "إضافة ملاحظات ترحيل إذا كان الإصلاح يتطلب إجراءً من المستخدم"
384 ],
385 "executive_summary_template": {
386 "title": "تقرير إصلاح الأخطاء - {repository_name}",
387 "metadata": {
388 "date": "تاريخ بصيغة ISO 8601",
389 "analyzer": "اسم الأداة/الشخص",
390 "repository": "المسار الكامل للمستودع",
391 "commit_hash": "Git commit SHA",
392 "duration": "مدة التحليل بالساعات"
393 },
394 "overview": {
395 "total_bugs_found": "عدد صحيح",
396 "total_bugs_fixed": "عدد صحيح",
397 "bugs_deferred": "عدد صحيح",
398 "test_coverage_before": "نسبة مئوية",
399 "test_coverage_after": "نسبة مئوية",
400 "files_analyzed": "عدد صحيح",
401 "lines_of_code": "عدد صحيح"
402 },
403 "critical_findings": [
404 "أهم 3-5 أخطاء حرجة تم العثور عليها وإصلاحاتها"
405 ],
406 "fix_summary_by_category": {
407 "security": "عدد",
408 "functional": "عدد",
409 "performance": "عدد",
410 "integration": "عدد",
411 "code_quality": "عدد"
412 },
413 "detailed_fix_table": {
414 "columns": [
415 "BUG-ID",
416 "الملف",
417 "السطر",
418 "التصنيف",
419 "الخطورة",
420 "الوصف",
421 "الحالة",
422 "الاختبار المضاف"
423 ],
424 "format": "جدول Markdown أو CSV"
425 },
426 "risk_assessment": {
427 "remaining_high_priority": [
428 "قائمة بالمشكلات الحرجة غير المُصلحة"
429 ],
430 "recommended_next_steps": [
431 "عناصر عمل مرتبة حسب الأولوية"
432 ],
433 "technical_debt": [
434 "ملخص للدين التقني المحدد"
435 ],
436 "breaking_changes": [
437 "أي إصلاحات غير متوافقة مع الإصدارات السابقة"
438 ]
439 },
440 "testing_results": {
441 "test_command": "الأمر الدقيق المستخدم لتشغيل الاختبارات",
442 "tests_passed": "X من أصل Y",
443 "tests_failed": "العدد مع الأسباب",
444 "tests_added": "العدد",
445 "coverage_delta": "+X% أو -X%"
446 }
447 },
448 "deliverables_checklist": [
449 "توثيق جميع الأخطاء بصيغة موحدة",
450 "تنفيذ الإصلاحات بنطاق محدود",
451 "تحديث حزمة الاختبارات ونجاحها",
452 "تحديث التوثيق (الكود، API، أدلة المستخدم)",
453 "إتمام مراجعة الكود واعتمادها",
454 "تقييم أثر الأداء والتأكد من قبوله",
455 "إجراء مراجعة أمنية للإصلاحات المتعلقة بالأمان",
456 "تجهيز ملاحظات النشر وخطة التراجع",
457 "تحديث سجل التغييرات بالتغييرات الظاهرة للمستخدم",
458 "إبلاغ أصحاب المصلحة بالإصلاحات الحرجة"
459 ]
460 },
461 {
462 "phase": 7,
463 "name": "التحسين المستمر",
464 "pattern_analysis": {
465 "objectives": [
466 "تحديد أنماط الأخطاء المتكررة عبر قاعدة الكود",
467 "اكتشاف المشكلات المعمارية التي تهيئ لحدوث الأخطاء",
468 "العثور على فجوات في استراتيجية الاختبار",
469 "تسليط الضوء على الأجزاء التي تحمل دينًا تقنيًا"
470 ],
471 "outputs": [
472 "تقرير أنماط الأخطاء الشائعة",
473 "توصيات بإجراءات وقائية",
474 "اقتراحات لتحسين الأدوات",
475 "مقترحات لإعادة الهيكلة المعمارية"
476 ]
477 },
478 "monitoring_recommendations": {
479 "metrics_to_track": [
480 "معدل اكتشاف الأخطاء بمرور الوقت",
481 "زمن الحل حسب مستوى الخطورة",
482 "معدل الانحدار (إعادة ظهور الأخطاء)",
483 "نسبة تغطية الاختبارات",
484 "حجم تغيّر الكود في المناطق الأكثر عرضة للأخطاء",
485 "عدد ثغرات الاعتماديات"
486 ],
487 "alerting_rules": [
488 "ثغرات أمنية حرجة في الاعتماديات",
489 "فشل حزمة الاختبارات",
490 "انخفاض تغطية الكود دون الحد المحدد",
491 "تدهور الأداء في العمليات الرئيسية"
492 ],
493 "logging_improvements": [
494 "إضافة تسجيل منظم حيث يكون مفقودًا",
495 "تضمين correlation IDs لتتبع الطلبات",
496 "تسجيل الأحداث ذات الصلة بالأمان",
497 "التأكد من أن سجلات الأخطاء تتضمن stack traces والسياق"
498 ]
499 }
500 }
501 ],
502 "constraints_and_best_practices": [
503 "NEVER: لا تساوم على الأمان من أجل البساطة أو الراحة",
504 "MAINTAIN: احتفظ بمسار تدقيق كامل لكل التغييرات",
505 "FOLLOW: اتبع semantic versioning إذا غيّرت الإصلاحات API العام",
506 "RESPECT: احترم حدود معدل الطلبات عند اختبار الخدمات الخارجية",
507 "USE: استخدم feature flags للإصلاحات عالية المخاطر أو للطرح التدريجي",
508 "DOCUMENT: وثّق كل الافتراضات التي تمت أثناء التحليل",
509 "CONSIDER: ضع استراتيجية تراجع لكل إصلاح",
510 "PREFER: فضّل الإصلاحات المتوافقة مع الإصدارات السابقة متى ما أمكن",
511 "AVOID: تجنّب إدخال اعتماديات جديدة دون مبرر",
512 "TEST: اختبر في عدة بيئات عند الحاجة"
513 ],
514 "output_formats": [
515 {
516 "format": "markdown",
517 "purpose": "توثيق وتقارير بصيغة سهلة القراءة للبشر",
518 "filename_pattern": "bug_report_{date}.md"
519 },
520 {
521 "format": "json",
522 "purpose": "صيغة قابلة للقراءة آليًا للمعالجة الآلية",
523 "filename_pattern": "bug_data_{date}.json",
524 "schema": "اتبع bug_report_schema المحدد في Phase 3"
525 },
526 {
527 "format": "csv",
528 "purpose": "الاستيراد إلى أنظمة تتبع الأخطاء (Jira, GitHub Issues)",
529 "filename_pattern": "bugs_{date}.csv",
530 "columns": [
531 "BUG-ID",
532 "الخطورة",
533 "التصنيف",
534 "الملف",
535 "السطر",
536 "الوصف",
537 "الحالة"
538 ]
539 },
540 {
541 "format": "yaml",
542 "purpose": "صيغة مناسبة للإعدادات والتكامل مع CI/CD",
543 "filename_pattern": "bug_config_{date}.yaml"
544 }
545 ],
546 "special_considerations": {
547 "monorepos": "حلّل كل package/workspace بشكل منفصل مع تتبع الاعتماديات بين الحزم",
548 "microservices": "راعِ عقود الخدمات، وتوافق API، والتتبع الموزع",
549 "legacy_code": "وازن بين مخاطر الإصلاح وفائدته؛ أعطِ الأولوية للإصلاحات عالية الأثر ومنخفضة المخاطر",
550 "third_party_dependencies": "أبلغ عن الثغرات للمشروع أو المصدر الأصلي؛ وفكّر في بدائل إذا كانت غير مصانة",
551 "high_traffic_systems": "راعِ استراتيجيات النشر (blue-green, canary) للإصلاحات",
552 "regulated_industries": "تأكد من استيفاء متطلبات الامتثال (HIPAA, PCI-DSS, SOC2, GDPR)",
553 "open_source_projects": "اتبع إرشادات المساهمة؛ وتواصل مع المشرفين قبل التغييرات الكبيرة"
554 },
555 "success_criteria": {
556 "quantitative": [
557 "معالجة جميع الأخطاء ذات الخطورة CRITICAL وHIGH",
558 "زيادة تغطية الاختبارات بنسبة لا تقل عن X%",
559 "صفر ثغرات أمنية في الاعتماديات",
560 "نجاح جميع الاختبارات",
561 "تحسن مقاييس جودة الكود (cyclomatic complexity, maintainability index)"
562 ],
563 "qualitative": [
564 "قاعدة الكود أصبحت أسهل في الصيانة",
565 "التوثيق واضح وشامل",
566 "الفريق قادر على نشر الإصلاحات بثقة",
567 "آليات منع الأخطاء المستقبلية موجودة ومفعّلة",
568 "تحسنت سرعة التطوير"
569 ]
570 }
571}