Pular para o conteúdo principal

Estrutura de Arquivos

braito/
src/
cli/
index.ts ← ponto de entrada, parsing de argumentos
commands/
scan.ts
generate.ts
watch.ts
mcp.ts
ui.ts

core/
config/
loadConfig.ts
defaults.ts
configSchema.ts ← schema de validação Zod

scanner/
scanRepository.ts
discoverFiles.ts

ast/
parseFile.ts
analyzerRegistry.ts
extractSkeleton.ts ← esqueleto de código para o prompt LLM
types.ts ← interface LanguageAnalyzer
analyzers/
ts/
extractImports.ts
extractExports.ts
extractExportDetails.ts ← assinaturas tipadas + JSDoc
extractSymbols.ts
extractHooks.ts
extractEnvUsage.ts
extractApiCalls.ts
extractComments.ts
extractDynamicImports.ts
python/
pythonAnalyzer.ts
go/
goAnalyzer.ts

graph/
buildDependencyGraph.ts
buildReverseDependencyGraph.ts
resolveImportPath.ts
loadBundlerAliases.ts
detectCycles.ts

git/
getFileHistory.ts ← churn + commits estruturados (hash, data, autor)
getCoChangedFiles.ts
getGitSignals.ts

tests/
findRelatedTests.ts
loadCoverage.ts

cache/
computeHash.ts
cacheStore.ts
isNoteStale.ts
analysisStore.ts

llm/
synthesizeFileNote.ts
retry.ts
provider/
factory.ts
anthropic.ts
openai.ts
ollama.ts
types.ts
prompts/
systemPrompt.ts ← regras com exemplos RUIM/BOM por campo
buildPrompt.ts ← usa extractSkeleton em vez de truncar linhas

output/
buildBasicNote.ts ← inclui recentChanges e assinaturas tipadas
buildIndex.ts
writeJsonNote.ts
writeMarkdownNote.ts ← renderiza seção ## Recent Changes
writeIndexNote.ts
diffNotes.ts

types/
project.ts
ai-note.ts ← inclui ChangelogEntry e recentChanges
file-analysis.ts ← inclui ExportDetail e GitCommitEntry
schema-version.ts

vscode-extension/
src/
extension.ts
noteReader.ts
hoverProvider.ts
decorationProvider.ts
notePanel.ts

tests/
docs/
docs-site/ ← site VitePress (GitHub Pages)

.ai-notes/ ← gerado, não editar manualmente
cache/ ← gerado, não editar manualmente

ai-notes.config.ts
package.json
tsconfig.json
CLAUDE.md
README.md
README.pt-BR.md
CHANGELOG.md
TODO.md

Regras práticas

src/cli

Responsável apenas por orquestrar comandos e entrada do usuário. Sem lógica de negócio.

src/core

Toda regra de negócio fica aqui. Cada subdiretório é um módulo independente.

src/core/ast

Modular por linguagem. Para adicionar uma nova linguagem, implemente LanguageAnalyzer e registre em analyzerRegistry.ts.

src/core/llm

Separar: provider, sintetizador, lógica de retry. Providers são trocáveis sem alterar o pipeline.

src/core/output

Todos os formatos de saída ficam isolados aqui.

.ai-notes/ e cache/

Gerados pela ferramenta. Nunca edite manualmente — são regenerados a cada execução.