Pular para o conteúdo

Para usuários do Goose

O Goose roda com extensões. Adicione uma que conheça o seu repositório.

O Goose trabalha por meio de extensões, e cada extensão é um servidor MCP. O Maguyva é a que indexa a sua base de código, então o Goose pergunta onde as coisas estão em vez de listar diretórios.

Plano Free: 3 repositórios, Até 50 mil linhas de repositório indexadas, sem cartão.

Use .goosehints para como trabalhar. Use o Maguyva para o que o código diz agora.

O que você precisa saber sobre o Goose

Quatro fatos específicos do Goose.

// arquivo de configuração

config.yaml

As extensões ficam em extensions no ~/.config/goose/config.yaml. goose configure → Add Extension escreve o mesmo tipo de entrada por você.

// transporte

Uma extensão remota

O Maguyva é uma extensão streamable_http, então o Goose se conecta ao endpoint por conta própria: sem processo local, sem Node.js. A URL vai em uri, não em url.

// chave

headers

O Goose envia o mapa headers em toda requisição, então a chave vai no cabeçalho Authorization. O Goose também pode preenchê-la a partir de uma variável de ambiente listada em env_keys.

// filtro de ferramentas

available_tools

Uma extensão pode expor só parte das ferramentas: liste as que você quer em available_tools, ou deixe vazio para todas.

As hints do Goose são um acordo de trabalho. Use-as.

# .goosehints
- Use pnpm, não npm.
- Rode os testes de integração antes de dar uma mudança por concluída.

O Goose carrega por padrão o AGENTS.md e o .goosehints: hints globais de ~/.config/goose/.goosehints, hints do projeto a partir do repositório e arquivos aninhados quando trabalha em subpastas. As hints exigem a extensão Developer. São o lugar certo para:

  • Escolhas de ferramentas e comandos.
  • Convenções que o Goose deve seguir.
  • Onde fica a documentação.

As hints descrevem o projeto. Elas não respondem “o que depende disto?”

Onde as hints e o shell não dão conta

Três lacunas que o Goose preenche com comandos de shell, um arquivo por vez.

// uma listagem não é um mapa

Num repositório desconhecido, o Goose se orienta com listagens de diretórios e leituras de arquivos. Cada uma gasta contexto antes de a tarefa começar.

// grep acha strings, não chamadores

Uma busca de texto não distingue uma chamada real de um comentário, de um mock ou de um método com o mesmo nome.

// hints ficam defasadas

Um arquivo de hints escrito no trimestre passado descreve a estrutura do trimestre passado. O Goose segue mesmo assim.

O Maguyva como extensão do Goose

Uma entrada em extensions dá ao Goose:

  • 11 ferramentas sobre o seu repositório indexado busca semântica, estrutural (AST), de grafo e de texto, além de busca de símbolos, dependentes e recuperação de arquivos.
  • Respostas com caminhos de arquivo e números de linha em mais de 285 linguagens.
  • Ferramentas que só leem As ferramentas do Maguyva consultam o índice. Nenhuma edita os seus arquivos.

As hints dizem ao Goose como trabalhar.

O Maguyva dá ao Goose um mapa do código.

Dois fluxos de trabalho

Primeiro o mapa, depois deixe o Goose rodar.

// workflow 01

Rastrear um bug até a origem

goose> por que algumas exportações terminam com zero linhas?

semantic_search("export job empty result")
  src/export/runner.ts:118   flushBatch()
  src/export/filters.ts:40   applyTenantFilter()

→ O Goose lê dois arquivos, não o pacote export inteiro.
[exit 0]

Resultados priorizados afunilam a busca antes de o Goose abrir um shell.

// workflow 02

Verificar dependentes antes de uma refatoração

goose> divida a classe Notifier em e-mail e SMS

dependency_search("Notifier", dependents)
  11 referências em 5 pacotes

→ O plano cobre as onze antes da primeira edição.
[exit 0]

O Goose recebe a lista completa de dependentes numa só chamada, em vez de uma sequência de greps.

Configuração no Goose

Três passos. Plano Free: 3 repositórios, Até 50 mil linhas de repositório indexadas, sem cartão.

  1. // step 01

    Indexe um repositório em maguyva.ai

    Escolha um que você já conheça, para poder avaliar as respostas.

  2. // step 02

    Adicione o Maguyva a extensions no config.yaml

    ~/.config/goose/config.yaml

    extensions:
      maguyva:
        name: maguyva
        type: streamable_http
        uri: https://maguyva.tools/mcp
        enabled: true
        headers:
          Authorization: Bearer mgv_xxxx
        timeout: 300
    
  3. // step 03

    Troque o placeholder e inicie uma sessão

    Troque mgv_xxxx pela sua chave de API, rode goose session e faça uma pergunta cuja resposta você já saiba. YAML é sensível à indentação: use espaços, não tabs.