Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

God Files

The God Files tab identifies source files that have grown beyond a maintainable size. Any source file exceeding 1000 lines of production code appears in this list. You can select one or more files and spawn concurrent agent sessions to break them into well-structured modules.


Detection Logic

Line Counting

The scanner counts production lines of code, not total file length. For Rust files, any #[cfg(test)] block and its contents are excluded from the count. This means a 1200-line Rust file with a 300-line test module registers as 900 production lines and does not appear in the results.

For all other languages, the entire file length is counted.

Source Root Detection

The scanner looks for well-known source directories at the project root:

src/  lib/  crates/  packages/  app/  cmd/  pkg/  internal/  ...

Approximately 16 directory names are recognized. If none are found, the scanner falls back to scanning the entire project root.

Excluded Directories

Approximately 75 directories are automatically skipped during scanning. These include build output directories (target/, node_modules/, dist/, .git/, etc.) and other non-source paths that would produce false positives.

Recognized Extensions

The scanner recognizes approximately 75 source file extensions (.rs, .py, .ts, .js, .go, .java, .c, .cpp, and many more). Files with unrecognized extensions are ignored.


Results List

Detected god files are displayed in a sorted list, ordered by line count descending (largest files first). Each entry shows the file path relative to the project root and its production line count.


Keybindings

KeyAction
j / kNavigate up / down one entry
J / KPage down / page up
Alt+Up / Alt+DownJump to top / bottom
SpaceToggle checkbox on the highlighted file
aToggle all checkboxes (select all / deselect all)
vView all checked files as Viewer tabs (up to 12)
Enter or mModularize all checked files

Modularization

When you press Enter or m with one or more files checked, AZUREAL spawns agent sessions to break those files into smaller modules.

Module Style Selection

If any of the checked files are Rust or Python, a dialog appears asking you to choose a module style:

LanguageOption AOption B
RustFile-based module root (foo.rs + foo/bar.rs)Directory module (foo/mod.rs + foo/bar.rs)
PythonPackage (foo/__init__.py + submodules)Single-file split

For other languages, the dialog is skipped and modularization proceeds immediately.

Parallel Execution

Each checked file spawns its own agent session tagged with [GFM] (God File Modularization). All sessions run concurrently. The agent receives the file contents and instructions to decompose it into well-structured, appropriately sized modules while preserving all existing behavior.

You can monitor progress in the session pane – each [GFM] session appears as a separate conversation.


Quick Reference

Shift+H       Open Health Panel
Tab           Switch to Documentation tab
j/k           Navigate results
J/K           Page down / page up
Alt+Up/Down   Jump to top / bottom
Space         Toggle checkbox
a             Toggle all checkboxes
v             View checked files as tabs
Enter / m     Modularize checked files
s             Enter Scope Mode