Architecture Reporting

Architekturni reporting je lokalni observacni nastroj pro kontrolu rustu kodu, zavislosti a hranic mezi moduly. V prvni verzi nic neblokuje v CI a nema byt brany jako merge gate.

Pravidla hranic modulu a povolene runtime smery volani jsou popsane v docs/module-boundaries.md.

Spusteni

Z korene repozitare:

python3 script/architecture-report.py --output reports/architecture-report.md

Skript pouziva pouze Python standard library a negeneruje timestampy ani absolutni cesty, aby byl vystup stabilni v review.

Volitelny strict rezim je pripraveny pro budouci CI:

python3 script/architecture-report.py --output reports/architecture-report.md --strict

Ve strict rezimu skript skonci chybou, pokud najde produkcni Python import mezi top-level moduly reply-pilot-*.

Pro lokalni kontrolu baseline reportu pouzij:

script/check-architecture.sh

Interpretace Reportu

  • Module Overview: prehled modulu, Python package, poctu produkcnich/testovacich souboru a deklarovanych runtime/dev zavislosti.
  • Intermodule Imports: prime importy mezi reply_pilot_* packages. Produkcni baseline ma byt 0; testy a modulove Python scripts jsou reportovane zvlast.
  • Dependency Advisory: porovnani externich importu v produkcnim kodu a modulovych scripts proti requirements.txt, plus testovacich importu proti kombinaci requirements.txt a requirements-dev.txt. Nalezy jsou advisory, protoze namespace packages a runtime-only zavislosti mohou vyzadovat allowlist.
  • Complexity Hotspots: nejslozitejsi produkcni funkce/metody podle jednoducheho AST-based score.
  • Largest Python Files: nejvetsi Python soubory podle poctu neprazdnych radku.
  • Repeated Python Filenames: opakovane nazvy produkcnich souboru napric moduly, typicky kandidati na budouci sjednoceni nebo vedome zdokumentovani.

Pravidla Pouziti

Report je vstup do review a planovani refaktoringu, ne automaticky verdikt. Kdyz sekce ukaze problem, nejdrive rozhodni, jestli jde o skutecne nechtenou vazbu, chybejici deklaraci, nebo zamerne sdileni, ktere ma byt jen popsane v dokumentaci.