Project Structure Guide
Language: English | 繁體中文
Version: 1.0.0 Last Updated: 2025-12-30 Applicability: Claude Code Skills
Purpose
This skill provides guidance on structuring projects according to language and framework conventions. It helps create consistent, maintainable directory layouts.
Trigger
Use this skill when:
- •Creating a new project
- •Reorganizing existing project structure
- •Adding new modules or features
- •Setting up build configuration
- •Creating .gitignore files
Supported Languages
| Language | Frameworks/Patterns |
|---|---|
| Node.js | Express, NestJS, Next.js |
| Python | Django, Flask, FastAPI |
| Java | Spring Boot, Maven, Gradle |
| .NET | ASP.NET Core, Console |
| Go | Standard layout, cmd/pkg |
| Rust | Binary, Library, Workspace |
| Kotlin | Gradle, Android, Multiplatform |
| PHP | Laravel, Symfony, PSR-4 |
| Ruby | Rails, Gem, Sinatra |
| Swift | SPM, iOS App, Vapor |
Common Structure Patterns
Standard Directories
code
project-root/ ├── src/ # Source code ├── tests/ # Test files ├── docs/ # Documentation ├── tools/ # Build/deployment scripts ├── examples/ # Usage examples ├── config/ # Configuration files └── .github/ # GitHub configuration
Build Output (Always gitignore)
code
dist/ # Distribution output build/ # Compiled artifacts out/ # Output directory bin/ # Binary executables
Language-Specific Guidelines
Node.js
code
project/ ├── src/ │ ├── index.js │ ├── routes/ │ ├── controllers/ │ ├── services/ │ └── models/ ├── tests/ ├── package.json └── .gitignore
Python
code
project/ ├── src/ │ └── package_name/ │ ├── __init__.py │ └── main.py ├── tests/ ├── pyproject.toml └── .gitignore
Go
code
project/ ├── cmd/ │ └── appname/ │ └── main.go ├── internal/ ├── pkg/ ├── go.mod └── .gitignore
Quick Actions
Create Project Structure
When asked to create a project:
- •Ask for language/framework
- •Generate appropriate directory structure
- •Create essential config files
- •Generate .gitignore
Review Structure
When reviewing existing structure:
- •Check language conventions
- •Verify gitignore patterns
- •Suggest improvements
- •Identify misplaced files
Rules
- •Follow language conventions - Each language has established patterns
- •Separate concerns - Keep source, tests, docs separate
- •Gitignore build outputs - Never commit dist/, build/, out/
- •Consistent naming - Use language-appropriate casing
- •Config at root - Place config files at project root