Code2Logic v1.0.11 — narzędzie do analizy kodu źródłowego z AST parsing, PageRank, multi-format output (TOON, YAML, function-logic). Obsługa 10+ języków. Status: Production Ready
Status: ✅ Production Ready
Wersja: 1.0.11 (PyPI)
Accuracy: 71.1% reproduction
Technologies: Tree-sitter, PageRank, Python
Code2Logic to narzędzie badawcze do analizy kodu źródłowego, które wykorzystuje:
Cel: automatyczne zrozumienie struktury i logiki dużych baz kodu.
Przy pracy z legacy codebase lub nieznanym projektem, programiści spędzają 60-70% czasu na zrozumieniu istniejącego kodu. Code2Logic ma na celu:
┌─────────────────────────────────────────────────────────┐
│ Code2Logic Pipeline │
├─────────────────────────────────────────────────────────┤
│ │
│ ┌──────────┐ ┌──────────┐ ┌──────────────┐ │
│ │ Source │───▶│ Tree- │───▶│ Dependency │ │
│ │ Code │ │ sitter │ │ Graph │ │
│ └──────────┘ └──────────┘ └──────────────┘ │
│ │ │ │
│ ▼ ▼ │
│ ┌──────────┐ ┌──────────────┐ │
│ │ AST │ │ PageRank │ │
│ │ Nodes │ │ Scoring │ │
│ └──────────┘ └──────────────┘ │
│ │ │ │
│ ▼ ▼ │
│ ┌─────────────────────────────┐ │
│ │ Analysis Report │ │
│ └─────────────────────────────┘ │
└─────────────────────────────────────────────────────────┘
| Język | Parser | Status |
|---|---|---|
| Python | tree-sitter-python | ✅ Pełne |
| JavaScript | tree-sitter-javascript | ✅ Pełne |
| TypeScript | tree-sitter-typescript | ✅ Pełne |
| Go | tree-sitter-go | ✅ Pełne |
| Rust | tree-sitter-rust | ✅ Pełne |
| Java | tree-sitter-java | ✅ Pełne |
| C# | tree-sitter-c-sharp | ✅ Pełne |
| SQL | tree-sitter-sql | ✅ Pełne |
| .mjs/.cjs/.mts/.cts | tree-sitter-javascript | ✅ Nowe |
| Pliki bez rozszerzenia | Shebang detection | ✅ Nowe |
Test polegał na rekonstrukcji dokumentacji z samego kodu:
| Projekt | Accuracy | Files | LOC |
|---|---|---|---|
| Flask | 73.2% | 89 | 12,400 |
| FastAPI | 69.8% | 156 | 28,300 |
| Django (core) | 71.4% | 234 | 45,600 |
| Średnia | 71.1% | - | - |
PageRank skutecznie identyfikuje entry points - pliki z wysokim PR score często są głównymi punktami wejścia (main.py, app.py, index.js)
Zależności cykliczne zaburzają scoring - projekty z circular imports mają niższą accuracy
Komentarze i docstrings poprawiają wyniki - projekty z dobrą dokumentacją inline mają +8-12% accuracy
from code2logic import Analyzer# Analiza projektuanalyzer = Analyzer("./my-project")results = analyzer.analyze()# Top 10 najważniejszych plikówfor file, score in results.top_files(10):print(f"{file}: {score:.3f}")# Graf zależnościresults.export_graph("dependencies.dot")# Raport markdownresults.generate_report("analysis.md")
| Format | Status | Opis |
|---|---|---|
| TOON | ✅ Stabilny | Token-Oriented Object Notation — kompaktowy |
| YAML | ✅ Stabilny | Verbose mode z pełnymi detalami |
| Function Logic | ✅ Stabilny | Logika funkcji w pseudokodzie |
| Markdown | ✅ Stabilny | Raport czytelny dla człowieka |
| JSON | ✅ Stabilny | Maszynowo przetwarzalny |
| Komponent | Status | Uwagi |
|---|---|---|
| Tree-sitter Parsing | ✅ Stabilny | 10+ języków |
| PageRank Algorithm | ✅ Stabilny | Customizable damping |
| Dependency Graph | ✅ Stabilny | Import/export detection |
| TOON Generator | ✅ Stabilny | Kompaktowy format LLM-friendly |
| YAML Generator | ✅ Stabilny | Verbose mode |
| Function Logic | ✅ Stabilny | Pseudokod logiki |
| Report Generation | ✅ Stabilny | Markdown, JSON |
| Shebang Detection | ✅ Stabilny | Python/Node bez rozszerzenia |
| Re-export Detection | ✅ Stabilny | JS/TS/Python |
| Visualization | 🔄 In Progress | D3.js interactive |
| LLM Summaries | ⏳ Planned | Q2 2026 |
Języki z dynamic imports (Python importlib, JS require()) są trudne do analizy statycznej.
Rozwiązanie: Heurystyki oparte o patterns + opcjonalna analiza runtime
Duże monorepa z wieloma pakietami wymagają segmentacji.
Rozwiązanie: Automatic package boundary detection
Ostatnia aktualizacja: 10 lutego 2026