## [2026-05-31T16:32:41.639Z]
This unit is the single home for the issue-code category sets — the structural codes that always block the check, and the completeness codes surfaced as non-blocking metadata gaps. These sets were previously hard-coded twice: once in the check engine that tallies a summary count, and once in the command renderer that groups errors into sections. The two copies had silently diverged, so the structural-error count in the summary could disagree with what was actually shown grouped under the structural heading. Giving the categories one definition that both consumers import removes that whole class of drift between the count and the rendering.
## [2026-05-31T21:54:09.652Z]
Removed config-reviewer-legacy-format and config-reviewer-mixed-format from STRUCTURAL_CODES. These codes were emitted by runtime branches that have been deleted; retaining them in the set would silently allow callers to reference codes the parser no longer generates, risking confusion in error-grouping and summary tallies.
## [2026-06-03T07:05:08.466Z]
Registered the error codes for the aggregating-aspect kind and related aspect-contract validation so the new conditions render with stable, documented codes in the gate output instead of generic messages.
## [2026-06-03T08:20:15.797Z]
Registered a new structural issue code for drift-state baseline integrity. It is classified as structural because it must block the gate regardless of whether any source file drifted: the baseline itself is untrustworthy when its recorded hash cannot be reproduced from the node's files, identity, and verdicts. Grouping it with the other always-blocking graph-shape codes keeps the summary tally and the rendered error grouping in agreement and feeds the suggested-next computation.
## [2026-06-08T19:22:27.597Z]
Port-contract and relation-target violations are structural-integrity failures of the graph, on the same footing as the other structural codes, and must be classified as such so they group and block consistently with their peers. The codes covering a missing consumes declaration against a porting target, a consumes naming a port that does not exist, a port aspect that is undefined at the consumer, consuming a target that exposes no ports, and a relation whose target type the architecture forbids were not listed among the structural codes. They are now included so the categorisation matches the contract that these are blocking structural errors rather than some lesser class.
## [2026-06-12T13:14:12.945Z]
Added 'aspect-scope-invalid' and 'aspect-scope-on-aggregate' to STRUCTURAL_CODES so the single-source catalogue stays in lockstep with the rendered Structural group and summary count. These codes block yg check when scope: parsing fails and were previously missing from the catalogue, making the summary tally and rendered grouping inconsistent.
## [2026-06-13T08:59:33.165Z]
Registered a new blocking issue category for a file that a node mapping claims but the gitignore filter silently excludes from review. It is classified as a structural (blocking) issue, distinct from the plain not-covered-by-any-mapping error, because the file IS matched by a mapping — the problem is specifically the gitignore conflict that drops it from the review subject set, which would otherwise let an enforced rule pass over unreviewed source.
## [2026-06-13T10:52:15.582Z]
Two issue-classification gaps fixed. The secrets-non-credential error blocks the fill step but was not listed among the structural issue codes, so the single-next-step suggestion never pointed at it; it is now classified structural so it is grouped and surfaced correctly. Separately, a comment claimed the completeness-category codes are non-blocking, but one of them is emitted as a blocking error — the comment was corrected to say that category membership governs only grouping and tally, while the emitting check decides whether it blocks.
