Customizador Antigravity (ag-customizer)
Use este skill para projetar, estruturar, configurar, migrar e validar personalizações do Google Antigravity de forma autônoma, nos escopos de workspace e global.
Matriz de Decisão Rápida
Determine qual mecanismo de personalização resolve melhor o problema:
| Necessidade | Mecanismo | Localização do Arquivo | Guia de Referência |
|---|---|---|---|
| Ensinar ao agente um runbook multi-etapas, procedimento ou comando de barra | Skill | .agents/skills/<nome>/SKILL.md ou ~/.gemini/antigravity/skills/<nome>/SKILL.md | guia-skills.md |
| Impor restrições persistentes, padrões de codificação ou regras de estilo | Regra | .agents/rules/<nome>.md, AGENTS.md, ou ~/.gemini/GEMINI.md | guia-regras.md |
| Conectar serviços externos, bancos de dados locais ou ferramentas personalizadas | Servidor MCP | .agents/mcp_config.json ou ~/.gemini/config/mcp_config.json | guia-mcp.md |
| Interceptar eventos de ciclo de vida (comando de portão, injetar prompts, parar watchdog) | Hook de Ciclo de Vida | .agents/hooks.json ou ~/.gemini/config/hooks.json | guia-hooks.md |
| Agrupar skills, regras, hooks e MCP em um pacote compartilhável | Plugin | .agents/plugins/<nome>/ ou ~/.gemini/config/plugins/<nome>/ | plugins-e-configs.md |
| Registrar caminhos não padrão ou compartilhar personalizações via VCS | Config JSON | .agents/skills.json ou .agents/plugins.json | plugins-e-configs.md |
| Atualizar fluxos de trabalho legados para skills modernos com comando de barra | Migração de Fluxo de Trabalho | .agents/workflows/*.md -> .agents/skills/<nome>/SKILL.md | migracao-fluxos-trabalho.md |
Fluxos de Trabalho Operacionais
1. Adicionando um Novo Skill
- Determine o Escopo:
- Workspace:
.agents/skills/<nome>/(versionado no repositório para uso da equipe). - Global:
~/.gemini/antigravity/skills/<nome>/(disponível em todos os projetos).
- Workspace:
- Estruture o Diretório:
<raiz_personalizacao>/skills/<nome-do-skill>/ ├── SKILL.md # Obrigatório: Ponto de entrada com frontmatter YAML ├── scripts/ # Opcional: Scripts auxiliares (execute com --help) ├── references/ # Opcional: Manuais divulgados e documentação pesada └── examples/ # Opcional: Código de exemplo ou referências de saída - Elabore o Frontmatter:
name: Minúsculo, com hífen (ex.:nextjs-otel,docker-deploy). Isso também registra como um comando de barra (/<nome>).description: 1-3 frases em terceira pessoa, declarando explicitamente o que o skill faz e quais frases de gatilho/cenários específicos devem ativar o agente.
- Aplique Divulgação Progressiva:
- Mantenha o
SKILL.mdprincipal focado na sequência de etapas operacionais e critérios de conclusão. - Divulgue material de referência aprofundado em arquivos
references/<topico>.mde faça links relativos. - Consulte guia-skills.md para modelos de estrutura.
- Mantenha o
- Verificação de Espelhamento Obsidian:
- Ao atualizar ou criar skills neste workspace, espelhe a pasta do skill para
d:/Scripts/Obsidian/skills/<nome>/conforme as diretrizes do repositório.
- Ao atualizar ou criar skills neste workspace, espelhe a pasta do skill para
2. Criando uma Regra
- Determine o Escopo e Formato:
- Regra de Workspace:
.agents/rules/<nome-da-regra>.mdouAGENTS.mdna raiz do projeto. - Regra Global:
~/.gemini/GEMINI.md.
- Regra de Workspace:
- Escolha o Modo de Ativação (para
.agents/rules/*.md):always_on: Injetada incondicionalmente em cada turno. Use com moderação para preservar contexto.model_decision: Divulgada quando o agente determinar relevância com base na descrição.glob: Ativada automaticamente sempre que arquivos correspondentes são tocados ou abertos (ex.:*.tsx,src/api/**/*.ts).manual: Carregada apenas quando explicitamente invocada via@mençãono chat (ex.:@minha-regra.md).
- Escreva o Conteúdo:
- Mantenha dentro do orçamento de 12.000 caracteres por arquivo.
- Declare comportamentos alvo de forma positiva ("Faça X", "Sempre estruture Y") em vez de proibições negativas.
- Use
@arquivopara vincular a arquivos de contexto complementares, se necessário. - Consulte guia-regras.md para sintaxe completa e frontmatter de ativação.
3. Configurando um Servidor MCP
- Determine o Local do Arquivo:
- Workspace:
<workspace>/.agents/mcp_config.json - Global:
~/.gemini/config/mcp_config.json
- Workspace:
- Selecione o Transporte:
- stdio (Executável local):
{ "mcpServers": { "meu-servidor": { "command": "npx", "args": ["-y", "@modelcontextprotocol/server-sqlite", "app.db"], "env": { "SQLITE_READONLY": "true" } } } } - Remoto (SSE / Streamable HTTP):
[!IMPORTANTE] Sempre use a chave
serverUrl. As chaves legadasurlouhttpUrlnão são suportadas.{ "mcpServers": { "meu-remoto": { "serverUrl": "https://api.exemplo.com/mcp/", "headers": { "Authorization": "Bearer SEU_TOKEN" } } } }
- stdio (Executável local):
- Autenticação:
- Credenciais Padrão de Aplicativo do Google:
"authProviderType": "google_credentials"(requergcloud auth application-default login). - OAuth:
"oauth": { "clientId": "...", "clientSecret": "..." }com URI de redirecionamentohttps://antigravity.google/oauth-callback.
- Credenciais Padrão de Aplicativo do Google:
- Filtragem de Ferramentas:
- Desabilite ferramentas temporariamente sem remover o servidor:
"disabledTools": ["comando_destrutivo"]. - Consulte guia-mcp.md para configurações pré-construídas.
- Desabilite ferramentas temporariamente sem remover o servidor:
4. Configurando Hooks de Ciclo de Vida
- Arquivo Alvo:
.agents/hooks.json(ou~/.gemini/config/hooks.json). - Eventos Suportados:
PreToolUse: Combine nomes de ferramentas (run_command,write_to_file,*) para controlar execução (allow,deny,ask,force_ask) ou sobrescrever argumentos superficialmente.PostToolUse: Audite saída, execute linters ou formate código após a conclusão da ferramenta.PreInvocation: Injete contexto ou instruções do sistema (injectStepscomephemeralMessage) antes do modelo processar o turno.PostInvocation: Force continuação (terminationBehavior: "force_continue") ou pare.Stop: Inspecione a conclusão da tarefa (terminationReason,fullyIdle) e retornedecision: "continue"comreasonpara bloquear saída prematura.
- Regras de Contrato:
- A execução passa contexto via stdin e recebe resposta via stdout.
- Todas as chaves de payload JSON usam camelCase (
conversationId,stepIdx,toolCall, etc.). - Comandos executam de forma síncrona e bloqueiam o loop do agente até o timeout (padrão 30s).
- Consulte guia-hooks.md para modelos em Python, PowerShell e Bash.
5. Empacotando um Plugin ou Config Compartilhada via VCS
- Pacote de Plugin:
- Agrupe skills, regras, hooks e servidores MCP relacionados em
.agents/plugins/<nome-do-plugin>/. - Adicione o manifesto
plugin.json({"name": "meu-plugin"}). - Gerencie o estado de ativação em
config.jsonsob"plugins": { "<nome-do-plugin>": { "enabled": true } }.
- Agrupe skills, regras, hooks e servidores MCP relacionados em
- Configurações JSON (
skills.json/plugins.json):- Registre diretórios externos ou repositórios de equipe compartilhados.
- Suporta
entries(caminhos) einherits(outras configurações) com filtros regexinclude_onlyeexclude. - Consulte plugins-e-configs.md para exemplos completos de manifesto.
6. Modernizando Fluxos de Trabalho Legados
- Inspecione a existência de arquivos
.agents/workflows/*.mdou~/.gemini/config/workflows/*.md. - Extraia as instruções operacionais e gere um
SKILL.mdequivalente com frontmatter YAML adequado. - Arquive o arquivo original para
<nome>.md.bak(preservação segura). - Consulte migracao-fluxos-trabalho.md para o runbook de migração automatizada.
Lista de Validação e Verificação
Antes de considerar qualquer personalização concluída:
- Sintaxe JSON: Garanta que todos os arquivos
.jsonsejam analisados limpos, sem erros de sintaxe ou comentários. - Verificação de Frontmatter: Verifique se
SKILL.mdcontém frontmatter YAML válido comnameedescriptiondescritiva. - Orçamento de Caracteres: Garanta que os arquivos Markdown de regra estejam dentro do limite de 12.000 caracteres.
- Conexão MCP: Verifique se os binários de comando ou URLs remotas existem e autenticam.
- Contrato de Hook: Verifique se os scripts de hook aceitam JSON em camelCase no stdin e retornam JSON válido no stdout.
- Espelhamento Obsidian: Para skills neste workspace, sincronize a pasta de skill criada para
d:/Scripts/Obsidian/skills/<nome>/.