chore(rebar): Pier_T_rebar 작업 폴더 초기 구성 및 외부 의존 파일 통합

- Code\rebar_pipeline, review_pipeline, pier-program을 정션에서 실제 폴더로 전환
- Code\rhino_mcp 및 CLAUDE_rhino배경.md 추가, .mcp.json은 PYTHONPATH로 새 위치 사용
- pier-program 내부 .git 제거(이력은 backup\pier-program_20261028.bundle에 보관)
- worktree 가이드 반영(CLAUDE.local.md, HANDOFF.md)
- D:\Rhino-MCP 경로 참조를 새 위치로 치환

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
This commit is contained in:
ahnyongjooandClaude Sonnet 5.5 committed 2026-10-28 11:20:18 +09:00
commit 964a841de1
3978 files changed
+58013356

No files matched your search

@@ -0,0 +1,76 @@
# Task_산외교울산P2모델링_2026-10-15_v0.1.00
| 항목 | 내용 |
|------|------|
| 담당자 | 심영표 |
| 일자 | 2026-10-15 |
| Task 식별자 | Task_산외교울산P2모델링_2026-10-15_v0.1.00 |
| 선행 Task | prompt/심영표/2026-10-15/Task_템플릿구분기준결정및G1검사기통합_2026-10-15_v0.1.00.md, prompt/심영표/2026-10-13/Task_산외교울산P1모델링_2026-10-13_v0.1.00.md |
| 경로·모드 | COMPLEX / GATED(범위를 사용자에게 질의) |
## INPUT
### [1]
```
[원문]
교각배근도(울산P2).dwq 를 모델링 해줘
```
[주석] `.dwq`는 오타로 보고 `RAG/교각배근도(울산P2).dwg`(앱 data 사본 포함)로 처리.
[시스템응답] 범위 질의 → 사용자 선택: "형상(G1)+받침(G5)까지 (Recommended)"
### [2]
```
[원문]
Task: 확인
- 기초 회전방향은 추론 적용(반시계방향)
- 말뚝, 솔플레이트, 대좌fck 는 추론 적용
- G2~G4 진행해줘
```
### [3]
```
[원문]
보호 템플릿으로 저장
```
[주석] 작업 중간에 입력됨. 형상 단계 상태로 먼저 저장했고 철근 완료 후 철근 포함본으로 다시 저장(이전본은 `data/_템플릿/_이전/`).
## PROCESS
1. 앱에 이미 있던 `산외교울산P2`가 P1 복사본(기초 7,500·말뚝 없음)임을 확인. P1과 문자 집합을 비교해 차이 파악(기초 7,800, 말뚝, 37° 회전, 기둥 27.3 m, EL 모두).
2. 일반도 렌더·엔티티 덤프로 기초·코핑·말뚝·받침 좌표 판독. 기초 회전 주기(9.767 = 7.800/cos37)로 각도 확인, 방향은 [추론].
3. 엔진 확장: concrete_tapered.py(기초 rot_deg), g1_tapered.py(말뚝·회전 검사). 백업 후 수정.
4. `Code/울산P2판독/extract_s1.py`로 params·expected 생성, G1·G5 실행: PASS 118/118, 75/75(음성 검출).
5. 회귀: 울산P1·옥성교·새재1교 G1 PASS(104·147·138).
6. 부수 정리: 추천 시험(test_recommend)에서 울산P2 알려진 불일치 제거(해소) → "일치 템플릿 없음=판단 불가" 기대로 변경.
7. 판독서·OPEN(#31 해소, #32 신규)·시험(test_ulsan_p2) 작성.
8. 철근 G2~G4(사용자 확인 후): 재료표 34마크 비교 → 기둥(P1 A 32.110, 띠 125단, 크로스타이 76) 판독 extract_r2, 기초 extract_r3(위치 사슬로 수량 일치, B7 320 [추론]), 코핑·받침은 P1 스크립트 파생(make_r4.py, 높이 +853). 엔진: footing_rebar_mats.py(회전·직사각 띠철근·B7 위치 직접 지정)·g3_mats.py. 실행: G2 35/35, G3 63/64(계획 FAIL 1), G4 129/129, G5 75/75. 회귀: 울산P1 G1·G3 104·63, 새재1교 138·72/76, 옥성교 147·75 PASS.
9. 보호 템플릿 `산외교울산P2형` 저장(형상본 → 철근 포함본 재저장), test_templates·test_recommend 갱신.
## DECISIONS
| 결정 지점 | 채택안 | 기각안 / 사유 | 근거 |
| :--- | :--- | :--- | :--- |
| 범위 | 형상(G1)+받침(G5) | 철근까지 전부(판독 범위·[추론] 많음) / 분석만 | 사용자 선택 |
| 기초 회전 방향 | +37° (반시계) | −37° — 화살표(+53°)=교축(+Y)이면 교각 X축이 기초 좌표 −37°. 라벨 'C OF PIER' 위치로는 판별 불가(회전 −37°=선 −90°) | [추론], OPEN #32 |
| 말뚝 모양 | 속찬 원기둥 | 속빈 강관 — 옥성교 O5 결정 재적용 | [추론] |
| 말뚝 머리 | 기초 하면 +100 | — | 정면도 작도 |
| 코핑·받침 규칙 | 울산P1 규칙 재적용(두꺼운 쪽 +Y, 대좌 C3×C6, 패드 A+200/A+100) | — | P1과 같은 형식 |
| 보호 템플릿 저장 | 사용자 요청으로 저장(철근 후 재저장) | — | 사용자 |
| B8 길이 불일치 | 계획 FAIL로 기록(승인 미기재) | 식 변경으로 L에 맞추기 — 근거 없음 | OPEN #32 |
| B7 320 배치 | 22×20 중 중앙 직사각 120개 제외 | 체크무늬(220) — 수량 불일치 | [추론] |
## OUTPUT
| 산출물 | 경로 | 버전 |
| :--- | :--- | :--- |
| 판독서 | DOC/02_분석/분석_산외교울산P2교각도면판독_2026-10-15_v0.1.00.md | v0.1.00 |
| 앱 교각 | Code/교각모델링앱/data/산외교울산P2/ (params, expected, runs/current G1·G5) | S1 |
| 판독 스크립트 | Code/울산P2판독/extract_s1.py, dxftools.py | — |
| 엔진 | engine/rhino/concrete_tapered.py, checks/g1_tapered.py (백업 backup/2026-10-15_울산P2전/) | — |
| 시험 | tools/test_ulsan_p2.py, test_recommend.py(수정) | — |
| 메모리 | context-migration/OPEN_미해결목록.md #31 해소·#32 신규 | 갱신 |
## 검증
G1 118/118, G2 35/35, G3 63/64(계획 FAIL 1), G4 129/129, G5 75/75(전수, 음성 검출), 회귀 PASS, test_ulsan_p2·test_recommend·test_templates PASS. 육안 확인 미실시.
| MODEL | claude-sonnet-5-5 |
| EFFORT | 턴 4 / 도구호출 약 130 |
| STATUS | PROCESS PARTIAL (G1~G5 모델링 완료, 앱 확정·승인·B8 길이·B7 배치 설계자 확인 대기) |
| 비고 | 요청의 `.dwq`는 `.dwg`로 해석. 이번 Task에서 test_web 등 웹 전체 시험은 재실행하지 않음(엔진 파일 수정 후 G1 회귀만 확인). |
@@ -0,0 +1,60 @@
# Task_새재1교P1기둥철근_2026-10-15_v0.1.00
| 항목 | 내용 |
|---|---|
| 담당자 | 심영표 |
| 일자 | 2026-10-15 |
| Task 식별자 | Task_새재1교P1기둥철근_2026-10-15_v0.1.00 |
| 선행 Task | `prompt/심영표/2026-10-15/Task_새재1교P1모델링_2026-10-15_v0.1.00.md` |
| 경로·모드 | COMPLEX / GATED (코딩: 판독 + G2) |
## INPUT
### [1]
```
[원문]
계속진행해줘
```
## PROCESS
1. 다음 단계 = 기둥 철근 G2로 판단(옥성교 순서와 같음, 직전 Task의 N1 결정: 철근은 다음 요청)
2. 판독: 재료표(구조도 4)·철근 상세·단면 5개·정면 치수 사슬. 기둥이 절단 표시로 끊겨 띠철근 선은 42개뿐 → 사슬이 전체(72단·40단)
3. `extract_g2.py`·`add_g2.py`, 기존 링 생성기·검사기 재사용
4. 게이트: 1차 FAIL 2(P3·P4 곡선 길이: 표 반지름 1.004/1.001 사용) → 반지름 1,003.5/1,000.5로 → **G2 41/41 PASS**, G5 재실행 183/183 PASS
5. 템플릿 재저장, 시험 `test_saejae`(G2 추가), 판독서 v0.1.01, 사용설명서 v0.2.09, context-migration·OPEN #27
## DECISIONS
| 결정 지점 | 채택안 | 기각안 / 사유 | 근거 |
| :--- | :--- | :--- | :--- |
| 범위 | G2만 | G2~G4 한 번에 — 분량, 앞 Task N1 | Agent [추론] |
| 띠철근 구간 | P3 5 / P4 18 / P3 36 / P4 9 / P3 4 | 다른 배정 — 수량 45·27과 사슬 그룹 크기가 맞는 것은 이것뿐 | 판독 [추론] |
| 띠철근 반지름 | 1,003.5 / 1,000.5 (표 1.004 / 1.001은 반올림) | 표값 — 곡선 길이 FAIL | 게이트 결과 |
| 크로스타이 | Y를 19 위로, 90°/135° 교번, 꼬리 = c 165 | 도면 표시 없음 — 옥성교와 같은 방식 | [추론] |
| 검사기·생성기 | 옥성교와 같은 링 생성기·검사기 그대로 | 신설 — 필요 없음 | Agent |
## OUTPUT
| 산출물 | 경로 | 버전 |
| :--- | :--- | :--- |
| 판독서 | `DOC/02_분석/분석_새재1교P1교각도면판독_2026-10-15_v0.1.01.md` | v0.1.01 |
| 사용설명서 | `DOC/04_실행/실행_T형교각모델링앱사용설명서_2026-10-15_v0.2.09.md` | v0.2.09 |
| 모델 | `Code/교각모델링앱/data/새재1교P1/runs/current/G5.3dm` (객체 683) | — |
| 스크립트 | `Code/새재1교P1판독/extract_g2.py`, `add_g2.py`, `판독/g2_values.json` | — |
| 시험·템플릿 | `tools/test_saejae.py`(G2 41), `data/_템플릿/새재1교P1형` | — |
## MODEL
Claude Sonnet 5.5 (claude-sonnet-5-5)
## EFFORT
턴 1 / 도구호출 약 30 (Rhino 게이트 실행 4회)
## STATUS
PROCESS PARTIAL (G2 완료. 기초 G3·코핑 G4 철근 미착수 — OPEN #27)
| 시험 | 결과 |
| :--- | :--- |
| G2 / G5 | 41/41, 183/183 — 음성 검출, 재로드 일치, 앞 게이트 663 불변 |
| test_saejae / test_templates | PASS |
## 비고
- 자기검증입니다. 앱 확정·게이트 승인은 하지 않았습니다. 엔진은 수정하지 않았습니다.
- [추론] 항목(띠철근 구간·크로스타이 Y 높임·꼬리·커플러 위치)은 사용자 확인이 필요합니다.
@@ -0,0 +1,66 @@
# Task_새재1교P1기초철근_2026-10-15_v0.1.00
| 항목 | 내용 |
|---|---|
| 담당자 | 심영표 |
| 일자 | 2026-10-15 |
| Task 식별자 | Task_새재1교P1기초철근_2026-10-15_v0.1.00 |
| 선행 Task | `prompt/심영표/2026-10-15/Task_새재1교P1기둥철근_2026-10-15_v0.1.00.md` |
| 경로·모드 | COMPLEX / GATED (코딩: 판독 + G3 중심선) |
## INPUT
### [1]
```
[원문]
진행해줘
```
### [2]
```
[원문] "기초 X방향 철근 B5~B8의 본수가 도면과 재료표가 다릅니다. 측면 작도 점은 51곡(y −3,750~3,750 @150)인데 재료표는 B5 27 + B7 26 = 53(B6·B8도 같음)입니다. 치수 사슬 '52@150=7.800 −300'은 51곡과 맞습니다."="도면 51곡 채택, 계획 FAIL (Recommended)", "기초 철근의 나머지 해석(B9 연직 결속근 6행 교번 45본, 같은 모양 두 마크 교번, 중간층 Y방향 19 위로, UM 조립용 받침 기록만, 겹이음 미모델)을 옹성교 G3와 같은 규칙으로 할까요?"="옹성교 G3와 같은 규칙 (Recommended)"
```
## PROCESS
1. 다음 단계 = 기초 철근 G3(옥성교 순서와 같음). 구조가 옥성교와 같고 값이 다름(상·하면 4층 U형 + 중간층 + 둘레 고리 + 연직 결속근)
2. 판독: 정면·측면 기초 점·선(Y방향 61, X방향 51), 중간층 3단, B10 4단, B9 격자(정면 15열 × 측면 6행), 재료표·상세
3. 결정 질문 2건 → 전부 권장안
4. `extract_g3.py`·`extract_g3_bars.py`(307본)·`add_g3.py`, 검사기 `g3_sj.py` 신설
5. 게이트: G3 **72/76 PASS(계획 FAIL 4, 미계획 0)**, G5 재실행 183/183
6. 템플릿 재저장, 시험 `test_saejae`(G3 72/76), 판독서 v0.1.02, 사용설명서 v0.2.10, context-migration·OPEN #27·#28
## DECISIONS
| 결정 지점 | 채택안 | 기각안 / 사유 | 근거 |
| :--- | :--- | :--- | :--- |
| B5~B8 본수(R1) | 도면 51곡 + 계획 FAIL 4건 | 재료표 53곡 — 기초 밖 위치 | 사용자 |
| F1~F5 | 옥성교 G3와 같은 규칙 | 항목별 재질문 | 사용자 |
| 검사기 | `g3_sj.py` 복사 신설(작도 점 목록 입력) | 기존 `g3_poly.py` 수정 — 옥성교 회귀 위험 | Agent |
| 평면 '8.000' | 사슬 합(7,700 + 300)으로 해석, 기초는 7,700 | 기초 8,000 — 평면 선이 7,700 | 판독 |
## OUTPUT
| 산출물 | 경로 | 버전 |
| :--- | :--- | :--- |
| 판독서 | `DOC/02_분석/분석_새재1교P1교각도면판독_2026-10-15_v0.1.02.md` | v0.1.02 |
| 사용설명서 | `DOC/04_실행/실행_T형교각모델링앱사용설명서_2026-10-15_v0.2.10.md` | v0.2.10 |
| 모델 | `Code/교각모델링앱/data/새재1교P1/runs/current/G5.3dm` (객체 1,297) | — |
| 검사기 | `Code/교각모델링앱/engine/rhino/checks/g3_sj.py` | 신설 |
| 스크립트 | `Code/새재1교P1판독/extract_g3.py`, `extract_g3_bars.py`, `add_g3.py`, `판독/g3_*.json` | — |
| 시험·템플릿 | `tools/test_saejae.py`(G3 72/76), `data/_템플릿/새재1교P1형` | — |
## MODEL
Claude Sonnet 5.5 (claude-sonnet-5-5)
## EFFORT
턴 2 / 도구호출 약 35 (Rhino 게이트 실행 2회)
## STATUS
PROCESS PARTIAL (G3 완료. 코핑 철근 G4 미착수 — OPEN #27)
| 시험 | 결과 |
| :--- | :--- |
| G3 / G5 | 72/76(계획 FAIL 4), 183/183 — 음성 검출, 재로드 일치, 앞 게이트 불변 |
| test_saejae / test_templates | PASS |
## 비고
- 자기검증입니다. 앱 확정·게이트 승인은 하지 않았습니다. 엔진·기존 검사기는 수정하지 않았습니다.
- [추론] 항목(F1~F4 재적용, B9 행 규칙)은 사용자 확인이 필요합니다. 계획 FAIL 4건은 설계자 확인 대상(OPEN #28)입니다.
@@ -0,0 +1,71 @@
# Task_새재1교P1모델링_2026-10-15_v0.1.00
| 항목 | 내용 |
|---|---|
| 담당자 | 심영표 |
| 일자 | 2026-10-15 |
| Task 식별자 | Task_새재1교P1모델링_2026-10-15_v0.1.00 |
| 선행 Task | `prompt/심영표/2026-10-14/Task_앱입력묶음확인확정개편기획_2026-10-14_v0.1.00.md` (연속 아님, 새 교각) |
| 경로·모드 | COMPLEX / GATED (코딩: 판독 + G1·G5) |
## INPUT
### [1]
```
[원문]
새재1교P1.dwg 를 모델링 해줘
```
### [2]
```
[원문] "새재1교 P1을 어느 범위까지 모델링할까요? (도면에는 구조도 1~4 철근도도 있습니다.)"="형상 G1 + 받침 G5 먼저 (Recommended)", "대좌(앞·뒤 받침 공유) 상면은 어떻게 만들까요? 표에는 앞열 h1 209 / 뒤열 h1 194만 있고 상면 형상 표시는 없습니다."="앞·뒤 받침 사이 평면 경사 (Recommended)", "기둥 구체 fck는 도면에 표기가 없습니다(코핑 35 MPa, 기초 27 MPa만 있음). 어떻게 할까요?"="35 MPa (코핑과 같게) (Recommended)"
```
## PROCESS
1. `RAG/새재1교P1.dwg` 복사본을 DXF로 변환·색인(1,646개). 옥성교와 같은 도면 틀(일반도 2장 + 구조도 4장)
2. 판독: 일반도(1)(2) 렌더와 문자·선 덤프. 직접기초·원형 기둥 Ø2.2·직선 경사 코핑(직사각 평면)·받침 10개(대좌 5개 공유). 정면·단면도의 기둥 절단 표시 때문에 z 오프셋 둘 확인
3. 결정 질문 3건(N1~N3) → 전부 권장안
4. `extract_g1.py`·`make_pier.py`(울산 템플릿 복사 + 판독값 입력), 검사기 `g1_pedestal.py` 신설(말뚝 없음·사각 0° 허용, 기존 검사기 수정 없음)
5. 게이트: G1 1차 FAIL 3(패드 윗면 = EL.'X', 작도선 소수 단 높이) → 2차 FAIL 2(앞·뒤열 표 1 mm 어긋남) → 단 높이를 앞·뒤 평균(.5)으로 → **G1 138/138**, G5 183/183 PASS (음성 시험 검출, 재로드 일치, 앞 게이트 객체 불변)
6. Rhino 렌더로 배치 확인, 보호 템플릿 `새재1교P1형` 저장, 시험 `tools/test_saejae.py`·`test_templates` 갱신
7. 판독서 v0.1.00, 사용설명서 v0.2.08, context-migration·OPEN #27
## DECISIONS
| 결정 지점 | 채택안 | 기각안 / 사유 | 근거 |
| :--- | :--- | :--- | :--- |
| 범위(N1) | G1 + G5 먼저 | 철근까지 한 번에 — 분량 | 사용자 |
| 대좌 상면(N2) | 앞·뒤 받침 사이 평면 경사 [추론] | 두 높이 계단 | 사용자 |
| 기둥 fck(N3) | 35 MPa [추론] | 27 MPa | 사용자 |
| 검사기 | `g1_pedestal.py` 복사 신설 | 기존 `g1_skew.py` 수정 — 옥성교 회귀 위험 | Agent |
| 단 높이 | 표 규칙(EL.'X' − h1 − h2)의 앞·뒤 평균 | 작도선 값 — 표와 1.1 mm 어긋나 FAIL | 게이트 결과 |
| 솔플레이트 | 두꺼운 쪽 −Y(S < 0) | 도면에 T1 위치 표시 없음 → 운곡교 규칙 따름 [추론] | OPEN #16 |
## OUTPUT
| 산출물 | 경로 | 버전 |
| :--- | :--- | :--- |
| 판독서 | `DOC/02_분석/분석_새재1교P1교각도면판독_2026-10-15_v0.1.00.md` | v0.1.00 |
| 사용설명서 | `DOC/04_실행/실행_T형교각모델링앱사용설명서_2026-10-15_v0.2.08.md` | v0.2.08 |
| 모델 | `Code/교각모델링앱/data/새재1교P1/runs/current/G5.3dm` (객체 39) | — |
| 검사기 | `Code/교각모델링앱/engine/rhino/checks/g1_pedestal.py` | 신설 |
| 스크립트 | `Code/새재1교P1판독/` (`convert_index`, `extract_g1`, `make_pier`, `run_gates`, `판독/g1_values.json`) | — |
| 시험·템플릿 | `tools/test_saejae.py`, `tools/test_templates.py`(목록 갱신), `data/_템플릿/새재1교P1형` | — |
## MODEL
Claude Sonnet 5.5 (claude-sonnet-5-5)
## EFFORT
턴 3 / 도구호출 약 45 (Rhino 게이트 실행 4회, 렌더 1회 포함)
## STATUS
PROCESS COMPLETE
| 시험 | 결과 |
| :--- | :--- |
| G1 / G5 | 138/138, 183/183 — 음성 검출, 재로드 일치, 앞 게이트 불변 |
| test_saejae / test_templates / test_confirm_required | PASS |
| test_okseong | FAIL — 옥성교 게이트 보고서가 앱 일괄 실행 상태(재로드 안 함)로 덮어써진 데이터 문제(OPEN #25), 이번 변경과 무관 |
## 비고
- 자기검증입니다. 앱 확정·게이트 승인은 하지 않았습니다. 철근 G2~G4는 이번 요청 범위 밖(N1)입니다.
- 엔진·기존 검사기는 수정하지 않았습니다(새 검사기 파일 추가). 이 때문에 웹 일괄 시험 4종 등 무거운 회귀는 다시 돌리지 않았습니다.
- [추론] 3건(N2, N3, 솔플레이트 방향)은 사용자 확인이 필요합니다(OPEN #27).
@@ -0,0 +1,60 @@
# Task_새재1교P1코핑철근_2026-10-15_v0.1.00
| 항목 | 내용 |
|---|---|
| 담당자 | 심영표 |
| 일자 | 2026-10-15 |
| Task 식별자 | Task_새재1교P1코핑철근_2026-10-15_v0.1.00 |
| 선행 Task | `Task_새재1교P1기초철근_2026-10-15_v0.1.00.md` |
| 경로·모드 | COMPLEX / GATED (코딩: 판독 + G4) |
## INPUT
### [1]
```
[원문]
진행해줘
```
## PROCESS
1. 정면·단면 도면(구조도(1)(2))에서 코핑 철근 C1~C20, 받침좌 S1·S2의 선·점·사슬 판독. 재료표 수량(L, N)과 일치 확인
2. `extract_g4.py` → `판독/g4_bars.json`(873본). 옥성교 H1~H6 규칙을 재적용(사용자에게 다시 묻지 않음, [추론] 표기)
3. `add_g4.py`(params·expected 입력, 백업 `backup/2026-10-15_g4`), 검사기 `g4_sj.py` 신설(기존 검사기 수정 없음)
4. 게이트: G4 1차 FAIL 2건(스터럽 아랫단 높이)·피복 음수 → 생성값 수정(x 어긋남 반영, 윗단을 도면 구역 경계에서 전환) → **G4 189/189**, G5 재실행 183/183
5. 보호 템플릿 `새재1교P1형` 재저장, `test_saejae.py`(G4 189 추가)·`test_templates` PASS
6. 판독서 v0.1.03, 사용설명서 v0.2.11, context-migration·OPEN #27
## DECISIONS
| 결정 지점 | 채택안 | 기각안 / 사유 | 근거 |
| :--- | :--- | :--- | :--- |
| 받침좌·C7·C18·스터럽 어긋남 | 옥성교 H1~H6 재적용 [추론] | 사용자 재질의 — 같은 형식의 승인된 규칙이 있음 | Agent (사용자 확인 필요) |
| 스터럽 윗단 전환 위치 | 도면 구역 경계(곳 사이) | 받침 단 모서리 — 높은 단 쪽 첫 스터럽 피복 0 | 게이트 결과, 도면 선 |
| 검사기 | `g4_sj.py` 복사 신설 | 기존 `g4_okseong.py` 수정 — 옥성교 회귀 위험 | Agent |
## OUTPUT
| 산출물 | 경로 | 버전 |
| :--- | :--- | :--- |
| 판독서 | `DOC/02_분석/분석_새재1교P1교각도면판독_2026-10-15_v0.1.03.md` | v0.1.03 |
| 사용설명서 | `DOC/04_실행/실행_T형교각모델링앱사용설명서_2026-10-15_v0.2.11.md` | v0.2.11 |
| 모델 | `Code/교각모델링앱/data/새재1교P1/runs/current/G5.3dm` (객체 3,043) | — |
| 검사기·스크립트 | `engine/rhino/checks/g4_sj.py`, `Code/새재1교P1판독/extract_g4.py`·`add_g4.py` | 신설 |
| 시험·템플릿 | `tools/test_saejae.py`(갱신), `data/_템플릿/새재1교P1형` | — |
## MODEL
Claude Sonnet 5.5 (claude-sonnet-5-5)
## EFFORT
도구호출 약 25 (Rhino 게이트 실행 G4 3회·G5 1회 포함)
## STATUS
PROCESS COMPLETE
| 시험 | 결과 |
| :--- | :--- |
| G4 / G5 | 189/189, 183/183 — 음성 검출, 재로드 일치, 앞 게이트 불변 |
| test_saejae / test_templates | PASS |
## 비고
- 자기검증입니다. 앱 확정·게이트 승인은 하지 않았습니다.
- 엔진·기존 검사기는 수정하지 않았습니다. 무거운 웹 회귀는 다시 돌리지 않았습니다.
- [추론] 5건(받침좌 배치, C7 덮개, C18 다리 방향, 스터럽 x 어긋남, 마크 교번)은 사용자 확인이 필요합니다(OPEN #27).
@@ -0,0 +1,54 @@
# Task_앱화면PRD및디자인시스템_2026-10-15_v0.1.00
| 항목 | 내용 |
|---|---|
| 담당자 | 심영표 |
| 일자 | 2026-10-15 |
| Task 식별자 | Task_앱화면PRD및디자인시스템_2026-10-15_v0.1.00 |
| 선행 Task | `prompt/심영표/2026-10-14/Task_앱입력묶음확인확정개편기획_2026-10-14_v0.1.00.md` |
| 경로·모드 | COMPLEX-DOC (PRD·디자인 시스템 문서) / GATED |
## INPUT
### [1]
```
[원문]
task: 웹앱으로 디자인 시안 작성하기
-"기획_입력묶음확인화정개편" 를 포함하여 이러한 기능들을 실제로 구현하기 위해 필요한 화면들을 PRD.md 로 작성해주고, 그 다음에 디자인 시스템화 할 수 있도록 design.md를 만들어줘
-RAG\design system_v0.1.1 를 참조해줘
```
## PROCESS
1. 기획서 v0.1.00, 현행 화면(`web/templates` 6종), Prism v0.1.1(`Design.md`, `design.tokens.json`, `design.components.md`, `design.brand.md`, `webapp/module.webapp.md`) 판독
2. PRD.md: 화면 13종(신규 5·변경 5·유지 3) 요구사항, 공통 상태 어휘, 자료 계약, 수용 기준, 결정 대기
3. design.md: Prism 앱 프로파일(토큰·상태 형태 부호·조합 컴포넌트 9종·문안·공백 G1~G10·점검표)
4. OPEN #29 등재(결정 UX1~UX6)
## DECISIONS
| 결정 지점 | 채택안 | 기각안 / 사유 | 근거 |
| :--- | :--- | :--- | :--- |
| 산출물 위치 | `DOC/01_기획/웹앱디자인시안/PRD.md`·`design.md` | 파일명 규칙(`기획_…_vX`) — 사용자가 파일명을 지정 | 사용자 |
| 디자인 시스템 | Prism v0.1.1(saman) 적용, R8 대체는 제안으로만 | R8 즉시 변경 — SSOT 변경은 사용자 결정 | Agent (UX1) |
| 판정 색 | Prism 상태색 + 형태 부호, 철근 팔레트는 UI 제외 | 기존 판정색 유지 — orange 상태 사용이 브랜드 금지 | Prism 금지 목록 |
| 컴포넌트 | 카탈로그 조합 9종 정의, 공백은 제안 목록 | 새 원시 컴포넌트 신설 — 카탈로그 외 0건 규칙 | Prism webapp |
| 상태 시프트 HEX | 만들지 않고 공백 G7 | 임의 산출 — 토큰 표에 없음 | Prism foundations |
## OUTPUT
| 산출물 | 경로 | 버전 |
| :--- | :--- | :--- |
| PRD | `DOC/01_기획/웹앱디자인시안/PRD.md` | v0.1.00 |
| 디자인 시스템 | `DOC/01_기획/웹앱디자인시안/design.md` | v0.1.00 |
| OPEN | `context-migration/OPEN_미해결목록.md` #29 (백업 `backup/2026-10-15_design/`) | — |
## MODEL
Claude Sonnet 5.5 (claude-sonnet-5-5)
## EFFORT
도구호출 약 20
## STATUS
PROCESS COMPLETE — 초안 `[미확정]`
## 비고
- 코드·앱·`디자인지침_경로.md`는 수정하지 않았다. HTML 시안은 만들지 않았다(UX6 결정 대기).
- Prism 자동 점검(axe·stylelint)은 구현물이 없어 실행하지 않았다. design.md 11장은 구현 시 점검표다.
@@ -0,0 +1,59 @@
# Task_앱화면시안결정반영및HTML시안_2026-10-15_v0.1.00
| 항목 | 내용 |
|---|---|
| 담당자 | 심영표 |
| 일자 | 2026-10-15 |
| Task 식별자 | Task_앱화면시안결정반영및HTML시안_2026-10-15_v0.1.00 |
| 선행 Task | `Task_앱화면PRD및디자인시스템_2026-10-15_v0.1.00.md` |
| 경로·모드 | COMPLEX-DOC + 시안 코드 / GATED |
## INPUT
### [1]
```
[원문] 권고안대로 (기획서 D3~D6)
```
### [2]
```
[원문]
-"UX1: 기존 R8 기준(맑은 고딕 14px 등)을 Prism으로 대체할지" 대체해줘
-"UX2: 판정 색을 Prism 상태색으로 바꿀지" 바꿔줘
-"UX3: Pretendard 글꼴을 앱에 내장할지" 내장해줘
-"UX4: 상태 마커(●▲■◆◇) 사용을 승인할지" 승인
-"UX5: 다크 테마 시험 여부" pass
-"UX6: 핵심 화면 HTML 시안 제작 여부" 제작해줘
```
## PROCESS
1. D3~D6 결정 반영: 기획서 v0.1.01, PRD v0.1.01, OPEN #26
2. UX1~UX6 반영: `디자인지침_경로.md`(경로 지정, 앱 화면 R8 행 대체 표기), PRD v0.1.02, design.md v0.1.01, OPEN #29
3. Pretendard 가변 폰트(OFL, npm pretendard 1.3.9)를 `Code/교각모델링앱/web/static/fonts/`와 시안 폴더에 배치. 앱 코드는 수정하지 않음
4. HTML 시안 `DOC/01_기획/웹앱디자인시안/시안/index.html`: S04·S05·S07·S10 동작 시안(필터, 앱 확인 진행, 근거 보기, 사유 필수 확정, 일괄 확정 근거표 열람 조건, 후보 반영 충돌·무효화)
5. 시험: JS 문법 검사 + jsdom 흐름 시험 19항 전부 PASS
## DECISIONS
| 결정 지점 | 채택안 | 근거 |
| :--- | :--- | :--- |
| D3~D6 | 권고안 | 사용자 |
| UX1~UX4 | 대체·변경·내장·승인 | 사용자 |
| UX5 | 다크 시험 제외(토큰은 유지) | 사용자 |
| 폰트 배치 | static 폴더에 파일만, 앱 코드 미수정 | 구현은 기획서 A단계에서 |
## OUTPUT
| 산출물 | 경로 |
| :--- | :--- |
| 기획서 | `DOC/01_기획/기획_입력묶음확인확정개편_2026-10-15_v0.1.01.md` |
| PRD / design | `DOC/01_기획/웹앱디자인시안/PRD.md` (v0.1.02), `design.md` (v0.1.01) |
| HTML 시안 | `DOC/01_기획/웹앱디자인시안/시안/index.html` (+ `pier.css`, `fonts/`) |
| 폰트 | `Code/교각모델링앱/web/static/fonts/PretendardVariable.woff2` |
| 기록 | `context-migration/디자인지침_경로.md`, `OPEN_미해결목록.md` #26 #29 (백업 `backup/2026-10-15_d3d6`, `2026-10-15_ux`) |
## MODEL
Claude Sonnet 5.5 (claude-sonnet-5-5)
## STATUS
PROCESS COMPLETE
## 비고
- 시안 데이터는 예시이며 실제 앱 결과가 아니다. 브라우저 육안 확인은 하지 않았다(jsdom 시험만).
- 폰트 파일 약 2 MB. 라이선스 OFL 1.1.
@@ -0,0 +1,98 @@
# Task_템플릿구분기준결정및G1검사기통합_2026-10-15_v0.1.00
| 항목 | 내용 |
|------|------|
| 담당자 | 심영표 |
| 일자 | 2026-10-15 |
| Task 식별자 | Task_템플릿구분기준결정및G1검사기통합_2026-10-15_v0.1.00 |
| 선행 Task | prompt/심영표/2026-10-15/Task_앱화면시안결정반영및HTML시안_2026-10-15_v0.1.00.md |
| 경로·모드 | COMPLEX / GATED |
## INPUT
### [1]
```
이어서 작업 진행
```
[시스템응답] 작업 선택 질의 → 사용자 선택: "템플릿 구분 기준 결정 후 반영"
[시스템응답] 결정 3건 질의 → 사용자 선택: 각도 값으로 통합 / 말뚝 유무만 / S02 도면 먼저(모두 권고안)
### [2]
```
새재1교에는 기초 회전이 없습니다. 잘못된 정보 입니다.
```
### [3]
```
검사기 통합을 진행해줘
```
### [4]
```
context-migration 에 저장해줘
```
[주석] IDE에서 `111` 파일 52행("context-migration 에 저장해줘")이 선택되어 있었음.
### [5]
```
"G4 통합 보류와 S02 추천 구현" 에 대해 설명해줘
```
### [6]
```
G4 통합은 그대로 두고, S02 추천은 구현해줘
```
### [7]
```
진행해줘
```
[주석] 직전 질문: PRD S02·시안 S02 정정 여부 → PRD 정정 후 "남은 구현 3가지(경고·각도·판정)를 할지" 질의에 대한 답.
### [8]
```
진행해줘
```
### [9]
```
S02 화면 만들어줘
```
## PROCESS
1. OPEN #30 결정 3건 수령 → 기획서 v0.1.02(4.4절), PRD S02 반영.
2. 새재1교 기초 회전 없음 정정 → OPEN #30·논의 기록 정정.
3. G1 통합: g1_pedestal.py가 g1_skew.py의 상위 집합임을 diff로 확인 → 옥성교 expected.json 4곳 변경, g1_skew.py 폐기(백업). G1 재실행 PASS.
4. G4 diff 분석 → 각도가 아닌 철근 배치 규칙 차이로 통합 보류.
5. context-migration(OPEN #30, 논의 기록) 갱신.
6. 사용자 결정: G4 현행 유지, S02 추천 구현. 9개 교각 도면 텍스트로 단서 규칙 확인 → `engine/recommend.py`(3문항 추정·순위), `web/app.py` /recommend·/recommend/<sid>/create, `web/templates/recommend.html`, index 폼, README, 시험 2종 작성.
7. 남은 S02 3가지 구현(판정 영역·각도 값·형식 불일치 경고 `fit_mismatch`), 시안 index.html에 S02 화면(#/new) 추가, 시험 확장.
8. 시험: test_recommend 8/9 교각 일치(+울산P2 1건 불일치 경고→OPEN #31), test_recommend_web(운곡교 DWG 3장 → 순위1 3/3, 교각 생성 시 도면 이동·답 저장) PASS, test_saejae·test_templates PASS.
## DECISIONS
| 결정 지점 | 채택안 | 기각안·사유 |
| :-- | :-- | :-- |
| 각도 처리 | 값으로 통합 | 현행 유지 — 이력 차이일 뿐 구조 차이 아님 |
| 기초 형식 기준 | 말뚝 유무만 | 현행 5종 — 도면 입력 순서의 결과 |
| S02 순서 | 도면 먼저 → 추천 | 현행 순서 |
| 통합 범위 | G1만, G4는 현행 유지(사용자 결정 2026-10-15) | G4 동시 통합 — 차이가 배치 규칙이라 회귀 위험 큼 |
| 추정 문항 | 3문항(말뚝 유무·하면 형상·받침 개수) | 6문항 전부 추정 — 철근 형상·생성 방식·기둥 단면은 도면 문자로 판별 근거가 없음 |
## OUTPUT
| 산출물 | 경로 | 버전 |
| :-- | :-- | :-- |
| 기획서 | DOC/01_기획/기획_입력묶음확인확정개편_2026-10-15_v0.1.02.md | v0.1.02 |
| PRD | DOC/01_기획/웹앱디자인시안/PRD.md | (S02 개정) |
| 검사기 | Code/교각모델링앱/engine/rhino/checks/g1_pedestal.py | 통합 |
| 백업 | Code/교각모델링앱/backup/2026-10-15_g1통합전/ | — |
| 추천 엔진 | Code/교각모델링앱/engine/recommend.py, web/app.py, web/templates/recommend.html | 신규 |
| 시험 | Code/교각모델링앱/tools/test_recommend.py, test_recommend_web.py | 신규 |
| 메모리 | context-migration/OPEN_미해결목록.md(#30), 템플릿구분기준과도면기반추천_논의.md | 갱신 |
## 검증
G1 재실행(tools/run_gates.py): 옥성교 147/147, 새재1교 138/138 PASS (전수, 음성 시험 검출). test_saejae·test_templates PASS. test_okseong FAIL 5건은 옥성교 runs/current의 reload 값 비어 있음(OPEN #25, 통합과 무관·기존 상태).
| MODEL | claude-sonnet-5-5 |
| EFFORT | 턴 4 / 도구호출 약 45 |
| STATUS | PROCESS COMPLETE (G1 통합·S02 추천 구현 완료, G4는 사용자 결정으로 현행 유지) |
| 비고 | 새재1교 기초 회전 오정보를 에이전트 전제로 사용했다가 사용자 정정으로 바로잡음. 옥성교 runs/current G1 기록은 구 검사기 기준이라 앱 재실행 필요. |