project-structure
Organize project folders following industry best practices. Use when setting up new projects, reorganizing codebases, or when folder structure becomes messy. Covers Next.js, Bulletproof React, and FSD patterns.
下記のコマンドをコピーしてターミナル(Mac/Linux)または PowerShell(Windows)に貼り付けてください。 ダウンロード → 解凍 → 配置まで全自動。
mkdir -p ~/.claude/skills && cd ~/.claude/skills && curl -L -o project-structure.zip https://jpskill.com/download/18882.zip && unzip -o project-structure.zip && rm project-structure.zip
$d = "$env:USERPROFILE\.claude\skills"; ni -Force -ItemType Directory $d | Out-Null; iwr https://jpskill.com/download/18882.zip -OutFile "$d\project-structure.zip"; Expand-Archive "$d\project-structure.zip" -DestinationPath $d -Force; ri "$d\project-structure.zip"
完了後、Claude Code を再起動 → 普通に「動画プロンプト作って」のように話しかけるだけで自動発動します。
💾 手動でダウンロードしたい(コマンドが難しい人向け)
- 1. 下の青いボタンを押して
project-structure.zipをダウンロード - 2. ZIPファイルをダブルクリックで解凍 →
project-structureフォルダができる - 3. そのフォルダを
C:\Users\あなたの名前\.claude\skills\(Win)または~/.claude/skills/(Mac)へ移動 - 4. Claude Code を再起動
⚠️ ダウンロード・利用は自己責任でお願いします。当サイトは内容・動作・安全性について責任を負いません。
🎯 このSkillでできること
下記の説明文を読むと、このSkillがあなたに何をしてくれるかが分かります。Claudeにこの分野の依頼をすると、自動で発動します。
📦 インストール方法 (3ステップ)
- 1. 上の「ダウンロード」ボタンを押して .skill ファイルを取得
- 2. ファイル名の拡張子を .skill から .zip に変えて展開(macは自動展開可)
- 3. 展開してできたフォルダを、ホームフォルダの
.claude/skills/に置く- · macOS / Linux:
~/.claude/skills/ - · Windows:
%USERPROFILE%\.claude\skills\
- · macOS / Linux:
Claude Code を再起動すれば完了。「このSkillを使って…」と話しかけなくても、関連する依頼で自動的に呼び出されます。
詳しい使い方ガイドを見る →- 最終更新
- 2026-05-18
- 取得日時
- 2026-05-18
- 同梱ファイル
- 1
📖 Skill本文(日本語訳)
※ 原文(英語/中国語)を Gemini で日本語化したものです。Claude 自身は原文を読みます。誤訳がある場合は原文をご確認ください。
プロジェクト構造
プロジェクトのフォルダー構造を業界標準に合わせて整理するスキルです。
コア原則
「デスクトップにコードを置かない」 「分類基準を混ぜない」
安全ルール
| コマンド | 状態 | 代替案 |
|---|---|---|
rm -rf |
🔴 禁止 | _legacy/へ移動 |
rm |
🔴 禁止 | _legacy/へ移動 |
mv to _legacy/ |
✅ 許可 | 基本的な整理方法 |
mkdir |
✅ 許可 | 新しい構造の作成 |
整理方法
# ❌ NEVER: 削除
rm -rf old-folder
# ✅ ALWAYS: レガシーフォルダーへ移動
mkdir -p _legacy
mv old-folder _legacy/old-folder_$(date +%Y%m%d)
Part 1: 開発ルートディレクトリ
推奨ルート位置
~/dev # 最も推奨
~/code
~/workspace
~/git
コンテキスト(目的)中心構造 (推奨)
~/dev/
├── work/ # 会社業務
│ ├── company-a/
│ │ ├── backend-api/
│ │ └── frontend-ui/
│ └── company-b/
├── personal/ # 個人/サイドプロジェクト
│ ├── my-blog/
│ └── todo-app/
├── study/ # 講義/書籍の実習
│ ├── algorithm-101/
│ └── react-course/
├── open-source/ # Fork/貢献プロジェクト
│ └── some-lib/
├── playground/ # 一時的なテスト (サンドボックス)
│ └── test-script.py
└── dotfiles/ # 個人設定ファイルのバージョン管理
ホスト(Source)中心構造 (Goスタイル)
~/dev/
├── github.com/
│ ├── my-username/
│ │ └── project-a/
│ └── other-user/
│ └── awesome-lib/
├── gitlab.com/
│ └── company-group/
│ └── company-project/
└── bitbucket.org/
Part 2: プロジェクト内部構造
基本プロジェクトスキャフォールディング
project-name/
├── src/ # 実際のソースコード
├── assets/ # 画像、フォント、静的ファイル
├── config/ # 設定ファイル
├── docs/ # ドキュメント資料
├── scripts/ # ビルド/デプロイスクリプト
├── tests/ # テストコード
├── dist/ # ビルド成果物 (Git除外)
├── _legacy/ # 整理されたレガシーコード
├── .gitignore
├── .env.example # 環境変数例 (.envはGit除外)
├── README.md
└── LICENSE
Part 3: フロントエンドアーキテクチャパターン
Pattern A: Next.js App Router + Colocation
ルート(ページ)を基準にフォルダーを作成し、必要なファイルを同じフォルダーに配置します。
app/
├── (marketing)/ # Route Group (URLには反映されません)
│ ├── page.tsx
│ ├── components/ # このルート専用コンポーネント
│ │ └── Hero.tsx
│ └── styles.css
├── dashboard/
│ ├── layout.tsx
│ ├── page.tsx
│ ├── loading.tsx
│ ├── error.tsx
│ └── components/
│ ├── DashboardHeader.tsx
│ └── DashboardStats.tsx
├── api/
│ └── users/
│ └── route.ts
└── globals.css
lib/ # 共通ユーティリティ
components/ # グローバル共通コンポーネント
適切な場合: Next.jsベースのプロジェクト
Pattern B: Bulletproof React (Feature-based)
機能(Feature)単位でまとめて保守しやすい構造です。
src/
├── app/ # アプリ初期化 (ルーター、エントリー、グローバル設定)
│ ├── routes/
│ ├── App.tsx
│ └── main.tsx
├── assets/
├── components/ # 完全共通UI
│ ├── Button/
│ ├── Modal/
│ └── Form/
├── config/
├── features/ # 🔑 核心: 機能単位
│ ├── auth/
│ │ ├── api/
│ │ ├── components/
│ │ ├── hooks/
│ │ ├── types/
│ │ └── index.ts
│ ├── users/
│ │ ├── api/
│ │ ├── components/
│ │ ├── hooks/
│ │ └── index.ts
│ └── dashboard/
├── hooks/ # グローバルフック
├── lib/ # 外部ライブラリラッパー
├── providers/
├── stores/
├── testing/
├── types/ # グローバル型
└── utils/ # グローバルユーティリティ
適切な場合: チーム規模が大きい、または機能が多いReactプロジェクト
Pattern C: Feature-Sliced Design (FSD)
階層(Layer)で分類するアーキテクチャ手法です。
src/
├── app/ # Layer 1: アプリ初期化
│ ├── providers/
│ ├── styles/
│ └── index.tsx
├── pages/ # Layer 2: ページ (ルート)
│ ├── home/
│ ├── profile/
│ └── settings/
├── widgets/ # Layer 3: 独立したUIブロック
│ ├── header/
│ ├── sidebar/
│ └── footer/
├── features/ # Layer 4: ユーザーシナリオ
│ ├── auth/
│ ├── comments/
│ └── likes/
├── entities/ # Layer 5: ビジネスエンティティ
│ ├── user/
│ ├── post/
│ └── comment/
└── shared/ # Layer 6: 共有リソース
├── ui/
├── lib/
├── api/
└── config/
適切な場合: チームがルールを一緒に守れる中規模から大規模プロジェクト
Part 4: ハイブリッドパターン (Next.js + Feature)
Next.js App Routerを骨格とし、features方式を組み合わせた実用的な構造です。
app/ # Next.js App Router
├── (marketing)/
├── dashboard/
└── api/
src/
├── components/ # グローバル共通コンポーネント
├── features/ # Bulletproofスタイルの機能単位
│ ├── auth/
│ ├── users/
│ └── analytics/
├── hooks/
├── lib/
├── types/
└── utils/
Workflow: フォルダー整理
1. 現在の構造分析
# 最上位フォルダーの確認
ls -la
# ツリー構造の確認 (2段階)
find . -maxdepth 2 -type d | head -30
2. レガシーフォルダーの作成
mkdir -p _legacy
3. 整理対象の移動
# 日付タグを付けて移動
mv messy-folder _legacy/messy-folder_$(date +%Y%m%d)
4. 新しい構造の作成
# Bulletproof構造の例
mkdir -p src/{app,assets,components,config,features,hooks,lib,types,utils}
mkdir -p src/features/{auth,users}/{api,components,hooks,types}
5. ファイルの移動
# 機能別にファイルを移動
mv src/components/LoginForm.tsx src/features/auth/components/
mv src/hooks/useAuth.ts src/features/auth/hooks/
Naming Conventions
| ルール | 例 | 説明 |
|---|---|---|
| kebab-case | my-project |
フォルダー名 (スペース禁止) |
| PascalCase | UserProfile.tsx |
Reactコンポーネント |
| camelCase | useAuth.ts |
フック、ユーティリティ |
| UPPER_CASE | API_URL |
定数 |
Anti-patterns
❌ 言語別分類
~/dev/python/
~/dev/javascript/
→ React + Djangoプロジェクトはどこに?
❌ デスクトップの使用
~/Desktop/新しいフォルダー/test1/asdf/
→ ~/dev/playground/ を使用
❌ スペースを含むフォルダー名
My Project/
→ my-project/
❌ タイプ別のみの分類 (規模が大きい場合)
src/
├── components/ # 100個のコンポーネント
├── hooks/ # 50個のフック
└── utils/ # 30個のユーティリティ
→ features/ 単位でグループ化
Quick Setup Scripts
macOS/Linux: 開発ルートの作成
mkdir -p ~/dev/{work,personal,study,open-source,playground,dotfiles}
プロジェクトスキャフォールディング
# プロジェクトの基本構造
mkdir -p {src,assets,config,docs,scripts,tests,_legacy}
touch README.md .gitignore .env.example
Bulletproof React構造
mkdir -p src/{app/routes,assets,components,config,features,hooks,lib,providers,stores,testing,types,utils}
References
- Next.js Project Structure
- [Bulletproof React](https://github.com/alan2207/bulletpro
📜 原文 SKILL.md(Claudeが読む英語/中国語)を展開
Project Structure
프로젝트 폴더 구조를 업계 표준에 맞게 정리하는 스킬입니다.
Core Principles
"바탕화면에 코드를 두지 않는다" "분류 기준을 섞지 않는다"
Safety Rules
| 명령어 | 상태 | 대안 |
|---|---|---|
rm -rf |
🔴 금지 | _legacy/로 이동 |
rm |
🔴 금지 | _legacy/로 이동 |
mv to _legacy/ |
✅ 허용 | 기본 정리 방식 |
mkdir |
✅ 허용 | 새 구조 생성 |
정리 방식
# ❌ NEVER: 삭제
rm -rf old-folder
# ✅ ALWAYS: 레거시 폴더로 이동
mkdir -p _legacy
mv old-folder _legacy/old-folder_$(date +%Y%m%d)
Part 1: 개발 루트 디렉토리
권장 루트 위치
~/dev # 가장 추천
~/code
~/workspace
~/git
컨텍스트(목적) 중심 구조 (추천)
~/dev/
├── work/ # 회사 업무
│ ├── company-a/
│ │ ├── backend-api/
│ │ └── frontend-ui/
│ └── company-b/
├── personal/ # 개인/사이드 프로젝트
│ ├── my-blog/
│ └── todo-app/
├── study/ # 강의/책 실습
│ ├── algorithm-101/
│ └── react-course/
├── open-source/ # Fork/기여 프로젝트
│ └── some-lib/
├── playground/ # 일회성 테스트 (샌드박스)
│ └── test-script.py
└── dotfiles/ # 개인 설정 파일 버전관리
호스트(Source) 중심 구조 (Go 스타일)
~/dev/
├── github.com/
│ ├── my-username/
│ │ └── project-a/
│ └── other-user/
│ └── awesome-lib/
├── gitlab.com/
│ └── company-group/
│ └── company-project/
└── bitbucket.org/
Part 2: 프로젝트 내부 구조
기본 프로젝트 스캐폴딩
project-name/
├── src/ # 실제 소스 코드
├── assets/ # 이미지, 폰트, 정적 파일
├── config/ # 설정 파일
├── docs/ # 문서화 자료
├── scripts/ # 빌드/배포 스크립트
├── tests/ # 테스트 코드
├── dist/ # 빌드 결과물 (Git 제외)
├── _legacy/ # 정리된 레거시 코드
├── .gitignore
├── .env.example # 환경변수 예시 (.env는 Git 제외)
├── README.md
└── LICENSE
Part 3: 프론트엔드 아키텍처 패턴
Pattern A: Next.js App Router + Colocation
라우트(페이지) 기준으로 폴더 생성, 필요한 파일을 같은 폴더에 배치
app/
├── (marketing)/ # Route Group (URL에 미반영)
│ ├── page.tsx
│ ├── components/ # 이 라우트 전용 컴포넌트
│ │ └── Hero.tsx
│ └── styles.css
├── dashboard/
│ ├── layout.tsx
│ ├── page.tsx
│ ├── loading.tsx
│ ├── error.tsx
│ └── components/
│ ├── DashboardHeader.tsx
│ └── DashboardStats.tsx
├── api/
│ └── users/
│ └── route.ts
└── globals.css
lib/ # 공용 유틸리티
components/ # 전역 공용 컴포넌트
적합한 경우: Next.js 기반 프로젝트
Pattern B: Bulletproof React (Feature-based)
기능(Feature) 단위로 묶어서 유지보수 용이한 구조
src/
├── app/ # 앱 초기화 (라우터, 엔트리, 전역 설정)
│ ├── routes/
│ ├── App.tsx
│ └── main.tsx
├── assets/
├── components/ # 완전 공용 UI
│ ├── Button/
│ ├── Modal/
│ └── Form/
├── config/
├── features/ # 🔑 핵심: 기능 단위
│ ├── auth/
│ │ ├── api/
│ │ ├── components/
│ │ ├── hooks/
│ │ ├── types/
│ │ └── index.ts
│ ├── users/
│ │ ├── api/
│ │ ├── components/
│ │ ├── hooks/
│ │ └── index.ts
│ └── dashboard/
├── hooks/ # 전역 훅
├── lib/ # 외부 라이브러리 래퍼
├── providers/
├── stores/
├── testing/
├── types/ # 전역 타입
└── utils/ # 전역 유틸리티
적합한 경우: 팀 규모가 크거나 기능이 많은 React 프로젝트
Pattern C: Feature-Sliced Design (FSD)
계층(Layer)으로 분류하는 아키텍처 방법론
src/
├── app/ # Layer 1: 앱 초기화
│ ├── providers/
│ ├── styles/
│ └── index.tsx
├── pages/ # Layer 2: 페이지 (라우트)
│ ├── home/
│ ├── profile/
│ └── settings/
├── widgets/ # Layer 3: 독립적인 UI 블록
│ ├── header/
│ ├── sidebar/
│ └── footer/
├── features/ # Layer 4: 사용자 시나리오
│ ├── auth/
│ ├── comments/
│ └── likes/
├── entities/ # Layer 5: 비즈니스 엔티티
│ ├── user/
│ ├── post/
│ └── comment/
└── shared/ # Layer 6: 공유 리소스
├── ui/
├── lib/
├── api/
└── config/
적합한 경우: 규칙을 팀이 같이 지킬 수 있는 중대형 프로젝트
Part 4: 하이브리드 패턴 (Next.js + Feature)
Next.js App Router를 뼈대로, features 방식을 섞은 실용적 구조
app/ # Next.js App Router
├── (marketing)/
├── dashboard/
└── api/
src/
├── components/ # 전역 공용 컴포넌트
├── features/ # Bulletproof 스타일 기능 단위
│ ├── auth/
│ ├── users/
│ └── analytics/
├── hooks/
├── lib/
├── types/
└── utils/
Workflow: 폴더 정리
1. 현재 구조 분석
# 최상위 폴더 확인
ls -la
# 트리 구조 확인 (2단계)
find . -maxdepth 2 -type d | head -30
2. 레거시 폴더 생성
mkdir -p _legacy
3. 정리 대상 이동
# 날짜 태그 붙여서 이동
mv messy-folder _legacy/messy-folder_$(date +%Y%m%d)
4. 새 구조 생성
# Bulletproof 구조 예시
mkdir -p src/{app,assets,components,config,features,hooks,lib,types,utils}
mkdir -p src/features/{auth,users}/{api,components,hooks,types}
5. 파일 이동
# 기능별로 파일 이동
mv src/components/LoginForm.tsx src/features/auth/components/
mv src/hooks/useAuth.ts src/features/auth/hooks/
Naming Conventions
| 규칙 | 예시 | 설명 |
|---|---|---|
| kebab-case | my-project |
폴더명 (공백 금지) |
| PascalCase | UserProfile.tsx |
React 컴포넌트 |
| camelCase | useAuth.ts |
훅, 유틸리티 |
| UPPER_CASE | API_URL |
상수 |
Anti-patterns
❌ 언어별 분류
~/dev/python/
~/dev/javascript/
→ React + Django 프로젝트는 어디에?
❌ 바탕화면 사용
~/Desktop/새 폴더/test1/asdf/
→ ~/dev/playground/ 사용
❌ 공백 있는 폴더명
My Project/
→ my-project/
❌ 타입별로만 분류 (규모가 클 때)
src/
├── components/ # 100개 컴포넌트
├── hooks/ # 50개 훅
└── utils/ # 30개 유틸
→ features/ 단위로 그룹화
Quick Setup Scripts
macOS/Linux: 개발 루트 생성
mkdir -p ~/dev/{work,personal,study,open-source,playground,dotfiles}
프로젝트 스캐폴딩
# 프로젝트 기본 구조
mkdir -p {src,assets,config,docs,scripts,tests,_legacy}
touch README.md .gitignore .env.example
Bulletproof React 구조
mkdir -p src/{app/routes,assets,components,config,features,hooks,lib,providers,stores,testing,types,utils}