Pular para o conteúdo

Automações

O plugin Automações roda os fluxos que você cria para o seu próprio projeto. Uma automação é um gatilho, algo que aconteceu (uma spec adicionada, uma tarefa movida para Done, um commit), e depois passos em ordem: passos que fazem algo, passos que param e perguntam a você, e passos que conferem o resultado antes de seguir (Seguir se). Cada passo recebe o resultado do anterior. Vem ligado por padrão; uma automação não faz nada até você ligá-la.

Uma atividade Automações na barra de atividades. A barra lateral mostra primeiro o que está esperando você, depois suas automações locais e as compartilhadas. A página lista cada automação com quando começa, onde roda, a última execução e um botão de ligar, e a aba Execuções lista cada execução, da mais recente para a mais antiga.

Nova automação abre o editor, que se lê de cima para baixo:

  • Quando: o gatilho, com busca, e as condições que ele aceita (a coleção em que um blueprint é adicionado, o status para o qual uma tarefa vai).
  • Então: os passos. Adicionar um passo lista as ações que cada plugin oferece, marcadas Qualquer lugar ou No app, e Sai desta máquina para a que envia algo para fora (um push). Um passo Fazer recebe o resultado do passo anterior, o que iniciou a execução ou o resultado de qualquer passo anterior que você nomear.
  • Ao lado dos passos: Perguntar antes de rodar (sempre, na primeira vez ou nunca), onde roda e por quê, e se é local ou compartilhada. Só um editor do framework compartilha uma, e uma automação compartilhada fica desligada para cada pessoa até ela ligar.

Ligar lê a automação de volta em frases, diz onde roda, quantas vezes usa o agente de IA e se algo sai desta máquina, e oferece Testar uma vez em um blueprint ou tarefa que você já tem.

Uma execução que chega a um Me perguntar espera, listada em Esperando você e nomeada uma vez em um cartão no canto com suas respostas. Ela nunca segue sem resposta e sobrevive ao app fechar. A página de uma execução mostra o resultado de cada passo, o que mudou, o que saiu desta máquina e o uso do agente de IA. Uma execução que falha avisa em vermelho.

Ideias para este projeto pede ao agente de IA automações que combinem com o que o projeto tem. Cada uma diz por que combina e abre como um rascunho para editar; nada liga só por ter sido sugerido.

Gatilho Começa quando Roda
Um blueprint é adicionado ou salvo Um blueprint é escrito em uma coleção em qualquer lugar
Uma tarefa é adicionada; o status de uma tarefa muda Backlog, no quadro ou em qualquer outro lugar em qualquer lugar
Um registro é adicionado Records, um registro em arquivo em qualquer lugar
Um commit é feito Pelo Controle de código, um comando ou um passo em qualquer lugar
Rodar pelo nome eidos automations run <name>, um script, um hook do git em qualquer lugar
O app faz push; um pull traz commits Publicar, um salvamento automático que publica, um pull no app
Uma visão abre; um comando roda; o app abre o projeto A página no app

Os gatilhos de qualquer lugar disparam seja qual for o jeito da mudança: no app, com eidos em um terminal ou por um agente.

  • Fazer roda uma ação: Commit, Fetch, Pull e Push do Git, Adicionar uma tarefa e Definir o status da tarefa do Backlog, Comentar do Comments, e cada um dos seus comandos de barra personalizados do agente de IA, rodado no app com a entrada do passo e com a resposta, por padrão, como um comentário no blueprint ou na tarefa.
  • Me perguntar para a execução com a pergunta e duas respostas que você mesmo escreve (Rodar e Pular, Fazer as mudanças e Parar aqui).
  • Seguir se segue quando o passo anterior deu algo, ou quando o agente de IA responde sim a uma pergunta sobre isso, e senão termina a execução como feita.

Seja qual for o Perguntar antes de rodar, a primeira execução que chega a um passo que sai desta máquina pergunta antes. O que os próprios passos de uma execução fazem nunca inicia outra automação.

Uma automação roda em qualquer lugar quando o gatilho e todos os passos podem, e no app quando um deles precisa dele (um passo do agente de IA, uma visão que abre). Enquanto o app tem o projeto aberto, um comando passa para ele cada gatilho, então um fluxo roda uma vez só. Com o app fechado, um comando roda o que roda em qualquer lugar e guarda o resto até o app abrir.

Um comando que inicia uma execução avisa no stderr, automations: Review new specs (run 4) done, e a saída dele não muda. Uma que ele passa para o app avisa isso no lugar, automations: Review new specs waits for the app to open. Sem ninguém no terminal (um agente, um script), uma execução que perguntaria espera você em Esperando você.

Comando Faz
eidos automations [--json] Cada automação: ligada ou não para você, onde roda, a última execução e o que a impede de rodar
eidos automations catalog [--json] Os gatilhos e ações que os plugins ligados oferecem
eidos automations save --file <yaml> [--shared] Adiciona ou substitui uma, salva desligada
eidos automations on|off <name>, remove <name> Liga ou desliga uma para você, ou a remove
eidos automations run <name> [--on <blueprint ou tarefa>] Roda uma agora, pelo nome
eidos automations runs [<n>] [--json] As execuções, ou uma passo a passo
eidos automations answer <run> continue|stop Responde o Me perguntar em que uma execução espera

--no-automations, em qualquer ponto da linha de um comando, não inicia nenhuma para esse comando. eidos instructions automations mostra o arquivo de uma automação.

  • .eidos/plugins/automations/automations.yaml: as automações compartilhadas, no git.
  • .eidos/plugins/automations/local/: o que é seu, nunca no git: suas próprias automações, quais estão ligadas, o que você aceitou, as últimas 200 execuções e a fila que um comando passa para o app.