Escrever no modelo
Você pode editar o YAML à mão a qualquer momento; ele continua sendo a fonte da verdade. Os comandos existem porque escrever por comando é mais rápido, não esquece um campo obrigatório e recusa uma alteração que quebraria o modelo.
As quatro garantias
Seção intitulada “As quatro garantias”O diff é pequeno. Nada é reserializado: a ferramenta acha o ponto e emenda o texto. Comentários, alinhamento, aspas e fim de linha ficam como estavam.
Nada é escrito se o resultado não carregar. A validação roda depois da gravação, e qualquer erro novo desfaz tudo.
Remover recusa quando alguém depende. E lista quem.
--dry-run mostra o patch sem gravar, em qualquer comando que escreve:
cfour element add api --name "API de Reservas" --parent reservas --shape api --dry-runreservas/reservas ainda nao tem filhos; fica na pasta dele:--- /dev/null+++ reservas/containers.yaml@@ -0,0 +1,5 @@+elements:+ - id: api+ name: API de Reservas+ shape: api+ parent: reservas--dry-run: nada foi escrito.Repare que ele também diz onde vai escrever e por quê. Para forçar outro
arquivo, use --file.
cfour element add api --name "API de Reservas" --parent reservas --shape api \ --technology "Node.js" --description "Regras de reserva." \ --tag nucleo --meta dominio=reservas
cfour element list --level containercfour element show apicfour element set api --technology "Node.js 22" --tag pci --meta-rm dominiocfour element mv api api-de-reservas # renomeia, e conserta quem apontavacfour element rm apiNão existe --level. Quem decide o nível é --parent, e mover uma caixa na
árvore (element set <ref> --parent <outra>) é o que muda o nível dela.
element mv renomeia e conserta todas as referências — pais, setas, escopos,
seletores, participantes de fluxo, alvos de nota.
element rm recusa quando alguém aponta para a caixa. --cascade passa por
cima; --yes dispensa a confirmação.
cfour relation add painel api --kind sync --label "Chama" --meta protocolo=RESTcfour relation list --from painelcfour relation show painel apicfour relation set painel api --label "Chama a API"cfour relation mv painel api async # troca o tipocfour relation rm painel apiQuando há mais de uma seta entre as mesmas caixas, --kind desempata.
--inline escreve a seta dentro do documento da origem, com o from
implícito.
Diagramas
Seção intitulada “Diagramas”cfour diagram add containers --title "Reserva de Salas — Containers" \ --scope reservas --level container --neighbors 1 --relations auto
cfour diagram listcfour diagram show containerscfour diagram show containers --resolved # o que ele MOSTRA, e por quêcfour diagram set containers --include tag:nucleo --exclude-rm ref:legadocfour diagram mv containers containers-v2 # renomeia, e move o layout juntocfour diagram rm containersNa linha de comando, um critério se escreve <chave>:<valor>. Não há
ambiguidade com um identificador porque identificador não aceita dois-pontos:
--include level:context --include tag:nucleo--include children:reservas --include descendants:reservas:2--include shape:queue --include project:shared--include meta:dominio=reservas --where level:containercfour group add containers dados --name Dados --match-shape database --match-shape queuecfour group add containers experiencia --name "Experiencia" --orientation row --include painelcfour group add containers replicas --parent dados --match-tag replicacfour group list containerscfour group set containers dados --name "Persistencia"cfour group rm containers dados --cascadeVários --match-* do mesmo tipo combinam com ou; de tipos diferentes,
com e. Não há negação.
Fluxos, passos e caminhos
Seção intitulada “Fluxos, passos e caminhos”cfour flow add reservar colaborador painel --title "Reservar uma sala" \ --scope reservas --label "Escolhe sala e horario"
cfour flow step reservar api --label "Pede a reserva"cfour step add reservar servico-de-reserva --label "Confirma a reserva"cfour step set reservar --n 3 --label "Confirma"cfour step mv reservar --n 4 --after 2cfour step rm reservar --n 4
cfour path add reservar ocupada servico-de-reserva --name "Sala ocupada" \ --outcome failure --from conflito --label "Ja existe reserva nesse horario"cfour path list reservar
cfour flow show reservarcfour flow step é apelido de cfour step add. Um passo é endereçado pelo
número que cfour flow show mostra (--n) ou pelo identificador dele (--id),
quando tem um. --path <id> mexe num caminho alternativo em vez do principal.
cfour note add api "Ponto unico de falha para confirmar uma reserva." --kind riskcfour note add banco "Vale separar a replica?" --kind question --scope containerscfour note add containers "Congelado para a revisao de 2026-Q1"cfour note list --target apicfour note set api --text "..." --match "Ponto unico"cfour note rm api --match "Ponto unico"O primeiro argumento é o alvo: uma caixa, ou um diagrama. Quando o mesmo
identificador nomeia as duas coisas, --target e --scope desfazem a
ambiguidade. --match <trecho> escolhe entre várias notas do mesmo alvo.
Projetos
Seção intitulada “Projetos”cfour project add portaria --name "Controle de Portaria" --order 20cfour project listcfour project set portaria --name "Portaria"cfour project rm portaria --cascade # apaga a pasta, mesmo com conteúdoConfiguração da aparência
Seção intitulada “Configuração da aparência”cfour config showcfour config title "Reserva de Salas"cfour config set noteKinds decisao --label Decisao --color "#0f766e" --char Dcfour config set shapes lambda --primitive box --stereotype Function --palette containercfour config rm noteKinds decisaocfour config show lista os valores que de fato valem naquela modelagem — os
padrões do motor com o workspace.yaml por cima. É a resposta para “quais
formas eu posso usar aqui?”.
O registro e as modelagens
Seção intitulada “O registro e as modelagens”cfour modelagem listcfour modelagem add portaria --path ./portaria --name "Portaria" --ativacfour modelagem set portaria --status reference --federacao prediocfour modelagem use portariacfour modelagem show portariacfour modelagem rm portaria # tira do registro; nunca apaga arquivoA referência completa
Seção intitulada “A referência completa”Cada comando, com todo argumento e toda opção: Comandos do cfour.