Ir al contenido

Escribir reglas de arquitectura (arch.yaml)

Defines tu arquitectura en un archivo arch.yaml en la raíz de tu repositorio. AppArch aplica estas reglas en cada 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 - los nombres de las capas y qué rutas pertenecen a cada capa.
  • rules - cada regla tiene un id; forbid define una dependencia direccional y max_module_loc define un umbral de tamaño.

En lugar de escribir desde cero, puedes elegir una plantilla lista para usar: Clean Architecture, Hexagonal, Layered, DDD, Feature-Sliced Design y más. En el panel, usa Reglas → Empezar desde plantilla para generar un borrador de arch.yaml y añadirlo a tu repositorio.

Cada regla tiene dos mecanismos de exclusión:

  • except - exime rutas/paquetes concretos en la definición de la regla.
  • ignore - silencia hallazgos individuales.

Puedes hacer clic en “Aceptar” con un solo toque desde el comentario del PR; ArchPilot recuerda el contexto de la regla en la siguiente revisión.

Puedes activar o desactivar reglas por proyecto o por workspace en el panel. Una regla que desactivas en el panel nunca se envía al collector - no produce hallazgos innecesarios. Detalles: Activar ArchPilot.