Files
2026-05-21 17:03:51 +09:00

41 lines
1.5 KiB
Markdown

# 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 내용을 만들지 마라.