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,74 @@
# Task_웹전체시험재실행_2026-10-16_v0.1.00
| 항목 | 내용 |
|------|------|
| 담당자 | 심영표 |
| 일자 | 2026-10-16 |
| Task 식별자 | Task_웹전체시험재실행_2026-10-16_v0.1.00 |
| 선행 Task | prompt/심영표/2026-10-15/Task_산외교울산P2모델링_2026-10-15_v0.1.00.md |
| 경로·모드 | COMPLEX / GATED |
## INPUT
### [1]
```
[원문]
task: 질문에 대답만 해줘
- "3. 웹 전체 시험 재실행" 은 아티팩트로 만들어 주는거야?
-1번과 2번은 승인할게
-3번과 4번은 어떻게 할지 설명해줘
```
### [2]
```
[원문]
3번을 진행해줘
```
### [3]
```
[원문]
context-migration 에 저장해줘
context-migration 에 저장해줘
```
[주석] IDE에서 `111` 파일 92행 선택 상태에서 입력.
### [4]
```
[원문]
계속 진행해죠
```
## PROCESS
1. 시험 일괄 실행기 `tools/run_all_tests.py` 작성(그룹 fast/rhino, 로그 `검증/_rerun_*_20261016.log`, 요약 JSON).
2. fast 12개: 11/12 — `test_okseong` FAIL(OPEN #25, 옥성교 runs/current가 웹 일괄 시험에 덮어써짐).
3. 옥성교P1·산외교울산P1을 엔진으로 G1~G5 개별 실행해 복원(147·39·75·251·183 / 104·35·63·129·75 PASS, 덮어쓰기 전 기록 `backup/runs_before_restore_20261016/`) → `test_okseong` PASS.
4. rhino 7개: 첫 실행에서 실행기 출력 인코딩 오류(cp949)로 중단 → `sys.stdout.reconfigure(utf-8)` 수정 후 남은 5개 재실행(그룹 rhino2). 결과 7/7 PASS (`test_web` 49/49, `test_ulsan_e2e` 44/44, `test_web_batch` 20/20).
5. fast 12개 재실행 12/12 PASS(요약 파일 완성).
6. 사용자 승인(1번) 반영: 울산P2 expected.json B8 계획 FAIL 승인란 기재 → G1~G5 재실행 PASS → 보호 템플릿 `산외교울산P2형` 재저장, 판독서 v0.1.02.
7. context-migration 기록(기술노트 시험 절, OPEN #25 해소·#32 갱신).
## DECISIONS
| 결정 지점 | 채택안 | 기각안 / 사유 |
| :--- | :--- | :--- |
| 시험 실행 방식 | 백그라운드 일괄 실행기 + 로그 파일 | 개별 수동 실행 — 약 1시간, 재현성 낮음 |
| `test_okseong` FAIL | 기록 복원(엔진 재실행)으로 해소 | 시험 완화 — 시험 쪽 결함 아님 |
| 앱 확정·승인(2번 승인) | 사용자가 앱에서 직접 입력 권고, 에이전트는 입력하지 않음 | 에이전트 대리 입력 — "앱은 확정하지 않는다" 원칙 |
| `test_runner_stall` | 대상에서 제외 | 실행 — Rhino 강제 종료 시험이라 세션 중 다른 Rhino 작업과 충돌 위험 |
## OUTPUT
| 산출물 | 경로 | 비고 |
| :--- | :--- | :--- |
| 시험 실행기 | Code/교각모델링앱/tools/run_all_tests.py | 신규 |
| 시험 로그·요약 | Code/교각모델링앱/검증/_rerun_*_20261016.log, _rerun_summary_{fast,rhino,rhino2}_20261016.json | 신규 |
| 복원된 게이트 기록 | data/옥성교P1/runs/current, data/산외교울산P1/runs/current | 갱신 |
| 판독서 | DOC/02_분석/분석_산외교울산P2교각도면판독_2026-10-15_v0.1.02.md | v0.1.02 |
| 메모리 | context-migration/OPEN_미해결목록.md(#25 해소, #32 갱신), 기술노트_DWG판독_Rhino모델링환경.md | 갱신 |
## 검증
시험 19개 스크립트(fast 12 + rhino 7) 전부 PASS, 전수 실행(표본 아님). 미실행: test_runner_stall.
| MODEL | claude-sonnet-5-5 |
| EFFORT | 턴 4 / 도구호출 약 25 |
| STATUS | PROCESS COMPLETE |
| 비고 | 앱 확정·승인(담당자), 울산P2 B8·B7 설계자 확인은 별도. 웹 일괄 시험이 실제 교각 기록을 덮어쓰는 구조 자체는 미변경(OPEN #25에 명시). |
@@ -0,0 +1,54 @@
# Task_입력묶음개편A단계구현_2026-10-16_v0.1.00
| 항목 | 내용 |
|------|------|
| 담당자 | 심영표 |
| 일자 | 2026-10-16 |
| Task 식별자 | Task_입력묶음개편A단계구현_2026-10-16_v0.1.00 |
| 선행 Task | prompt/심영표/2026-10-16/Task_웹전체시험재실행_2026-10-16_v0.1.00.md, DOC/01_기획/기획_입력묶음확인확정개편(v0.1.02) |
| 경로·모드 | COMPLEX / GATED (기획서 6장: 단계마다 정지·승인) |
## INPUT
### [1]
```
[원문]
새 교각들(울산P2, 새재1교, 옥성교, Ramp-A교)의 앱 확정·승인 완료. 다음 "입력 묶음 확인·확정 개편 구현(OPEN #26)" 작업을 진행해줘
```
## PROCESS
1. 기획서 4·6·부록 A 확인. D5(A→B 먼저)에 따라 A단계(분류·표시)만 구현, B 이후는 승인 대기.
2. `engine/variability.py` 신설(등급 V1/V2/V3/F, 출처, 고정 필드, V3는 `bars` ≥ 100개), `tools/make_variability.py`로 보호 템플릿 6종에 `variability.json`(초안) 작성.
3. `web/store.py`: `section_meta`, `variability`, `log_fixed_edit`, 교각 생성 시 `variability.json` 복사 + `pier.json`의 `origin`(묶음 해시) 기록, 템플릿 저장 시 `variability.json` 작성.
4. `web/app.py`·`pier.html`·`section.html`: 묶음 표 「변수 등급」「값 출처」 열, 템플릿 원본 그대로 경고, F 편집 사유 필수·`edit_log.json` 기록(D3), V3 편집 거부.
5. 시험 `tools/test_variability.py`(신규) PASS. 전체 회귀: fast 13개, Rhino 7개 전부 PASS. test_okseong·test_rampa는 앱 일괄 승인으로 게이트 기록이 일괄 실행 방식이 된 것(OPEN #25)에 맞춰 시험 판정 조건을 보정(일괄 실행은 재로드 생략이 정상).
6. 기획서 v0.1.03(6.1 구현 현황), OPEN #26 갱신.
## DECISIONS
| 결정 지점 | 채택안 | 기각안 / 사유 |
| :--- | :--- | :--- |
| 착수 범위 | A단계만, B 승인 대기 | A+B 연속 — 기획서 HITL 규정 |
| 값 출처 | 등급 파일의 일반 출처 + '원본 그대로'(생성 시 해시 기록) | 묶음별 실제 근거 추적 — B·C단계 몫 |
| 기존 교각 원본 판정 | 하지 않음(기록 없음 표시) | 템플릿 라벨로 소급 비교 — 판독해 만든 교각(울산P2 등)을 원본으로 오판 |
| F 편집 | 차단 않고 사유 필수 + 기록(D3 권고안) | 차단 — D3 결정 |
| V3 편집 | 저장 거부 | 허용 — 사람이 좌표 수만 개를 못 고침 |
| Prism 시각 적용 | 이번에는 적용 안 함(기존 스타일 유지), 결정 질의 | A에서 전체 앱 스타일 교체 — 회귀 위험·범위 초과 |
| 시험 보정 | 일괄 실행 기록 허용 | 시험 삭제 — 시험은 유지 |
## OUTPUT
| 산출물 | 경로 | 버전 |
| :--- | :--- | :--- |
| 분류 엔진 | Code/교각모델링앱/engine/variability.py | 신규 |
| 템플릿 분류 | data/_템플릿/*/variability.json (6종) | 신규(초안) |
| 앱 | web/store.py, web/app.py, web/templates/pier.html·section.html (백업 backup/2026-10-16_묶음개편A전/) | 변경 |
| 패치·도구 | tools/make_variability.py, tools/patches/2026-10-16_variability_*.py | 신규 |
| 시험 | tools/test_variability.py, test_okseong·test_rampa(보정), run_all_tests.py | 신규·보정 |
| 기획서 | DOC/01_기획/기획_입력묶음확인확정개편_2026-10-16_v0.1.03.md | v0.1.03 |
## 검증
test_variability 전 항목 PASS(전수: 템플릿 6종 묶음 분류 100 %, 신규 교각 필수 묶음 26/26 원본 표시). 회귀 fast 13/13, Rhino 7/7 PASS. 육안(브라우저) 확인은 하지 않음 — 화면 검증은 Flask 테스트 클라이언트의 HTML 문자열 확인.
| MODEL | claude-sonnet-5-5 |
| EFFORT | 턴 1 / 도구호출 약 40 |
| STATUS | PROCESS PARTIAL (A단계 완료, B~D단계는 사용자 승인 대기) |
| 비고 | 기존 교각 5개는 origin 기록이 없어 '원본 그대로' 표시 대상이 아님. variability.json은 담당자 확정 전 초안. |
@@ -0,0 +1,59 @@
# Task_입력묶음개편B단계구현_2026-10-16_v0.1.00
| 항목 | 내용 |
|------|------|
| 담당자 | 심영표 |
| 일자 | 2026-10-16 |
| Task 식별자 | Task_입력묶음개편B단계구현_2026-10-16_v0.1.00 |
| 선행 Task | prompt/심영표/2026-10-16/Task_입력묶음개편A단계구현_2026-10-16_v0.1.00.md |
| 경로·모드 | COMPLEX / GATED (기획서 6장: 단계마다 정지·승인) |
## INPUT
### [1]
```
[원문]
task : B단계 작업 착수해줘
-Prism 시각 디자인 적용 시점: B단계에서 새로 만드는 화면(요약 띠, 근거표)부터 Prism으로 만들고 기존 화면 교체는 D단계에서 하는 것으로 해줘
```
[주석] IDE 선택 영역(README.md 137~138행)에서 입력. 중간에 "html 위치 알려줘"(질문 1건)가 있었음.
## PROCESS
1. 기획서 4.3(앱 확인 C1~C8)·6장 B단계·D4 확인. 기존 `reader.proposals`(표 후보 vs 현재 값)를 C2로 재사용.
2. `engine/verify.py`: C1~C8, 상태 판정(불일치>근거 없음>일치/주의/해당 없음), 수량 대조 C4(polylines·mats·ring), 계획 FAIL은 주의, F 묶음은 원본·보호 템플릿 비교(기록 없는 교각). 첫 실행에서 C6 거짓 불일치(음수 pitch·translation_checks)를 발견해 크기 키 범위를 좁히고 F 묶음 비교·요약 문구를 보정.
3. `web/store.py`: `autocheck.json`(run_autocheck·section_check, 값·도면·검사 버전이 바뀌면 재실행), 확정 기록에 사유·앱 확인 상태, origin에 고정 필드 스냅샷.
4. `web/app.py`·템플릿: 요약 띠·앱 확인 열(Prism), 근거 보기, 일치 묶음 일괄 확정(근거표를 끝까지 읽은 표식=별도 POST, 대상 목록 해시 결합), 개별 확정 사유 강제, 이전 방식 일괄 확정은 접은 항목으로 유지. `web/static/prism.css`는 `tools/make_prism_css.py`로 시안 CSS를 `.prism` 범위로 생성.
5. 보고서 8.1 앱 확인 요약. 시험 `tools/test_autocheck.py` 신설, 기존 시험 4곳에 사유 추가, `run_all_tests.py` 목록 갱신.
6. 임시 서버+헤드리스 Edge로 화면 3종 캡처해 확인(textarea 480px 높이 문제 발견·수정).
7. 전체 회귀: fast 14/14, Rhino 7/7 PASS. 기획서 v0.1.04(6.2), OPEN #26 갱신.
## DECISIONS
| 결정 지점 | 채택안 | 기각안 / 사유 |
| :--- | :--- | :--- |
| 일치 판정 기준 | 독립 근거(표 대조) 필요, 수량만 확인은 주의 | 수량 일치를 일치로 — 위치·좌표 미확인이라 거짓 일치 위험 |
| 표 밖 치수 묶음 | 근거 없음 유지(C단계 몫) | 도면 문자 존재 확인으로 일치 처리 — 약한 근거, 거짓 일치 위험 |
| 수용 기준 "자기 데이터 전 묶음 일치" | 달성 불가로 기록, 거짓 불일치 0·거짓 일치 0으로 판정 | 기준 충족 위해 판정 완화 — 신뢰 훼손 |
| 이전 방식 일괄 확정 | 접힌 항목으로 유지, D단계에서 결정 | 즉시 제거 — 기존 시험 7종 영향·사용자 결정 필요 |
| 개별 확정 사유 강제 | 서버에서 강제, 시험 수정 | UI만 강제 — 우회 가능 |
| 읽음 표식 | 별도 POST(스크롤 끝에서 JS), 대상 목록 해시 결합 | 페이지 열기만으로 표식 — 읽었다는 보장 없음 |
| Prism 적용 범위 | 새 화면만(.prism 범위 CSS) | 전체 앱 스타일 교체 — D단계(사용자 결정) |
| 기존 교각 템플릿 원본 | 판단 안 함 | 라벨로 소급 비교 — 판독해 만든 교각 오판 |
## OUTPUT
| 산출물 | 경로 | 비고 |
| :--- | :--- | :--- |
| 앱 확인 엔진 | Code/교각모델링앱/engine/verify.py | 신규 |
| 웹 | web/store.py, app.py, templates/pier.html·section.html·evidence.html·confirm_matched.html·_prism.html·base.html, static/prism.css | 변경·신규 (백업 backup/2026-10-16_묶음개편A전/) |
| 보고서 | engine/report.py 8.1 | 변경 |
| 도구·패치 | tools/make_prism_css.py, report_autocheck.py, serve_ui_check.py, patches/2026-10-16_autocheck_*.py, verify_fix1.py, report_autocheck_patch.py | 신규 |
| 시험 | tools/test_autocheck.py(신규), test_web·test_ulsan_e2e(사유 추가), run_all_tests.py | 신규·보정 |
| 화면 캡처 | 검증/ui_check_shots/pier.png·evidence*.png·confirm.png | 육안 확인 기록 |
| 기획서 | DOC/01_기획/기획_입력묶음확인확정개편_2026-10-16_v0.1.04.md | v0.1.04 |
## 검증
test_autocheck 전 항목 PASS. 실제 교각 5종 자기 데이터 불일치 0, 운곡교 P3 불일치 8(P1 복사 교각을 검출). 값 변경 시 불일치(받침 h1 +5, expected el_x +1, 코핑 철근 1본 삭제, 두께 −5) 검출. 일괄 확정 규칙(읽음 표식·이름·목록 변경 시 거부) 확인. 회귀 fast 14/14, Rhino 7/7 PASS. 화면은 헤드리스 Edge 캡처로 육안 확인.
| MODEL | claude-sonnet-5-5 |
| EFFORT | 턴 1 / 도구호출 약 75 |
| STATUS | PROCESS PARTIAL (B단계 완료, C·D단계는 사용자 승인 대기) |
| 비고 | 표 밖 치수 묶음은 앱이 대조하지 못해 근거 없음으로 남음(C단계). 이전 방식 일괄 확정(`confirm_all`)은 아직 도장 가능. |