# Configuration Management ## Purpose To allow streamlined configuration management without destructive file editing, enabling users to customize the linter for their project needs. ## Requirements ### Requirement: Configuration Commands The system SHALL provide a `configure` subcommand for configuration management. Priority: Medium #### Scenario: Generating configuration - **WHEN** the user runs `vibelinter configure` - **THEN** configuration snippets (e.g. TOML) are generated for manual addition ### Requirement: Configuration Validation The system SHALL validate existing configuration. Priority: Medium #### Scenario: Validating config - **WHEN** the user runs `vibelinter configure --validate` - **THEN** the current configuration is checked for errors - **AND** effective merged settings are displayed ### Requirement: Configuration Precedence The system SHALL follow a defined configuration precedence. Priority: Medium #### Scenario: Overriding defaults - **WHEN** a setting is defined in CLI args, `pyproject.toml`, and defaults - **THEN** CLI args take precedence over `pyproject.toml` - **AND** `pyproject.toml` takes precedence over defaults ### Requirement: Per-File Rule Exclusion The system SHALL support disabling specific rules for specific file patterns via configuration. #### Scenario: Ignoring rules for test files - **WHEN** the configuration contains `per-file-ignores` mapping `tests/**/*.py` to `["VBL101"]` - **THEN** rule `VBL101` is not enforced on files matching `tests/**/*.py` - **AND** other rules are still enforced