Scegli come iniziare
Un progetto Archyl contiene un modello C4 del tuo software: sistemi, container, componenti e codice, e le relazioni tra loro. Ci sono quattro modi per riempirlo. Si possono combinare, e nessuno ti vincola.
| Percorso | Ideale quando | Ti serve | Primo modello in |
|---|---|---|---|
| Disegnarla nell'app | Stai esplorando, o il sistema non è ancora costruito | Un browser | Minuti per un diagramma di contesto |
| Scoprirla con l'IA | Il codice esiste e vuoi una prima bozza in fretta | Un repository collegato e la scoperta tramite IA nel tuo piano | Pochi minuti, poi una revisione |
| Scriverla come codice | Vuoi rivedere il modello nelle pull request e versionarlo con il codice, o preferisci non inviare codice a un'IA | La CLI archyl e un editor di testo |
Il tempo di scrivere il file |
| Importarla | Modelli già in Structurizr, LikeC4, IcePanel o Backstage | Un'esportazione da quello strumento | Meno di un minuto |
Qualunque cosa tu scelga, i passi successivi sono gli stessi: collegare i tuoi agenti di programmazione e mantenere il modello allineato al codice.
Disegnala nell'app
Crea un progetto dalla dashboard, poi aggiungi sistemi, container e relazioni sul canvas. La Guida Rapida ti accompagna passo dopo passo.
Disegnare è il punto di partenza giusto per un sistema che non esiste ancora, o per abbozzare il contesto prima di scrivere codice. Puoi passare al codice in seguito: archyl dsl pull scrive ciò che hai disegnato in archyl.yaml.
Scoprila con l'IA
La scoperta tramite IA legge un repository collegato e propone sistemi, container, componenti, relazioni e tecnologie. Nulla entra nel modello finché non lo approvi.
Dall'app: collega il repository in Impostazioni Progetto › Integrazione Git (vedi Integrazione Git), avvia una scoperta, poi rivedi ciò che ha trovato.
Dal terminale, nella radice del repository:
archyl login
archyl init --new
init --new crea il progetto, collega il repository a partire dal suo remote git, esegue la scoperta sotto i tuoi occhi, apre la revisione, disegna il risultato e propone di collegare i tuoi agenti di programmazione. Flag utili: --name, --team, --branch, --provider per un remote self-hosted (github_enterprise, gitlab_private, gitea) e --yes per accettare tutti i valori predefiniti. Vedi la guida alla CLI.
La scoperta gestisce i monorepo: riconosce apps/, packages/, services/ e libs/, e associa ogni servizio a un container.
Scrivila come codice
Descrivi l'architettura in un archyl.yaml nella radice del repository e inviala con un push. Il formato del file è in Architettura come Codice.
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 file minimo:
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
Gli elementi vengono abbinati per nome. Un push crea ciò che è nuovo e aggiorna ciò che è cambiato, e non elimina mai nulla: un elemento presente solo in Archyl resta, e archyl dsl diff lo elenca come «only in Archyl».
Il tuo agente di programmazione può scrivere la prima versione: esegui archyl setup, poi chiedigli di descrivere il repository in archyl.yaml seguendo lo schema. Resta comunque un file che spetta a te rivedere.
Per mantenere allineati il file e il modello, fai commit di archyl.yaml e invialo dalla CI con la GitHub Action, oppure usa Sincronizza ora in Impostazioni Progetto › Architettura come Codice. archyl dsl diff --exit-code fa fallire un job di CI quando differiscono.
Importala da un altro strumento
Dall'elenco dei progetti, clicca su Importa progetto e scegli il formato: Archyl YAML, Structurizr DSL, LikeC4, IcePanel JSON o Backstage JSON. Un workspace Structurizr suddiviso in file !include può essere caricato come zip. I dettagli, e dove ogni formato conserva il nome del progetto, sono in Importazione di progetti.
Guida per un monorepo
Questo è il percorso via codice dall'inizio alla fine per un monorepo, senza scoperta tramite IA:
shop/
├── apps/
│ ├── storefront/
│ └── admin/
├── services/
│ ├── orders/
│ └── payments/
└── packages/
└── ui/
1. Crea il progetto e collega il repository. Dalla radice del monorepo:
archyl init --new --no-discover --name "Shop" --team platform
Questo scrive .archyl.json, che collega il repository al progetto. Fanne il commit: non contiene alcun segreto.
2. Modella un sistema con un container per ogni deployable. App e servizi diventano container. Un pacchetto condiviso come packages/ui di solito non è un container a sé: descrivilo come componente dei container che lo usano, o lascialo fuori.
3. Dai a ogni container il nome della sua cartella. È ciò che permette a archyl brief, where, check, impact e all'hook Guard di capire a quale elemento appartiene un file modificato: un file appartiene a un elemento quando una delle cartelle del suo percorso ha il nome dell'elemento. Il confronto ignora maiuscole, spazi e punteggiatura, oltre a una parola finale come API, Service o Worker, quindi Orders Service corrisponde a services/orders/… e Payments API a services/payments/….
4. Scegli un file o più file. Un singolo archyl.yaml nella radice è la soluzione più semplice. Per un monorepo grande, dai a ogni servizio un proprio file accanto al suo codice e includili dalla radice, così ogni team modifica la propria 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
I percorsi di include sono relativi al file che li dichiara, e le relazioni possono puntare a elementi in uno qualsiasi dei file. Le regole sono in Include.
5. Fai push e controlla.
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
Se where segnala un file come non abbinato, rinomina il container come la sua cartella e fai di nuovo push.
6. Mantienilo aggiornato. Fai commit di archyl.yaml e dei file inclusi. Fai push dalla CI quando ci sono modifiche, oppure usa Sincronizza ora, che recupera dal repository anche i file inclusi.
E poi, mettila al lavoro
Una volta che il modello esiste:
- Collega i tuoi agenti di programmazione con
archyl setup(Claude Code, Cursor, VS Code, Codex) o dalla dashboard. Così chiamanoplan,briefe l'harness prima di modificare il codice. - Controlla le modifiche rispetto al modello con
archyl checkearchyl reviewin CI. Vedi la guida alla CLI. - Fai conoscere il sistema a persone e agenti con
archyl tour: una visita guidata alle parti da conoscere per prime, con i file da leggere.archyl tour --markdown > ONBOARDING.mdla mette per iscritto. - Esploralo con
archyl map,archyl diagram <element>o il canvas nell'app.
Combinare i percorsi
- Scoprire, poi gestire come codice: esegui una scoperta, approvala, poi usa
archyl dsl pulle fai commit diarchyl.yamlda quel momento in poi. - Scrivere come codice, poi scoprire: una scoperta propone solo ciò che il modello non ha già, quindi può completare i componenti sotto i container che hai scritto. Rivedila come qualsiasi altra scoperta.
- Disegnare nell'app e fare push dal codice: entrambi modificano lo stesso modello. Un push aggiorna ciò che il file descrive e lascia intatto il resto.