00:00:00Se você tem acompanhado o canal,
00:00:01deve estar familiarizado com os diferentes tipos de fluxos de trabalho de engenharia de contexto que cobrimos aqui.
00:00:06Bem, o Google também lançou mais um.
00:00:08Eu gostaria de poder dizer que é melhor que outros fluxos de trabalho.
00:00:11Mas a verdade é que não é.
00:00:12E há muitos problemas com isso.
00:00:14Mesmo que você argumente que é melhor para o ecossistema Gemini,
00:00:16ainda não é bom.
00:00:17Antes de mergulharmos no porquê não havia necessidade de lançar isso,
00:00:20vamos fazer uma pausa rápida para falar sobre a Automata.
00:00:23Depois de ensinar milhões de pessoas a construir com IA,
00:00:25começamos a implementar esses fluxos de trabalho nós mesmos.
00:00:28Descobrimos que poderíamos construir produtos melhores mais rápido do que nunca.
00:00:32Ajudamos a dar vida às suas ideias, sejam apps ou sites.
00:00:34Talvez você tenha assistido nossos vídeos pensando: tenho uma ótima ideia,
00:00:37mas não tenho uma equipe técnica para construí-la.
00:00:40É exatamente aí que entramos..
00:00:42Pense em nós como seu copiloto técnico.
00:00:44Aplicamos os mesmos fluxos de trabalho que ensinamos a milhões diretamente ao seu projeto,
00:00:48transformando conceitos em soluções reais e funcionais sem as dores de cabeça de contratar ou gerenciar uma equipe de desenvolvimento.
00:00:54Pronto para acelerar sua ideia e transformá-la em realidade?
00:00:57Entre em contato através de hello@automata.dev..
00:00:59Agora,
00:01:00antes de explicar a razão pela qual isso é apenas mais uma tentativa fracassada de um fluxo de trabalho de engenharia de contexto,
00:01:06vamos primeiro entender como o Conductor realmente funciona.
00:01:09Então,
00:01:09este é o artigo e deixarei um link na descrição abaixo.
00:01:12No final,
00:01:13você terá um comando para instalar isso como uma extensão no Gemini CLI.
00:01:16Para aqueles que não sabem,
00:01:17extensões são conjuntos de comandos,
00:01:19MCPs e outras regras que são agrupados e transformados em um pacote que as pessoas podem hospedar e compartilhar com outros.
00:01:25O Claude também tem algo similar chamado plugins.
00:01:27Então,
00:01:28para iniciar o fluxo de trabalho,
00:01:29você usa o comando e ele instala.
00:01:31Após a instalação,
00:01:32você pode usar seus comandos slash no Conductor.
00:01:34Você terá esses cinco comandos que controlam o Conductor e como você usa o fluxo de trabalho.
00:01:38Agora,
00:01:39o primeiro comando que você vai usar é o comando setup..
00:01:41O que este comando faz é primeiro verificar se os arquivos existentes do Conductor,
00:01:45como o estado de configuração e os outros arquivos que indicam se um projeto já foi inicializado,
00:01:50estão disponíveis ou não.
00:01:51Em vez de histórias,
00:01:52ele cria esses arquivos chamados tracks e completa cada um deles.
00:01:56Depois disso,
00:01:57ele inicializou um novo repositório GitHub e perguntou o que construir.
00:02:00Para testá-lo,
00:02:01criei um projeto simples,
00:02:02mas queria testar se a arquitetura criada seria realmente boa.
00:02:05Então,
00:02:06apenas para testar se ele recomendaria as coisas que eu realmente precisaria,
00:02:10disse que deveria estar pronto para produção e escalável para um número maior de usuários.
00:02:14Depois disso,
00:02:15ele criou o arquivo product.md que continha o conceito real do que eu queria construir.
00:02:19Para refinar e elaborá-lo,
00:02:20começou a me fazer perguntas e,
00:02:22no final,
00:02:22como as perguntas não estavam realmente levando a lugar nenhum e eram bem simplistas,
00:02:26apenas deixei que gerasse tudo automaticamente.
00:02:29Depois que aprovou e salvou o guia do produto,
00:02:31quis criar outro arquivo,
00:02:32que eram as diretrizes do produto,
00:02:34focadas principalmente no estilo do produto e alguns princípios de design.
00:02:38Também aprovou e salvou as diretrizes do produto.
00:02:40Depois disso,
00:02:41definiu a pilha de tecnologia e esta é uma das razões pelas quais o fluxo de trabalho não era bom.
00:02:45Ele bagunçou a pilha de tecnologia que estava me oferecendo porque sabia qual era todo o meu projeto e ainda assim não recomendou o que era apropriado.
00:02:53Depois que corrigi isso,
00:02:54ele também aprovou a pilha de tecnologia e atualizou esse arquivo MD também.
00:02:58Ele também tem esses arquivos chamados guias de estilo de código.
00:03:01Se eu entrar na pasta real,
00:03:02essas são as únicas linguagens que ele possui e,
00:03:05se achar que vamos usar alguma delas no projeto,
00:03:07adiciona-as aos guias de estilo de código do nosso projeto atual durante a inicialização.
00:03:12O fluxo de trabalho padrão que está usando é muito bom.
00:03:14Por padrão,
00:03:15inclui cobertura de teste de código de 80% e,
00:03:17enquanto estava configurando as coisas e escrevendo os componentes base,
00:03:21estava garantindo que os testes também estivessem sendo escritos e,
00:03:24após completar as tarefas,
00:03:25também os testava.
00:03:26Ao mesmo tempo,
00:03:27estava commitando as mudanças após cada tarefa e também usando git notes para que pudéssemos rastrear onde ou quando algo desse errado.
00:03:33Depois de completar a configuração inicial,
00:03:36criou alguns requisitos de produto de alto nível para que pudéssemos entrar na track inicial.
00:03:40Esta é a primeira track que estava tentando implementar..
00:03:45Novamente,
00:03:45isso era muito amplo e precisava ser dividido em tracks menores.
00:03:48Era demais para fazer em uma track e havia muitas chances de bagunçar se estivesse fazendo tudo isso ao mesmo tempo.
00:03:54Então,
00:03:55depois de completar isso,
00:03:56você pode iniciar seu trabalho executando o comando implement e,
00:03:59na pasta tracks,
00:04:00você tem diferentes tracks que ele implementa uma por uma.
00:04:03Cada track tem dois arquivos, um plan.md e um spec.md.
00:04:06O spec.md contém o objetivo e os detalhes técnicos extraídos da pilha de tecnologia e das informações que inserimos no início.
00:04:12O plan.md contém as tarefas que precisa implementar uma por uma.
00:04:15Quando você está usando o comando implement,
00:04:18ele olha para o tracks.md e basicamente olha cada track onde,
00:04:21com base no status,
00:04:22sabe o que fazer.
00:04:23Então, se estiver vazio, não foi iniciado.
00:04:25Isso significa que está em progresso e isso significa que a track foi completada.
00:04:29E como você pode ver, esta track atual está em progresso.
00:04:32Quanto aos outros comandos,
00:04:33o comando status fornece um relatório de status do que está acontecendo atualmente e quais tracks estão sendo seguidas e quais não estão completas.
00:04:40Se você usar o comando new track,
00:04:42ele vai fazer as diferentes perguntas novamente para a nova tarefa.
00:04:46Também implementei em um repositório pré-existente e foi praticamente da mesma forma.
00:04:50Foi um pouco diferente porque olharia os arquivos existentes e apenas me faria perguntas esclarecedoras e não pediu uma nova track..
00:04:57Tive que implementar uma nova track eu mesmo como um novo recurso.
00:05:00E então há o revert,
00:05:01outro recurso realmente inteligente que mitiga qualquer dano e tem consciência do git.
00:05:05Então ele usa o git para ajudar se o agente bagunçar algo em algum lugar.
00:05:09Agora,
00:05:09atualmente o gerenciamento e estrutura de arquivos não é tão ruim.
00:05:12A maneira como implementa novos recursos ou tarefas existentes em tracks e depois acompanha cada uma delas é realmente muito boa.
00:05:18Mas a maneira como as instruções foram escritas ou como esses arquivos de comando foram escritos precisa de trabalho porque não estão gerenciando adequadamente o loop de contexto onde tem que verificar tudo.
00:05:28E se houver uma mudança, como precisa mudar isso.
00:05:30Porque mesmo durante esse processo inicial,
00:05:32houve muitos erros.
00:05:33O primeiro erro é que,
00:05:34enquanto estava pedindo a criação de cada documento,
00:05:37não dissecou minha ideia adequadamente.
00:05:39E tive que guiá-lo em grande parte das coisas.
00:05:41Quando pensei que estava adequado,
00:05:42apenas deixei que gerasse automaticamente o resto do conteúdo.
00:05:45E novamente,
00:05:46como mencionei antes,
00:05:47ao definir a pilha de tecnologia,
00:05:48também perdeu muitas coisas.
00:05:50A opção B era boa.
00:05:51Mas como disse que queria um aplicativo totalmente escalável com um grande número de usuários,
00:05:55perdeu muitas coisas que tive que esclarecer e dizer explicitamente que também precisava e então ele modificou o plano.
00:06:01Quando a track inicial foi gerada,
00:06:02entrei e olhei o plano e as especificações que havia gerado e o esquema do banco de dados estava totalmente incompleto.
00:06:08Havia perdido muitas coisas que eram cruciais para configurar o app e tive que guiá-lo novamente e direcioná-lo na direção certa.
00:06:14Agora, o Gemini é realmente um modelo muito bom.
00:06:16Então tenho que suspeitar que os comandos que foram implementados são o que está fazendo com que se comporte dessa maneira..
00:06:23E então a maior razão pela qual acredito que,
00:06:25embora a configuração em si seja realmente boa,
00:06:28há muitos problemas nos comandos principais slash e especialmente no workflow dot MD é porque estragou uma parte muito importante depois que eu disse que queria mudar o NPM.
00:06:36E em vez disso,
00:06:37queria usar P NPM já que tinha me esquecido de mencionar isso antes.
00:06:40Por algum motivo, ele tentou fazer um backup primeiro..
00:06:43E ao fazer isso,
00:06:44afirmou que precisava remover os arquivos criados com o NPM.
00:06:47Mas acabou removendo a pasta conductor inteira,
00:06:49que continha todos os arquivos de planejamento.
00:06:52Depois de deletar isso,
00:06:53ficou procurando continuamente pela pasta.
00:06:55E quando não conseguiu encontrá-la,
00:06:57disse que iria reconstruir a pasta conductor usando seu contexto e tudo que tinha em sua memória..
00:07:02Então,
00:07:03basicamente,
00:07:03teve que reescrever tudo ao contrário do que um fluxo de trabalho de contexto normal deveria fazer,
00:07:07onde a mudança deveria afetar apenas os arquivos de contexto principais e os arquivos relacionados àquela tarefa específica,
00:07:13que é o que o be mad faz para operar eficientemente.
00:07:15Agora,
00:07:16se eu não tivesse pedido para mudar algo abruptamente,
00:07:18talvez tivesse dado certo.
00:07:19Mas ainda assim,
00:07:20quando estava inicializando todas as tarefas,
00:07:22e pedi para começar a implementar a primeira trilha,
00:07:24ele começou e inicializou o projeto e os outros serviços principais que eu precisava.
00:07:28Agora,
00:07:29quando chegou a hora de configurar as variáveis de ambiente para a conexão com o super base,
00:07:33por algum motivo,
00:07:33marcou automaticamente a tarefa como concluída enquanto claramente colocava uma chave fictícia ali.
00:07:38Nem mesmo me pediu para configurar o projeto do super base ou fornecer uma chave real.
00:07:42E automaticamente tentou enviar o esquema do banco de dados.
00:07:44Como não havia chave real, falhou.
00:07:46E então me pediu para verificar novamente a string.
00:07:48Então,
00:07:49até as tarefas não estão sendo atualizadas corretamente,
00:07:51e não estava realmente seguindo-as corretamente.
00:07:53Honestamente,
00:07:54eu não usaria isso agora para desenvolvimento de especificações de ponta a ponta.
00:07:57O be mad é uma opção muito melhor.
00:07:59E para projetos pequenos,
00:08:00ainda faço meus próprios arquivos de contexto.
00:08:02Isso nos traz ao fim deste vídeo.
00:08:04Se você quiser apoiar o canal e nos ajudar a continuar fazendo vídeos como este,
00:08:07pode fazê-lo usando o botão super thanks abaixo.
00:08:09Como sempre, obrigado por assistir e te vejo no próximo..