jpskill.com
🛠️ 開発・MCP コミュニティ

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.

⚡ おすすめ: コマンド1行でインストール(60秒)

下記のコマンドをコピーしてターミナル(Mac/Linux)または PowerShell(Windows)に貼り付けてください。 ダウンロード → 解凍 → 配置まで全自動。

🍎 Mac / 🐧 Linux
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
🪟 Windows (PowerShell)
$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. 1. 下の青いボタンを押して project-structure.zip をダウンロード
  2. 2. ZIPファイルをダブルクリックで解凍 → project-structure フォルダができる
  3. 3. そのフォルダを C:\Users\あなたの名前\.claude\skills\(Win)または ~/.claude/skills/(Mac)へ移動
  4. 4. Claude Code を再起動

⚠️ ダウンロード・利用は自己責任でお願いします。当サイトは内容・動作・安全性について責任を負いません。

🎯 このSkillでできること

下記の説明文を読むと、このSkillがあなたに何をしてくれるかが分かります。Claudeにこの分野の依頼をすると、自動で発動します。

📦 インストール方法 (3ステップ)

  1. 1. 上の「ダウンロード」ボタンを押して .skill ファイルを取得
  2. 2. ファイル名の拡張子を .skill から .zip に変えて展開(macは自動展開可)
  3. 3. 展開してできたフォルダを、ホームフォルダの .claude/skills/ に置く
    • · macOS / Linux: ~/.claude/skills/
    • · Windows: %USERPROFILE%\.claude\skills\

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

📜 原文 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}

References