The "Violations" panel is a list of anywhere the currently loaded codebase violates the spec. The line items are actually the parent items that contain violations. If you click on an item in the list, the relevant parent will be expanded to show its children and any violations.
There are 2 distinct kinds of violations:
- Dependency violations. These are dependencies that break the layering or visibility constraints implied by the spec, and are displayed as black dashed lines on the Spec.
- Item violations. These are items that were found in the code, in a scope that is included in the spec, but for which there is no corresponding item in the spec. For instance if the contents of package com.a is specified to contain com.a.x and com.a.y, but a package com.a.z is also found in the codebase. Item violations are shown as red cells on the spec.
The values in the "#" column are the summed up violation metrics for the given parent.
Tip:
You can easily add a violating item (a red cell) to the spec by clicking the "Add to spec" command on the context menu. This will change its color from red to the default color, and remove the violation. You should then consider where the new item should be positioned relative to its siblings, and drag it to its new location if needed.