# Step 0: python-project-skeleton ## 읽어야 할 파일 - `/AGENTS.md` - `/PROGRESS.md` - `/WORKNOTES.md` - `/docs/PRD.md` - `/docs/ARCHITECTURE.md` - `/docs/ADR.md` ## 작업 Python tutorial project의 최소 기반을 만든다. - `/pyproject.toml` 생성: Python `>=3.12,<3.15`, setuptools src layout, pytest `pythonpath = ["src"]`, ruff target `py312`. - runtime dependencies: `numpy`, `scipy`, `pandas`, `scikit-learn`, `matplotlib`, `joblib`. - dev dependencies: `pytest`, `ruff`, `jupyterlab`, `ipykernel`, `nbconvert`. - Python package directories: `/src/femsurrogate/`, `/src/femsurrogate/fea/`, `/src/femsurrogate/data/`, `/src/femsurrogate/surrogates/`, `/src/femsurrogate/plotting/`. - artifact directories: `/tests/`, `/data/reference/`, `/data/processed/`, `/reports/results/`, `/reports/predictions/`, `/reports/figures/`, `/notebooks/`. - 빈 artifact directory에는 `.gitkeep`을 둔다. - Python cache, virtualenv, notebook checkpoint를 `.gitignore`에 추가한다. - `/PROGRESS.md`에 phase 0 시작 상태를 기록한다. ## Acceptance Criteria ```powershell uv sync uv run python -c "import femsurrogate; print(femsurrogate.__name__)" uv run ruff check . ``` ## 검증 절차 AC 커맨드를 실행하고 성공하면 `phases/0-project-foundation/index.json`의 step 0을 `completed`로 갱신한다. ## 금지사항 - Beam solver, parser, dataset, surrogate 모델 구현을 이 step에서 만들지 마라. - Notebook 내용을 만들지 마라.