Pular para o conteúdo

Comandos do cfour

Esta página é gerada a partir da própria declaração de comandos da ferramenta. Ela não pode divergir do que o cfour faz.

O mesmo conteúdo está disponível offline:

Terminal window
cfour help # a árvore inteira
cfour help element add # um comando só
cfour help --output json # em JSON, para um agente

cfour init [id]

cria a menor modelagem que desenha algo

ArgumentoObrigatórioO que é
idnãoid da modelagem (padrao: arquitetura)
OpçãoRepetívelO que faz
--id <id>nãoid da modelagem
--nome <nome>nãonome legivel da modelagem
--forcenãoescreve mesmo onde ja ha um registro governando

cfour check

valida uma modelagem

OpçãoRepetívelO que faz
--modelagem <id>nãoqual modelagem validar
--allnãovalida todas as modelagens do registro, e confere os espelhos
--root <dir>nãovalida uma arvore avulsa, ignorando o registro
--jsonnãosaida em JSON
--inventorynãoinclui o inventario do modelo (implica --json)

cfour serve

viewer local; arrastar salva em .layout/

OpçãoRepetívelO que faz
--modelagem <id>nãoqual modelagem abre primeiro
--port <porta>nãoporta (padrao: 5173)
--host <host>nãoescuta fora do loopback (padrao: 127.0.0.1)

cfour login [key]

guarda uma chave e vincula a este repo

ArgumentoObrigatórioO que é
keynãoa chave, se preferir sem --key
OpçãoRepetívelO que faz
--key <chave>nãoa chave: c4_<id>_<segredo>
--profile <nome>nãoguarda sob outro nome que nao o destino

cfour logout [perfil]

esquece uma chave, ou todas

ArgumentoObrigatórioO que é
perfilnãoqual perfil esquecer
OpçãoRepetívelO que faz
--profile <nome>nãoqual perfil esquecer
--allnãoesquece todas

cfour keys

as chaves guardadas, e qual vale aqui

OpçãoRepetívelO que faz
--jsonnãosaida em JSON

cfour use [perfil]

troca a chave deste repo, ou o default

ArgumentoObrigatórioO que é
perfilnãoo perfil a usar
OpçãoRepetívelO que faz
--defaultnãotorna este o perfil default da maquina

cfour push

publica as modelagens status: active

OpçãoRepetívelO que faz
--ref <nome>nãoa ref a carimbar (padrao: a do git)
--allnãoinclui as que nao estao com status: active
--dry-runnãoensaia: diz o destino e nao envia nada
--sha <sha>nãocarimba outro commit
--profile <nome>nãousa outra chave
--no-inputnãonunca pergunta, mesmo num terminal
cfour push --dry-run
cfour push --ref main
cfour push --all --profile acme

cfour status

o que esta publicado

OpçãoRepetívelO que faz
--jsonnãosaida em JSON
--profile <nome>nãousa outra chave

cfour element

as caixas: cria, consulta, altera, remove

Também: el

cfour element add <id>

cria uma caixa e a coloca na arvore de contencao

ArgumentoObrigatórioO que é
idsimid local, ou <projeto>/<id>
OpçãoRepetívelO que faz
--name <nome>nãoo nome legivel (padrao: o proprio id)
--shape <forma>nãoa forma da caixa; `cfour config show` lista as que valem aqui
--parent <ref>nãoa caixa que contem esta; e o que decide o nivel C4
--technology <t>nãoa tecnologia, como aparece na caixa
--description <d>nãouma frase sobre o que ela faz
--tag <tag>simuma etiqueta; repetivel
--meta <chave=valor>simum metadado; repetivel
--bind <modelagem:ref>nãoespelho de um elemento de outra modelagem
--projeto <id>nãoem qual projeto, quando o id nao diz
--modelagem <id>nãoem qual modelagem mexer
--dry-runnãomostra o patch e nao escreve nada
--file <caminho>nãoforça o arquivo de destino, dentro do projeto
--jsonnãosaida em JSON: o que mudou, ou o erro com codigo estavel
--no-inputnãonunca pergunta, mesmo num terminal
cfour element add loja --shape system --name "Loja Online"
cfour element add loja-api --parent loja --shape api --technology ".NET 8"
cfour element add pedido-service --parent loja-api --shape component --tag core
cfour element add cache --parent loja --dry-run

cfour element list

lista as caixas, com filtros

Também: ls

OpçãoRepetívelO que faz
--modelagem <id>nãoem qual modelagem olhar
--projeto <id>nãoso as de um projeto
--level <nivel>nãocontext, container, component ou code
--shape <forma>nãoso as de uma forma
--tag <tag>nãoso as que tem esta etiqueta
--jsonnãosaida em JSON

cfour element show <ref>

tudo sobre uma caixa, e quem aponta para ela

Também: get

ArgumentoObrigatórioO que é
refsimid local ou <projeto>/<id>
OpçãoRepetívelO que faz
--modelagem <id>nãoem qual modelagem olhar
--jsonnãosaida em JSON

cfour element set <ref>

altera campos de uma caixa que ja existe

ArgumentoObrigatórioO que é
refsimid local ou <projeto>/<id>
OpçãoRepetívelO que faz
--name <nome>nãoo nome legivel
--shape <forma>nãoa forma
--parent <ref>nãomove na arvore de contencao; e o que muda o nivel C4
--technology <t>nãoa tecnologia
--description <d>nãouma frase sobre o que ela faz
--bind <modelagem:ref>nãoespelho de um elemento de outra modelagem
--tag <tag>simacrescenta uma etiqueta; repetivel
--tag-rm <tag>simtira uma etiqueta; repetivel
--meta <chave=valor>simdefine um metadado; repetivel
--meta-rm <chave>simtira um metadado; repetivel
--clear <campo>simapaga um campo; repetivel
--modelagem <id>nãoem qual modelagem mexer
--dry-runnãomostra o patch e nao escreve nada
--file <caminho>nãoforça o arquivo de destino, dentro do projeto
--jsonnãosaida em JSON: o que mudou, ou o erro com codigo estavel
--no-inputnãonunca pergunta, mesmo num terminal
cfour element set loja-api --technology ".NET 9"
cfour element set loja/loja-web --name "Vitrine"
cfour element set pedido-service --parent loja-api      # reclassifica o nivel C4
cfour element set loja-api --tag pci --tag-rm legado
cfour element set loja-api --meta owner=squad-checkout --meta-rm layer
cfour element set loja-api --clear technology

cfour element rm <ref>

remove uma caixa, se ninguem depender dela

Também: remove

ArgumentoObrigatórioO que é
refsimid local ou <projeto>/<id>
OpçãoRepetívelO que faz
--cascadenãonao recusa por causa de quem aponta para ela
--yesnãosegue sem confirmar; so faz sentido junto de --cascade
--modelagem <id>nãoem qual modelagem mexer
--dry-runnãomostra o patch e nao escreve nada
--file <caminho>nãoforça o arquivo de destino, dentro do projeto
--jsonnãosaida em JSON: o que mudou, ou o erro com codigo estavel
--no-inputnãonunca pergunta, mesmo num terminal
cfour element rm loja/loja-legacy --dry-run
cfour element rm loja/loja-legacy

cfour element mv <ref> <novo-id>

renomeia uma caixa, e conserta quem apontava para ela

Também: rename

ArgumentoObrigatórioO que é
refsimid local ou <projeto>/<id>
novo-idsimo id novo, local
OpçãoRepetívelO que faz
--modelagem <id>nãoem qual modelagem mexer
--dry-runnãomostra o patch e nao escreve nada
--file <caminho>nãoforça o arquivo de destino, dentro do projeto
--jsonnãosaida em JSON: o que mudou, ou o erro com codigo estavel
--no-inputnãonunca pergunta, mesmo num terminal
cfour element mv loja-api api-de-pedidos --dry-run
cfour element mv loja/loja-legacy carrinho-antigo

cfour relation

as setas entre as caixas

Também: rel

cfour relation add <origem> <destino>

liga duas caixas

ArgumentoObrigatórioO que é
origemsimde onde a seta sai
destinosimonde a seta chega
OpçãoRepetívelO que faz
--kind <tipo>nãoo tipo da seta (padrao: sync); `cfour config show` lista os que valem aqui
--label <texto>nãoo que trafega, em poucas palavras
--description <d>nãoa forma longa, que aparece ao passar o mouse
--tag <tag>simuma etiqueta; repetivel
--meta <chave=valor>simum metadado; repetivel
--route <r>nãostraight, orthogonal ou bezier; sem isto vale o padrao do diagrama
--bidirectionalnãopoe ponta tambem na origem
--inlinenãoescreve dentro do documento da origem, com o from implicito
--modelagem <id>nãoem qual modelagem mexer
--dry-runnãomostra o patch e nao escreve nada
--file <caminho>nãoforça o arquivo de destino, dentro do projeto
--jsonnãosaida em JSON: o que mudou, ou o erro com codigo estavel
--no-inputnãonunca pergunta, mesmo num terminal
cfour relation add loja-web loja-api --kind sync --label Chama
cfour relation add pedido-service loja-db --inline
cfour relation add loja-api estoque/estoque-api --kind async --dry-run

cfour relation list

lista as setas, com filtros

Também: ls

OpçãoRepetívelO que faz
--modelagem <id>nãoem qual modelagem olhar
--from <ref>nãoso as que saem daqui
--to <ref>nãoso as que chegam aqui
--kind <tipo>nãoso as deste tipo
--jsonnãosaida em JSON

cfour relation show <origem> <destino>

tudo sobre uma seta

Também: get

ArgumentoObrigatórioO que é
origemsimde onde a seta sai
destinosimonde a seta chega
OpçãoRepetívelO que faz
--kind <tipo>nãoquando ha mais de uma seta entre as duas caixas
--modelagem <id>nãoem qual modelagem olhar
--jsonnãosaida em JSON

cfour relation set <origem> <destino>

altera uma seta que ja existe

ArgumentoObrigatórioO que é
origemsimde onde a seta sai
destinosimonde a seta chega
OpçãoRepetívelO que faz
--kind <tipo>nãoquando ha mais de uma seta entre as duas caixas
--label <texto>nãoo que trafega, em poucas palavras
--description <d>nãoa forma longa, que aparece ao passar o mouse
--route <r>nãostraight, orthogonal ou bezier
--bidirectionalnãopoe ponta tambem na origem
--tag <tag>simacrescenta uma etiqueta; repetivel
--tag-rm <tag>simtira uma etiqueta; repetivel
--meta <chave=valor>simdefine um metadado; repetivel
--meta-rm <chave>simtira um metadado; repetivel
--clear <campo>simapaga um campo; repetivel
--modelagem <id>nãoem qual modelagem mexer
--dry-runnãomostra o patch e nao escreve nada
--file <caminho>nãoforça o arquivo de destino, dentro do projeto
--jsonnãosaida em JSON: o que mudou, ou o erro com codigo estavel
--no-inputnãonunca pergunta, mesmo num terminal
cfour relation set loja-web loja-api --label "Chama a API"
cfour relation set loja-web loja-api --bidirectional --tag critico
cfour relation set loja-api loja-db --kind sync --clear description

cfour relation mv <origem> <destino> <novo-kind>

troca o tipo de uma seta

ArgumentoObrigatórioO que é
origemsimde onde a seta sai
destinosimonde a seta chega
novo-kindsimo tipo novo
OpçãoRepetívelO que faz
--kind <tipo>nãoo tipo ATUAL, quando ha mais de uma seta entre as duas caixas
--modelagem <id>nãoem qual modelagem mexer
--dry-runnãomostra o patch e nao escreve nada
--file <caminho>nãoforça o arquivo de destino, dentro do projeto
--jsonnãosaida em JSON: o que mudou, ou o erro com codigo estavel
--no-inputnãonunca pergunta, mesmo num terminal
cfour relation mv loja-api estoque/estoque-api async
cfour relation mv loja-web loja-api event --kind sync --dry-run

cfour relation rm <origem> <destino>

desfaz uma seta

Também: remove

ArgumentoObrigatórioO que é
origemsimde onde a seta sai
destinosimonde a seta chega
OpçãoRepetívelO que faz
--kind <tipo>nãoquando ha mais de uma seta entre as duas caixas
--modelagem <id>nãoem qual modelagem mexer
--dry-runnãomostra o patch e nao escreve nada
--file <caminho>nãoforça o arquivo de destino, dentro do projeto
--jsonnãosaida em JSON: o que mudou, ou o erro com codigo estavel
--no-inputnãonunca pergunta, mesmo num terminal
cfour relation rm loja-web loja-api
cfour relation rm loja-web loja-db --kind async --dry-run

cfour note

os recados: presos numa caixa, ou soltos num diagrama

cfour note add <alvo> <texto>

escreve um recado

ArgumentoObrigatórioO que é
alvosima caixa OU o diagrama que recebe a nota
textosimo que a nota diz
OpçãoRepetívelO que faz
--kind <tipo>nãoo tipo da nota (padrao: info); `cfour config show` lista os que valem aqui
--target <ref>nãoa caixa, quando o mesmo id nomeia uma caixa e um diagrama
--scope <diagrama>nãoo diagrama, para restringir uma nota de caixa a um desenho so
--meta <chave=valor>simum metadado; repetivel
--modelagem <id>nãoem qual modelagem mexer
--dry-runnãomostra o patch e nao escreve nada
--file <caminho>nãoforça o arquivo de destino, dentro do projeto
--jsonnãosaida em JSON: o que mudou, ou o erro com codigo estavel
--no-inputnãonunca pergunta, mesmo num terminal
cfour note add loja-api "Ponto unico de falha" --kind risk
cfour note add loja-db "Vale separar a replica?" --kind question --scope containers
cfour note add containers "Congelado para a revisao de 2026-Q1"

cfour note list

lista as notas

Também: ls

OpçãoRepetívelO que faz
--modelagem <id>nãoem qual modelagem olhar
--target <ref>nãoso as de uma caixa
--scope <diagrama>nãoso as de um diagrama
--jsonnãosaida em JSON

cfour note set <alvo>

altera um recado que ja existe

ArgumentoObrigatórioO que é
alvosima caixa ou o diagrama que tem a nota
OpçãoRepetívelO que faz
--text <texto>nãoo texto novo
--kind <tipo>nãoo tipo novo
--scope <diagrama>nãorestringe a nota a um diagrama
--meta <chave=valor>simdefine um metadado; repetivel
--meta-rm <chave>simtira um metadado; repetivel
--clear <campo>simapaga um campo; repetivel
--match <trecho>nãoquando o alvo tem mais de uma nota
--modelagem <id>nãoem qual modelagem mexer
--dry-runnãomostra o patch e nao escreve nada
--file <caminho>nãoforça o arquivo de destino, dentro do projeto
--jsonnãosaida em JSON: o que mudou, ou o erro com codigo estavel
--no-inputnãonunca pergunta, mesmo num terminal
cfour note set loja-api --text "Ponto unico de falha do fechamento"
cfour note set loja-db --match replica --kind decision
cfour note set containers --clear scope

cfour note rm <alvo>

tira um recado

Também: remove

ArgumentoObrigatórioO que é
alvosima caixa ou o diagrama que tem a nota
OpçãoRepetívelO que faz
--match <trecho>nãoquando o alvo tem mais de uma nota
--kind <tipo>nãoso as deste tipo
--modelagem <id>nãoem qual modelagem mexer
--dry-runnãomostra o patch e nao escreve nada
--file <caminho>nãoforça o arquivo de destino, dentro do projeto
--jsonnãosaida em JSON: o que mudou, ou o erro com codigo estavel
--no-inputnãonunca pergunta, mesmo num terminal
cfour note rm loja-legacy
cfour note rm loja-db --match "replica"
cfour note rm contexto --kind info

cfour diagram

as visoes: o que cada desenho mostra

Também: dia

cfour diagram add <id>

cria uma visao

ArgumentoObrigatórioO que é
idsimid local, ou <projeto>/<id>
OpçãoRepetívelO que faz
--title <titulo>nãoo titulo que aparece no desenho
--scope <ref>nãoa caixa que este diagrama detalha; da a fronteira e o nome
--level <nivel>nãocontext, container, component ou code
--order <n>nãoa posicao na lateral
--include <seletor>simuma caixa ou um criterio; repetivel
--exclude <seletor>simtira quem o seletor pega; repetivel
--where <predicado>simfiltra o que os seletores trouxeram; repetivel
--neighbors <n>nãopuxa quem esta a N saltos como contexto mudo
--relations <modo>nãoauto ou none
--group-by <chave>nãometa.<chave> ou level: uma banda por valor
--subject <ref>nãoa caixa em foco
--tag <tag>simuma etiqueta; repetivel
--meta <chave=valor>simum metadado; repetivel
--projeto <id>nãoem qual projeto, quando o id nao diz
--modelagem <id>nãoem qual modelagem mexer
--dry-runnãomostra o patch e nao escreve nada
--file <caminho>nãoforça o arquivo de destino, dentro do projeto
--jsonnãosaida em JSON: o que mudou, ou o erro com codigo estavel
--no-inputnãonunca pergunta, mesmo num terminal
cfour diagram add containers --scope loja --level container --relations auto
cfour diagram add contexto --level context --include level:context
cfour diagram add integracoes --include tag:externo --include children:loja
cfour diagram add componentes --scope loja-api --group-by meta.domain

cfour diagram list

lista as visoes

Também: ls

OpçãoRepetívelO que faz
--modelagem <id>nãoem qual modelagem olhar
--projeto <id>nãoso as de um projeto
--jsonnãosaida em JSON

cfour diagram show <ref>

tudo sobre uma visao

Também: get

ArgumentoObrigatórioO que é
refsimid local ou <projeto>/<id>
OpçãoRepetívelO que faz
--resolvednãoo que o desenho MOSTRA: caixas, setas, e por que cada uma entrou
--modelagem <id>nãoem qual modelagem olhar
--jsonnãosaida em JSON
cfour diagram show contexto
cfour diagram show contexto --resolved
cfour diagram show loja/containers --resolved --json

cfour diagram set <ref>

altera um diagrama que ja existe

ArgumentoObrigatórioO que é
refsimid local ou <projeto>/<id>
OpçãoRepetívelO que faz
--title <titulo>nãoo titulo exibido
--scope <ref>nãoa caixa que o diagrama abre por dentro
--level <nivel>nãocontext, container, component ou code
--order <n>nãoordem na arvore (padrao: 500)
--include <seletor>simacrescenta um seletor ao recorte; repetivel
--include-rm <seletor>simtira um seletor do recorte; repetivel
--exclude <seletor>simacrescenta um seletor a exclusao; repetivel
--exclude-rm <seletor>simtira um seletor da exclusao; repetivel
--where <predicado>simsubstitui o filtro do diagrama; repetivel
--neighbors <n>nãoquantos saltos de vizinhos trazer
--relations <modo>nãoauto ou none
--group-by <chave>nãobandas automaticas: meta.<chave>, level, shape ou project
--subject <ref>nãodestaca uma caixa
--subject-rm <ref>simtira o destaque de uma caixa; repetivel
--tag <tag>simacrescenta uma etiqueta; repetivel
--tag-rm <tag>simtira uma etiqueta; repetivel
--meta <chave=valor>simdefine um metadado; repetivel
--meta-rm <chave>simtira um metadado; repetivel
--clear <campo>simapaga um campo; repetivel
--modelagem <id>nãoem qual modelagem mexer
--dry-runnãomostra o patch e nao escreve nada
--file <caminho>nãoforça o arquivo de destino, dentro do projeto
--jsonnãosaida em JSON: o que mudou, ou o erro com codigo estavel
--no-inputnãonunca pergunta, mesmo num terminal
cfour diagram set containers --title "Loja Online — Containers"
cfour diagram set contexto --include estoque/estoque --neighbors 1
cfour diagram set contexto --include level:context --include-rm loja
cfour diagram set componentes --group-by meta.domain
cfour diagram set contexto --clear subject

cfour diagram mv <ref> <novo-id>

renomeia um diagrama, e move o layout junto

Também: rename

ArgumentoObrigatórioO que é
refsimid local ou <projeto>/<id>
novo-idsimo id novo, dentro do mesmo projeto
OpçãoRepetívelO que faz
--modelagem <id>nãoem qual modelagem mexer
--dry-runnãomostra o patch e nao escreve nada
--file <caminho>nãoforça o arquivo de destino, dentro do projeto
--jsonnãosaida em JSON: o que mudou, ou o erro com codigo estavel
--no-inputnãonunca pergunta, mesmo num terminal
cfour diagram mv containers visao-de-containers --dry-run
cfour diagram mv loja/contexto panorama

cfour diagram rm <ref>

apaga uma visao, e o arquivo dela

Também: remove

ArgumentoObrigatórioO que é
refsimid local ou <projeto>/<id>
OpçãoRepetívelO que faz
--modelagem <id>nãoem qual modelagem mexer
--dry-runnãomostra o patch e nao escreve nada
--file <caminho>nãoforça o arquivo de destino, dentro do projeto
--jsonnãosaida em JSON: o que mudou, ou o erro com codigo estavel
--no-inputnãonunca pergunta, mesmo num terminal
cfour diagram rm loja/rascunho --dry-run
cfour diagram rm rascunho

cfour group

as bandas: agrupa caixas dentro de UM diagrama

cfour group add <diagrama> <id>

cria uma banda no diagrama

ArgumentoObrigatórioO que é
diagramasimid local ou <projeto>/<id>
idsimo id da banda, unico no diagrama
OpçãoRepetívelO que faz
--name <nome>nãoo rotulo da banda (padrao: o proprio id)
--orientation <o>nãorow para a banda ler como uma linha; sem isto, empilha
--parent <banda>nãoaninha esta banda dentro de outra
--include <seletor>simpoe quem o seletor pega nesta banda; repetivel
--include-rm <seletor>simtira um seletor desta banda; repetivel
--match-tag <tag>simentra quem tem esta etiqueta; repetivel
--match-meta <chave=valor>simentra quem tem este metadado; repetivel
--match-level <nivel>simentra quem e deste nivel; repetivel
--match-shape <forma>simentra quem tem esta forma; repetivel
--match-project <id>simentra quem e deste projeto; repetivel
--modelagem <id>nãoem qual modelagem mexer
--dry-runnãomostra o patch e nao escreve nada
--file <caminho>nãoforça o arquivo de destino, dentro do projeto
--jsonnãosaida em JSON: o que mudou, ou o erro com codigo estavel
--no-inputnãonunca pergunta, mesmo num terminal
cfour group add containers dados --name Dados --match-shape database
cfour group add containers experiencia --name "Experiência" --orientation row --include loja-web
cfour group add containers replicas --parent dados --match-tag replica

cfour group list <diagrama>

as bandas de um diagrama, com o aninhamento

Também: ls

ArgumentoObrigatórioO que é
diagramasimid local ou <projeto>/<id>
OpçãoRepetívelO que faz
--modelagem <id>nãoem qual modelagem olhar
--jsonnãosaida em JSON

cfour group set <diagrama> <id>

altera uma banda que ja existe

ArgumentoObrigatórioO que é
diagramasimid local ou <projeto>/<id>
idsimo id da banda
OpçãoRepetívelO que faz
--name <nome>nãoo rotulo da banda
--orientation <o>nãorow ou column
--clear <campo>simapaga um campo; repetivel
--include <seletor>simpoe quem o seletor pega nesta banda; repetivel
--include-rm <seletor>simtira um seletor desta banda; repetivel
--match-tag <tag>simentra quem tem esta etiqueta; repetivel
--match-meta <chave=valor>simentra quem tem este metadado; repetivel
--match-level <nivel>simentra quem e deste nivel; repetivel
--match-shape <forma>simentra quem tem esta forma; repetivel
--match-project <id>simentra quem e deste projeto; repetivel
--modelagem <id>nãoem qual modelagem mexer
--dry-runnãomostra o patch e nao escreve nada
--file <caminho>nãoforça o arquivo de destino, dentro do projeto
--jsonnãosaida em JSON: o que mudou, ou o erro com codigo estavel
--no-inputnãonunca pergunta, mesmo num terminal
cfour group set containers dados --name "Persistência"
cfour group set containers experiencia --include-rm loja-web
cfour group set containers dados --clear match

cfour group rm <diagrama> <id>

tira uma banda do diagrama

Também: remove

ArgumentoObrigatórioO que é
diagramasimid local ou <projeto>/<id>
idsimo id da banda
OpçãoRepetívelO que faz
--cascadenãoleva junto as bandas aninhadas nela
--modelagem <id>nãoem qual modelagem mexer
--dry-runnãomostra o patch e nao escreve nada
--file <caminho>nãoforça o arquivo de destino, dentro do projeto
--jsonnãosaida em JSON: o que mudou, ou o erro com codigo estavel
--no-inputnãonunca pergunta, mesmo num terminal
cfour group rm containers dados
cfour group rm containers dominio --cascade

cfour step

os passos de um fluxo, na ordem em que acontecem

cfour step add <fluxo> <destino>

acrescenta um passo

ArgumentoObrigatórioO que é
fluxosimid local ou <projeto>/<id>
destinosimquem recebe a mensagem
OpçãoRepetívelO que faz
--from <ref>nãoquem envia; sem isto, herda o destino do passo anterior
--label <texto>nãoo que aparece ao lado da linha
--kind <tipo>nãoo tipo da seta; sem isto, o da seta declarada
--reply <texto>nãouma resposta curta, tracejada, na linha seguinte
--after <id>nãoentra logo depois deste passo; sem isto, no fim
--modelagem <id>nãoem qual modelagem mexer
--dry-runnãomostra o patch e nao escreve nada
--file <caminho>nãoforça o arquivo de destino, dentro do projeto
--jsonnãosaida em JSON: o que mudou, ou o erro com codigo estavel
--no-inputnãonunca pergunta, mesmo num terminal
cfour step add checkout loja-api --label "Fecha pedido"
cfour step add checkout estoque/estoque-api --from loja-api --label "Reserva"
cfour step add checkout pagamento-client --after cobra

cfour step set <fluxo>

altera um passo

ArgumentoObrigatórioO que é
fluxosimid local ou <projeto>/<id>
OpçãoRepetívelO que faz
--from <ref>nãoquem envia
--to <ref>nãoquem recebe
--label <texto>nãoo que aparece ao lado da linha
--kind <tipo>nãoo tipo da seta
--reply <texto>nãoa resposta curta
--description <d>nãoo texto que aparece ao passar o mouse
--clear <campo>simapaga um campo; repetivel
--n <numero>nãoqual passo, pelo numero que `cfour flow show` mostra
--id <id>nãoqual passo, pelo id — quando ele tem um
--path <id>nãonum caminho alternativo; sem isto, no principal
--modelagem <id>nãoem qual modelagem mexer
--dry-runnãomostra o patch e nao escreve nada
--file <caminho>nãoforça o arquivo de destino, dentro do projeto
--jsonnãosaida em JSON: o que mudou, ou o erro com codigo estavel
--no-inputnãonunca pergunta, mesmo num terminal
cfour step set checkout --n 2 --label "Fecha o pedido"
cfour step set checkout --n 4 --id cobra          # nomeia o passo 4
cfour step set checkout --id cobra --reply "Autorizado"

cfour step mv <fluxo>

reordena um passo

ArgumentoObrigatórioO que é
fluxosimid local ou <projeto>/<id>
OpçãoRepetívelO que faz
--after <id|numero>nãopassa a vir logo depois deste
--firstnãopassa a ser o primeiro
--n <numero>nãoqual passo, pelo numero que `cfour flow show` mostra
--id <id>nãoqual passo, pelo id — quando ele tem um
--path <id>nãonum caminho alternativo; sem isto, no principal
--modelagem <id>nãoem qual modelagem mexer
--dry-runnãomostra o patch e nao escreve nada
--file <caminho>nãoforça o arquivo de destino, dentro do projeto
--jsonnãosaida em JSON: o que mudou, ou o erro com codigo estavel
--no-inputnãonunca pergunta, mesmo num terminal
cfour step mv checkout --n 4 --after 2
cfour step mv checkout --id reserva --first

cfour step rm <fluxo>

tira um passo

Também: remove

ArgumentoObrigatórioO que é
fluxosimid local ou <projeto>/<id>
OpçãoRepetívelO que faz
--n <numero>nãoqual passo, pelo numero que `cfour flow show` mostra
--id <id>nãoqual passo, pelo id — quando ele tem um
--path <id>nãonum caminho alternativo; sem isto, no principal
--modelagem <id>nãoem qual modelagem mexer
--dry-runnãomostra o patch e nao escreve nada
--file <caminho>nãoforça o arquivo de destino, dentro do projeto
--jsonnãosaida em JSON: o que mudou, ou o erro com codigo estavel
--no-inputnãonunca pergunta, mesmo num terminal
cfour step rm checkout --n 3
cfour step rm checkout --path recusado --n 1

cfour path

os desvios de um fluxo, com desfecho proprio

cfour path add <fluxo> <id> <destino>

acrescenta um caminho alternativo, com o primeiro passo dele

ArgumentoObrigatórioO que é
fluxosimid local ou <projeto>/<id>
idsimo id do caminho, unico no fluxo
destinosimquem recebe a primeira mensagem do desvio
OpçãoRepetívelO que faz
--name <nome>nãoo nome no seletor (padrao: o proprio id)
--outcome <desfecho>nãosuccess, failure ou alternate; `cfour config show` lista
--from <passo>nãoo id do passo de onde ele desvia, inclusive
--label <texto>nãoo rotulo do primeiro passo
--kind <tipo>nãoo tipo da seta do primeiro passo
--modelagem <id>nãoem qual modelagem mexer
--dry-runnãomostra o patch e nao escreve nada
--file <caminho>nãoforça o arquivo de destino, dentro do projeto
--jsonnãosaida em JSON: o que mudou, ou o erro com codigo estavel
--no-inputnãonunca pergunta, mesmo num terminal
cfour path add checkout recusado pagamento-client --name "Pagamento recusado" \
cfour path add checkout sem-estoque loja-web --outcome alternate

cfour path list <fluxo>

os caminhos de um fluxo, com o principal

Também: ls

ArgumentoObrigatórioO que é
fluxosimid local ou <projeto>/<id>
OpçãoRepetívelO que faz
--modelagem <id>nãoem qual modelagem olhar
--jsonnãosaida em JSON

cfour path set <fluxo> <id>

altera um caminho alternativo

ArgumentoObrigatórioO que é
fluxosimid local ou <projeto>/<id>
idsimo id do caminho
OpçãoRepetívelO que faz
--name <nome>nãoo nome no seletor
--outcome <desfecho>nãosuccess, failure ou alternate
--from <passo>nãoo id do passo de onde ele desvia
--clear <campo>simapaga um campo; repetivel
--modelagem <id>nãoem qual modelagem mexer
--dry-runnãomostra o patch e nao escreve nada
--file <caminho>nãoforça o arquivo de destino, dentro do projeto
--jsonnãosaida em JSON: o que mudou, ou o erro com codigo estavel
--no-inputnãonunca pergunta, mesmo num terminal
cfour path set checkout recusado --name "Recusa do emissor"
cfour path set checkout recusado --clear from

cfour path rm <fluxo> <id>

tira um caminho alternativo

Também: remove

ArgumentoObrigatórioO que é
fluxosimid local ou <projeto>/<id>
idsimo id do caminho
OpçãoRepetívelO que faz
--modelagem <id>nãoem qual modelagem mexer
--dry-runnãomostra o patch e nao escreve nada
--file <caminho>nãoforça o arquivo de destino, dentro do projeto
--jsonnãosaida em JSON: o que mudou, ou o erro com codigo estavel
--no-inputnãonunca pergunta, mesmo num terminal
cfour path rm checkout recusado

cfour federacao

as leituras conjuntas de duas ou mais modelagens

cfour federacao add <id>

declara uma leitura conjunta

ArgumentoObrigatórioO que é
idsimo apelido da leitura
OpçãoRepetívelO que faz
--modelagem <id>simum membro; repita para os demais
--name <nome>nãoo rotulo exibido
--curador <id>nãode quem vale a configuracao quando os membros discordam
--dry-runnãomostra o que mudaria e nao escreve nada
cfour federacao add plataforma --modelagem loja --modelagem logistica
cfour federacao add par --modelagem a --modelagem b --curador a --dry-run

cfour federacao list

as leituras conjuntas, e se os dois lados concordam

Também: ls

OpçãoRepetívelO que faz
--jsonnãosaida em JSON

cfour federacao rm <id>

desfaz uma leitura conjunta, nos dois lados

Também: remove

ArgumentoObrigatórioO que é
idsimo apelido da leitura
OpçãoRepetívelO que faz
--dry-runnãomostra o que mudaria e nao escreve nada
cfour federacao rm par --dry-run
cfour federacao rm plataforma

cfour flow

os casos de uso, contados como sequencia

cfour flow add <id> <origem> <destino>

cria um fluxo, ja com o primeiro passo

ArgumentoObrigatórioO que é
idsimid local, ou <projeto>/<id>
origemsimquem inicia o primeiro passo
destinosimquem recebe o primeiro passo
OpçãoRepetívelO que faz
--title <titulo>nãoo titulo do caso de uso
--scope <ref>nãoonde ele acontece; da a trilha e o lugar na arvore
--level <nivel>nãoo nivel em que ele abre
--order <n>nãoa posicao na lateral
--main <nome>nãoo nome do caminho feliz (padrao: Caminho feliz)
--outcome <desfecho>nãoo desfecho (padrao: success); `cfour config show` lista os que valem aqui
--participant <ref>simfixa a ordem das lifelines; repetivel
--label <texto>nãoo rotulo do primeiro passo
--kind <tipo>nãoo tipo do primeiro passo
--tag <tag>simuma etiqueta; repetivel
--projeto <id>nãoem qual projeto, quando o id nao diz
--modelagem <id>nãoem qual modelagem mexer
--dry-runnãomostra o patch e nao escreve nada
--file <caminho>nãoforça o arquivo de destino, dentro do projeto
--jsonnãosaida em JSON: o que mudou, ou o erro com codigo estavel
--no-inputnãonunca pergunta, mesmo num terminal
cfour flow add checkout cliente loja-web --title "Fechar pedido" --scope loja
cfour flow add reserva loja-api estoque-api --label "Reserva itens"

cfour flow step <fluxo> <destino>

acrescenta um passo a sequencia

ArgumentoObrigatórioO que é
fluxosimid local ou <projeto>/<id>
destinosimquem recebe a mensagem
OpçãoRepetívelO que faz
--from <ref>nãoquem envia; omitido, herda o destino do passo anterior
--label <texto>nãoo que a mensagem diz
--kind <tipo>nãoo tipo da seta
--reply <texto>nãoa resposta, tracejada na propria linha
--after <id>nãoentra depois deste passo; sem isto, entra no fim
--modelagem <id>nãoem qual modelagem mexer
--dry-runnãomostra o patch e nao escreve nada
--file <caminho>nãoforça o arquivo de destino, dentro do projeto
--jsonnãosaida em JSON: o que mudou, ou o erro com codigo estavel
--no-inputnãonunca pergunta, mesmo num terminal
cfour flow step checkout loja-api --label "Fecha pedido"
cfour flow step checkout loja-db --from pedido-service --label Persiste
cfour flow step checkout gateway --after cobra --label Autoriza

cfour flow set <ref>

altera um fluxo que ja existe

ArgumentoObrigatórioO que é
refsimid local ou <projeto>/<id>
OpçãoRepetívelO que faz
--title <titulo>nãoo titulo exibido
--scope <ref>nãoonde o caso de uso acontece
--level <nivel>nãoem qual altura o fluxo abre
--order <n>nãoordem na arvore (padrao: 500)
--main <nome>nãoo nome do caminho principal
--outcome <desfecho>nãoo desfecho do caminho principal
--participant <ref>simacrescenta uma coluna; repetivel
--participant-rm <ref>simtira uma coluna; repetivel
--tag <tag>simacrescenta uma etiqueta; repetivel
--tag-rm <tag>simtira uma etiqueta; repetivel
--meta <chave=valor>simdefine um metadado; repetivel
--meta-rm <chave>simtira um metadado; repetivel
--clear <campo>simapaga um campo; repetivel
--modelagem <id>nãoem qual modelagem mexer
--dry-runnãomostra o patch e nao escreve nada
--file <caminho>nãoforça o arquivo de destino, dentro do projeto
--jsonnãosaida em JSON: o que mudou, ou o erro com codigo estavel
--no-inputnãonunca pergunta, mesmo num terminal
cfour flow set checkout --title "Fechar pedido"
cfour flow set checkout --main "Pedido aprovado" --outcome success
cfour flow set checkout --participant shared/cliente --participant loja-web

cfour flow mv <ref> <novo-id>

renomeia um fluxo

Também: rename

ArgumentoObrigatórioO que é
refsimid local ou <projeto>/<id>
novo-idsimo id novo, dentro do mesmo projeto
OpçãoRepetívelO que faz
--modelagem <id>nãoem qual modelagem mexer
--dry-runnãomostra o patch e nao escreve nada
--file <caminho>nãoforça o arquivo de destino, dentro do projeto
--jsonnãosaida em JSON: o que mudou, ou o erro com codigo estavel
--no-inputnãonunca pergunta, mesmo num terminal
cfour flow mv checkout fechar-pedido --dry-run

cfour flow rm <ref>

remove um fluxo inteiro

Também: remove

ArgumentoObrigatórioO que é
refsimid local ou <projeto>/<id>
OpçãoRepetívelO que faz
--modelagem <id>nãoem qual modelagem mexer
--dry-runnãomostra o patch e nao escreve nada
--file <caminho>nãoforça o arquivo de destino, dentro do projeto
--jsonnãosaida em JSON: o que mudou, ou o erro com codigo estavel
--no-inputnãonunca pergunta, mesmo num terminal
cfour flow rm conciliacao --dry-run
cfour flow rm loja/checkout

cfour flow list

lista os fluxos, com passos e desfechos

Também: ls

OpçãoRepetívelO que faz
--modelagem <id>nãoem qual modelagem olhar
--projeto <id>nãoso os de um projeto
--jsonnãosaida em JSON

cfour flow show <ref>

a sequencia inteira, passo a passo

Também: get

ArgumentoObrigatórioO que é
refsimid local ou <projeto>/<id>
OpçãoRepetívelO que faz
--modelagem <id>nãoem qual modelagem olhar
--jsonnãosaida em JSON

cfour project

as pastas sob model/ que agrupam tudo

Também: proj

cfour project add <id>

cria um projeto

ArgumentoObrigatórioO que é
idsimo id, que e tambem o nome da pasta
OpçãoRepetívelO que faz
--name <nome>nãoo nome legivel
--order <n>nãoa posicao na lateral
--tag <tag>simuma etiqueta; repetivel
--modelagem <id>nãoem qual modelagem mexer
--dry-runnãomostra o patch e nao escreve nada
--file <caminho>nãoforça o arquivo de destino, dentro do projeto
--jsonnãosaida em JSON: o que mudou, ou o erro com codigo estavel
--no-inputnãonunca pergunta, mesmo num terminal
cfour project add loja --name "Loja Online" --order 10

cfour project set <id>

altera o nome, a ordem e as etiquetas de um projeto

ArgumentoObrigatórioO que é
idsimo id do projeto, que e o nome da pasta
OpçãoRepetívelO que faz
--name <nome>nãoo nome exibido na arvore
--order <n>nãoordem entre os projetos (padrao: 500)
--tag <tag>simacrescenta uma etiqueta; repetivel
--tag-rm <tag>simtira uma etiqueta; repetivel
--meta <chave=valor>simdefine um metadado; repetivel
--meta-rm <chave>simtira um metadado; repetivel
--clear <campo>simapaga um campo; repetivel
--modelagem <id>nãoem qual modelagem mexer
--dry-runnãomostra o patch e nao escreve nada
--file <caminho>nãoforça o arquivo de destino, dentro do projeto
--jsonnãosaida em JSON: o que mudou, ou o erro com codigo estavel
--no-inputnãonunca pergunta, mesmo num terminal
cfour project set loja --name "Loja Online" --order 10
cfour project set loja --meta owner=tribo-vendas

cfour project rm <id>

remove um projeto, e a pasta dele

Também: remove

ArgumentoObrigatórioO que é
idsimo id do projeto
OpçãoRepetívelO que faz
--cascadenãoapaga a pasta mesmo com conteudo dentro
--modelagem <id>nãoem qual modelagem mexer
--dry-runnãomostra o patch e nao escreve nada
--file <caminho>nãoforça o arquivo de destino, dentro do projeto
--jsonnãosaida em JSON: o que mudou, ou o erro com codigo estavel
--no-inputnãonunca pergunta, mesmo num terminal
cfour project rm rascunho --dry-run
cfour project rm rascunho --cascade

cfour project list

lista os projetos, com o que ha em cada um

Também: ls

OpçãoRepetívelO que faz
--modelagem <id>nãoem qual modelagem olhar
--jsonnãosaida em JSON

cfour find <termo>

procura em id, nome, descricao, tag, meta e texto de nota

ArgumentoObrigatórioO que é
termosimo que procurar; casa em qualquer parte, sem acento e sem caixa
OpçãoRepetívelO que faz
--modelagem <id>nãoem qual modelagem olhar
--tipo <tipo>nãoelement, relation, note, diagram, flow ou project
--jsonnãosaida em JSON
cfour find checkout
cfour find PostgreSQL --tipo element
cfour find "ponto unico de falha" --tipo note
cfour find "pedido" --json

cfour refs <ref>

onde uma caixa e usada

ArgumentoObrigatórioO que é
refsimid local ou <projeto>/<id>
OpçãoRepetívelO que faz
--modelagem <id>nãoem qual modelagem olhar
--jsonnãosaida em JSON
cfour refs loja-api

cfour config

formas, tipos de seta, de nota e de desfecho

cfour config rm <registro> <chave>

tira uma chave de um registro do workspace.yaml

Também: remove

ArgumentoObrigatórioO que é
registrosimshapes, relationKinds, noteKinds, flowOutcomes, metadata ou palette
chavesima chave a remover
OpçãoRepetívelO que faz
--modelagem <id>nãoem qual modelagem mexer
--dry-runnãomostra o patch e nao escreve nada
--file <caminho>nãoforça o arquivo de destino, dentro do projeto
--jsonnãosaida em JSON: o que mudou, ou o erro com codigo estavel
--no-inputnãonunca pergunta, mesmo num terminal
cfour config rm noteKinds decision
cfour config rm shapes lambda --dry-run

cfour config title <texto>

o titulo desta modelagem, no alto da barra lateral

ArgumentoObrigatórioO que é
textosimo titulo
OpçãoRepetívelO que faz
--modelagem <id>nãoem qual modelagem mexer
--dry-runnãomostra o patch e nao escreve nada
--file <caminho>nãoforça o arquivo de destino, dentro do projeto
--jsonnãosaida em JSON: o que mudou, ou o erro com codigo estavel
--no-inputnãonunca pergunta, mesmo num terminal
cfour config title "Arquitetura da Loja"

cfour config show

a configuracao efetiva: os defaults com o workspace.yaml por cima

OpçãoRepetívelO que faz
--modelagem <id>nãoem qual modelagem olhar
--jsonnãosaida em JSON

cfour config set <registro> <chave>

acrescenta ou altera uma chave de um registro aberto

ArgumentoObrigatórioO que é
registrosimshapes, relationKinds, noteKinds, flowOutcomes, metadata ou palette
chavesimo nome novo, que o YAML passa a aceitar
OpçãoRepetívelO que faz
--label <texto>nãoo rotulo legivel
--color <cor>nãoa cor, em hex
--dash <padrao>nãoo tracejado de uma seta (stroke-dasharray)
--char <c>nãoo caractere do cracha de uma nota
--stereotype <texto>nãoo que aparece entre guilemetes na caixa
--palette <chave>nãoqual entrada da paleta a forma usa
--primitive <nome>nãoo desenho base da forma
--modelagem <id>nãoem qual modelagem mexer
--dry-runnãomostra o patch e nao escreve nada
--file <caminho>nãoforça o arquivo de destino, dentro do projeto
--jsonnãosaida em JSON: o que mudou, ou o erro com codigo estavel
--no-inputnãonunca pergunta, mesmo num terminal
cfour config set relationKinds webhook --label Webhook --dash "4 2"
cfour config set noteKinds decisao --label Decisao --char D
cfour config set shapes lambda --primitive container --stereotype Function

cfour modelagem

as realidades registradas no cfour.yaml

Também: modelagens

cfour modelagem list

lista as modelagens do registro

Também: ls

OpçãoRepetívelO que faz
--jsonnãosaida em JSON

cfour modelagem add <id>

registra uma modelagem que ja existe no disco

ArgumentoObrigatórioO que é
idsimo id, unico no registro
OpçãoRepetívelO que faz
--path <dir>nãoa pasta da modelagem, que tem um model/ dentro
--name <nome>nãoo nome legivel
--ativanãopassa a ser a que abre quando ninguem diz qual
--dry-runnãomostra o que mudaria e nao escreve nada
cfour modelagem add logistica --path ./logistica --name "Logistica"
cfour modelagem add legado --path ~/Git/legado-arquitetura

cfour modelagem set <id>

altera uma modelagem: nome, caminho, descricao e status

ArgumentoObrigatórioO que é
idsimo id no registro
OpçãoRepetívelO que faz
--name <nome>nãoo nome legivel
--path <dir>nãoa pasta da modelagem
--description <d>nãoa prosa que diz para que ela existe
--status <s>nãoactive, reference ou archived
--federacao <id>nãoa leitura conjunta de que ela participa
--clear <campo>simapaga description ou federacao; repetivel
--dry-runnãomostra o que mudaria e nao escreve nada
cfour modelagem set exemplos --status reference
cfour modelagem set exemplos --name "Exemplos" --description "So para ensinar"
cfour modelagem set legado --path ./arquivo/legado --dry-run

cfour modelagem use <id>

troca a modelagem que abre quando ninguem diz qual

ArgumentoObrigatórioO que é
idsimo id no registro
OpçãoRepetívelO que faz
--dry-runnãomostra o que mudaria e nao escreve nada
cfour modelagem use logistica

cfour modelagem show <id>

tudo sobre uma modelagem, dos dois arquivos de uma vez

Também: get

ArgumentoObrigatórioO que é
idsimo id no registro
OpçãoRepetívelO que faz
--jsonnãosaida em JSON

cfour modelagem rm <id>

tira uma modelagem do registro; nunca apaga arquivo

Também: remove

ArgumentoObrigatórioO que é
idsimo id no registro
OpçãoRepetívelO que faz
--dry-runnãomostra o que mudaria e nao escreve nada
cfour modelagem rm legado

cfour completion <shell>

o script de autocompletar deste shell

ArgumentoObrigatórioO que é
shellsimbash, zsh ou fish

cfour version

a versao deste CLI

cfour help [comando]

a ajuda de um comando so

ArgumentoObrigatórioO que é
comandonãode qual comando
OpçãoRepetívelO que faz
--output <formato>nãotext (padrao) ou json: a arvore inteira, para um agente