Elige cómo empezar
Un proyecto de Archyl contiene un modelo C4 de tu software: sistemas, contenedores, componentes y código, y las relaciones entre ellos. Hay cuatro formas de rellenarlo. Se pueden combinar, y ninguna te ata.
| Camino | Mejor cuando | Necesitas | Primer modelo en |
|---|---|---|---|
| Dibujarla en la aplicación | Estás explorando, o el sistema aún no está construido | Un navegador | Minutos para un diagrama de contexto |
| Descubrirla con IA | El código existe y quieres un primer borrador rápido | Un repositorio conectado y el descubrimiento con IA en tu plan | Unos minutos, y luego una revisión |
| Escribirla como código | Quieres revisar el modelo en pull requests y versionarlo con el código, o prefieres no enviar código a una IA | La CLI archyl y un editor de texto |
Lo que tardes en escribir el archivo |
| Importarla | Ya modelas en Structurizr, LikeC4, IcePanel o Backstage | Una exportación de esa herramienta | Menos de un minuto |
Elijas lo que elijas, los siguientes pasos son los mismos: conectar tus agentes de codificación y mantener el modelo al día con el código.
Dibújala en la aplicación
Crea un proyecto desde el panel y añade sistemas, contenedores y relaciones en el lienzo. La Guía de Inicio Rápido lo explica paso a paso.
Dibujar es el punto de partida adecuado para un sistema que aún no existe, o para esbozar el contexto antes de escribir código. Puedes pasarte al código más adelante: archyl dsl pull escribe lo que dibujaste en archyl.yaml.
Descúbrela con IA
El descubrimiento con IA lee un repositorio conectado y propone sistemas, contenedores, componentes, relaciones y tecnologías. Nada entra en el modelo hasta que lo apruebas.
Desde la aplicación: conecta el repositorio en Configuración del Proyecto › Integración Git (consulta Integración Git), lanza un descubrimiento y revisa lo que ha encontrado.
Desde el terminal, en la raíz del repositorio:
archyl login
archyl init --new
init --new crea el proyecto, conecta el repositorio a partir de su remote de git, ejecuta el descubrimiento mientras lo sigues, abre la revisión, dibuja el resultado y ofrece conectar tus agentes de codificación. Flags útiles: --name, --team, --branch, --provider para un remote autoalojado (github_enterprise, gitlab_private, gitea) y --yes para aceptar todos los valores por defecto. Consulta la guía de la CLI.
El descubrimiento funciona con monorepos: reconoce apps/, packages/, services/ y libs/, y asigna cada servicio a un contenedor.
Escríbela como código
Describe la arquitectura en un archyl.yaml en la raíz del repositorio y súbelo con push. El formato del archivo está en Arquitectura como Código.
archyl login
archyl init --new --no-discover # create the project and link this repository, no AI
$EDITOR archyl.yaml # describe the architecture
archyl dsl diff # what a push would create or change
archyl dsl push # import it
archyl diagram # look at the result
Un archivo mínimo:
version: "1.0"
systems:
- name: Shop
containers:
- name: Storefront
type: web_app
technologies: [React]
- name: Orders API
type: api
technologies: [Go]
- name: Orders DB
type: database
technologies: [PostgreSQL]
- name: Stripe
external: true
relationships:
- from: Storefront
to: Orders API
label: Places orders
type: calls
- from: Orders API
to: Orders DB
type: reads_from
- from: Orders API
to: Stripe
label: Charges cards
type: calls
Los elementos se emparejan por nombre. Un push crea lo nuevo y actualiza lo que cambió, y nunca borra nada: un elemento que solo tiene Archyl se queda, y archyl dsl diff lo lista como «only in Archyl».
Tu agente de codificación puede escribir la primera versión: ejecuta archyl setup y pídele que describa el repositorio en archyl.yaml siguiendo el esquema. Sigue siendo tu archivo y te toca revisarlo.
Para mantener sincronizados el archivo y el modelo, haz commit de archyl.yaml y haz push desde CI con la GitHub Action, o usa Sincronizar ahora en Configuración del Proyecto › Arquitectura como Código. archyl dsl diff --exit-code hace fallar un job de CI cuando difieren.
Impórtala desde otra herramienta
Desde la lista de proyectos, haz clic en Importar proyecto y elige el formato: Archyl YAML, Structurizr DSL, LikeC4, IcePanel JSON o Backstage JSON. Un workspace de Structurizr repartido en archivos !include se puede subir como zip. Los detalles, y dónde guarda cada formato el nombre del proyecto, están en Importar proyectos.
Recorrido por un monorepo
Este es el camino del código de principio a fin para un monorepo, sin descubrimiento con IA:
shop/
├── apps/
│ ├── storefront/
│ └── admin/
├── services/
│ ├── orders/
│ └── payments/
└── packages/
└── ui/
1. Crea el proyecto y vincula el repositorio. Desde la raíz del monorepo:
archyl init --new --no-discover --name "Shop" --team platform
Esto escribe .archyl.json, que vincula el repositorio al proyecto. Haz commit de él: no contiene ningún secreto.
2. Modela un sistema con un contenedor por cada desplegable. Las aplicaciones y los servicios se convierten en contenedores. Un paquete compartido como packages/ui no suele ser un contenedor propio: descríbelo como un componente de los contenedores que lo usan, o déjalo fuera.
3. Da a cada contenedor el nombre de su carpeta. Esto es lo que permite a archyl brief, where, check, impact y al hook Guard saber a qué elemento pertenece un archivo modificado: un archivo pertenece a un elemento cuando una de las carpetas de su ruta tiene el nombre del elemento. La comparación ignora mayúsculas, espacios y puntuación, y una palabra final como API, Service o Worker, de modo que Orders Service coincide con services/orders/… y Payments API con services/payments/….
4. Elige un archivo o varios. Un único archyl.yaml en la raíz es lo más sencillo. Para un monorepo grande, da a cada servicio su propio archivo junto a su código e inclúyelos desde la raíz, de modo que cada equipo edite su parte:
# archyl.yaml
version: "1.0"
include:
- apps/storefront/archyl.yaml
- services/orders/archyl.yaml
- services/payments/archyl.yaml
systems:
- name: Shop
description: The online shop
- name: Stripe
external: true
# services/payments/archyl.yaml
containers:
- name: Payments API
parent_system: Shop
type: api
technologies: [Go]
relationships:
- from: Payments API
to: Stripe
label: Charges cards
type: calls
Las rutas de include son relativas al archivo que las declara, y las relaciones pueden apuntar a elementos de cualquiera de los archivos. Las reglas están en Include.
5. Haz push y comprueba.
archyl dsl diff
archyl dsl push
archyl where services/payments/internal/charge.go # should name Payments API
archyl diagram "Payments API" # the container and its neighbours
Si where indica que un archivo no coincide, renombra el contenedor como su carpeta y vuelve a hacer push.
6. Mantenlo al día. Haz commit de archyl.yaml y de los archivos incluidos. Haz push desde CI cuando haya cambios, o usa Sincronizar ahora, que también obtiene del repositorio los archivos incluidos.
Y después, ponla a trabajar
Una vez que existe el modelo:
- Conecta tus agentes de codificación con
archyl setup(Claude Code, Cursor, VS Code, Codex), o desde el panel. Así llaman aplan,briefy al harness antes de cambiar código. - Comprueba los cambios contra él con
archyl checkyarchyl reviewen CI. Consulta la guía de la CLI. - Incorpora a personas y agentes con
archyl tour: un recorrido guiado por las partes que conviene conocer primero, con los archivos que leer.archyl tour --markdown > ONBOARDING.mdlo deja por escrito. - Explóralo con
archyl map,archyl diagram <element>o el lienzo de la aplicación.
Combinar caminos
- Descubrir y después gestionar como código: ejecuta un descubrimiento, apruébalo, luego usa
archyl dsl pully haz commit dearchyl.yamla partir de entonces. - Escribir como código y después descubrir: un descubrimiento solo propone lo que el modelo aún no tiene, así que puede completar los componentes bajo los contenedores que escribiste. Revísalo como cualquier otro descubrimiento.
- Dibujar en la aplicación y hacer push desde el código: ambos editan el mismo modelo. Un push actualiza lo que describe el archivo y deja el resto intacto.