Layer System
이 내용은 아직 번역본이 없습니다.
Layer Diagram
Layer 3 (Apps + UI) ┌─────────────────────────────────────────────┐ │ apps/context, apps/roots, apps/permissive │ │ @soundblue/ui, @soundblue/features │ └─────────────────────────────────────────────┘ │ ▼Layer 2 (Domain) ┌─────────────────────────────────────────────┐ │ @soundblue/i18n @soundblue/search │ │ @soundblue/seo @soundblue/pwa │ └─────────────────────────────────────────────┘ │ ▼Layer 1 (Data) ┌─────────────────────────────────────────────┐ │ @soundblue/data @soundblue/platform │ └─────────────────────────────────────────────┘ │ ▼Layer 0 (Foundation) ┌─────────────────────────────────────────────┐ │ @soundblue/core @soundblue/config │ └─────────────────────────────────────────────┘Layer Rules
Valid Imports
// ✅ OK - Higher layer importing from lower layerimport { validateId } from '@soundblue/core/validation'; // L0import { storage } from '@soundblue/platform/storage'; // L1import { useSearch } from '@soundblue/search/react'; // L2Invalid Imports
// ❌ FORBIDDEN - Lower layer importing from higher layer// In @soundblue/core (L0):import { SearchEngine } from '@soundblue/search'; // L2 → L0 ❌
// ❌ FORBIDDEN - Cross-layer import in wrong direction// In @soundblue/i18n (L2):import { Button } from '@soundblue/ui/components'; // L3 → L2 ❌Dependency Graph
apps/context ─────────┬─── @soundblue/uiapps/roots ───────────┤ @soundblue/featuresapps/permissive ──────┘ @soundblue/pwa │ ▼ @soundblue/i18n @soundblue/search @soundblue/seo │ ▼ @soundblue/data @soundblue/platform │ ▼ @soundblue/core @soundblue/configChecking Layer Rules
Use the /layer-check skill to verify layer rules:
# In Claude Code/layer-checkThis will analyze all imports and report any violations.