Docs
← Back to site Download

Issue Categories

VibeRails classifies every discovered issue into one of 17 categories. Each category has a distinct icon, colour, and typical severity range to help you prioritise at a glance.

Visual Overview

Issues appear with category icons and severity badges throughout the interface — in the issues table, triage mode, and export reports.

All Categories

The table below lists every category, its typical severity range, and an example finding.

Category Description Severity Range Example
Security Vulnerabilities that could be exploited by attackers — injection, XSS, auth flaws, exposed secrets. Critical – High Unsanitised user input passed directly to eval().
Performance Code paths that cause unnecessary CPU, memory, or network usage. High – Low Database query executed inside a loop without batching.
Bug Logic errors that produce incorrect behaviour at runtime. Critical – Medium Off-by-one error in array boundary check.
Error Handling Missing or incorrect error/exception handling that can cause silent failures or crashes. High – Low Empty catch block that swallows exceptions without logging.
Type Safety Mismatched or missing types that could lead to runtime type errors. High – Low Using any type where a specific interface exists.
Dead Code Unreachable code, unused variables, or exports that are never imported. Medium – Info Function defined but never called from any module.
Maintainability Code that is difficult to understand, modify, or extend — high complexity, deep nesting, magic numbers. Medium – Low Function with cyclomatic complexity above 20.
Code Quality Style issues, naming inconsistencies, and violations of project conventions. Low – Info Inconsistent naming convention: getUserData vs fetch_user_data.
Documentation Missing or outdated documentation, doc comments, or README instructions. Low – Info Public API method without a JSDoc comment.
Accessibility UI elements that are inaccessible to assistive technologies or fail WCAG guidelines. High – Low Image without an alt attribute.
Testing Missing test coverage, fragile tests, or test anti-patterns. Medium – Low Critical business logic with zero unit test coverage.
Configuration Issues in config files, environment setup, or build configuration. High – Low Production build still using development API endpoint.
Dependencies Outdated, vulnerable, or unnecessary dependencies in the project. Critical – Low Package with a known CVE still pinned to a vulnerable version.
Logging Missing, excessive, or insecure logging that impacts observability or leaks data. Medium – Low Logging a full user object including password hash.
Concurrency Race conditions, deadlocks, or unsafe shared-state access in concurrent code. Critical – Medium Shared mutable state accessed from multiple async handlers without a lock.
API Design Inconsistent endpoints, missing versioning, or poor contract design in public APIs. High – Low REST endpoint returning different response shapes for the same resource.
Data Validation Missing or insufficient input validation at system boundaries. High – Medium User-submitted email address accepted without format validation.

Severity Levels

VibeRails uses five severity levels. The AI model assigns severity based on potential impact and likelihood:

Level Colour Meaning
Critical Red Exploitable vulnerability or data-loss bug that should be fixed immediately.
High Orange Significant issue that is likely to cause problems in production.
Medium Yellow Moderate issue worth addressing in the current sprint.
Low Blue Minor improvement that can be scheduled for a future cleanup pass.
Info Grey Observation or suggestion with no immediate risk.
Tip: Use the severity filter in the issues table to focus on Critical and High issues first, then work your way down.

Filtering by Category

You can filter the issues table by category using the category dropdown above the table. Multiple categories can be selected simultaneously. The active filter is preserved when you switch between triage mode and the table view.