Command Line Interface¶
Purpose¶
To provide a command-line interface for running the linter, allowing integration with existing development workflows and CI/CD pipelines.
Requirements¶
Requirement: CLI Structure¶
The system SHALL support a verb-based subcommand structure.
Priority: Critical
Scenario: Running the default check¶
WHEN the user runs
vibelinterwithout arguments or withcheckTHEN the linter performs the analysis
AND reports violations
Scenario: Getting help¶
WHEN the user runs
vibelinter --helpTHEN usage information and available subcommands are displayed
Requirement: File Discovery¶
The system SHALL accept file paths and directory arguments with recursive directory scanning.
Priority: Critical
Scenario: Analyzing a directory¶
WHEN the user runs
vibelinter sources/THEN all Python files in
sources/and subdirectories are analyzedAND
.gitignorepatterns are respected by default
Requirement: Rule Selection¶
The system SHALL support rule selection via parameters.
Priority: Critical
Scenario: Selecting specific rules¶
WHEN the user runs
vibelinter --select VBL101,VBL201THEN only rules VBL101 and VBL201 are executed
Requirement: Parallel Processing¶
The system SHALL support parallel processing.
Priority: High
Scenario: Running on multi-core machine¶
WHEN the user runs
vibelinter --jobs 4THEN the analysis is distributed across 4 processes
AND performance is improved for large codebases
Requirement: Exit Codes¶
The system SHALL return appropriate exit codes.
Priority: Critical
Scenario: Violations found¶
WHEN the linter finds rule violations
THEN it exits with code 1
Scenario: Clean code¶
WHEN the linter finds no violations
THEN it exits with code 0
Scenario: Errors¶
WHEN the linter encounters an internal error or configuration error
THEN it exits with code 2 or higher