# File Discovery ## Purpose To reliably locate and filter Python source files for analysis, respecting project configuration and ignore patterns. ## Requirements ### Requirement: Recursive Discovery The system SHALL accept file paths and directory arguments with recursive directory scanning. Priority: Critical #### Scenario: Analyzing a directory - **WHEN** the user runs the linter on a directory - **THEN** all Python files in that directory and subdirectories are found ### Requirement: Ignore Patterns The system SHALL honor `.gitignore` files by default. Priority: Critical #### Scenario: Ignoring files - **WHEN** a file matches a `.gitignore` pattern - **THEN** it is excluded from analysis