← ClaudeAtlas

svelte-archlisted

SvelteKit × FSD 2.1 아키텍처 어드바이저 + 프로젝트 주입 킷. FSD 계층(app/widgets/features/entities/shared)·slice·segment 표준 구조를 SvelteKit 방언(공식 config 수술 — vite.config sveltekit() 인라��)으로 완역해 안내·설치·감사하고, FSD가 비워둔 절반(서버 계층 remote→service→repository, dumb(view)/smart(container) 분리, 실행형 매니페스트 발견성, 클래스 배열 규약)을 자체 규범으로 채운다. Svelte/SvelteKit 프로젝트에서 컴포넌트·remote function·service 파일을 만들거나 배치를 판단할 때, "FSD"·"아키텍처 표준"·"컴포넌트 체계화"·"네이밍 규칙"·"구조 정리/리팩토링" 요청 시, UI·서버 작업 시작 전(매니페스트 주입 의무), 새 프로젝트에 표준을 설치(arch kit)하거나 kit 버전을 업데이트할 때 반드시 사용한다.
XIYO/svelte-arch · ★ 0 · Web & Frontend · score 72
Install: claude install-skill XIYO/svelte-arch
# SvelteKit × FSD 2.1 아키텍처 (`svelte-arch` v5) 한 문장 정의: **FSD 2.1 표준 구조(계층·slice·segment·public API·pages first)를 SvelteKit 방언으로 완역하고, FSD가 비워둔 절반(서버 계층·view/container 규율·발견성)을 자체 규범으로 채우는** 아키텍처 어드바이저 + 주입 킷. 목적은 하나 — 같은 것을 두 번 만들지 않게 하고, 팀(사람+에이전트)이 실수할 자리를 없앤다. ## 4단 주소 체계 — 모든 파일은 주소로 역할을 선언한다 ```text 계층(수직) / slice(도메인) / segment(기술 성격) / 파일명 접미사(데이터 축) src/widgets / knowledge-list / ui / KnowledgeListSection.view.svelte ``` - 앞 3단 = FSD 표준(디렉토리). 마지막 1단 = svelte-arch 오버레이(파일명 — FSD가 비워둔 dumb/smart 축). - SvelteKit 수술(공식 config — vite.config `sveltekit()` 인라인, kit 2.62.0+ · 예외만 svelte.config 유지): `files.lib='src'` · `files.routes='src/app/routes'` · `files.appTemplate='src/app/index.html'` + `@/*` 별칭. `src/server` = `$lib/server`(서버 전용 보호). ## 계층 레지스트리 (요약 — 카드 전문은 constitution.md) | 계층 | 역할 한 줄 | |---|---| | `src/app/` | 초기화 — index.html·hooks·app.css·**routes/**(글루 + pages first 콜로케이션) | | `src/pages/` | **닫힘**(기본) — routes 콜로케이션이 전담. config로만 개방 | | `src/widgets/` | 자립 대형 블록 — `*Section` view/container 페어·앱 셸(app-sidebar 등) | | `src/features/` | 사용자 상호작용(동사) — 폼·다이얼로그·액션 | | `src/entities/` | 업무 개체(명사) — 표시 view·wire 타입(model/types)·remote(api) | | `src/shared/` | 업무 무관 — `ui/`(디자인 시스템)·`vendor/`(shadcn 원본 보존)·`lib/`·`model/`·`config/` | | `src/server/` | FSD 밖 병렬 스택 — `<slice>/`에 port(계약 인터페이스)·service·repository·adapter (+`auth/guard`·`database/schema`·`shared/`) | **segment**: `ui/`(`.view`+`.container` 페어) · `api/`(`<slice>.remote.ts`) · `model/`(`types.ts` w