Escolha como começar
Um projeto Archyl contém um modelo C4 do seu software: sistemas, containers, componentes e código, e os relacionamentos entre eles. Há quatro formas de preenchê-lo. Elas podem ser combinadas, e nenhuma prende você.
| Caminho | Melhor quando | Você precisa de | Primeiro modelo em |
|---|---|---|---|
| Desenhar no aplicativo | Você está explorando, ou o sistema ainda não foi construído | Um navegador | Minutos para um diagrama de contexto |
| Descobrir com IA | O código existe e você quer um primeiro rascunho rápido | Um repositório conectado e a descoberta com IA no seu plano | Alguns minutos, depois uma revisão |
| Escrever como código | Você quer o modelo revisado em pull requests e versionado com o código, ou prefere não enviar código a uma IA | A CLI archyl e um editor de texto |
O tempo de escrever o arquivo |
| Importar | Você já modela no Structurizr, LikeC4, IcePanel ou Backstage | Uma exportação dessa ferramenta | Menos de um minuto |
Seja qual for a escolha, os próximos passos são os mesmos: conectar seus agentes de programação e manter o modelo em sincronia com o código.
Desenhar no aplicativo
Crie um projeto a partir do painel e adicione sistemas, containers e relacionamentos no canvas. O Guia de Início Rápido mostra isso passo a passo.
Desenhar é o começo certo para um sistema que ainda não existe, ou para esboçar o contexto antes de qualquer código. Você pode passar para código depois: archyl dsl pull grava o que você desenhou em archyl.yaml.
Descobrir com IA
A Descoberta com IA lê um repositório conectado e propõe sistemas, containers, componentes, relacionamentos e tecnologias. Nada entra no modelo até você aprovar.
A partir do aplicativo: conecte o repositório em Configurações do Projeto › Integração Git (veja Integração Git), inicie uma descoberta e revise o que ela encontrou.
A partir do terminal, na raiz do repositório:
archyl login
archyl init --new
init --new cria o projeto, conecta o repositório a partir do seu remote git, executa a descoberta enquanto você acompanha, abre a revisão, desenha o resultado e oferece conectar seus agentes de programação. Flags úteis: --name, --team, --branch, --provider para um remote auto-hospedado (github_enterprise, gitlab_private, gitea) e --yes para aceitar todos os padrões. Veja o guia da CLI.
A descoberta lida com monorepos: reconhece apps/, packages/, services/ e libs/, e mapeia cada serviço para um container.
Escrever como código
Descreva a arquitetura em um archyl.yaml na raiz do repositório e faça o push. O formato do arquivo está em Arquitetura 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
Um arquivo 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
Os elementos são correspondidos pelo nome. Um push cria o que é novo e atualiza o que mudou, e nunca exclui: um elemento que só o Archyl tem permanece, e archyl dsl diff o lista como "only in Archyl".
Seu agente de programação pode escrever a primeira versão: execute archyl setup e peça a ele que descreva o repositório em archyl.yaml seguindo o schema. O arquivo continua sendo seu para revisar.
Para manter o arquivo e o modelo em sincronia, faça commit do archyl.yaml e faça o push dele pela CI com a GitHub Action, ou use Sincronizar agora em Configurações do Projeto › Arquitetura como Código. archyl dsl diff --exit-code faz um job de CI falhar quando eles diferem.
Importar de outra ferramenta
Na lista de projetos, clique em Importar Projeto e escolha o formato: Archyl YAML, Structurizr DSL, LikeC4, IcePanel JSON ou Backstage JSON. Um workspace Structurizr dividido em arquivos !include pode ser enviado como zip. Os detalhes, e onde cada formato guarda o nome do projeto, estão em Importando Projetos.
Passo a passo para monorepos
Este é o caminho por código de ponta a ponta para um monorepo, sem descoberta com IA:
shop/
├── apps/
│ ├── storefront/
│ └── admin/
├── services/
│ ├── orders/
│ └── payments/
└── packages/
└── ui/
1. Crie o projeto e vincule o repositório. Na raiz do monorepo:
archyl init --new --no-discover --name "Shop" --team platform
Isso grava .archyl.json, que vincula o repositório ao projeto. Faça commit do arquivo: ele não contém nenhum segredo.
2. Modele um sistema com um container por unidade implantável. Apps e serviços viram containers. Um pacote compartilhado como packages/ui em geral não é um container próprio: descreva-o como um componente dos containers que o usam, ou deixe-o de fora.
3. Dê a cada container o nome da sua pasta. É isso que permite a archyl brief, where, check, impact e ao hook Guard saber a qual elemento um arquivo alterado pertence: um arquivo pertence a um elemento quando uma das pastas do seu caminho tem o nome do elemento. A comparação ignora maiúsculas, espaços e pontuação, e uma palavra final como API, Service ou Worker, então Orders Service corresponde a services/orders/… e Payments API corresponde a services/payments/….
4. Escolha um arquivo ou vários. Um único archyl.yaml na raiz é o mais simples. Em um monorepo grande, dê a cada serviço seu próprio arquivo ao lado do código e inclua-os a partir da raiz, para que cada equipe edite sua 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
Os caminhos de include são relativos ao arquivo que os declara, e os relacionamentos podem apontar para elementos em qualquer um dos arquivos. As regras estão em Include.
5. Faça o push e verifique.
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 informar que um arquivo não tem correspondência, renomeie o container conforme sua pasta e faça o push de novo.
6. Mantenha tudo atualizado. Faça commit de archyl.yaml e dos arquivos incluídos. Faça o push pela CI quando houver mudanças, ou use Sincronizar agora, que também busca os arquivos incluídos no repositório.
Depois, coloque para trabalhar
Quando o modelo existir:
- Conecte seus agentes de programação com
archyl setup(Claude Code, Cursor, VS Code, Codex) ou pelo painel. Eles passam então a chamarplan,briefe o harness antes de alterar o código. - Verifique as mudanças com base nele com
archyl checkearchyl reviewna CI. Veja o guia da CLI. - Integre pessoas e agentes com
archyl tour: um percurso guiado pelas partes a conhecer primeiro, com os arquivos a ler.archyl tour --markdown > ONBOARDING.mdgrava esse percurso em um arquivo. - Explore-o com
archyl map,archyl diagram <element>ou o canvas no aplicativo.
Combinar caminhos
- Descobrir e depois gerenciar como código: execute uma descoberta, aprove-a, depois execute
archyl dsl pulle faça commit doarchyl.yamla partir daí. - Escrever como código e depois descobrir: uma descoberta propõe apenas o que o modelo ainda não tem, então pode preencher componentes sob os containers que você escreveu. Revise-a como qualquer outra descoberta.
- Desenhar no aplicativo e fazer push a partir do código: ambos editam o mesmo modelo. Um push atualiza o que o arquivo descreve e deixa o resto intacto.