Como fazer o Claude Code responder sobre o seu vault citando a nota de origem

Claude Code Obsidian citando a nota de origem no vault
Resposta rápida

No combo Claude Code Obsidian, resposta boa é a que aponta o arquivo. Como o vault do Obsidian é uma pasta local de notas, o Claude Code consegue ler tudo dali com Read, Grep e Glob, desde que a sessão comece na raiz do vault. O truque é pedir o caminho da nota em cada afirmação e separar o que está escrito das notas do que o modelo completou sozinho. Depois você audita: abre o arquivo citado, procura o trecho com Grep no modo que mostra a linha e fixa a regra no CLAUDE.md pra não repetir o pedido toda sessão

Fala aí, beleza? Consultar o vault com o Claude Code é viciante: você pergunta, e volta um resumo redondo, bonitinho, com toda a cara de verdade

O problema é justamente esse

Sem o caminho da nota, você não tem como saber se aquilo estava escrito lá dentro ou se o modelo completou o buraco por conta própria, do jeito que pareceu fazer sentido pra ele

Aí a nota que você registrou pra confiar depois vira aposta 😅

Neste post a gente faz o contrário: pedir resposta ancorada no arquivo, com o caminho que sustenta cada afirmação, e depois CONFERIR se aquele caminho existe mesmo e se ele diz o que disseram que ele diz

Bora ver na prática?

O que você precisa antes de começar

Primeiro, o que faz essa brincadeira toda ser possível: um vault do Obsidian é uma pasta local com os arquivos das suas notas, guardada no seu dispositivo

A documentação oficial do Obsidian descreve esse armazenamento em disco

Ou seja: vault não é banco de dados fechado, é pasta de arquivo mesmo

E se é pasta de arquivo, qualquer ferramenta que leia arquivo trabalha em cima dele, inclusive o Claude Code

O que precisa estar de pé:

  • Vault do Obsidian no dispositivo (você já sabe onde ele fica, é a pasta que o Obsidian abre)
  • Claude Code instalado e funcionando no terminal
  • A sessão iniciada a partir da raiz do vault, e esse ponto é o mais importante de todos

Porque o Claude Code opera sobre o diretório de trabalho em que ele foi iniciado

As ferramentas de leitura (Read, Grep e Glob) pedem permissão pra caminhos que ficam fora do diretório de trabalho e dos diretórios adicionais, como está na referência de ferramentas do Claude Code

Domine o Claude Code do básico ao avançado
Pré-inscrição Formação Claude Code

Domine o Claude Code do básico ao avançado

Você vai aprender a criar sistemas completos com Claude Code, sem precisar ser programador. Inscreva-se para ter acesso a um desconto de lançamento e bônus especiais!

Traduzindo: se você rodar de qualquer lugar do disco e mandar ele ler o vault, vai tomar pedido de permissão a cada passo

E se o seu vault estiver espalhado, tipo notas numa pasta e anexos/arquivos de apoio em outra, dá pra somar pastas na sessão de três jeitos: a flag --add-dir na hora de abrir, o comando /add-dir já dentro da sessão, ou a chave additionalDirectories no settings.json

Essa lógica de apontar a IA pra uma pasta que já existe na sua máquina não é exclusividade do vault, ela aparece também quando você quer importar um design system de uma codebase local, é o mesmo princípio de dar contexto real em vez de contexto imaginado

Passo a passo: resposta ancorada no arquivo, com o caminho da nota

A sequência abaixo é o fluxo inteiro, do terminal até deixar a regra fixa pra não repetir nunca mais

  1. Inicie o Claude Code na raiz do vault

Nada de abrir em qualquer pasta e depois apontar caminho absoluto na mão

   cd /caminho/do/seu/vault
   claude

Se o vault tem uma segunda pasta que também importa, some ela já na abertura:

   claude --add-dir ../arquivos-antigos

O erro comum deste passo: abrir o Claude Code na pasta de projeto de sempre e esperar que ele leia o vault de boa. Ele vai pedir permissão pra tudo que estiver fora do diretório de trabalho, e você vai passar a sessão inteira apertando confirmar

  1. Escreva o pedido de um jeito que force a âncora

Aqui está o coração do post

Pergunta solta gera resposta solta. Você tem que exigir, no próprio pedido, o caminho do arquivo por afirmação e a separação entre o que está escrito e o que é complemento do modelo

   Responda com base SÓ nos arquivos deste vault.
   Para cada afirmação, escreva o caminho relativo da nota que a sustenta.
   Separe a resposta em duas partes:
   1) O que está escrito nas notas (com caminho)
   2) Complemento seu, que NÃO está em nenhuma nota
   Se não achar nada sobre o assunto, diga que não achou, não preencha.

Repare que a parte 2 não é enfeite: é ela que dá o "escape" pro modelo

Sem esse espaço, ele tende a empurrar o palpite pra dentro da parte 1, e é exatamente o que a gente quer evitar

O erro comum deste passo: pedir "cite a fonte". Fonte é palavra vaga demais, ele pode citar o título da nota, o nome de uma seção, ou nada. Peça o CAMINHO do arquivo

  1. Direcione a busca em vez de deixar ele adivinhar

O Claude Code tem Glob pra casamento rápido de padrões de arquivo e Grep pra buscar dentro do conteúdo, construído em cima do ripgrep, com regex e escopo por glob ou por tipo de arquivo

Então, em vez de "procura aí", você guia:

   Use Glob em **/*.md para mapear as notas da pasta Projetos.
   Depois use Grep para achar as ocorrências de "decisão" nesses arquivos,
   com output_mode content, para eu ver o arquivo e o número da linha.

E por que insistir no modo de saída? 🙂

Porque o modo padrão do Grep é files_with_matches, que devolve só os caminhos dos arquivos que casaram

O modo content devolve as linhas, com arquivo e número da linha. Existe ainda o count, que devolve a contagem por arquivo

Caminho é bom, linha é melhor: linha é o que você bate o olho e confere na hora

O erro comum deste passo: aceitar a lista de caminhos e achar que aquilo é prova. Lista de arquivo que casou não te diz O QUE casou

  1. Peça o Read antes da afirmação

O Grep te mostra a linha, e linha isolada mente por falta de contexto

A ferramenta Read lê arquivos locais (texto, imagem, PDF e notebooks Jupyter), então mande abrir a nota inteira antes de concluir qualquer coisa:

   Antes de afirmar, use Read no arquivo inteiro que você vai citar.
   Se a frase da nota contradiz o resto do texto dela, me avise.

O erro comum deste passo: conclusão tirada de um trecho que estava dentro de uma seção tipo "ideias descartadas". O trecho existe, o caminho existe, e a conclusão está errada mesmo assim

  1. Consulte em modo de plano ou somente leitura

Isso aqui é higiene básica quando o alvo são as SUAS notas

O modo de plano faz o modelo explorar os arquivos e produzir um plano sem editar os arquivos de origem, com as ferramentas de leitura funcionando normalmente. Você entra com Shift+Tab ou prefixando o prompt com /plan

Tem também o modo de permissão somente leitura, que impede a execução de ferramentas de alteração: o modelo analisa e propõe, mas não aplica

O erro comum deste passo: rodar consulta em modo normal e, no meio da conversa, pedir "organiza isso pra mim". Aí ele organiza mesmo, e a sua nota de 2023 vira outra coisa 😬

  1. Fixe a regra no CLAUDE.md pra não repetir toda sessão

Escrever aquele parágrafo de instrução em toda pergunta cansa e gasta contexto à toa

O CLAUDE.md é um arquivo markdown de instruções persistentes, carregado no começo de toda sessão

Na primeira vez, o fluxo que a documentação recomenda é rodar /init, que analisa os arquivos e a estrutura do diretório e gera um CLAUDE.md inicial, e depois /memory pra refinar (o /memory também liga e desliga a memória automática e mostra as entradas dela)

Aí você deixa a regra escrita lá:

   ## Regras de consulta ao vault

   - Responda só com base nos arquivos deste vault
   - Toda afirmação vem com o caminho relativo da nota que a sustenta
   - Separe sempre: "nas notas" x "complemento meu"
   - Ao buscar, use Grep com output_mode content, para mostrar arquivo e linha
   - Não preencha lacuna: se não achou, diga que não achou

Dá pra ter isso em escopo de projeto (CLAUDE.md na raiz, ou seja, na raiz do vault) e em escopo global (em ~/.claude/), valendo pra todos os projetos

E se você quiser quebrar as regras em vários arquivos, existe a sintaxe @caminho dentro do CLAUDE.md: ela importa outros arquivos, que são expandidos e carregados junto

   @regras/citacao.md
   @regras/estrutura-do-vault.md

Só toma cuidado com uma coisa: nesse @caminho, o caminho relativo resolve em relação ao arquivo que faz a importação, não ao diretório de trabalho

Ou seja, se o @regras/citacao.md está escrito num CLAUDE.md que mora numa subpasta, ele procura a partir dali, não a partir da raiz do vault

E isso é outra história, não confunda com o caminho relativo da nota que você pede na resposta: aquele é conteúdo da resposta, esse aqui é o endereço do arquivo que o CLAUDE.md vai importar, beleza?

Já que a gente está falando de instrução carregada em TODA sessão, vale pensar no tamanho dela também, tem umas manhas boas de gastar menos com o Claude Code que se aplicam direto aqui

O erro comum deste passo: despejar o vault inteiro de regra dentro do CLAUDE.md. Ele entra em toda sessão, então regra gorda é peso permanente

  1. Empacote a consulta como skill invocável

Quando o fluxo virar rotina, transforma ele em comando

A documentação hoje indica a skill como formato recomendado pra comandos invocáveis por barra, em .claude/skills/<nome>/SKILL.md, e trata .claude/commands/ como formato legado

A skill aceita a mesma invocação por /nome e ainda pode ser acionada sozinha pelo Claude

   .claude/skills/consulta-vault/SKILL.md

Dentro do markdown você coloca aquela mesma instrução de citação do passo 2, e a consulta ancorada vira uma barra só

Opcionalmente, dá pra mexer no formato da resposta pelos estilos de saída, em /config > Output style, que alteram diretamente o system prompt e valem pra toda resposta (os embutidos são Default, Proactive, Explanatory e Learning)

O erro comum deste passo: criar em .claude/commands/ porque é o que aparece em tutorial antigo. Funciona, mas é o formato legado

Como checar a citação (e o que fazer quando ela não bate)

Agora a parte que quase ninguém faz: auditar

Pedir citação é metade do trabalho, a outra metade é desconfiar dela

Sintoma Causa provável O que fazer
Resposta veio sem nenhum caminho A instrução de citação não está valendo nessa sessão Repita o pedido explícito e depois fixe a regra no CLAUDE.md
Caminho citado não existe no vault Caminho montado por dedução, não lido do disco Peça Glob pra listar os arquivos reais daquela pasta antes de responder
O arquivo existe, mas a frase não está lá Conclusão do modelo colada num arquivo plausível Exija trecho literal, não paráfrase, e confirme com Grep no modo content
Ele diz que não encontrou algo que você sabe que existe A nota está fora do diretório de trabalho Some a pasta com --add-dir, /add-dir ou additionalDirectories

Na prática, a checagem é curta

Você abre o arquivo citado no Obsidian, procura o trecho, e pronto

Se quiser conferir sem sair do terminal, peça a busca do trecho literal com Grep no modo que mostra arquivo e número da linha, e compare com o que veio na resposta

E quando não bater, não discuta com o modelo: refaça o pedido exigindo trecho literal

Para cada item, cole o trecho LITERAL da nota entre aspas,
com o caminho do arquivo e o número da linha.
Se você não conseguir colar o trecho literal, remova o item da resposta.

Esse "remova o item" é o pulo do gato: você tira o incentivo de preencher

Prevenção é o que a gente já montou lá em cima: regra fixa no CLAUDE.md e sessão em modo de plano ou somente leitura, pra consulta não virar edição

Quando esse fluxo vale a pena no seu vault

Nem toda pergunta precisa desse rigor todo, beleza?

Mas tem quatro situações em que a citação muda o resultado de verdade:

  • Revisar decisão antiga. Você registrou o porquê de ter escolhido X, e seis meses depois quer entender aquilo de novo. Aqui a paráfrase não serve, você quer a linha que você mesmo escreveu, com o caminho da nota e a data que estiver nela
  • Resumir um tema espalhado. Aquele assunto que você foi pingando em cinco notas diferentes ao longo do ano. É o cenário perfeito pro Glob mapear e o Grep achar os trechos, e o resumo só vale se cada bloco dele apontar de onde veio
  • Checar se você já escreveu isso antes. Antes de abrir a nota nova, pergunte se o assunto já existe no vault. Sem caminho, a resposta "acho que sim" não te ajuda em nada. Com caminho, você abre e decide se complementa ou duplica
  • Consultar sem risco de mexer. Vault é acervo pessoal, não é branch. Modo de plano ou somente leitura resolve: exploração e proposta sim, alteração não

Repare que nenhum desses casos depende de recurso mágico

É tudo leitura de arquivo, busca e uma instrução bem escrita 😀

Conclusão

O princípio é simples e cabe numa frase: resposta útil sobre o vault é a que aponta o arquivo

O resto é consequência disso

Você inicia o Claude Code na raiz do vault, exige o caminho por afirmação, separa o que está escrito do que é complemento, guia a busca com Glob e Grep no modo que mostra a linha, manda ler o arquivo inteiro antes de concluir e roda em modo de plano ou somente leitura

Depois deixa a regra morando no CLAUDE.md e, se virar rotina, empacota como skill

Seu próximo passo prático é hoje mesmo: escreva a regra de citação no CLAUDE.md do vault e teste com uma pergunta cuja resposta você JÁ conhece

Se o caminho bater, o fluxo está de pé

Se não bater, você acabou de descobrir isso de graça, em vez de descobrir daqui a três meses confiando num resumo inventado…

Até o próximo post!

Perguntas frequentes

Como faço o Claude Code enxergar as notas do meu vault do Obsidian?

Inicie a sessão a partir da raiz do vault, porque o Claude Code opera sobre o diretório de trabalho em que foi aberto. A partir daí, as ferramentas Read, Grep e Glob conseguem ler os arquivos das notas normalmente, sem pedir permissão a cada passo.

Por que o Claude Code fica pedindo permissão toda hora quando eu peço pra ele ler o vault?

Isso acontece quando a sessão foi aberta fora da raiz do vault: as ferramentas de leitura pedem permissão pra qualquer caminho fora do diretório de trabalho e dos diretórios adicionais. Se o vault tem mais de uma pasta relevante, some elas com a flag –add-dir, o comando /add-dir dentro da sessão ou a chave additionalDirectories no settings.json.

Como pedir pro Claude Code citar o caminho exato da nota em cada resposta sobre o vault?

O pedido precisa exigir isso explicitamente: peça o caminho relativo do arquivo por afirmação, separando o que está escrito na nota do que é complemento do modelo. Pedir só ‘cite a fonte’ não funciona bem, porque fonte é vago e pode virar título ou seção em vez do caminho do arquivo.

Qual a diferença entre os modos do Grep na hora de consultar as notas do vault?

O Grep do Claude Code tem três modos: files_with_matches, que é o padrão e devolve só os caminhos dos arquivos que casaram, content, que devolve as linhas com arquivo e número da linha, e count, que devolve a contagem por arquivo. Pra conferir se a citação bate com o texto, o modo content é o mais útil, porque a linha é o que você bate o olho e confere direto.

É seguro deixar o Claude Code consultar o vault sem risco de ele alterar as notas?

Sim, dá pra usar o modo de plano, que faz o modelo explorar os arquivos e montar um plano sem editar os arquivos de origem, com as ferramentas de leitura funcionando normalmente. Também existe o modo somente leitura, que impede a execução de ferramentas de alteração e é indicado justamente pra revisão e consulta sem aplicar mudanças.

Dá pra fixar a regra de sempre citar o caminho da nota sem reescrever o pedido toda vez?

Dá, colocando a instrução no CLAUDE.md, que é lido no início de cada sessão do Claude Code. Ele pode ficar no escopo do projeto (na raiz, junto com o vault) ou no escopo global em ~/.claude/, valendo pra todos os projetos; o fluxo recomendado é rodar /init pra gerar um CLAUDE.md inicial e depois /memory pra refinar.



Subscribe
Notify of
guest

0 Comentários
Oldest
Newest Most Voted

Formações

Formação Vibe Coding

Formação Vibe Coding

Do Prompt ao Produto: Crie Software Real com IA

  • 474 aulas
  • 20 projetos
  • 39h 27min

Blog | Mais populares