تخطَّ إلى المحتوى

كتابة قواعد المعمارية (arch.yaml)

تعرّف معماريتك في ملف arch.yaml في جذر مستودعك. يطبّق AppArch هذه القواعد على كل PR/MR.

version: 2
style: 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 عتبة حجم.

بدلًا من الكتابة من الصفر، يمكنك اختيار قالب جاهز: 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.