RepoRecall

Inteligência de código-fonte sem chamadas de ferramentas para Claude Code e clientes MCP. Injeta automaticamente o contexto de código correto, funções, chamadores e cadeias de chamadas antes do LLM começar a pensar. Substitui 4-6 idas e voltas de grep/leitura por uma única injeção de hook de 5ms, reduzindo o uso de tokens em 3-8x.

Documentação

Reporecall

 ____                                    _ _
|  _ \ ___ _ __   ___  _ __ ___  ___ __ _| | |
| |_) / _ \ '_ \ / _ \| '__/ _ \/ __/ _` | | |
|  _ <  __/ |_) | (_) | | |  __/ (_| (_| | | |
|_| \_\___| .__/ \___/|_|  \___|\___\__,_|_|_|
          |_|

License: MIT Node MCP

Contexto local-first + memória para agentes de codificação
Injeção automática + um Trust Contract explícito para que agentes (e você) sempre saibam quando o contexto está atualizado.

O Reporecall ajuda Claude Code, Codex, Cline, Aider e outros agentes a trabalharem de forma mais eficaz em codebases grandes, de alta rotatividade ou desconhecidas.

O que você realmente obtém

  • Injeção automática via hooks — código relevante, grafo de chamadas, wiki, memória e contexto de negócio são inseridos em cada prompt antes do modelo começar a pensar.
  • Atualidade brutalmente honesta — cada resposta inclui indexedCommit, contagem de arquivos modificados e um banner claro quando o índice está VAZIO ou DESATUALIZADO, além de orientação direta para refresh_context.
  • Recuperação local inteligente — roteamento por intenção + busca híbrida + expansão de grafo + compressão extrativa (expanda qualquer trecho sob demanda).
  • Memória local persistente — regras, fatos e notas de trabalho que sobrevivem entre sessões.
  • Zero nuvem por padrão — sem banco vetorial externo, sem custos recorrentes, funciona completamente offline.

Medido, não presumido

Cada número abaixo é produzido por um comando que você pode executar, respaldado por um artefato versionado e registrado em quality/claims.json. Qualquer coisa que não medimos diz insufficient_evidence em vez de adivinhar.

Colocar a evidência da resposta diante do modelo custa, em mediana, 75,4% menos tokens do que ler os arquivos relevantes por inteiro npm run benchmark:context-cost
A recuperação mantém 91,6% de precisão de contexto e 95,6% de recall com 8,4% de poluição, 100% de precisão de rota e zero respostas erradas com alta confiança npm run benchmark:project-context

Ambos medidos em uma codebase real de 1.306 arquivos / 5.591 trechos em 30 consultas pré-registradas, com nenhuma chamada de modelo — para que você possa reproduzi-los exatamente. O número de tokens é o custo de montagem de contexto, não os tokens de ponta a ponta do agente; não publicamos um número de ponta a ponta porque ainda não o conquistamos. Veja Benchmarking & Token Evidence.

Foco da v0.9.1: integridade da atualidade — um arquivo modificado não pode mais permanecer indexado como atualizado, a suíte de testes completa agora roda no Windows e no macOS, e o site de documentação ganhou busca offline e diagramas de arquitetura renderizados.

Recursos em Destaque

  • Superfície MCP de 6 ferramentas — deliberadamente pequena e confiável após a redução da superfície na v0.8.
  • Lens determinística — um arquivo HTML + exportação JSON para toda a topologia da codebase, comunidades e contexto de negócio.
  • Full-stack local — indexação de código, análise de grafo de chamadas, geração de wiki, contexto de negócio e memória — tudo sem sair da sua máquina.
User prompt
    │
    ▼
Claude Code hook ──► Reporecall (local)
    │                      │
    │   [check freshness]  │
    │   [route intent]     │
    │   [select + compress]│
    ▼                      ▼
Injected context + banner   (optional MCP tools for gaps)

Por que equipes recorrem ao Reporecall

O que você obtémPor que importa na prática
Injeção automática por promptO contexto é inserido via hooks — o agente não precisa lembrar de chamar ferramentas
Trust Contract explícitoindexedCommit, contagem de modificados + banner em toda resposta; get_stats + refresh_context como cidadãos de primeira classe
Local + zero infraestrutura externaFunciona completamente offline; sem banco vetorial, sem custos de nuvem
Superfície MCP pequena e confiávelApenas 6 ferramentas após a v0.8 — deliberadamente pequena para que agentes a usem corretamente
Pacote determinístico completoCódigo + grafo de chamadas + wiki + memória persistente + contexto de negócio + Lens (HTML + JSON)

Integra-se bem com: Claude Code (hooks), Codex (MCP/CLI), Cline, Aider e qualquer agente de codificação compatível com MCP.

📖 Documentação completa + análise competitiva honesta (posição atual, posição alvo e matriz de ameaças): https://proofofwork-agency.github.io/reporecall/

v0.9.1 na prática — detecção de mudanças que se recusa a confiar em um timestamp que não pode garantir, cobertura de plataforma que falha na CI em vez de na publicação, e cada número publicado re-medido contra o build que o entrega.

Início Rápido

npm install -g @proofofwork-agency/reporecall
reporecall init && reporecall serve

É isso. Os hooks inserem contexto atualizado e comprimido em cada prompt. O agente o lê primeiro.

Comandos de uma linha úteis:

reporecall lens --serve --open     # one-file architecture dashboard
reporecall explain "..."           # per-question diagnostics + evidence
reporecall stats                   # Trust Contract + freshness at a glance

(O alias binário memory pode colidir com outras ferramentas; reporecall é o comando canônico.)

[!NOTE] Seu npm audit mostrará 3 avisos de alta severidade, e preferimos avisar do que deixar você descobrir. @huggingface/transformers (embeddings locais) requer sharp ^0.34.5, e todo sharp abaixo de 0.35.0 herda quatro CVEs do libvips. O npm não reporta correção disponível, e nenhuma versão upstream lançada muda isso — transformers 4.2.0 ainda fixa a mesma faixa. Todo o nosso uso dessa biblioteca é uma única chamada pipeline("feature-extraction", …); nenhum caminho de código aqui entrega uma imagem ao transformers, que é o único ponto de entrada do sharp, então consideramos os CVEs inalcançáveis neste uso. Se você bloquear por auditoria, adicione { "overrides": { "sharp": "0.35.3" } } — observe que nosso próprio override não chega até você, porque o npm honra overrides apenas do projeto raiz. Raciocínio completo: verificação de release.

Projetado para problemas difíceis

O Reporecall brilha em:

  • Codebases grandes ou em rápida evolução
  • Perguntas de arquitetura, rastreamento, mudanças transversais e "onde isso quebraria?"
  • Equipes que querem contexto de alto sinal automático em vez de torcer para o agente chamar a ferramenta certa
  • Qualquer pessoa que valorize honestidade explícita sobre atualidade

Você provavelmente não precisa dele para projetos greenfield pequenos ou quando grep simples + as ferramentas integradas do agente já são suficientes.

Veja a comparação completa e honesta + análise de ameaças em docs/competitive-positioning-2026.md.


Lens — painel interativo de arquitetura

Um comando, um arquivo HTML, sua codebase inteira de relance:

reporecall lens --serve --open

Veja comunidades, hubs, surpresas, páginas de wiki, áreas de produto e contexto de negócio — tudo em um único arquivo portátil. Exporte JSON com reporecall lens --json.

reporecall init apenas grava configuração do projeto, configurações de hooks do Claude, config MCP e diretórios de memória. Ele não indexa código.

reporecall serve executa um índice incremental inicial na inicialização, gera páginas de wiki a partir do índice resultante e mantém o índice atualizado por meio do observador de arquivos. Se você quiser um índice único em primeiro plano sem iniciar o daemon, execute reporecall index — ele indexa a codebase e gera as mesmas páginas determinísticas de wiki/negócio antes de sair (passe --no-wiki para pular).

Comandos diretos comuns:

reporecall explain "which files implement authentication?"
reporecall search "checkout session"
reporecall mcp --project .
reporecall lens --json

Documentação

A documentação completa está hospedada no GitHub Pages em https://proofofwork-agency.github.io/reporecall/:

O que o Reporecall Oferece

CapacidadeO que entrega
Injeção automáticaHooks do Claude Code inserem evidências roteadas e comprimidas antes do modelo começar a pensar
Confiança e atualidadeCada resposta inclui indexedCommit, contagem de arquivos modificados e um banner explícito quando desatualizado ou vazio
Qualidade de recuperaçãoClassificação de intenção + busca híbrida (palavras-chave + semântica) + expansão de grafo + compressão extrativa
Somente local por padrãoZero serviços externos necessários; funciona completamente offline
Superfície amigável para agentesDeliberadamente reduzida a 6 ferramentas após a v0.8 (search_context, search_code, explain_flow, memory, refresh_context, get_stats)
Exportações estruturadaslens --json, explain --json, páginas determinísticas de wiki/negócio e um painel HTML de arquivo único

Nós não substituímos seu agente ou editor. Simplesmente tornamos o contexto que ele recebe de maior qualidade e mais honesto — especialmente em codebases grandes, de alta rotatividade ou desconhecidas.

Como os Agentes Usam

O Reporecall não é mais uma ferramenta que o agente precisa decidir chamar.
O recurso matador é a injeção automática por prompt via hooks do Claude Code.

Claude Code (Auto-Injeção é o Produto)

reporecall init conecta tudo:

  • Cria hooks que inserem contexto antes do prompt chegar ao modelo.
  • Adiciona uma seção Reporecall ao seu CLAUDE.md.
  • Configura .mcp.json.

Quando reporecall serve está em execução:

HookO que é injetado automaticamente
SessionStartOrientação do projeto + instruções de memória
UserPromptSubmitContexto atualizado, roteado e comprimido (código + wiki + grafo + memória + negócio) + banner explícito de desatualização

O agente lê a evidência injetada primeiro. Ele só precisa usar as ferramentas search_context, explain_flow ou memory para lacunas.

Trust Contract em ação: Cada resposta injetada e resultado MCP inclui um banner quando o índice está vazio ou desatualizado, além de indexedCommit, contagem de arquivos modificados e orientação refresh_context.

Veja src/hooks/prompt-context.ts e src/core/staleness.ts para a implementação.

Codex

O Codex usa o Reporecall por meio das superfícies abertas de MCP e CLI, em vez dos hooks do Claude Code.

Use MCP para trabalho interativo com agentes:

reporecall mcp --project .

Use comandos CLI para contexto scriptável:

reporecall explain --json "which files implement billing?"
reporecall search "billing controller"
reporecall lens --json

No Codex, as ferramentas MCP são a principal interface ao vivo para busca de código, navegação de fluxos, contexto de negócio, leituras de wiki, leituras/gravações de memória, topologia e gerenciamento de índice. A CLI é útil quando um agente ou script quer JSON determinístico sem manter uma sessão MCP.

Outras Ferramentas

Utilitários externos devem depender das saídas públicas, não dos internos do Reporecall:

SuperfícieMelhor uso
Servidor MCPBusca de código ao vivo, navegação de grafo, acesso a wiki/memória e indexação.
refresh_contextPonto de entrada de atualização para ferramentas externas: reindexar código, regenerar páginas de wiki/negócio e retornar estatísticas atualizadas.
reporecall lens --jsonExportação JSON somente leitura da Lens com wiki, grafo, memória e contexto de negócio/produto.
refresh_contextVerbo de reparo MCP para reindexação antes do trabalho do agente.
search_context / search_code / explain_flow / memorySuperfície MCP compacta para recuperação, navegação e memória ao vivo do agente.
reporecall explain --jsonDiagnósticos de recuperação por pergunta, arquivos selecionados, productAreasUsed[] e businessPagesUsed[].
reporecall lens --jsonExportação de topologia do projeto inteiro, grafo de wiki e contexto de negócio.
productAreas[]Agrupamento voltado para negócio sobre capacidades relacionadas, com displayName, displaySummary e areaKind.
businessPages[]Capacidades em linguagem de produto com displayName, displaySummary, metadados de qualidade de apresentação e technicalEvidence separados.

A exportação de contexto de negócio é intencionalmente aditiva. Ela dá a ferramentas de planejamento, painéis e wrappers MCP uma linguagem voltada para produto, preservando o modelo central de recuperação como evidência de código/wiki/grafo.

Símbolos técnicos, classes e nomes de serviços permanecem disponíveis como evidência de apoio. Eles não devem se tornar o rótulo principal de capacidade voltado para produto quando o Reporecall pode inferir uma frase de negócio mais clara.

Use displayName e displaySummary para ferramentas voltadas para negócio, e prefira registros onde presentationSafe é true. displayQuality e presentationIssues informam aos consumidores quando um rótulo gerado tem alta confiança, é superficial, derivado de fallback ou dominado por evidência técnica. Use technicalEvidence.files e technicalEvidence.symbols apenas quando um cliente técnico confiável precisar da evidência-fonte por trás de uma página ou área de produto. Os campos mais antigos name, capability, summary, supportingFiles e supportingSymbols permanecem para compatibilidade e diagnósticos.

O markdown de wiki de negócio gerado também mantém sua narrativa voltada para negócio: o corpo relata qualidade e contagens de evidência, enquanto nomes concretos de arquivos e símbolos permanecem em campos estruturados de evidência para clientes técnicos. As áreas de produto não são uma taxonomia fixa. O Reporecall começa com áreas comuns de produtos de software e pode derivar áreas adicionais a partir dos próprios termos de negócio e conceitos de dados do repositório. Isso mantém a camada genérica, permitindo que a linguagem de domínio apareça quando o código indexado e as evidências do wiki a suportam.

Cada área de produto inclui areaKind: fixed, discovered ou fallback. Ferramentas externas podem usar isso para manter as áreas de produto fundamentais como primárias, tratando as áreas de domínio derivadas do repositório como contexto de suporte quando apropriado.

Ferramentas externas podem pedir ao Reporecall para se atualizar via MCP. Use refresh_context após grandes alterações de arquivos ou antes de um fluxo de planejamento que precise de contexto atualizado de wiki/área de produto. Ele executa o mesmo caminho de indexação local e geração determinística de wiki que o Reporecall usa para seu próprio Lens e contexto de agente. Use reporecall lens --json para uma exportação JSON somente leitura do Lens sobre o índice atual.

Como Funciona

flowchart TB
  Q["User or agent question"]
  Entry["Hook, CLI, MCP, or JSON command"]
  Intent["Intent classifier"]
  Search["Code retrieval"]
  Wiki["Wiki evidence"]
  Product["Product area evidence"]
  Memory["Project memory"]
  Resolver["Capability evidence resolver"]
  Selected["Selected context"]
  Agent["Agent reads selected files first"]
  Explain["explain --json"]
  Lens["lens --json / Lens HTML"]
  BusinessTools["MCP business tools"]

  Q --> Entry --> Intent
  Intent --> Search
  Intent --> Wiki
  Wiki --> Product
  Intent --> Memory
  Search --> Resolver
  Wiki --> Resolver
  Product --> Selected
  Resolver --> Selected
  Memory --> Selected
  Selected --> Agent
  Selected --> Explain
  Product --> Lens
  Wiki --> Lens
  Product --> BusinessTools

A regra importante é a cobertura de arquivos em vez do volume de chunks. Para perguntas de rastreamento e arquitetura, o Reporecall tenta cobrir as camadas relevantes: entrada/UI, estado ou serviço, controlador ou função de borda, e helpers compartilhados quando essas camadas existem.

Modos de Recuperação

ModoCaso de uso
lookupEncontrar um símbolo, arquivo, endpoint ou módulo exato.
traceExplicar como um fluxo funciona ou o que chama o quê.
bugLocalizar arquivos prováveis para um sintoma ou falha.
architectureInventariar os arquivos que implementam um subsistema.
changeEncontrar os locais provavelmente afetados por uma edição transversal.
skipEvitar recuperação de código para prompts não relacionados a código.
flowchart LR
  Query["Prompt"]
  Mode{"Mode"}
  Lookup["Exact lookup"]
  Trace["Flow reconstruction"]
  Bug["Symptom evidence"]
  Arch["Layer coverage"]
  Change["Affected surfaces"]

  Query --> Mode
  Mode --> Lookup
  Mode --> Trace
  Mode --> Bug
  Mode --> Arch
  Mode --> Change
  Trace --> Resolver["Capability evidence"]
  Arch --> Resolver
  Change --> Resolver
  Resolver --> Files["Selected files with provenance"]
  Resolver --> Areas["Product areas used"]
  Resolver --> Pages["Business pages used"]

Evidência de Capacidade

A evidência de capacidade é genérica. Ela não codifica nomes de clientes/projetos nem listas de arquivos específicas do repositório.

Para prompts de rastreamento, arquitetura e mudança, o Reporecall pode:

  • usar páginas de capacidade do wiki correspondentes como âncoras;
  • hidratar seus relatedFiles em chunks de código reais;
  • adicionar vizinhos de importação e chamada a partir do grafo;
  • manter prompts de busca pequenos e exatos;
  • suprimir ruído de testes/especificações, a menos que a consulta peça testes.

Os registros de arquivo retornados podem incluir:

  • selectionSource
  • selectionReason
  • wikiPagesUsed
  • missingEvidence

Exportação de Contexto de Negócio

O Reporecall expõe o contexto de linguagem de produto em três lugares:

  • reporecall lens --json para productAreas[] e businessPages[] de todo o projeto.
  • reporecall explain --json para productAreasUsed[] e businessPagesUsed[] específicos da consulta.
  • reporecall lens --json e reporecall explain --json para exportações de contexto de negócio/produto.

Essas superfícies são visões aditivas de linguagem de produto sobre as evidências de código para ferramentas externas.

O esquema está documentado em docs/business-context-schema.md.

Os campos-chave incluem:

  • productAreas[]
  • displayName
  • displaySummary
  • areaKind
  • displayQuality
  • presentationSafe
  • presentationIssues
  • capability
  • actor
  • trigger
  • businessTerms
  • userActions
  • decisionPoints
  • sideEffects
  • businessOutcome
  • dataConcepts
  • technicalEvidence
  • externalSystems
  • supportingFiles
  • confidenceLabel

O contexto de negócio não é realimentado na busca principal como regras fixas. Os hooks podem anexar uma pequena seção de evidência de área de produto com orçamento limitado para prompts de rastreamento, arquitetura e mudança, mas os prompts de busca permanecem pequenos e a recuperação de código continua fundamentada em evidências de código-fonte/wiki/grafo. Os consumidores devem tratar a camada de negócio como um mapa de produto somente leitura com evidências de suporte.

O Contrato de Confiança (Nosso Diferencial)

A maioria das ferramentas de contexto fica em silêncio quando erram.
O Reporecall não.

Toda resposta (hooks + MCP) carrega:

  • Um banner claro quando o índice está VAZIO ou DESATUALIZADO
  • indexedCommit vs HEAD atual
  • Contagem de arquivos alterados desde o último índice
  • Conselho direto: execute refresh_context ou reporecall index

get_stats é o diagnóstico que você deve chamar primeiro.

A atualização automática ocorre em segundo plano quando serve está em execução (com debounce, seguro).

É por isso que reduzimos a superfície do MCP e tornamos os sinais de atualização inevitáveis.

Veja src/core/staleness.ts e a lógica de atualização automática do daemon.

Exemploreporecall stats sempre começa com os dados do Contrato de Confiança:

{
  "trust": {
    "banner": "⚠ ... STALE ...",
    "indexedCommit": "abc1234",
    "currentCommit": "def5678",
    "dirtyFiles": 14,
    "level": "stale"
  },
  ...
}

Benchmarking e Evidência de Tokens

Custo de montagem de contexto. Colocar a evidência certa diante do modelo custa, em mediana, 75,4% menos tokens do que ler os arquivos relevantes por completo.

Medido, não estimado — e escopado com precisão:

Fixture:  benchmark/project-context-queries.json (30 queries, real 1,306-file repo)
Baseline: whole-file tokens for the files that actually contain the answer,
          i.e. what grep-then-read costs. Counts ONLY known-relevant files,
          never the wrong files a real search would also open — so the
          measured saving is a floor, not a best case.
Candidate: tokens RepoRecall injects for the same query.
Guard:    a query counts only if RepoRecall delivered every mustInclude file,
          so omitting evidence can never register as a saving. 30/30 passed.
Model calls: none. Deterministic and reproducible.

median baseline    5,215 tokens  ->  median injected  1,439 tokens
median reduction   75.4%             aggregate        86.4%
by route           R0 54.5%   R1 70.4%   R2 90.8%

Reproduza-o:

npm run benchmark:context-cost -- --project /path/to/repo --output ./context-cost.json

O que isto não é. Isto mede apenas o custo de montagem de contexto. Exclui tokens de raciocínio, sobrecarga de chamadas de ferramenta e exploração multi-turno, portanto não é uma medição de tokens de agente de ponta a ponta e nunca é apresentado como tal. Uma execução agêntica pareada completa — ferramentas nativas vs RepoRecall, mesmo modelo e configurações, sessões novas, avaliação cega — é um artefato separado e ainda não foi publicada. Medições pareadas ausentes são relatadas como insufficient_evidence, nunca substituídas por estimativas ou números de fallback.

Execute npm run benchmark ou veja scripts/benchmarks/.

Para injeção agregada redigida + evidência de atualização:

npm run benchmark:tokens -- --project .

PRs com números reproduzíveis em repositórios reais são muito bem-vindos.

Lens

reporecall lens --serve --open
reporecall lens --json > lens.json

O painel HTML mostra:

  • estatísticas gerais;
  • comunidades de Louvain;
  • nós de hub de alto grau;
  • arestas surpreendentes entre módulos;
  • páginas de wiki geradas;
  • áreas de produto que agrupam páginas de capacidade de negócio relacionadas;
  • páginas de capacidade de negócio com resumos voltados ao produto e arquivos de suporte.

A exportação JSON também inclui dados de grafo de wiki legíveis por máquina, productAreas[] e businessPages[] para outras ferramentas.

Comparação — Por que Reporecall

O Reporecall é uma camada de contexto, não um editor de IA completo, modelo hospedado ou SaaS de revisão de PR.

A combinação rara que realmente faz a diferença para agentes: hooks automáticos por prompt + confiança/atualização explícitas + compressão real + stack completo + zero infraestrutura externa. Muito poucas ferramentas locais entregam tudo isso.

FerramentaHooks de Injeção AutomáticaConfiança/AtualizaçãoComprimir + ExpandirLocal + OSS + Zero InfraAdoção
Reporecall✅ por prompt✅ Completo (banners + indexedCommit + atualização automática)✅ + read_chunknascente
CodeGraph❌ (chamadas de ferramenta)✅ Banner⚠️ limitadoEstabelecida
Cline⚠️ alegação "sempre atualizado"Estabelecida
Cognee⚠️+ financiamento
Native Claude✅ (mas fino)✅ (arquivos ao vivo)✅ (limitado)padrão

Matriz completa, níveis de ameaça e autoavaliação honesta: docs/competitive-positioning-2026.md.

Ferramentas MCP — deliberadamente pequenas de propósito

reporecall mcp --project .

Após a v0.8, reduzimos a superfície para exatamente seis ferramentas. Menos opções, menos confusão, mais fácil para os agentes usarem corretamente.

FerramentaPropósito
search_contextContexto roteado, com orçamento e comprimido para a pergunta atual
search_codeBusca bruta (action=search) ou fonte exata (action=read_chunk)
explain_flowNavegação: flow / callers / callees / stack_tree / imports / symbol / resolve_seed
memoryrecall / explain / list / store / forget (independente do índice de código)
refresh_contextReindexar + regenerar wiki + retornar estatísticas (o verbo de reparo)
get_statsAtualização, armazenamento, contagens, convenções, latência (use primeiro em caso de dúvida)

Todas as ferramentas somente leitura retornam metadados de desatualização. As ações de memória funcionam mesmo com um índice de código vazio.

Configuração

A configuração fica em .memory/config.json.

ChavePadrãoDescrição
embeddingProvider"local"Backend de recuperação. local usa embeddings vetoriais locais Xenova/all-MiniLM-L6-v2; keyword é somente FTS sem vetores (também: ollama, openai).
wikiBudget400Máximo de tokens para injeção de wiki por prompt.
wikiMaxPages3Máximo de páginas de wiki injetadas por prompt.
memoryBudget500Máximo de tokens para injeção de memória por prompt.
capabilityEvidencetrueUsar evidências de código/wiki/grafo para selecionar arquivos relacionados para prompts de rastreamento, arquitetura e mudança.
genericCapabilityHydrationtrueHidratar evidências amplas de inventário no contexto do prompt para perguntas como "quais arquivos implementam...".
contextCompressionMode"auto"Comprimir evidências de código secundárias no contexto montado. Use "off" para desativar ou "always" para diagnósticos.
contextCompressionPreserveTopChunks1Número de chunks principais mantidos como fonte completa antes que evidências secundárias possam ser compactadas.
contextCompressionMinChunkTokens100Tamanho mínimo de chunk antes que a compressão seja tentada.
contextCompressionTargetRatio0.75Proporção máxima comprimido/completo aceita para evidências compactadas.
topologyEnabledtrueExecutar análise de topologia/comunidades após a indexação.
topologyMaxChunks50000Pular a construção completa do grafo de topologia acima desta contagem de chunks indexados.
shutdownTimeoutMs10000Tempo limite de desligamento gracioso em milissegundos.

Esta tabela lista apenas chaves comuns; veja src/core/config.ts para a lista completa e autoritativa de opções de configuração e padrões.

Arquivos de instrução de assistente/cliente, como AGENTS.md, CLAUDE.md, .claude/**, .codex/** e .mcp.json, são ignorados por padrão como evidência de código.

Referência da CLI

reporecall init
reporecall index
reporecall serve
reporecall lens
reporecall explain "query"
reporecall search "query"
reporecall mcp
reporecall doctor
reporecall stats
reporecall stats --json --output ./reporecall-evidence.json
reporecall graph
reporecall conventions

Registro de Alterações

v0.9.1 - Integridade de Atualização

Um arquivo modificado podia permanecer indexado como atual indefinidamente, e esta versão corrige isso:

  • A detecção de alterações ignora o hash quando mtime, ctime e tamanho coincidem. Os timestamps do sistema de arquivos são grosseiros — o relógio do Windows avança em etapas de ~15,6ms, HFS+ armazena segundos inteiros, FAT32 etapas de dois segundos — então duas gravações dentro de uma etapa compartilham um mtime exatamente. Um arquivo com hash entre elas perdeu a segunda gravação em cada varredura posterior, e no Windows ctime é o horário de criação e não se move na modificação, então uma edição que preserva o comprimento limpou todos os três sinais de uma vez. Arquivos gravados dentro dessa granularidade agora são marcados como não confiáveis em relação ao timestamp e recebem hash novamente na próxima varredura. Isso custa uma leitura, não trabalho de análise ou incorporação: um re-índice sem alterações de 2.000 arquivos ainda processa 0 arquivos.
  • A suíte de testes completa é executada no Windows e macOS no CI, não apenas no Ubuntu. A publicação foi anteriormente o primeiro lugar em que foi executada no Windows, que é como uma classe de defeitos de identidade de caminho chegou a um gate de lançamento em vez de um pull request.
  • O gate de lançamento agora audita a árvore de dependências que um consumidor resolve, não a que este repositório desenvolve — o npm honra overrides apenas a partir do projeto raiz, então os dois diferem. Veja a nota em Início Rápido.
  • O detector de afirmações quantitativas em quality:claims na verdade nunca correspondeu a nada: seu padrão de porcentagem exigia um caractere de palavra após o %, que a prosa nunca fornece. Corrigido e fixado por testes de regressão.
  • Site de documentação: pesquisa de texto completo offline, diagramas de arquitetura Mermaid renderizados, um 404 personalizado e um cartão de pré-visualização social.
  • Ambas as afirmações registradas foram re-medidas contra um repositório recém-clonado e re-indexado de 1.306 arquivos usando a compilação desta versão. Gate de recuperação inalterado; custo de montagem de contexto movido para dentro da variação de medição.

v0.9.0 - Endurecimento de Engenharia

Esta versão tornou a engenharia por trás do contrato de confiança verificável:

  • Evidência reproduzível: snapshots de compatibilidade, um registro de afirmações e gates de lançamento legíveis por máquina sob quality/.
  • Uma fronteira canônica do sistema de arquivos em pontos de entrada de indexação, observador, remoção, MCP e daemon.
  • Linting com reconhecimento de tipo, gates de cobertura, verificações de módulo/ciclo, CI multi-OS, demonstrações de tarball empacotado e trabalhos noturnos de estresse/benchmark.
  • Métricas de confiança de recuperação para resultados errados com alta confiança e classificação novo/desatualizado/vazio.
  • Consultas precisas não injetam mais páginas de visão geral de wiki sobre código não relacionado que correspondia a um único token compartilhado; consultas de amplitude ainda as obtêm por completo.
  • Internos grandes decompostos atrás de fachadas inalteradas de CLI, MCP, config, JSON e pacote.

v0.8.0 - Remediação do Contrato de Confiança (A Fundação)

Esta versão tornou honestidade e contenção de primeira classe:

  • Superfície MCP estrita de 6 ferramentas (veja acima).
  • Metadados de desatualização + banners em cada resposta e injeção de hook.
  • Carimbo indexedCommit + atualização automática em caso de desvio.
  • Tratamento de índice vazio que não quebra memória ou get_stats.
  • Injeção de prompt mais enxuta que divulga o que está faltando.
  • Remoção de ferramentas amplas/destrutivas da superfície do agente.

O objetivo: agentes (e humanos) devem confiar no contexto que recebem do Reporecall.

v0.7.1 - Patch de Autoavaliação

Patch de versão impulsionado pela autoavaliação do reporecall em seu próprio código. Aperta sete defeitos em recuperação, evidência de capacidade, indexação e roteamento de contexto de negócios sem quebrar nenhuma API pública.

  • reporecall index agora gera páginas determinísticas de wiki/negócios no final de uma passada de índice para que list_product_areas/business_context_query funcionem sem serve. Passe --no-wiki para pular.
  • O classificador de intenção roteia "quais arquivos eu precisaria alterar" e frases semelhantes para o modo de alteração/arquitetura.
  • A exclusão em massa de arquivos no indexador agora usa uma única transação, corrigindo um SIGILL em grandes conjuntos de exclusão.
  • scoreFamilyEvidence de wiki/negócios não publica mais páginas falsas de capacidade de autenticação para os próprios diretórios de infraestrutura do reporecall, mantendo os hooks de useAuth/useSession React downstream classificados como autenticação.
  • As sementes primárias de consulta devem compartilhar pelo menos duas âncoras não genéricas com a consulta para serem retornadas como uma correspondência exata de alta pontuação.
  • Consultas de arquitetura/alteração descartam arquivos de teste completamente (vs. a penalidade multiplicativa anterior), a menos que a consulta mencione teste/spec/e2e/fixture/mock.
  • O resolvedor de evidência de capacidade agora é executado para o modo de consulta e limita consultas não familiares à sobreposição real de âncoras de caminho de arquivo.
  • Áreas de produto descobertas podem substituir uma correspondência fixa fraca somente quando sua pontuação a excede em pelo menos DISCOVERED_OVERRIDE_MARGIN (3).

v0.7.0 - Evidência de Capacidade e Exportação de Contexto de Negócios

Esta versão melhora a recuperação de rastreamento e arquitetura sem adicionar regras específicas do projeto.

  • Adicionada resolução genérica de evidência de capacidade para prompts de rastreamento, arquitetura e alteração.
  • Páginas de wiki de negócios agora podem atuar como âncoras de evidência sem serem cegamente injetadas no texto do prompt.
  • relatedFiles de wiki são hidratados em chunks de código-fonte concretos quando a consulta justifica.
  • Adicionados metadados selectionSource, selectionReason e wikiPagesUsed a arquivos/chunks selecionados.
  • Adicionadas flags de configuração capabilityEvidence e genericCapabilityHydration.
  • Adicionada geração determinística de wiki de capacidade de negócios e exportações estáveis de productAreas[] / businessPages[] em lens --json.
  • Adicionado metadado areaKind para áreas de produto para que os consumidores possam distinguir agrupamentos fixos, descobertos e de fallback.
  • Adicionados displayQuality, presentationSafe e presentationIssues para que ferramentas voltadas a negócios possam filtrar rótulos gerados fracos sem perder evidência técnica.
  • Adicionadas abas Lens Product Areas e Business para páginas de capacidade de negócios geradas.
  • Adicionadas ferramentas de contexto de negócios MCP (list_product_areas, business_context_query), a ferramenta de ciclo de vida refresh_context e a ferramenta de exportação Lens get_lens_data.
  • Adicionado um harness de estresse para repositórios grandes (npm run stress:large-repo, npm run stress:large-repo:ci) e guardrails de contagem de chunks na construção de gráficos de topologia/Lens.
  • Documentado suporte a Codex através de MCP e uso direto de CLI.
  • Adicionado docs/business-context-schema.md para utilitários externos que desejam contexto em linguagem de produto.
  • Corrigido fallback FTS de termo mais raro para que termos de zero documentos não dominem o planejamento de consultas.
  • Corrigido metadado Lens para usar a raiz do projeto alvo para projectName em vez do diretório do shell atual.
  • Filtrados arquivos de instrução de assistente/cliente da evidência de código por padrão.
  • Removidos exemplos específicos de projeto/cliente de testes de código-fonte e comentários.

Veja CHANGELOG.md para o histórico completo do pacote.

Desenvolvimento

npm install
npm run typecheck
npm run lint
npm run coverage
npm run build
npm run demo:packed

Verificação útil:

npm test -- --run test/search test/hooks test/wiki test/visualize
npm run benchmark -- --provider keyword --output /tmp/reporecall-keyword.json
npm run stress:large-repo -- --files 10000 --changes 1000 --output /tmp/reporecall-large-repo.json
npm run stress:large-repo:ci

Contribuindo

Relatórios de bugs, benchmarks reproduzíveis em repositórios reais e melhorias de documentação são muito bem-vindos.

Veja docs/competitive-positioning-2026.md para a autoavaliação honesta atual e as áreas em que estamos trabalhando ativamente.

Licença

MIT