Skip to content
project-architect logo

Project Architect Skill v1.0

project-architect

**PROJECT ARCHITECT** - '새 프로젝트', '프로젝트 시작', '폴더 구조', '아키텍처 설계', '구조 잡아줘', '프로젝트 세팅' 요청 시 자동 발동. 프로 개발자 수준의 확장 가능한 프로젝트 구조 설계. 레이어 분리, 모듈화, 베스트 프랙티스 적용.

SKILL.md

Full skill instructions

Project Architect Skill v1.0

프로젝트 설계 마스터 - 시작부터 확장 가능한 구조로 설계

핵심 철학

Core_Philosophy:
  원칙: "집 짓기 전에 설계도 먼저"
  목표: "비개발자도 프로 개발자 수준의 구조로 시작"
  
  Anti_Patterns_Prevention:
    - ❌ 모든 코드가 한 파일에 (God File)
    - ❌ 폴더 없이 루트에 파일 나열
    - ❌ 비즈니스 로직과 UI 코드 혼재
    - ❌ 설정값 하드코딩
    - ❌ 테스트 없는 구조

자동 발동 조건

Auto_Trigger_Conditions:
  Keywords_KO:
    - "새 프로젝트", "프로젝트 시작"
    - "폴더 구조", "디렉토리 구조"
    - "아키텍처 설계", "구조 설계"
    - "프로젝트 세팅", "초기 설정"
    - "뼈대 잡아줘", "구조 잡아줘"
    - "보일러플레이트", "스캐폴딩"
    
  Keywords_EN:
    - "new project", "project setup"
    - "folder structure", "directory structure"
    - "architecture design", "scaffolding"
    - "boilerplate", "project skeleton"
    
  File_Events:
    - "package.json 없는 빈 디렉토리 진입"
    - "신규 프로젝트 생성 요청"

선택적 문서 로드 전략

Document_Loading_Strategy:
  Always_Load:
    - "core/​universal-principles.md"   # 공통 원칙
    - "core/​layer-separation.md"       # 레이어 분리
    
  Project_Type_Load:
    Web_Frontend: "templates/​frontend.md"
    Web_Backend: "templates/​backend.md"
    Fullstack: "templates/​fullstack.md"
    API_Server: "templates/​api-server.md"
    CLI_Tool: "templates/​cli.md"
    Library: "templates/​library.md"
    Monorepo: "templates/​monorepo.md"
    
  Framework_Specific_Load:
    Next.js: "frameworks/​nextjs.md"
    React: "frameworks/​react.md"
    Vue: "frameworks/​vue.md"
    NestJS: "frameworks/​nestjs.md"
    FastAPI: "frameworks/​fastapi.md"
    Express: "frameworks/​express.md"
    Django: "frameworks/​django.md"

핵심 원칙

1. 레이어 분리 (Layer Separation)

Layer_Architecture:
  Presentation_Layer:
    역할: "사용자 인터페이스"
    포함: "pages, components, views, layouts"
    규칙: "비즈니스 로직 금지, UI만"
    
  Business_Layer:
    역할: "비즈니스 로직"
    포함: "services, usecases, domain"
    규칙: "UI/​DB 직접 접근 금지"
    
  Data_Layer:
    역할: "데이터 접근"
    포함: "repositories, api, database"
    규칙: "데이터 소스 추상화"
    
  Shared_Layer:
    역할: "공유 유틸리티"
    포함: "utils, helpers, constants, types"
    규칙: "의존성 최소화"

2. 기능별 모듈화 (Feature-Based Modularity)

Module_Structure:
  방식: "기능별로 관련 파일 그룹화"
  
  Before_Bad:
    components/
      Button.tsx
      UserCard.tsx
      ProductCard.tsx
    hooks/
      useUser.ts
      useProduct.ts
    services/
      userService.ts
      productService.ts
      
  After_Good:
    features/
      user/
        components/​UserCard.tsx
        hooks/​useUser.ts
        services/​userService.ts
        types/​user.types.ts
        index.ts  # Public exports
      product/
        components/​ProductCard.tsx
        hooks/​useProduct.ts
        services/​productService.ts
        types/​product.types.ts
        index.ts
    shared/
      components/​Button.tsx
      utils/​helpers.ts

3. 설정 외부화 (Configuration Externalization)

Config_Management:
  환경별_분리:
    .env.local: "로컬 개발 (git 무시)"
    .env.development: "개발 환경"
    .env.production: "프로덕션 환경"
    .env.example: "템플릿 (git 포함)"
    
  설정_구조:
    config/
      index.ts      # 설정 진입점
      database.ts   # DB 설정
      auth.ts       # 인증 설정
      api.ts        # API 설정
      constants.ts  # 상수
      
  절대_금지:
    - ❌ 코드에 API 키 직접 입력
    - ❌ 하드코딩된 URL
    - ❌ 매직 넘버 (의미 없는 숫자)

4. 명확한 진입점 (Clear Entry Points)

Entry_Points:
  규칙: "각 모듈은 index.ts로 public API 노출"
  
  예시:
    features/​user/​index.ts: |
      // Public exports only
      export { UserCard } from './​components/​UserCard';
      export { useUser } from './​hooks/​useUser';
      export type { User } from './​types/​user.types';
      // Internal implementations are NOT exported
      
  Import_규칙:
    Good: "import { UserCard } from '@/​features/​user';"
    Bad: "import { UserCard } from '@/​features/​user/​components/​UserCard';"

프로젝트 타입별 구조 템플릿

Next.js Fullstack (권장)

my-project/
├── src/
│   ├── app/                    # Next.js App Router
│   │   ├── (auth)/            # 인증 필요 페이지 그룹
│   │   ├── (public)/          # 공개 페이지 그룹
│   │   ├── api/               # API Routes
│   │   ├── layout.tsx         # Root Layout
│   │   └── page.tsx           # Home Page
│   │
│   ├── features/              # 기능별 모듈
│   │   ├── auth/
│   │   │   ├── components/
│   │   │   ├── hooks/
│   │   │   ├── services/
│   │   │   ├── types/
│   │   │   └── index.ts
│   │   └── [feature-name]/
│   │
│   ├── shared/                # 공유 모듈
│   │   ├── components/        # 공통 UI 컴포넌트
│   │   │   ├── ui/           # 기본 UI (Button, Input)
│   │   │   └── layout/       # 레이아웃 컴포넌트
│   │   ├── hooks/            # 공통 훅
│   │   ├── utils/            # 유틸리티 함수
│   │   ├── types/            # 공통 타입
│   │   └── constants/        # 상수
│   │
│   ├── services/              # 외부 서비스 연동
│   │   ├── api/              # API 클라이언트
│   │   ├── database/         # DB 연결
│   │   └── external/         # 외부 API (결제, 이메일 등)
│   │
│   └── config/               # 설정
│       ├── index.ts
│       └── env.ts
│
├── public/                    # 정적 파일
├── tests/                     # 테스트
│   ├── unit/
│   ├── integration/
│   └── e2e/
│
├── docs/                      # 문서
├── scripts/                   # 빌드/배포 스크립트
│
├── .env.example              # 환경변수 템플릿
├── .env.local                # 로컬 환경변수 (gitignore)
├── .gitignore
├── package.json
├── tsconfig.json
├── next.config.js
└── README.md

Backend API Server (NestJS/​Express)

my-api/
├── src/
│   ├── modules/               # 기능별 모듈
│   │   ├── auth/
│   │   │   ├── controllers/
│   │   │   ├── services/
│   │   │   ├── dto/
│   │   │   ├── entities/
│   │   │   └── auth.module.ts
│   │   └── [module-name]/
│   │
│   ├── common/                # 공통 모듈
│   │   ├── decorators/
│   │   ├── filters/
│   │   ├── guards/
│   │   ├── interceptors/
│   │   ├── pipes/
│   │   └── middleware/
│   │
│   ├── database/              # DB 관련
│   │   ├── migrations/
│   │   ├── seeds/
│   │   └── config/
│   │
│   ├── config/                # 설정
│   │   ├── app.config.ts
│   │   ├── database.config.ts
│   │   └── index.ts
│   │
│   ├── app.module.ts
│   └── main.ts
│
├── test/
│   ├── unit/
│   └── e2e/
│
├── docker/
│   ├── Dockerfile
│   └── docker-compose.yml
│
├── .env.example
├── package.json
└── README.md

체크리스트

프로젝트 시작 시 필수 확인

## 구조 체크리스트

### 레이어 분리
□ UI 코드와 비즈니스 로직이 분리되어 있는가?
□ 데이터 접근 로직이 추상화되어 있는가?
□ 공유 코드가 별도 폴더에 있는가?

### 모듈화
□ 기능별로 폴더가 분리되어 있는가?
□ 각 모듈에 index.ts가 있는가?
□ 순환 참조가 없는가?

### 설정 관리
□ .env.example이 있는가?
□ 하드코딩된 설정값이 없는가?
□ 환경별 설정이 분리되어 있는가?

### 확장성
□ 새 기능 추가 시 기존 코드 수정이 최소화되는가?
□ 폴더 구조가 일관성 있는가?
□ 네이밍 컨벤션이 통일되어 있는가?

### 문서화
□ README.md가 있는가?
□ 프로젝트 구조 설명이 있는가?
□ 실행 방법이 문서화되어 있는가?

Quick Commands

명령동작
architect init대화형으로 프로젝트 구조 생성
architect analyze현재 구조 분석 및 개선점 제안
architect template <type>특정 타입 템플릿 적용
architect validate구조 규칙 검증

출력 형식

구조 제안 시

## 📁 프로젝트 구조 제안

### 프로젝트 정보
- **타입**: Next.js Fullstack
- **규모**: 중형 (10-50 페이지 예상)
- **팀 규모**: 1-3명

### 권장 구조
[폴더 트리 출력]

### 핵심 규칙
1. **features/​** - 기능별 모듈화
2. **shared/​** - 공통 컴포넌트만
3. **services/​** - 외부 연동 추상화

### 시작 명령
\`\`\`bash
npx create-next-app@latest my-project --typescript --tailwind --app
\`\`\`

### 다음 단계
1. 폴더 구조 생성
2. 기본 설정 파일 추가
3. 첫 번째 기능 모듈 생성

Version: 1.0.0 Dependencies: tech-stack-advisor, requirements-analyzer Quality Target: 프로 개발자 수준 구조

More skills from diegosouzapw

accessibility logo
diegosouzapw/awesome-omni-skill

accessibility

Accessibility guidelines for VS Code features — covers accessibility help dialogs, accessible views, verbosity settings, accessibility signals, ARIA alerts/status announcements, keyboard navigation, and ARIA labels/roles. Applies to both new interactive UI surfaces and updates to existing feature...

62 1
View
mermaid-diagrams logo
diegosouzapw/awesome-omni-skill

mermaid-diagrams

Mermaid diagram creation for flowcharts, sequences, ERDs, and more. Generate diagrams from text in markdown files. Use for documentation, architecture diagrams, and visual representations. Triggers on mermaid, flowchart, sequence diagram, ERD, entity relationship, gantt chart, pie chart, class di...

62 1
View
tauri2-react-rust logo
diegosouzapw/awesome-omni-skill

tauri2-react-rust

Guides development of cross-platform desktop apps with Tauri 2, TypeScript, React, and Rust. Use when building Tauri apps, implementing IPC, designing Rust backend or TypeScript/React frontend, when researching or cloning a website (open site, snapshot elements), when verifying local dev or built...

62 1
View
fp-ts-errors logo
diegosouzapw/awesome-omni-skill

fp-ts-errors

Handle errors as values using fp-ts Either and TaskEither for cleaner, more predictable TypeScript code. Use when implementing error handling patterns with fp-ts.

62 0
View
ring:pre-dev-research logo
diegosouzapw/awesome-omni-skill

ring:pre-dev-research

Gate 0 research phase for pre-dev workflow. Dispatches 3 parallel research agents to gather codebase patterns, external best practices, and framework documentation BEFORE creating PRD/TRD. Outputs research.md with file:line references.

62 0
View
create-assistant logo
diegosouzapw/awesome-omni-skill

create-assistant

Create and configure Vapi voice AI assistants with models, voices, transcribers, tools, hooks, and advanced settings. Use when building voice agents, phone bots, customer support assistants, or any conversational AI that handles phone or web calls.

62 0
View
codex-headless logo
diegosouzapw/awesome-omni-skill

codex-headless

Delegiere Aufgaben an OpenAI Codex CLI im Headless-Mode. Nutzt ChatGPT Subscription (KEIN API Key). Nur Workspace-Zugriff, KEIN System-Zugriff. Auto-Accept mit --full-auto. Web-Recherche mit --search.

62 0
View
social-media-scheduler logo
diegosouzapw/awesome-omni-skill

social-media-scheduler

Generate a full week of social media content for any topic. Outputs platform-optimized posts for Twitter/X, LinkedIn, and Instagram with hashtags and posting times.

62 0
View
Data Privacy Compliance logo
diegosouzapw/awesome-omni-skill

Data Privacy Compliance

Data privacy and regulatory compliance specialist for GDPR, CCPA, HIPAA, and international data protection laws. Use when implementing privacy controls, conducting data protection impact assessments, ensuring regulatory compliance, or managing data subject rights. Expert in consent management, da...

62 0
View
triple-review logo
diegosouzapw/awesome-omni-skill

triple-review

Reviews a task using the TRIPLE protocol, as the review agent.

62 0
View
Tech Stack & Architecture Decision logo
diegosouzapw/awesome-omni-skill

Tech Stack & Architecture Decision

Define and document the technology stack and architecture decisions for a project. Use when the user needs to choose a tech stack, make architecture decisions, define infrastructure choices, or document technology selections. Triggers on requests like "define the tech stack", "choose technologies...

62 0
View

Popular AI tools

Kaiber logo
Video

Kaiber

Generate, edit, and beat-sync AI video with leading models in one workspace.

Paid
View
Vimcal logo
Productivity

Vimcal

The world's fastest calendar for remote work

Free
View

Transform Your Design with AI Designer by ImgCreator.ai

Freemium
View
Akool AI logo
Content & writing

Akool AI

Revolutionizing Video Production with AI-Powered Creativity

Paid
View

Extend an image past the frame and let AI fill the new aspect ratio.

Freemium
View
StarByFace logo
Security

StarByFace

Discover your celebrity doppelgänger with StarByFace!

Free
View
C

ChainClarity explains 700+ crypto whitepapers in plain English, with layered summaries, comparisons, research tools, alerts, and a $4.99 Pro plan.

Freemium
View
Opus Clip logo
Coding & apps

Opus Clip

Opus.ai: Revolutionize Your Web Experience

Free
View