initial commit FESurrogateModelTutorial
This commit is contained in:
@@ -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를 만들지 마라.
|
||||
- 테스트를 구현 후에만 작성하지 마라.
|
||||
Reference in New Issue
Block a user