[AZ-511] classColors carve-out to src/class-colors/ (closes F3)

Move src/features/annotations/classColors.ts to its own component directory
src/class-colors/ with a proper barrel; update the 4 consumer imports to go
through the barrel; remove the F3-pending exemption from STC-ARCH-01 and from
the architecture test fixture; clean up the 5 coupled doc/script touchpoints.
Closes baseline finding F3 and retires the 5-coupled-places carry-over surface
logged in LESSONS.md 2026-05-12.

- Add `class-colors` to scripts/check-arch-imports.mjs COMPONENT_DIRS so deep
  imports past the new barrel are caught symmetric to every other component.
- Replace the architecture test "exemption WORKS" fixture with the stronger
  "deep import into class-colors NOW FAILS" assertion (Risk 4 mitigation).
- module-layout.md: Layout Rules + Per-Component Mapping (11_class-colors,
  06_annotations, 03_shared-ui) + Verification Needed #1 + shared/class-colors
  block all updated to reflect the new home.
- 11_class-colors/description.md: Caveats §7 + Module Inventory updated.
- architecture_compliance_baseline.md: F3 marked CLOSED with full pre-resolution
  context preserved (mirrors AZ-485/F4 + AZ-486/F7 pattern); F4 carry-forward
  exemption note retired.
- 04_verification_log.md: open questions #1 + #8 marked RESOLVED.
- Build passes with no circular-import warnings (AC-4); fast suite 231/13
  skipped green (AC-5); static profile green (AC-3 — zero exemptions remain).

Batch report: _docs/03_implementation/batch_14_cycle3_report.md

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
Oleksandr Bezdieniezhnykh
2026-05-13 03:08:36 +03:00
parent 70fb452805
commit c368f60853
19 changed files with 228 additions and 69 deletions
+4 -5
View File
@@ -497,12 +497,11 @@ if [ "$RUN_STATIC" = "true" ]; then
# from '../../components/ConfirmDialog'
# from '../src/features/annotations/AnnotationsPage' (test files)
# Allowed:
# - barrel imports: from '../api', from '../../components'
# - barrel imports: from '../api', from '../../components', from '../class-colors'
# - intra-component: from './sse', from './MediaList' (./ not ..)
# - F3-pending edge: from '../features/annotations/classColors'
# (classColors lives under 06_annotations until F3 moves it; importing
# through the 06_annotations barrel would create a circular import
# AnnotationsPage → DetectionClasses → barrel → AnnotationsPage.)
# No exemptions today — the prior F3 carry-over (classColors deep import) was
# closed by AZ-511 when the file moved to `src/class-colors/` with its own
# barrel.
static_check_no_cross_component_deep_imports() {
node "$PROJECT_ROOT/scripts/check-arch-imports.mjs" --mode=arch-imports
}