# README.md

# 프로젝트 생성기 (Project Generator)

사용자가 프로젝트 번호와 프로젝트 이름을 입력하면 D:\AI-WORKS 안에 표준 프로젝트를 자동으로 생성하는 Python CLI 도구입니다.

## 사용법

```bat
python create_project.py
```

또는

```bat
run.bat
```

## 입력 형식

1. 프로젝트 번호: 숫자 (예: 03, 04)
2. 프로젝트 이름: 한글 또는 영문 (예: 파일명정리, ImageProcessor)

## 생성되는 프로젝트 구조

```
{PROJECT_NUMBER}-{PROJECT_NAME}/
├── source/       # 원본 파일 입력 디렉터리
├── output/       # 정리된 파일 출력 디렉터리
├── backup/       # 변경 전 파일 백업 디렉터리
├── logs/         # 실행 로그 디렉터리
├── src/          # 소스 코드 디렉터리
├── config.json   # 프로젝트 설정
├── PROJECT_CONTEXT.md
├── RULES.md
├── STATE.json
├── TODO.md
├── CHANGELOG.md
├── README.md
└── run.bat       # 실행 스크립트
```

## 템플릿

- 템플릿 위치: `templates/default/`
- 모든 템플릿 파일은 `{PROJECT_NUMBER}-{PROJECT_NAME}` 형식으로 변수 치환됨

## AI 이어작업 안내

1. `STATE.json` 읽기
2. `TODO.md`에서 현재 진행 항목 확인
3. `PROJECT_CONTEXT.md`에서 아키텍처/결정사항 확인
4. 작업 완료 후 문서 갱신

---

# create_project.py 설계

## 목적

AI-WORKS 안에 새 프로젝트를 표준 구조로 자동 생성한다.

사용자는 프로젝트 번호와 프로젝트 이름만 입력한다.

예:

- 프로젝트 번호: 03
- 프로젝트 이름: 사진분류

생성 결과:

D:\AI-WORKS\03-사진분류

---

## Version 1.0 구현 범위

Version 1.0은 단순하고 안전하게 만든다.

구현 기능:

1. 프로젝트 번호 입력
2. 프로젝트 이름 입력
3. 프로젝트 폴더명 자동 생성
4. 표준 폴더 생성
5. templates/default 파일 복사
6. 기존 폴더 덮어쓰기 방지
7. 기존 파일 덮어쓰기 방지
8. 생성 결과 출력
9. 작업 로그 저장

Version 1.0에서는 다음 기능은 구현하지 않는다.

- GUI
- Git 초기화
- 프로젝트 종류 선택
- 인터넷 연결
- 외부 라이브러리
- 기존 프로젝트 수정
- 다른 프로젝트 참조

---

## 기본 폴더 구조

새 프로젝트 생성 시 아래 구조를 만든다.

source
output
backup
logs
src

---

## 기본 파일 구조

templates/default 안의 템플릿 파일을 새 프로젝트에 복사한다.

복사 대상:

- PROJECT_CONTEXT.md.template → PROJECT_CONTEXT.md
- RULES.md.template → RULES.md
- README.md.template → README.md
- CHANGELOG.md.template → CHANGELOG.md
- TODO.md.template → TODO.md
- SESSION.md.template → SESSION.md
- IDEA.md.template → IDEA.md
- STATE.json.template → STATE.json
- config.json.template → config.json
- run.bat.template → run.bat
- build_exe.bat.template → build_exe.bat

---

## 입력값

프로그램 실행 시 사용자에게 입력받는다.

1. 프로젝트 번호

예:

03

2. 프로젝트 이름

예:

사진분류

---

## 프로젝트 폴더명 규칙

프로젝트 번호와 이름을 합쳐 폴더명을 만든다.

형식:

번호-프로젝트이름

예:

03-사진분류

---

## 생성 위치

기본 생성 위치:

D:\AI-WORKS

최종 생성 예:

D:\AI-WORKS\03-사진분류

---

## 안전 규칙

1. 이미 같은 프로젝트 폴더가 있으면 중단한다.
2. 기존 파일은 덮어쓰지 않는다.
3. 기존 폴더가 있으면 그대로 둔다.
4. 삭제 기능은 만들지 않는다.
5. 이동 기능은 만들지 않는다.
6. 다른 프로젝트 폴더는 읽지 않는다.
7. templates/default 폴더만 사용한다.

---

## 오류 처리

다음 상황에서는 작업을 중단하고 안내한다.

1. 프로젝트 번호가 비어 있음
2. 프로젝트 이름이 비어 있음
3. 프로젝트 폴더가 이미 존재함
4. templates/default 폴더가 없음
5. 필수 템플릿 파일이 없음
6. 파일 복사 중 오류 발생

---

## 로그 저장

작업 결과를 logs 폴더에 기록한다.

로그 내용:

- 실행 시간
- 입력한 프로젝트 번호
- 입력한 프로젝트 이름
- 생성된 프로젝트 경로
- 생성된 폴더 목록
- 생성된 파일 목록
- 오류 발생 여부

---

## 실행 흐름

1. 프로그램 시작
2. AI-WORKS 경로 확인
3. templates/default 존재 확인
4. 프로젝트 번호 입력
5. 프로젝트 이름 입력
6. 폴더명 생성
7. 중복 프로젝트 확인
8. 프로젝트 폴더 생성
9. 기본 하위 폴더 생성
10. 템플릿 파일 복사
11. 로그 저장
12. 결과 출력
13. 종료

---

## Version 2.0 예정 기능

Version 2.0에서는 아래 기능을 검토한다.

- 프로젝트 종류 선택
  - default
  - python
  - web
  - empty
- VS Code 자동 실행
- Git 초기화 옵션
- 프로젝트 설명 입력
- 생성 후 README 자동 맞춤 작성
- exe 생성
- 템플릿 선택 기능

Version 2.0 기능은 Version 1.0 완료 전에는 구현하지 않는다.

---

## 개발 원칙

- Python 표준 라이브러리만 사용한다.
- 단순한 구조를 우선한다.
- 안전성을 최우선으로 한다.
- 기존 파일을 덮어쓰지 않는다.
- 다른 프로젝트를 참조하지 않는다.
- templates/default만 참조한다.
- 코드 작성 전 설계를 먼저 승인받는다.