Surfaced by desloppify scan. The flat_dirs detector flagged src/shared/components as overloaded: 8 loose .jsx files alongside 9 sub-directories (35 entries combined).
Current layout
src/shared/components/
├── ComponentErrorBoundary.jsx ← loose
├── JsonLd.jsx ← loose
├── PageSkeleton.jsx ← loose
├── PreferenceTracker.jsx ← loose
├── RouteError.jsx ← loose
├── StatusDot.jsx ← loose
├── ... (others) ← loose
├── Button/
├── Footer/
├── MermaidDiagram/
└── ... (other directories)
Triage note
Two reasonable patterns:
- Group by domain:
errors/ (ComponentErrorBoundary, RouteError, PageSkeleton), meta/ (JsonLd, PreferenceTracker), status/ (StatusDot), etc.
- Normalize to per-component dirs: every loose
.jsx becomes its own folder (StatusDot/StatusDot.jsx), matching Button/ and Footer/.
Option 2 is more consistent with the existing partial pattern; option 1 reduces directory count.
Action
Pick a pattern and apply consistently. No functional change — pure organization.
Detector: flat_dirs · Tier T3
🤖 Filed by /desloppify
Surfaced by
desloppify scan. Theflat_dirsdetector flaggedsrc/shared/componentsas overloaded: 8 loose.jsxfiles alongside 9 sub-directories (35 entries combined).Current layout
Triage note
Two reasonable patterns:
errors/(ComponentErrorBoundary, RouteError, PageSkeleton),meta/(JsonLd, PreferenceTracker),status/(StatusDot), etc..jsxbecomes its own folder (StatusDot/StatusDot.jsx), matchingButton/andFooter/.Option 2 is more consistent with the existing partial pattern; option 1 reduces directory count.
Action
Pick a pattern and apply consistently. No functional change — pure organization.
Detector:
flat_dirs· Tier T3🤖 Filed by
/desloppify