Vyasa Extension Refactor Audit and Execution Plan

Architecture Decision FrameworkURL copied

Deletion TestURL copied

Apply the deletion test before every move:

  1. If deleting a module removes complexity without reappearing elsewhere, the module was shallow and should be folded into a deeper owner.
  1. If deleting a module spreads complexity across callers, the module is earning its keep and should be deepened behind a stable interface.

Current deletion-test results:

  • Deleting vyasa/extensions_builtin/mermaid/__init__.py would only require Markdown to keep doing Mermaid rendering. That proves Mermaid is not yet a real extension.
  • Deleting vyasa/theme_extensions/transit_folio.py would remove almost no complexity. Theme variants should be data files behind one theme selector extension.
  • Deleting vyasa/static/scripts.js would break many features at once. That proves it hides many unrelated modules and must be split for locality.
  • Deleting vyasa/extensions.py would scatter config preset and metadata validation logic. That proves extension planning is a real core module, but its interface must be narrowed.
  • Deleting vyasa/content_tree.py would scatter core content indexing across routes, search, tree rendering, and build. That should remain a core module.
  • Deleting vyasa/search_service.py would scatter ranking/indexing behavior. It should become a search extension implementation behind a search interface, not stay a free-floating core helper.