كتابة قواعد المعمارية (arch.yaml)
تعرّف معماريتك في ملف arch.yaml في جذر مستودعك. يطبّق AppArch هذه القواعد على كل PR/MR.
البنية الأساسية
Section titled “البنية الأساسية”version: 2style: hexagonal # clean | hexagonal | layered | custom
layers: - { name: presentation, paths: ["src/ui/**", "apps/mobile/**"] } - { name: application, paths: ["src/use-cases/**"] } - { name: domain, paths: ["src/domain/**"] } - { name: infrastructure, paths: ["src/infra/**"] }
rules: - id: RULE-014 forbid: "presentation → infrastructure" - id: RULE-002 forbid: "domain → *" except: ["std", "shared/types"] - id: RULE-031 max_module_loc: 2000- layers - أسماء الطبقات والمسارات التي تنتمي إلى كل طبقة.
- rules - لكل قاعدة
id؛ يحدّدforbidتبعية اتجاهية، ويحدّدmax_module_locعتبة حجم.
البدء من القوالب
Section titled “البدء من القوالب”بدلًا من الكتابة من الصفر، يمكنك اختيار قالب جاهز: Clean Architecture وHexagonal وLayered وDDD وFeature-Sliced Design وغيرها. في اللوحة، استخدم Rules ← Start from template لإنشاء مسودة arch.yaml وإضافتها إلى مستودعك.
إدارة النتائج الإيجابية الكاذبة
Section titled “إدارة النتائج الإيجابية الكاذبة”لكل قاعدة آليتان للاستثناء:
except- تستثني مسارات/حِزمًا محددة في تعريف القاعدة.ignore- تُسكِت نتائج فردية.
يمكنك النقر على “Accept” بضغطة واحدة من تعليق الـ PR؛ ويتذكّر ArchPilot سياق القاعدة في المراجعة التالية.
التجاوز على مستوى المشروع/مساحة العمل
Section titled “التجاوز على مستوى المشروع/مساحة العمل”يمكنك تفعيل القواعد أو تعطيلها لكل مشروع أو لكل مساحة عمل في اللوحة. القاعدة التي تعطّلها في اللوحة لا تُرسَل إلى الـ collector أبدًا - فلا تنتج عنها نتائج غير ضرورية. التفاصيل: تفعيل ArchPilot.