initial commit FESurrogateModelTutorial

This commit is contained in:
김경종
2026-05-21 17:03:51 +09:00
parent 93665d9ee6
commit 43b86669fa
122 changed files with 7929 additions and 0 deletions
@@ -0,0 +1,18 @@
{
"project": "FEMSurrogateTutorial",
"phase": "0-project-foundation",
"steps": [
{
"step": 0,
"name": "python-project-skeleton",
"status": "completed",
"summary": "Created uv/pyproject foundation, src package skeleton, artifact directories, and ruff configuration."
},
{
"step": 1,
"name": "import-smoke-test",
"status": "completed",
"summary": "Added package import smoke tests and exposed femsurrogate.__version__."
}
]
}
@@ -0,0 +1,40 @@
# 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 내용을 만들지 마라.
@@ -0,0 +1,36 @@
# Step 1: import-smoke-test
## 읽어야 할 파일
- `/AGENTS.md`
- `/PROGRESS.md`
- `/WORKNOTES.md`
- `/docs/ARCHITECTURE.md`
- `/pyproject.toml`
- `/src/femsurrogate/__init__.py`
## 작업
TDD로 package import smoke test를 추가한다.
- 먼저 `/tests/test_project_structure.py`를 작성한다.
- 테스트는 `femsurrogate.__version__`이 문자열인지 확인한다.
- 테스트는 `femsurrogate.fea`, `femsurrogate.data`, `femsurrogate.surrogates`, `femsurrogate.plotting` import 가능성을 확인한다.
- 테스트 실패를 먼저 확인한 뒤 최소 구현으로 통과시킨다.
- `/PROGRESS.md`에 검증 결과를 기록한다.
## Acceptance Criteria
```powershell
uv run pytest tests/test_project_structure.py -q
uv run ruff check .
```
## 검증 절차
테스트가 먼저 실패한 기록을 확인하고, 구현 후 AC가 통과하면 `phases/0-project-foundation/index.json`의 step 1을 `completed`로 갱신한다.
## 금지사항
- solver API를 만들지 마라.
- 테스트를 구현 후에만 작성하지 마라.