<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
    <id>https://arq-eng-tecnologia.drcgrupo.com/blog</id>
    <title>Arq&amp;Eng Hub Blog</title>
    <updated>2026-05-01T00:00:00.000Z</updated>
    <generator>https://github.com/jpmonette/feed</generator>
    <link rel="alternate" href="https://arq-eng-tecnologia.drcgrupo.com/blog"/>
    <subtitle>Arq&amp;Eng Hub Blog</subtitle>
    <icon>https://arq-eng-tecnologia.drcgrupo.com/img/logo.png</icon>
    <entry>
        <title type="html"><![CDATA[OpenCode: quando o agente de IA sai do chat e entra no fluxo de trabalho]]></title>
        <id>https://arq-eng-tecnologia.drcgrupo.com/blog/Opencode</id>
        <link href="https://arq-eng-tecnologia.drcgrupo.com/blog/Opencode"/>
        <updated>2026-05-01T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[A primeira fase da IA generativa foi dominada pelo chat. Abríamos uma janela, descrevíamos um problema, copiávamos um trecho de código, esperávamos uma resposta e depois voltávamos manualmente para o ambiente real de trabalho.]]></summary>
        <content type="html"><![CDATA[<p>A primeira fase da IA generativa foi dominada pelo chat. Abríamos uma janela, descrevíamos um problema, copiávamos um trecho de código, esperávamos uma resposta e depois voltávamos manualmente para o ambiente real de trabalho.</p>
<p>Esse formato foi revolucionário, mas tem um limite evidente: ele mantém a IA do lado de fora da operação.</p>
<p>O OpenCode aponta para outra direção. Ele não trata a IA apenas como uma caixa de perguntas e respostas. Ele coloca o agente dentro do ambiente onde o trabalho técnico acontece: o terminal, o editor, o repositório, os arquivos, os comandos, as permissões e as ferramentas externas.</p>
<p>A diferença parece pequena, mas é estrutural.</p>
<p>Quando a IA conversa, ela ajuda. Quando ela opera com contexto, ferramentas e governança, ela começa a virar infraestrutura de trabalho.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="o-que-é-o-opencode">O que é o OpenCode<a href="https://arq-eng-tecnologia.drcgrupo.com/blog/Opencode#o-que-%C3%A9-o-opencode" class="hash-link" aria-label="Link direto para O que é o OpenCode" title="Link direto para O que é o OpenCode" translate="no">​</a></h2>
<p>O OpenCode é um agente de programação open source desenhado para funcionar no terminal, no IDE e também em uma aplicação desktop. Em vez de ser apenas um assistente que responde perguntas sobre código, ele pode explorar uma base, propor mudanças, editar arquivos, rodar comandos e trabalhar com modelos diferentes.</p>
<p>A documentação oficial informa que o OpenCod<strong>e usa</strong> o AI <strong>SDK e o Mo</strong>dels.dev para s<strong>uportar mais de 75</strong> provedores de LLM, alé<strong>m de modelos lo</strong>cais. Isso significa que o agente não está preso a um único fornecedor de IA.</p>
<p>Essa característica muda a forma de avaliar a ferramenta. O valor principal do OpenCode não está apenas em “qual modelo ele usa”, mas em como ele organiza o ambiente de execução ao redor do modelo:</p>
<p>- contexto do projeto;<br>
<!-- -->- ferramentas disponíveis;<br>
<!-- -->- permissões de escrita e execução;<br>
<!-- -->- agentes com papéis diferentes;<br>
<!-- -->- skills reutilizáveis;<br>
<!-- -->- provedores intercambiáveis;<br>
<!-- -->- governança do fluxo agentivo.</p>
<p>Em outras palavras: o OpenCode é menos um “chat para programadores” e mais uma camada operacional para agentes de código.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="o-problema-dos-chats-de-ia-no-trabalho-técnico">O problema dos chats de IA no trabalho técnico<a href="https://arq-eng-tecnologia.drcgrupo.com/blog/Opencode#o-problema-dos-chats-de-ia-no-trabalho-t%C3%A9cnico" class="hash-link" aria-label="Link direto para O problema dos chats de IA no trabalho técnico" title="Link direto para O problema dos chats de IA no trabalho técnico" translate="no">​</a></h2>
<p>O chat é excelente para raciocinar, explicar, resumir e gerar alternativas. Mas ele é fraco quando o trabalho exige continuidade operacional.</p>
<p>Em programação, isso aparece rapidamente. O desenvolvedor precisa explicar o contexto, colar arquivos, copiar respostas, aplicar patches, rodar testes, voltar com logs, pedir ajustes e repetir o ciclo. O gargalo deixa de ser a inteligência do modelo e passa a ser a fricção entre o modelo e o ambiente real.</p>
<p>O mesmo problema existe fora da programação.</p>
<p>Em engenharia, construção civil, automação de processos e gestão técnica, boa parte do trabalho não é apenas “responder uma pergunta”. É abrir documentos, interpretar padrões, consultar histórico, criar chamados, atualizar tarefas, gerar registros, comparar versões, aplicar procedimentos e deixar rastreabilidade.</p>
<p>A pergunta relevante passa a ser:</p>
<p>&gt; Como tirar a IA da janela de conversa e colocá-la dentro do fluxo real de trabalho, sem perder controle?</p>
<p>O OpenCode é interessante justamente porque mostra uma resposta prática para essa pergunta.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="o-agente-como-operador-de-ambiente">O agente como operador de ambiente<a href="https://arq-eng-tecnologia.drcgrupo.com/blog/Opencode#o-agente-como-operador-de-ambiente" class="hash-link" aria-label="Link direto para O agente como operador de ambiente" title="Link direto para O agente como operador de ambiente" translate="no">​</a></h2>
<p>Um agente útil precisa de mais do que um bom modelo. Ele precisa de ambiente.</p>
<p>No caso do OpenCode, esse ambiente inclui o repositório, o terminal, os arquivos, os comandos e a configuração do projeto. Isso permite que o agente aja com base no estado real do trabalho, não apenas em uma descrição parcial enviada pelo usuário.</p>
<p>Esse é um salto importante.</p>
<p>Um assistente convencional pode dizer:</p>
<p>&gt; “Você provavelmente precisa alterar esta função.”</p>
<p>Um agente operacional pode dizer:</p>
<p>&gt; “Eu encontrei a função, verifiquei onde ela é chamada, propus um plano, editei os arquivos, rodei os testes e mostrei o diff.”</p>
<p>Essa diferença é o núcleo da nova geração de ferramentas de IA. O ganho não vem apenas de respostas melhores. Vem da redução do atrito entre intenção, execução e verificação.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="agentes-com-papéis-diferentes">Agentes com papéis diferentes<a href="https://arq-eng-tecnologia.drcgrupo.com/blog/Opencode#agentes-com-pap%C3%A9is-diferentes" class="hash-link" aria-label="Link direto para Agentes com papéis diferentes" title="Link direto para Agentes com papéis diferentes" translate="no">​</a></h2>
<p>Um dos pontos mais importantes do OpenCode é a separação entre agentes com funções e permissões distintas.</p>
<p>A documentação do OpenCode trabalha com agentes como `build`, `plan`, `general` e `explore`. A ideia é simples e poderosa: nem todo agente deve poder fazer tudo.</p>
<p>Um agente de planejamento pode analisar a base e propor caminhos sem modificar arquivos. Um agente de construção pode editar, executar comandos e implementar mudanças. Subagentes podem explorar partes específicas do problema.</p>
<p>Essa separação importa porque autonomia sem governança é risco.</p>
<p>Em qualquer operação técnica séria, o problema não é apenas “a IA consegue fazer?”. A pergunta correta é:</p>
<p>- ela pode fazer isso agora?<br>
<!-- -->- com quais permissões?<br>
<!-- -->- em qual escopo?<br>
<!-- -->- deixando qual registro?<br>
<!-- -->- com qual possibilidade de revisão?<br>
<!-- -->- usando quais dados?</p>
<p>Esse modelo é diretamente transferível para outras áreas.</p>
<p>Em uma operação de construção civil, por exemplo, poderíamos ter agentes com papéis diferentes:</p>
<p>- um agente que lê reuniões e identifica tarefas;<br>
<!-- -->- um agente que transforma decisões em chamados;<br>
<!-- -->- um agente que consulta documentos técnicos;<br>
<!-- -->- um agente que atualiza cronogramas;<br>
<!-- -->- um agente que revisa integrações;<br>
<!-- -->- um agente que apenas planeja, sem exe<strong>cutar alterações.</strong></p>
<p><strong>O princípio é o</strong> mesmo: agentes não devem ser “superusuários genéricos”. Eles devem operar com papéis, limites e procedimentos.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="skills-conhecimento-operacional-reutilizável">Skills: conhecimento operacional reutilizável<a href="https://arq-eng-tecnologia.drcgrupo.com/blog/Opencode#skills-conhecimento-operacional-reutiliz%C3%A1vel" class="hash-link" aria-label="Link direto para Skills: conhecimento operacional reutilizável" title="Link direto para Skills: conhecimento operacional reutilizável" translate="no">​</a></h2>
<p>Outro ponto essencial é o suporte a skills.</p>
<p>No OpenCode, skills são definidas por arquivos `SKILL.md`. Elas funcionam como instruções reutilizáveis que o agente pode carregar conforme a tarefa.</p>
<p>Esse detalhe é mais importante do que parece.</p>
<p>Na prática, uma skill transforma conhecimento tácito em procedimento executável pelo agente. Em vez de explicar toda vez como revisar uma API, como criar um changelog, como abrir um chamado ou como testar uma integração, a equipe documenta o procedimento uma vez e o agente passa a ter acesso a esse padrão.</p>
<p>Isso aproxima agentes de IA de algo que empresas já conhecem bem: procedimentos operacionais.</p>
<p>A diferença é que, agora, esses procedimentos não são apenas lidos por pessoas. Eles também podem orientar sistemas que executam trabalho.</p>
<p>Para empresas de engenharia, construção e tecnologia aplicada, esse é um ponto decisivo. O valor não está só em “usar IA”. Está em transformar padrões internos em instruções operáveis por agentes.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="modelos-gratuitos-o-laboratório-real-dos-agentes-de-código"><strong>Modelo</strong>s gratuitos: o laboratório real dos agentes de código<a href="https://arq-eng-tecnologia.drcgrupo.com/blog/Opencode#modelos-gratuitos-o-laborat%C3%B3rio-real-dos-agentes-de-c%C3%B3digo" class="hash-link" aria-label="Link direto para modelos-gratuitos-o-laboratório-real-dos-agentes-de-código" title="Link direto para modelos-gratuitos-o-laboratório-real-dos-agentes-de-código" translate="no">​</a></h2>
<p>Um dos aspectos mais interessantes do OpenCode é que ele não depende de um único modelo.</p>
<p>A documentação oficial de modelos afirma que o OpenCode suporta mais de 75 provedores e modelos locais. Além disso, existe o OpenCode Zen, uma camada opcional com uma lista curada de modelos testados pela equipe do OpenCode.</p>
<p>Na versão atual da documentação do Zen, os modelos listados como gratuitos por tempo limitado são:</p>
<table><thead><tr><th style="text-align:left">Modelo no OpenCode Zen</th><th style="text-align:left">ID de uso no OpenCode</th><th style="text-align:left">Condição indicada na documentação</th><th style="text-align:left">Leitura prática</th></tr></thead><tbody><tr><td style="text-align:left">Big Pickle</td><td style="text-align:left">opencode/big-pickle</td><td style="text-align:left">Gratuito por tempo limitado</td><td style="text-align:left">Modelo stealth; útil para experimentação, mas com menor transparência pública.</td></tr><tr><td style="text-align:left">Qwen3.6 Plus Free</td><td style="text-align:left">opencode/qwen3.6-plus-free</td><td style="text-align:left">Gratuito por tempo limitado</td><td style="text-align:left">Forte candidato para tarefas complexas, com benchmark público alto.</td></tr><tr><td style="text-align:left">Nemotron 3 Super Free</td><td style="text-align:left">opencode/nemotron-3-super-free</td><td style="text-align:left">Gratuito por tempo limitado</td><td style="text-align:left">Interessante para contexto grande e velocidade, mas exige atenção às condições do provedor.</td></tr><tr><td style="text-align:left">MiniMax M2.5 Free</td><td style="text-align:left">opencode/minimax-m2.5-free</td><td style="text-align:left">Gratuito por tempo limitado</td><td style="text-align:left">Bom equilíbrio entre inteligência, velocidade e custo quando comparado a modelos abertos.</td></tr></tbody></table>
<p>Essa lista é relevante porque mostra uma mudança importante: o futuro dos agentes não depende necessariamente de escolher um único modelo vencedor. Ele depende de orquestrar modelos diferentes para tarefas diferentes.</p>
<p>Nem toda tarefa precisa de um modelo frontier caro. Em muitos casos, o melhor modelo é aquele que resol<strong>ve bem o pro</strong>blema, responde rápido, custa pouco e opera dentro do nível de risco aceitável.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="comparando-modelos-gratuitos-com-proprietários">Comparando modelos gratuitos com proprietários<a href="https://arq-eng-tecnologia.drcgrupo.com/blog/Opencode#comparando-modelos-gratuitos-com-propriet%C3%A1rios" class="hash-link" aria-label="Link direto para Comparando modelos gratuitos com proprietários" title="Link direto para Comparando modelos gratuitos com proprietários" translate="no">​</a></h2>
<p>Benchmarks públicos ajudam a entender essa diferença.</p>
<p>O Artificial Analysis mede modelos em critérios como inteligência, velocidade, preço, janela de contexto e desempenho em tarefas agentivas. Nenhum benchmark deve ser lido como verdade absoluta, mas eles ajudam a comparar ordens de grandeza.</p>
<p>Alguns dados atuais são especialmente úteis para pensar o OpenCode:</p>
<table><thead><tr><th style="text-align:left">Modelo</th><th style="text-align:left">Tipo</th><th style="text-align:left">Índice Artificial Analysis</th><th style="text-align:left">Velocidade</th><th style="text-align:left">Preço de referência</th><th style="text-align:left">Observação editorial</th></tr></thead><tbody><tr><td style="text-align:left">Gemini 3.1 Pro Preview</td><td style="text-align:left">Proprietário</td><td style="text-align:left">57</td><td style="text-align:left">121,4 tokens/s</td><td style="text-align:left">US$ 2 input / US$ 12 output por 1M tokens</td><td style="text-align:left">Muito forte, multimodal e com contexto de 1M tokens.</td></tr><tr><td style="text-align:left">GPT-5.3 Codex xhigh</td><td style="text-align:left">Proprietário</td><td style="text-align:left">54</td><td style="text-align:left">68,8 tokens/s</td><td style="text-align:left">US$ 1,75 input / US$ 14 output por 1M tokens</td><td style="text-align:left">Modelo proprietário forte para coding agentivo.</td></tr><tr><td style="text-align:left">Qwen3.6 Plus</td><td style="text-align:left">Provedor aberto / modelo competitivo</td><td style="text-align:left">50</td><td style="text-align:left">53,4 tokens/s</td><td style="text-align:left">US$ 0,50 input / US$ 3 output por 1M tokens</td><td style="text-align:left">Muito competitivo, mas verboso e mais lento.</td></tr><tr><td style="text-align:left">GLM-5 Reasoning</td><td style="text-align:left">Open weights</td><td style="text-align:left">50</td><td style="text-align:left">75,7 tokens/s</td><td style="text-align:left">US$ 1 input / US$ 3,20 output por 1M tokens</td><td style="text-align:left">Forte em inteligência; referência útil para comparação com o ecossistema aberto.</td></tr><tr><td style="text-align:left">Claude Opus 4.6 High Effort</td><td style="text-align:left">Proprietário</td><td style="text-align:left">46</td><td style="text-align:left">38,2 tokens/s</td><td style="text-align:left">US$ 5 input / US$ 25 output por 1M tokens</td><td style="text-align:left">Alta inteligência, mas caro e mais lento.</td></tr><tr><td style="text-align:left">MiniMax M2.5</td><td style="text-align:left">Open weights</td><td style="text-align:left">42</td><td style="text-align:left">92,3 tokens/s</td><td style="text-align:left">US$ 0,30 input / US$ 1,20 output por 1M tokens</td><td style="text-align:left">Excelente equilíbrio para uso operacional.</td></tr><tr><td style="text-align:left">Nemotron 3 Super</td><td style="text-align:left">Open weights / NVIDIA</td><td style="text-align:left">36</td><td style="text-align:left">172,8 tokens/s</td><td style="text-align:left">US$ 0,30 input / US$ 0,75 output por 1M tokens</td><td style="text-align:left">Muito rápido, contexto de 1M tokens e perfil interessante para tarefas longas.</td></tr><tr><td style="text-align:left">GPT-5.4 xhigh</td><td style="text-align:left">Proprietário</td><td style="text-align:left">57</td><td style="text-align:left">81,8 tokens/s</td><td style="text-align:left">US$ 2,50 input / US$ 15 output por 1M tokens</td><td style="text-align:left">Fronteira proprietária forte; mais barato que GPT-5.5, mas ainda caro e muito verbose.</td></tr><tr><td style="text-align:left">Claude Opus 4.7 Max</td><td style="text-align:left">Proprietário</td><td style="text-align:left">57</td><td style="text-align:left">47,4 tokens/s</td><td style="text-align:left">US$ 5 input / US$ 25 output por 1M tokens</td><td style="text-align:left">Fronteira proprietária muito forte; caro, lento e muito verbose.</td></tr><tr><td style="text-align:left">GPT-5.5 xhigh</td><td style="text-align:left">Proprietário</td><td style="text-align:left">60</td><td style="text-align:left">67,5 tokens/s</td><td style="text-align:left">US$ 5 input / US$ 30 output por 1M tokens</td><td style="text-align:left">Líder de inteligência na amostra atual; caro, verbose e com TTFT alto.</td></tr><tr><td style="text-align:left">Kimi K2.5</td><td style="text-align:left">Pago de baixo custo / Open weights</td><td style="text-align:left">47</td><td style="text-align:left">35,7 tokens/s</td><td style="text-align:left">US$ 0,60 input / US$ 3 output por 1M tokens</td><td style="text-align:left">Pago de baixo custo no Zen; forte custo-benefício frente aos proprietários, mas lento e verboso.</td></tr><tr><td style="text-align:left">Kimi K2.6</td><td style="text-align:left">Pago de baixo custo / Open weights</td><td style="text-align:left">54</td><td style="text-align:left">39,0 tokens/s</td><td style="text-align:left">US$ 0,95 input / US$ 4 output por 1M tokens</td><td style="text-align:left">Pago de baixo custo; salto relevante de inteligência sobre K2.5, mas mais lento e mais verboso.</td></tr><tr><td style="text-align:left">GLM 5.1</td><td style="text-align:left">Pago de baixo custo / Open weights</td><td style="text-align:left">51</td><td style="text-align:left">48,5 tokens/s</td><td style="text-align:left">US$ 1,40 input / US$ 4,40 output por 1M tokens</td><td style="text-align:left">Modelo pago de baixo custo no Zen; inteligência alta, contexto grande, mas mais caro que GLM 5 e bastante verboso.</td></tr></tbody></table>
<p>A leitura mais interessante não é “gratuitos vencem proprietários” ou “proprietários continuam melhores”. Essa dicotomia é pobre.</p>
<p>A leitura correta é outra:</p>
<p>&gt; Modelos gratuitos ou de baixo custo já são bons o bastante para ocupar uma parte grande da camada operacional do trabalho agentivo.</p>
<p>Eles podem ser suficientes para:</p>
<p>- explorar uma base de código;<br>
<!-- -->- explicar arquivos;<br>
<!-- -->- gerar scripts auxiliares;<br>
<!-- -->- sugerir refatorações;<br>
<!-- -->- escrever documentação;<br>
<!-- -->- fazer triagem de erros;<br>
<!-- -->- operar tarefas repetitivas;<br>
<!-- -->- atuar como subagentes especializados.</p>
<p>Já modelos proprietários de fronteira continuam fazendo sentido para decisões mais críticas, raciocínio mais difícil, tarefas longas, ambiguidades relevantes ou contextos em que a taxa de erro precisa ser menor.</p>
<p>O ponto é que uma arquitetura madura de agentes não precisa escolher apenas um dos caminhos. Ela pode combinar.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="o-que-cada-modelo-gratuito-sugere-na-prática">O que cada modelo gratuito sugere na prática<a href="https://arq-eng-tecnologia.drcgrupo.com/blog/Opencode#o-que-cada-modelo-gratuito-sugere-na-pr%C3%A1tica" class="hash-link" aria-label="Link direto para O que cada modelo gratuito sugere na prática" title="Link direto para O que cada modelo gratuito sugere na prática" translate="no">​</a></h2>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="qwen36-plus-free">Qwen3.6 Plus Free<a href="https://arq-eng-tecnologia.drcgrupo.com/blog/Opencode#qwen36-plus-free" class="hash-link" aria-label="Link direto para Qwen3.6 Plus Free" title="Link direto para Qwen3.6 Plus Free" translate="no">​</a></h3>
<p>O Qwen3.6 Plus aparece no Artificial Analysis com índice 50, contexto de 1M tokens e suporte a texto, imagem e vídeo como entrada. No OpenCode Zen, sua variante Free aparece como gratuita por tempo limitado.</p>
<p>Isso o torna um candidato forte para tarefas mais complexas, especialmente quando o contexto é grande. A ressalva prática é que ele aparece como mais lento e muito verboso. Para um agente de terminal, isso pode ser bom em planejamento, mas ruim quando a tarefa pede ciclos rápidos.</p>
<p>Uso recomendado:</p>
<p>- planejamento de mudanças grandes;<br>
<!-- -->- leitura de contexto extenso;<br>
<!-- -->- comparação de alternativas técnicas;<br>
<!-- -->- revisão de arquitetura;<br>
<!-- -->- análise de documentação longa.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="minimax-m25-free">MiniMax M2.5 Free<a href="https://arq-eng-tecnologia.drcgrupo.com/blog/Opencode#minimax-m25-free" class="hash-link" aria-label="Link direto para MiniMax M2.5 Free" title="Link direto para MiniMax M2.5 Free" translate="no">​</a></h3>
<p>O MiniMax M2.5 aparece no <em>Artifici</em>al Analysis com índice 42, velocidade de 92,3 tokens/s, contexto de 205k tokens e licença MIT. A documentação do OpenCode Zen lista a variante MiniMax M2.5 Free como gratuita por tempo limitado.</p>
<p>O perfil é muito interessante para uso operacional: não é o maior índice da lista, mas combina bom desempenho, boa velocidade e preço de referência baixo.</p>
<p>Uso recomendado:</p>
<p>- exploração de base de código;<br>
<!-- -->- refatorações controladas;<br>
<!-- -->- geração de scripts;<br>
<!-- -->- documentação;<br>
<!-- -->- tarefas de rotina com boa relação entre qualidade e velocidade.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="nemotron-3-super-free">Nemotron 3 Super Free<a href="https://arq-eng-tecnologia.drcgrupo.com/blog/Opencode#nemotron-3-super-free" class="hash-link" aria-label="Link direto para Nemotron 3 Super Free" title="Link direto para Nemotron 3 Super Free" translate="no">​</a></h3>
<p>O Nemotron 3 Super aparece no Artificial Analysis com índice 36, velocidade de 172,8 tokens/s e contexto de 1M tokens. A variante Free aparece no OpenCode Zen como gratuita por tempo limitado.</p>
<p>O ponto forte é claro: velocidade e contexto. Isso pode ser muito útil quando o agente precisa ler muito material, resumir, classificar, navegar em logs ou operar tarefas menos ambíguas.</p>
<p>Uso recomendado:</p>
<p>- leitura de arquivos grandes;<br>
<!-- -->- triagem de logs;<br>
<!-- -->- sumarização operacional;<br>
<!-- -->- classificação de tarefas;<br>
<!-- -->- exploração ampla antes de passar para um modelo mais forte.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="big-pickle">Big Pickle<a href="https://arq-eng-tecnologia.drcgrupo.com/blog/Opencode#big-pickle" class="hash-link" aria-label="Link direto para Big Pickle" title="Link direto para Big Pickle" translate="no">​</a></h3>
<p>O Big Pickle é descrito na documentação do OpenCode Zen como um modelo stealth gratuito por tempo limitado. Isso significa que ele pode ser útil para teste e experimentação, mas não oferece a mesma transparência pública de um modelo com página clara de benchmark, especificações e comparativos.</p>
<p>Uso recomendado:</p>
<p>- testes não sensíveis;<br>
<!-- -->- experimentação;<br>
<!-- -->- tarefas descartáveis;<br>
<!-- -->- avaliação interna antes de adoção.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="gratuito-não-significa-sem-custo">Gratuito não significa sem custo<a href="https://arq-eng-tecnologia.drcgrupo.com/blog/Opencode#gratuito-n%C3%A3o-significa-sem-custo" class="hash-link" aria-label="Link direto para Gratuito não significa sem custo" title="Link direto para Gratuito não significa sem custo" translate="no">​</a></h2>
<p>Existe uma armadilha comum na adoção de modelos gratuitos: confundir preço zero com risco zero.</p>
<p>A própria documentação do OpenCode Zen informa que os modelos gratuitos estão disponíveis por tempo limitado e que, durante esse período, dados podem ser usados para melhoria do modelo em alguns casos. A seção de privacidade também diferencia a política geral dos provedores e as exceções aplicáveis aos modelos gratuitos.</p>
<p>Isso exige uma regra prática clara:</p>
<p>&gt; Modelo gratuito é excelente para experimentação, código aberto, automações não sensíveis e tarefas de baixo risco. Para código proprietário, contratos, dados de cliente, chaves, logs internos e decisões críticas, use modelos com política adequada de retenção e privacidade — ou modelos locais.</p>
<p>Essa discussão é central para qualquer empresa que queira usar agentes de IA de forma profissional.</p>
<p>O problema não é usar modelos gratuitos. O problema é usá-los sem classificação de dados, sem governança e sem distinção entre ambiente de teste e ambiente sensível.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="o-que-isso-ensina-além-da-programação">O que isso ensina além da programação<a href="https://arq-eng-tecnologia.drcgrupo.com/blog/Opencode#o-que-isso-ensina-al%C3%A9m-da-programa%C3%A7%C3%A3o" class="hash-link" aria-label="Link direto para O que isso ensina além da programação" title="Link direto para O que isso ensina além da programação" translate="no">​</a></h2>
<p>Embora o OpenCode seja uma ferramenta para programação, sua importância vai além do código.</p>
<p>Ele mostra um desenho de arquitetura que pode ser aplicado a vários workflows técnicos:</p>
<p>1. o agente precisa conhecer o ambiente;<br>
<!-- -->2. precisa ter ferramentas;<br>
<!-- -->3. precisa operar com permissões;<br>
<!-- -->4. precisa seguir procedimentos;<br>
<!-- -->5. precisa deixar rastros;<br>
<!-- -->6. precisa alternar entre modelos conforme tarefa, custo e risco.</p>
<p>Esse modelo serve para pensar agentes em construção civil, engenharia, gestão de obras, suporte técnico, automação documental e operação de sistemas.</p>
<p>Imagine um fluxo de reuniões em uma empresa de engenharia. Hoje, uma pessoa escuta a reunião, extrai decisões, identifica tarefas, cria chamados, atribui responsáveis, registra prazos e atualiza sistemas.</p>
<p>Um agente operacional poderia apoiar esse fluxo se tivesse:</p>
<p>- acesso às transcrições;<br>
<!-- -->- skill para classificar demandas;<br>
<!-- -->- permissão para criar itens no sistema correto;<br>
<!-- -->- regra para diferenciar bug, melhoria, tarefa e projeto;<br>
<!-- -->- limite para não executar ações sensíveis sem revisão;<br>
<!-- -->- histórico de decisões anteriores;<br>
<!-- -->- integração com documentos, quadros e cronogramas.</p>
<p>Essa é a mesma lógica que o OpenCode aplica ao repositório de código.</p>
<p>O terminal, nesse sentido, é apenas um exemplo poderoso de ambiente operacional. O conceito maior é o agente atuando dentro do sistema onde o trabalho acontece.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="opencode-dentro-do-vs-code-além-do-terminal">OpenCode dentro do VS Code: além do terminal<a href="https://arq-eng-tecnologia.drcgrupo.com/blog/Opencode#opencode-dentro-do-vs-code-al%C3%A9m-do-terminal" class="hash-link" aria-label="Link direto para OpenCode dentro do VS Code: além do terminal" title="Link direto para OpenCode dentro do VS Code: além do terminal" translate="no">​</a></h2>
<h2></h2>
<p>Um cuidado importante neste artigo é não reduzir o OpenCode ao terminal. A própria documentação oficial descreve o OpenCode como disponível em três superfícies: interface de terminal, aplicação desktop e extensão para IDE. Isso muda a percepção da ferramenta.</p>
<p>No VS Code, Cursor e outros editores compatíveis, o OpenCode pode ser usado como uma extensão integrada ao fluxo do desenvolvedor. A documentação oficial explica que basta rodar `opencode` no terminal integrado para começar; a extensão pode ser instalada automaticamente nesse processo ou manualmente pelo marketplace.</p>
<p>Na prática, isso cria uma experiência híbrida: o agente continua usando a força operacional do terminal, mas passa a conversar com o contexto visual do editor. O desenvolvedor não precisa abandonar os arquivos abertos, a seleção atual, os atalhos do IDE ou a navegação do projeto.</p>
<img src="https://arq-eng-tecnologia.drcgrupo.com/img/blog/opencode/opencode-vs-code-interface.png" alt="Interface da extensão OpenCode no VS Code mostrando o painel do agente integrado ao editor" loading="lazy" style="max-width:100%;height:auto;border-radius:8px;display:block;margin:0 auto">
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="o-que-muda-no-uso-diário">O que muda no uso diário<a href="https://arq-eng-tecnologia.drcgrupo.com/blog/Opencode#o-que-muda-no-uso-di%C3%A1rio" class="hash-link" aria-label="Link direto para O que muda no uso diário" title="Link direto para O que muda no uso diário" translate="no">​</a></h3>
<p>A extensão oficial do OpenCode para VS Code adiciona alguns pontos importantes ao fluxo:</p>
<p>- lançamento rápido com `Cmd+Esc` no macOS ou `Ctrl+Esc` no Windows/Linux;<br>
<!-- -->- criação de nova sessão com `Cmd+Shift+Esc` ou `Ctrl+Shift+Esc`;<br>
<!-- -->- compartilhamento automático da seleção ou aba atual com o OpenCode;<br>
<!-- -->- atalhos para referência de arquivos, como `@File#L37-42`;<br>
<!-- -->- uso do terminal dividido para manter agente e código lado a lado.</p>
<p>Esse conjunto de recursos resolve um problema comum em agentes de código: o atrito de contexto. Em vez de copiar manualmente trechos de arquivo para uma conversa, o desenvolvedor pode referenciar o arquivo certo, a linha certa e a seleção certa a partir do próprio ambiente de trabalho.</p>
<p>Isso reforça a tese central do artigo: o valor do OpenCode não está apenas no modelo usado, mas na forma como ele aproxima agente, contexto e execução.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="openchamber-uma-camada-visual-para-o-ecossistema-opencode">OpenChamber: uma camada visual para o ecossistema OpenCode<a href="https://arq-eng-tecnologia.drcgrupo.com/blog/Opencode#openchamber-uma-camada-visual-para-o-ecossistema-opencode" class="hash-link" aria-label="Link direto para OpenChamber: uma camada visual para o ecossistema OpenCode" title="Link direto para OpenChamber: uma camada visual para o ecossistema OpenCode" translate="no">​</a></h3>
<p>Também vale citar o OpenChamber, um projeto complementar que se apresenta como uma interface desktop e web para o agente OpenCode. O projeto propõe uma experiência mais visual para revisar diffs, gerenciar agentes, acompanhar servidores de desenvolvimento e manter uma visão mais ampla enquanto a IA trabalha.</p>
<p>O ponto interessante do OpenChamber é que ele amplia a discussão além da oposição “terminal versus IDE”. Ele mostra que o ecossistema em volta do OpenCode está indo para múltiplas interfaces: terminal para operação direta, VS Code para o fluxo de edição, desktop/web para acompanhamento visual e até continuidade em outros dispositivos.</p>
<img src="https://arq-eng-tecnologia.drcgrupo.com/img/blog/opencode/openchamber-interface-visual.png" alt="Interface visual do OpenChamber mostrando painel de chat, sessões e revisão de diffs" loading="lazy" style="max-width:100%;height:auto;border-radius:8px;display:block;margin:0 auto">
<p>Para o artigo, essa seção é importante porque evita uma leitura limitada: OpenCode não é apenas uma TUI para quem gosta de terminal. Ele é uma base agentiva que pode aparecer em vários pontos do fluxo de desenvolvimento.</p>
<p>O terminal continua sendo a metáfora mais forte, mas o VS Code torna a adoção mais natural para equipes que já trabalham em IDEs. E ferramentas como OpenChamber sinalizam uma direção ainda mais ampla: agentes de código operando com múltiplas interfaces, do terminal à tela visual de revisão.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="-1"><a href="https://arq-eng-tecnologia.drcgrupo.com/blog/Opencode#-1" class="hash-link" aria-label="Link direto para -1" title="Link direto para -1" translate="no">​</a></h2>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="o-terminal-como-metáfora">O terminal como metáfora<a href="https://arq-eng-tecnologia.drcgrupo.com/blog/Opencode#o-terminal-como-met%C3%A1fora" class="hash-link" aria-label="Link direto para O terminal como metáfora" title="Link direto para O terminal como metáfora" translate="no">​</a></h2>
<p>O terminal sempre foi uma interface de poder. Ele concentra comandos, arquivos, automações, logs e operações críticas. Colocar um agente ali é simbólico: a IA deixa de ser uma janela separada e passa a habitar a camada de execução.</p>
<p>Mas isso também explica por que agentes precisam de disciplina.</p>
<p>Um erro em uma resposta de chat pode ser irritante. Um erro em um agente com permissão de escrita pode alterar arquivos, apagar dados, executar comandos indevidos ou criar registros incorretos.</p>
<p>Por isso, a evolução dos agentes deve vir acompanhada de práticas como:</p>
<p>- modo de planejamento antes da execução;<br>
<!-- -->- permissões por tipo de ação;<br>
<!-- -->- revisão de diff;<br>
<!-- -->- isolamento de ambiente;<br>
<!-- -->- classificação de dados;<br>
<!-- -->- logs de decisão;<br>
<!-- -->- limites para comandos destrutivos;<br>
<!-- -->- separação entre agente leitor, planejador e executor.</p>
<p>Produtividade sem governança é dívida operacional.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="o-papel-dos-modelos-locais">O papel dos modelos locais<a href="https://arq-eng-tecnologia.drcgrupo.com/blog/Opencode#o-papel-dos-modelos-locais" class="hash-link" aria-label="Link direto para O papel dos modelos locais" title="Link direto para O papel dos modelos locais" translate="no">​</a></h2>
<p>Outro ponto relevante é o suporte a modelos locais.</p>
<p>Modelos locais não são sempre melhores, mais rápidos ou mais inteligentes. Mas eles resolvem uma dimensão importante: controle.</p>
<p>Para certas empresas, especialmente quando há dados confidenciais, contratos, informações de clientes ou propriedade intelectual, a possibilidade de executar modelos em ambiente controlado pode ser decisiva.</p>
<p>Em uma arquitetura madura, modelos locais podem ser usados para:</p>
<p>- triagem de documentos sensíveis;<br>
<!-- -->- tarefas repetitivas de baixo risco;<br>
<!-- -->- classificação interna;<br>
<!-- -->- geração preliminar;<br>
<!-- -->- apoio offline;<br>
<!-- -->- ambientes em que privacidade pesa mais que performance máxima.</p>
<p>Já modelos externos podem ser reservados para tarefas em que a qualidade do raciocínio ou a capacidade agentiva justifique o envio de dados previamente classificados como permitidos.</p>
<p>A decisão deixa de ser ideológica e passa a ser arquitetural.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="a-nova-pergunta-qual-agente-com-qual-modelo-para-qual-tarefa">A nova pergunta: qual agente, com qual modelo, para qual tarefa?<a href="https://arq-eng-tecnologia.drcgrupo.com/blog/Opencode#a-nova-pergunta-qual-agente-com-qual-modelo-para-qual-tarefa" class="hash-link" aria-label="Link direto para A nova pergunta: qual agente, com qual modelo, para qual tarefa?" title="Link direto para A nova pergunta: qual agente, com qual modelo, para qual tarefa?" translate="no">​</a></h2>
<p>A discussão sobre IA ainda costuma girar em torno de rankings: qual modelo é melhor, qual responde mais rápido, qual tem o maior benchmark.</p>
<p>Esses rankings importam, mas são insuficientes.</p>
<p>Quando falamos de agentes, a pergunta correta é composta:</p>
<p>&gt; Qual agente, com qual permissão, usando qual modelo, sobre qual contexto, para executar qual tarefa, com qual nível de revisão?</p>
<p>Essa pergunta é muito mais próxima da realidade empresarial.</p>
<p>Um agente que apenas lê documentos pode usar uma configuração. Um agente que altera código precisa de outra. Um agente que cria chamados em um sistema de gestão precisa de regras específicas. Um agente que opera dados sensíveis precisa de restrições mais fortes.</p>
<p>O OpenCode é interessante porque torna essa discussão concreta. Ele mostra que a camada de agente não é apenas uma interface bonita em cima de um LLM. Ela é uma composição entre modelo, ferramenta, contexto, permissão e procedimento.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="riscos-e-limites">Riscos e limites<a href="https://arq-eng-tecnologia.drcgrupo.com/blog/Opencode#riscos-e-limites" class="hash-link" aria-label="Link direto para Riscos e limites" title="Link direto para Riscos e limites" translate="no">​</a></h2>
<p>Apesar do potencial, é importante não romantizar.</p>
<p>Agentes de código ainda erram. Eles podem interpretar mal uma base, criar soluções excessivamente complexas, quebrar testes, ignorar efeitos colaterais ou se perder em tarefas longas.</p>
<p>Modelos gratuitos podem mudar, sair do ar, alterar condições de uso ou deixar de ser gratuitos. Benchmarks podem não refletir um caso de uso específico. E a documentação de provedores muda com frequência.</p>
<p>Além disso, existe uma questão cultura<strong>l: equipes precisam aprender a delegar trabalho</strong> para agentes.</p>
<p>Delegar para IA não é escrever um prompt genérico e esperar mágica. É definir escopo, contexto, critérios de aceite, limites, permissões e forma de revisão.</p>
<p>A maturidade no uso de agentes será menos parecida com “usar um chatbot” e mais parecida com “gerenciar uma equipe operacional automatizada”.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="o-que-empresas-podem-aprender-com-o-opencode">O que empresas podem aprender com o OpenCode<a href="https://arq-eng-tecnologia.drcgrupo.com/blog/Opencode#o-que-empresas-podem-aprender-com-o-opencode" class="hash-link" aria-label="Link direto para O que empresas podem aprender com o OpenCode" title="Link direto para O que empresas podem aprender com o OpenCode" translate="no">​</a></h2>
<p>Mesmo para quem não programa, o OpenCode deixa algumas lições práticas.</p>
<p>A primeira é que agentes devem trabalhar dentro dos sistemas reais, não apenas responder fora deles.</p>
<p>A segunda é que procedimentos importam. Skills, instruções, padrões e permissões são parte da infraestrutura.</p>
<p>A terceira é que modelos são componentes substituíveis. O diferencial está na orquestração.</p>
<p>A quarta é que governança precisa nascer junto com produtividade. Não depois.</p>
<p>A quinta é que o ganho real vem da redução de atrito entre decisão e execução.</p>
<p>Essas lições são especialmente relevantes para setores como construção civil e engenharia, onde a operação é fragmentada entre reuniões, documentos, cronogramas, planilhas, sistemas de gestão, chamados e comunicação informal.</p>
<p>Nesses ambientes, o maior valor da IA pode não estar em “responder melhor”. Pode estar em transformar informação dispersa em ação registrada, rastreável e padronizada.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="conclusão">Conclusão<a href="https://arq-eng-tecnologia.drcgrupo.com/blog/Opencode#conclus%C3%A3o" class="hash-link" aria-label="Link direto para Conclusão" title="Link direto para Conclusão" translate="no">​</a></h2>
<p>O OpenCode é uma ferramenta de programação, mas também é um sinal de uma mudança maior.</p>
<p>A IA está saindo da i<strong>nterface de conversa e entrando nos ambientes operacionais. Ela começa a lidar com arquivos, comandos, ferram</strong>entas, permissões, modelos e procedimentos. Isso muda a natureza do trabalho.</p>
<p>O futuro dos agentes não será definido apenas pelo modelo mais inteligente. Será definido pela capacidade de combinar modelos, contexto, ferramentas e governança em fluxos reais.</p>
<p>O OpenCode mostra esse futuro em um lugar onde ele fica muito visível: o terminal de um desenvolvedor.</p>
<p>Mas a lógica vale muito além do terminal.</p>
<p>Toda empresa que depende de conhecimento técnico, processos repetíveis e sistemas fragmentados deve prestar atenção. Porque a próxima vantagem competitiva talvez não esteja em ter acesso à IA, mas em saber transformá-la em agente operacional — com contexto, permissão, procedimento e responsabilidade.</p>
<p>No fim, a pergunta não é se a IA consegue conversar sobre trabalho.</p>
<p>A pergunta é se ela consegue trabalhar dentro do fluxo certo, do jeito certo, com o controle certo.</p>
<p>É aí que a discussão começa a ficar realmente interessante.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="referências">Referências<a href="https://arq-eng-tecnologia.drcgrupo.com/blog/Opencode#refer%C3%AAncias" class="hash-link" aria-label="Link direto para Referências" title="Link direto para Referências" translate="no">​</a></h2>
<p>- Documentação oficial do OpenCode sobre modelos: <a href="https://opencode.ai/docs/models/" target="_blank" rel="noopener noreferrer" class="">https://opencode.ai/docs/models/</a><br>
<!-- -->- Documentação oficial do OpenCode Zen: <a href="https://opencode.ai/docs/zen/" target="_blank" rel="noopener noreferrer" class="">https://opencode.ai/docs/zen/</a><br>
<!-- -->- Artificial Analysis — Qwen3.6 Plus: <a href="https://artificialanalysis.ai/models/qwen3-6-plus" target="_blank" rel="noopener noreferrer" class="">https://artificialanalysis.ai/models/qwen3-6-plus</a><br>
<!-- -->- Artificial Analysis — MiniMax M2.5: <a href="https://artificialanalysis.ai/models/minimax-m2-5" target="_blank" rel="noopener noreferrer" class="">https://artificialanalysis.ai/models/minimax-m2-5</a><br>
<!-- -->- Artificial Analysis — NVIDIA Nemotron 3 Super: <a href="https://artificialanalysis.ai/models/nvidia-nemotron-3-super-120b-a12b" target="_blank" rel="noopener noreferrer" class="">https://artificialanalysis.ai/models/nvidia-nemotron-3-super-120b-a12b</a><br>
<!-- -->- Artificial Analysis — GLM-5 Reasoning: <a href="https://artificialanalysis.ai/models/glm-5" target="_blank" rel="noopener noreferrer" class="">https://artificialanalysis.ai/models/glm-5</a><br>
<!-- -->- Artificial Analysis — Gemini 3.1 Pro Preview: <a href="https://artificialanalysis.ai/models/gemini-3-1-pro-preview" target="_blank" rel="noopener noreferrer" class="">https://artificialanalysis.ai/models/gemini-3-1-pro-preview</a><br>
<!-- -->- Artificial Analysis — GPT-5.3 Codex: <a href="https://artificialanalysis.ai/models/gpt-5-3-codex" target="_blank" rel="noopener noreferrer" class="">https://artificialanalysis.ai/models/gpt-5-3-codex</a><br>
<!-- -->- Artificial Analysis — Claude Opus 4.6: <a href="https://artificialanalysis.ai/models/claude-opus-4-6" target="_blank" rel="noopener noreferrer" class="">https://artificialanalysis.ai/models/claude-opus-4-6</a><br>
<!-- -->- Documentação oficial do OpenCode sobre IDE: <a href="https://opencode.ai/docs/ide/" target="_blank" rel="noopener noreferrer" class="">https://opencode.ai/docs/ide/</a><br>
<!-- -->- OpenCode — Visual Studio Marketplace: <a href="https://marketplace.visualstudio.com/items?itemName=sst-dev.opencode" target="_blank" rel="noopener noreferrer" class="">https://marketplace.visualstudio.com/items?itemName=sst-dev.opencode</a><br>
<!-- -->- OpenChamber — repositório oficial: <a href="https://github.com/openchamber/openchamber" target="_blank" rel="noopener noreferrer" class="">https://github.com/openchamber/openchamber</a></p>]]></content>
    </entry>
    <entry>
        <title type="html"><![CDATA[Ambientes e instalação]]></title>
        <id>https://arq-eng-tecnologia.drcgrupo.com/blog/Ambientes e instalação</id>
        <link href="https://arq-eng-tecnologia.drcgrupo.com/blog/Ambientes e instalação"/>
        <updated>2026-03-25T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[Ambientes e softwares utilizados na aula: Google Antigravity IDE, Gemini CLI, Python, Node.js, biblioteca ifcopenshell, Google Apps Script com Google Planilhas.]]></summary>
        <content type="html"><![CDATA[<p>Ambientes e softwares utilizados na aula: Google Antigravity IDE, Gemini CLI, Python, Node.js, biblioteca ifcopenshell, Google Apps Script com Google Planilhas.</p>
<blockquote>
<p>⚙️ <strong>O ambiente de referência é sempre Windows.</strong></p>
</blockquote>
<hr>
<h1>Como instalar cada um — direto ao ponto e o porquê de cada passo</h1>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="1-python">1. Python<a href="https://arq-eng-tecnologia.drcgrupo.com/blog/Ambientes%20e%20instala%C3%A7%C3%A3o#1-python" class="hash-link" aria-label="Link direto para 1. Python" title="Link direto para 1. Python" translate="no">​</a></h2>
<ul>
<li class=""><strong>Download:</strong> <a href="http://python.org/downloads" target="_blank" rel="noopener noreferrer" class="">python.org/downloads</a> → versão 3.10 ou superior</li>
<li class=""><strong>Por quê:</strong> linguagem base para automações, scripts e uso de bibliotecas como ifcopenshell</li>
<li class="">Durante a instalação, marque ✅ <strong>"Add Python to PATH"</strong> — isso permite rodar <code>python</code> direto no terminal</li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="2-nodejs">2. Node.js<a href="https://arq-eng-tecnologia.drcgrupo.com/blog/Ambientes%20e%20instala%C3%A7%C3%A3o#2-nodejs" class="hash-link" aria-label="Link direto para 2. Node.js" title="Link direto para 2. Node.js" translate="no">​</a></h2>
<ul>
<li class=""><strong>Download:</strong> <a href="http://nodejs.org/" target="_blank" rel="noopener noreferrer" class="">nodejs.org</a> → versão LTS (mais estável)</li>
<li class=""><strong>Por quê:</strong> necessário para rodar ferramentas modernas de desenvolvimento, incluindo o Gemini CLI</li>
<li class="">Instale e verifique com <code>node -v</code> e <code>npm -v</code> no terminal</li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="3-gemini-cli">3. Gemini CLI<a href="https://arq-eng-tecnologia.drcgrupo.com/blog/Ambientes%20e%20instala%C3%A7%C3%A3o#3-gemini-cli" class="hash-link" aria-label="Link direto para 3. Gemini CLI" title="Link direto para 3. Gemini CLI" translate="no">​</a></h2>
<ul>
<li class="">Com Node.js instalado, rode no terminal:</li>
</ul>
<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#F8F8F2;background-color:#282A36"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#F8F8F2"><span class="token plain">npm install -g @google/gemini-cli</span><br></span></code></pre></div></div>
<ul>
<li class=""><strong>Por quê:</strong> permite usar a IA Gemini direto pelo terminal, integrado ao seu fluxo de trabalho</li>
<li class="">Autentique com sua conta Google: <code>gemini auth login</code></li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="4-biblioteca-ifcopenshell-python">4. Biblioteca ifcopenshell (Python)<a href="https://arq-eng-tecnologia.drcgrupo.com/blog/Ambientes%20e%20instala%C3%A7%C3%A3o#4-biblioteca-ifcopenshell-python" class="hash-link" aria-label="Link direto para 4. Biblioteca ifcopenshell (Python)" title="Link direto para 4. Biblioteca ifcopenshell (Python)" translate="no">​</a></h2>
<ul>
<li class="">Com Python instalado, rode:</li>
</ul>
<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#F8F8F2;background-color:#282A36"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#F8F8F2"><span class="token plain">pip install ifcopenshell</span><br></span></code></pre></div></div>
<ul>
<li class=""><strong>Por quê:</strong> permite ler, criar e manipular arquivos IFC (formato aberto BIM) via script Python</li>
<li class="">Verifique a instalação: <code>python -c "import ifcopenshell; print(ifcopenshell.version)"</code></li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="5-google-apps-script--google-planilhas">5. Google Apps Script + Google Planilhas<a href="https://arq-eng-tecnologia.drcgrupo.com/blog/Ambientes%20e%20instala%C3%A7%C3%A3o#5-google-apps-script--google-planilhas" class="hash-link" aria-label="Link direto para 5. Google Apps Script + Google Planilhas" title="Link direto para 5. Google Apps Script + Google Planilhas" translate="no">​</a></h2>
<ul>
<li class=""><strong>Acesso:</strong> abra uma planilha no Google Sheets → menu <strong>Extensões → Apps Script</strong></li>
<li class=""><strong>Por quê:</strong> permite automatizar tarefas dentro do ecossistema Google (enviar e-mails, preencher planilhas, criar relatórios) sem instalar nada</li>
<li class="">Não requer instalação local — roda 100% no navegador</li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="6-google-antigravity-ide">6. Google Antigravity IDE<a href="https://arq-eng-tecnologia.drcgrupo.com/blog/Ambientes%20e%20instala%C3%A7%C3%A3o#6-google-antigravity-ide" class="hash-link" aria-label="Link direto para 6. Google Antigravity IDE" title="Link direto para 6. Google Antigravity IDE" translate="no">​</a></h2>
<ul>
<li class=""><strong>Download:</strong> <a href="http://antigravity.google/" target="_blank" rel="noopener noreferrer" class="">antigravity.google</a> → disponível para Windows (preview gratuito)</li>
<li class=""><strong>Por quê:</strong> IDE de nova geração do Google, focada em agentes de IA. É um fork do VS Code, então a interface já é familiar. Permite orquestrar múltiplos agentes de IA trabalhando em paralelo no seu código</li>
<li class="">Instale como qualquer programa Windows (.exe), abra e faça login com sua conta Google</li>
<li class=""><strong>Modelos disponíveis gratuitamente:</strong> Gemini 3.1 Pro e Claude Sonnet</li>
<li class=""><strong>Diferencial:</strong> em vez de um chat na barra lateral, você gerencia agentes autônomos que executam tarefas completas — você age como arquiteto, eles executam</li>
</ul>
<hr>
<h1>Básico de terminal no Windows (CMD / PowerShell)</h1>
<p><strong>Por quê usar o terminal?</strong> A maioria das instalações e comandos desta aula são feitos pelo terminal.</p>
<p><strong>Como abrir:</strong></p>
<ul>
<li class="">Pressione <code>Windows + R</code>, digite <code>powershell</code> e Enter</li>
<li class="">Ou pesquise <strong>PowerShell</strong> no menu Iniciar → clique com botão direito → <strong>Executar como administrador</strong> (necessário para instalações)</li>
</ul>
<p><strong>Comandos essenciais:</strong></p>
<table><thead><tr><th>Comando</th><th>O que faz</th></tr></thead><tbody><tr><td><code>cd nomeDaPasta</code></td><td>Entra em uma pasta</td></tr><tr><td><code>cd ..</code></td><td>Volta uma pasta</td></tr><tr><td><code>dir</code></td><td>Lista arquivos na pasta atual</td></tr><tr><td><code>cls</code></td><td>Limpa a tela</td></tr><tr><td><code>python --version</code></td><td>Verifica se Python está instalado</td></tr><tr><td><code>node -v</code></td><td>Verifica se Node.js está instalado</td></tr><tr><td><code>pip install nome</code></td><td>Instala biblioteca Python</td></tr><tr><td><code>npm install -g nome</code></td><td>Instala ferramenta Node.js globalmente</td></tr></tbody></table>
<p><strong>Dicas importantes:</strong></p>
<ul>
<li class="">Após instalar qualquer programa, <strong>feche e reabra o terminal</strong> — ele não atualiza automaticamente</li>
<li class="">Quando aparecer erro, leia a última linha: geralmente diz exatamente o problema</li>
<li class="">Para colar no terminal Windows: clique com o <strong>botão direito do mouse</strong></li>
</ul>
<hr>
<h1>Troubleshootings comuns</h1>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="python">Python<a href="https://arq-eng-tecnologia.drcgrupo.com/blog/Ambientes%20e%20instala%C3%A7%C3%A3o#python" class="hash-link" aria-label="Link direto para Python" title="Link direto para Python" translate="no">​</a></h2>
<ul>
<li class=""><strong><code>python</code> não reconhecido no terminal</strong> → reinstale marcando "Add Python to PATH" ou adicione manualmente nas variáveis de ambiente do sistema</li>
<li class=""><strong><code>pip</code> não encontrado</strong> → use <code>python -m pip install ...</code> em vez de só <code>pip</code></li>
<li class=""><strong>Versões conflitantes</strong> → use <code>python3</code> e <code>pip3</code> se houver Python 2 e 3 instalados</li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="nodejs--npm">Node.js / npm<a href="https://arq-eng-tecnologia.drcgrupo.com/blog/Ambientes%20e%20instala%C3%A7%C3%A3o#nodejs--npm" class="hash-link" aria-label="Link direto para Node.js / npm" title="Link direto para Node.js / npm" translate="no">​</a></h2>
<ul>
<li class=""><strong>Erro de permissão no npm</strong> → no Windows, abra o terminal como Administrador</li>
<li class=""><strong><code>node</code> não reconhecido</strong> → reinicie o terminal após a instalação</li>
<li class=""><strong>Versão antiga</strong> → desinstale e baixe a LTS mais recente do site oficial</li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="gemini-cli">Gemini CLI<a href="https://arq-eng-tecnologia.drcgrupo.com/blog/Ambientes%20e%20instala%C3%A7%C3%A3o#gemini-cli" class="hash-link" aria-label="Link direto para Gemini CLI" title="Link direto para Gemini CLI" translate="no">​</a></h2>
<ul>
<li class=""><strong>Erro de autenticação</strong> → rode <code>gemini auth login</code> novamente e certifique-se de usar a conta Google correta</li>
<li class=""><strong>Comando não encontrado após instalar</strong> → feche e reabra o terminal</li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="ifcopenshell">ifcopenshell<a href="https://arq-eng-tecnologia.drcgrupo.com/blog/Ambientes%20e%20instala%C3%A7%C3%A3o#ifcopenshell" class="hash-link" aria-label="Link direto para ifcopenshell" title="Link direto para ifcopenshell" translate="no">​</a></h2>
<ul>
<li class=""><strong>Erro ao importar</strong> → verifique se instalou no Python correto (<code>python -m pip install ifcopenshell</code>)</li>
<li class=""><strong>Versão incompatível com Python</strong> → use Python 3.10 ou 3.11 para maior compatibilidade</li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="google-apps-script">Google Apps Script<a href="https://arq-eng-tecnologia.drcgrupo.com/blog/Ambientes%20e%20instala%C3%A7%C3%A3o#google-apps-script" class="hash-link" aria-label="Link direto para Google Apps Script" title="Link direto para Google Apps Script" translate="no">​</a></h2>
<ul>
<li class=""><strong>Script não salvo</strong> → use Ctrl+S ou clique no ícone de disquete antes de rodar</li>
<li class=""><strong>Erro de autorização</strong> → na primeira execução, o Google pede permissão; clique em "Permitir" após revisar os escopos</li>
<li class=""><strong>Cota excedida</strong> → o Apps Script tem limites diários gratuitos; espaçe as execuções ou use conta Google Workspace</li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="google-antigravity">Google Antigravity<a href="https://arq-eng-tecnologia.drcgrupo.com/blog/Ambientes%20e%20instala%C3%A7%C3%A3o#google-antigravity" class="hash-link" aria-label="Link direto para Google Antigravity" title="Link direto para Google Antigravity" translate="no">​</a></h2>
<ul>
<li class=""><strong>Erro de login</strong> → tente fechar e reabrir; se persistir, aguarde alguns minutos (pode ser instabilidade do servidor Google)</li>
<li class=""><strong>"You need to set up a workspace"</strong> → abra uma pasta local pelo menu File → Open Folder antes de usar o agente</li>
<li class=""><strong>Extensões do VS Code não aparecem</strong> → por ser um fork, a maioria das extensões é compatível; instale normalmente pela aba Extensions</li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="terminal-windows-geral">Terminal Windows (geral)<a href="https://arq-eng-tecnologia.drcgrupo.com/blog/Ambientes%20e%20instala%C3%A7%C3%A3o#terminal-windows-geral" class="hash-link" aria-label="Link direto para Terminal Windows (geral)" title="Link direto para Terminal Windows (geral)" translate="no">​</a></h2>
<ul>
<li class=""><strong>Comando não reconhecido após instalar</strong> → feche e reabra o terminal</li>
<li class=""><strong>Acesso negado / Permission denied</strong> → execute o PowerShell como Administrador</li>
<li class=""><strong>Erro ao colar comando</strong> → use botão direito do mouse para colar no CMD/PowerShell</li>
</ul>]]></content>
    </entry>
    <entry>
        <title type="html"><![CDATA[Git — controle de versões para quem nunca usou]]></title>
        <id>https://arq-eng-tecnologia.drcgrupo.com/blog/Git — controle de versões para quem nunca usou</id>
        <link href="https://arq-eng-tecnologia.drcgrupo.com/blog/Git — controle de versões para quem nunca usou"/>
        <updated>2026-03-25T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[Git é um sistema que salva o histórico de tudo que você faz no seu projeto. Pense nele como um "Ctrl+Z infinito com etiquetas" — você pode voltar a qualquer versão anterior do seu código a qualquer momento.]]></summary>
        <content type="html"><![CDATA[<p>Git é um sistema que salva o histórico de tudo que você faz no seu projeto. Pense nele como um <strong>"Ctrl+Z infinito com etiquetas"</strong> — você pode voltar a qualquer versão anterior do seu código a qualquer momento.</p>
<p>Para engenheiros e arquitetos: é como ter todas as revisões de um projeto (Rev A, Rev B, Rev C...) organizadas automaticamente, sem precisar renomear arquivos.</p>
<aside><p>ℹ️</p><p>O Git funciona igual no <strong>Antigravity IDE</strong> e no <strong>VS Code</strong> — a interface de controle de versões é a mesma nos dois, pois o Antigravity é um fork do VS Code.</p></aside>
<hr>
<h1>Instalação</h1>
<ul>
<li class=""><strong>Download:</strong> <a href="http://git-scm.com/download/win" target="_blank" rel="noopener noreferrer" class="">git-scm.com/download/win</a></li>
<li class="">Instale com as opções padrão — não precisa mudar nada</li>
<li class="">Verifique: abra o PowerShell e rode <code>git --version</code></li>
</ul>
<hr>
<h1>Conceitos fundamentais (sem enrolação)</h1>
<table><thead><tr><th>Termo</th><th>O que significa na prática</th></tr></thead><tbody><tr><td><strong>Repositório (repo)</strong></td><td>A pasta do projeto com o histórico salvo pelo Git</td></tr><tr><td><strong>Commit</strong></td><td>Um "save" com descrição do que foi feito (como uma revisão do projeto)</td></tr><tr><td><strong>Branch</strong></td><td>Uma linha paralela de desenvolvimento (ex: testar algo sem afetar o principal)</td></tr><tr><td><strong>Merge</strong></td><td>Juntar uma branch de volta à principal</td></tr><tr><td><strong>GitHub / GitLab</strong></td><td>Serviços online para guardar e compartilhar repositórios</td></tr><tr><td><strong>Push</strong></td><td>Enviar seus commits para o repositório online</td></tr><tr><td><strong>Pull</strong></td><td>Baixar commits novos do repositório online</td></tr><tr><td><strong>Clone</strong></td><td>Baixar um repositório completo pela primeira vez</td></tr></tbody></table>
<hr>
<h1>Fluxo básico do dia a dia</h1>
<div class="language-text codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#F8F8F2;background-color:#282A36"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#F8F8F2"><span class="token plain">Você faz alterações nos arquivos</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">         ↓</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">git add . (marca os arquivos para salvar)</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">         ↓</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">git commit -m "descrição do que foi feito"</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">         ↓</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">git push (envia para o GitHub, opcional)</span><br></span></code></pre></div></div>
<hr>
<h1>Comandos essenciais no terminal</h1>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="configuração-inicial-faça-uma-vez-só">Configuração inicial (faça uma vez só)<a href="https://arq-eng-tecnologia.drcgrupo.com/blog/Git%20%E2%80%94%20controle%20de%20vers%C3%B5es%20para%20quem%20nunca%20usou#configura%C3%A7%C3%A3o-inicial-fa%C3%A7a-uma-vez-s%C3%B3" class="hash-link" aria-label="Link direto para Configuração inicial (faça uma vez só)" title="Link direto para Configuração inicial (faça uma vez só)" translate="no">​</a></h2>
<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#F8F8F2;background-color:#282A36"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#F8F8F2"><span class="token plain">git config --global user.name "Seu Nome"</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">git config --global user.email "seu@email.com"</span><br></span></code></pre></div></div>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="iniciar-um-projeto-novo-com-git">Iniciar um projeto novo com Git<a href="https://arq-eng-tecnologia.drcgrupo.com/blog/Git%20%E2%80%94%20controle%20de%20vers%C3%B5es%20para%20quem%20nunca%20usou#iniciar-um-projeto-novo-com-git" class="hash-link" aria-label="Link direto para Iniciar um projeto novo com Git" title="Link direto para Iniciar um projeto novo com Git" translate="no">​</a></h2>
<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#F8F8F2;background-color:#282A36"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#F8F8F2"><span class="token plain"># Dentro da pasta do projeto:</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">git init</span><br></span></code></pre></div></div>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="salvar-o-progresso-commit">Salvar o progresso (commit)<a href="https://arq-eng-tecnologia.drcgrupo.com/blog/Git%20%E2%80%94%20controle%20de%20vers%C3%B5es%20para%20quem%20nunca%20usou#salvar-o-progresso-commit" class="hash-link" aria-label="Link direto para Salvar o progresso (commit)" title="Link direto para Salvar o progresso (commit)" translate="no">​</a></h2>
<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#F8F8F2;background-color:#282A36"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#F8F8F2"><span class="token plain"># Ver o que mudou</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">git status</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"># Marcar todos os arquivos modificados</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">git add .</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"># Salvar com descrição</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">git commit -m "adiciona script de leitura IFC"</span><br></span></code></pre></div></div>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="ver-o-histórico">Ver o histórico<a href="https://arq-eng-tecnologia.drcgrupo.com/blog/Git%20%E2%80%94%20controle%20de%20vers%C3%B5es%20para%20quem%20nunca%20usou#ver-o-hist%C3%B3rico" class="hash-link" aria-label="Link direto para Ver o histórico" title="Link direto para Ver o histórico" translate="no">​</a></h2>
<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#F8F8F2;background-color:#282A36"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#F8F8F2"><span class="token plain">git log --oneline</span><br></span></code></pre></div></div>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="voltar-para-uma-versão-anterior-sem-apagar-nada">Voltar para uma versão anterior (sem apagar nada)<a href="https://arq-eng-tecnologia.drcgrupo.com/blog/Git%20%E2%80%94%20controle%20de%20vers%C3%B5es%20para%20quem%20nunca%20usou#voltar-para-uma-vers%C3%A3o-anterior-sem-apagar-nada" class="hash-link" aria-label="Link direto para Voltar para uma versão anterior (sem apagar nada)" title="Link direto para Voltar para uma versão anterior (sem apagar nada)" translate="no">​</a></h2>
<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#F8F8F2;background-color:#282A36"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#F8F8F2"><span class="token plain"># Copie o código do commit que quer ver (ex: a3f5c12)</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">git checkout a3f5c12</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"># Para voltar ao estado atual:</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">git checkout main</span><br></span></code></pre></div></div>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="trabalhar-com-github">Trabalhar com GitHub<a href="https://arq-eng-tecnologia.drcgrupo.com/blog/Git%20%E2%80%94%20controle%20de%20vers%C3%B5es%20para%20quem%20nunca%20usou#trabalhar-com-github" class="hash-link" aria-label="Link direto para Trabalhar com GitHub" title="Link direto para Trabalhar com GitHub" translate="no">​</a></h2>
<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#F8F8F2;background-color:#282A36"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#F8F8F2"><span class="token plain"># Conectar seu projeto local a um repositório do GitHub</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">git remote add origin https://github.com/seu-usuario/seu-repositorio.git</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"># Enviar pela primeira vez</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">git push -u origin main</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"># Enviar depois (mais simples)</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">git push</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"># Baixar atualizações</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">git pull</span><br></span></code></pre></div></div>
<hr>
<h1>Usando Git pelo Antigravity IDE e VS Code (sem digitar comandos)</h1>
<p>Tanto o Antigravity quanto o VS Code têm uma interface visual para o Git — você não precisa digitar nada no terminal.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="como-acessar">Como acessar<a href="https://arq-eng-tecnologia.drcgrupo.com/blog/Git%20%E2%80%94%20controle%20de%20vers%C3%B5es%20para%20quem%20nunca%20usou#como-acessar" class="hash-link" aria-label="Link direto para Como acessar" title="Link direto para Como acessar" translate="no">​</a></h2>
<ul>
<li class="">Clique no ícone de <strong>ramificação</strong> na barra lateral esquerda (parece três bolinhas conectadas)</li>
<li class="">Ou use o atalho: <code>Ctrl + Shift + G</code></li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="fazer-um-commit-pela-interface">Fazer um commit pela interface<a href="https://arq-eng-tecnologia.drcgrupo.com/blog/Git%20%E2%80%94%20controle%20de%20vers%C3%B5es%20para%20quem%20nunca%20usou#fazer-um-commit-pela-interface" class="hash-link" aria-label="Link direto para Fazer um commit pela interface" title="Link direto para Fazer um commit pela interface" translate="no">​</a></h2>
<ol>
<li class="">Faça alterações em qualquer arquivo</li>
<li class="">Abra o painel do Git (<code>Ctrl + Shift + G</code>)</li>
<li class="">Você verá os arquivos modificados listados em <strong>"Changes"</strong></li>
<li class="">Clique no <strong><code>+</code></strong> ao lado de cada arquivo (ou no <code>+</code> geral para marcar todos) → eles vão para <strong>"Staged Changes"</strong></li>
<li class="">Digite uma mensagem descrevendo o que foi feito</li>
<li class="">Clique em <strong>✔ Commit</strong></li>
</ol>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="enviar-para-o-github-push-pela-interface">Enviar para o GitHub (push) pela interface<a href="https://arq-eng-tecnologia.drcgrupo.com/blog/Git%20%E2%80%94%20controle%20de%20vers%C3%B5es%20para%20quem%20nunca%20usou#enviar-para-o-github-push-pela-interface" class="hash-link" aria-label="Link direto para Enviar para o GitHub (push) pela interface" title="Link direto para Enviar para o GitHub (push) pela interface" translate="no">​</a></h2>
<ul>
<li class="">Após o commit, clique em <strong>"Sync Changes"</strong> ou no botão <strong>↑ Push</strong></li>
<li class="">Se aparecer uma janela pedindo login no GitHub, faça login com sua conta</li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="ver-o-histórico-visualmente">Ver o histórico visualmente<a href="https://arq-eng-tecnologia.drcgrupo.com/blog/Git%20%E2%80%94%20controle%20de%20vers%C3%B5es%20para%20quem%20nunca%20usou#ver-o-hist%C3%B3rico-visualmente" class="hash-link" aria-label="Link direto para Ver o histórico visualmente" title="Link direto para Ver o histórico visualmente" translate="no">​</a></h2>
<ul>
<li class="">Instale a extensão <strong>GitLens</strong> (disponível para VS Code e Antigravity)</li>
<li class="">Ela adiciona visualização completa do histórico, quem alterou cada linha e quando</li>
</ul>
<hr>
<h1>Exemplos de uso no dia a dia do trabalho</h1>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="exemplo-1--salvando-o-progresso-de-um-script">Exemplo 1 — Salvando o progresso de um script<a href="https://arq-eng-tecnologia.drcgrupo.com/blog/Git%20%E2%80%94%20controle%20de%20vers%C3%B5es%20para%20quem%20nunca%20usou#exemplo-1--salvando-o-progresso-de-um-script" class="hash-link" aria-label="Link direto para Exemplo 1 — Salvando o progresso de um script" title="Link direto para Exemplo 1 — Salvando o progresso de um script" translate="no">​</a></h2>
<blockquote>
<p>Você acabou de fazer o script <code>leitura_ifc.py</code> funcionar. Hora de salvar:</p>
</blockquote>
<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#F8F8F2;background-color:#282A36"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#F8F8F2"><span class="token plain">git add leitura_ifc.py</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">git commit -m "script leitura_ifc funcionando para arquivos até 500 elementos"</span><br></span></code></pre></div></div>
<p>Agora se você estragar tudo tentando melhorar, é só voltar a este ponto.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="exemplo-2--testando-uma-mudança-arriscada-sem-medo">Exemplo 2 — Testando uma mudança arriscada sem medo<a href="https://arq-eng-tecnologia.drcgrupo.com/blog/Git%20%E2%80%94%20controle%20de%20vers%C3%B5es%20para%20quem%20nunca%20usou#exemplo-2--testando-uma-mudan%C3%A7a-arriscada-sem-medo" class="hash-link" aria-label="Link direto para Exemplo 2 — Testando uma mudança arriscada sem medo" title="Link direto para Exemplo 2 — Testando uma mudança arriscada sem medo" translate="no">​</a></h2>
<blockquote>
<p>Você quer tentar uma abordagem diferente mas tem medo de quebrar o que já funciona:</p>
</blockquote>
<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#F8F8F2;background-color:#282A36"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#F8F8F2"><span class="token plain"># Cria uma branch nova para testar</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">git checkout -b testar-nova-abordagem</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"># Faz as alterações e commits normalmente...</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"># Se funcionar: volta para main e junta</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">git checkout main</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">git merge testar-nova-abordagem</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"># Se não funcionar: abandona a branch e volta para main</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">git checkout main</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"># O código principal não foi tocado</span><br></span></code></pre></div></div>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="exemplo-3--compartilhando-um-script-com-a-equipe">Exemplo 3 — Compartilhando um script com a equipe<a href="https://arq-eng-tecnologia.drcgrupo.com/blog/Git%20%E2%80%94%20controle%20de%20vers%C3%B5es%20para%20quem%20nunca%20usou#exemplo-3--compartilhando-um-script-com-a-equipe" class="hash-link" aria-label="Link direto para Exemplo 3 — Compartilhando um script com a equipe" title="Link direto para Exemplo 3 — Compartilhando um script com a equipe" translate="no">​</a></h2>
<blockquote>
<p>Você criou um script útil e quer que seu colega use também:</p>
</blockquote>
<ol>
<li class="">Crie um repositório no <a href="http://github.com/" target="_blank" rel="noopener noreferrer" class="">github.com</a></li>
<li class="">No terminal da pasta do projeto:</li>
</ol>
<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#F8F8F2;background-color:#282A36"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#F8F8F2"><span class="token plain">git remote add origin https://github.com/seu-usuario/scripts-bim.git</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">git push -u origin main</span><br></span></code></pre></div></div>
<ol>
<li class="">Envie o link para seu colega — ele roda:</li>
</ol>
<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#F8F8F2;background-color:#282A36"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#F8F8F2"><span class="token plain">git clone https://github.com/seu-usuario/scripts-bim.git</span><br></span></code></pre></div></div>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="exemplo-4--pedindo-ao-agente-para-fazer-commits-por-você">Exemplo 4 — Pedindo ao agente para fazer commits por você<a href="https://arq-eng-tecnologia.drcgrupo.com/blog/Git%20%E2%80%94%20controle%20de%20vers%C3%B5es%20para%20quem%20nunca%20usou#exemplo-4--pedindo-ao-agente-para-fazer-commits-por-voc%C3%AA" class="hash-link" aria-label="Link direto para Exemplo 4 — Pedindo ao agente para fazer commits por você" title="Link direto para Exemplo 4 — Pedindo ao agente para fazer commits por você" translate="no">​</a></h2>
<p>No Antigravity ou Gemini CLI, você pode pedir:</p>
<div class="language-text codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#F8F8F2;background-color:#282A36"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#F8F8F2"><span class="token plain">Faça um commit com uma mensagem descritiva para as alterações que fizemos hoje no script leitura_ifc.py</span><br></span></code></pre></div></div>
<p>Ou no fluxo de execução:</p>
<div class="language-text codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#F8F8F2;background-color:#282A36"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#F8F8F2"><span class="token plain">Após cada etapa concluída, faça um commit automático com uma mensagem descritiva do que foi feito</span><br></span></code></pre></div></div>
<hr>
<h1>Boas mensagens de commit</h1>
<p>Uma boa mensagem de commit descreve <strong>o que foi feito</strong> e <strong>por quê</strong> (quando não é óbvio).</p>
<table><thead><tr><th>❌ Ruim</th><th>✅ Bom</th></tr></thead><tbody><tr><td><code>atualização</code></td><td><code>corrige leitura de elementos IFC sem GUID</code></td></tr><tr><td><code>mudei coisas</code></td><td><code>adiciona exportação de planilha com filtro por tipo</code></td></tr><tr><td><code>arrumei bug</code></td><td><code>corrige erro quando arquivo IFC está vazio</code></td></tr><tr><td><code>v2</code></td><td><code>refatora função de leitura para suportar IFC4</code></td></tr></tbody></table>
<aside><p>💡</p><p><strong>Regra prática:</strong> se você não sabe o que escrever na mensagem do commit, é porque provavelmente fez muita coisa de uma vez. Faça commits menores e mais frequentes.</p></aside>]]></content>
    </entry>
    <entry>
        <title type="html"><![CDATA[Modelos de IA e cotas — o que usar e quando]]></title>
        <id>https://arq-eng-tecnologia.drcgrupo.com/blog/Modelos de IA e cotas — o que usar e quando</id>
        <link href="https://arq-eng-tecnologia.drcgrupo.com/blog/Modelos de IA e cotas — o que usar e quando"/>
        <updated>2026-03-25T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[Nesta aula usamos dois ambientes diferentes: o Gemini CLI e o Google Antigravity IDE. Cada um tem suas próprias cotas e modelos disponíveis. Entender isso evita surpresas no meio de um projeto.]]></summary>
        <content type="html"><![CDATA[<p>Nesta aula usamos dois ambientes diferentes: o <strong>Gemini CLI</strong> e o <strong>Google Antigravity IDE</strong>. Cada um tem suas próprias cotas e modelos disponíveis. Entender isso evita surpresas no meio de um projeto.</p>
<hr>
<h1>Gemini CLI</h1>
<aside><p>✅</p><p><strong>Cota alta e gratuita — sem plano pago disponível</strong></p></aside>
<ul>
<li class=""><strong>Acesso:</strong> login com sua conta Google — sem precisar pagar nada</li>
<li class=""><strong>Cota:</strong> alta, renovada <strong>diariamente</strong></li>
<li class=""><strong>Dica prática:</strong> se a cota acabar no meio do dia, basta fazer login com outra conta Google e continuar</li>
<li class=""><strong>Modelos disponíveis:</strong> somente modelos Google</li>
</ul>
<table><thead><tr><th>Modelo</th><th>Tipo</th><th>Uso indicado</th></tr></thead><tbody><tr><td>Gemini 3.1 Flash</td><td>Rápido</td><td>Maioria das tarefas</td></tr><tr><td>Gemini 3.1 Flash Lite</td><td>Ultra rápido</td><td>Tarefas simples e diretas</td></tr></tbody></table>
<hr>
<h1>Google Antigravity IDE</h1>
<aside><p>✅</p><p><strong>Plano gratuito com cota alta — há plano pago para quem precisar de mais</strong></p></aside>
<ul>
<li class=""><strong>Plano gratuito:</strong> cota alta para uso geral</li>
<li class=""><strong>Modelos Google (Gemini):</strong> cota renovada <strong>semanalmente</strong></li>
<li class=""><strong>Modelos Claude (Anthropic):</strong> cotas <strong>bem menores</strong> e renovação <strong>semanal</strong></li>
<li class=""><strong>Plano pago:</strong> disponível para quem precisar de cotas maiores</li>
</ul>
<table><thead><tr><th>Modelo</th><th>Empresa</th><th>Cota no plano grátis</th><th>Uso indicado</th></tr></thead><tbody><tr><td>Gemini 3.1 Pro</td><td>Google</td><td>Alta (semanal)</td><td>Tarefas complexas</td></tr><tr><td>Gemini 3.1 Flash</td><td>Google</td><td>Alta (semanal)</td><td>Maioria das tarefas</td></tr><tr><td>Gemini 3.1 Flash Lite</td><td>Google</td><td>Alta (semanal)</td><td>Tarefas simples e chat rápido</td></tr><tr><td>Claude Sonnet 4.6</td><td>Anthropic</td><td>Pequena (semanal)</td><td>Tarefas complexas</td></tr><tr><td>Claude Opus 4.6</td><td>Anthropic</td><td>Muito pequena (semanal)</td><td>Tarefas difíceis e críticas</td></tr></tbody></table>
<hr>
<h1>Capacidade dos modelos</h1>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="-gemini-31-flash-lite">⚡ Gemini 3.1 Flash Lite<a href="https://arq-eng-tecnologia.drcgrupo.com/blog/Modelos%20de%20IA%20e%20cotas%20%E2%80%94%20o%20que%20usar%20e%20quando#-gemini-31-flash-lite" class="hash-link" aria-label="Link direto para ⚡ Gemini 3.1 Flash Lite" title="Link direto para ⚡ Gemini 3.1 Flash Lite" translate="no">​</a></h2>
<ul>
<li class="">Modelo ultra rápido e leve do Google</li>
<li class=""><strong>Cota maior</strong> que todos os outros modelos</li>
<li class="">Perfeito para <strong>perguntas rápidas, chat e tarefas simples</strong></li>
<li class=""><strong>Use quando:</strong> você quiser economizar cota dos modelos maiores ou precisar de uma resposta instantânea para algo direto</li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="-gemini-31-pro">🔵 Gemini 3.1 Pro<a href="https://arq-eng-tecnologia.drcgrupo.com/blog/Modelos%20de%20IA%20e%20cotas%20%E2%80%94%20o%20que%20usar%20e%20quando#-gemini-31-pro" class="hash-link" aria-label="Link direto para 🔵 Gemini 3.1 Pro" title="Link direto para 🔵 Gemini 3.1 Pro" translate="no">​</a></h2>
<ul>
<li class="">Modelo avançado e inteligente do Google</li>
<li class="">Não é o mais rápido, mas é muito capaz</li>
<li class="">Ideal para <strong>tarefas complexas e grandes</strong>: analisar arquivos IFC extensos, gerar scripts completos, raciocínio longo</li>
<li class="">Bom com uso de <strong>ferramentas</strong> (ler arquivos, executar comandos, navegar pastas)</li>
<li class=""><strong>Use quando:</strong> a tarefa for difícil e você tiver paciência para esperar</li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="-gemini-31-flash">⚡ Gemini 3.1 Flash<a href="https://arq-eng-tecnologia.drcgrupo.com/blog/Modelos%20de%20IA%20e%20cotas%20%E2%80%94%20o%20que%20usar%20e%20quando#-gemini-31-flash" class="hash-link" aria-label="Link direto para ⚡ Gemini 3.1 Flash" title="Link direto para ⚡ Gemini 3.1 Flash" translate="no">​</a></h2>
<ul>
<li class="">Modelo avançado e <strong>rápido</strong> do Google</li>
<li class="">Versão mais leve e ágil — resolve a maioria das situações do dia a dia</li>
<li class=""><strong>Cota maior</strong> do que o Pro: dura mais ao longo do dia</li>
<li class=""><strong>Use quando:</strong> a tarefa for simples ou moderada e você quiser resposta rápida</li>
<li class=""><strong>Recomendado como modelo padrão</strong> para começar</li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="-claude-sonnet-46">🟠 Claude Sonnet 4.6<a href="https://arq-eng-tecnologia.drcgrupo.com/blog/Modelos%20de%20IA%20e%20cotas%20%E2%80%94%20o%20que%20usar%20e%20quando#-claude-sonnet-46" class="hash-link" aria-label="Link direto para 🟠 Claude Sonnet 4.6" title="Link direto para 🟠 Claude Sonnet 4.6" translate="no">​</a></h2>
<ul>
<li class="">Modelo da <strong>Anthropic</strong> (empresa concorrente do Google)</li>
<li class="">Desempenho comparável ao Gemini 3.1 Pro</li>
<li class="">Inteligente e muito bom com <strong>ferramentas e raciocínio estruturado</strong></li>
<li class="">Cota menor no plano gratuito — use com moderação</li>
<li class=""><strong>Use quando:</strong> o Gemini Pro não estiver resolvendo bem e você ainda tiver cota Claude disponível</li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="-claude-opus-46">🔴 Claude Opus 4.6<a href="https://arq-eng-tecnologia.drcgrupo.com/blog/Modelos%20de%20IA%20e%20cotas%20%E2%80%94%20o%20que%20usar%20e%20quando#-claude-opus-46" class="hash-link" aria-label="Link direto para 🔴 Claude Opus 4.6" title="Link direto para 🔴 Claude Opus 4.6" translate="no">​</a></h2>
<ul>
<li class="">Considerado atualmente o <strong>modelo mais inteligente do mundo</strong></li>
<li class="">Mais lento que os outros</li>
<li class="">Desempenho excepcional em tarefas <strong>muito difíceis, ambíguas ou críticas</strong></li>
<li class="">Cota <strong>muito pequena</strong> no plano gratuito — use só quando realmente necessário</li>
<li class=""><strong>Use quando:</strong> nenhum outro modelo estiver conseguindo resolver, ou a tarefa for de alta importância e complexidade</li>
</ul>
<hr>
<h1>Qual modelo usar? Guia rápido</h1>
<table><thead><tr><th>Situação</th><th>Modelo recomendado</th></tr></thead><tbody><tr><td>Início do dia, tarefas gerais</td><td>Gemini 3.1 Flash</td></tr><tr><td>Tarefa complexa (script grande, análise de IFC)</td><td>Gemini 3.1 Pro</td></tr><tr><td>Cota Google acabou, tarefa moderada</td><td>Claude Sonnet 4.6</td></tr><tr><td>Problema difícil que nenhum outro resolveu</td><td>Claude Opus 4.6</td></tr><tr><td>Cota do Antigravity acabou, precisa continuar</td><td>Gemini CLI (outra conta Google)</td></tr></tbody></table>
<aside><p>💡</p><p><strong>Estratégia prática:</strong> comece sempre pelo <strong>Gemini Flash</strong> — ele é rápido, gratuito e resolve a maioria das coisas. Suba para modelos mais potentes só quando necessário. Assim você preserva as cotas dos modelos mais escassos para quando realmente precisar.</p></aside>]]></content>
    </entry>
    <entry>
        <title type="html"><![CDATA[Scaffolding de projetos Python]]></title>
        <id>https://arq-eng-tecnologia.drcgrupo.com/blog/Scaffolding de projetos Python</id>
        <link href="https://arq-eng-tecnologia.drcgrupo.com/blog/Scaffolding de projetos Python"/>
        <updated>2026-03-25T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[Scaffolding é a estrutura inicial de pastas e arquivos que todo projeto precisa antes de começar a escrever código. Pense como a planta baixa antes de construir: você define onde vai cada coisa antes de começar.]]></summary>
        <content type="html"><![CDATA[<p>Scaffolding é a estrutura inicial de pastas e arquivos que todo projeto precisa antes de começar a escrever código. Pense como a planta baixa antes de construir: você define onde vai cada coisa antes de começar.</p>
<p>Para engenheiros e arquitetos: é como montar a estrutura de pastas de um projeto BIM antes de começar a modelar.</p>
<hr>
<h1>Por que fazer scaffolding antes de codar?</h1>
<ul>
<li class="">O agente vai entender melhor o que você quer fazer</li>
<li class="">Você não perde arquivos importantes em pastas erradas</li>
<li class="">Facilita pedir ajuda para o agente depois (ele sabe onde está cada coisa)</li>
<li class="">Projetos organizados são mais fáceis de continuar semanas depois</li>
</ul>
<hr>
<h1>Estrutura mínima recomendada</h1>
<p>Para um projeto Python simples de automação (ex: leitura de IFC, geração de planilhas):</p>
<div class="language-text codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#F8F8F2;background-color:#282A36"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#F8F8F2"><span class="token plain">meu-projeto/</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">├── gemini.md                  ← instruções para o agente</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">├── main.py                    ← arquivo principal (ponto de entrada)</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">├── requirements.txt           ← lista de bibliotecas usadas</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">├── .gitignore                 ← arquivos que o Git deve ignorar</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">├── README.md                  ← explicação do projeto</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">├── exemplos/                  ← arquivos de entrada para testes (ex: .ifc, .xlsx)</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">├── artifacts/                 ← outputs gerados pelos scripts</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">├── plans/                     ← planos de tarefas aprovados</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">├── regras/</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">│   └── regras-de-negocio.md   ← regras do projeto</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">└── .gemini/</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">    └── commands/              ← seus slash commands (.toml)</span><br></span></code></pre></div></div>
<hr>
<h1>Como criar manualmente (passo a passo no Windows)</h1>
<ol>
<li class="">Crie uma pasta para o projeto onde quiser (ex: <code>Documentos\projetos\meu-projeto</code>)</li>
<li class="">Abra o PowerShell dentro dessa pasta:<!-- -->
<ul>
<li class="">Segure <code>Shift</code> e clique com botão direito na pasta → <strong>Abrir janela do PowerShell aqui</strong></li>
</ul>
</li>
<li class="">Cole os comandos abaixo para criar toda a estrutura de uma vez:</li>
</ol>
<div class="language-powershell codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-powershell codeBlock_bY9V thin-scrollbar" style="color:#F8F8F2;background-color:#282A36"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#F8F8F2"><span class="token plain"># Cria todas as pastas</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">mkdir exemplos, artifacts, plans, regras, .gemini\commands</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"># Cria os arquivos vazios</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">New-Item main.py, requirements.txt, README.md, gemini.md, .gitignore -ItemType File</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">New-Item regras\regras-de-negocio.md -ItemType File</span><br></span></code></pre></div></div>
<ol>
<li class="">Abra o Antigravity IDE → <strong>File → Open Folder</strong> → selecione a pasta do projeto</li>
</ol>
<hr>
<h1>Como pedir ao agente para fazer o scaffolding</h1>
<p>Você pode pedir ao Gemini CLI ou ao Antigravity para criar a estrutura por você. Basta descrever o projeto:</p>
<div class="language-text codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#F8F8F2;background-color:#282A36"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#F8F8F2"><span class="token plain">Crie o scaffolding inicial para um projeto Python com as seguintes características:</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">- Objetivo: ler arquivos IFC e exportar uma planilha Excel com os elementos e propriedades</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">- Bibliotecas: ifcopenshell, openpyxl</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">- Sistema: Windows</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">- Inclua: gemini.md com instruções básicas, requirements.txt preenchido, README.md com descrição do projeto, .gitignore para Python, e a estrutura de pastas: exemplos/, artifacts/, plans/, regras/</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">- Não escreva o código ainda, apenas monte a estrutura</span><br></span></code></pre></div></div>
<aside><p>💡</p><p><strong>Dica:</strong> sempre peça o scaffolding <strong>antes</strong> de começar a pedir código. Isso evita que o agente crie arquivos em lugares aleatórios.</p></aside>
<hr>
<h1>O que vai dentro de cada arquivo</h1>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="requirementstxt">requirements.txt<a href="https://arq-eng-tecnologia.drcgrupo.com/blog/Scaffolding%20de%20projetos%20Python#requirementstxt" class="hash-link" aria-label="Link direto para requirements.txt" title="Link direto para requirements.txt" translate="no">​</a></h2>
<p>Lista as bibliotecas que o projeto usa. Uma por linha:</p>
<div class="language-text codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#F8F8F2;background-color:#282A36"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#F8F8F2"><span class="token plain">ifcopenshell</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">openpyxl</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">pandas</span><br></span></code></pre></div></div>
<p>Para instalar tudo de uma vez:</p>
<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#F8F8F2;background-color:#282A36"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#F8F8F2"><span class="token plain">pip install -r requirements.txt</span><br></span></code></pre></div></div>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="gitignore">.gitignore<a href="https://arq-eng-tecnologia.drcgrupo.com/blog/Scaffolding%20de%20projetos%20Python#gitignore" class="hash-link" aria-label="Link direto para .gitignore" title="Link direto para .gitignore" translate="no">​</a></h2>
<p>Arquivos que o Git não deve salvar. Para Python, use este conteúdo mínimo:</p>
<div class="language-text codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#F8F8F2;background-color:#282A36"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#F8F8F2"><span class="token plain"># Ambientes virtuais</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">venv/</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">.venv/</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"># Cache do Python</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">__pycache__/</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">*.pyc</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"># Arquivos de configuração local</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">.env</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">*.env</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"># Arquivos grandes de exemplo (opcional)</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">*.ifc</span><br></span></code></pre></div></div>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="readmemd">README.md<a href="https://arq-eng-tecnologia.drcgrupo.com/blog/Scaffolding%20de%20projetos%20Python#readmemd" class="hash-link" aria-label="Link direto para README.md" title="Link direto para README.md" translate="no">​</a></h2>
<p>Explicação simples do projeto. Modelo mínimo:</p>
<div class="language-markdown codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-markdown codeBlock_bY9V thin-scrollbar" style="color:#F8F8F2;background-color:#282A36"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#F8F8F2"><span class="token title important punctuation" style="color:rgb(248, 248, 242)">#</span><span class="token title important"> Nome do Projeto</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">O que este projeto faz em 1 frase.</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token title important punctuation" style="color:rgb(248, 248, 242)">##</span><span class="token title important"> Como usar</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token list punctuation" style="color:rgb(248, 248, 242)">1.</span><span class="token plain"> Instale as dependências: </span><span class="token code-snippet code keyword" style="color:rgb(189, 147, 249);font-style:italic">`pip install -r requirements.txt`</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token list punctuation" style="color:rgb(248, 248, 242)">2.</span><span class="token plain"> Coloque seu arquivo </span><span class="token code-snippet code keyword" style="color:rgb(189, 147, 249);font-style:italic">`.ifc`</span><span class="token plain"> na pasta </span><span class="token code-snippet code keyword" style="color:rgb(189, 147, 249);font-style:italic">`exemplos/`</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token list punctuation" style="color:rgb(248, 248, 242)">3.</span><span class="token plain"> Rode: </span><span class="token code-snippet code keyword" style="color:rgb(189, 147, 249);font-style:italic">`python main.py`</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token list punctuation" style="color:rgb(248, 248, 242)">4.</span><span class="token plain"> O resultado aparece na pasta </span><span class="token code-snippet code keyword" style="color:rgb(189, 147, 249);font-style:italic">`artifacts/`</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token title important punctuation" style="color:rgb(248, 248, 242)">##</span><span class="token title important"> Tecnologias</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token list punctuation" style="color:rgb(248, 248, 242)">-</span><span class="token plain"> Python 3.10+</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token list punctuation" style="color:rgb(248, 248, 242)">-</span><span class="token plain"> ifcopenshell</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token list punctuation" style="color:rgb(248, 248, 242)">-</span><span class="token plain"> openpyxl</span><br></span></code></pre></div></div>
<hr>
<h1>Ambientes virtuais (opcional mas recomendado)</h1>
<p>Um ambiente virtual isola as bibliotecas do projeto para não conflitar com outros projetos no mesmo computador.</p>
<div class="language-powershell codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-powershell codeBlock_bY9V thin-scrollbar" style="color:#F8F8F2;background-color:#282A36"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#F8F8F2"><span class="token plain"># Criar ambiente virtual (rode uma vez na pasta do projeto)</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">python -m venv venv</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"># Ativar o ambiente (rode toda vez que abrir o terminal)</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">venv\Scripts\activate</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"># Você verá (venv) no início da linha quando estiver ativo</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"># Agora instale as dependências normalmente:</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">pip install -r requirements.txt</span><br></span></code></pre></div></div>
<aside><p>⚠️</p><p><strong>Se usar ambiente virtual:</strong> adicione <code>venv/</code> ao seu <code>.gitignore</code> (já está no modelo acima). Nunca suba a pasta <code>venv/</code> para o Git — ela é grande e cada pessoa recria a dela própria com <code>pip install -r requirements.txt</code>.</p></aside>]]></content>
    </entry>
    <entry>
        <title type="html"><![CDATA[Workflows — slash commands prontos para usar]]></title>
        <id>https://arq-eng-tecnologia.drcgrupo.com/blog/Workflows — slash commands prontos para usar</id>
        <link href="https://arq-eng-tecnologia.drcgrupo.com/blog/Workflows — slash commands prontos para usar"/>
        <updated>2026-03-25T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[Workflows são receitas reutilizáveis que ensinam o agente a executar tarefas complexas de forma padronizada. Cada workflow abaixo pode ser salvo e chamado com um slash command.]]></summary>
        <content type="html"><![CDATA[<p>Workflows são receitas reutilizáveis que ensinam o agente a executar tarefas complexas de forma padronizada. Cada workflow abaixo pode ser salvo e chamado com um slash command.</p>
<aside><p>📌</p><p><strong>Como salvar os workflows:</strong></p><ul>
<li class=""><strong>Gemini CLI:</strong> crie um arquivo <code>.toml</code> em <code>.gemini/commands/nome-do-workflow.toml</code> na pasta do projeto (ou em <code>C:\Users\SeuNome\.gemini\commands\</code> para uso global)</li>
<li class=""><strong>Antigravity IDE:</strong> abra o painel do agente → <code>...</code> → Customizations → Workflows → crie um arquivo <code>.md</code> com o nome do workflow</li>
<li class="">Outputs que geram arquivos devem ir para a pasta <code>artifacts/</code> na raiz do projeto</li>
</ul></aside>
<hr>
<h1>/investigar-bug</h1>
<p><strong>O que faz:</strong> analisa um erro ou comportamento inesperado, localiza a causa raiz e proposta de correção — sem alterar nada até você aprovar.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="investigar-bug-1">Investigar bug<a href="https://arq-eng-tecnologia.drcgrupo.com/blog/Workflows%20%E2%80%94%20slash%20commands%20prontos%20para%20usar#investigar-bug-1" class="hash-link" aria-label="Link direto para Investigar bug" title="Link direto para Investigar bug" translate="no">​</a></h2>
<div class="language-toml codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-toml codeBlock_bY9V thin-scrollbar" style="color:#F8F8F2;background-color:#282A36"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#F8F8F2"><span class="token plain">name = "investigar-bug"</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">description = "Investiga um bug ou erro: loca causa raiz e propõe correção sem alterar código"</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">prompt = """</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">Você é um detetive de código. Sua missão é investigar o problema descrito pelo usuário sem alterar nenhum arquivo.</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">Passos obrigatórios:</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">1. Leia os arquivos relevantes para entender o contexto</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">2. Reproduza mentalmente o fluxo que causa o erro</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">3. Identifique a causa raiz (não apenas o sintoma)</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">4. Liste todas as linhas/funções envolvidas no problema</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">5. Proponha UMA correção clara e simples</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">6. Salve o relatório em artifacts/bug-report-YYYYMMDD.md</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">7. Pergunte ao usuário: "Posso aplicar a correção?"</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">NUNCA altere código antes da aprovação.</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">Problema relatado: args</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">"""</span><br></span></code></pre></div></div>
<div class="language-markdown codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-markdown codeBlock_bY9V thin-scrollbar" style="color:#F8F8F2;background-color:#282A36"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#F8F8F2"><span class="token comment" style="color:rgb(98, 114, 164)">&lt;!-- Antigravity: salve como investigar-bug.md nos Workflows --&gt;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token title important punctuation" style="color:rgb(248, 248, 242)">#</span><span class="token title important"> Workflow: investigar-bug</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">Investigue o problema descrito sem alterar nenhum arquivo.</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token title important punctuation" style="color:rgb(248, 248, 242)">##</span><span class="token title important"> Passos obrigatórios</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token list punctuation" style="color:rgb(248, 248, 242)">1.</span><span class="token plain"> Leia os arquivos relevantes para entender o contexto</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token list punctuation" style="color:rgb(248, 248, 242)">2.</span><span class="token plain"> Reproduza mentalmente o fluxo que causa o erro</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token list punctuation" style="color:rgb(248, 248, 242)">3.</span><span class="token plain"> Identifique a causa raiz, não apenas o sintoma</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token list punctuation" style="color:rgb(248, 248, 242)">4.</span><span class="token plain"> Liste linhas, arquivos e funções envolvidos</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token list punctuation" style="color:rgb(248, 248, 242)">5.</span><span class="token plain"> Proponha uma correção clara e simples</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token list punctuation" style="color:rgb(248, 248, 242)">6.</span><span class="token plain"> Salve o relatório em </span><span class="token code-snippet code keyword" style="color:rgb(189, 147, 249);font-style:italic">`artifacts/bug-report-YYYYMMDD.md`</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token list punctuation" style="color:rgb(248, 248, 242)">7.</span><span class="token plain"> Pergunte ao usuário: "Posso aplicar a correção?"</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">Não altere código antes da aprovação.</span><br></span></code></pre></div></div>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="exemplo-de-uso">Exemplo de uso<a href="https://arq-eng-tecnologia.drcgrupo.com/blog/Workflows%20%E2%80%94%20slash%20commands%20prontos%20para%20usar#exemplo-de-uso" class="hash-link" aria-label="Link direto para Exemplo de uso" title="Link direto para Exemplo de uso" translate="no">​</a></h2>
<div class="language-text codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#F8F8F2;background-color:#282A36"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#F8F8F2"><span class="token plain">/investigar-bug o script leitura_ifc.py trava quando o arquivo IFC tem mais de 500 elementos</span><br></span></code></pre></div></div>
<hr>
<h1>/planejar</h1>
<p><strong>O que faz:</strong> transforma uma ideia ou pedido em um plano estruturado com passos, riscos e estimativa — salvo em <code>/plans</code> para aprovação antes de qualquer execução.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="planejar-1">Planejar<a href="https://arq-eng-tecnologia.drcgrupo.com/blog/Workflows%20%E2%80%94%20slash%20commands%20prontos%20para%20usar#planejar-1" class="hash-link" aria-label="Link direto para Planejar" title="Link direto para Planejar" translate="no">​</a></h2>
<div class="language-toml codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-toml codeBlock_bY9V thin-scrollbar" style="color:#F8F8F2;background-color:#282A36"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#F8F8F2"><span class="token plain"># .gemini/commands/planejar.toml</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">name = "planejar"</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">description = "Cria um plano estruturado para uma tarefa e salva em /plans para aprovação"</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">prompt = """</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">Crie um plano detalhado para a tarefa descrita. Não execute nada — apenas planeje.</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">Estrutura do plano:</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">1. **Objetivo:** o que será entregue</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">2. **Arquivos que serão criados ou modificados** (liste todos)</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">3. **Passos em ordem** (numere cada um)</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">4. **Dependências** (o que precisa estar pronto antes)</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">5. **Riscos identificados** (o que pode dar errado)</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">6. **Estimativa** (simples/médio/complexo e por quê)</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">Salve o plano em plans/plano-YYYYMMDD-[nome-curto].md</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">Apresente o plano ao usuário e pergunte: "Este plano está correto? Posso prosseguir?"</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">Tarefa: args</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">"""</span><br></span></code></pre></div></div>
<div class="language-markdown codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-markdown codeBlock_bY9V thin-scrollbar" style="color:#F8F8F2;background-color:#282A36"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#F8F8F2"><span class="token comment" style="color:rgb(98, 114, 164)">&lt;!-- Antigravity: salve como planejar.md nos Workflows --&gt;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token title important punctuation" style="color:rgb(248, 248, 242)">#</span><span class="token title important"> Workflow: planejar</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">Crie um plano detalhado para a tarefa descrita. Não execute nada, apenas planeje.</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token title important punctuation" style="color:rgb(248, 248, 242)">##</span><span class="token title important"> Estrutura do plano</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token list punctuation" style="color:rgb(248, 248, 242)">1.</span><span class="token plain"> Objetivo do que será entregue</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token list punctuation" style="color:rgb(248, 248, 242)">2.</span><span class="token plain"> Arquivos que serão criados ou modificados</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token list punctuation" style="color:rgb(248, 248, 242)">3.</span><span class="token plain"> Passos em ordem</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token list punctuation" style="color:rgb(248, 248, 242)">4.</span><span class="token plain"> Dependências</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token list punctuation" style="color:rgb(248, 248, 242)">5.</span><span class="token plain"> Riscos identificados</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token list punctuation" style="color:rgb(248, 248, 242)">6.</span><span class="token plain"> Estimativa: simples, médio ou complexo, com justificativa</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">Salve o plano em </span><span class="token code-snippet code keyword" style="color:rgb(189, 147, 249);font-style:italic">`plans/plano-YYYYMMDD-[nome-curto].md`</span><span class="token plain">.</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">Apresente o plano ao usuário e pergunte: "Este plano está correto? Posso prosseguir?"</span><br></span></code></pre></div></div>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="exemplo-de-uso-1">Exemplo de uso<a href="https://arq-eng-tecnologia.drcgrupo.com/blog/Workflows%20%E2%80%94%20slash%20commands%20prontos%20para%20usar#exemplo-de-uso-1" class="hash-link" aria-label="Link direto para Exemplo de uso" title="Link direto para Exemplo de uso" translate="no">​</a></h2>
<div class="language-text codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#F8F8F2;background-color:#282A36"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#F8F8F2"><span class="token plain">/planejar criar um script Python que lê um arquivo IFC e exporta uma planilha com todos os elementos e suas propriedades</span><br></span></code></pre></div></div>
<hr>
<h1>/executar</h1>
<p><strong>O que faz:</strong> executa uma tarefa já aprovada (idealmente a partir de um plano existente em <code>/plans</code>), reportando cada passo concluído.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="executar-1">Executar<a href="https://arq-eng-tecnologia.drcgrupo.com/blog/Workflows%20%E2%80%94%20slash%20commands%20prontos%20para%20usar#executar-1" class="hash-link" aria-label="Link direto para Executar" title="Link direto para Executar" translate="no">​</a></h2>
<div class="language-toml codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-toml codeBlock_bY9V thin-scrollbar" style="color:#F8F8F2;background-color:#282A36"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#F8F8F2"><span class="token plain"># .gemini/commands/executar.toml</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">name = "executar"</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">description = "Executa uma tarefa aprovada, passo a passo, com reporte de progresso"</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">prompt = """</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">Execute a tarefa descrita. Se existir um arquivo de plano em plans/ relacionado a essa tarefa, leia-o primeiro.</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">Regras de execução:</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">- Execute um passo de cada vez</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">- Após cada passo, informe: "✅ Passo X concluído: [o que foi feito]"</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">- Se algo inesperado acontecer, PARE e informe o usuário antes de continuar</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">- Não modifique arquivos fora do escopo da tarefa</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">- Ao terminar, salve um resumo em artifacts/execucao-YYYYMMDD.md com o que foi feito</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">Tarefa: args</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">"""</span><br></span></code></pre></div></div>
<div class="language-markdown codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-markdown codeBlock_bY9V thin-scrollbar" style="color:#F8F8F2;background-color:#282A36"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#F8F8F2"><span class="token comment" style="color:rgb(98, 114, 164)">&lt;!-- Antigravity: salve como executar.md nos Workflows --&gt;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token title important punctuation" style="color:rgb(248, 248, 242)">#</span><span class="token title important"> Workflow: executar</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">Execute a tarefa descrita. Leia o plano em </span><span class="token code-snippet code keyword" style="color:rgb(189, 147, 249);font-style:italic">`plans/`</span><span class="token plain"> se existir.</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token title important punctuation" style="color:rgb(248, 248, 242)">##</span><span class="token title important"> Regras</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token list punctuation" style="color:rgb(248, 248, 242)">-</span><span class="token plain"> Execute um passo de cada vez</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token list punctuation" style="color:rgb(248, 248, 242)">-</span><span class="token plain"> Reporte: "✅ Passo X concluído: [o que foi feito]"</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token list punctuation" style="color:rgb(248, 248, 242)">-</span><span class="token plain"> Se algo inesperado acontecer, PARE e avise</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token list punctuation" style="color:rgb(248, 248, 242)">-</span><span class="token plain"> Não modifique arquivos fora do escopo</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token list punctuation" style="color:rgb(248, 248, 242)">-</span><span class="token plain"> Ao terminar, salve resumo em </span><span class="token code-snippet code keyword" style="color:rgb(189, 147, 249);font-style:italic">`artifacts/execucao-YYYYMMDD.md`</span><br></span></code></pre></div></div>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="exemplo-de-uso-2">Exemplo de uso<a href="https://arq-eng-tecnologia.drcgrupo.com/blog/Workflows%20%E2%80%94%20slash%20commands%20prontos%20para%20usar#exemplo-de-uso-2" class="hash-link" aria-label="Link direto para Exemplo de uso" title="Link direto para Exemplo de uso" translate="no">​</a></h2>
<div class="language-text codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#F8F8F2;background-color:#282A36"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#F8F8F2"><span class="token plain">/executar criar o script de exportação IFC conforme plano aprovado</span><br></span></code></pre></div></div>
<p><strong>Output esperado:</strong> arquivos criados conforme o plano + <code>artifacts/execucao-20260324.md</code> com resumo do que foi feito.</p>
<hr>
<h1>/testar</h1>
<p><strong>O que faz:</strong> executa testes em um script ou função existente com um arquivo de exemplo real, mostra o resultado e indica se passou ou falhou.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="testar-1">Testar<a href="https://arq-eng-tecnologia.drcgrupo.com/blog/Workflows%20%E2%80%94%20slash%20commands%20prontos%20para%20usar#testar-1" class="hash-link" aria-label="Link direto para Testar" title="Link direto para Testar" translate="no">​</a></h2>
<div class="language-toml codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-toml codeBlock_bY9V thin-scrollbar" style="color:#F8F8F2;background-color:#282A36"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#F8F8F2"><span class="token plain"># .gemini/commands/testar.toml</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">name = "testar"</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">description = "Testa um script ou função com dados reais e reporta o resultado"</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">prompt = """</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">Execute um teste funcional no arquivo ou função indicada.</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">Passos:</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">1. Leia o código do arquivo indicado</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">2. Identifique o que ele deveria fazer</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">3. Rode o script com um arquivo de entrada de exemplo (se disponível na pasta)</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">4. Capture o output ou erro</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">5. Compare com o resultado esperado</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">6. Classifique: ✅ PASSOU ou ❌ FALHOU</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">7. Se falhou: descreva o problema e sugira a correção</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">8. Salve o resultado em artifacts/teste-YYYYMMDD.md</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">Arquivo/função a testar: args</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">"""</span><br></span></code></pre></div></div>
<div class="language-markdown codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-markdown codeBlock_bY9V thin-scrollbar" style="color:#F8F8F2;background-color:#282A36"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#F8F8F2"><span class="token comment" style="color:rgb(98, 114, 164)">&lt;!-- Antigravity: salve como testar.md nos Workflows --&gt;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token title important punctuation" style="color:rgb(248, 248, 242)">#</span><span class="token title important"> Workflow: testar</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">Execute um teste funcional no arquivo indicado.</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token title important punctuation" style="color:rgb(248, 248, 242)">##</span><span class="token title important"> Passos</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token list punctuation" style="color:rgb(248, 248, 242)">1.</span><span class="token plain"> Leia o código do arquivo</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token list punctuation" style="color:rgb(248, 248, 242)">2.</span><span class="token plain"> Identifique o que ele deveria fazer</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token list punctuation" style="color:rgb(248, 248, 242)">3.</span><span class="token plain"> Rode com arquivo de exemplo disponível</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token list punctuation" style="color:rgb(248, 248, 242)">4.</span><span class="token plain"> Capture output ou erro</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token list punctuation" style="color:rgb(248, 248, 242)">5.</span><span class="token plain"> Classifique: ✅ PASSOU ou ❌ FALHOU</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token list punctuation" style="color:rgb(248, 248, 242)">6.</span><span class="token plain"> Se falhou: descreva o problema e sugira correção</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token list punctuation" style="color:rgb(248, 248, 242)">7.</span><span class="token plain"> Salve em </span><span class="token code-snippet code keyword" style="color:rgb(189, 147, 249);font-style:italic">`artifacts/teste-YYYYMMDD.md`</span><br></span></code></pre></div></div>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="exemplo-de-uso-3">Exemplo de uso<a href="https://arq-eng-tecnologia.drcgrupo.com/blog/Workflows%20%E2%80%94%20slash%20commands%20prontos%20para%20usar#exemplo-de-uso-3" class="hash-link" aria-label="Link direto para Exemplo de uso" title="Link direto para Exemplo de uso" translate="no">​</a></h2>
<div class="language-text codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#F8F8F2;background-color:#282A36"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#F8F8F2"><span class="token plain">/testar leitura_ifc.py usando o arquivo modelo.ifc que está na pasta /exemplos</span><br></span></code></pre></div></div>
<p><strong>Output esperado:</strong> <code>artifacts/teste-20260324.md</code> com resultado ✅ PASSOU ou ❌ FALHOU, output capturado e sugestão de correção se necessário.</p>
<hr>
<h1>/criar-testes</h1>
<p><strong>O que faz:</strong> lê um script existente e gera automaticamente um arquivo de testes unitários cobrindo os casos principais — sem modificar o script original.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="criar-testes-1">Criar testes<a href="https://arq-eng-tecnologia.drcgrupo.com/blog/Workflows%20%E2%80%94%20slash%20commands%20prontos%20para%20usar#criar-testes-1" class="hash-link" aria-label="Link direto para Criar testes" title="Link direto para Criar testes" translate="no">​</a></h2>
<div class="language-toml codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-toml codeBlock_bY9V thin-scrollbar" style="color:#F8F8F2;background-color:#282A36"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#F8F8F2"><span class="token plain"># .gemini/commands/criar-testes.toml</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">name = "criar-testes"</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">description = "Gera arquivo de testes unitários para um script existente"</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">prompt = """</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">Analise o arquivo indicado e crie testes unitários para ele.</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">Passos:</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">1. Leia o código do arquivo</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">2. Identifique todas as funções/comportamentos que podem ser testados</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">3. Para cada função, crie testes para:</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">   - Caso normal (entrada válida esperada)</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">   - Caso de borda (entrada vazia, zero, lista vazia, etc.)</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">   - Caso de erro (entrada inválida ou arquivo inexistente)</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">4. Use a biblioteca `pytest` para Python</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">5. Adicione comentários em português explicando o que cada teste verifica</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">6. Salve o arquivo como artifacts/test_[nome-original].py</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">7. Informe quantos testes foram criados e quais casos foram cobertos</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">Arquivo a testar: args</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">"""</span><br></span></code></pre></div></div>
<div class="language-markdown codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-markdown codeBlock_bY9V thin-scrollbar" style="color:#F8F8F2;background-color:#282A36"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#F8F8F2"><span class="token comment" style="color:rgb(98, 114, 164)">&lt;!-- Antigravity: salve como criar-testes.md nos Workflows --&gt;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token title important punctuation" style="color:rgb(248, 248, 242)">#</span><span class="token title important"> Workflow: criar-testes</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">Gere testes unitários para o arquivo indicado. Não modifique o arquivo original.</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token title important punctuation" style="color:rgb(248, 248, 242)">##</span><span class="token title important"> Passos</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token list punctuation" style="color:rgb(248, 248, 242)">1.</span><span class="token plain"> Leia o código</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token list punctuation" style="color:rgb(248, 248, 242)">2.</span><span class="token plain"> Identifique funções/comportamentos testáveis</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token list punctuation" style="color:rgb(248, 248, 242)">3.</span><span class="token plain"> Para cada função, crie testes: caso normal, borda e erro</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token list punctuation" style="color:rgb(248, 248, 242)">4.</span><span class="token plain"> Use </span><span class="token code-snippet code keyword" style="color:rgb(189, 147, 249);font-style:italic">`pytest`</span><span class="token plain"> para Python</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token list punctuation" style="color:rgb(248, 248, 242)">5.</span><span class="token plain"> Comentários em português explicando cada teste</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token list punctuation" style="color:rgb(248, 248, 242)">6.</span><span class="token plain"> Salve como </span><span class="token code-snippet code keyword" style="color:rgb(189, 147, 249);font-style:italic">`artifacts/test_[nome-original].py`</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token list punctuation" style="color:rgb(248, 248, 242)">7.</span><span class="token plain"> Informe quantos testes e quais casos foram cobertos</span><br></span></code></pre></div></div>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="exemplo-de-uso-4">Exemplo de uso<a href="https://arq-eng-tecnologia.drcgrupo.com/blog/Workflows%20%E2%80%94%20slash%20commands%20prontos%20para%20usar#exemplo-de-uso-4" class="hash-link" aria-label="Link direto para Exemplo de uso" title="Link direto para Exemplo de uso" translate="no">​</a></h2>
<div class="language-text codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#F8F8F2;background-color:#282A36"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#F8F8F2"><span class="token plain">/criar-testes leitura_ifc.py</span><br></span></code></pre></div></div>
<p><strong>Output esperado:</strong> <code>artifacts/test_leitura_ifc.py</code> com testes completos prontos para rodar com <code>pytest</code>.</p>
<hr>
<h1>/documentar</h1>
<p><strong>O que faz:</strong> lê um script e gera documentação clara em português explicando o que ele faz, como usar e quais são os parâmetros.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="documentar-1">Documentar<a href="https://arq-eng-tecnologia.drcgrupo.com/blog/Workflows%20%E2%80%94%20slash%20commands%20prontos%20para%20usar#documentar-1" class="hash-link" aria-label="Link direto para Documentar" title="Link direto para Documentar" translate="no">​</a></h2>
<div class="language-toml codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-toml codeBlock_bY9V thin-scrollbar" style="color:#F8F8F2;background-color:#282A36"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#F8F8F2"><span class="token plain"># .gemini/commands/documentar.toml</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">name = "documentar"</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">description = "Gera documentação em português para um script existente"</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">prompt = """</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">Leia o arquivo indicado e crie uma documentação completa em português.</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">Estrutura da documentação:</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">1. **O que este script faz** (1 parágrafo simples, sem jargão)</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">2. **Como usar** (comando exato para rodar)</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">3. **Parâmetros e entradas** (o que precisa fornecer)</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">4. **O que o script gera** (output esperado)</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">5. **Exemplo prático completo**</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">6. **Erros comuns e como resolver**</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">Salve como artifacts/docs-[nome-do-arquivo].md</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">Escreva como se fosse explicar para alguém que nunca programou.</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">Arquivo: args</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">"""</span><br></span></code></pre></div></div>
<div class="language-markdown codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-markdown codeBlock_bY9V thin-scrollbar" style="color:#F8F8F2;background-color:#282A36"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#F8F8F2"><span class="token comment" style="color:rgb(98, 114, 164)">&lt;!-- Antigravity: salve como documentar.md nos Workflows --&gt;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token title important punctuation" style="color:rgb(248, 248, 242)">#</span><span class="token title important"> Workflow: documentar</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">Crie documentação em português para o arquivo indicado.</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token title important punctuation" style="color:rgb(248, 248, 242)">##</span><span class="token title important"> Estrutura</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token list punctuation" style="color:rgb(248, 248, 242)">1.</span><span class="token plain"> O que este script faz (linguagem simples)</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token list punctuation" style="color:rgb(248, 248, 242)">2.</span><span class="token plain"> Como usar (comando exato)</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token list punctuation" style="color:rgb(248, 248, 242)">3.</span><span class="token plain"> Parâmetros e entradas</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token list punctuation" style="color:rgb(248, 248, 242)">4.</span><span class="token plain"> O que gera (output esperado)</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token list punctuation" style="color:rgb(248, 248, 242)">5.</span><span class="token plain"> Exemplo prático completo</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token list punctuation" style="color:rgb(248, 248, 242)">6.</span><span class="token plain"> Erros comuns e como resolver</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">Salve como </span><span class="token code-snippet code keyword" style="color:rgb(189, 147, 249);font-style:italic">`artifacts/docs-[nome].md`</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">Escreva para quem nunca programou.</span><br></span></code></pre></div></div>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="exemplo-de-uso-5">Exemplo de uso<a href="https://arq-eng-tecnologia.drcgrupo.com/blog/Workflows%20%E2%80%94%20slash%20commands%20prontos%20para%20usar#exemplo-de-uso-5" class="hash-link" aria-label="Link direto para Exemplo de uso" title="Link direto para Exemplo de uso" translate="no">​</a></h2>
<div class="language-text codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#F8F8F2;background-color:#282A36"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#F8F8F2"><span class="token plain">/documentar exportar_planilha.py</span><br></span></code></pre></div></div>
<p><strong>Output esperado:</strong> <code>artifacts/docs-exportar_planilha.md</code> com documentação completa pronta para compartilhar com a equipe.</p>
<hr>
<h1>/revisar-codigo</h1>
<p><strong>O que faz:</strong> revisa um script e aponta problemas de qualidade, segurança e boas práticas — sem alterar nada, apenas sugere melhorias.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="revisar-código">Revisar código<a href="https://arq-eng-tecnologia.drcgrupo.com/blog/Workflows%20%E2%80%94%20slash%20commands%20prontos%20para%20usar#revisar-c%C3%B3digo" class="hash-link" aria-label="Link direto para Revisar código" title="Link direto para Revisar código" translate="no">​</a></h2>
<div class="language-toml codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-toml codeBlock_bY9V thin-scrollbar" style="color:#F8F8F2;background-color:#282A36"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#F8F8F2"><span class="token plain"># .gemini/commands/revisar-codigo.toml</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">name = "revisar-codigo"</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">description = "Revisa um script e aponta problemas de qualidade e segurança sem alterar nada"</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">prompt = """</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">Faça uma revisão de código no arquivo indicado. Não altere nenhum arquivo.</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">Verifique e aponte problemas em:</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">1. **Clareza:** o código é fácil de entender? Variáveis têm nomes claros?</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">2. **Segurança:** há senhas, tokens ou dados sensíveis expostos no código?</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">3. **Erros silenciosos:** há trechos que podem falhar sem avisar o usuário?</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">4. **Eficiência:** há algo que pode ser simplificado sem perder funcionalidade?</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">5. **Boas práticas:** o código segue o padrão da linguagem?</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">Formato do resultado:</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">- ✅ O que está bom</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">- ⚠️ O que precisa de atenção (com linha do arquivo)</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">- ❌ O que deve ser corrigido (com sugestão)</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">Salve o relatório em artifacts/revisao-[nome].md</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">Pergunte ao usuário se quer aplicar as correções sugeridas.</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">Arquivo: args</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">"""</span><br></span></code></pre></div></div>
<div class="language-markdown codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-markdown codeBlock_bY9V thin-scrollbar" style="color:#F8F8F2;background-color:#282A36"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#F8F8F2"><span class="token comment" style="color:rgb(98, 114, 164)">&lt;!-- Antigravity: salve como revisar-codigo.md nos Workflows --&gt;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token title important punctuation" style="color:rgb(248, 248, 242)">#</span><span class="token title important"> Workflow: revisar-codigo</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">Revise o arquivo indicado. Não altere nada.</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token title important punctuation" style="color:rgb(248, 248, 242)">##</span><span class="token title important"> Verifique</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token list punctuation" style="color:rgb(248, 248, 242)">1.</span><span class="token plain"> Clareza: nomes de variáveis, legibilidade</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token list punctuation" style="color:rgb(248, 248, 242)">2.</span><span class="token plain"> Segurança: senhas ou tokens expostos</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token list punctuation" style="color:rgb(248, 248, 242)">3.</span><span class="token plain"> Erros silenciosos: falhas sem aviso</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token list punctuation" style="color:rgb(248, 248, 242)">4.</span><span class="token plain"> Eficiência: simplificações possíveis</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token list punctuation" style="color:rgb(248, 248, 242)">5.</span><span class="token plain"> Boas práticas da linguagem</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token title important punctuation" style="color:rgb(248, 248, 242)">##</span><span class="token title important"> Formato</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token list punctuation" style="color:rgb(248, 248, 242)">-</span><span class="token plain"> ✅ O que está bom</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token list punctuation" style="color:rgb(248, 248, 242)">-</span><span class="token plain"> ⚠️ Atenção (com linha)</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token list punctuation" style="color:rgb(248, 248, 242)">-</span><span class="token plain"> ❌ Deve corrigir (com sugestão)</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">Salve em </span><span class="token code-snippet code keyword" style="color:rgb(189, 147, 249);font-style:italic">`artifacts/revisao-[nome].md`</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">Pergunte se quer aplicar as correções.</span><br></span></code></pre></div></div>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="exemplo-de-uso-6">Exemplo de uso<a href="https://arq-eng-tecnologia.drcgrupo.com/blog/Workflows%20%E2%80%94%20slash%20commands%20prontos%20para%20usar#exemplo-de-uso-6" class="hash-link" aria-label="Link direto para Exemplo de uso" title="Link direto para Exemplo de uso" translate="no">​</a></h2>
<div class="language-text codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#F8F8F2;background-color:#282A36"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#F8F8F2"><span class="token plain">/revisar-codigo leitura_ifc.py</span><br></span></code></pre></div></div>
<p><strong>Output esperado:</strong> <code>artifacts/revisao-leitura_ifc.md</code> com itens classificados em ✅ bom / ⚠️ atenção / ❌ corrigir.</p>
<hr>
<h1>Estrutura de pastas recomendada</h1>
<div class="language-text codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#F8F8F2;background-color:#282A36"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#F8F8F2"><span class="token plain">meu-projeto/</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">├── gemini.md                    ← instruções gerais do agente</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">├── .gemini/</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">│   └── commands/                ← workflows do Gemini CLI (.toml)</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">├── plans/                       ← planos gerados pelo /planejar</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">├── regras/</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">│   └── regras-de-negocio.md     ← regras do projeto</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">├── artifacts/                   ← outputs gerados pelos workflows</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">└── (código do projeto)</span><br></span></code></pre></div></div>
<aside><p>💡</p><p><strong>Fluxo recomendado para uma tarefa nova:</strong></p><p><code>/planejar</code> → aprova o plano → <code>/executar</code> → <code>/testar</code> → <code>/revisar-codigo</code></p><p>Se tiver bug no meio: <code>/investigar-bug</code> → aprova correção → <code>/testar</code> novamente</p></aside>]]></content>
    </entry>
    <entry>
        <title type="html"><![CDATA[Codex e Claude Code: guia básico]]></title>
        <id>https://arq-eng-tecnologia.drcgrupo.com/blog/codex_app_e_claude_code_guia_basico</id>
        <link href="https://arq-eng-tecnologia.drcgrupo.com/blog/codex_app_e_claude_code_guia_basico"/>
        <updated>2026-03-25T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[Guia básico para iniciantes em arquitetura, engenharia e tecnologia]]></summary>
        <content type="html"><![CDATA[<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="guia-básico-para-iniciantes-em-arquitetura-engenharia-e-tecnologia">Guia básico para iniciantes em arquitetura, engenharia e tecnologia<a href="https://arq-eng-tecnologia.drcgrupo.com/blog/codex_app_e_claude_code_guia_basico#guia-b%C3%A1sico-para-iniciantes-em-arquitetura-engenharia-e-tecnologia" class="hash-link" aria-label="Link direto para Guia básico para iniciantes em arquitetura, engenharia e tecnologia" title="Link direto para Guia básico para iniciantes em arquitetura, engenharia e tecnologia" translate="no">​</a></h2>
<hr>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="1-objetivo-deste-material">1. Objetivo deste material<a href="https://arq-eng-tecnologia.drcgrupo.com/blog/codex_app_e_claude_code_guia_basico#1-objetivo-deste-material" class="hash-link" aria-label="Link direto para 1. Objetivo deste material" title="Link direto para 1. Objetivo deste material" translate="no">​</a></h2>
<p>Este material resume, de forma simples e prática, o que são:</p>
<ul>
<li class=""><strong>Codex app</strong>, da <strong>OpenAI</strong>;</li>
<li class=""><strong>Claude Code</strong>, da <strong>Anthropic</strong>.</li>
</ul>
<p>A ideia aqui não é aprofundar tudo, mas explicar:</p>
<ul>
<li class="">o que cada ferramenta faz;</li>
<li class="">como elas funcionam no dia a dia;</li>
<li class="">quando cada uma faz mais sentido;</li>
<li class="">quais modelos aparecem nas documentações oficiais;</li>
<li class="">onde consultar as fontes oficiais.</li>
</ul>
<p>O foco continua sendo o mesmo público do projeto: <strong>iniciantes</strong>, em ambiente <strong>Windows</strong>, usando IA como apoio para produtividade, automação, scripts, revisão e organização de projetos.</p>
<hr>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="2-antes-de-tudo-o-que-essas-ferramentas-são">2. Antes de tudo: o que essas ferramentas são?<a href="https://arq-eng-tecnologia.drcgrupo.com/blog/codex_app_e_claude_code_guia_basico#2-antes-de-tudo-o-que-essas-ferramentas-s%C3%A3o" class="hash-link" aria-label="Link direto para 2. Antes de tudo: o que essas ferramentas são?" title="Link direto para 2. Antes de tudo: o que essas ferramentas são?" translate="no">​</a></h2>
<p>As duas ferramentas pertencem à categoria de <strong>agentes de codificação</strong>.</p>
<p>Na prática, isso significa que elas não servem apenas para “responder perguntas sobre código” como um chat comum.
Elas podem trabalhar de forma mais ativa dentro de um projeto, por exemplo:</p>
<ul>
<li class="">ler arquivos da pasta do projeto;</li>
<li class="">sugerir alterações;</li>
<li class="">editar arquivos;</li>
<li class="">executar comandos no terminal;</li>
<li class="">explicar código existente;</li>
<li class="">ajudar a testar, revisar e organizar tarefas.</li>
</ul>
<p>Em outras palavras:</p>
<ul>
<li class="">um <strong>chat comum</strong> normalmente conversa sobre o código;</li>
<li class="">um <strong>agente de código</strong> consegue <strong>agir no ambiente de desenvolvimento</strong>, dentro de permissões e regras.</li>
</ul>
<hr>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="3-o-que-é-o-codex-app-da-openai">3. O que é o Codex app da OpenAI?<a href="https://arq-eng-tecnologia.drcgrupo.com/blog/codex_app_e_claude_code_guia_basico#3-o-que-%C3%A9-o-codex-app-da-openai" class="hash-link" aria-label="Link direto para 3. O que é o Codex app da OpenAI?" title="Link direto para 3. O que é o Codex app da OpenAI?" translate="no">​</a></h2>
<p>O <strong>Codex app</strong> é a experiência de desktop da OpenAI para trabalhar com o Codex em vários fluxos de desenvolvimento.
A documentação oficial descreve o app como uma experiência focada para trabalhar com <strong>threads em paralelo</strong>, com <strong>suporte a worktrees</strong>, <strong>automações</strong> e <strong>funcionalidades de Git</strong>.</p>
<p>De forma simples, pense assim:</p>
<ul>
<li class="">o <strong>Codex</strong> é o agente de codificação da OpenAI;</li>
<li class="">o <strong>Codex app</strong> é uma interface para organizar esse trabalho de forma mais visual e operacional.</li>
</ul>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="o-que-ele-faz-na-prática">O que ele faz na prática<a href="https://arq-eng-tecnologia.drcgrupo.com/blog/codex_app_e_claude_code_guia_basico#o-que-ele-faz-na-pr%C3%A1tica" class="hash-link" aria-label="Link direto para O que ele faz na prática" title="Link direto para O que ele faz na prática" translate="no">​</a></h3>
<p>Segundo a documentação oficial, o Codex pode ajudar a:</p>
<ul>
<li class="">escrever código;</li>
<li class="">entender bases de código desconhecidas;</li>
<li class="">revisar código;</li>
<li class="">propor correções;</li>
<li class="">trabalhar com múltiplas tarefas em paralelo.</li>
</ul>
<p>A OpenAI também descreve o Codex app como um “<strong>command center</strong>” para trabalho com agentes de programação.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="o-que-isso-significa-para-o-usuário-iniciante">O que isso significa para o usuário iniciante<a href="https://arq-eng-tecnologia.drcgrupo.com/blog/codex_app_e_claude_code_guia_basico#o-que-isso-significa-para-o-usu%C3%A1rio-iniciante" class="hash-link" aria-label="Link direto para O que isso significa para o usuário iniciante" title="Link direto para O que isso significa para o usuário iniciante" translate="no">​</a></h3>
<p>Para quem está começando, o Codex app pode ser entendido como:</p>
<ul>
<li class="">um lugar para conversar com agentes de codificação;</li>
<li class="">organizar tarefas por projeto;</li>
<li class="">revisar alterações antes de aplicar;</li>
<li class="">combinar contexto de projeto + execução de tarefas + Git.</li>
</ul>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="observação-importante-sobre-windows">Observação importante sobre Windows<a href="https://arq-eng-tecnologia.drcgrupo.com/blog/codex_app_e_claude_code_guia_basico#observa%C3%A7%C3%A3o-importante-sobre-windows" class="hash-link" aria-label="Link direto para Observação importante sobre Windows" title="Link direto para Observação importante sobre Windows" translate="no">​</a></h3>
<p>A OpenAI anunciou o Codex app inicialmente para macOS e depois informou que ele passou a estar disponível também para <strong>Windows</strong>.
Isso é relevante para o contexto do seu projeto, porque o ambiente de referência é Windows.</p>
<hr>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="4-o-que-é-o-claude-code-da-anthropic">4. O que é o Claude Code da Anthropic?<a href="https://arq-eng-tecnologia.drcgrupo.com/blog/codex_app_e_claude_code_guia_basico#4-o-que-%C3%A9-o-claude-code-da-anthropic" class="hash-link" aria-label="Link direto para 4. O que é o Claude Code da Anthropic?" title="Link direto para 4. O que é o Claude Code da Anthropic?" translate="no">​</a></h2>
<p>O <strong>Claude Code</strong> é a ferramenta agentic de codificação da Anthropic.
A documentação oficial explica que ele ajuda a:</p>
<ul>
<li class="">construir funcionalidades;</li>
<li class="">corrigir bugs;</li>
<li class="">automatizar tarefas de desenvolvimento;</li>
<li class="">compreender a base de código;</li>
<li class="">atuar em arquivos e ferramentas do ambiente.</li>
</ul>
<p>A própria Anthropic descreve o Claude Code como uma ferramenta que pode:</p>
<ul>
<li class="">ler a base de código;</li>
<li class="">editar arquivos;</li>
<li class="">executar comandos;</li>
<li class="">integrar-se ao terminal, IDE, app desktop e navegador.</li>
</ul>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="o-que-ele-faz-na-prática-1">O que ele faz na prática<a href="https://arq-eng-tecnologia.drcgrupo.com/blog/codex_app_e_claude_code_guia_basico#o-que-ele-faz-na-pr%C3%A1tica-1" class="hash-link" aria-label="Link direto para O que ele faz na prática" title="Link direto para O que ele faz na prática" translate="no">​</a></h3>
<p>Em uso diário, o Claude Code pode ser usado para:</p>
<ul>
<li class="">pedir explicações sobre um projeto existente;</li>
<li class="">solicitar criação de scripts;</li>
<li class="">revisar erros;</li>
<li class="">refatorar trechos;</li>
<li class="">executar tarefas repetitivas;</li>
<li class="">gerar plano de implementação antes de mudar código.</li>
</ul>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="observação-importante-sobre-windows-1">Observação importante sobre Windows<a href="https://arq-eng-tecnologia.drcgrupo.com/blog/codex_app_e_claude_code_guia_basico#observa%C3%A7%C3%A3o-importante-sobre-windows-1" class="hash-link" aria-label="Link direto para Observação importante sobre Windows" title="Link direto para Observação importante sobre Windows" translate="no">​</a></h3>
<p>A documentação oficial informa compatibilidade com:</p>
<ul>
<li class=""><strong>Windows 10 1809+</strong> ou <strong>Windows Server 2019+</strong>;</li>
<li class="">PowerShell ou CMD;</li>
<li class="">e, no Windows, a Anthropic informa que <strong>Git for Windows é necessário</strong>.</li>
</ul>
<p>Para o seu público, isso é importante porque mostra que não é uma ferramenta pensada apenas para macOS ou Linux.</p>
<hr>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="5-a-ideia-central-como-essas-ferramentas-funcionam">5. A ideia central: como essas ferramentas funcionam?<a href="https://arq-eng-tecnologia.drcgrupo.com/blog/codex_app_e_claude_code_guia_basico#5-a-ideia-central-como-essas-ferramentas-funcionam" class="hash-link" aria-label="Link direto para 5. A ideia central: como essas ferramentas funcionam?" title="Link direto para 5. A ideia central: como essas ferramentas funcionam?" translate="no">​</a></h2>
<p>Embora OpenAI e Anthropic usem terminologias próprias, o funcionamento geral é parecido.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="fluxo-básico">Fluxo básico<a href="https://arq-eng-tecnologia.drcgrupo.com/blog/codex_app_e_claude_code_guia_basico#fluxo-b%C3%A1sico" class="hash-link" aria-label="Link direto para Fluxo básico" title="Link direto para Fluxo básico" translate="no">​</a></h2>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="1-você-escolhe-uma-pasta-ou-projeto">1. Você escolhe uma pasta ou projeto<a href="https://arq-eng-tecnologia.drcgrupo.com/blog/codex_app_e_claude_code_guia_basico#1-voc%C3%AA-escolhe-uma-pasta-ou-projeto" class="hash-link" aria-label="Link direto para 1. Você escolhe uma pasta ou projeto" title="Link direto para 1. Você escolhe uma pasta ou projeto" translate="no">​</a></h3>
<p>A ferramenta passa a trabalhar olhando para aquele contexto.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="2-você-dá-uma-instrução">2. Você dá uma instrução<a href="https://arq-eng-tecnologia.drcgrupo.com/blog/codex_app_e_claude_code_guia_basico#2-voc%C3%AA-d%C3%A1-uma-instru%C3%A7%C3%A3o" class="hash-link" aria-label="Link direto para 2. Você dá uma instrução" title="Link direto para 2. Você dá uma instrução" translate="no">​</a></h3>
<p>Exemplos:</p>
<ul>
<li class="">“explique este projeto”;</li>
<li class="">“crie um script para renomear arquivos”;</li>
<li class="">“revise este erro”;</li>
<li class="">“monte um plano antes de alterar”.</li>
</ul>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="3-o-agente-lê-contexto">3. O agente lê contexto<a href="https://arq-eng-tecnologia.drcgrupo.com/blog/codex_app_e_claude_code_guia_basico#3-o-agente-l%C3%AA-contexto" class="hash-link" aria-label="Link direto para 3. O agente lê contexto" title="Link direto para 3. O agente lê contexto" translate="no">​</a></h3>
<p>Ele pode analisar arquivos, estrutura de pastas, comandos, dependências e histórico local.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="4-o-agente-propõe-ou-executa-ações">4. O agente propõe ou executa ações<a href="https://arq-eng-tecnologia.drcgrupo.com/blog/codex_app_e_claude_code_guia_basico#4-o-agente-prop%C3%B5e-ou-executa-a%C3%A7%C3%B5es" class="hash-link" aria-label="Link direto para 4. O agente propõe ou executa ações" title="Link direto para 4. O agente propõe ou executa ações" translate="no">​</a></h3>
<p>Dependendo do fluxo e das permissões, ele pode:</p>
<ul>
<li class="">sugerir mudanças;</li>
<li class="">editar arquivos;</li>
<li class="">executar comandos;</li>
<li class="">abrir uma revisão;</li>
<li class="">pedir aprovação para ações mais sensíveis.</li>
</ul>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="5-você-revisa">5. Você revisa<a href="https://arq-eng-tecnologia.drcgrupo.com/blog/codex_app_e_claude_code_guia_basico#5-voc%C3%AA-revisa" class="hash-link" aria-label="Link direto para 5. Você revisa" title="Link direto para 5. Você revisa" translate="no">​</a></h3>
<p>Esse ponto é essencial.
Mesmo com agentes bons, o uso correto continua sendo:</p>
<ul>
<li class="">revisar alterações;</li>
<li class="">validar resultado;</li>
<li class="">testar;</li>
<li class="">versionar com Git quando necessário.</li>
</ul>
<hr>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="6-codex-app-e-claude-code-não-são-mágica">6. Codex app e Claude Code não são “mágica”<a href="https://arq-eng-tecnologia.drcgrupo.com/blog/codex_app_e_claude_code_guia_basico#6-codex-app-e-claude-code-n%C3%A3o-s%C3%A3o-m%C3%A1gica" class="hash-link" aria-label="Link direto para 6. Codex app e Claude Code não são “mágica”" title="Link direto para 6. Codex app e Claude Code não são “mágica”" translate="no">​</a></h2>
<p>Um erro comum de iniciante é imaginar que essas ferramentas “programam sozinhas”.
Na prática, elas funcionam melhor quando existe:</p>
<ul>
<li class="">pasta organizada;</li>
<li class="">instrução clara;</li>
<li class="">objetivo pequeno por etapa;</li>
<li class="">validação humana;</li>
<li class="">controle de versão.</li>
</ul>
<p>Por isso, o melhor uso continua sendo o mesmo princípio já presente no restante do projeto:</p>
<ul>
<li class=""><strong>planejar</strong>;</li>
<li class=""><strong>executar em etapas</strong>;</li>
<li class=""><strong>testar</strong>;</li>
<li class=""><strong>revisar</strong>;</li>
<li class=""><strong>documentar</strong>.</li>
</ul>
<hr>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="7-onde-o-codex-app-se-encaixa-melhor">7. Onde o Codex app se encaixa melhor?<a href="https://arq-eng-tecnologia.drcgrupo.com/blog/codex_app_e_claude_code_guia_basico#7-onde-o-codex-app-se-encaixa-melhor" class="hash-link" aria-label="Link direto para 7. Onde o Codex app se encaixa melhor?" title="Link direto para 7. Onde o Codex app se encaixa melhor?" translate="no">​</a></h2>
<p>O Codex app tende a fazer mais sentido quando você quer:</p>
<ul>
<li class="">trabalhar com <strong>várias frentes em paralelo</strong>;</li>
<li class="">organizar tarefas por thread;</li>
<li class="">usar uma experiência mais centralizada;</li>
<li class="">combinar app + Git + worktrees + tarefas em nuvem/local;</li>
<li class="">manter um fluxo mais operacional e visual.</li>
</ul>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="exemplos-de-uso">Exemplos de uso<a href="https://arq-eng-tecnologia.drcgrupo.com/blog/codex_app_e_claude_code_guia_basico#exemplos-de-uso" class="hash-link" aria-label="Link direto para Exemplos de uso" title="Link direto para Exemplos de uso" translate="no">​</a></h3>
<ul>
<li class="">revisar um projeto React;</li>
<li class="">criar uma automação em Python;</li>
<li class="">abrir tarefas separadas para corrigir bugs diferentes;</li>
<li class="">analisar uma base de código antiga;</li>
<li class="">produzir mudanças com revisão antes de aceitar.</li>
</ul>
<hr>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="8-onde-o-claude-code-se-encaixa-melhor">8. Onde o Claude Code se encaixa melhor?<a href="https://arq-eng-tecnologia.drcgrupo.com/blog/codex_app_e_claude_code_guia_basico#8-onde-o-claude-code-se-encaixa-melhor" class="hash-link" aria-label="Link direto para 8. Onde o Claude Code se encaixa melhor?" title="Link direto para 8. Onde o Claude Code se encaixa melhor?" translate="no">​</a></h2>
<p>O Claude Code tende a fazer muito sentido quando você quer:</p>
<ul>
<li class="">uma experiência fortemente ligada ao <strong>terminal</strong> e à <strong>IDE</strong>;</li>
<li class="">trabalhar com leitura e edição da base de código;</li>
<li class="">automatizar tarefas de desenvolvimento;</li>
<li class="">criar um fluxo com regras do projeto usando arquivos como <code>CLAUDE.md</code>;</li>
<li class="">usar o mesmo ecossistema também de forma programável com o <strong>Claude Agent SDK</strong>.</li>
</ul>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="exemplos-de-uso-1">Exemplos de uso<a href="https://arq-eng-tecnologia.drcgrupo.com/blog/codex_app_e_claude_code_guia_basico#exemplos-de-uso-1" class="hash-link" aria-label="Link direto para Exemplos de uso" title="Link direto para Exemplos de uso" translate="no">​</a></h3>
<ul>
<li class="">pedir para explicar uma base de código existente;</li>
<li class="">gerar scripts utilitários;</li>
<li class="">investigar bug com contexto do repositório;</li>
<li class="">revisar e refatorar arquivos;</li>
<li class="">usar o agente como apoio constante no terminal.</li>
</ul>
<hr>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="9-comparação-direta">9. Comparação direta<a href="https://arq-eng-tecnologia.drcgrupo.com/blog/codex_app_e_claude_code_guia_basico#9-compara%C3%A7%C3%A3o-direta" class="hash-link" aria-label="Link direto para 9. Comparação direta" title="Link direto para 9. Comparação direta" translate="no">​</a></h2>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="codex-app-openai">Codex app (OpenAI)<a href="https://arq-eng-tecnologia.drcgrupo.com/blog/codex_app_e_claude_code_guia_basico#codex-app-openai" class="hash-link" aria-label="Link direto para Codex app (OpenAI)" title="Link direto para Codex app (OpenAI)" translate="no">​</a></h2>
<p>Pense no Codex app como:</p>
<ul>
<li class="">uma central para trabalho com o agente de código da OpenAI;</li>
<li class="">foco em threads, paralelismo, worktrees, automações e Git;</li>
<li class="">boa opção para fluxo mais visual e de coordenação.</li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="claude-code-anthropic">Claude Code (Anthropic)<a href="https://arq-eng-tecnologia.drcgrupo.com/blog/codex_app_e_claude_code_guia_basico#claude-code-anthropic" class="hash-link" aria-label="Link direto para Claude Code (Anthropic)" title="Link direto para Claude Code (Anthropic)" translate="no">​</a></h2>
<p>Pense no Claude Code como:</p>
<ul>
<li class="">um agente de codificação muito ligado ao terminal e ao editor;</li>
<li class="">forte em leitura de base de código, edição, execução de comandos e automação;</li>
<li class="">boa opção para fluxo contínuo de desenvolvimento assistido.</li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="em-comum">Em comum<a href="https://arq-eng-tecnologia.drcgrupo.com/blog/codex_app_e_claude_code_guia_basico#em-comum" class="hash-link" aria-label="Link direto para Em comum" title="Link direto para Em comum" translate="no">​</a></h2>
<p>Os dois ajudam a:</p>
<ul>
<li class="">entender projeto;</li>
<li class="">editar código;</li>
<li class="">automatizar tarefas;</li>
<li class="">acelerar revisão e implementação;</li>
<li class="">trabalhar melhor quando o projeto está organizado.</li>
</ul>
<hr>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="10-modelos-citados-nas-fontes-oficiais">10. Modelos citados nas fontes oficiais<a href="https://arq-eng-tecnologia.drcgrupo.com/blog/codex_app_e_claude_code_guia_basico#10-modelos-citados-nas-fontes-oficiais" class="hash-link" aria-label="Link direto para 10. Modelos citados nas fontes oficiais" title="Link direto para 10. Modelos citados nas fontes oficiais" translate="no">​</a></h2>
<p>Esta parte é importante porque muita gente confunde <strong>ferramenta</strong> com <strong>modelo</strong>.</p>
<p>A ferramenta é a interface e o fluxo de trabalho.
O modelo é o mecanismo de IA usado por trás.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="101-modelos-citados-oficialmente-no-ecossistema-codex">10.1. Modelos citados oficialmente no ecossistema Codex<a href="https://arq-eng-tecnologia.drcgrupo.com/blog/codex_app_e_claude_code_guia_basico#101-modelos-citados-oficialmente-no-ecossistema-codex" class="hash-link" aria-label="Link direto para 10.1. Modelos citados oficialmente no ecossistema Codex" title="Link direto para 10.1. Modelos citados oficialmente no ecossistema Codex" translate="no">​</a></h2>
<p>Nas fontes oficiais da OpenAI consultadas, aparecem estes nomes relevantes:</p>
<ul>
<li class=""><strong>gpt-5.4</strong>: recomendado pela OpenAI para a maioria das tarefas no Codex;</li>
<li class=""><strong>gpt-5.4-mini</strong>: opção mais rápida e econômica para tarefas mais leves;</li>
<li class=""><strong>gpt-5.3-codex-spark</strong>: citado em research preview para iteração de código muito rápida em alguns contextos;</li>
<li class=""><strong>GPT-5-Codex</strong>: modelo otimizado para tarefas agentic de codificação;</li>
<li class=""><strong>GPT-5.3-Codex</strong>: modelo descrito pela OpenAI como muito capaz para tarefas de codificação agentic.</li>
</ul>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="como-interpretar-isso-de-forma-simples">Como interpretar isso de forma simples<a href="https://arq-eng-tecnologia.drcgrupo.com/blog/codex_app_e_claude_code_guia_basico#como-interpretar-isso-de-forma-simples" class="hash-link" aria-label="Link direto para Como interpretar isso de forma simples" title="Link direto para Como interpretar isso de forma simples" translate="no">​</a></h3>
<ul>
<li class="">se a tarefa é mais geral e forte, a documentação sugere começar com <strong>gpt-5.4</strong>;</li>
<li class="">se a tarefa é mais leve, <strong>gpt-5.4-mini</strong> pode fazer mais sentido;</li>
<li class="">quando a documentação fala em <strong>GPT-5-Codex</strong> ou <strong>GPT-5.3-Codex</strong>, está falando de variantes otimizadas para fluxos de codificação agentic.</li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="102-modelos-citados-oficialmente-no-ecossistema-claude-code">10.2. Modelos citados oficialmente no ecossistema Claude Code<a href="https://arq-eng-tecnologia.drcgrupo.com/blog/codex_app_e_claude_code_guia_basico#102-modelos-citados-oficialmente-no-ecossistema-claude-code" class="hash-link" aria-label="Link direto para 10.2. Modelos citados oficialmente no ecossistema Claude Code" title="Link direto para 10.2. Modelos citados oficialmente no ecossistema Claude Code" translate="no">​</a></h2>
<p>Na documentação oficial consultada da Anthropic, aparecem:</p>
<ul>
<li class="">aliases de modelo no Claude Code como <strong>sonnet</strong>, <strong>opus</strong> e <strong>haiku</strong>;</li>
<li class="">nas páginas gerais da Anthropic, a geração mais recente mencionada inclui <strong>Claude Opus 4.6</strong> e <strong>Claude Sonnet 4.6</strong>.</li>
</ul>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="como-interpretar-isso-de-forma-simples-1">Como interpretar isso de forma simples<a href="https://arq-eng-tecnologia.drcgrupo.com/blog/codex_app_e_claude_code_guia_basico#como-interpretar-isso-de-forma-simples-1" class="hash-link" aria-label="Link direto para Como interpretar isso de forma simples" title="Link direto para Como interpretar isso de forma simples" translate="no">​</a></h3>
<ul>
<li class=""><strong>Opus</strong> costuma representar a linha mais forte para tarefas complexas;</li>
<li class=""><strong>Sonnet</strong> costuma equilibrar qualidade e velocidade;</li>
<li class=""><strong>Haiku</strong> tende a ser a linha mais leve e rápida;</li>
<li class="">no Claude Code, a documentação explica que aliases podem apontar para a versão mais recente habilitada no ambiente.</li>
</ul>
<hr>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="11-qual-dos-dois-escolher">11. Qual dos dois escolher?<a href="https://arq-eng-tecnologia.drcgrupo.com/blog/codex_app_e_claude_code_guia_basico#11-qual-dos-dois-escolher" class="hash-link" aria-label="Link direto para 11. Qual dos dois escolher?" title="Link direto para 11. Qual dos dois escolher?" translate="no">​</a></h2>
<p>Para um iniciante, a resposta mais honesta é:</p>
<p><strong>depende mais do fluxo de trabalho do que da marca</strong>.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="use-codex-app-quando-você-quiser">Use Codex app quando você quiser<a href="https://arq-eng-tecnologia.drcgrupo.com/blog/codex_app_e_claude_code_guia_basico#use-codex-app-quando-voc%C3%AA-quiser" class="hash-link" aria-label="Link direto para Use Codex app quando você quiser" title="Link direto para Use Codex app quando você quiser" translate="no">​</a></h2>
<ul>
<li class="">experiência mais centrada em projetos e threads;</li>
<li class="">múltiplas tarefas em paralelo;</li>
<li class="">integração forte com worktrees e revisão;</li>
<li class="">uma central operacional do agente.</li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="use-claude-code-quando-você-quiser">Use Claude Code quando você quiser<a href="https://arq-eng-tecnologia.drcgrupo.com/blog/codex_app_e_claude_code_guia_basico#use-claude-code-quando-voc%C3%AA-quiser" class="hash-link" aria-label="Link direto para Use Claude Code quando você quiser" title="Link direto para Use Claude Code quando você quiser" translate="no">​</a></h2>
<ul>
<li class="">experiência muito próxima do terminal e IDE;</li>
<li class="">interação frequente com base de código local;</li>
<li class="">automação e edição assistida no fluxo do desenvolvimento;</li>
<li class="">regras do projeto mais explícitas no estilo <code>CLAUDE.md</code>.</li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="para-o-público-do-projeto">Para o público do projeto<a href="https://arq-eng-tecnologia.drcgrupo.com/blog/codex_app_e_claude_code_guia_basico#para-o-p%C3%BAblico-do-projeto" class="hash-link" aria-label="Link direto para Para o público do projeto" title="Link direto para Para o público do projeto" translate="no">​</a></h2>
<p>Pensando em arquitetura, engenharia e automações simples, ambos podem ser úteis para:</p>
<ul>
<li class="">scripts em Python;</li>
<li class="">utilitários em JavaScript/Node.js;</li>
<li class="">revisão de código;</li>
<li class="">explicação de erros;</li>
<li class="">geração de estrutura inicial de projeto;</li>
<li class="">documentação técnica básica.</li>
</ul>
<hr>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="12-boas-práticas-para-usar-qualquer-um-dos-dois">12. Boas práticas para usar qualquer um dos dois<a href="https://arq-eng-tecnologia.drcgrupo.com/blog/codex_app_e_claude_code_guia_basico#12-boas-pr%C3%A1ticas-para-usar-qualquer-um-dos-dois" class="hash-link" aria-label="Link direto para 12. Boas práticas para usar qualquer um dos dois" title="Link direto para 12. Boas práticas para usar qualquer um dos dois" translate="no">​</a></h2>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="1-trabalhe-em-etapas-pequenas">1. Trabalhe em etapas pequenas<a href="https://arq-eng-tecnologia.drcgrupo.com/blog/codex_app_e_claude_code_guia_basico#1-trabalhe-em-etapas-pequenas" class="hash-link" aria-label="Link direto para 1. Trabalhe em etapas pequenas" title="Link direto para 1. Trabalhe em etapas pequenas" translate="no">​</a></h3>
<p>Em vez de pedir “faça tudo”, peça blocos menores.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="2-peça-plano-antes-da-execução">2. Peça plano antes da execução<a href="https://arq-eng-tecnologia.drcgrupo.com/blog/codex_app_e_claude_code_guia_basico#2-pe%C3%A7a-plano-antes-da-execu%C3%A7%C3%A3o" class="hash-link" aria-label="Link direto para 2. Peça plano antes da execução" title="Link direto para 2. Peça plano antes da execução" translate="no">​</a></h3>
<p>Exemplo:</p>
<blockquote>
<p>Antes de alterar, leia o projeto e monte um plano curto com os passos.</p>
</blockquote>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="3-revise-arquivos-alterados">3. Revise arquivos alterados<a href="https://arq-eng-tecnologia.drcgrupo.com/blog/codex_app_e_claude_code_guia_basico#3-revise-arquivos-alterados" class="hash-link" aria-label="Link direto para 3. Revise arquivos alterados" title="Link direto para 3. Revise arquivos alterados" translate="no">​</a></h3>
<p>Nunca trate a saída como verdade automática.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="4-use-git">4. Use Git<a href="https://arq-eng-tecnologia.drcgrupo.com/blog/codex_app_e_claude_code_guia_basico#4-use-git" class="hash-link" aria-label="Link direto para 4. Use Git" title="Link direto para 4. Use Git" translate="no">​</a></h3>
<p>Mesmo em projeto pequeno, Git ajuda a desfazer erros e comparar mudanças.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="5-dê-contexto">5. Dê contexto<a href="https://arq-eng-tecnologia.drcgrupo.com/blog/codex_app_e_claude_code_guia_basico#5-d%C3%AA-contexto" class="hash-link" aria-label="Link direto para 5. Dê contexto" title="Link direto para 5. Dê contexto" translate="no">​</a></h3>
<p>Exemplo:</p>
<ul>
<li class="">objetivo do script;</li>
<li class="">onde ele vai rodar;</li>
<li class="">entradas e saídas esperadas;</li>
<li class="">restrições do projeto.</li>
</ul>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="6-evite-instruções-vagas">6. Evite instruções vagas<a href="https://arq-eng-tecnologia.drcgrupo.com/blog/codex_app_e_claude_code_guia_basico#6-evite-instru%C3%A7%C3%B5es-vagas" class="hash-link" aria-label="Link direto para 6. Evite instruções vagas" title="Link direto para 6. Evite instruções vagas" translate="no">​</a></h3>
<p>Em vez de:</p>
<blockquote>
<p>melhora isso</p>
</blockquote>
<p>prefira:</p>
<blockquote>
<p>revise este arquivo, identifique problemas de clareza, duplicação e possíveis erros de lógica.</p>
</blockquote>
<hr>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="13-exemplo-de-uso-no-contexto-do-curso">13. Exemplo de uso no contexto do curso<a href="https://arq-eng-tecnologia.drcgrupo.com/blog/codex_app_e_claude_code_guia_basico#13-exemplo-de-uso-no-contexto-do-curso" class="hash-link" aria-label="Link direto para 13. Exemplo de uso no contexto do curso" title="Link direto para 13. Exemplo de uso no contexto do curso" translate="no">​</a></h2>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="exemplo-1--python">Exemplo 1 — Python<a href="https://arq-eng-tecnologia.drcgrupo.com/blog/codex_app_e_claude_code_guia_basico#exemplo-1--python" class="hash-link" aria-label="Link direto para Exemplo 1 — Python" title="Link direto para Exemplo 1 — Python" translate="no">​</a></h3>
<blockquote>
<p>Leia esta pasta de projeto e crie um script Python simples para organizar arquivos CSV por mês. Antes, mostre um plano curto.</p>
</blockquote>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="exemplo-2--javascript--nodejs">Exemplo 2 — JavaScript / Node.js<a href="https://arq-eng-tecnologia.drcgrupo.com/blog/codex_app_e_claude_code_guia_basico#exemplo-2--javascript--nodejs" class="hash-link" aria-label="Link direto para Exemplo 2 — JavaScript / Node.js" title="Link direto para Exemplo 2 — JavaScript / Node.js" translate="no">​</a></h3>
<blockquote>
<p>Analise esta aplicação Node.js e explique como ela recebe dados, processa e grava saída. Depois sugira melhorias pequenas.</p>
</blockquote>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="exemplo-3--revisão">Exemplo 3 — revisão<a href="https://arq-eng-tecnologia.drcgrupo.com/blog/codex_app_e_claude_code_guia_basico#exemplo-3--revis%C3%A3o" class="hash-link" aria-label="Link direto para Exemplo 3 — revisão" title="Link direto para Exemplo 3 — revisão" translate="no">​</a></h3>
<blockquote>
<p>Revise este projeto e liste bugs prováveis, riscos e próximos testes recomendados.</p>
</blockquote>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="exemplo-4--documentação">Exemplo 4 — documentação<a href="https://arq-eng-tecnologia.drcgrupo.com/blog/codex_app_e_claude_code_guia_basico#exemplo-4--documenta%C3%A7%C3%A3o" class="hash-link" aria-label="Link direto para Exemplo 4 — documentação" title="Link direto para Exemplo 4 — documentação" translate="no">​</a></h3>
<blockquote>
<p>Gere um README básico explicando instalação, uso e estrutura do projeto.</p>
</blockquote>
<hr>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="14-conclusão">14. Conclusão<a href="https://arq-eng-tecnologia.drcgrupo.com/blog/codex_app_e_claude_code_guia_basico#14-conclus%C3%A3o" class="hash-link" aria-label="Link direto para 14. Conclusão" title="Link direto para 14. Conclusão" translate="no">​</a></h2>
<p>O mais importante para o iniciante não é decorar todas as diferenças entre OpenAI e Anthropic.
O mais importante é entender que:</p>
<ul>
<li class=""><strong>Codex app</strong> e <strong>Claude Code</strong> são ferramentas de trabalho com agentes de codificação;</li>
<li class="">elas funcionam melhor com projeto organizado e instruções claras;</li>
<li class="">elas podem acelerar bastante tarefas reais de desenvolvimento;</li>
<li class="">continuam exigindo revisão, testes e bom senso.</li>
</ul>
<p>Em resumo:</p>
<ul>
<li class=""><strong>Codex app</strong>: mais cara de central de operação para agentes de código;</li>
<li class=""><strong>Claude Code</strong>: mais cara de assistente agentic integrado ao terminal e ao fluxo de desenvolvimento.</li>
</ul>
<p>As duas fazem parte de uma mesma mudança de paradigma: sair do “chat que responde” para o “agente que ajuda a executar trabalho técnico”.</p>
<hr>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="15-fontes-oficiais-consultadas">15. Fontes oficiais consultadas<a href="https://arq-eng-tecnologia.drcgrupo.com/blog/codex_app_e_claude_code_guia_basico#15-fontes-oficiais-consultadas" class="hash-link" aria-label="Link direto para 15. Fontes oficiais consultadas" title="Link direto para 15. Fontes oficiais consultadas" translate="no">​</a></h2>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="openai">OpenAI<a href="https://arq-eng-tecnologia.drcgrupo.com/blog/codex_app_e_claude_code_guia_basico#openai" class="hash-link" aria-label="Link direto para OpenAI" title="Link direto para OpenAI" translate="no">​</a></h3>
<ul>
<li class="">Codex (visão geral): <a href="https://developers.openai.com/codex/" target="_blank" rel="noopener noreferrer" class="">https://developers.openai.com/codex/</a></li>
<li class="">Codex app: <a href="https://developers.openai.com/codex/app/" target="_blank" rel="noopener noreferrer" class="">https://developers.openai.com/codex/app/</a></li>
<li class="">Codex quickstart: <a href="https://developers.openai.com/codex/quickstart/" target="_blank" rel="noopener noreferrer" class="">https://developers.openai.com/codex/quickstart/</a></li>
<li class="">Codex CLI: <a href="https://developers.openai.com/codex/cli/" target="_blank" rel="noopener noreferrer" class="">https://developers.openai.com/codex/cli/</a></li>
<li class="">Codex models: <a href="https://developers.openai.com/codex/models/" target="_blank" rel="noopener noreferrer" class="">https://developers.openai.com/codex/models/</a></li>
<li class="">GPT-5-Codex: <a href="https://developers.openai.com/api/docs/models/gpt-5-codex" target="_blank" rel="noopener noreferrer" class="">https://developers.openai.com/api/docs/models/gpt-5-codex</a></li>
<li class="">GPT-5.3-Codex: <a href="https://developers.openai.com/api/docs/models/gpt-5.3-codex" target="_blank" rel="noopener noreferrer" class="">https://developers.openai.com/api/docs/models/gpt-5.3-codex</a></li>
<li class="">Anúncio do Codex app: <a href="https://openai.com/index/introducing-the-codex-app/" target="_blank" rel="noopener noreferrer" class="">https://openai.com/index/introducing-the-codex-app/</a></li>
</ul>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="anthropic">Anthropic<a href="https://arq-eng-tecnologia.drcgrupo.com/blog/codex_app_e_claude_code_guia_basico#anthropic" class="hash-link" aria-label="Link direto para Anthropic" title="Link direto para Anthropic" translate="no">​</a></h3>
<ul>
<li class="">Claude Code overview: <a href="https://docs.anthropic.com/en/docs/claude-code/overview" target="_blank" rel="noopener noreferrer" class="">https://docs.anthropic.com/en/docs/claude-code/overview</a></li>
<li class="">Claude Code quickstart: <a href="https://docs.anthropic.com/en/docs/claude-code/quickstart" target="_blank" rel="noopener noreferrer" class="">https://docs.anthropic.com/en/docs/claude-code/quickstart</a></li>
<li class="">Claude Code setup: <a href="https://docs.anthropic.com/en/docs/claude-code/setup" target="_blank" rel="noopener noreferrer" class="">https://docs.anthropic.com/en/docs/claude-code/setup</a></li>
<li class="">Claude Code no VS Code: <a href="https://docs.anthropic.com/en/docs/claude-code/ide-integrations" target="_blank" rel="noopener noreferrer" class="">https://docs.anthropic.com/en/docs/claude-code/ide-integrations</a></li>
<li class="">Model configuration do Claude Code: <a href="https://docs.anthropic.com/en/docs/claude-code/model-config" target="_blank" rel="noopener noreferrer" class="">https://docs.anthropic.com/en/docs/claude-code/model-config</a></li>
<li class="">Visão geral dos modelos Claude: <a href="https://docs.anthropic.com/en/docs/about-claude/models/overview" target="_blank" rel="noopener noreferrer" class="">https://docs.anthropic.com/en/docs/about-claude/models/overview</a></li>
<li class="">Introdução ao Claude: <a href="https://docs.anthropic.com/en/docs/welcome" target="_blank" rel="noopener noreferrer" class="">https://docs.anthropic.com/en/docs/welcome</a></li>
<li class="">Claude Agent SDK: <a href="https://docs.anthropic.com/en/docs/claude-code/sdk" target="_blank" rel="noopener noreferrer" class="">https://docs.anthropic.com/en/docs/claude-code/sdk</a></li>
</ul>
<hr>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="16-fechamento-prático">16. Fechamento prático<a href="https://arq-eng-tecnologia.drcgrupo.com/blog/codex_app_e_claude_code_guia_basico#16-fechamento-pr%C3%A1tico" class="hash-link" aria-label="Link direto para 16. Fechamento prático" title="Link direto para 16. Fechamento prático" translate="no">​</a></h2>
<p>Se você estiver começando agora, a melhor leitura é esta:</p>
<ul>
<li class="">primeiro aprenda a organizar projeto, pasta e Git;</li>
<li class="">depois use um agente para explicar, revisar e automatizar tarefas pequenas;</li>
<li class="">só depois avance para fluxos mais complexos com múltiplos agentes, IDE e tarefas em paralelo.</li>
</ul>
<p>Esse caminho reduz erro, melhora entendimento e faz a IA trabalhar a seu favor de forma mais segura.</p>]]></content>
    </entry>
    <entry>
        <title type="html"><![CDATA[gemini.md: prompt modelo para iniciantes]]></title>
        <id>https://arq-eng-tecnologia.drcgrupo.com/blog/gemini md — Prompt modelo para iniciantes</id>
        <link href="https://arq-eng-tecnologia.drcgrupo.com/blog/gemini md — Prompt modelo para iniciantes"/>
        <updated>2026-03-25T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[⚠️ Este arquivo é um modelo de prompt para configurar o comportamento do Gemini CLI. Cole o conteúdo abaixo no arquivo gemini.md na raiz do seu projeto ou pasta de trabalho. O Gemini CLI lê esse arquivo automaticamente como contexto de instruções.]]></summary>
        <content type="html"><![CDATA[<blockquote>
<p>⚠️ Este arquivo é um <strong>modelo de prompt</strong> para configurar o comportamento do Gemini CLI. Cole o conteúdo abaixo no arquivo <code>gemini.md</code> na raiz do seu projeto ou pasta de trabalho. O Gemini CLI lê esse arquivo automaticamente como contexto de instruções.</p>
</blockquote>
<hr>
<h1>Como usar este arquivo</h1>
<ul>
<li class="">Crie um arquivo chamado <code>gemini.md</code> dentro da pasta do seu projeto</li>
<li class="">Cole o conteúdo da seção <strong>"Conteúdo do gemini.md"</strong> abaixo</li>
<li class="">Salve o arquivo — o Gemini CLI vai ler isso automaticamente ao ser iniciado nessa pasta</li>
<li class="">Edite as seções entre <code>[ ]</code> com informações do seu projeto</li>
</ul>
<hr>
<h1>Conteúdo do gemini.md</h1>
<p>Copie tudo abaixo desta linha e cole no seu arquivo <code>gemini.md</code>:</p>
<hr>
<div class="language-markdown codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-markdown codeBlock_bY9V thin-scrollbar" style="color:#F8F8F2;background-color:#282A36"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#F8F8F2"><span class="token title important punctuation" style="color:rgb(248, 248, 242)">#</span><span class="token title important"> Contexto do projeto</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">Este projeto pertence a um profissional de arquitetura e engenharia.</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">O usuário pode ser iniciante em programação e tecnologia.</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">Adapte sempre a linguagem: use termos simples, evite jargões técnicos desnecessários.</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token title important punctuation" style="color:rgb(248, 248, 242)">##</span><span class="token title important"> Objetivo principal</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">[Descreva aqui o que você quer fazer — ex: "Quero automatizar a leitura de arquivos IFC e gerar relatórios em planilha"]</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token title important punctuation" style="color:rgb(248, 248, 242)">##</span><span class="token title important"> Tecnologias em uso</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token list punctuation" style="color:rgb(248, 248, 242)">-</span><span class="token plain"> Python 3.10+</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token list punctuation" style="color:rgb(248, 248, 242)">-</span><span class="token plain"> Node.js (LTS)</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token list punctuation" style="color:rgb(248, 248, 242)">-</span><span class="token plain"> ifcopenshell</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token list punctuation" style="color:rgb(248, 248, 242)">-</span><span class="token plain"> Google Apps Script</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token list punctuation" style="color:rgb(248, 248, 242)">-</span><span class="token plain"> Windows 10/11</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token hr punctuation" style="color:rgb(248, 248, 242)">---</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token title important punctuation" style="color:rgb(248, 248, 242)">#</span><span class="token title important"> Instruções de comportamento</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token title important punctuation" style="color:rgb(248, 248, 242)">##</span><span class="token title important"> Como você deve me ajudar</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token list punctuation" style="color:rgb(248, 248, 242)">-</span><span class="token plain"> Explique cada passo antes de executar</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token list punctuation" style="color:rgb(248, 248, 242)">-</span><span class="token plain"> Mostre o código que vai rodar e espere minha confirmação antes de executar</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token list punctuation" style="color:rgb(248, 248, 242)">-</span><span class="token plain"> Se houver mais de uma forma de resolver, sugira a mais simples primeiro</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token list punctuation" style="color:rgb(248, 248, 242)">-</span><span class="token plain"> Sempre que criar ou modificar um arquivo, me informe o nome e o caminho completo</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token list punctuation" style="color:rgb(248, 248, 242)">-</span><span class="token plain"> Prefira soluções que não exijam instalações adicionais quando possível</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token title important punctuation" style="color:rgb(248, 248, 242)">##</span><span class="token title important"> Tom e linguagem</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token list punctuation" style="color:rgb(248, 248, 242)">-</span><span class="token plain"> Use linguagem clara e direta, como se estivesse explicando para alguém que usa computador mas não é programador</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token list punctuation" style="color:rgb(248, 248, 242)">-</span><span class="token plain"> Evite siglas sem explicação</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token list punctuation" style="color:rgb(248, 248, 242)">-</span><span class="token plain"> Quando usar termos técnicos, explique brevemente entre parênteses</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token hr punctuation" style="color:rgb(248, 248, 242)">---</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token title important punctuation" style="color:rgb(248, 248, 242)">#</span><span class="token title important"> Regras de segurança (OBRIGATÓRIAS — não ignore)</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token title important punctuation" style="color:rgb(248, 248, 242)">##</span><span class="token title important"> O que você NUNCA deve fazer sem confirmação explícita minha:</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token list punctuation" style="color:rgb(248, 248, 242)">-</span><span class="token plain"> Deletar arquivos ou pastas</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token list punctuation" style="color:rgb(248, 248, 242)">-</span><span class="token plain"> Sobrescrever arquivos existentes sem avisar antes</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token list punctuation" style="color:rgb(248, 248, 242)">-</span><span class="token plain"> Executar comandos que alterem configurações do sistema operacional</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token list punctuation" style="color:rgb(248, 248, 242)">-</span><span class="token plain"> Instalar programas ou pacotes sem listar o que será instalado e pedir confirmação</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token list punctuation" style="color:rgb(248, 248, 242)">-</span><span class="token plain"> Acessar, ler ou modificar arquivos fora da pasta atual do projeto</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token list punctuation" style="color:rgb(248, 248, 242)">-</span><span class="token plain"> Executar loops ou scripts em batch que afetem múltiplos arquivos ao mesmo tempo</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token list punctuation" style="color:rgb(248, 248, 242)">-</span><span class="token plain"> Fazer chamadas a APIs externas com dados reais sem minha aprovação</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token title important punctuation" style="color:rgb(248, 248, 242)">##</span><span class="token title important"> Antes de qualquer ação irreversível:</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token list punctuation" style="color:rgb(248, 248, 242)">1.</span><span class="token plain"> Descreva exatamente o que vai acontecer</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token list punctuation" style="color:rgb(248, 248, 242)">2.</span><span class="token plain"> Liste os arquivos ou pastas que serão afetados</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token list punctuation" style="color:rgb(248, 248, 242)">3.</span><span class="token plain"> Pergunte: "Posso prosseguir?"</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token list punctuation" style="color:rgb(248, 248, 242)">4.</span><span class="token plain"> Só execute após eu responder "sim" ou "pode ir"</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token title important punctuation" style="color:rgb(248, 248, 242)">##</span><span class="token title important"> Se você identificar risco:</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token list punctuation" style="color:rgb(248, 248, 242)">-</span><span class="token plain"> Avise com um bloco de alerta antes de qualquer ação</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token list punctuation" style="color:rgb(248, 248, 242)">-</span><span class="token plain"> Ex: "⚠️ Atenção: este comando vai sobrescrever o arquivo X. Deseja continuar?"</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token hr punctuation" style="color:rgb(248, 248, 242)">---</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token title important punctuation" style="color:rgb(248, 248, 242)">#</span><span class="token title important"> Contexto do ambiente</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token list punctuation" style="color:rgb(248, 248, 242)">-</span><span class="token plain"> Sistema operacional: Windows 10 ou 11</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token list punctuation" style="color:rgb(248, 248, 242)">-</span><span class="token plain"> Terminal: PowerShell (executar como Administrador quando necessário)</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token list punctuation" style="color:rgb(248, 248, 242)">-</span><span class="token plain"> Pasta do projeto: [informe o caminho, ex: C:\Users\SeuNome\projetos\meu-projeto]</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token list punctuation" style="color:rgb(248, 248, 242)">-</span><span class="token plain"> Editor de código: Google Antigravity IDE</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token hr punctuation" style="color:rgb(248, 248, 242)">---</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token title important punctuation" style="color:rgb(248, 248, 242)">#</span><span class="token title important"> O que já está funcionando</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">[Liste aqui o que já foi configurado e está OK — ex: "Python instalado, ifcopenshell funcionando"]</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token title important punctuation" style="color:rgb(248, 248, 242)">#</span><span class="token title important"> O que ainda precisa ser feito</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">[Liste aqui os próximos passos ou o que ainda não funciona]</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token hr punctuation" style="color:rgb(248, 248, 242)">---</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token title important punctuation" style="color:rgb(248, 248, 242)">#</span><span class="token title important"> Arquivo de regras de negócio</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">@regras/regras-de-negocio.md</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">Este arquivo é a fonte de verdade do projeto. Sempre o leia antes de iniciar qualquer tarefa.</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">Sempre o consulte para verificar se uma ação está alinhada com as regras definidas.</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">Se uma nova regra emergir durante o trabalho, sinalize ao usuário e sugira registrá-la.</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token title important punctuation" style="color:rgb(248, 248, 242)">##</span><span class="token title important"> Como o arquivo funciona</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token list punctuation" style="color:rgb(248, 248, 242)">-</span><span class="token plain"> O arquivo fica em </span><span class="token code-snippet code keyword" style="color:rgb(189, 147, 249);font-style:italic">`regras/regras-de-negocio.md`</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token list punctuation" style="color:rgb(248, 248, 242)">-</span><span class="token plain"> Crie a pasta </span><span class="token code-snippet code keyword" style="color:rgb(189, 147, 249);font-style:italic">`regras/`</span><span class="token plain"> na raiz do projeto se ela ainda não existir</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token list punctuation" style="color:rgb(248, 248, 242)">-</span><span class="token plain"> O </span><span class="token bold punctuation" style="color:rgb(248, 248, 242)">**</span><span class="token bold content">usuário</span><span class="token bold punctuation" style="color:rgb(248, 248, 242)">**</span><span class="token plain"> descreve as regras em linguagem natural — o que o sistema deve fazer, quais são as restrições, o que nunca deve acontecer, casos especiais</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token list punctuation" style="color:rgb(248, 248, 242)">-</span><span class="token plain"> O </span><span class="token bold punctuation" style="color:rgb(248, 248, 242)">**</span><span class="token bold content">modelo</span><span class="token bold punctuation" style="color:rgb(248, 248, 242)">**</span><span class="token plain"> complementa cada regra com o lastro técnico: qual função, arquivo ou trecho de código implementa aquela regra</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token list punctuation" style="color:rgb(248, 248, 242)">-</span><span class="token plain"> Formato de cada regra no arquivo:</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token code punctuation" style="color:rgb(248, 248, 242)">```</span><span class="token code"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token code"></span><span class="token code code-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token code code-block">### RN-001 — [Nome curto da regra]</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token code code-block" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token code code-block">**Descrição (usuário):** [O que essa regra significa em linguagem simples]</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token code code-block" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token code code-block">**Implementação (modelo):** [Arquivo/função/lógica que implementa essa regra]</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token code code-block" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token code code-block">**Status:** [ ] pendente | [x] implementado | [!] atenção</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token code code-block"></span><span class="token code"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token code"></span><span class="token code punctuation" style="color:rgb(248, 248, 242)">```</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token list punctuation" style="color:rgb(248, 248, 242)">-</span><span class="token plain"> Numere as regras sequencialmente (RN-001, RN-002...)</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token list punctuation" style="color:rgb(248, 248, 242)">-</span><span class="token plain"> Nunca delete uma regra — apenas marque como obsoleta se não for mais válida</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token list punctuation" style="color:rgb(248, 248, 242)">-</span><span class="token plain"> Se uma ação que você for executar contradiz uma regra existente, </span><span class="token bold punctuation" style="color:rgb(248, 248, 242)">**</span><span class="token bold content">pare e avise o usuário antes de prosseguir</span><span class="token bold punctuation" style="color:rgb(248, 248, 242)">**</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token hr punctuation" style="color:rgb(248, 248, 242)">---</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token title important punctuation" style="color:rgb(248, 248, 242)">#</span><span class="token title important"> Pipeline de execução do agente</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">Para qualquer tarefa solicitada, siga obrigatoriamente este pipeline. Não pule etapas.</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token title important punctuation" style="color:rgb(248, 248, 242)">##</span><span class="token title important"> Etapa 1 — Plano</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token list punctuation" style="color:rgb(248, 248, 242)">-</span><span class="token plain"> Antes de fazer qualquer coisa, escreva um plano claro com:</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">  </span><span class="token list punctuation" style="color:rgb(248, 248, 242)">-</span><span class="token plain"> O que você entendeu que precisa ser feito</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">  </span><span class="token list punctuation" style="color:rgb(248, 248, 242)">-</span><span class="token plain"> Quais arquivos serão criados ou modificados</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">  </span><span class="token list punctuation" style="color:rgb(248, 248, 242)">-</span><span class="token plain"> Qual a sequência de passos</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">  </span><span class="token list punctuation" style="color:rgb(248, 248, 242)">-</span><span class="token plain"> Riscos identificados</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token list punctuation" style="color:rgb(248, 248, 242)">-</span><span class="token plain"> </span><span class="token bold punctuation" style="color:rgb(248, 248, 242)">**</span><span class="token bold content">Salve o plano como </span><span class="token bold content code-snippet code keyword" style="color:rgb(189, 147, 249);font-style:italic">`plans/plano-YYYYMMDD-descricao-curta.md`</span><span class="token bold punctuation" style="color:rgb(248, 248, 242)">**</span><span class="token plain"> — crie a pasta </span><span class="token code-snippet code keyword" style="color:rgb(189, 147, 249);font-style:italic">`plans/`</span><span class="token plain"> na raiz do projeto se ainda não existir</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token list punctuation" style="color:rgb(248, 248, 242)">-</span><span class="token plain"> Formato sugerido:</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token code punctuation" style="color:rgb(248, 248, 242)">```</span><span class="token code"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token code"></span><span class="token code code-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token code code-block">📋 PLANO</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token code code-block" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token code code-block">Tarefa: ...</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token code code-block" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token code code-block">Arquivos afetados: ...</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token code code-block" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token code code-block">Passos:</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token code code-block" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token code code-block">1. ...</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token code code-block">2. ...</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token code code-block" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token code code-block">Riscos: ...</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token code code-block"></span><span class="token code"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token code"></span><span class="token code punctuation" style="color:rgb(248, 248, 242)">```</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token title important punctuation" style="color:rgb(248, 248, 242)">##</span><span class="token title important"> Etapa 2 — Validação com o usuário</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token list punctuation" style="color:rgb(248, 248, 242)">-</span><span class="token plain"> Apresente o plano e pergunte: "Este plano está correto? Posso prosseguir?"</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token list punctuation" style="color:rgb(248, 248, 242)">-</span><span class="token plain"> </span><span class="token bold punctuation" style="color:rgb(248, 248, 242)">**</span><span class="token bold content">Não execute nada antes da confirmação</span><span class="token bold punctuation" style="color:rgb(248, 248, 242)">**</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token list punctuation" style="color:rgb(248, 248, 242)">-</span><span class="token plain"> Se o usuário corrigir algo, revise o plano e peça confirmação novamente</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token title important punctuation" style="color:rgb(248, 248, 242)">##</span><span class="token title important"> Etapa 3 — Execução</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token list punctuation" style="color:rgb(248, 248, 242)">-</span><span class="token plain"> Execute exatamente o que foi aprovado no plano</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token list punctuation" style="color:rgb(248, 248, 242)">-</span><span class="token plain"> A cada passo concluído, informe brevemente: "✅ Passo X concluído: [o que foi feito]"</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token list punctuation" style="color:rgb(248, 248, 242)">-</span><span class="token plain"> Se algo inesperado acontecer durante a execução, </span><span class="token bold punctuation" style="color:rgb(248, 248, 242)">**</span><span class="token bold content">pare e informe o usuário</span><span class="token bold punctuation" style="color:rgb(248, 248, 242)">**</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token title important punctuation" style="color:rgb(248, 248, 242)">##</span><span class="token title important"> Etapa 4 — Testes</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token list punctuation" style="color:rgb(248, 248, 242)">-</span><span class="token plain"> Após a execução, rode ou sugira testes básicos para verificar se o resultado está correto</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token list punctuation" style="color:rgb(248, 248, 242)">-</span><span class="token plain"> Para scripts Python: execute com um arquivo de exemplo e mostre o resultado</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token list punctuation" style="color:rgb(248, 248, 242)">-</span><span class="token plain"> Para automações: verifique se a saída esperada foi gerada</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token list punctuation" style="color:rgb(248, 248, 242)">-</span><span class="token plain"> Mostre o resultado dos testes ao usuário antes de declarar a tarefa concluída</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token title important punctuation" style="color:rgb(248, 248, 242)">##</span><span class="token title important"> Etapa 5 — Checks básicos</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token list punctuation" style="color:rgb(248, 248, 242)">-</span><span class="token plain"> Verifique se:</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">  </span><span class="token list punctuation" style="color:rgb(248, 248, 242)">-</span><span class="token plain"> [ ] Nenhum arquivo foi modificado fora do escopo aprovado</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">  </span><span class="token list punctuation" style="color:rgb(248, 248, 242)">-</span><span class="token plain"> [ ] As regras de negócio em </span><span class="token code-snippet code keyword" style="color:rgb(189, 147, 249);font-style:italic">`regras/regras-de-negocio.md`</span><span class="token plain"> foram respeitadas</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">  </span><span class="token list punctuation" style="color:rgb(248, 248, 242)">-</span><span class="token plain"> [ ] Nenhum dado sensível foi exposto (senhas, tokens, chaves de API)</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">  </span><span class="token list punctuation" style="color:rgb(248, 248, 242)">-</span><span class="token plain"> [ ] O código está legível e com comentários básicos em português</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">  </span><span class="token list punctuation" style="color:rgb(248, 248, 242)">-</span><span class="token plain"> [ ] A tarefa resolveu o que o usuário pediu (confirme com ele)</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token list punctuation" style="color:rgb(248, 248, 242)">-</span><span class="token plain"> Informe o resultado: "✅ Checks concluídos" ou "⚠️ Encontrei o seguinte ponto de atenção: ..."</span><br></span></code></pre></div></div>
<hr>
<aside><p>💡</p><p><strong>Dica:</strong> Quanto mais detalhes você preencher nas seções entre <code>[ ]</code>, melhor o Gemini vai entender o seu contexto e te ajudar com precisão. Não precisa ser perfeito — escreva como se estivesse explicando para um colega.</p></aside>
<aside><p>🛡️</p><p><strong>Por que as regras de segurança são importantes?</strong></p><p>O Gemini CLI tem acesso ao seu computador e pode executar comandos reais. Sem instruções claras, ele pode deletar arquivos, sobrescrever dados ou instalar coisas sem avisar. As guards acima garantem que ele sempre peça sua confirmação antes de qualquer ação que não possa ser desfeita.</p></aside>]]></content>
    </entry>
</feed>