87 lines
4.4 KiB
Markdown
87 lines
4.4 KiB
Markdown
# Project Guidance Refresh Design
|
|
|
|
## 목적
|
|
|
|
Abaqus User Subroutine 개발 지침을 다음 세 원칙에 맞게 정비한다.
|
|
|
|
1. 유한요소 이론과 solver 지식은 `fem-theory-query`를 통해 조사한다.
|
|
2. Abaqus User Subroutine ABI와 매뉴얼 사실은 로컬 매뉴얼 index를 통해 찾는다.
|
|
3. 과거 `uel-3d-euler-beam` 기능에 종속된 산출물과 잔존 참조를 제거한다.
|
|
|
|
`abaverify`는 도입하지 않는다. Abaqus 해석은 사용자가 다른 PC에서 수행하고, 이 저장소는 사용자가 첨부한 변위·응력 CSV와 provenance artifact를 schema/tolerance 기준으로 비교한다.
|
|
|
|
## Source Routing
|
|
|
|
질문의 성격에 따라 근거 경로를 분리한다.
|
|
|
|
| 질문 | 필수 근거 경로 |
|
|
| --- | --- |
|
|
| 유한요소 정식화, residual/tangent, constitutive integration, benchmark, 수치 검증 | `fem-theory-query` |
|
|
| Abaqus User Subroutine argument, update responsibility, product applicability, utility routine | `docs/AbaqusUserSubroutineManual/INDEX_MAP.md` → `INDEX.md` → 선택된 record의 모든 `source_ranges` |
|
|
| 프로젝트 workflow와 artifact contract | `AGENTS.md`, `docs/ABAQUS_SUBROUTINE_AGENT_DESIGN.md`, `docs/ARCHITECTURE.md`, `docs/ADR.md` |
|
|
|
|
`INDEX.md`의 `summary`와 keyword는 탐색 metadata로만 사용한다. 구현 또는 interface 결정을 내릴 때는 선택된 section의 모든 source span을 순서대로 읽고 원문을 authoritative source로 취급한다.
|
|
|
|
## Verification Contract
|
|
|
|
- 기본 로컬 gate는 `python scripts/validate_workspace.py`이다.
|
|
- Fortran production 변경은 no-Abaqus Fortran/Python driver로 TDD 검증한다.
|
|
- Abaqus job과 ODB-to-CSV 추출은 사용자가 다른 Abaqus PC에서 수행한다.
|
|
- 사용자는 변위, 응력 또는 feature contract에서 지정한 결과 CSV와 provenance metadata를 제공한다.
|
|
- 이 저장소는 ODB를 직접 파싱하지 않고 CSV schema, matching key, unit, coordinate system, tolerance를 비교한다.
|
|
- `abaverify` 관련 agent, skill, command, artifact contract는 추가하지 않는다.
|
|
|
|
## 변경 범위
|
|
|
|
다음 파일에서 source routing과 CSV verification 경계를 일관되게 정리한다.
|
|
|
|
- `AGENTS.md`
|
|
- `docs/PRD.md`
|
|
- `docs/ARCHITECTURE.md`
|
|
- `docs/ADR.md`
|
|
- `docs/ABAQUS_SUBROUTINE_AGENT_DESIGN.md`
|
|
- `docs/research/README.md`
|
|
- FEM theory, Abaqus manual, reference CSV를 직접 다루는 `.codex/agents/*.toml`
|
|
- 관련 `.codex/skills/*/SKILL.md`와 변경된 skill의 `agents/openai.yaml`
|
|
|
|
새 매뉴얼 전용 skill은 만들지 않는다. 전역 `AGENTS.md` 규칙과 기존 research/interface skill에 index 탐색 절차를 추가하는 것이 더 단순하며 중복을 줄인다.
|
|
|
|
## Euler Beam 제거 범위
|
|
|
|
이미 삭제된 사용자 변경을 보존하고, 남아 있는 versioned project-specific 항목을 제거한다.
|
|
|
|
- `docs/abaqus-uel-subroutines-research.md`
|
|
- `docs/research/uel-3d-euler-beam-research.md`
|
|
- `scripts/test_uel_3d_euler_beam_uel.py`
|
|
- `scripts/test_validate_fortran.py`에 남은 Euler beam 전용 fixture 이름과 경로
|
|
|
|
공식 매뉴얼의 backward Euler 문구와 generic `UEL` entry point 설명은 과거 feature 산출물이 아니므로 유지한다.
|
|
|
|
## 범위 제외
|
|
|
|
- Harness phase 생성 또는 실행
|
|
- Harness skill 사용
|
|
- Python, Fortran, workspace test 실행
|
|
- Abaqus job 실행 또는 ODB 직접 parsing
|
|
- CSV validator 구현 변경
|
|
- `abaverify` 도입
|
|
|
|
## 정적 검증
|
|
|
|
테스트 대신 다음 문서 검사를 수행한다.
|
|
|
|
1. 변경 파일을 재독해 source routing과 verification 계약의 충돌을 확인한다.
|
|
2. versioned 파일에서 `uel-3d-euler-beam`, `uel_3d_euler_beam`, `3D Euler-Bernoulli` 잔존 참조를 검색한다.
|
|
3. 매뉴얼을 제외한 project guidance에서 `abaverify`가 남지 않았는지 확인한다.
|
|
4. 변경된 skill frontmatter와 `agents/openai.yaml`의 의미가 일치하는지 확인한다.
|
|
5. `git diff --check`와 diff 검토만 수행한다.
|
|
|
|
## 성공 기준
|
|
|
|
- FEM 관련 지식 탐색이 `fem-theory-query`로 명시된다.
|
|
- Abaqus 매뉴얼 사용 순서가 `INDEX_MAP.md` → `INDEX.md` → 모든 `source_ranges`로 명시된다.
|
|
- 외부 Abaqus PC에서 생성한 변위·응력 CSV 비교가 유일한 solver-result verification 경로로 유지된다.
|
|
- project-specific Euler beam 파일과 versioned 참조가 남지 않는다.
|
|
- 기존 사용자 변경을 되돌리지 않는다.
|
|
- Harness skill과 테스트를 실행하지 않는다.
|