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
____ _ _
| _ \ ___ _ __ ___ _ __ ___ ___ __ _| | |
| |_) / _ \ '_ \ / _ \| '__/ _ \/ __/ _` | | |
| _ < __/ |_) | (_) | | | __/ (_| (_| | | |
|_| \_\___| .__/ \___/|_| \___|\___\__,_|_|_|
|_|
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 pararefresh_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ém | Por que importa na prática |
|---|---|
| Injeção automática por prompt | O contexto é inserido via hooks — o agente não precisa lembrar de chamar ferramentas |
| Trust Contract explícito | indexedCommit, contagem de modificados + banner em toda resposta; get_stats + refresh_context como cidadãos de primeira classe |
| Local + zero infraestrutura externa | Funciona completamente offline; sem banco vetorial, sem custos de nuvem |
| Superfície MCP pequena e confiável | Apenas 6 ferramentas após a v0.8 — deliberadamente pequena para que agentes a usem corretamente |
| Pacote determinístico completo | Có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 auditmostrará 3 avisos de alta severidade, e preferimos avisar do que deixar você descobrir.@huggingface/transformers(embeddings locais) requersharp ^0.34.5, e todosharpabaixo 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 chamadapipeline("feature-extraction", …); nenhum caminho de código aqui entrega uma imagem ao transformers, que é o único ponto de entrada dosharp, 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
| Capacidade | O que entrega |
|---|---|
| Injeção automática | Hooks do Claude Code inserem evidências roteadas e comprimidas antes do modelo começar a pensar |
| Confiança e atualidade | Cada resposta inclui indexedCommit, contagem de arquivos modificados e um banner explícito quando desatualizado ou vazio |
| Qualidade de recuperação | Classificação de intenção + busca híbrida (palavras-chave + semântica) + expansão de grafo + compressão extrativa |
| Somente local por padrão | Zero serviços externos necessários; funciona completamente offline |
| Superfície amigável para agentes | Deliberadamente reduzida a 6 ferramentas após a v0.8 (search_context, search_code, explain_flow, memory, refresh_context, get_stats) |
| Exportações estruturadas | lens --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:
| Hook | O que é injetado automaticamente |
|---|---|
SessionStart | Orientação do projeto + instruções de memória |
UserPromptSubmit | Contexto 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ície | Melhor uso |
|---|---|
| Servidor MCP | Busca de código ao vivo, navegação de grafo, acesso a wiki/memória e indexação. |
refresh_context | Ponto 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 --json | Exportação JSON somente leitura da Lens com wiki, grafo, memória e contexto de negócio/produto. |
refresh_context | Verbo de reparo MCP para reindexação antes do trabalho do agente. |
search_context / search_code / explain_flow / memory | Superfície MCP compacta para recuperação, navegação e memória ao vivo do agente. |
reporecall explain --json | Diagnósticos de recuperação por pergunta, arquivos selecionados, productAreasUsed[] e businessPagesUsed[]. |
reporecall lens --json | Exportaçã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
| Modo | Caso de uso |
|---|---|
lookup | Encontrar um símbolo, arquivo, endpoint ou módulo exato. |
trace | Explicar como um fluxo funciona ou o que chama o quê. |
bug | Localizar arquivos prováveis para um sintoma ou falha. |
architecture | Inventariar os arquivos que implementam um subsistema. |
change | Encontrar os locais provavelmente afetados por uma edição transversal. |
skip | Evitar 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
relatedFilesem 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:
selectionSourceselectionReasonwikiPagesUsedmissingEvidence
Exportação de Contexto de Negócio
O Reporecall expõe o contexto de linguagem de produto em três lugares:
reporecall lens --jsonparaproductAreas[]ebusinessPages[]de todo o projeto.reporecall explain --jsonparaproductAreasUsed[]ebusinessPagesUsed[]específicos da consulta.reporecall lens --jsonereporecall explain --jsonpara 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[]displayNamedisplaySummaryareaKinddisplayQualitypresentationSafepresentationIssuescapabilityactortriggerbusinessTermsuserActionsdecisionPointssideEffectsbusinessOutcomedataConceptstechnicalEvidenceexternalSystemssupportingFilesconfidenceLabel
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
indexedCommitvsHEADatual- Contagem de arquivos alterados desde o último índice
- Conselho direto: execute
refresh_contextoureporecall 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.
Exemplo — reporecall 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.
| Ferramenta | Hooks de Injeção Automática | Confiança/Atualização | Comprimir + Expandir | Local + OSS + Zero Infra | Adoção |
|---|---|---|---|---|---|
| Reporecall | ✅ por prompt | ✅ Completo (banners + indexedCommit + atualização automática) | ✅ + read_chunk | ✅ | nascente |
| CodeGraph | ❌ (chamadas de ferramenta) | ✅ Banner | ⚠️ limitado | ✅ | Estabelecida |
| 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.
| Ferramenta | Propósito |
|---|---|
search_context | Contexto roteado, com orçamento e comprimido para a pergunta atual |
search_code | Busca bruta (action=search) ou fonte exata (action=read_chunk) |
explain_flow | Navegação: flow / callers / callees / stack_tree / imports / symbol / resolve_seed |
memory | recall / explain / list / store / forget (independente do índice de código) |
refresh_context | Reindexar + regenerar wiki + retornar estatísticas (o verbo de reparo) |
get_stats | Atualizaçã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.
| Chave | Padrão | Descriçã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). |
wikiBudget | 400 | Máximo de tokens para injeção de wiki por prompt. |
wikiMaxPages | 3 | Máximo de páginas de wiki injetadas por prompt. |
memoryBudget | 500 | Máximo de tokens para injeção de memória por prompt. |
capabilityEvidence | true | Usar evidências de código/wiki/grafo para selecionar arquivos relacionados para prompts de rastreamento, arquitetura e mudança. |
genericCapabilityHydration | true | Hidratar 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. |
contextCompressionPreserveTopChunks | 1 | Número de chunks principais mantidos como fonte completa antes que evidências secundárias possam ser compactadas. |
contextCompressionMinChunkTokens | 100 | Tamanho mínimo de chunk antes que a compressão seja tentada. |
contextCompressionTargetRatio | 0.75 | Proporção máxima comprimido/completo aceita para evidências compactadas. |
topologyEnabled | true | Executar análise de topologia/comunidades após a indexação. |
topologyMaxChunks | 50000 | Pular a construção completa do grafo de topologia acima desta contagem de chunks indexados. |
shutdownTimeoutMs | 10000 | Tempo 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
overridesapenas 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:claimsna 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 indexagora gera páginas determinísticas de wiki/negócios no final de uma passada de índice para quelist_product_areas/business_context_queryfuncionem semserve. Passe--no-wikipara 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.
scoreFamilyEvidencede 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 deuseAuth/useSessionReact 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.
relatedFilesde wiki são hidratados em chunks de código-fonte concretos quando a consulta justifica.- Adicionados metadados
selectionSource,selectionReasonewikiPagesUseda arquivos/chunks selecionados. - Adicionadas flags de configuração
capabilityEvidenceegenericCapabilityHydration. - Adicionada geração determinística de wiki de capacidade de negócios e exportações estáveis de
productAreas[]/businessPages[]emlens --json. - Adicionado metadado
areaKindpara áreas de produto para que os consumidores possam distinguir agrupamentos fixos, descobertos e de fallback. - Adicionados
displayQuality,presentationSafeepresentationIssuespara 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 vidarefresh_contexte a ferramenta de exportação Lensget_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
projectNameem 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