- `docs/` 를 .gitignore 에서 빼 git 추적 대상으로 전환 (위키·완료 이력·검증 기록) - `docs/raw/PLAN.md` · `docs/raw/OWNERS.md` 를 저장소 최상위로 이동 후 .gitignore 에 등록 — 창끼리 공유하되 저장소에는 안 올리는 장부 - 살아 있는 경로 참조 7개 파일 정정 (아카이브 107건은 그때 사실이라 그대로 둠) - graphify 날짜별 산출물(`docs/wiki/graphify-out/20*/`) 제외 — `graphify update` 가 다시 만듦 Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
181 KiB
181 KiB
type, status, last_updated
| type | status | last_updated |
|---|---|---|
| log | stable | 2026-09-09 |
[2026-09-03] ingest | 상시계획 완료 항목 위치 정리
docs/raw/PLAN.md의 완료 47건과 하위 설명을docs/raw/plans/2026-09-03_plan_completed_items.md로 이관했다.- 사용자 요청에 따라 2차 교차검증과 별도 검증보고서는 생략했으며, 미완료 28건은 상시계획서에 유지했다.
- 사용자와 개발 담당 AI의 검증 완료를 근거로 completed_2026-09-03 및 B03·B04·B05·B06·B08 상세 페이지에 완료 내용을 반영했다.
- 이후 추가된 완료 56건과 관련 설명을 두 번째 아카이브로 이관하고, completed_2026-09-03_additional 및 신규 상세 페이지에 반영했다. 상시계획서는 미완료 32건만 유지한다.
[2026-08-29] ingest | 상시계획 완료분·재업로드 재분석 반영
- B05/B06 공용 구조물 배치·선택 연동, B07 A1 고정 척도·횡단 장 배치·12분류 완료분을 completed_2026-08-29에 반영하고 미완료 항목은 상시계획서에 유지했다.
- B03 동일 파일 재업로드도 WF1을 다시 실행하고 브라우저 파생 캐시를 비우며 B05가 최신 route를 강제 조회하는 개선을 B03_FileInput/B03_backend, B03_FileInput/B03_frontend에 반영했다.
[2026-08-27] ingest+lint | B05 구조물 자리 성토면·원지반 재노출 반영
- 기슭막이 상단 성토면 복원, BOX암거 원지반 유지, 실좌표 마스크 고리 정리와 세월교 전용
patchClip분기를 B05_Profile/B05_corridor_cut_fill, B05_Profile/B05_corridor_patch_finish에 반영했다. - 완료 계획과 교차검증 보고서를 아카이브했으며, 잔여 0.8% 셀·저장 표식 유실·BOX 패치 넘침 등 미착수 5건은 상시 계획서에 유지했다.
[2026-08-13] lint | 위키 건강성 점검 및 정합성 검증 완료
- 전수 린트 수행 (114개 위키 문서):
wiki/pages/및wiki/concepts/내 전체 마크다운 파일 대상 검사. - Frontmatter 및 100줄 한도 정합성: 114개 전체 문서 100줄 한도 제한(20~50줄 유지) 및 YAML Frontmatter(
status,page_id,last_updated) 100% 정상 준수 확인. - 무결성 검증: Stale 문서 0건, 깨진 위키링크(Broken Wikilinks) 0건, 고아 문서 0건 확인 완료.
[2026-08-13] ingest | WAMIS 관측소 방식 확률강우량 전환 및 지역 분기 위키 반영
- WAMIS 621개 관측소 확률강우량 수급 모듈 신설: 공사지 좌표 기준 반경 10km (
WAMIS_STATION_RADIUS_M = 10000) 내 전국 621개 관측소 xlsx 데이터를 다운로드·파싱하여 100년/24hr 강우량이 가장 높은 지점을 안전측으로 자동 선정하는common_util_wamis_station.py(287줄) 신규 반영. - 지역 분기 및 등우선 커버리지 가드: 제주 지역 공사지는 기존 등우선도 내삽(96조합)을 존치하고 본토 공사지는 관측소 수급 방식으로 분기(
B04_PreProcess_Router_Watershed.py).common_util_wamis_rainfall.py의value_at()에 +10km 커버리지 검사를 추가하여 본토 공사지가 제주 등우선으로 조용히 오용되는 결함 완전 차단. - Mononobe 강우강도(IDF) 일원화: Mononobe형 IDF(
a=(R_{24}/24)\cdot 1440^{0.557},n=0.557,b=0)를 기본 산출 방식으로 적용하고 General형 선택적 지원 보존. - 설정 및 스키마 확장:
config_system.py상수 추가 및rainfall_table.json내station,candidates,idf_method,idf_mononobe,idf_general,region_mode확장 명세를 drainage_watershed, common_util, B04_PreProcess/B04_backend 및 index에 반영 완료.
[2026-08-12] ingest | DB 정리: 소프트 삭제 프로젝트 CASCADE 소멸 및 임시 보관함 고아 메타데이터 초기화 반영
- 소프트 삭제 프로젝트 정리:
projects테이블에서 소프트 삭제된 2개 행 삭제 및project_workflow_stages14개 행 CASCADE 연쇄 소멸 확인. - 임시 보관함 고아 메타데이터 초기화:
storage/tmp실체 없는upload_chunks(14행),upload_sessions(11행),temp_upload_batches(3행) 메타데이터 정리 및system_audit_logs내resource_type='project'12행 초기화 내역을 db_schema, B01_Dashboard/B01_db, temp_upload에 반영.
[2026-08-08] ingest | B01 프로젝트 하드 삭제 설정 스위치 및 대시보드 4행 스크롤 제한 반영
- 개발 모드 프로젝트 하드 삭제:
PROJECT_DELETE_HARD_ENABLED설정에 따라 백엔드에서 DB 행(자식 테이블 CASCADE 연쇄 소멸) 및 물리 저장소 폴더(storage/{회사}/{사용자}/{프로젝트ID}/)를 통째로 지우는 하드 삭제 비즈니스 로직(common_util_project_delete.py,resolve_project_root_for_delete) 추가 내역을 B01_Dashboard/B01_backend, B01_Dashboard/backend/B01_Dashboard_Router, B01_Dashboard/B01_api, B01_Dashboard/B01_db 및 concepts/common_util/common_util_storage에 반영. - 4행 스크롤 제한 및 테이블 sticky-head 고정: 항목이 5개 이상일 때 4행 높이에 맞춰 컨테이너의
max-height를 동적으로 계산하여 스크롤하는limitVisibleRows공용 컴포넌트 추가 및 sticky 테이블 헤더 css 연동 사항을 B01_Dashboard/B01_frontend, ui_templates 및 index에 반영.
[2026-08-08] ingest | 실행 서버 점검 수정 7건 및 B03 업로드 E2E 결함 수정 6건 위키 반영
- 실행 서버 점검 수정 7건 반영:
_prepare_drainage_pipes_and_reprofile()신설로 B05 확정 직후 자동 설계 체인(run_auto_design_chain) 및 이월 체인(run_redesign_chain)의 배수유역·관 지점 단계를 통한 종횡단 자동 재생성 연동.- B03 스텝바 홈 버튼 부착 (
createStepBar({ homeButton: true })). - B05 경유점 order null 정렬 예외 보정 (
item.get("order") or 0). - B07 수량 확정
get_db_pool()동기 호출 예외 해결. - 종단곡선 기준 L(15m) 일원화 및 가용 최대 L 자동 클램프 처리.
- B05 3D 노선 투영 유령 커브 제거 (
PlacedRoutePoint.znumber | null). - 3D 카메라 드래그 및 탑뷰 회전 튐 보정 (
TOP_VIEW_TILT = 2°).
- B03 업로드 E2E 결함 수정 6건 반영:
- finalize 시
upload_session변수 분리로 404 에러 방지 및 WF1 자동 실행 복구. B03_FileInput_Fingerprint.tsSHA-256 파일 지문 기반 중복 전송 스킵 및SUPERSEDED처리.- WF1 동시 실행 가드 및 stage 3 완료 시점까지 업로드 버튼 스피너 잠금.
common_util_workflow_state.pyfail_stage()메시지 200자 제한 클램프.GET /api/temp-uploads쿼리 시linked묶음 대시보드 목록 제외.common_util_project_reset자료 교체 시 하위 단계 산출물 초기화 및b_missing_data_guard리다이렉트 가드 반영.
- finalize 시
[2026-08-08] ingest | R1 워크플로우 단계 재편 (B04~B09) 및 R2 임시 보관함 (Temp Upload) 반영
- R2 임시 보관함 (Temp Upload) 스펙 반영:
temp_upload_batches,temp_upload_files테이블 신설 및upload_sessionsproject_id NULL 완화 schema 반영, B01 대시보드 하단 임시보관함 UI 표/업로드 모달 및 B03 불러오기(attach) 영구 저장소 이동/자동 체인 연동 내역을 temp_upload, B01_Dashboard/B01_frontend, B03_FileInput/B03_backend에 반영. - R1 워크플로우 네이밍 및 단계 재편 (B04~B09):
wf1~wf6수치 표현 정돈(B04 PreProcess, B05 Profile, B06 Section, B07 Quantity, B08 DesignDetail, B09 Estimation), B06 확정 시 stage 2 & stage 3 동시 COMPLETE 전이 후 B07 라우팅 및 B08(CAD) 서빙 연동 내역을 workflow_state, index에 반영.
[2026-08-08] ingest | B05·B06 외곽선, 횡단 줌/반폭 20m 기준 정정, 3D 마커 및 UI 6종 기능 개선 반영
- B05 구조물 컨테이너 외곽선 보완:
B05_Profile_UI_IrregularStations.tsroot 요소에 공통 외곽선 클래스ui-sidebar-section부착을 반영. - B06 횡단 줌/팬 및 표시 반폭 기준 정정:
Cross_View.ts내 줌/팬 대상을 SVG viewBox에서plotLayer(transform) 조작으로 전환하여 축선/격자/눈금 고정 및 플롯선만 확대.UI_Page.ts내 보유 샘플 오프셋 계산 폴백(sampledHalfWidth())을 제거하고 백엔드 기본값 20m를 기본 적용하도록 정정. - B05/B06 6종 UI/엔진 기능 개선:
Cross_View.tsSVGclipPath적용으로 설계선/면적 밴드 플롯 이탈 방지.SECTION_CROSS_HALF_WIDTH_M20m 기본값 상향 및 B05 확정 시 측구 방향(ditch_side) 횡단 설계 저장 데이터 동기화(B05_Profile_Router_Confirm.py).- 3D 측점 라벨 rounded background(
roundRect) 및 B04~B07 사이드 외곽선 통합. - B05 시작 측점 및 샘플링 설정 컨테이너 통합 배치(
ui_template_locale_b2.ts). - B05 구조물 배치 목록 관 정본 중복 유령 항목 필터링(
IrregularStations.ts). - 3D 뷰 마커 램프 축소, 1px 측점선을
BoxGeometry띠 Mesh로 전환 및 조준점 타겟 스프라이트 적용(Camera.ts,Markers.ts).
[2026-08-02] ingest | B06 유토곡선 토량 분배 평형선 엔진, 자연방토 모델링, 2차 UI/UX 개선 및 1:1 마크다운 세분화 반영
- 유토곡선 토량 분배 및 띠 분할: 평형선 순차 탐색 알고리즘 기반 계단식 평형선, 장비 한계거리 기준 띠(
HaulBand) 분할, $L$/Q연산, 노이즈 필터링(MIN_SWING_RATIO = 2%) 명세를concepts/mass_haul_diagram.md및 신규 빌드한 프론트엔드 sub-pages_UI_MassHaul_Balance.md,_UI_MassHaul_Balance_View.md에 이식 완료. - 장거리 상쇄 및 자연방토: 띠 분배 외 잔량에 대해 최단거리 쌍으로 자동 상쇄하는
HaulTransfer및 수량 항등식 산출(_UI_MassHaul_Settle.md), 성토 사면 급경사지 자연방토(NATURAL_SPOIL_MIN_GROUND_SLOPE = 1/1.5) 수량 제외 및 balloonM.N=측점연동을B06_backend.md,_UI_MassHaul_Balloon.md등에 반영. - 기하 정합 및 2차 UI/UX 보완: 포물선/직선 보간 기하 단일화(
_UI_MassHaul_Curve.md), 카드 줌(viewBox) 상태 유지(applySelection), 링 탐색findSlot벌룬 충돌 회피,overflow: hidden분리로 패널 접기 손잡이 잘림 버그 완결 해결. - 700줄 제약 만족을 위한 sub-pages 신설: 백엔드 2종(
Engine_Areas.py,Router_Confirm.py) 및 프론트엔드 5종(Balance.ts,Balance_View.ts,Balloon.ts,Curve.ts,Settle.ts) 1:1 마크다운 세분화 문서를 작성하여B06_backend.md,B06_frontend.md에 정합 매핑 완료.
[2026-08-02] ingest | B06 접기 손잡이 B05화, 절토면적 토사/암반 분리, B06 프론트엔드 1:1 세분화 위키 반영
- B06 접기 손잡이 개선 및 뷰 편의성 보완: 접기 손잡이를 패널 경계 바깥 아래(
bottom: -24px)로 오프셋하고 리사이저는bottom: 0원위치하여 z-index 리사이저 hover 간섭 결함을 해결.PANEL_CHROME_PX를 102px로 줄이고 sticky 스크롤 마진을+32px로 보정. 진입 시selectedStationId자동 매핑 차단 및 횡단면도 제목행crossHeading제거 반영. - 절토면적 암반 기준선 분리:
Engine_Design.py의_split_cut_areas()를 통한 절토 면적의 토사/암반 정밀 적분 계산 및 Pydantic API 갱신 내역을B06_backend.md에 반영. - B06 프론트엔드 1:1 세분화 완수: B06의 프론트엔드 모듈 9종에 대해
pages/B06_Section/frontend/디렉토리 아래에 1:1 마크다운 세분화 문서를 신규 빌드하고B06_frontend.md에 sub page 명세를 정합하여 위키 링크 갱신 완료. - 공용 템플릿 및 유토곡선 개념 동기화:
ui_template_overlay.ts의 상하 펼침/접힘 방향 회전각 보정 내역을concepts/ui_templates.md에, 유토곡선 v2(2종 곡선 축소)와 구간물량 말풍선화, Y축 0선 눈금값 표기 내역을concepts/mass_haul_diagram.md에 연동 완료.
[2026-08-02] ingest | ui_template_locale 분할, B06 유토곡선 결합 및 다중 곡선화, 미결사항 전면 정리 반영
- ui_template_locale.ts 분할: 700줄 제약 해결을 위해 4개 사전 파일(
common/a/b1/b2)로 분할하고 배럴 합성 구조를 구축한 결과를concepts/ui_templates.md에 매핑. - B06 유토곡선 패널 결합 및 다중 곡선화: 종단도-유토곡선 SVG 수직 정렬,
chartHeights패널 리사이저 높이 공식, 6종 다중 곡선 사양(횡단/종단 기준 × 지반3종), 토량환산계수 및 장비선정거리 config 반영을concepts/mass_haul_diagram.md,B06_backend.md,B06_frontend.md,B06_api.md에 반영. - B05 배수유역 패널 정정: 기본 펼침 및
collapseToward: right보정 내역을B05_frontend.md에 반영. - 미결사항 전면 재정 정리:
raw/guidelines/design.md및 A그룹 OTP 보안 정책 오인에 대한 조사 결론을 반영하여wiki/index.md내 ⚠️ 미해결 항목 정리 완료.
[2026-08-02] ingest | B04/B05 배수유역 일원화 및 종단 그래프 구조물 연동 위키 반영
- B04/B05 배수 데이터 일원화: B05 사본 엔진 및 라우터(
_Basin.py,_Store.py,_Router_Drainage.py)가 완전 삭제되고 B04 공용 API(GET/POST/PUT/DELETE /basins)로 단일화되었음을B05_backend.md,B05_api.md,concepts/drainage_watershed.md등에 반영. - 종단 그래프 구조물 연동 및 드래그: 종단 그래프에서 측점선을 좌클릭 드래그(
attachStationDrag)하여 관 매설 위치를 이동하고 실시간 세부유역을 재산정하는 로직 및 우클릭 그래프 이관을B05_frontend.md에 기재. - 모듈 분리 및 3자 동기화 신설:
_UI_Profile_Structures.ts(113줄),_UI_Selection.ts(97줄),_UI_Drainage_Render.ts등 신규 바닐라 TS 모듈 추가 내역을 파일 테이블에 갱신. - UI 품질 피드백 완결: 2D 지도/횡단/CAD 휠 줌 당기면 확대 반전, 패널 리사이즈 뷰포트 배율 고정 유지, 유역 목록 3행 스크롤 제한, 배수 라벨 흰 테두리 헤일로 적용을 위키 전반에 반영.
[2026-08-01] ingest | B04 상세 배수유역 계산(본부 과제) 관련 Ingest 완결
- B04 상세 배수유역 계산 Ingest: 신규 라우터
B04_PreProcess_Router_Basins.py및 UI 컴포넌트(UI_Basins.ts,UI_FlowRamp.ts등), 세부유역 제어 API 3종을B04_backend.md,B04_frontend.md,B04_api.md에 매핑 추가. - B04/B05 데이터 분리 보존 및 외곽선 제거:
concepts/drainage_watershed.md에 B04/B05 데이터 최초 복사(sync_from_b04) 및 외곽선 편집 제거 조치에 따른boundary_overrides영구 삭제 스펙 기록. - 위키 린트 보완: 실제 백엔드 소스에서 삭제된 구버전 배수 엔진 명세 4종 삭제 및 신규 연동 어댑터
B05_Profile_Engine_Drainage_Basin.md,_Store.md보충 작성.
[2026-07-24] lint | 위키 건강성 점검 및 위키링크 100% 교정 완수
- 전수 린트 수행 (113개 위키 문서):
wiki/pages/및wiki/concepts/내 전체 마크다운 파일 대상 검사. - 100줄 한도 및 Frontmatter 정합성: 113개 전체 문서 100줄 한도 제한(20~50줄 유지) 및 YAML Frontmatter(
status,page_id,last_updated) 100% 정상 준수 확인. - 깨진 위키링크(Broken Wikilinks) 0건 달성: 파이프(
|) 앨리어스 처리 보정 및common_util_storage.md,B01_backend.md내 잔재 상대 경로 링크 3건 정밀 교정 완료.
[2026-07-24] ingest | 유토곡선 계산 명세 및 B05 후속 개선·비정규 측점 검증 반영
docs/raw/2026-07-24_유토곡선_분석_및_웹앱_계산명세.md반영:- 신규 개념 문서
docs/wiki/concepts/mass_haul_diagram.md생성. - PDF 도면 분석 기반 순토량/누가토량 계산 수식(
N_i = C_i - F'_i,M_i = M_{i-1} + N_i), 사토량/토취량 및 운반장비 선정 원리 명세화.
- 신규 개념 문서
docs/raw/plans/2026-07-24_plan_B05_Route_Improvements.md,docs/raw/verification/2026-07-24_verify_B05_Route_Improvements.md,docs/raw/verification/2026-07-24_verify_비정규측점_런타임테스트.md반영:B05_Profile/B05_frontend_alignment.md최신화.- B05 선택 무한재귀 차단(
selectionSyncing), 비정규 측점 선택 시 12행 테이블 오버레이 값 열 표기, 곡선 L/R 양방향 연동 환산, 스피너 제거, 잔여거리 클램프, 사이드바 접기/펼치기 및 도움말 삭제 반영. - 비정규 측점 백엔드 확정 횡단 파일 생성 및 종단 병합 헬퍼 런타임 멱등성 테스트 통과(36개 항목) 및
cross_*.json체이니지 반올림 충돌 유의사항 명시.
index.md갱신:[[mass_haul_diagram]]연동.
[2026-07-24] ingest | 전수 소스코드 파악 기반 1:1 세분화 마크다운 완수
- 전수 소스코드 파악: A01
A09 및 B01B11 전 폴더의 모든 소스 파일들을list_dir및view_file로 열어서 100% 함수/클래스 단위로 전수 파악. - 수술적 정밀 수정 및 기존 원본 보존: 원래 있던 원본 md 파일(
A01_frontend.md,A06_backend.md,B01_backend.md등)을 지우지 않고 유지하면서 줄번호 기재를 생략하고 고유 심볼 위키링크([[페이지/backend/파일명]])를 연결. - 전용 세분화 문서 작성:
A01_Home_UI_Page.md,A02_ProgDetail_UI_Page.md,A06_Login_Router.md,A07_Register_Router.md,A08_Support_Router.md,A09_Security_Router.md,B01_Dashboard_Router.md,B06_Section_Router.md등 전수 조사된 함수들로 신규 1:1 마크다운 작성. - 100줄 한도 원천 준수: 모든 개별 세분화 파일 라인 수를 20~40줄 이내로 제어.
- A그룹(
A01~A09) 소스 1:1 세분화:A01_Home_UI_Page.md,A06_Login_Router.md,A07_Register_Router.md,A08_Support_Router.md,A09_Security_Router.md파일 단위 마크다운 신규 작성. - B그룹(
B01~B11) 소스 1:1 세분화:B01_Dashboard_UI_Page.md,B02_ProjRegister_Router.md,B03_FileInput_Router.md,B04_PreProcess_Router.md,B06_Section_Router.md,B08_DesignDetail_Router.md,B07_Quantity_Router.md,B09_Estimation_UI_Page.md,B10_Payment_UI_Page.md,B11_Status_UI_Page.md신규 작성. - 전체 위키 규칙 준수: 100줄 한도 원천 준수(20~40줄 이내), 수동 줄번호 제외 고유 심볼 및 상대경로 명세 통일.
- 행동지침 개정 (규칙 13 & 14):
- 규칙 13: 수동 줄번호 기재를 생략하고
항목(고유 심볼) | 위치(상대 경로) | 역할표 형식을 적용하여, 코드 변경 시 행번호 비정합을 방지하고 AI의 AST/Grep 실시간 탐색 유도. - 규칙 14: 페이지가 100줄을 초과하거나 복잡해지면 소스코드 파일과 1:1로 대응되는 하위 폴더/파일 구조(
backend/,frontend/)로 세분화.
- 규칙 13: 수동 줄번호 기재를 생략하고
- B05_Profile 최우선 세분화 완료:
- 백엔드 6개 소스 파일 (
B05_Profile_Router.md,Repository.md,Schema.md,Engine_Solver.md,Engine_Grade.md,Engine_Sections.md) 1:1 세분화 마크다운 작성. - 프론트엔드 8개 소스 파일 (
B05_Profile_UI_Page.md,Panel.md,Profile_Panel.md,Profile_Table.md,Profile_Alignment.md,IrregularStations.md,Viewer.md,Api_Fetch.md) 1:1 세분화 마크다운 작성. - 상위
B05_backend.md및B05_frontend.md문서 100줄 제한 엄수를 위한 서브 인덱스 경량화 (50줄 이내).
- 백엔드 6개 소스 파일 (
- A00_Common 및 공통 유틸 세분화 완료:
A00_Common_AppShell.md,A00_Common_Router.md,common_util_workflow_state.md,common_util_storage.md1:1 세분화 작성.
[2026-07-24] ingest | B05 종단면도 정렬 개편 및 비정규 측점(구조물) 구현
docs/raw/plans/2026-07-24_plan_b05_reorganization.md및docs/raw/verification/2026-07-24_verify_b05_reorganization.md반영.- B05 종단면도 테이블·그래프 가로 정렬 개편:
- 좌측 여백 누출 차단:
padding-left: 0을 통해 가로 스크롤 시 sticky 이름표 왼쪽 틈으로 셀 값이 노출되는 현상 해결. - 그래프 시작점 우측 이동(0측점 정렬): 오프셋
PROFILE_ORIGIN_OFFSET_PX = STATION_SPACING_PX / 2및 그래프originOffsetPx적용을 통한 X축 정렬 정합. - 측점 간격 최소폭 + 폭맞춤 병행: 고정 폭 대신
STATION_SPACING_PX * 1.5최소폭 기준 설정 및 ResizeObserver 기반 유동적 셀 폭 및 오프셋 계산 (computeProfileLayout). - 테이블 종점 열 우측 클램핑: off-grid 종점 측점 값이 앞 측점과 겹칠 때 우측으로 밀어 가독성 확보 (
stationCellCenters). - 세로 비율 조정 및 시인성 개선: 차트 대 테이블 비율 4:6 (
CHART_HEIGHT_RATIO = 0.4), 테이블 여백 축소 (CELL_PADDING_PX = 2) 및 폰트 크기 상향 (FONT_PER_ROW_HEIGHT = 0.64). - 편집 인터랙션 개선: 편집 버튼(상/하, 시프트 상/하) 상시 표시(
opacity: 0.9) 및 밝은 글자색 적용.
- 좌측 여백 누출 차단:
- 비정규 측점 (구조물 측점) Phase 1~4 구현:
- Phase 1 (사이드바 입력): 구조화된 측점번호+잔여거리 입력 및 구조물 자유 텍스트 CRUD UI 구현 (
B05_Profile_UI_IrregularStations.ts신규 추가). - Phase 2 (그래프·3D 프리뷰): 비정규 측점의 선형보간 3D 마커 위치 근사 (
interpolateIrregularStations) 및 세로 파선 렌더링. - Phase 3 (테이블 주석형): 규칙 격자 보존 하에 비정규 측점을 주석층 오버레이로 표기. 겹침 방지를 위한 2슬롯 스태거(Stagger) 교차 분배 적용 (
buildIrregularAnnotations). - Phase 4 (확정 시 횡단 생성 및 병합): 경로 확정(
POST /confirm,RouteConfirmRequest) 시 비정규 chainage를 포함해cross_*.json파일 기반 생성 및_merge_irregular_into_longitudinal헬퍼를 통한 종단 파일 병합. 확정 시 비정규 단면 생성에 실패해도 경로 확정은 성공 처리되도록 비치명적 격리 설계.
- Phase 1 (사이드바 입력): 구조화된 측점번호+잔여거리 입력 및 구조물 자유 텍스트 CRUD UI 구현 (
- 위키 문서 최신화:
B05_frontend.md,B05_frontend_alignment.md,B05_backend.md,B05_api.md,index.md갱신. B05 관련 문서들의 status는stable로 유지.
[2026-07-23] ingest | B05 종단 계획선 편집 체계 전면 개편
docs/raw/plans/2026-07-23_plan_B05_종단_계획선_편집_체계_개편.md및docs/raw/verification/2026-07-23_verify_B05_종단_계획선_편집_체계_개편.md반영.- PVI-R 1차 기하 모델 설계 및 최적화 엔진 개편:
- 반경 $R$을 1차 설계 파라미터로 고정하고 계획고에 따라 $L = R \times |A|$가 동적으로 계산되도록 전환.
- O(n²) DP 직선 분할(
station_breakpoints) 및 절성토 균형 허용 오차(10%)를 점진적으로 조여 나가는 SLSQP(solve_alignment_elevations) 구현. - 사용자 편집 시 base_pvi 고정 후 델타만 반영해 선형 재구성(
rebuild_alignment_profile).
- 하단 패널 확대 및 12행 테이블 연동:
- 패널을 60vh 높이 2단으로 개편(차트 180px 고정, 테이블 균등 배분).
- 구배 3행, 측점 7행, 곡선 2행의 12행 구성. S행 내부 중앙종거를 곡선 셀 툴팁으로 이동하고 S행 텍스트 넘침 시 칸 유지 및 빈 칸 처리.
- 동적 폰트 스케일링(
fitFontSize), clientWidth/Height 이중 차감 상수 제거. - 스티키 열 z-index 보정, 가로 휠 스크롤 연동.
- 편집 인터랙션 및 타이머 보완:
- 0.1m ▲▼ 편집 및 ⇧⇩ 구간 시프트 기능 추가.
- 버튼 재생성 주기와 무관한 window 레벨 Hold 누르기 타이머(
createHoldRepeater) 구현.
- 위키 페이지 700줄/100줄 제한 대응 분할:
B05_frontend.md가 100줄을 넘지 않도록B05_frontend_viewer.md(3D 뷰 및 마커 드래그) 및B05_frontend_alignment.md(계획고 편집 및 테이블)로 분할.concepts/db_schema/route_profile.md가 100줄을 넘지 않도록profile_alignment기하 JSON 스펙을concepts/db_schema/route_profile/longitudinal_alignment.md로 분리.- B05 관련 페이지들의 status를
stable로 유지/승격.
[2026-07-22] ingest | B06 횡단도 선택 강조 및 1:1 스케일링 구현 (검증 FAIL)
docs/raw/verification/2026-07-22_verify_B06_cross_scale_row_height.md반영.- B06 횡단도 선택 강조:
- CSS 특정도 문제 해결을 위해
.b06-cross-card:not(.b06-cross-card--selected):hover를 적용하여 hover 스타일이 selected 스타일을 덮어씌우지 않도록 우선순위 패치 적용.
- CSS 특정도 문제 해결을 위해
- X:Y 1:1 스케일 및 가변 높이:
pixelsPerMeter = plotWidth / xSpan으로 X축 ppm을 고정하고, Y축도 동일 ppm과 연직 과장값을 결합하여 1:1 스케일이 유지되도록 처리.- 측구 및 지반 높이에 맞춰 SVG의 가변 높이(
heightPx)를 동적 적용.
- 최소 높이 250px 및 행 높이 통일:
- 계산 높이가 250px 미만일 때 ppm을 바꾸지 않고 elevationMid 대칭 상하 여백만 늘려 250px를 보장.
- 2-pass 렌더링을 구현하여 행별 카드 높이 최댓값 측정 후 같은 행의 카드는 동일 높이(
forcedHeightPx)로 그리도록 통일.
- 검증 판정 및 상태 변경:
B06_Section_UI_Section_View.ts파일이 857줄로 늘어나 700줄 한도 제한을 위반함에 따라 FAIL 판정을 받음.- 이로 인해 위키 페이지 및 index의 B06 상태를
draft로 하향 조정하고, PLAN.md의 활성 계획 및 파일 분리 부채를 그대로 유지.
[2026-07-22] ingest | B06 횡단 설계 상호작용 성능 개선 및 B07 CAD 계획선 레이어 추가
docs/raw/plans/2026-07-22_plan_B06_B07.md및docs/raw/verification/2026-07-22_verify_B06_B07.md반영.- B06 횡단 설계 상호작용 성능 개선:
- 단건 카드 Surgical 갱신:
B06_Section_UI_Section_View.ts내에refreshCard(chainageM)를 신설하여 전체 재렌더 대신replaceWith로 해당 카드만 정교하게 갱신하는 Surgical Update를 구현. - 로컬 피드백 및 경합 가드: 클릭 즉시 UI 상태를 로컬 선반영하고, 비동기 응답 도착 시
designRequestSeqMap을 활용해 이전의 느린 응답은 폐기하고 최신 요청만 갱신하도록 처리. - 미지정 측점 자동 프리뷰:
get_section_detailAPI 응답 시 누락 측점에 대해_attach_default_designs를 동적으로 호출하여 토사+좌절토 기본값의 프리뷰 데이터(status="provisional")를 1회 조회 응답에 포함시켜 렌더링 지연 및 중복 호출 제거. CPU 바운드 연산을asyncio.to_thread를 사용하여 비동기 최적화.
- 단건 카드 Surgical 갱신:
- B07 CAD 계획선 레이어 추가:
- 계획선 레이어 (
b07-design) 추가:_cad_drawing헬퍼에서 지반선 외에 계획선(종단design_profiles[0].samples, 횡단design_line)을 PolyLine 형태로b07-design레이어에 추가하여 서빙. - UUID 충돌 방지: 자식 Line entity 생성 시
layer_id를 seed에 추가하여 지반선과 계획선의 ID 충돌로 인한 렌더러 상의 유실 문제 해결. - 계획선 편집 허용:
layers정의 시 계획선(b07-design) 레이어의isLocked: false로 설정하여 실무자가 선 트림 및 구조물 배치 등의 상세 편집 작업을 가능케 함. - 횡단 계획선 동적 파생: 확정된 설계가 DB에 아직 없는 경우에도
_cross_design_line을 통해 즉석에서 기본 설계를 계산해 도면에 반영함으로써 계획선 누락 차단.
- 계획선 레이어 (
[2026-07-21] ingest | B06 지반/단면 지정 컨트롤, 기본값 자동 채움 및 B07 완료 게이팅 보정
docs/raw/plans/2026-07-21_plan_B06_ground_section_type_B07_linkage.md및docs/raw/verification/2026-07-21_verify_B06_ground_section_type_B07_linkage.md반영.docs/raw/plans/2026-07-21_plan_B06_default_design_B07_gating.md및docs/raw/verification/2026-07-21_verify_B06_default_design_B07_gating.md반영.- B06 횡단 지반/단면/측구 지정 컨트롤: 횡단 카드 상단에 지반유형 3버튼(토사/리핑암/발파암), 단면유형 4버튼(좌절/우절/양절/양성), 양절/양성 시 조건부 측구위치(좌/우) 세그먼트 컨트롤 도입. 클릭 즉시 단면적 계산 API(
POST .../cross-design) 및 차트 미리보기 연동. - B06 기본값 자동 채움: 컨트롤 기본 선택값을 토사(soil)+좌절토(left_cut)로 지정하고, B06 종횡단 확정 시 미지정 측점에 대해 400 에러 차단 대신 기본값으로 자동 일괄 계산/저장(
_compute_default_designs) 후 확정 승격. - B07 잠정치 시딩 & CAD 확정 연동: B06 확정치(
provisional)를 B07 단건 도면 조회 시 지반/계획 정보 2분할 패널에 시딩. B07 횡단 CAD 도면 확정(confirm_design_drawing) 시 동일 표준단면 엔진(compute_cross_design)으로 재계산하여confirmed로 승격 저장. - B07 완료 게이팅 범위 보정: B07 단계 완료(B08 진행 권한) 게이팅 판정 시
expected_ids를kind == "cross"인 횡단도만으로 한정하여, 종단도 확정 여부와 상관없이 횡단도 전수 확정 시 다음 단계 진입 허용.
[2026-07-20] ingest | B06 종단 계획선 렌더링 및 횡단 십자선 계획고 정합
docs/raw/plans/2026-07-20_plan_B06_profile_cross_design_elevation.md및docs/raw/verification/2026-07-20_verify_B06_profile_cross_design_elevation.md반영.- B06 종단 계획선 및 음영:
detail.longitudinal.design_profiles의 표고를 반영하여 종단도 상에 계획선(Design Profile Line)과 절·성토 음영을 렌더링하고calculateYScale상하 잘림 방지. - B06 횡단 십자선 계획고 정합:
designElevationAt()선형 보간 헬퍼 신설. 횡단도 십자선 중심 높이를 지반고에서 계획고 기준으로 변경하고.b06-chart__center-marker--design(var(--color-royal-amethyst)) 색상 지정. - 기술부채 추가:
B06_Section_UI_Section_View.ts파일(718줄)의 700줄 제한 초과 기록.
[2026-07-20] ingest | B04~B08 기능 검증 결과 일괄 위키 반영
- B04 3D 테마 & 2D/GIS 진단: 3D 뷰어 테마 연동(
bindSurfaceViewerTheme, CSS 토큰 매핑,text-shadow) 명세화. PRJ 부재 시 silent skip 및 EPSG:5187 불일치로 인한 WFS BBOX 왜곡(빈 GeoJSON) 원인 확정 명시. - B05 종단 계획선 & 다크 테마: SLSQP/QP 수치 최적화 종단 계획선 자동 산출 모듈(
B05_Profile_Engine_Grade.py,_Grade_Solver.py700줄 준수 분할), 비포장 대수차 5% 이하 곡선 생략 법정 예외, V/Λ자 지형 대응(_detect_main_direction), 경사 % 단위 일원화 및 3D 뷰어 다크 테마 배경 연동 명세화. - B06 종횡단도 정비: STA 라벨
2+0.0표기 통일 및 잔재 횡단 자동 정리 연동 기록. - B07 독립 WebCAD & 상세설계 개선: openwebcad 독립 2D CAD iframe 서빙,
screenScale주석 스케일 분할, 선/폰트 UI 툴바 컨트롤, 하단 내부 접이식QuantityPanelCAD 패널 연동 및 postMessage 통신 명세화. - B08 수량 산출 템플릿 & 엑셀 원가 파이프라인: 145개 수량 템플릿(단가산출 40, 일위대가 25, 자재 37, 중기 24, 일식 5, 노무 14) 100% 정의, 6개 공종 탭 렌더링, 엑셀 원가 템플릿(
templete_calc_cost.xlsx) 수량 셀 서식 및 연쇄 수식 입증 내역 반영 (B08_frontend.md,B08_backend.md). - 공통 유틸 및 의존성 갱신:
prune_stale_cross_files()공통 유틸 등록, GPL 패키지 완전 배제 및openwebcad/openpyxl의존성 반영.
[2026-07-19] ingest | B07 외부 WebCAD 3종 비교 실행환경
docs/raw/plans/2026-07-19_plan_b07_external_webcad_demos.md와docs/raw/verification/2026-07-19_verify_b07_external_webcad_demos.md반영.concepts/b07_external_webcad_demos.md신규 작성 및 index 연결.- OpenWebCAD 5175, elhakimz/WebCAD 5174, Maker.js Playground 8020의 독립 실행·종료 및 HTTP 200 검증 상태 기록.
[2026-07-19] ingest | B06 사이드바 버튼 폭 조절 및 확정 후 B07 이동 검증 결과 반영
- B06 사이드바 버튼 레이아웃 개선: 사이드바 액션 버튼 영역(
.b06-profile__actions > *)에flex: 1 1 0; min-width: 0;를 적용하여 화면 해상도 변화 시 버튼 폭이 깨지지 않고 동일 비율로 유연하게 맞춰지도록 보완한 내용을 명세화했습니다. - 종횡단 확정 시 B07 자동 이동:
confirmCurrentSections처리 성공 시goToWorkflowStage를 연동하여 다음 단계인 B07(상세 설계)로 즉각 자동 라우팅되는 로직을B06_frontend.md문서에 추가 반영했습니다. API 오류 시 기존의 실패 처리 가드(에러 토스트 및 화면 유지)가 고스란히 동작하는 예외 처리 명세도 함께 기록했습니다.
[2026-07-19] lint | B05/B06 인제스트 후속 위키 건강성 점검 및 정합성 확보
- Frontmatter 및 상태 검증: 이번 인제스트 대상인 B05/B06 관련 페이지들과 공통 개념 문서들의 Frontmatter 필수 필드(
page_id,status: stable,last_updated: 2026-07-19) 일관성을 확인하고,index.md내 상태 요약과 100% 동기화됨을 확인했습니다. - 위키링크 유효성 진단: 갱신된 파일들이 상호 참조하는 내부 위키링크(
[[B05_Profile/B05_backend]]등)와concepts/참조 경로의 깨짐 및 고아 여부를 전수 검사하여 링크 결함 0건을 확인했습니다. - 사용처(역참조) 정비:
common_util.md등 공통 유틸 문서 내에 B05/B06 백엔드의 신규 사용처와 등고선 영속화 관련 헬퍼 연동 내역이 누락 없이 명세되어 있는지 교차 확인 및 갱신을 마쳤습니다.
[2026-07-19] ingest | B05/B06 종·횡단도 반응형 레이아웃 및 3D 뷰어 마커 직접 드래그 검증 결과 반영
- B05 3D 마커 직접 드래그 이동: 3D 뷰포트 내 제어점(BP/EP/CP) 및 회피/금지 영역(AP/FP)에 대해 pointerdown/move/up/leave/cancel 기반 직접 드래그(3px 초과 드래그 판단, OrbitControls 일시 차단, movePoint API 호출 및 Epsilon 보정 적용) 기능을 위키에 반영하였습니다.
- 종횡단도 고정 높이 및 가로 스크롤 반응형 완비: B05/B06 종단도의 높이를 고정(B05: 바디 가용, B06: 220px)하고 측점 라벨 비교차 기준 최소 폭 미만 시 가로 스크롤로 유연하게 보정하는
longitudinalMinimumWidth설계와 ResizeObserver(150ms 디바운스, requestAnimationFrame 동기) 연동을 명세하였습니다. - 차트 레이아웃 오버플로 해소 및 sticky 상단 고정 복구: B05 세로 스크롤 완치(하단 가로 스크롤바 영역 16px 감산), B06 횡단도 250px 고정높이 및 auto-fill min-max 480px 그리드 동적 계산 적용,
.b06-profile-layout내 main 높이/스크롤 제어로 sticky 상단 고정 복구 내역을 위키에 보완하였습니다. - 등고선 간격 영속화 API 연동: 등고선 간격 재적용 시 서버의
contour-interval영속화 API 동시 호출 및 solve 시점 fallbacks 우선순위 명세를B05_backend,B05_api,common_util.md에 추가하였습니다.
[2026-07-19] ingest | 횡단 반폭 DB 단일 소스화 및 B05 등고선 간격 영속화 반영
- 횡단 반폭 DB 단일 소스화: 반폭 값의 단일 소스를 DB로 고정하고
longitudinal_sections.data내 options 스냅샷으로 영구 보존. B05 최적 경로 계산(solve) 시요청 값 → DB 저장 옵션 → Config순으로 우선순위 결정 처리. B06 재생성(regenerate) 시 DB 저장 옵션을 1순위로 참조하여 나머지 3개 옵션 유실 방지. 프론트엔드 도면 로드 시summaryData.options에서 반폭 초기값 복원 연동을 명세화함. - B05 등고선 간격 영속화:
PUT /api/projects/{project_id}/route/contour-interval신설을 통한 등고선 간격 변경값 영속화 및common_util_surface_confirmation.py내update_contour_interval_param유틸 추가. 등고선 재적용 핸들러에서 간격 조절 성공 시 서버의 영속화 API 연동 반영. - 공용 유틸리티 갱신:
concepts/common_util.md에 등고선 간격 갱신 헬퍼 추가 및 B05 사용처 추가.
[2026-07-19] ingest | B05/B06 UI·측점 표현 개선 및 횡단 반폭 재생성 기능 반영
- B05 UI 및 측점 3D 시각화 개선: 하단 종단면도 패널 타이틀 제거,
createWorkflowPanelHandle공통 핸들(bottom) 적용, 패널 세로 높이 고정(250px/24px) 및 너비 100% 확대를 반영함. 뷰 컨트롤 오버레이의 3D 뷰포트 내 이동 및 반투명 glass variant 버튼 적용, 등고선 간격 flex 한 행 배치. 노란색 측점 가로선 렌더링 및 3D뷰 ↔ 종단도 클릭 양방향 연동 반영. 법정 도로폭 기반 반폭 자동 매핑 및 B05 반폭 필드 제거를 명세화함. - B06 횡단 반폭 재생성 기능 완비: 재생성 백엔드 API(
POST .../regenerate) 신설,SectionRegenerateRequest(gt=0) 검증 및 aiomysql 단일 트랜잭션 처리, B05 엔진 횡단 세션 재저장 전glob/unlink찌꺼기 예방 처리를 backend.md/api.md/frontend.md에 명세화함. 프론트엔드[재계산]버튼 및 stale 상태 가드 연동 반영. - B06 도면 렌더링 세부 사항 갱신: STA 접두사 제거 및
측점번호+잔여거리("4+0.0") 규칙 통일, 종단도 제목 제거 및 sticky 고정, 종단도 측점 세로선 선택 영역 14px 히트박스 보완, 도면 영역의 padding-inline 보완을 반영함. - UI 공통 템플릿 갱신:
concepts/ui_templates.md에createButtonglass variant 및createWorkflowPanelHandle컴포넌트 신설 내역을 반영함.
[2026-07-19] lint | 위키 린트 정밀 보완 및 잔재/모순 보완
- 깨진 절대경로 수정:
B05_backend.md에 기재된D:드라이브 로컬 경로를 표준C:경로로 교정하였습니다. - 의존성 모순 정비:
concepts/dependencies.md에 B05 3D 지형뷰어가 완료된 사실을 기재하고, B06으로 분류되어 있던 구버전 엔진 의존성을B06_dependencies.md에서 제거하였습니다.B05_dependencies.md상태를stable로 승격하였습니다. - 경고 부채 청산:
B04_dependencies.md및A08_backend.md에 남아 있던 해결 완료된 과거의 warning 섹션들을 영구 제거하고index.md요약 및 상태를 동기화하였습니다.
[2026-07-19] lint | 위키 린트 진단 결과 후속 보완 및 status 승격
- B06 누락 보완:
B06_api.md에road-widthsAPI를 추가하고,B06_backend.md에 해당 API 비즈니스 로직과FOREST_ROAD_MIN_WIDTH_M환경설정 정보를 명기하였습니다. - 문서 승격: 검증 통과가 확인된
B04_backend.md,B04_dependencies.md,concepts/dependencies.md의 status를draft에서stable로 승격하고index.md요약을 업데이트했습니다. - 모순 해결:
db_schema/logs_monitoring.md내의support_requests테이블 스펙이 실 DB와 100% 정합함을 명기하고index.md내의 불일치 의심 경고 항목을 해결 완료 처리하였습니다.
[2026-07-19] ingest | 종횡단 B05 이관 후속 이슈 수정 3건 및 B05/B06 UI/DB 상호작용 위키 세부 반영
- 후속 이슈 3건 반영 완료: 빈 측점 옵션 입력 시 422 실패 오류 방지(
parseOptional적용), CAD 인계용 CRS 메타데이터 누락 버그 해결(get_surface_crs_epsg신설 및 연동), 섹션 생성 실패 시 비치명적 예외 격리 처리를 백엔드/프론트엔드/API/DB 문서에 세부 반영하였습니다. - DB 사용처 명세화:
concepts/db_schema/route_profile.md내 경로/종횡단 테이블 사용처 정보를B05및B06페이지로 각각 역참조 매핑 완료하였습니다. - API 명세 정비: B06에서 완전히 삭제된
POST .../sections/generate엔드포인트를B06_api.md에서 제거하고 실제 조회 및 확정 경로로 동기화하였습니다.
[2026-07-19] ingest | 종횡단 생성 시점 이동 (B06 → B05) 및 B05/B06 UI 재구성 검증 완료
- 종횡단 실시간 연동 계산 통합 (B05): 경로 설계 최적화(
solve_route) 성공 직후 DTM 보간 기반 종/횡단 샘플링 연산이 자동으로 수행되어 영구 저장되도록 연동 설계를 통합했습니다. 이로 인해 관련 엔진 소스 3개가B05_Profile하위로 이동 및 개명되었습니다. - B05 UI 및 시각화 보강: 좌측 사이드바에 측점 옵션 4개 폼 추가, 하단 상하 접이식 종단면도 패널 신설(
B05_Profile_UI_Profile_Panel.ts), 그리고 3D 뷰포트 내 최적 경로 위의 측점 가로선(stationGroupLineSegments) 렌더링 및 개별 토글 조정을 완수하였습니다. B05 상태를stable로 승격하였습니다. - B06 UI 구조 단순화 (조회 전용): 생성 기능 및 측점 옵션 관련 UI/API 통신을 전면 제거하고 오직 결과 조회 및 확정 기능만 제공하도록 변경하였습니다. 결과 메트릭 카드 3종을 좌측 사이드바 하단으로 배치하고 종단 SVG 높이를 220px로 조율하였습니다.
[2026-07-18] ingest | B06 종횡단도(도면) 렌더링 0_old 버전 이식 검증 완료
- 0_old SVG 도면 렌더링 완벽 이식: SVG 기반의 종단 프로파일 렌더러(
createLongitudinalProfile) 및 횡단 그리드/십자 마커 렌더러(createCrossSectionCard)를 바닐라 TS로 정상 이식 완료하였습니다. - 실시간 높이 배율(Vertical Exaggeration) 제어:
config_system.py에 Y배율 변수를 추가하고, 클라이언트 상에서 재생성 없이 실시간 SVG 뷰 재렌더 연동을 보강했습니다. - Y축 스케일 동기화 및 상호작용:
calculateYScale을 통한 공통 Y축 pixelsPerMeter 수동/자동 동기화 적용 및 종단도 측점 마커 클릭 시 해당 횡단면 카드 자동 하이라이트 +scrollIntoView이동 통합을 완수하였습니다.B06_backend.md,B06_frontend.md반영 완료(status: stable 유지).
[2026-07-18] ingest | B04/B05 구현 예외 처리 검토 계획서 반영
- B04 예외 처리 설계:
confirm_surface백그라운드 스레드 에러 방지를 위해 세션 의존성 없는 독립 비동기 트랜잭션 함수 격리 설계와 등고선 간격 포맷 1.0 고정 통일 처리를B04_backend.md에 반영(status: draft로 하향). - B05 예외 처리 설계: 최초 진입 시 404 방어 API 설계, Three.js 3D 지형 로딩 후 Orbit Target 자동 맞춤(View Fit), 새로고침 복원 시 미세 연산 오차 Epsilon 필터 처리를
B05_backend.md,B05_frontend.md에 반영(status: draft로 하향). - Index 업데이트: B04 및 B05의 상태를
draft로 변경 반영 완료.
[2026-07-18] ingest | B06 종/횡단도 페이지 정상 구현 및 뷰어 연동 검증 완료
- B06 종/횡단도 페이지 구현: Vanilla TS/SVG 기반의 종단도 및 횡단도 렌더러(
createElementNS)를 구현하고, Y스케일 동기화(calculateYScale) 및 종단도 마커 클릭 시 대상 횡단도 스크롤 연동을 완료하였습니다. - 파라미터 및 CRS 자동 연동: 진입 시 파라미터 수동 입력을 완전 배제하고, stage 2(B05)에서 저장한 지표면 분석 필터 키, 평활화 유무, DTM 방식과 input_files의 CRS를 자동 조회하여 종/횡단 생성을 수행하도록 개선하였습니다. 최신 경로 ID 불일치나 결과 stale 판정 시 진입 즉시 백그라운드에서 자동 생성을 트리거합니다.
- 파일명 유실 해결 및 일괄 조회 API: 체이너지 반올림 명명 중복 버그를 방지하기 위해
cross_{sequence_num:04d}.json시퀀스 번호 명명법을 적용하였으며, 프론트엔드 단축 로딩을 위한 종횡단 통합 일괄 조회 엔드포인트(GET /sections/detail)를 백엔드에 신설 및 연동하였습니다.B06_Section/B06_backend.md,B06_frontend.md,B06_api.md,B06_db.md및index.md반영 완료(status: stable로 승격).
[2026-07-18] ingest | B05 3D 레이아웃 세로 크기 고정 및 B그룹 전체 푸터 제외 정책 검증 완료
- B05 레이아웃 개선: B05 상세 폼과 3D 뷰포트를 화면 높이에 고정하도록
calc(100vh - 64px)및calc(100dvh - 64px)를 CSS 디자인 시스템에 반영하고,.b05-route__viewport에 유연 수축(min-height: 0,overflow: hidden)을 적용하여 세로 스크롤 오버플로우 결함을 예방했습니다.B05_Profile/B05_frontend.md에 반영(status: stable). - B그룹 전체 푸터 제외 (B01~B11): 작업 및 대시보드 화면 공간 활용도 극대화를 위해
app_shell.ts에showFooter옵션을 파라미터화하여 비활성화 시.app-outlet--without-footer클래스 기반 아울렛 높이 확장을 구현하였습니다.main.ts내FOOTERLESS_ROUTES상수를 확장하여 B01~B11 전체에 푸터 제외 정책을 통일적으로 적용 완료했습니다.concepts/a00_app_shell_framework.md에 반영(status: stable).
[2026-07-18] ingest | B04 역할 기반 자동 확정 및 B05 3D 지형 렌더링/새로고침 복원 검증 완료
- B04 자동 확정 (WF1): 일반 사용자는 B04를 거치지 않고 기본값으로 모델이 자동 확정되도록 공통 헬퍼
common_util_surface_confirmation.py를 신설하고,complete_stage(1)호출을 확정 서비스 내부로 일원화하였습니다. (일반 사용자용 스텝바 disabled 및 URL 진입 가드 적용, uvicorn access_log 필터 해제 부작용 해결 검증 PASS).common_util.md,B04_PreProcess/B04_backend.md에 반영(status: stable). - B05 3D 지형뷰 및 0_old 기능 이식 (WF2): Three.js 기반 3D 지형/등고선 렌더링, 레이캐스팅 포인트 드롭(AP/FP 팝오버 연동), 위반구간 경고 마커 및 임도폭 수직선 시각화를 이식하고 700줄 한도 제한에 맞춰 4개 UI 파일로 격리 모듈화하였습니다.
B05_Profile/B05_frontend.md에 반영(status: stable). - 새로고침 복원 및 계산-확정 분리: 신설된
GET /latestAPI를 경유하여 새로고침 시에도 기존 폼 옵션과 기하 데이터를 완벽하게 복원하고,solve_route()계산은 IN_PROGRESS 상태로 유지하되confirm_latest_route()호출 시에만 stage 2 COMPLETE 완료 전이가 일어나도록 분리하여 검증 완료했습니다.B05_Profile/B05_backend.md,B05_Profile/B05_api.md,B05_Profile/B05_db.md,concepts/workflow_state.md에 반영(status: stable).
[2026-07-18] ingest | B03 업로드 CRS 정상화 PASS 및 B04 폴링 로그 제거 FAIL 검증 결과 반영
- B03 업로드 CRS 정상화 (PASS): 복합 CRS에서 수평/수직 CRS 요소를 안전하게 분해 및 파싱하고
epsg=5187을 DB에 기록하도록normalize_crs_metadata()함수를 복구 및 검증 완료하였습니다. (수직 CRS KNGeoid24 등 사설 코드를 보존하는 custom_vertical_crs 처리 연동).B03_FileInput/B03_backend.md에 반영(status: stable). - B04 폴링 로그 제거 (FAIL): uvicorn의
access_log=False를 적용해 전체 API 로깅이 전면 차단되는 치명적 부작용 발생 및 프론트엔드 자원 부하가 여전히 남은 결함 판정을 반영하였습니다. 해결을 위해 롤백을 권장합니다.B04_PreProcess/B04_backend.md에 반영(status: stale로 하향).
[2026-07-18] ingest | Python GIS 의존성 업그레이드 및 B05 Whitebox D8 실행 복구 계획 반영
- 의존성 스택 업그레이드: NumPy 2.5.0 및 SciPy 1.18.0을 포함하여 Shapely 2.1.2, Rasterio 1.5.0, Geopandas 1.1.4, Laspy 2.7.0, Trimesh 4.12.2로 Python GIS 스택을 대대적으로 업그레이드했습니다. 또한 GeoPandas I/O 속도 향상을 위해 Pyogrio 0.13.0을 신규 도입했습니다.
dependencies.md,B04_dependencies.md,B05_dependencies.md에 반영(status: draft). - WhiteboxTools 실행 복구:
setuptools83.0.0과의 호환성 문제 해결을 위해whitebox를 2.3.6으로 업그레이드하였습니다. 또한 D8 흐름누적 계산 시 임시 GeoTIFF 파일에crs="EPSG:3857"GeoKey를 강제 부여하여 바이너리가 중단되는 문제를 완치했습니다.B05_backend.md에 반영(status: draft).
[2026-07-18] ingest | B04 전처리 old 버전 방식 정렬 및 API 라우터 3분할 검증 완료
- old 버전 전처리 정합:
mask_{filter}.npy마스크 캐싱 및structured.npz스킵 가드를 복구하고, DTM 최우선 순서 precompute, scipy 1.16.3 버전을 통한 Delaunay 변환 병목 단축, .env DEBUG=False 방지 대책을 세워 백엔드 안정성 및 성능을 old 버전 수준으로 정상 회복시켰습니다. - 등고선 엔진 복귀: NURBS 스플라인 스무딩 세기를 old 버전 공식으로 환원하고 float32 격자를 원복했으며, 등고선 캐시 extractor v4 적용 및 rasterize 최적화를 적용하여 완료했습니다.
- API 라우터 3분할 정합: 단일 파일 700줄 한계 규정을 준수하기 위해 기존
B04_PreProcess_Router.py에서 등고선 API를B04_PreProcess_Router_Contour.py로 온전히 분리하였습니다. 이로써 Router(핵심분석), Router_GIS, Router_Contour의 3개 분할 라우터 구조가 완성되었습니다. - 유령 모델 누적 방지: 재분석 시 기존 projects의 유령 surface_models 정보들을 사전 삭제하는
delete_project_surface_modelsrepository 함수를 추가하고 교체 로직을 반영했습니다.
[2026-07-17] ingest | B04 라우터 유실 복구 및 700줄 규정 준수 검증 완료
- GIS 라우터 복원:
f63e44f커밋에서 유실되었던B04_PreProcess_Router_GIS.py파일을 정상 복구하여main.py기동 시의ImportError를 해결하고 백엔드 서버가 정상 구동됨을 검증했습니다. - 700줄 한계 규정 정합: 라우터 코드가 분리 복구됨에 따라
B04_PreProcess_Router.py는 643줄,B04_PreProcess_Router_GIS.py는 175줄로 각각 700줄 제한을 만족하게 되었습니다. - 검증 보고서 최신화:
2026-07-17_verify_b04_defects.md상태를PASS로 갱신하고 활성 작업에서 제거하여plans/로 이관했습니다.
[2026-07-17] ingest | B04 지표면 분석 6대 결함 해결 및 라우터 분할 검증 완료
- 지면 필터 50만 샘플링 및 온디맨드 등고선/지면포인트 캐시백필 연동: 지면 필터 변경 시 미리보기 캐시 파일(
ground_points_{filter}.npz)을 생성 및 서빙하고, 등고선 부재 시extract_contours온디맨드 생성을 연동하여 결함을 완치했습니다.B04_backend.md,B04_frontend.md,B04_api.md갱신. - 2D 지도 왜곡 정합 및 3D 뷰어 카메라 동기화 축척바 교정: VWorld 이미지 종횡비(
meta.width_meters/height_meters)를 정사뷰 캔버스에 바인딩하여 찌그러짐을 방지하고 GeoJSON 좌표 변환을 일치시켰습니다. 두 뷰어가 실세계 m 단위를 기준으로 카메라 상태를 교환하도록 대대적으로 개선했습니다.B04_frontend.md갱신. - 700줄 한계 규정 만족을 위한 라우터 코드 분할: 라우터 비대화(966줄) 현상을 해결하기 위해 VWorld/GeoJSON/MVT API군을
B04_PreProcess_Router_GIS.py(188줄)로 분할 신설하고, DB 트랜잭션 함수를B04_PreProcess_Repository.py로 이관하여B04_PreProcess_Router.py를 698줄로 줄였습니다.B04_backend.md,B04_api.md갱신.
[2026-07-17] ingest | B04 결함 수정 6건 및 확정 흐름 보완 검증 완료
- 지면 필터 50만 샘플링 및 온디맨드 등고선/지면포인트 캐시백필 연동: 분석 시 필터 마스크별 50만개 상한 NPZ 캐시를 생성하고, 라우터에서 이를 로드 및 백필 서빙하도록 검증 완료했습니다. 등고선 요청 시 부재하면
extract_contours로 온디맨드 생성하도록 조치되었습니다.B04_backend.md,B04_frontend.md,B04_api.md갱신. - 2D 지도 왜곡 정합 및 3D 뷰어 카메라 동기화 축척바 교정: VWorld 이미지 종횡비를 정사 캔버스 렉트(
getMapRect)로 계산하여 찌그러짐을 방지하고 GeoJSON 좌표 변환을 보정 완료했습니다. 3D 카메라 유틸UI_Camera.ts를 신설하여 실세계 m 기준으로 시점과 축척바를 동기화했습니다.B04_frontend.md갱신. - 잔여 백엔드 결함 및 700줄 한계 규정 경고 기록: 코더가
B04_PreProcess_Router_GIS.py파일을 삭제(유실)하였으나main.py에 import 코드가 잔존하여 백엔드 기동 에러가 나는 문제를 검증보고서에 기재하고PLAN.md활성 작업으로 등록했습니다.B04_PreProcess_Router.py가 703줄로 700줄 규정을 3줄 위반한 사실도 기재했습니다.B04_backend.md,B04_api.md갱신.
[2026-07-17] ingest | 검증 보고서 5건 및 상태 관리 계획서 연동 완료
- B03_FileInput의 stable 승격: B03에 대해 일반업무 레이아웃으로의 개편, 700줄 제한 규정 준수를 위한 코드 분할(
B03_FileInput_UI_Support.ts), 그리고 워크플로우 공통 스텝바(createStepBar)와의 연동 검증이 완료되어B03_FileInput페이지 및 하위 개념 문서의 최종 상태를stable로 갱신하고index.md에 반영하였습니다. - 접속인증(로그인 이메일 인증) 및 기기신뢰 개선 검증 완료:
HttpOnly디바이스 토큰 쿠키 도입을 통한 중복 OTP 요청 해소와 User-Agent 해시 정규화를 통한 조기 만료 해결 내역(2026-07-17_verify_auth_reverify.md,2026-07-16_verify_인증주기개선.md)을 위키에 정상 반영하고 검증 승인 처리했습니다. - B04/B05/B06 UI/UX 재구성 및 뷰어 수리 검증 완료: 사전계산 모델 비교를 위한 3D 뷰어 2열 배치, 양방향 카메라 동기화, 하단 2D 배경지도(VWorld 정사 탑뷰) 복원 및 3D 뷰어 초기 마운트 미표시 에러 수정 내역을 위키에 반영하고 검증을 완료하였습니다.
[2026-07-17] ingest | B04 지표면 모델 확정 흐름 도입 및 하단 2D 지도 복원
- 사용자 지표면 확정 흐름 (Confirm) 도입: 분석 성공 시 자동으로 완료되던 방식을 제거하고 사용자가 모델 목록에서 특정 모델을 [확정]해야만 stage 1이 완료(COMPLETE)되도록 게이팅하였습니다. 이를 제어하는
POST .../surface/confirmAPI 신설 및surface_models.status에CONFIRMED상태값을 정비했습니다.B04_backend.md,B04_frontend.md,files_surface.md,workflow_state.md갱신. - B05 확정 모델 자동 연동: B05 진입 시 수기 입력 필드(
surfaceIdField)를 걷어내고 자동으로 DB의CONFIRMED모델 정보를 로드해 읽기 전용 표시 및 분석 시 자동으로 해당 ID를 매핑 전달하도록 구현했습니다.B05_frontend.md갱신. - 하단 2D 지도 복원 및 3D 뷰어 버그 수리: 0_old의 React 기반 TifViewer/MapLayerViewer를 vanilla TS 컴포넌트(
B04_PreProcess_UI_MapViewer.ts)로 재작성 및 560px 고정형으로 복원(배경 및 GIS 레이어 오버레이 연동)하였습니다. 또한 DOM 마운트 시점 관련 프레임 제어 오류(hasConnected플래그 도입)로 3D 뷰어가 표기되지 않던 결함을 정상 복구했습니다.B04_frontend.md,index.md갱신.
[2026-07-17] ingest | 페이지 레이아웃 2그룹 체계 개편 및 결재 목업 도입
- 레이아웃 2그룹 분리: B페이지 레이아웃을 일반업무 그룹 (B01, B02, B03, B10, B11 — 대시보드 폭) 및 **엔지니어링 그룹 (B04~B09 — 브라우저 전체 폭)**으로 분리 관리하고, 엔지니어링 셸의 상단 페이지 헤더를 제거하여 본문 공간을 넓혔습니다.
ui_templates.md,B04_frontend.md,B05_frontend.md,B06_frontend.md갱신. - 오버레이 컴포넌트 및 sessionStorage 상태 저장: 좌상단 제목 카드, 우측 세로 진행단계 오버레이 패널, 옵션 오버레이를 신설하고 브라우저 세션 동안 토글 접기/펼치기 상태를
sessionStorage에 안전하게 보관하도록 구현했습니다.ui_templates.md,workflow_state.md,B03_frontend.md갱신. - B03 일반업무 전환 및 코드 분할: B03을 일반업무 레이아웃으로 변경하고 기존 좌측 옵션 패널을 본문 상단 인라인으로 재배치하였으며, 700줄 한계 규정을 준수하기 위해
B03_FileInput_UI_Support.ts로 UI 지원 코드를 분리 갱신하였습니다.B03_frontend.md갱신. - B10(결재)/B11(상태) 프론트엔드 목업 신설: 세금계산서 발행 및 입금확인 안내 흐름의 화면 골격과, 입금 확인 전 산출물 다운로드 버튼을 게이팅(disabled)하는 화면 시뮬레이션 목업 페이지를 추가하였습니다.
B10_frontend.md,B11_frontend.md,index.md갱신.
[2026-07-17] ingest | 로그인 이메일 인증 개선 (디바이스 토큰 쿠키 전환)
- 디바이스 토큰 도입: 기존의 취약하고 불필요한 User-Agent 해시 기기 신뢰 방식을 Secure HttpOnly 디바이스 토큰 쿠키(90일 만료,
device_token) 및 DBtrusted_devices.token_hash조회 방식으로 전면 전환 및 검증 완료하여 브라우저 업데이트 시 반복적인 OTP 재발인 현상을 해결했습니다.A06_backend.md,A07_backend.md,common_util.md,auth_rbac.md,users_auth.md갱신. - 만료 정책 일원화:
users.auth_expires_at컬럼을 삭제(DDL 007 완료)하고 만료 판정을EMAIL_REVERIFY_DAYS(90일) 기준으로 일원화했습니다. 대시보드 내 만료 표시 시에도last_email_verified_at + 90일로 동적 합산 계산하여 대치합니다.B01_backend.md,auth_rbac.md갱신. - 로그인 폼 UX 개선: OTP 단계에서 메일 미수신 시 대처할 수 있도록 재발송 버튼 (60초 쿨다운) 및 뒤로가기 링크를 추가하고,
[hidden]css 속성 무력화 버그픽스를 반영했습니다.A06_frontend.md,ui_templates.md,index.md갱신.
[2026-07-17] ingest | 인증 주기 개선 + .gitignore 정리 + 워크플로우 스텝바 일원화
- 인증 주기 개선: 가입 인증 후 첫 로그인 시 OTP 재인증 요구 문제 및 UA 해시 불일치로 인한 90일 이내 조기 재인증 오류 해결 내역 반영.
common_util_auth.py의 UA 해시 시 버전 숫자 제거(정규화) 반영,A07_Register_Router.py의trust_browser연동 반영.A07_backend.md,common_util.md,workflow_state.md갱신. - .gitignore 정리: 캐시 및 빌드/로그 등 불필요 추적 파일 제외 관련 계획서 반영.
- 워크플로우 스텝바 일원화 & B01 리팩토링: 단계 표시 및 복귀 게이팅 정책을 반영한 공통 스텝바(
createStepBar) 일원화 완료 내역 반영.b_workflow_nav.ts신설 및B01_Dashboard_UI_Page.ts파일 분할(5개 파일 분할, 700줄 한계 부채 해결) 명세 갱신.B01_frontend.md,ui_templates.md,a00_app_shell_framework.md,workflow_state.md,index.md갱신.
[2026-07-12] lint | 구형 상위 폴더 탈출 링크(../../concepts/) 전수 정밀 교정
- Lint: 위키 페이지들 간의 연결성을 정밀 분석한 결과, 병행 작업자가 작성해둔 구버전 db.md 파일들(
B01_db,B03_db,B05_db,B06_db,B08_db)에서 개념 문서(db_schema, storage_paths 등)를 참조할 때 Obsidian 호환성을 저해하는 부적절한 상위 폴더 탈출 표기법 ([[../../concepts/...]])을 무작위로 혼용하고 있음을 적발함. - 조치 및 개선: 검출된 9건의 부적절한 상대 링크들을 공식 표준 규격인
[[db_schema/...]]및[[storage_paths]]등의 깔끔한 볼트 루트 기준 상대경로로 일제히 교정 완료함.
[2026-07-12] lint | 5회 반복 린트-개선 사이클 수행 및 위키 메타 정보 정밀 보완
- Lint & 개선 1차:
concepts/a00_app_shell_framework.md및concepts/ui_templates.md에source메타데이터 필드가 누락되어 있음을 식별, 각각source: A00_Common 공유 프레임워크 소스 코드및source: ui_template/ 공통 UI 소스 코드 및 스타일시트를 추가 정비함. - Lint 2차: 개별 페이지
pages/하위 마크다운 파일들의page_id메타데이터 누락 여부를 전수 린트한 결과, 100% 정상 준수하고 있음을 교차 확인. (조치 사항 없음) - Lint & 개선 3차:
concepts/dependencies.md에 외부 라이브러리NumPy가 중복으로 기재되어 있음을 발견, 하나의 통합된 행으로 병합 및 사용처(B03,B05) 역참조를 단일 셀로 통합 완료. - Lint & 개선 4차:
concepts/storage_paths.md의related_pages속성에 신규 프로젝트 생성 및 스키마 시드를 책임지는[[B02_ProjRegister/B02_backend]]링크가 빠져 있음을 감지하여 추가 정비함. - Lint & 개선 5차:
concepts/workflow_state.md의related_pages에 워크플로우 진행 상태에 연관된 B07~B09 단계 파일 링크가 누락된 것을 감지,[[B08_DesignDetail/B07_frontend]],[[B07_Quantity/B08_frontend]],[[B09_Estimation/B09_frontend]]를 추가 보완함.
[2026-07-12] ingest | DB 34개 테이블 전수 컬럼 실측 및 위키 최신화
- DB 스키마 정밀 추출: PyMySQL을 사용하는 파이썬 스크립트를 작성하여 로컬
.env환경 정보를 바탕으로aislo_db내 실제 존재하는 34개 테이블의 모든 컬럼 정보(Field, Type, Null, Key, Default, Extra)를 알파벳 순으로 전수 정밀 추출 완료. - 위키 최신화:
db_schema/users_auth.md(7개 테이블),db_schema/logs_monitoring.md(8개 테이블),db_schema/projects.md(3개 테이블),db_schema/files_surface.md(6개 테이블),db_schema/route_profile.md(5개 테이블),db_schema/structure_output.md(4개 테이블) 총 6개 위키 문서에 누락 및 생략되어 있던 실제 DB 컬럼들의 세부 스펙을 100% 매핑하여 최신화 완료.- 100줄 제한 규칙(규칙 14)을 준수하기 위해 표 및 설명 문구들을 조밀하게 압축하고 정리함.
- 미해결 부채 청산:
system_admin_logs테이블의 용도 분석을 통해 SYSTEM_ADMIN의 회원/조직 상태 변경 감사 이력 Write-Only용임을 확인 및 명세화.db_schema/overview.md및index.md내에 기재된system_admin_logs 용도 미상경고 bullet 및 미해결 항목을 해결됨 상태로 최종 정정 완료.
- 미확정/연결 대기 테이블 관리 규칙 도입:
- 향후 신규 추가되거나 프로젝트 비즈니스 로직(사용처)이 불명확한 테이블을 안전하게 격리하고 관리할 수 있도록
db_schema/unconfirmed/디렉토리를 신설하고 [README.md](file:///C:/Program_coding/임도설계 및 견적자동화 프로그램 개발/docs/wiki/concepts/db_schema/unconfirmed/README.md)에 운영 가이드라인을 정의함. db_schema/overview.md에 미확정 그룹 앵커 링크([[unconfirmed/README]]) 및 격리 관리 원칙을 명문화하여 지식 시스템을 완성함.
- 향후 신규 추가되거나 프로젝트 비즈니스 로직(사용처)이 불명확한 테이블을 안전하게 격리하고 관리할 수 있도록
- Lint 조치: 신설된
unconfirmed/README.md가 위키 규칙 2번(페이지 생성 시 index.md 반영)을 충족하도록 [index.md](file:///C:/Program_coding/임도설계 및 견적자동화 프로그램 개발/docs/wiki/index.md)에 링크 및 한 줄 명세를 연동 보완함.
[2026-07-12] ingest+lint | 3회 반복 린트-개선 사이클 수행 및 위키 무결성 확보
- Ingest:
docs/raw/plans/2026-07-12_plan_add_phase4_role.md및docs/raw/verification/2026-07-12_verify_add_phase4_role.md를 기반으로, 루트 폴더의AGENTS.md에#### 역할 4: 기타 작업자 (위키 관리 / 작업 보조)가 정상 추가 및 검증 완료되었음을 확인 및 반영. - Lint & 개선 1차:
concepts/ui_templates.md전수 점검. 규칙 13(공유 자원 표 형식 준수)에 위배되는 서술식 다국어 텍스트 기능 설명 및theme.css색상/마진 변수 나열 항목을 색출하여항목 | 위치 | 역할형태의 표 포맷으로 전면 개선 완료. - Lint & 개선 2차:
A08_Support/A08_backend.md에서db_schema/logs_monitoring.md내에 실존하지 않는#support_requests세부 앵커를 가리키는 깨진 앵커 링크 2건을 색출하여[[db_schema/logs_monitoring]]으로 개선(단순화) 완료. - Lint & 개선 3차:
storage_paths.md에 기술된 물리 저장소 경로 패턴 및 세션/이메일 세부 규칙을 백엔드 설정 코드(config_system.py,common_util_storage.py)와 전수 교차 대조하여, 수치(유효시간 12h/4h, OTP 5분, 재인증 90일, 재시도 3회) 및 폴더 레이아웃이 100% 정합함을 확인. 추가 수정 없음.
[2026-07-12] ingest | B09_Estimation (실 코드 대조, 미착수 확인)
- 대상: B09_Estimation_UI_Page.ts(27줄, 유일한 소스 파일)
- 기존 파일 정리: 구 파일명 frontend.md(draft) 삭제 → B09_frontend.md 재작성(stable)
- 실 코드 대조 결과: 기존 wiki 내용이 이미 정확함 — B07/B08과 동일 패턴,
renderPendingWorkflow()만 호출, 백엔드 파일 없음 - raw 근거 재확인:
structure.md:177-178도 B09를 "워크플로우 셸"로만 기술 — 실 코드와 일치, 모순 없음 - 로케일 키 검증: B09_Estimation_Title(714) 실 파일 등록 확인
- storage_paths.md에 B09 이미 related_pages 등록 확인(v1/v2 버전 관리는 이 단계에서만, 20줄), structure_output.md에도 outputs/output_files 사용처 등록 확인 — 둘 다 수정 불필요
- index.md B09 링크
[[B09_Estimation/frontend]]→[[B09_Estimation/B09_frontend]]갱신 - 결론: B07/B08/B09 workflow 셸 3종 전부 wiki 반영 완료. B01/B03/B05/B06(병행 작업자)까지 포함하면 B01~B09 전 페이지 wiki 존재 확인
- 주: B01/B03/B05/B06/B08은 병행 작업자가 진행/완료해 건드리지 않음
[2026-07-12] ingest | B08_DesignDetail (실 코드 대조, 미착수 확인)
- 대상: B08_DesignDetail_UI_Page.ts(27줄, 유일한 소스 파일)
- 기존 파일 정리: 구 파일명 frontend.md(draft) 삭제 → B07_frontend.md 재작성(stable)
- 실 코드 대조 결과: 기존 wiki 내용이 이미 정확함 —
renderPendingWorkflow()만 호출하는 셸, 백엔드 파일 자체 없음 - raw 근거 재확인:
migration_plan.md:271"B07 이후 기능은 이번 마이그레이션 범위에서 제외한다" — 계획 단계에서 명시적 제외, structure.md:173-174도 셸로만 기술. 실 코드·raw 문서·기존 wiki 3자 일치(모순 없음) - 로케일 키 검증: B07_Design_Title(708) 실 파일 등록 확인
- structure_output.md에 B07 이미 related_pages·사용처 등록 확인(structures 테이블, 수정 불필요)
- index.md B07 링크
[[B08_DesignDetail/frontend]]→[[B08_DesignDetail/B07_frontend]]갱신, "계획적 미착수" 근거 명시 - 주: B01/B03/B05/B06은 병행 작업자가 계속 진행 중이라 건드리지 않음
[2026-07-12] ingest | B04_PreProcess (실 코드 대조·5분할 상세화)
- 대상: Router(739줄), Schema(113줄), Repository(236줄), Engine(161줄)+엔진 서브모듈 14개, UI_Page(377줄), UI_Viewer(567줄), UI_TerrainViewer(637줄), Api_Fetch(174줄) 등 23개 파일
- 기존 파일 정리: 구 파일명 계획서기반 4개(backend/frontend/db/api, api·db·frontend는 draft·"추정 경로") 삭제 → B04_backend/B04_frontend/B04_api/B04_db/B04_dependencies.md 5분할 상세 재작성(전부 stable)
- ⚠️ 중요 정정 3건 (계획서 → 실 코드):
- API: api.md는 "추정 경로 2개(surface/analyze·models)"였으나 실제
/api/projectsprefix 12개 엔드포인트. 전부 실 위치 표로 기록 - 3D 뷰어: 계획서·dependencies "WebCAD 3D 뷰어 미구현"이었으나 실 코드에 three.js(WebGL) 뷰어 구현됨 — UI_Viewer(포인트클라우드)+UI_TerrainViewer(지형 메시), UI_Page에서 import·사용 확인. dependencies.md에 three.js 추가+"미구현" 정정
- 416/420줄 "구형 잔재": 잔재가 아니라 레거시 폴백(project_workflow_stages SSOT 우선, 부재 시에만 projects.status 비교,
:412-427). index.md·workflow_state.md 정정
- API: api.md는 "추정 경로 2개(surface/analyze·models)"였으나 실제
- 추가 발견:
update_project_status()(:76) 정의만·호출처 없음(죽은 코드, grep 확인) → 미해결 항목 추가 - 워크플로우 전이: analyze에서 start_stage(168)/complete_stage(209)/fail_stage(227,233) stage 1
- 역참조: files_surface B04 이미 등록(구 링크 정정), dependencies·workflow_state 갱신
- index.md B04 링크 갱신, 미해결 항목 정정. 엔진 서브모듈 15개는 backend.md에 표로 요약(과분할 방지)
[2026-07-12] ingest | B02_ProjRegister (backend + frontend + db 상세화)
- 대상: B02_ProjRegister_Router.py(44줄), B02_ProjRegister_Schema.py(30줄), B02_ProjRegister_Repository.py(136줄), B02_ProjRegister_UI_Page.ts(179줄), B02_ProjRegister_UI_Style.css(66줄)
- 기존 파일 정리: 구 파일명 스텁 backend.md/db.md/frontend.md(요약 수준, 비표준 frontmatter, frontend/db는 draft) 삭제 → B02_backend/B02_frontend/B02_db.md 상세 재작성(전부 stable)
- 출력:
B02_backend.md—POST /api/b02/project, create_project 트랜잭션(projects INSERT+initialize_project_stages 7단계 시드+system_audit_logs PROJECT_CREATE+저장소 초기화), Pydantic 2종, 저장소 경로 이탈 방지B02_frontend.md— 등록 폼(2열 그리드, road_type select 4종), fetch 직접 호출, 성공 시 CURRENT_PROJECT_ID_KEY 저장 후 B03 이동B02_db.md— 쓰는 테이블 3종(projects/project_workflow_stages/system_audit_logs) 용도+링크만(규칙11), 저장소 규칙
- 로케일 키 검증: B02_Proj_Title(487), B02_Proj_Field_RoadType(499), B02_Proj_RoadType_Stream(503), B02_Proj_Success(510) 등 실 파일 등록 확인
- 역참조 갱신(규칙12): logs_monitoring.md system_audit_logs 섹션 제목 "B01 사용"→"사용처(B01,B02)"로 일반화 + B02 PROJECT_CREATE 행 추가. projects.md/workflow_state.md엔 B02 이미 등록됨
- 발견 사항:
- 계획서엔 "7단계 시드가 마이그레이션 Phase1 과제"였으나 실 코드에 이미 구현됨(규칙6 실코드 채택)
- projects INSERT 시 status 'NEW', crs_epsg 5178 고정
- 프론트가 fetch 직접 호출(A08처럼 별도 API 클라이언트 없음)
- index.md B02 링크
[[B02_ProjRegister/backend]]→[[B02_ProjRegister/B02_backend]]갱신 - 주: B01은 병행 작업자가 진행 중이라 건드리지 않음(A07_backend 링크 등 B01발 자동 갱신은 반영됨)
[2026-07-12] query | B01_Dashboard 실 코드 기준 최신화
- 상위 프로젝트
B01_Dashboard/코드 9개를 읽기 전용으로 대조했다. - 기존
frontend.md,backend.md를 규칙에 맞는B01_frontend.md,B01_backend.md로 교체했다. - API·DB·의존성을
B01_api.md,B01_db.md,B01_dependencies.md로 분리하고 코드 위치를 표로 기록했다. - 실제 감사 테이블이
system_audit_logs임을 반영하고 workflow 조회의 미구현 표기를 바로잡았다. - 관련 concepts와
index.md를 갱신했으며, 검증보고서가 없어 B01 상태는draft로 유지했다. - 기술부채로 UI Page 739줄과 Repository 790줄을 기록했다.
[2026-07-12] query | B03_FileInput 실 코드 기준 최신화
- 상위 프로젝트
B03_FileInput/코드 11개를 읽기 전용으로 대조했다. - 기존 frontend/backend 문서를
B03_frontend.md,B03_backend.md로 교체했다. - API·DB·의존성을
B03_api.md,B03_db.md,B03_dependencies.md로 분리했다. - 일반·청크 업로드, LAS/TIF/PRJ/TFW 메타데이터 분석, WF0/WF1 상태 전이, 이메일 알림을 기록했다.
dependencies,db_schema/files_surface,index.md를 실제 코드 기준으로 갱신했다.- 검증보고서가 없어 B03 페이지 상태는
draft로 유지했다. - 기술부채로 UI Page 695줄과 UI Style 376줄을 기록했다.
[2026-07-12] query | B05_Profile 실 코드 기준 최신화
- 상위 프로젝트
B05_Profile/코드 11개를 읽기 전용으로 대조했다. - 기존 API/backend/db/frontend 문서를
B05_api.md,B05_backend.md,B05_db.md,B05_frontend.md로 교체했다. B05_dependencies.md를 추가해 Dijkstra·ridge-valley·skeleton·비용면 엔진과 의존성을 기록했다.- 실제 API 경로와 RouteSolve 스키마, routes·route_points·route_statistics 저장 관계를 반영했다.
dependencies,index.md를 실제 코드 기준으로 갱신했다.- 검증보고서가 없어 B05 페이지 상태는
draft로 유지했다. - 기술부채로 RidgeValley 781줄, Solver 654줄, WebCAD 뷰어 미구현을 기록했다.
[2026-07-12] query | B06_Section 실 코드 기준 최신화
- 상위 프로젝트
B06_Section/코드 9개를 읽기 전용으로 대조했다. - 기존 backend/db/frontend 문서를
B06_backend.md,B06_db.md,B06_frontend.md로 교체했다. - API·의존성을
B06_api.md,B06_dependencies.md로 분리했다. - 확정 B05 경로 기반 종단·횡단 생성, DTM·보간 sampler, 측점·단면 샘플링, 재생성 삭제·저장·확정 흐름을 기록했다.
- 검증보고서가 없어 B06 페이지 상태는
draft로 유지했다. - WebCAD 종단도·횡단 프로필 뷰어 미구현 상태를 기록했다.
[2026-07-12] query | B07_Quantity 실 코드 기준 최신화
- 상위 프로젝트
B07_Quantity/에는 UI 파일 1개(25줄)만 존재함을 확인했다. - 기존
frontend.md를B08_frontend.md로 교체하고 workflow 셸의 실제 함수·locale·활성 단계 위치를 기록했다. - 수량 계산 본문·Repository·Router/API·Pydantic 스키마가 아직 없음을 명시했다.
- 예정 DB 자원
quantity_items와quantity_data_path를B08_db.md및 concepts 링크로 연결했다. index.md를 실제 구현 상태에 맞게 갱신했다.
[2026-07-12] lint | 전체 위키 구조·상태·공유 개념 정리
- A/B 페이지의 누락된
related_pages를 보완하고 concepts의 관련 페이지 역참조를 추가했다. - 검증보고서가 없는 stable 페이지를 draft로 조정해 status 규칙을 일관화했다.
- B05/B06 뷰어 상태, B03 구현 상태, workflow-state 실제 경로, legacy polling 문구를 갱신했다.
- 100줄 초과 문서인 A01과 A00 공통 개념을 하위 문서로 분리했다.
- index의 페이지 상태 표기를 페이지 frontmatter와 일치시켰다.
- 코드 파일은 수정하지 않았으며
raw/는 변경하지 않았다.
[2026-07-12] lint | 전체 위키 구조·상태·공유 개념 정리
- A/B 페이지의 누락된
related_pages를 보완하고 concepts의 관련 페이지 역참조를 추가했다. - 검증보고서가 없는 stable 페이지를 draft로 조정해 status 규칙을 일관화했다.
- B05/B06 뷰어 상태, B03 구현 상태, workflow-state 실제 경로, legacy polling 문구를 갱신했다.
- index의 페이지 상태 표기를 페이지 frontmatter와 일치시켰다.
- 코드 파일은 수정하지 않았으며
raw/는 변경하지 않았다.
[2026-07-12] lint | 위키 시스템 초기 세팅
- raw/, wiki/, output/ 폴더 구조 생성
- docs/CLAUDE.md에 Wiki Schema(위키 운영 규칙) 추가
- 하위 CLAUDE.md 3개 생성 (raw/, wiki/, output/)
- wiki/index.md, wiki/log.md 초기화 (콘텐츠 없음, 카테고리 헤더만)
- 아직 raw/에 원본 없음 → 다음 단계는 첫 ingest 대기
[2026-07-12] ingest | guidelines/plans 7건 일괄 반영
- 대상: raw/guidelines/{structure,db_schema,backend,frontend,agent,migration_plan}.md, raw/plans/plan_workflow_state_management.md (7건). raw/guidelines/design.md는 Aislo와 무관한 "Wiza" 스타일가이드로 판단해 ingest 제외.
- concepts 신규 8건: db_schema/{overview,users_auth,logs_monitoring,projects,files_surface,route_profile,structure_output}, storage_paths, auth_rbac, common_util, dependencies, api_common, schema_common, workflow_state (총 14파일, db_schema는 34개 테이블을 9그룹→7파일+개요로 분할, 전부 100줄 이내)
- pages 신규: B01(backend/frontend), B02(frontend/db), B03(backend/frontend/db), B04(backend/frontend/db/api), B05(backend/frontend/db/api), B06(backend/frontend/db), B07~B09(frontend만, 셸 상태)
- 전부 status: stable (검증보고서 없음, 계획서·행동지침만 반영됨)
- 발견한 모순: 테이블 총 개수(db_schema.md 34 vs agent.md 18/23) — 미해결, db_schema/overview에 기록
- 발견한 이슈: B03/B04 WF1 상태 이중 세팅, projects.status 단일문자열 한계 → workflow_state로 별도 정리
- index.md 전체 갱신 (카테고리별 요약 + 미해결 항목 섹션 추가)
[2026-07-12] query+lint | 실 DB/실 코드 대조 검증 (읽기 전용)
.env자격증명으로 aislo_db에 read-only 접속(SHOW TABLES,DESCRIBE) — DB는 수정하지 않음- 테이블 개수 모순 해결: 실측 34개 = db_schema.md와 일치. agent.md(18/23)는 오기로 확정 → ../concepts/db_schema/overview
- raw에 없던 실 테이블 2개 발견:
project_workflow_stages(구현완료 확인) /system_admin_logs(용도 미상, 임의 해석 보류 — 사용자 확인 대기) common_util_workflow_state.py, B01~B06 라우터/리포지토리 실 코드 확인 → ../concepts/workflow_state status: stable→stable로 갱신 (계획서 설계가 이미 전면 구현됨을 확인)- B02_ProjRegister 백엔드(raw엔 없었음) 실 코드 확인 후 backend.md 신규 작성, status stable
- A01~A09(로그인 전 페이지) 카테고리 신규 추가, 실 코드 기반 15개 파일 작성 (전부 status stable, raw 문서 근거 부족은 각주로 표시)
- B04_PreProcess_Router.py:416,420에 구형 상태비교 잔재 발견, 미정리 항목으로 기록
- index.md 전체 재구성 (A/B 페이지 분리, 미해결 항목 갱신)
[2026-07-12] lint | page_id frontmatter 필드 도입
- 문제:
frontend.md/backend.md등은 파일명만으로 소속 페이지를 알 수 없음(폴더 밖에서 볼 때 구분 불가) - docs/CLAUDE.md 위키 규칙 5번, wiki/CLAUDE.md에
page_id: B0x_이름/A0x_이름frontmatter 필수화 규칙 추가 (concepts 파일은 제외 — 페이지 단위가 아니므로) - 기존 wiki/pages/ 하위 34개 파일 전체에
page_id소급 추가 (status 라인 바로 아래) - 향후 ingest 시 페이지 파일 생성할 때마다 이 필드 포함 필수
[2026-07-12] ingest | A01_Home 실 코드 반영
- 대상: A01_Home_UI_Page.ts (157줄), A01_Home_UI_Style.css (113줄)
- 출력: wiki/pages/A01_Home/frontend.md 상세 업데이트 (79줄 → 개념 설명 + 컴포넌트 분석 + 로케일 키 매핑 + CSS 클래스 구조 추가)
- 발견 사항: MOCK_NEWS 데이터 하드코딩(백엔드 미연결), 3개 공통 컴포넌트(createButton/createCard/createTag) 사용, theme.css 변수 엄격 준수, 반응형 900px 기준
- 미해결: /api/a01/news 백엔드 미구현
- 기존 내용 유지: status stable 유지, related_pages 확장
[2026-07-12] refactor | 파일명 규칙 도입 및 링크 수정
- 파일명 규칙 변경:
frontend.md→A01_frontend.md(page_id prefix 추가) - 이유: 그래픽 뷰에서
frontend.md,backend.md등 기능명이 겹칠 때 page_id로 즉시 식별 가능하게 함 - 적용 범위: wiki/pages/A0x_이름/, wiki/pages/B0x_이름/ 하위 파일 모두 (신규 + 기존)
- 수정 파일:
wiki/pages/A01_Home/frontend.md→A01_frontend.md, index.md 링크[[A01_Home/frontend]]→[[A01_Home/A01_frontend]] - docs/CLAUDE.md 규칙 5번, wiki/CLAUDE.md 작성규칙 수정 — 파일명 규칙 명시
- 향후 ingest 시 신규 파일 생성할 때마다 page_id prefix 붙임
[2026-07-12] lint | A그룹(A01~A09) 전체 검증 및 정합성 점검
- 범위: A01~A09 wiki 페이지 13개 + 참조 concept(ui_templates/a00_app_shell_framework/auth_rbac/common_util/logs_monitoring 등) + index.md
- 검증 통과 항목:
- 파일 100줄 제한: 전 파일 통과(최대 A01 76줄), 파일명 규칙(page_id prefix) 전부 준수
- 위키링크 유효성: A그룹이 거는 링크 대상 전부 실존 확인(깨진 링크 0)
- 소스 커버리지: A01
A09 실 소스 파일 전부 wiki 반영 확인(A02A05 frontend-only는 백엔드 소스 없어 정당)
- 발견·수정한 문제:
- A02_frontend.md frontmatter에 비표준
related_pages: []잔재 → 제거(A01 린트 때와 동일 유형) - index.md 미해결 항목 섹션에 A그룹 발견 불일치 3건 누락 → "A그룹 인제스트 중 발견" 소섹션 추가(세션정책/support_requests컬럼/미사용코드)
- auth_rbac.md 역참조 누락(B01만 있고 A06/A07/A09 없음) → 사용처 섹션 + 계획서-실코드 불일치 소섹션 추가(규칙12)
- index.md A01 요약 톤 정리(다른 A페이지와 일관성, stable 명시)
- A02_frontend.md frontmatter에 비표준
- 기록만(수정 안 함):
[[B01_Dashboard/backend]]링크는 구 파일명(backend.md) 참조하나 파일 실존→깨진 링크 아님. B01 파일명 규칙 마이그레이션은 B그룹 작업 시 처리- common_util.md 사용처 "전 페이지/인증 관련"로 A그룹 포괄됨(세부 명시는 선택사항, 링크 유효)
- 결론: A그룹 인제스트 정합성 확보. 누적 불일치 3건은 index.md 미해결 항목에 집약(코드 수정은 사용자가 나중에)
[2026-07-12] ingest | A09_Security (backend + frontend 상세화)
- 대상: A09_Security_Router.py(123줄), A09_Security_Schema.py(25줄), A09_Security_UI_Page.ts(30줄), A09_Security_Terms.ts(16줄), A09_Security_Api_Fetch.ts(61줄), A09_Security_UI_Style.css(14줄)
- 기존 파일 정리: 얕은 스텁 backend.md/frontend.md 삭제 → A09_backend.md/A09_frontend.md 상세 재작성
- 출력:
A09_backend.md(stable) —/api/security9개 엔드포인트(마스터 5종 require_master, 시스템관리자 3종 require_system_admin, 활동로그 1종 verify_session), Pydantic 3종, psutil 리소스 계측A09_frontend.md(stable) — 약관 열람 페이지(3섹션), Terms 데이터 표, 미사용 API 클라이언트 8함수 표
- 로케일 키 검증: A09_Security_Title(375), A09_Security_Version(376), A09_Security_Policy(379) 실 파일 등록 확인
- ⚠️ 중요 발견 1 (프론트/백엔드 기능 불일치): UI_Page.ts는 약관 텍스트 열람만, Api_Fetch.ts(마스터/관리자 8함수)는 어디서도 import 안 됨(grep 확인). 백엔드 API는 완비, 프론트 연동 미완 → 양쪽 파일에 명시
- ⚠️ 중요 발견 2 (약관-실코드 불일치): Terms.ts security 텍스트 "세션 12h/4h 만료"는 auth_rbac 계획서 기준, A06 실코드(auth_expires_at 3개월)와 다름. A06 불일치와 동일 뿌리 → 코드수정은 나중에(사용자 지시)
- 발견 사항:
- 스텁엔 프론트가 "약관 동의 페이지"로 기술됐으나 실제론 동의 체크 없는 단순 열람(동의 흐름은 A07 회원가입에 있음)
- 백엔드는 B01_Dashboard 관리자 기능과 역할 중복 가능성
- activity_logs INSERT: user_id/action_type/resource_id/status/details
- index.md A09 링크
[[A09_Security/backend]]→[[A09_Security/A09_backend]]갱신
[2026-07-12] ingest | A08_Support (backend + frontend 상세화)
- 대상: A08_Support_Router.py(68줄), A08_Support_Schema.py(13줄), A08_Support_UI_Page.ts(217줄), A08_Support_UI_Style.css(64줄)
- 기존 파일 정리: 얕은 스텁 backend.md/frontend.md 삭제 → A08_backend.md/A08_frontend.md 상세 재작성
- 출력:
A08_backend.md(stable) —POST /api/a08/support단일 엔드포인트, get_optional_session(비로그인 허용), support_requests INSERT + 관리자 알림 메일A08_frontend.md(stable) — 문의 폼(textarea 자체 구현 createTextAreaField), 세션 자동 채움(fetchSessionUser), fetch 직접 호출(Api_Fetch 파일 없음)
- 로케일 키 검증: A08_Support_Title(348), A08_Support_Field_Phone(357), A08_Support_Field_Message(361), A08_Support_Success(367) 실 파일 등록 확인
- ⚠️ DB 스키마 불일치 발견:
db_schema/logs_monitoring의 support_requests 컬럼은 계획서 기준(user_id/title/priority/status)인데 실 코드 INSERT는 company_id/company_name/user_name/user_email/user_phone/subject/message → 컬럼명 다름. logs_monitoring.md에 양쪽 병기 + 사용처에 A08 추가, 실 DB 대조 필요(규칙6)로 표시 - 발견 사항:
- 비로그인도 문의 가능(get_optional_session), 로그인 시 회사 정보 자동 연결
- textarea는 공통 컴포넌트에 없어 자체 구현
- 프론트가 fetch를 직접 호출(별도 API 클라이언트 파일 없음)
- index.md A08 링크
[[A08_Support/backend]]→[[A08_Support/A08_backend]]갱신
[2026-07-12] ingest | A07_Register (backend + frontend 상세화)
- index.md A07 링크
[[A07_Register/backend]]→[[A07_Register/A07_backend]]갱신
[2026-07-12] ingest | A06_Login (backend + frontend 상세화)
- 대상: A06_Login_Router.py(179줄), A06_Login_Schema.py(20줄), A06_Login_UI_Auth_Page.ts(80줄), A06_Login_Api_Fetch.ts(57줄), A06_Login_UI_Style.css(52줄)
- 기존 파일 정리:
backend.md/frontend.md(초기 세팅 시 얕은 스텁, 비표준 frontmattertype/source/related_pages포함) → 삭제하고 규칙에 맞는A06_backend.md/A06_frontend.md로 상세 재작성 - 출력:
A06_backend.md(stable) —/api/auth엔드포인트 5종 표(login/request·verify·session·logout·password), 내부헬퍼 3종, Pydantic 3종, 로그인 흐름, 보안정책A06_frontend.md(stable) — 2단계 폼(비번→OTP 전환), API 클라이언트 5함수, 로케일 키, 이벤트 핸들러
- 로케일 키 검증: A06_Login_Title(124), A06_Login_Field_Otp(288), A06_Login_Verify(290), A06_Login_OtpSent(291) 등 실 파일 등록 확인
- 발견 사항:
- OTP는 "신규 브라우저 OR 주기적 재인증(EMAIL_REVERIFY_DAYS 경과)" 조건에서만 요구 (매 로그인 아님)
_finish_login에서auth_expires_at = NOW() + 3개월갱신, 브라우저 신뢰 등록- 5회 연속 실패 시 ADMIN_EMAIL로 보안 경고 메일
fetchSession/fetchSessionUser/logout은 app_shell과 공유
- ⚠️ 불일치 기록: auth_rbac는 계획서 기준(OTP 5분·재시도 3회·세션 4h/12h·15분 잠금)인데 실 코드와 다름 → 규칙6에 따라 auth_rbac 갱신 대상으로 A06_backend.md에 명시(별도 처리 필요)
- index.md A06 링크
[[A06_Login/backend]]→[[A06_Login/A06_backend]]갱신
[2026-07-12] lint | A03~A05 인제스트 재점검
- 대상: A03/A04/A05 frontend.md + concepts/ui_templates.md
- 줄번호 대조: 실 코드와 전부 일치 확인 (A03 buildHero 23-41 등, A04 buildTimeline 70-106, A05 onClick 26-28 등)
- 로케일 키 검증: A03_CompDetail_Contact_Email(238), A04_NewsHistory_Empty(249), A05_EduDetail_Cta(273) 등 실 파일에 등록 확인
- 발견/수정한 문제:
- 규칙13 위반: A03~A05 컴포넌트 섹션이 서술식 불릿 → 표 형식(함수|위치|역할)으로 전환, renderAxx 진입점 함수 누락분 추가
- ui_templates.md 컴포넌트 목록 부정확: createButton variant 3종→4종(danger 추가), createTag variant 5종·기본값 neutral 명시, 누락 컴포넌트 6종(createInputField/createSelectField/showLoadingOverlay/hideLoadingOverlay/showToast/createLineChart/injectBaseStyles) 표로 보완
- 깨진 위키링크
[[A00_Common/app_shell_framework]]→[[a00_app_shell_framework]]로 수정(ui_templates.md 2곳) - ui_templates.md 사용처 역참조에 A03/A04/A05 추가
- ui_templates.md 91줄(100줄 제한 이내 유지)
[2026-07-12] ingest | A05_EduDetail
- 대상: A05_EduDetail_UI_Page.ts (106줄), A05_EduDetail_UI_Style.css (87줄)
- 출력:
wiki/pages/A05_EduDetail/A05_frontend.md(stable) - 발견 사항:
- Hero + 3개 교육 과정 카드그리드 + CTA 버튼 레이아웃
- createButton, createCard 공통 컴포넌트 사용
onA05_EduDetail_Inquiry_Click()→ A08_SUPPORT 라우트로 이동- theme.css 변수 엄격 준수
- index.md 업데이트 (A05 분리)
[2026-07-12] ingest | A04_NewsHistory
- 대상: A04_NewsHistory_UI_Page.ts (117줄), A04_NewsHistory_UI_Style.css (87줄)
- 출력:
wiki/pages/A04_NewsHistory/A04_frontend.md(stable) - 발견 사항:
- MOCK_HISTORY 데이터: feature/fix/notice 3종 태그 + 날짜
- KIND_META 맵핑으로 variant 자동 결정
- createTag 공통 컴포넌트 사용
- 빈 상태(empty) 처리 구현
- 백엔드 API 미구현: GET /api/a04/history (코드 주석에 언급)
- index.md 업데이트 (A04 분리)
[2026-07-12] ingest | A03_CompDetail
- 대상: A03_CompDetail_UI_Page.ts (114줄), A03_CompDetail_UI_Style.css (100줄)
- 출력:
wiki/pages/A03_CompDetail/A03_frontend.md(stable) - 발견 사항:
- A02와 동일 패턴(Hero + 섹션 + 3열 카드그리드)
- createCard 공통 컴포넌트 사용
- 3개 가치 카드 (Value1~3) + 연락처 이메일
- theme.css 변수 엄격 준수
- index.md 업데이트 (A03 분리)
[2026-07-12] lint | A01_Home 페이지 검사 및 수정
- 대상:
wiki/pages/A01_Home/A01_frontend.md - 발견 사항:
- frontmatter에 비표준 필드
type: page-frontend존재 → 제거 (규칙에는 status/page_id/last_updated만) - related_pages 배열 형식 오류 → 제거 (위키링크는 본문에만 사용)
- 의존성 링크
[[ui_template_locale]],[[ui_template_elements]]오류 → concepts 페이지 부재
- frontmatter에 비표준 필드
- 해결:
- frontmatter 정제 (status/page_id/last_updated만 유지)
- 새 concepts 페이지
ui_templates.md신규 생성 (locale + elements + theme 통합, 사용처 역참조 포함) - 의존성 섹션 링크 수정: ui_templates로 통합
- index.md에 ui_templates 추가
- status: stable 유지 (실 코드 반영 완료)
[2026-07-12] ingest | A02_ProgDetail + A00_Common Framework
- 대상: A02_ProgDetail_UI_Page.ts (146줄), A02_ProgDetail_UI_Style.css (127줄) + A00_Common (app_shell.ts 284줄, b_page_scaffold.ts 163줄, router.ts 158줄)
- 출력:
wiki/pages/A02_ProgDetail/A02_frontend.md(신규) — 컴포넌트 분석 + 로케일 키 + CSS 클래스 + 이벤트wiki/concepts/a00_app_shell_framework.md(신규) — 공유 프레임워크(전체 페이지의 헤더·라우터·가드)
- 발견 사항:
- A02는 단순 정적 페이지(Hero + Workflow 배지 + Tech 카드)
- A00_Common는 전체 앱의 스켈레톤—모든 페이지가 의존하는 공유 레이어
renderShell()+injectShellStyles()로직으로 헤더/아울렛/푸터 통합 관리- 라우터 테이블에 A01
A09, B01B11 (22개 라우트) 모두 등록됨 (B10_Payment, B11_Status 신규 발견) - 워크플로우 라우트(B02~B11)에 대한 추가 인증 가드 구현 (company_id 검증)
- index.md 업데이트 (A02 분리, concepts에 a00_app_shell_framework 추가)
- status: both stable (실 코드 구현 완료 확인)
[2026-07-19] ingest | B04, B05, B06, B07 일괄 업데이트 (종횡단 이관, WebCAD PoC, 3D 테마)
- 대상: B04_PreProcess_UI_Viewer/TerrainViewer/Camera/Style, B04_PreProcess_Engine/VWorld/GisVector, B05_Profile_UI_Page/Panel/Profile_Panel/Viewer/Markers/Api_Fetch/Style, B05_Profile_Router/Repository/Engine_Sections, B06_Section_UI_Page/Section_View/Api_Fetch/Style, B06_Section_Router/Repository, B08_DesignDetail_UI_Page/CadViewer/Api_Fetch/Style, B08_DesignDetail_Router/requirements/package/tsconfig/vite.config
- B04 (Surface) 갱신:
B04_frontend.md(stable) — 3D 테마 연동(bindSurfaceViewerTheme 유틸을 통한 computed--color-surface-raised색상 Three.js scene.background 적용 및 0x251f38 다크 폴백), 척도선 text-shadow 및 drop-shadow를 통한 가독성 대비 확보 반영.B04_backend.md(stable) — 2D/GIS 미표시 진단 원인 기록 (PRJ 파일 부재 시 download_vworld_satellite_map silent skip 처리, prj 부재로 인한 EPSG:5186 가정이 실제 데이터인 EPSG:5187과 달라 BBOX가 바다로 이탈하여 WFS API가 빈 GeoJSON을 반환하는 버그 진단 및 수동 스크립트 test_vworld_download.py를 통한 성공 확인 기록).
- B05 (Route) 및 B06 (ProfileCross) 갱신:
B05_frontend.md/B05_backend.md(stable) 및B06_frontend.md/B06_backend.md(stable) — 종횡단 생성 엔진 및 API가 B06에서 B05 최적 경로 계산(solve) 단계로 전격 이관됨을 반영. 횡단 반폭cross_half_width_m옵션은 B06 사이드바 제어로 이관되어 재생성 API(regenerate_sections)를 태움.- 단일 소스화 (2026-07-19): 종횡단 계산 시 적용했던 4개 옵션을
longitudinal_sections.data내"options"스냅샷 JSON 형태로 영구 보존. B05 solve 및 B06 재생성 시 DB 저장 옵션을 1순위로 참조하여 측점/샘플 옵션 3개가 유실 없이 유지됨. 프론트엔드 조회 시 options 이력이 있으면 이 값을 우선 채택하고 없을 때만 offset 추정치로 폴백. - B05 UI 및 레이아웃: 종단면도 패널 접기 개선(화살표 토글 버튼만 노출, sessionStorage 상태 저장), 가로스크롤바 16px 감산으로 세로 스크롤 완전 제거, ResizeObserver 150ms 디바운스 렌더링, 3D 뷰어 내 마커 직접 드래그 이동(3px 이상 거리 판단으로 OrbitControls 비활성화 및 movePoint API 동기화), 뷰포트 내 3D 뷰 컨트롤 overlay 이동, 등고선 입력 한 행 배치, 등고선 간격 영속화 API(
update_contour_interval및 stage 1 params 동시 갱신). - B06 UI 및 레이아웃: 사이드바 액션 버튼 flex 1:1 비율 정렬, 종횡단 확정 성공 직후 B07 상세 설계로의 자동 이동(
goToWorkflowStage연동), 종단도 sticky 상단 고정 복구(main 컨테이너 높이 강제 및 overflow:auto), 종단도 세로선 선택 영역 14px 히트박스 적용, 측점 표기 STA 접두 제거 및측점번호+잔여거리포맷("4+0.0") 통일. - 차트 및 그리드 버그 완치: 종단도 최소 폭(
longitudinalMinWidth) 보정으로 좁은 화면 가로 스크롤 연동. 횡단도 열 수를 480px 최소폭 기준으로 동적 계산하는 auto-fill 그리드를 적용하여 카드가 우측 화면을 이탈하는 결함 완치.
- B07 (DesignDetail) 상세화:
B07_frontend.md(stable) /B07_backend.md(신규, stable) /B07_api.md(신규, stable) /B07_dependencies.md(신규, stable) — WebCAD 도입 PoC Phase 1 적용 반영.- GPL 라이선스 가드:
@mlightcad/cad-simple-viewerMIT 뷰어가 내부적으로 동적 로드하는 GPL 라이선스 모듈들을 빈 스텁(config_cad_gpl_stub.ts)으로 mapping(alias)하여 번들링에서 제외함. - 싱글톤 Re-entry:
AcApDocManager클래스 싱글톤 특성에 따라 페이지 재진입 시 뷰어 DOM 홀더를 전역 변수로 영속 유지하여 layout 마운트/재마운트 수행. - ezdxf API: 백엔드에서
ezdxf를 사용하여 격자/지반선/계획선/중심선/라벨 기하 데이터를 JSON으로 서빙하는 라우터 PoC 구현.
- Concepts (공통 개념) 갱신:
dependencies.md— 백엔드ezdxf및 프론트엔드@mlightcad/cad-simple-viewer의존성 반영.workflow_state.md— B06 확정 성공 시 B07 상세 설계로의 자동 이동 게이팅 규칙 명시.route_profile.md—longitudinal_sections.data컬럼 내"options"스냅샷 구조 및 용도 서술 보강.
- index.md 업데이트: B07 항목에 PoC 상세 및 backend/api/dependencies 연관 위키링크 추가.
[2026-07-19] ingest | B07 독립형 CAD 전환 및 외부 WebCAD 3종 비교 실행환경 추가
- 대상: B08_DesignDetail_UI_Page, UI_Style, openwebcad/dist, b07_external_webcad_demos, external_program/start-cad-demos.ps1, stop-cad-demos.ps1, README_CAD_DEMOS.md
- B07 독립형 CAD 전환:
B07_frontend.md/B07_backend.md/B07_dependencies.md(stable) 및B07_api.md(stable) — GPL 라이선스 우려가 있는@mlightcad패키지 및 백엔드ezdxf라이브러리를 전면 제거.- MIT 라이선스의
openwebcad를 프로젝트 내부 서브디렉토리로 통합하여 단독 컴파일 빌드 파이프라인 체이닝. - 백엔드에서는 DXF API 대신
/b08-cad정적 파일 서빙을 구동하고, 프론트엔드는 iframe을 통해 해당 정적 URL(/b08-cad/index.html)을 100% 크기로 임베딩하도록 아키텍처 단순화 완료.
- B07 외부 WebCAD 3종 비교 환경:
concepts/b07_external_webcad_demos.md(stable) — OpenWebCAD, elhakimz/WebCAD, Maker.js Playground의 로컬 실행 환경(ci 및 build 성공)과 라이선스 고지사항(LGPL-2.1 opencascade.js 주의 등) 기록.- 일괄 기동/종료용 PowerShell 스크립트(
start-cad-demos.ps1,stop-cad-demos.ps1) 검증 완료 반영.
- Concepts (공통 개념) 갱신:
dependencies.md— ezdxf 및 @mlightcad 제거, openwebcad 의존성 반영.
[2026-07-19] ingest | B07 상세설계 개편 및 전역 스크롤바 테마 적용
- 대상: B08_DesignDetail_UI_Page, UI_Style, B08_DesignDetail_Router.py, B08_DesignDetail/drawings, ui_template/ui_template_theme.css, docs/wiki/concepts/design.md
- B07 상세설계 개편 (openwebcad 연동):
B07_frontend.md/B07_backend.md/B07_api.md(stable) — B07 UI를 openwebcad iframe 임베딩 구조로 개편하고, 좌측 도면 목록(종단/횡단) 메타데이터 캐싱 및 단건 도면 postMessage 비동기 연동을 명세함.- 도면 편집 최종본 확정 저장 API(
PUT .../confirm) 및 JSON 영구 보존, 도면 변경(drawing-changed) 시invalidate롤백 처리 로직 반영. - 수량 테이블 자동 계산: B06 산출 횡단면 JSON 데이터를 기반으로 절토고/성토고를 자동 산출하고, 도면 우측(+2.0m)에 수량 테이블 격자선 및 텍스트 엔티티를 자동 생성/렌더링하여 DXF/PDF 출력에 포함하는 백엔드 엔진 연동 기록.
- 전역 스크롤바 테마 적용:
concepts/design.md(stable) — Chromium 브라우저에서의 충돌 방지 가드(scrollbar-width: auto;) 및 8px 미니멀 두께, 투명 트랙, 기본 화살표 숨김, 스크롤 썸 투명도 강화 등 세밀화 스타일 스펙 기록. B07 CAD iframe 내에는 영향 차단 확인.
[2026-07-19] ingest | 잔재 횡단면 데이터 자동 정리 및 CAD 스타일/기능 개선
- 대상: B05_Profile_Engine_Sections.py, openwebcad/App.consts.ts, state.ts, Toolbar.tsx, B07_frontend.md, B05_backend.md
- 잔재 횡단면 데이터 자동 정리 (백엔드):
B05_backend.md(stable) — 종단면 재계산이나 변경 시 측점 수가 변하여 생길 수 있는 구버전 파일 찌꺼기 버그를 완치하기 위해prune_stale_cross_files모듈 연동. 유효 측점 목록(stations)을 비교하여 맞지 않는cross_*.json을 자동 삭제(unlink)하며, 입력 데이터 오염 시 오삭제 방지를 위해 조기 반환 가드 적용.
- openwebcad 치수 스타일 개편 및 상태 다변화 (프론트엔드):
B07_frontend.md(stable) — 치수선 폰트 및 마진 상수를 실물 m 단위 도면에 맞추어 최적화(MEASUREMENT_FONT_SIZE16px,MEASUREMENT_EXTENSION_LENGTH12px)하여 겹침 현상 해결.- 전역 점선 패턴 스타일(
activeLineDash), 텍스트 스타일(activeTextStyle) 상태를 추가하여 도면층별 고유 스타일 편집 및 툴바 컴포넌트(Toolbar.tsx) 상태 갱신 반응 속도 리팩토링.
[2026-07-20] ingest | B07 상세설계 개선 및 수량산출표 CAD 통합
- 대상: B08_DesignDetail_UI_Page.ts, B08_DesignDetail_UI_Style.css, B08_DesignDetail_Router.py, openwebcad (App.consts.ts, Toolbar.tsx, QuantityPanel.tsx, screenCanvas.drawController.ts 외), B05_Profile_Engine_Sections.py, B06_Section_Router.py
- 횡단 잔재 파일 정리 및 오삭제 방지:
B05_backend.md/B06_backend.md/B07_backend.md(stable) —cross_filename()및prune_stale_cross_files()를 연동하여 stations에 없는 잔재cross_*.json을 자동 정리/필터링하고stations데이터 오염 시 오삭제 방지 가드 적용.
- openwebcad 도면 단위 정합 및 선/폰트 UI:
B07_frontend.md(stable) — 주석 상수를 화면 픽셀 스케일(screenScale)로 분할하여 줌 레벨과 무관하게 직관적 화살표/마진 크기 유지. 툴바 리본 선종류(4종)/굵기/색상 및 폰트/크기/색상 제어 컨트롤 및lineDash포함 직렬화 보장.
- Fit-in-all 및 도면 화면 인터페이스:
B07_frontend.md(stable) —zoomToFitScreen()월드 오프셋 공식 수정 및 10% 여백 적용. B07 측점 라벨2+0.0포맷으로統一 및 횡단 2열 버튼 UI 연동.
- CAD 내부 통합 React 수량산출표 패널:
B07_frontend.md/B07_backend.md/B07_api.md(stable) — CAD 하단 중심에 접이식 ReactQuantityPanel마운트. 구조화된quantity_table데이터 전달/확정 저장, 절/성토고 자동 연산, 이전/다음 뷰 이동 연동, 표 변경 시 롤백 감지(notifyDrawingChangedByTable). CAD 하단 명령어 입력창 숨김 처리.
[2026-07-24] ingest | B05/B06/B07 최신 기능 갱신, 비정규 측점, 유토곡선 명세 및 모듈 구조 정합성 완료
- 대상: raw/plans/ 및 raw/verification/ (2026-07-21 ~ 2026-07-24), 2026-07-24_유토곡선_분석_및_웹앱_계산명세.md
- B05 최적 경로 및 종단 계획선 개편:
B05_Profile/B05_frontend_alignment.md,B05_backend.md(stable) — 비정규 측점(BC, MC, EC 및 수량 측점) 지원 연동.B05_Profile_Engine_Sections.py모듈 분리 및_append_irregular_cross_sections()병합 헬퍼로 비정규 측점 단면 동적 생성 보장.- 종단 계획선 IP 편집 및 3D 뷰어 동기화, UI 레이아웃 디바운스 디스플레이 정밀화.
- B06 종횡단 및 표준횡단, B07 게이팅 연동:
B06_Section/(stable) — 표준 횡단면 타입 적용 및 지반/토질(토사, 리핑암, 발파암) 분할 파라미터 B06-B07 연동.- B06 횡단 스케일/행높이(
cross_scale_row_height) 조절 및 확정 후 B07 상세설계 자동 이동 게이팅 규칙 보강.
[2026-07-25] ingest | B07 상세설계 종단도 30측점 분할, CAD 측점 테이블, 횡단도 4레이어 분리 및 CAD 수량표 직렬화 반영
- 대상: raw/plans/2026-07-25_plan_b07_design_detail.md, raw/verification/2026-07-25_verify_b07_design_detail.md
- design 신구조 호환 (N-1-0):
B07_frontend.md—DitchSpec유니언 신구조 타입 적용 및ditchLabel()렌더링으로 런타임 오류 차단.
- 종단도 30측점 N분할 & CAD 측점 테이블 직렬화 (N-1-1):
B07_backend.md,B07_frontend.md— 백엔드B08_DesignDetail_Engine_Cad_Long.py(652줄 분리 작성), 30측점 단위 동적 N분할 (longitudinal_chunks()) 및 사이드 패널종단도 (N)동적 버튼 연동.- CAD 하단 납품 공식 양식 측점 테이블(
b07-long-table레이어) 세로쓰기 값 표기, 구배/곡선 브래킷 및 사선+원 표기 엔티티 직렬화.
- 횡단도 4개 레이어 분리 & CAD 수량산출표 엔티티 (N-1-2 / N-1-3):
B07_backend.md—b07-ground(#f5f7fa,isLocked: true지표선 선택 제외),b07-design(#b794f6),b07-structure(#f6d55c),b07-rock-boundary(#f59e0b 파선) 4개 레이어 분리.- CAD 수량산출표 엔티티 (
b07-cross-table레이어) 21개 수량 키셋 기반 3그룹 CAD 테이블 직렬화, 더블클릭 텍스트 편집 및extract_quantity_table()역추출 보존 (버전 스탬프v5).
[2026-07-25] ingest | B08 수량산출 재구축 완료 및 STmate 분석결과 반영
- 대상: raw/plans/2026-07-25_plan_b08_rebuild.md, raw/verification/2026-07-25_verify_b08_rebuild.md
- DB SSOT 및 20개 모듈 재구축: B07_Quantity 모듈에 대한 2,068줄 단일 대형 파일 완제거 및 20개 소형 모듈 분리 준수.
b08_quantity_revisions테이블에 수량 수정 보정 전후 값 및 필수로 수집된 보정 사유(adjustment_reason) 영구 보존. - STmate 직접공사비 대조: 직접공사비 기준값(재료비 1.94억, 노무비 3.47억, 경비 1.69억, 직접공사비 7.10억)과 연동된 외부 내역 대조 탭 제공.
[2026-07-25] ingest | STmate STC·XLSX 피지빌리티 분석 반영
- 대상: raw/2026-07-25_verify_stmate_stc_xlsx_webapp_feasibility.md
- XLSX & STC 분석: XLSX 숨겨진
〓 INITIAL 〓시트 메타데이터와 STC ZIP 파일 내부 DBF 11개 테이블(PRJLST/BOQ11/BDQTY/COSTN/RATE 등) 구조 분석. - 웹앱 관리 방향: DB를 원본 수량, 단가, 요율, 공식, 사용자 보정의 SSOT로 유지하고 계산 엔진을 통해 재현하도록 방향성 명세화.
[2026-07-25] ingest | B05 라우터 분리 및 타입오버라이드 lint 수정
- 대상: raw/plans/2026-07-25_plan_n2_n3_n4.md, raw/verification/2026-07-25_verify_n2_n3_n4.md
- B07 및 B05 수술적 수정: B07 임시버튼 variant "outlined" ➡️ "ghost" 교체로 TS typecheck 오류 해소. B05 라우터 700줄 제약 초과 방지를 위해 confirm 병합 헬퍼 4종을
B05_Profile_Router_Confirm.py로 분리하여 585줄로 축소. B03 Email ruff E501(라인 길이) 초과 경고 수정.
[2026-07-25] ingest | B05·B06 2차/3차/4차 개선 및 피드백 반영
- 대상: raw/plans/2026-07-25_plan_b05_b06_3rd_4th_improvements.md, 2026-07-25_plan_b05_b06_modifications.md, 2026-07-25_plan_b06_2nd_improvements.md, 2026-07-25_plan_b06_n6_n7.md 및 관련 검증보고서
- B06 횡단설계 개선: 리핑암/발파암 2단계 경사(암반 경계 기준 무릎점) 생성, 반대면 성토 시 지반고 판단을 통한 자동 절토 전환 가드, B06 횡단도 x좌표 좌/우 반전 표시 교정.
- 자동 갱신 및 hold-repeat: B05 종단 변경 감지 시 B06 로드 때 횡단도 자동 재계산(
reconcileStaleDesigns) 연동. 암 경계선 연속 조정을 위한 holding 타이머(createHoldRepeater) 구현. - UI 및 레이아웃: 1행 구조 배치, 면적 오버레이, 휠 줌/팬 vector-effect 적용, 카드 옵션 행 오버플로 시 우측 드롭다운 "⋯" 연동. B06 status: draft ➡️ stable 갱신.
[2026-07-26] ingest | B06 표준단면 모식도 라벨 재배치 및 측구 형상 대칭성 보정
- 대상: raw/plans/2026-07-26_plan_b06_aesthetics.md, raw/verification/2026-07-26_verify_b06_aesthetics.md
- 모식도 정교화: 표준단면 모식도(
Standard_Diagram.ts) 라벨 Y축 정렬 및 중심선 겹침 해제. 측구 깊이 10px로 축소 및 벽 기울기 4.5 대칭 보정.
[2026-07-26] ingest | 수치지형도 도엽 오버레이 및 GIS 컨테이너 확장
- 대상: raw/plans/2026-07-26_plan_도엽_오버레이.md, raw/verification/2026-07-26_verify_도엽_오버레이.md, raw/2026-07-24_유토곡선_분석_및_웹앱_계산명세.md
- 도엽 9매 취득 자동화: bounds 중심 기준 인접 3x3 도엽번호 산출, VWorld API 및 자동 로그인 다운로드 자동화, PRJ 오라벨 CRS 좌표계 교정, WGS84 투영 및 geojson UFID 중복제거 병합 처리.
- GIS 오버레이 확장: MapViewer 하단 2D 지도에 도엽 수계망(세류), 표고점, 성절토 등 6종 토글, X 마커 렌더링, 계곡선 전용 등고 라벨 토글 추가.
- 개념 문서 반영:
mass_haul_diagram.md유토곡선 수식 및 계산 절차, 사토/토취 배분 원리 최신화.
[2026-07-26] ingest | B07 도면 템플릿 변환 파이프라인 및 종단도 A1 도각 병합
- 대상: raw/plans/2026-07-26_plan_B07_도면_템플릿_및_도각_적용.md, raw/verification/2026-07-26_verify_B07_도면_템플릿_및_도각_적용.md
- DXF ➡️ openwebcad JSON 변환기:
ezdxf기반 원시 도각 DXF 마스터 파일을 openwebcad JSON 스펙으로 파싱/변환하는dxf_to_openwebcad.py(341줄) 배치 완료.uuid5기반 결정적 ID를 부여하여 Git diff 방지. - A1 도각 템플릿 병합: 840×594 크기의 A1 프레임 내부 작도영역
_A1_INNER에 종단 콘텐츠 bbox가 5% 여백으로 중앙 배치되도록 스케일 배율과 이동 변위를 역산하여 오버레이 연산하는B08_DesignDetail_Engine_Template.py(123줄) 구현 완료. - 레이어 잠금 및 포맷 상향: 프레임 엔티티는 잠금 설정된
b07-frame레이어로 강제 변환하여 화면 내 오염을 차단하며,DRAWING_FORMAT = 7로 무효화 처리.
[2026-07-26] ingest | openwebcad 렌더링 성능 3단계 최적화
- 대상: raw/plans/2026-07-26_plan_openwebcad_성능개선.md, raw/verification/2026-07-26_verify_openwebcad_성능개선.md
- 1단계 (dirty-flag + 오프스크린 정적 캐시):
scene-version.tsdirty-flag 도입, state 변경 시에만 장면 재렌더,scene-cache.ts오프스크린 블리팅, 마우스 이동 30ms 스로틀. - 2단계 (배칭 + 자료구조):
layerId->layer Map캐시, highlighted/selected Set 구조 도입, 스타일 런 Path2D 배칭 (beginBatch/flushBatch),lineCap/lineJoin: round로 세그먼트 엔드포인트 fill 2회 제거. - 3단계 (공간 인덱스 + 컬링 + LOD): 64x64 균일 공간 인덱스 (
spatial-index.ts), 화면 밖 +-1 뷰포트 컬링, 0.5px 미만 세그먼트 LOD 데시메이션, 마우스 주변 반경 질의 기반 호버/스냅 후보 추출 및 잠금 레이어 스냅 기본 제외.
[2026-07-28] ingest | B04 하단 2D 지도 도엽 등고선 렌더링 성능 최적화
- 대상: raw/plans/2026-07-28_plan_B04_Map_Performance.md, raw/verification/2026-07-28_verify_B04_Map_Performance.md
- 무손실 최적화 & 렌더엔진 분리: MapViewer 700줄 제약 준수를 위해 렌더 엔진
B04_PreProcess_UI_MapRender.ts(359줄) 신규 분리 및 MapViewer(423줄) 역할 축소. lon/lat->정규화 맵 좌표(0~1 Float64Array) 사전 투영, 정점당getMapRect()할당을 프레임당 1회 어파인 계수 재사용으로 제거. - rAF 스로틀 & 뷰포트 컬링: wheel/pointermove/resize 전용
scheduleDraw()및 rAF 스로틀 적용, width/height/DPR 실제 변경 시만 캔버스 버퍼 재할당, 피처 bbox 기준 화면 밖 컬링. - 연속 LOD & UX 보강: Douglas-Peucker 가중치 기반 오차 0.75px 미만 정점 생략 줌별 연속 LOD 적용 (비트맵 캐시/스무딩은 사용자 검증 후 롤백). 마우스 커서 위치 기준 줌인/아웃 좌표 보정 및 중간 버튼(휠 드래그) 자동스크롤 브라우저 기본 간섭 차단.
[2026-07-28] ingest | B05 배수유역도 구축 및 선행 UX/렌더 버그 수정
- 대상: raw/plans/2026-07-28_plan_B04_B05_Drainage_Watershed.md, raw/verification/2026-07-28_verify_B04_B05_Drainage_Watershed.md
- 선행 UX & 버그 수정: 종단 패널 오버레이(
position: absolute; bottom: 0; height: 60dvh) 전환으로 3D 뷰포트 영역 보존,Profile_Panel.ts에 CSS import 추가로 SVG 차트 검정 배경 버그 해소, 셀 겹침 하이라이트(hideCoveredCells) 처리. - 2단 우측 패널 & 2D 지도 오버레이:
B05_Profile_UI_Drainage_Panel.ts(437줄) 신규 도킹, B04MapRender엔진을 재사용하여 도엽 등고선·하천중심선·표고점 및 VWorld 위성 레이어 오버레이, 노선 평면 선형 정규화 투영. - 능선 분수령 & 백엔드 유역 산정 엔진: Whitebox
fill_depressions함몰 보정, D8 흐름 방향/누적, 도로 측구 흐름 모델(종단 고개 기준 셀 배정) 및 계획선 clip (_clip_to_plan_line), scipygriddata10m DEM 보간 기반B05_Profile_Engine_Drainage_Watershed.py(545줄) 구현, 유역 제원(면적/표고차/유하거리) 산출 및 관경 수식 골격 연동.
[2026-07-31] ingest | B05 배수유역도 재설계 및 관 매설자리 표시·편집 완결
- 대상: raw/plans/2026-07-31_plan_B05_drainage_watershed_pipe_edit.md, raw/verification/2026-07-31_verify_B05_drainage_watershed_pipe_edit.md
- 세류 기반 등고선 기하 직접 분석 배수유역도 엔진: DEM/D8/scipy 의존성 제거, shapely
STRtree기반 등고선 아크 추적 및 능선 마루 행진(trace_ridge_march)으로 유역 고속 산정. - 불변 조건 준수 세부유역 분할 (
Subdivide.py): 전체 메인 배수유역 외곽 경계 불변 보정(오차 sym_diff 0m²), 메인 유역 내부를 관 N개별 분할선으로 무겹침 분할. - 배관 마커 표시·편집 UI 및 API 확장:
B05_Profile_UI_Drainage_Pipes.ts(246줄) 신설, 계획선 상 배관 마커 렌더링, 스냅 이동, 클릭/드래그 편집, 유역-마커 파스텔색 동기화 및POST /drainage/basinsoutlet_lonlat,pipes데이터 연동.
[2026-07-31] ingest | B03 계획노선 CSV 필수 입력 완결
- 대상: raw/plans/2026-07-31_plan_B03_planned_route_csv.md, raw/verification/2026-07-31_verify_B03_planned_route_csv.md
- 원청 계획노선 CSV 필수 입력 및 B04 이동 차단: B03 파일입력 UI 상 계획노선 CSV 선택 영역 추가, 필수 파일 누락 시 B04 이동 차단 검증.
- 백엔드/프론트엔드 엄격한 검증: 헤더(
route_name,sequence,x,y,z,crs_epsg), 순번 연속성(1부터 연번), 수치 유효성 및 단일 EPSG 일치성 검사, DB 메타데이터 등록 및 135개 좌표 샘플 검증 완료.
[2026-08-01] ingest | 배수유역 B04 해석 / B05 세부설계 분리 및 등고선 하강 엔진 위키 반영
- 대상: raw/PLAN.md
- B04/B05 배수유역 역할 분리: 무거운 1차 격자 해석(30s)은 B04 2D 오버레이(
B04_PreProcess_Router_Watershed.py)에서 전담하여 영구저장 및00_watershed_response.json캐싱. B05(B05_Profile_Router_Drainage.py)는 B04 산출물을 받아 ⑨관 보충·⑩세부유역 분할만 무해석 즉시 수행. - 등고선 하강(contour descent) 엔진: 웅덩이/순환 없는 potential 기반 흐름 계산, 32방위 저장, 평균 흐름 화살표(10m 블록 원형 평균, 40m 간격) 백엔드 산출.
- 공통 개념 문서 신설:
concepts/drainage_watershed.md작성 및B04_backend.md,B05_backend.md,index.md교차 링크 연동.
[2026-08-01] ingest | B04/B05 배수유역 UI 개선 9건, 3D 커서 피봇 & B11 선적재 파이프라인 반영
- 대상: raw/plans/2026-08-01_plan_B04_B05_drainage_ui_improvements.md, raw/verification/2026-08-01_verify_B04_B05_drainage_ui_improvements.md
- 공통 프로그레스 서클 & 3D 카메라 커서 피봇:
createProgressCircle단일 정의처 전면 적용(overlay 옵션 포함), B04/B05 Three.js 뷰어 마우스 커서 중심 회전/줌 피봇 유틸(B04_PreProcess_UI_Camera.ts) 구현. - 배수유역 데이터 B05 전용 저장소 분리: B04 원본 읽기 전용 보존, B05 전용 저장소 복사/덮어쓰기 및 사용자 외곽선 포인트 드래그 편집 오버라이드(
boundary_overrides.json) 영구 보존. - 점진 렌더링, 상류 세류선 하이라이트 & HTTP/IndexedDB 캐싱: B05 진입 시
Promise.all병목 제거 순차 렌더링, 유역 상류 세류선 상시 하이라이트, 등고선 드로우콜 병합(424->2), ETag/304 HTTP 캐시(common_util_http_cache.py) 및 IndexedDB asset 프리로드(b_asset_cache.ts) 완결. - B11 자료 준비 화면: 프로젝트 전환 시 3D 지형/등고선 백그라운드 선적재 로딩 화면(
B11_Status_UI_Loading.ts) 추가.
[2026-08-01] ingest | S8. B04 산출물 재활용 + B05 수신량 절감 반영
- 대상: raw/verification/2026-08-01_verify_S8_B05_data_saving.md
- B05 24MB 페이로드 제거:
GET /api/projects/{id}/surface/confirmed확정 지표면 0.4KB 요약 fast-path API 신설 (0.018s 응답), B05 진입 시 23.8MB 포인트클라우드 전송 제거. - 상태 동기화 & 세션 캐시 무효화:
{projectId}|{signature}세션 키 통합, 확정 변경 시clearPreloadMark()+clearRouteLatestCache()로 캐시 무효화 및 데이터 정합성 보장. - GIS 서빙 & 도엽 최적화: 도엽 등고선 raw byte direct 전송 + ETag 적용(2.0s -> 0.006s), 노선 시/종점 기반 도엽 선정(
neighbors_for_points()), 비대상 zip 정제(prune_sheets()), 위성사진 마진 확장(SURFACE_MAP_MARGIN_TILES = 3).
[2026-08-01] ingest | UI 개선 4종 및 후속 하드코딩 제거 (T1~T7) 반영
- 대상: raw/verification/2026-08-01_verify_ui_improvements_4_types.md
- 7단계 명칭 통일 & 리사이저:
ui_template_locale.ts7단계 표준 명칭 적용,ui_template_resizer.ts신설 (B05 종단 패널 상하 & 우측 배수유역 패널 좌우 리사이즈 및sessionStorage연동). - B04 2D 지도 계획선 & 마우스 조작: B03 원청 계획선 2D 좌표 전송 API (
GET /planned-route) 및 오버레이 라벨 재배치, 2D 지도 좌버튼 드래그 팬 시작 차단(가운데 휠 팬 유지). - B05 배수유역도 위성사진 토글 & 팔레트 토큰화: 등고선 토글 전면 위성사진 토글 추가,
ui_template_theme.css--map-*33종 색상 토큰 및ui_template_palette.ts(themeColor) 파싱/캐싱 유틸 적용, A01/A02 소개 문구 동기화.
[2026-08-01] ingest | B04 도로 유입 흐름 강도 오버레이 및 사이드 패널 구조 병합 반영
- 대상: raw/verification/2026-08-01_verify_B04_inflow_strength_and_panel_cleanup.md
- 도로 유입 흐름 강도 & 집중점 마커 API:
GET /api/projects/{id}/drainage/road-inflow(B04_PreProcess_Router_Inflow.py) 신설, 1m 해상도 노출 및find_inflow_hotspots()집중점 마커 산출,polygonize_labels기여 셀 외곽선 조회. - 도로 오버레이 & 집중점 클릭 이벤트:
B04_PreProcess_UI_FlowStrength.ts계획선 1m 레인보우 오버레이 렌더링, 집중점 클릭 시 기여 셀 외곽선 실선 강조 및 좌상단 정보 표기. - 사이드 패널 그룹 병합: 지면 필터/서피스/스무딩 3개 항목을 "지표면 분석" 그룹으로 병합 및 표시 옵션 3열 그리드 레이아웃 정리.
[2026-08-01] ingest | B04 상세 배수유역 계산, Z 우선순위 연동 및 공용 배수 엔진 승격 위키 반영
- 대상: raw/plans/2026-08-01_plan_B04_detailed_basins.md, raw/verification/2026-08-01_verify_B04_detailed_basins.md
- 공용 배수 엔진 승격:
common_util_drainage_detail.py신설하여 코어 알고리즘(WatershedBasin,RoadRouting등)을 이관. 이로 인해 B05의B05_Profile_Engine_Drainage_Basin.py는 얇은 어댑터(58줄)로 축소됨. - 종단 Z 해석기 및 노선 동일성 판정:
common_util_route_profile.py신설하여 Z 해석 및 동일성 판정 적용. - 관 지점 영구 저장소 및 B04 백엔드 라우터:
common_util_drainage_pipes.py신설하여pipe_points.json저장 관리,B04_PreProcess_Router_Basins.py신설하여 관 매설 편집 및 세부유역 분할(/api/projects/{id}/drainage/basins) 제공. - B04/B05 프론트엔드 및 외곽선 편집 제거:
B04_PreProcess_UI_Basins.ts신설하여 마커 드래그/스냅 및 단일 토글("세부유역") 연동. 전체 유역 외곽선 편집기 및 오버라이드는 사용자의 등고선 해석 신뢰 지시에 따라 전량 제거됨. B05에서는 관 매설 편집을 B04로 단일화하고 조회 기능으로 축소됨.
[2026-08-02] ingest | B04/B05 배수유역 일원화 및 종단 테이블 구조물 연동 반영
- 대상: raw/plans/2026-08-02_plan_B04_B05_drainage_unification.md, raw/verification/2026-08-02_verify_B04_B05_drainage_unification.md
- 데이터 및 API 일원화: B05 사본 저장소와 API/로직 전면 제거, B04 공용 API(
GET/POST/PUT/DELETE /drainage/pipe-points,POST /drainage/detail-basins)로 데이터/라우터 일원화. - 종단 그래프 연동 및 조작: 종단 테이블의 복잡성을 줄이기 위해 구조물 라인을 종단 그래프 칸(
.b05-profile__chart)으로 통합.kind === "irregular"인 측점선(배관 포함)을 좌클릭 드래그(attachStationDrag)하여 위치 조작 시 실시간 유역/마커 재계산 연동. 그래프 빈 자리 우클릭 시 "배관 추가", 측점선 우클릭 시 "배관/구조물 삭제"가 작동하도록 컨텍스트 메뉴 이관 통합. - 선택 3자 동기화:
_UI_Selection.ts신설을 통해 유역 영역 클릭 ↔ 종단 그래프 세로선 선택 ↔ 좌측 구조물 폼(+3D 마커) 간의 선택 상태 실시간 양방향 갱신 (무한 루프 방지용isSyncing가드 구현). - UX 편의성 보강: 2D 휠 줌 당기면 확대/밀면 축소 일괄 반전, 패널 리사이즈 시 뷰포트 배율/오프셋 고정으로 축척 이탈 방지, 유역 목록 3행 스크롤 제한(CSS calc 활용).
- 품질 제한 준수: 700줄 제약 만족을 위해
_UI_Profile_Structures.ts(113줄),B04_PreProcess_UI_MapOverlays.ts(149줄),_UI_Selection.ts(97줄),_UI_Drainage_Render.ts등 신규 분리.
[2026-08-02] ingest | ui_template_locale.ts 다국어 파일 분할 반영
- 대상: raw/plans/2026-08-02_plan_ui_template_locale_split.md, raw/verification/2026-08-02_verify_ui_template_locale_split.md
- 700줄 소스 제약 해결: 1,230줄짜리
ui_template_locale.ts를 배럴(Barrel) 구조와 하위 4개 사전 파일(ui_template_locale_common/a/b1/b2)로 분할하여 타입 안정성을 유지하고, 소비처 13개 이상 파일의 import 영향 없이 리팩토링 적용.
[2026-08-02] ingest | 유토곡선 3공구 도면 분석 반영
- 대상: raw/plans/2026-08-02_유토곡선_3공구_분석.md
- 계산 기준 확정 (다짐상태): 실무 관례를 수용하여 유토곡선은 다짐상태 기준으로 순토량/누가토량 계산.
N(i) = Σ[절토량(자연) × C(지반)] - 성토량(다짐),M(i) = M(i-1) + N(i)수식 확정. - 토량환산계수 기본값: 지반유형 3종에 대한 체적 변화 계수 L, C 기본값(토사: 1.25/0.90, 리핑암: 1.35/1.15, 발파암: 1.60/1.30) 정의 및 사용자 설정 지원 명세화.
- 동적 Y스케일링: 1공구(최대 1,171㎥)와 3공구(최대 12,889㎥)의 5배 이상 축량 격차를 감안해 데이터 범위에 맞춘 자동 Y스케일 사용 결정.
- 제외/보류 항목: 실무 정의가 불명확한
M.N지표 산출 보류, 장비 자동선정 및 유량 모순 보정은 Phase 2(평형선 탐색 구현)로 유예.
[2026-08-02] ingest | B06 유토곡선 패널 결합 및 B05 배수유역 패널 정정 반영
- 대상: raw/plans/2026-08-02_plan_mass_haul_and_drainage_fixes.md, raw/verification/2026-08-02_verify_mass_haul_and_drainage_fixes.md
- B06 유토곡선 패널 결합: 종단면도와 결합된 접이식 유토곡선 그래프 패널 구현. 평균단면법 기반의 구간 토량 산출 및 다짐상태 기준의 누가토량 산정 명세 반영. 종단면도와 동일한 X 매핑을 사용하여 수직 정렬 및 줌/스크롤 동기화 연동. Y축 자동 스케일 및 눈금 가변 제어 적용.
- 토량 수식 및 데이터 영속화:
config_system.py에 토량환산계수(L, C) 기본값 신설 및 사용자 조절 기능 연동. 확정 시 프론트 계산 유토곡선 데이터(mass_haul)를 종단 정본에 병합 저장(merge_longitudinal_section_data()). - 운반장비 거리 경계 신설:
config_system.py에 장비 선정 제한거리 기본값 신설 (종무대 ≤ 20m, 도쟈 ≤ 50m, 덤프트럭 초과). - 기술부채 해결:
B06_Section_UI_Section_View.ts파일의 700줄 제약 위반 문제를_UI_MassHaul.ts및_UI_MassHaul_View.ts신설 분리를 통해 해결 (857줄 -> 463줄). - B05 배수유역 패널 정정: 진입 시 기본 펼침 정정 및 우측 도킹에 맞춘
collapseToward: "right"와 접기 화살표 회전 각도 올바르게 정정.
[2026-08-02] ingest | B06 유토곡선 토량 배분 엔진 고도화 및 UI/UX 정정 반영
- 대상: raw/verification/2026-08-02_verify_mass_haul_distribution_and_refinements.md
- 계산 엔진 고도화:
PARABOLIC_MASS_CURVE = false설정을 통한 직선 보간 단일화, 남은 사토/토취 최소화 장거리 상쇄 (HaulTransfer), 급경사지 사토 공제 모델링 (fill_ground_slope). - UI/UX 정정:
.b06-section__panel접기 손잡이bottom: -24px노출, 횡단 카드 선택 시 휠 줌(viewBox) 유지, balloon 화면 클램핑 및 면-balloon 양방향 연동.
[2026-08-02] ingest | B06 유토곡선 다중 곡선화 및 저장 높이/손잡이 결함 보정 반영
- 대상: raw/verification/2026-08-02_verify_mass_haul_multi_curve.md, raw/verification/2026-08-02_verify_panel_fold_B05_style.md, raw/verification/2026-08-02_verify_panel_height_first_render.md, raw/verification/2026-08-02_verify_backlog_reorg.md
- 다중 곡선화: 종단/횡단 기준 × 지반유형 처리 등 총 6종 곡선 오버레이 렌더링 및 축 이동 방지 가드 검증.
- 접기 손잡이 B05 스타일 적용:
createWorkflowPanelHandle상하 도킹 확장,PANEL_CHROME_PX = 102슬림화, 진입 시 측점 자동 선택 제거. - 저장 높이 첫 렌더 결함 수정:
panelHeight()에서 detached 상태 시 인라인 CSS 변수--b06-profile-height우선 참조로 종단도 축소 결함 해결. - 미결사항 및 장비거리 확정:
config_system.py내EARTHWORK_HAUL_EQUIPMENT_LIMITS_M단일화 (무대 ≤20m, 도쟈 ≤50m, 덤프 초과).
[2026-08-03] ingest | 후속 작업 공통 주의사항 13개 항목 이관 반영
- 대상: raw/plans/2026-08-03_plan_후속작업_주의사항.md, raw/verification/2026-08-03_verify_후속작업_주의사항.md
- 주의사항 체계화:
PLAN.md하단 13개 지침 항목(암 경계선, 표준단면 토큰, B06 상세조회 시점, 다짐상태 누적, 장비선정거리, 토량배분 3원칙, 사면-지반 첫교차, 유토곡선 항등식, config 단일관리, 저장 경로 공유, 법령 용어 등) 아카이빙 및 위키화 반영.
[2026-08-03] ingest | B05 계획 유토곡선 패널 구축, 공용 모듈 분리 및 피드백 9차 반영
- 대상: raw/plans/2026-08-03_plan_B05_mass_haul_transfer.md, raw/verification/2026-08-03_verify_B05_mass_haul_transfer.md
- 공용 모듈 분리:
common_util_mass_haul*.ts|css,common_util_svg.ts이동 및MassHaulAxis파라미터화, B05 2차 슬라이드 패널 구축 및 X축 정렬. - 캐시 공유 & 세부 개선: B05-B06 간
ProfileCross_Section_Store.ts싱글턴 캐시 공유, 0선 적색 표기, EP 잔량 라벨, sticky ㎥ 축, 3D 측점 라벨 확대 반영.
[2026-08-03] ingest | 향후 작업 4개 항목(사토장 모델, 자연방토 경사, B08 수량산출 인계 등) 반영 완료
- 대상: raw/plans/2026-08-03_plan_향후작업_반영완료.md, raw/verification/2026-08-03_verify_향후작업_반영완료.md
- 향후 작업 아카이빙: 사토장 위치·거리 입력 및 사토 balloon
L=/장비 표기, 자연방토 경사1.0/1.5수치 확정, 유토곡선 띠 데이터를 B08 수량산출로 전달 및cut_natural_m3환원, 횡단도 훑기 개선 완결.
[2026-08-04] ingest | 유토곡선 사토 balloon 표기, B08 인계 최종 취소 및 횡단 카드 스크롤 정렬 반영
- 대상: raw/plans/2026-08-04_plan_mass_haul_spoil_scroll.md, raw/verification/2026-08-04_verify_mass_haul_spoil_scroll.md
- 사토 Balloon 운반거리/장비 표기 및 매칭:
common_util_mass_haul_balance_view.tsballoon 본문에L=및 장비명 표기, 다중 잔량 발생 시 가까운 부지 매칭(settleResiduals)을concepts/mass_haul_diagram.md에 반영. - 자연방토 경사 확정 및 B08 인계 취소: natural spoil 경사
1.0/1.5유지 확정, 사토장 B05 구조물 수동 배치 전환에 따른 유토곡선->B08 수량산출 자동 인계 기능 최종 취소(운반비 미계상) 명세 반영. - 횡단 카드 스크롤 정렬 보정: 종단/유토곡선 측점 선택 시 횡단 카드가 상단 패널 접기 손잡이 바로 아래 맞물리도록
block: "start"정렬 적용 및 스크롤 직전syncScrollMargin동적 실측 연동을B06_Section_UI_Section_View.md에 반영.
[2026-08-04] ingest | B05/B06 종횡단 UI 개편, 유토곡선 오버레이 전환 및 백그라운드 자동 계산 체인 (33건)
- 대상: raw/plans/2026-08-04_plan_b05_b06_profile_ui_chain.md, raw/verification/2026-08-04_verify_b05_b06_profile_ui_chain.md
- 유토곡선 오버레이 전환 & Y축 단위/스케일 고정: 1:1
splitBar분할 제거 후 패널 바닥 고정 오버레이 서브패널 전환, 표고 오버레이 중첩 보정으로 ㎥ 단위 유지 및 ±200㎥ 기본 고정 스케일 적용을B05_Profile_UI_Profile_Panel.md에 반영. - B05/B06 UI/UX 시인성 & 휠-가로 스크롤 연동: 상승(빨강)/하강(파랑) 편집 버튼 시인성, 표준 삼각형 손잡이(64×24), 곡선 L·R 세로 회전 표기, sticky Y축 및 세로 휠-가로 스크롤 동기화를 B05/B06 위키 문서에 반영.
- 성능 최적화 및 연장 계산 체인: B05→B06 진입 시
reconcileStaleDesigns일괄 프리뷰 1회 호출 전환, B04 확정 후 B05 경로/B06 횡단 설계 백그라운드 자동 연장 체인 및 B04 재확정 시 기존 사용자 설정 매칭 이월(run_redesign_chain) 명세를concepts/workflow_state.md및 B06 위키에 반영.
[2026-08-05] ingest | B04/B05 배수설계 강우량 연동 + 구조물 옵션 체계 (Phase 1~5) 반영
- 대상: raw/plans/2026-08-05_plan_b04_b05_drainage_rainfall_structure.md, raw/verification/2026-08-05_verify_b04_b05_drainage_rainfall_structure.md
- WAMIS 확률강우량 연동: urllib 기반 96조합 등우선 전역 캐시(
resources/wamis_contours/) 및 노선 내삽 API(GET /drainage/rainfall) 구현, 별표2 1호 수리계산 및 세월교 판정(D>2000mm) 명세를concepts/drainage_watershed.md에 반영. - 구조물 3단 옵션 체계 & UI: 1~3단 동적 계층 드롭다운(배관/기성막이/대피로/기타), D800 법정 예외 하한 적용, 종단/배수유역도 우클릭 구조물 추가 및 3D 수직 핀 마커 동기화, 하단 패널 오버레이 서브패널 UX 안정화 반영.
[2026-08-06] ingest | B05 하단 패널 리사이즈 튐·자동 확대 버그 수정 반영
- 대상: raw/plans/2026-08-06_plan_B05_bottom_panel_resize_bug.md, raw/verification/2026-08-06_verify_B05_bottom_panel_resize_bug.md
applyHeightCascade()멱등화:desiredHeight()기반 축소/복구 멱등성 확보 및offsetHeight측정 제거.- 리사이저 max 상한 통일: grow 상한과 리사이저 max를
MAX_PANEL_HEIGHT_RATIO0.9(90%)로 통일. - 경량 동기화 및 1회 재구성: 서브패널 드래그 중
scheduleLightSync()프레임 경량 갱신, 드래그 종료 시 120ms 타이머 전체draw()1회 호출. mainDragCooldown플래그: 손 뗀 직후 grow 자동 확대 방지 디바운스 유예 플래그 도입.
[2026-08-06] ingest | B05 메인 패널 리사이즈 시 3영역 비례 연동 반영
- 대상: raw/plans/2026-08-06_plan_B05_main_panel_resize_proportional.md, raw/verification/2026-08-06_verify_B05_main_panel_resize_proportional.md
commitHeight(px)신설: 서브패널(MassHaul, TableOverlay) 높이 확정 기록 API 신설.mainDragRef실측 스냅샷: 메인 드래그 시작 시점 종단/유토곡선/테이블 3영역 실측 높이 스냅샷 기반 비율 배분.while루프 비례 배분: 최소 높이 도달 영역 pinned 고정 처리 및 남아있는 공간 배분 루프 적용.- 드래그 종료 시 1회 재구성:
clearDragFlags에서commitHeight확정 및 120ms 후draw()1회 수행.
[2026-08-06] ingest | B05/B06 UI 및 엔진 6종 기능 개선 반영
- 대상: raw/plans/2026-08-06_plan_B05_B06_feature_updates.md, raw/verification/2026-08-06_verify_B05_B06_feature_updates.md
- B06 횡단 반폭 및 계획선 보정:
clipPath그룹 추가로 플롯 이탈 자름 처리,SECTION_CROSS_HALF_WIDTH_M20m 기본값 상향 및 전역 반폭 적용 보강. - B05 경로확정 측구 방향 동기화:
B05_Profile_Router_Confirm.py내sync_uphill_overrides_into_designs연동으로 B05 확정 시 횡단 설계 측구 방향 즉시 반영. - UI 및 3D 마커 개선: Canvas 2D
roundRect(10)라운드 라벨,ui-sidebar-section공통 사이드바 테두리 일원화, 시작 측점/샘플링 컨테이너 최상단 통합. - 구조물 목록 및 3D 뷰어 보완:
B05_Profile_UI_IrregularStations.ts중복 복원 유령 배관 린스 제거, 3D 램프 0.55 축소, 측점선 BoxGeometry 띠 Mesh 교체 및 3D 조준점 링 마커 적용.
[2026-08-16] audit | 전체 위키 복구 1단계 기준선 및 인제스트 원장 생성
- 대상:
docs/raw/plans/86개,docs/raw/verification/91개, 기존 위키 Markdown 144개, 기존 Graphify 산출물. - 기준선: 기존 그래프 1,051노드/955관계, 위키 루트 밖 source 노드 72개, 연결 차수 1 이하 노드 765개를 복구 전 비교값으로 기록.
- 인제스트 원장: raw 177개를 월·유형별 5개 페이지로 분할하고 명시적 위키 참조, 계획·검증 대응 후보 및 감사 필요 상태를 기록.
- 주의:
referenced는 완전 반영 판정이 아니라 파일명이 위키 또는 log에 명시됐다는 1차 상태이며, 후속 내용 감사로 확정한다.
[2026-08-16] audit | 미추적 raw 고위험군 내용 감사 및 근거 연결
- 대상: CRS·의존성 완료기록 2개와 명시적 반영 흔적이 없던 검증보고서 15개.
- 근거 연결: B01/B03/B04/B05/B06 및 workflow·dependencies canonical 페이지에 검증보고서 source를 연결하고, CRS 정규화 개념 페이지를 신설.
- 혼합 판정 분리:
2026-07-18_verify_crs_and_polling_log.md의 B03 CRS 정상화 PASS와 B04 access log 방식 FAIL을 분리 기록하고, B04 실패는 후속 검증의 롤백·진입 가드로 대체된 이력을 보존. - 운영성 이력:
2026-08-08_verify_db_initialization.md는 아키텍처 정의가 아니라 테스트 DB 정리 실행 이력이므로 위키 기능 명세에 합치지 않고 감사 원장에서만 추적.
[2026-08-16] normalize | 현재 workflow 명칭·전역 아키텍처 관계 정규화
- 물리 구조 정렬: 최신
2026-08-08_verify_R1_R2_features.md에 따라 B04~B09 위키 폴더·파일·page_id·위키링크를 현재 명칭으로 변경. - B07/B08 책임 교환 반영: B07은 Quantity, B08은 DesignDetail/CAD로 정정하고 과거 명칭은
architecture/project_map.md의 alias로 보존. - 전역 지도 신설: 프로젝트 지도, B01~B09 데이터 흐름, 공유 자원 영향 지도, 공개·인증·관리 지도를 추가하고
index.md를 100줄 이하 라우팅 카탈로그로 재작성. - 린트 결과: 명칭 이동 후 깨진 링크와 잘못 변경된 raw source명을 정정하여 error 0건을 재확인.
[2026-08-16] graphify | 오염 그래프 격리 및 docs/wiki 전용 완전 재생성
- 기존 그래프 보존: 소스코드 노드가 혼입된 기존
graphify-out463개 파일을tmp/wiki_graphify_legacy_2026-08-16으로 이동해 복구 가능하게 보존. - 코퍼스:
docs/wiki/의 Markdown 155개·약 55,403단어만 의미 추출하고 애플리케이션 소스 트리는 입력하지 않음. - 신규 그래프: directed graph 76노드·48관계·32커뮤니티로 재구축하고 모든 노드 근거를
docs/wiki/아래로 정규화. - 무결성: missing endpoint 0, dangling endpoint 0, self-loop 0, directed edge collapse 0.
- 비용: 의미 추출 216,796 input tokens / 8,470 output tokens.
[2026-08-16] graphify | 최종 필터링·검증 결과 정정
- 운영 문서 제외:
.graphifyignore에graphify-out/,log.md,AGENTS.md,CLAUDE.md,ingest/를 등록해 그래프 산출물·운영 기록·감사 대장을 의미 그래프 입력에서 제외. - 최종 코퍼스:
docs/wiki/의 의미 문서 146개, 약 39,252단어. - 최종 그래프: directed graph 73노드·47관계·30커뮤니티. 모든 노드의
source_file은docs/wiki/아래 문서로 정규화. - 무결성: missing endpoint 0, dangling endpoint 0, self-loop 0, directed edge collapse 0.
- 총 추출 비용: 265,124 input tokens / 14,991 output tokens. 운영 로그 증분 추출 시도 비용을 포함하되 해당 노드·관계는 최종 그래프에서 제외.
- 대표 질의 검증: 정확한 그래프 어휘를 사용한 workflow·공유 자원·B07/B08 질의는 관련 근거 문서를 반환. 자유 자연어 질의 2건은 일치 노드를 찾지 못해 어휘 확장 필요성이 남음.
[2026-08-16] audit | 소스 읽기 기반 구현 현황 정정
- 범위: A00
A09, B01B11, workflow 공통 유틸, DB migration, 단계별 저장 경로를 읽기 전용으로 감사. 소스코드는 수정하지 않음. - 핵심 판정: B03~B06은 구현, B07은 계산 없는 임시 완료 우회, B08은 CAD와 횡단
quantity_table의 부분 구현, B09는 준비 중 UI 셸. - 상태 SSOT: DB
project_workflow_stages가 기준이며 프로젝트 루트workflow.json은 제한적인 보조·레거시 상태로 분리. - 무효화 경계: 공통
start_stage()는 뒤쪽 COMPLETE 상태만 STALE로 바꾸며, 실제 산출물 정리는 단계별 로직에 의존함을 명시. - 오류 정정: 현행 소스에 없는 B07 수량·단가·보정 모듈과
b08_quantity_*SSOT 설명을 제거하고 실제 임시 API만 기록. - 미결: 향후 B07 수량 SSOT와 B08 CAD 수량표의 책임 경계는 사용자 결정 전까지 확정하지 않음.
[2026-08-16] graphify | 소스 감사 반영 위키 증분 갱신
- 변경 문서: 구현 현황·workflow·저장 경로·B07/B08/B09 등 22개 문서를 의미 재추출.
- 최종 그래프: directed graph 86노드·58관계·33커뮤니티, 모든 노드와 관계의 근거가
docs/wiki/아래에 존재. - 무결성: missing endpoint 0, dangling endpoint 0, self-loop 0, directed edge collapse 0.
- 증분 비용: 27,985 input tokens / 2,184 output tokens.
- 검색 검증: B07 임시 우회, workflow SSOT·산출물 무효화 구분, B07/B08 책임 경계 질의가 관련 canonical 문서를 반환.
[2026-08-16] graphify | 저연결 노드 판정과 관계 보강
- 판정: 기준선 저연결 57개를 관계 보강 24개·정상 말단 32개·의도적 참고 1개로 분류.
- 보강: 공개·관리 지도, 공유 자원, A01
A05, B01/B03B06 API, B06 면적 엔진, B07 DB, B08 의존성에 명시적 관계 추가. - 정규화: 의미 추출이 만든 위키링크 alias 중복 노드를 canonical 노드로 병합하고 근거 경로를
docs/wiki/로 정규화. - 최종 그래프: 87노드·75관계, 차수 0 노드 0개. 차수 1은 50개이며 개별 API·Router·UI·요약 페이지의 정상 말단으로 유지.
- 무결성: outside source 0, missing edge source 0, lint error 0.
[2026-08-16] ingest | B05 일반 구조물 수동 추가 교차검증 반영
- 근거:
raw/plans/2026-08-16_plan_B05_구조물_수동추가.md, 개발 담당 AI 자체검증, 교차검증보고서. - 완료 판정: Python 49건·Ruff·TypeScript typecheck·메인+B08 전체 빌드 통과. 1·2차 교차검증 지적은 최신 커밋
84eb0273에서 해결됨. - 정본 분리: 배관은 B04 공용
pipe_points.json, B~G 일반 구조물은B05_Profile/route/structures.json과 revision을 사용. - UI·검증: 레지스트리 동적 폼, 서클마크·벌룬·구간 띠, 서버 옵션 검증, 저장 실패 롤백, 후속 STALE 실패 안내를 반영.
- B06 보존: 전체 38종의
사용은 O로 확인했고, 구조물 전체 표와B06 도면·메모열은 다음 B06 수정 입력으로 상시계획서에 유지.
[2026-08-16] graphify | B05 구조물 정본·B06 경계 증분 갱신
- 입력 제한:
docs/wiki/문서만 사용하고 애플리케이션 소스 트리는 입력하지 않음. - 증분 추출: 변경 문서 12개에서 B05 구조물 정본·타입 레지스트리·revision 충돌·B06 STALE·향후 도면 통합 관계를 갱신.
- 최종 그래프: directed graph 122노드·119관계·23커뮤니티.
- 무결성: wiki 밖 source 0, missing endpoint 0, self-loop 0, 차수 0 노드 0.
- 질의 확인: B05 구조물 정본 → 타입 레지스트리/revision 충돌 → B06 STALE → 미완료 도면 통합 경로를 반환.
- 비용 기록: 협업 런타임이 이번 의미 추출의 토큰 사용량을 노출하지 않아 현재 실행은 0/0으로 기록하고
cost.json에 사유를 명시함. 누적 계측값은 313,587 input / 21,148 output.
[2026-08-17] ingest | B04 등고선 추출 가속 교차검증 반영
- 근거:
raw/plans/2026-08-17_plan_B04_등고선_추출_가속.md, 개발 담당 AI의 상시계획서 실데이터 결과,raw/verification/2026-08-17_verify_B04_등고선_추출_가속_교차검증.md. - 교차검증: 새 래스터화 단위 테스트 10건, 등가성 장시간 검사를 제외한 임시 테스트 59건, Ruff format/check와 py_compile이 통과했다. 검증자는 구현 코드를 수정하지 않았다.
- 완료 판정: 15유닛·스무딩 유지, meshfree·dtm 수치 일치, TIN 변동 근거 확인, 등고선 27분 39초→77.6초 및 모델·등고선 약 2분 52초를 완료 범위로 아카이빙했다.
- 상시계획서 보존: TIN 등고선 화면 확인 4종, 대용량 preview, 확정 모델 초기화 영향, 기존 csf/nurbs 결함, 드론 라이다 연계 검토는 후속 항목으로 남겼다.
- 위키 반영: B04 backend와 2026-08 계획·검증 인제스트 원장을 갱신했고, 현행 SciPy 버전 표기를 1.18.0으로 정정했다.
[2026-08-17] lint | B04 가속 인제스트 후 위키 검사
- 범위: graphify 산출물을 제외한 위키 Markdown 157개와 B04 신규 raw 아카이브·검증보고서 연결을 검사했다.
- 오류: 변경 문서의 frontmatter·근거 경로·Markdown 링크 누락 0, 페이지 100줄 초과 0, B04 backend 99줄, 구 SciPy 1.16.3 표기 0.
- 기존 경고: 운영 로그·지침의 예시형 미해결 위키링크, file URI 3건, 기존 frontmatter 근거 경로 2건은 이번 변경과 무관하여 그대로 남겼다.
- 모순 확인: 백엔드 완료와 프론트엔드 화면 확인 대기를 분리해 계획 아카이브·상시계획서·B04 위키가 같은 상태를 가리키도록 정리했다.
[2026-08-17] graphify | B04 등고선 래스터화 가속 증분 갱신
- 입력 제한:
docs/wiki/만 사용했으며 애플리케이션 소스 트리는 Graphify 입력에서 제외했다. - 갱신 방식: 범용
graphify update .가 Markdown을 코드 AST로 재구축한 결과는 자동 백업에서 복구했고, 기존 정제 그래프에 변경된 B04 문서의 의미 노드·관계만 증분 반영했다. - 신규 관계:
B04_PreProcess - Backend --implements--> B04 Contour Rasterization Acceleration. - 최종 그래프: directed graph 123노드·120관계·23커뮤니티. graph.json·graph.html·GRAPH_REPORT.md와 manifest를 동기화했다.
- 무결성: wiki 밖 node/edge source 0, missing endpoint 0, self-loop 0, 차수 0 노드 0.
- 질의 확인:
graphify query와graphify explain에서 B04 래스터화 가속 노드와 백엔드 구현 관계를 반환했다.
[2026-08-17] ingest | B05 구조물 선택지·부속 옵션·종단 알약 재편 반영
- 근거:
raw/plans/2026-08-17_plan_B05_structure_options_profile_marks.md와 상시 계획서 자체검증 기록. 사용자가 타 AI 검증 완료를 확인하여 별도 교차검증보고서는 만들지 않았다. - 아카이빙: 완료된 B05 재편 구간만 상시 계획서에서 분리하고, B06 완료 전 유지할 구조물 적용 범위 표와 후속 과제는 남겼다.
- 선택지·정본: B05는 A·C·D·E·기타 25종을 노출하고 B·F·G 10종은 B06 재사용을 위해 비활성 보존한다. 배수관과 일반 구조물의 저장 정본 분리는 유지한다.
- UI: 배수관·BOX암거·세월교 부속 입력을 단일 구조물 폼에 통합하고, 종단 2행 알약 레인·A군 세로선/틸팅·4경로 선택 동기화를 반영했다.
[2026-08-17] lint+graphify | B05 구조물 재편 위키 점검·그래프 갱신
- 린트: 변경 위키 페이지는 100줄 이하이며 frontmatter·raw 근거 경로·인제스트 링크·공백 오류를 통과했다.
- 도구 처리: 범용
graphify update .가 Markdown을 코드 AST로 오인한 835노드 결과는 자동 백업으로 복구하고, 정제 그래프에 B05 통합 구조물 편집 노드와 근거 관계 2개만 반영했다. - 입력 제한: 노드·관계 근거는
docs/wiki/pages/B05_Profile/B05_structures.md이며 애플리케이션 소스 트리는 입력하지 않았다. - 최종 그래프: directed graph 124노드·122관계·23커뮤니티. graph.json·graph.html·GRAPH_REPORT.md를 동기화했다.
[2026-08-17] ingest | B05 BOX암거·보호공·배수 추천 완료 범위 반영
- 근거:
raw/plans/2026-08-17_plan_B05_box_ui_recommendations.md와raw/verification/2026-08-17_verify_B05_box_ui_recommendations_external.md. 외부 AI 검증 결과를 보존했으며 위키 관리자는 2차 교차검증을 재실행하지 않았다. - 완료 반영: BOX암거 프리셋·날개벽 기본값, 보호공(돌붙임/도수로) 이관, 5개 프론트 파일 700줄 분리, 유량 기반 시설·관경 추천과 물넘이·세월교 필요 단면 표시를 B04/B05·배수 개념 위키에 반영했다.
- 상시계획서 보존: B06 상세 산식·횡단도 판단, 부속 자동 제안, DEM 기반 지형·하천 차수 판정, 유효직경 계수 근거 재확정은 미결로 남겼다.
[2026-08-17] graphify | B05 추천·UI 분리 관계 증분 갱신
- 입력 제한:
docs/wiki/의 B05 구조물·프론트 문서만 근거로 사용했으며 애플리케이션 소스 트리는 입력하지 않았다. - 신규 관계: B05 구조물 정본 → 배수 시설 추천 → 타입 레지스트리, B05 프론트엔드 → UI 파일 분리를 반영했다.
- 최종 그래프: directed graph 126노드·125관계·23커뮤니티. missing endpoint·dangling endpoint·self-loop·directed edge collapse는 모두 0이다.
[2026-08-18] ingest | B05 사이드 패널·페이지 개선 아카이빙
- 대상:
raw/plans/2026-08-18_plan_B05_sidebar_ui_page_improvements.md,raw/PLAN.md. - 완료 범위: B05 구조물 선택 해제·입력 잠금·월류 제원·A군 임시 배치·우클릭 추가·페이지 설정과 우클릭 메뉴·추천 문구·벌룬·패널 UI 개선을 아카이브로 이관.
- 근거: 사용자의 검증 완료 확인 및 계획서의 자체검증 기록. 사용자 지시에 따라 별도 2차 교차검증·검증보고서 작성은 생략.
- 상시 계획서 유지: B05/B06 구조물 적용 범위 표, 부속 자동 제안·상세 산식·B06 연계·유효직경 근거 재확정 등 미결과 B03 다중 라이다 보류 계획.
- graphify: 증분 감지에서 현재
.graphifyignore대상 운영 문서 9개를 삭제 대상으로 오인했다. 기존 그래프 훼손을 막기 위해 이번에는 증분 갱신을 실행하지 않았다.
[2026-08-18] ingest | 상시 계획서 작업 내용 초안 반영
- 대상:
raw/PLAN.md. - 범위: B05/B06 구조물 적용·연계, B05 사이드 패널 및 페이지 개선 2차, B03 다중 라이다 파일 처리 보류 결정을 위키화.
[2026-08-20] ingest | B06 배수관 횡단도 세트·B05 선행 정비 반영
- 계획서 보존: 구조물 통합 표와 B05 후속 작업은 그대로 유지하고, 완료된 B06 세트 사양·사용자 결정·B05 선행 정비만
raw/plans/2026-08-20_plan_B06_배수관_횡단도_세트.md로 이관했다. - 검증 근거: 사용자 요청에 따라 독립 2차 교차검증은 수행하지 않았다. 개발 담당 AI의 자체검증 기록과 생략 범위는
raw/verification/2026-08-20_verify_B06_배수관_횡단도_세트_자체검증근거.md에 분리했다. - B06 위키: 배관 정본 결합, 유입 구조물 판정, 배관·기슭막이/집수정·보호공 기하, 계획선 트림, 프론트·백엔드 산출물을 B06_Section/B06_culvert_set에 정리했다.
- B05 위키: 바닥막이 부활, 보호공 선택 옵션 삭제, 독립 기슭막이 범위형 입력, 설계속도, 종단 표시와 계획고 하향 제한을 B05_Profile/B05_Profile_plan_2026-08-19 및 B05_Profile/B05_structures에 반영했다.
- 상시 계획서 유지: 13+15.7 성토사면 5.03m, ㄷ형 집수정 입력·재질, 표준단면 5m 플래그, 도수로 연계, 대형 파일 분리, 기술정보 미결과 깃 보류를 남겼다.
[2026-08-20] lint+graphify | B06 배수관 세트 위키 점검·그래프 갱신
- 문서 린트: 변경 문서 11개는 frontmatter·status·page_id·100줄 제한·위키링크·raw 근거 경로·인제스트 원장을 통과했다. 계획 92개와 검증 96개가 원장에 모두 등록됐다.
- 입력 제한:
docs/wiki/문서만 사용했고 애플리케이션 소스 트리는 입력하지 않았다. - ignore 보호: 증분 감지가
.graphifyignore대상 운영 문서 9개를 삭제로 오인해 모두 prune 대상에서 제외했다. 실제 그래프 삭제 입력은 0건이다. - 의미 추출: 변경·미반영 문서 10개를 27노드·59관계·2하이퍼엣지로 추출했다. Gemini 백엔드 의존성 부재로 호스트 추출 경로를 사용했으며 협업 런타임이 토큰 사용량을 제공하지 않아 비용은 0/0으로 기록한다.
- 최종 그래프: directed graph 132노드·149관계·26커뮤니티. missing endpoint·dangling endpoint·self-loop·directed edge collapse는 모두 0이다.
- 질의 확인: 배수관 횡단도 질의가 B05 구조물 정본·2026-08-19 정비·B06 API/백엔드/프론트·배관 레이아웃 규칙을 연결해 반환했다.
- 도구 경고: 설치 패키지는 graphify 0.9.16, 프로젝트 스킬은 0.9.12로 버전 차이가 있다. 이번 갱신 결과에는 오류가 없었으며 스킬 자체 업데이트는 요청 범위 밖이라 수행하지 않았다.
[2026-08-21] ingest | B06 배수관 세트 기하 재설계 초안 반영
- 범위:
docs/raw/PLAN.md의 「4. B06 배수관 세트 기하 재설계」만 위키화했다. - 분리 원칙: 8월 20일 검증 완료 세트 명세는
stable로 보존하고, 8월 21일 자리·높이·물매·관 길이·선택·조정 규칙은 별도draft페이지로 분리했다. - 반영 내용: 기슭막이 높이·자리·하단선·이동 중심, 벽 두께, 1:1.2 물매와 노폭 연장, 정수 m 관 길이, 집수정 깊이, 선택 레벨과 조정 오버레이를 기록했다.
- 상태 처리: 사용자 화면 검증 기록을 반영했으며, 내일 재확인 전까지 계획 구간의 아카이빙·제거와 별도 미결 문서 작성은 하지 않았다.
[2026-08-21] lint | B06 기하 재설계 인제스트 점검
- 전체 검사: graphify 산출물을 제외한 위키 Markdown 162개에서 frontmatter·status·페이지
page_id·100줄 제한 오류 0건을 확인했다. - 변경 검사: B06 신규 페이지·기존 세트 페이지·인덱스의 위키링크 누락 0건,
docs/raw/PLAN.md근거 경로 존재를 확인했다. - 기존 경고: 인덱스 120자 초과 항목 3개는 B03·B05·A01 기존 항목이며 이번 범위와 무관해 유지했다. 새 B06 인덱스 항목은 117자다.
[2026-08-21] graphify | B06 배수관 기하 재설계 증분 갱신
- 입력 제한:
docs/wiki/의index.md, B06 배수관 세트, B06 기하 재설계 3개 문서만 의미 추출했으며 소스코드 트리는 입력하지 않았다. - ignore 보호:
graphify-out/memory신규 1건과 ignore 대상 운영문서 삭제 오인 9건을 입력·prune 대상에서 제외했다. - 증분 결과: 변경 문서를 27노드·31관계·2하이퍼엣지로 추출했고, 교체 병합 결과는 26노드·30관계 추가, 3노드·22관계 제거다.
- 최종 그래프: directed graph 155노드·157관계·29커뮤니티. wiki 밖 source 0, missing endpoint 0, self-loop 0, directed edge collapse 0이다.
- 방향성 진단: 방향을 버리면 합쳐질 역방향 관계 8쌍이 있으나 directed 그래프에서는 실제 손실이 없다.
- 산출물 확인:
graph.json,graph.html,GRAPH_REPORT.md, manifest를 동기화했고 「B06 배수관 세트 기하 재설계」 노드가 1개 존재함을 확인했다. - 비용 기록: 협업 런타임이 의미 추출 토큰 사용량을 제공하지 않아 이번 실행은 0 input / 0 output으로 기록한다.
[2026-08-22] ingest | B06 배수관 구조물 기하·조작 체계 완료 반영
- 아카이빙: 상시계획서의 완료 구간을
raw/plans/2026-08-22_plan_B06_배수관_구조물_기하_조작_체계.md로 이관했다. - 검증 처리: 사용자 지시에 따라 2차 교차검증을 생략하고 개발 담당 AI의 화면·수치·정적검사 기록을 자체검증 근거 보고서로 보존했다.
- 위키 반영: 자동 자리·수평 기초·3도 접속선을 기하 페이지에, 4축 조작·보기 분리를 조작 페이지에, I·ㄴ·ㄷ 집수정과 다단 기슭막이를 별도 페이지에 반영했다.
- 상시계획서 유지: 임시값 4건, 집수정 명칭·재질 연계, 뜬 벽 하부 구조, 표준단면 5m 플래그, 도수로, 700줄 리팩터링, 지식DB 미결을 남겼다.
[2026-08-22] lint+graphify | B06 기하·조작 완료 위키 점검
- 문서 린트: 변경 위키 5개는 frontmatter·status·page_id·100줄 제한·raw 근거 경로·공백 검사를 통과했다.
- 도구 복구:
graphify update .가 Markdown 157개를 코드로 오인한 885노드 결과를 즉시 자동 백업에서 복구했다. - 의미 증분: 변경된 B06 문서 4개를 25노드·27관계로 재추출해 기존 정제 그래프의 같은 source를 교체했다.
- 최종 그래프: directed graph 155노드·155관계·34커뮤니티.
graphify query가 기하·4축 조작·집수정·다단 관계를 반환했다. - 경고: package 0.9.16과 skill 0.9.12 버전 차이, 재클러스터 후 미갱신 커뮤니티 라벨 22개는 남아 있다. 기능 노드 조회에는 영향이 없다.
[2026-08-22] ingest | 상시계획서 취소선 정리 및 B06 리팩터링 위키화
docs/raw/PLAN.md의 취소선 구간을 삭제하고 B06 후속·보류 제목은 활성 백로그 제목으로 정리했다.- B06 리팩터링의 현재 줄 수와 검사 기록을 B06_Section/B06_frontend, B06_Section/B06_backend에 반영했다.
- 실제로 700줄을 넘는 B05 구조물 패널과 공통 엘리먼트는 B05_Profile/B05_frontend, concepts/ui_templates의 기술부채로 보존했다.
- 구 지선 호환·등급/설계속도 매핑·종단곡선 반경 명칭 보류를 B05_Profile/B05_Profile_plan_2026-08-19에 기록했다. 뜬 기슭막이 하부 구조와 표준단면 5m 플래그는 기존 B06_Section/B06_culvert_basin_multitier 미결 기록을 유지했다.
- 공동 작업 중 추가된 임시값 4건 취소선도 제거했다. 내부 높이 1.2m·추가 벽 최소 0.5m·콘크리트 상한 5.0m는 사용자 확정 프로젝트 기본값으로 기록하고, 종전 5° 표기는 현재 구현인 성토 1:1.2로 정정했다.
[2026-08-22] lint+graphify | 상시계획서 정리 후 위키 점검
- 변경 위키 7개는 frontmatter·status·page_id·100줄 제한을 만족하고,
docs/raw/PLAN.md의 취소선은 0건이다. - 한글 경로와 과거 manifest 차이로 기본 증분 탐지가 과다 범위를 반환하여 실행하지 않고, 변경 문서만 의미 증분했다.
- 최종 지식 그래프는 directed 176노드·148관계·51커뮤니티이며 dangling 관계 0건이다. B05/B06 파일 한계 질의에서 관련 프론트엔드·백엔드·배수관 문서 연결을 확인했다.
- graphify skill 0.9.12와 설치 패키지 0.9.16 차이 및 재클러스터 후 미갱신 커뮤니티 라벨 경고는 남아 있다.
[2026-08-22] ingest | B06 집수정 조정·계류측 성토부 완료 반영
- 상시계획서 4항을
docs/raw/plans/2026-08-22_plan_B06_집수정_조정_계류측_성토부.md로 이관하고docs/raw/PLAN.md에서 제거했다. - 9키 집수정 조작, 화면 기준 이동, I형 정수 관 길이 클램프와 영구저장을 B06_Section/B06_culvert_controls, B06_Section/B06_api, B06_Section/B06_db에 반영했다.
- 계류측 1:1.2 성토부·5m 초과 다단 기슭막이와 설계선 노견 트림을 B06_Section/B06_culvert_basin_multitier, B06_Section/B06_culvert_geometry_redesign에 반영했다.
- 사용자 요청에 따라 위키 관리자의 2차 교차검증과 별도 검증보고서 작성은 생략했다.
[2026-08-22] lint+graphify | B06 집수정 조정 완료 위키 점검
- 변경 위키 5개는 frontmatter·status·page_id·100줄 제한을 통과했고 상시계획서의 완료 구간 제거와 계획 아카이브 생성을 확인했다.
- 변경 문서만 의미 증분해 최종 directed graph 190노드·164관계·51커뮤니티, dangling 관계 0건으로 갱신했다.
- graphify 질의에서 집수정 9키 조작 →
basin_adjustAPI →data.design.basin_adjust저장과 계류측 성토부 연결을 확인했다. - graphify skill 0.9.12와 설치 패키지 0.9.16 차이 및 커뮤니티 라벨 갱신 경고는 남아 있다.
[2026-08-23] ingest | B05 3D 예상형상 코리도 서피스 완료 반영
- 완료 범위를 계획 아카이브로 이관하고 독립 타입검사·pytest 24건·ruff 결과를 교차검증 보고서로 보존했다.
- 5종 삼각망 서피스, 원지반 재절단, 캐시·저장, 편집 갱신, 절성토 완전 분리와 그랩 팬을 B05_Profile/B05_corridor_surface에 반영했다.
- 코리도 GET/PUT과
B05_Profile/corridor/corridor_{route:04d}.json저장 경로를 API·백엔드·공유 저장 경로 문서에 연결했다. - 자동 최소 계획고, 월류 구조물 최소고, 구조물 서피스, Page 분리는 상시계획서에 유지했다.
[2026-08-23] lint+graphify | B05 코리도 서피스 위키 점검
- 위키 린트 오류 0건, 변경 문서 frontmatter·status·page_id·100줄 제한을 통과했다. 기존 린터의
.md.md중복 고아 경고와 기존 세분 페이지 경고는 남아 있다. - 기본
graphify update .가 Markdown 158개를 코드로 오인한 897노드 결과를 자동 백업에서 복구했다. - 변경 위키 6개를 의미 추출해 정제 그래프에 병합했다. 최종 directed graph는 198노드·168관계·53커뮤니티, dangling 관계 0건이다.
graphify query에서 코리도 서피스가 5종 삼각망·원지반 재절단·프론트·백엔드·저장 파일과 연결됨을 확인했다. 커뮤니티 변경에 따른 라벨 갱신 권고는 남아 있다.
[2026-08-24] ingest | B05 급선회 3D 국부 보정 계획 반영
- 원 계획노선·종횡단 정본을 유지하고 급선회 내측만 3D 전용 보조선 패치로 치환하는 계획을 B05_Profile/B05_corridor_turn_correction_plan에
draft로 분리했다. - 원·보정 코리도 단순 중첩 금지, 최종 노견 외곽 기준 측구·절성토 배치, 보정 구간 구조물 프레임 연동과 기슭막이 이동 시 노견 확장 규칙을 기록했다.
- 커밋
cd8d14f1의inletFill3D 수집 제외와1e-6m동일 표고 판정을 노견 확장 회귀의 조사 대상으로 상시계획서에 추가했다. - 사용자 지시에 따라 구현 완료 판정이나 2차 교차검증은 수행하지 않았으며, 기존 소스의 다른 AI 작업분은 변경하지 않았다.
[2026-08-24] lint+graphify | B05 급선회 3D 계획 점검
- 위키 Markdown 166개를 점검해 신규 페이지 frontmatter·
draftstatus·page_id·54줄 제한과 인덱스 114자 항목을 확인했다. - 기본
graphify update .가 Markdown을 코드로 오인해 912노드 그래프를 생성하여 자동 백업의 정제 그래프를 즉시 복구했다. - 신규 계획을 의미 노드 1개와 현행 코리도·B05 구조물·B06 배수관 기하 참조 3개로 증분 반영했다.
- 최종 directed graph는 199노드·171관계이며
graph.html,GRAPH_REPORT.md, 분석 파일을 동기화했다. - graphify skill 0.9.12와 설치 패키지 0.9.16의 버전 차이는 유지한다.
[2026-08-26] ingest | B05/B06 구조물 인접 측점·3D 투영 커브 완료 반영
- 구조물별 인접 측점 연동과 3D 투영 커브 완료 구간을 계획 아카이브로 이관하고 교차검증 보고서를 작성했다.
- BOX암거·세월교를 소유 측점에만 붙이는 B06 규칙을 B06_Section/B06_backend에 반영했다.
- 세트별 최고표고+5m 투영, 부재별 풋프린트, 날개벽 성토끝 박스, 세월교 날개·에이프런 연결을 B05_Profile/B05_corridor_plan_curves에 반영했다.
- 부재 머지와 기존 미해결·백로그, B05/B06 구조물 적용 범위 표는 상시계획서에 유지했다.
[2026-08-26] lint+graphify | 구조물 투영 커브 위키 점검
- 변경 위키 4개는 frontmatter·status·page_id·100줄 제한·위키링크·공백 검사를 통과했다.
- 기본
graphify update .가 Markdown 4개를 코드로 오인한 918노드 결과를 자동·별도 백업에서 복구했다. - 변경 위키의 직접 근거만 의미 증분해 directed graph 203노드·176관계·52커뮤니티로 갱신했다.
- graphify 0.9.16과 skill 0.9.12 버전 차이, 재클러스터 후 커뮤니티 라벨 15개 갱신 권고는 남아 있다.
[2026-08-26] ingest | B06 인접 측점 트림·B05 비탈 투영 완료 반영
- 사용자 지시에 따라 위키 관리자의 2차 코드 교차검증은 생략하고
docs/raw/PLAN.md의 완료 체크와 자체검증 기록을 근거로 반영했다. - 링크 측점에서 제거된 구조물의 설계선 트림·성토부선까지 정리하는 규칙을 B06_Section/B06_culvert_link_trim에 기록했다.
- 빨간 비탈 투영선, 구조물 경계 격자, 평면 스케치 내부 성토면 절단과 저장본 판번호 주의를 B05_Profile/B05_corridor_plan_curves에 반영했다.
- 셀 경계 잔여, 투영선 바깥 끝 Z 규칙, 0.2m 셀 계단은 미완료이므로 위키 완료 범위에 포함하지 않았다.
[2026-08-27] ingest | B05/B06 구조물 3D 절취·측벽·성토 패치 완료 반영
- 상시계획서 0~0-7 원문을 계획 아카이브로 이관하고 독립 타입검사·정적 경로 대조를 교차검증 보고서로 보존했다.
- B06 링크 측점 트림을 정식 검증 근거로 갱신하고, B05 합집합 절취·면적 폴백·측벽·B06 구간별 성토 패치를 B05_Profile/B05_corridor_cut_fill에 분리했다.
BUILD_VERSION63과 저장 형식 5를 반영했다. DB 스키마 변경은 없다.- 사용자 판단·후속 6건은 완료 처리하지 않고
docs/raw/PLAN.md에 유지했다.
[2026-08-27] lint+graphify | B05/B06 구조물 3D 위키 점검
- 변경 문서는 frontmatter·status·page_id·100줄 제한·UTF-8 검사를 통과했다. append-only
log.md의 기존 100줄 초과만 남아 있다. - 기본
graphify update .가 Markdown 5개를 코드로 오인한 932노드 결과를 만들어 자동 백업의 정제 그래프를 복구했다. - 변경 문서의 명시적 위키링크만 의미 증분하고 재클러스터링했다. 최종 directed graph는 207노드·181관계·52커뮤니티이며 dangling 관계와 self-loop는 0건이다.
- graphify 질의에서 합집합 절취·별도 측벽·B06 구간별 패치 리본이 B05 코리도 서피스와 연결됨을 확인했다.
- graphify Skill 0.9.12와 설치 패키지 0.9.16 차이 및 커뮤니티 1개 라벨 갱신 권고는 남아 있다.
[2026-08-27] ingest | B05 변형 성토면 마감·세월교 날개 패치 반영
- 상시계획서 0-2·0-3의 완료 원문을 계획 아카이브로 이관하고 타입검사·관련 테스트·정적 경로 대조 결과를 교차검증 보고서로 보존했다.
- 패치 스커트, 날개부 확장, 구조물 영역 원지반 재노출과 세월교 패치 역클리핑을 B05_Profile/B05_corridor_patch_finish에 반영했다.
- 저장 코리도 기하 판번호를 79로 갱신했다. DB 스키마 변경은 없다.
- 세월교 좌측 구멍, BOX 패치 축퇴, 확폭부 물매와 사용자 유지 항목은
docs/raw/PLAN.md에 남겼다.
[2026-08-27] lint+graphify | B05 변형 성토면 마감 위키 점검
- 위키 170개 문서에서 frontmatter·status·page_id·100줄 제한 오류 0건이며 변경 원문은 UTF-8 검사를 통과했다.
- 기본 증분 명령의 Markdown 코드 오인 결함을 피하고 신규 문서의 명시적 관계만 정제 그래프에 의미 증분했다.
- 재클러스터링 후 directed graph는 211노드·185관계·52커뮤니티이며 dangling 관계와 self-loop는 0건이다.
- graphify 질의에서 패치 스커트·원지반 재노출·세월교 역클리핑이 기존 코리도 절취·서피스 문서와 연결됨을 확인했다.
- graphify Skill 0.9.12와 설치 패키지 0.9.16 차이 및 커뮤니티 1개 라벨 갱신 권고는 남아 있다.
[2026-08-28] ingest | 구조물 측점·물넘이포장·독립 기슭막이 완료 반영
- 상시계획서
0-B·0-C를 계획 아카이브 2개로 이관하고 교차검증 보고서 2개를 작성했다. - 관·구조물 파일 정본 기반 단일 측점 공급을 B05_Profile/B05_structure_stations에 반영했다.
- 물넘이 횡단·3D 파임, 수기 콘크리트 포장, 독립·다단 기슭막이를 B06_Section/B06_pavement_revetment에 반영했다.
- 미완료 3D 후속, 노선 전체 재계산 UX, 수량·정본화 백로그는
docs/raw/PLAN.md에 유지했다.
[2026-08-28] lint+graphify | 구조물 측점·물넘이포장 위키 점검
- 신규 문서 2개는 frontmatter·stable status·page_id·100줄 제한·UTF-8·내부 링크 검사를 통과했다.
- 기본
graphify update .가 Markdown 5개를 코드로 오인한 953노드 결과를 만들어 2026-08-27 정제 백업을 복구했다. - 신규 문서 노드 2개와 명시적 참조 6개를 증분했다. 최종 directed graph는 213노드·191관계이며 dangling 관계와 self-loop는 0건이다.
graph.html과GRAPH_REPORT.md를 동기화했다. Skill 0.9.12와 설치 패키지 0.9.16 차이, 선택적 Gemini 백엔드 의존성 부재는 남아 있다.
[2026-08-28] ingest | B05 3D 후속 판정·후속 완료 항목 정리
- 상시계획서 0번의 완료 3건과 2번의 완료 6건을 계획 아카이브·검증보고서로 이관했다.
- 투영 Z의 실제 바깥 열 우선 규칙, 확폭 노견 꺾임, 세월교
patchClip책임을 B05_Profile/B05_corridor_followup_decisions에 반영했다. - 물넘이 알약, 저장 명칭, 초기화 정의, 독립 기슭막이 조정, 기타 호환군을 B05_Profile/B05_completed_followups에 반영했다.
- 지형 클리핑 윤곽 변경은 완료 근거가 없어 미완료로 정정했고 세월교 좌측 구멍과 함께 상시계획서에 유지했다.
[2026-08-28] lint+graphify | B05 후속 완료 위키 점검
- 신규 문서 2개는 frontmatter·stable status·page_id·100줄 제한·UTF-8·내부 링크 검사를 통과했다.
- 알려진 Markdown 코드 오인 결함을 피해 정제 그래프에 신규 문서 노드 2개와 명시적 참조 6개만 증분했다.
- 최종 directed graph는 215노드·197관계이며 dangling 관계와 self-loop는 0건이다.
graph.html과 보고서를 동기화했다.
[2026-08-29] ingest | B05/B06 기슭막이 이관·조정·연동·경사 반영
- 사용자 실무 검증 완료 선언을 최종 근거로 채택하고 Codex 2차 교차검증은 지시에 따라 생략했다.
- 독립 기슭막이
pipe_points이관, 좌우 공용 로직, 형태·높이 한계, 단별 구간값을 B06_Section/B06_revetment_link_controls에 반영했다. - 링크 카드 하이라이트, 연동 해제 경로선, 경사 해제 수평 표고와 3D Catmull-Rom 보간 규칙을 반영했다.
- 자동저장 폐지 이후의 미완료 체크 항목은
docs/raw/PLAN.md에 유지했다.
[2026-08-29] lint+graphify | B05/B06 기슭막이 위키 점검
- 변경 문서는 frontmatter·stable status·page_id·100줄 제한·UTF-8·내부 링크 검사를 통과했다. append-only
log.md의 기존 100줄 초과만 남아 있다. - 기본
graphify update .가 Markdown 7개를 코드로 오인해 965노드로 팽창한 결과는 폐기하고 정제 그래프를 복구했다. - 신규 문서 노드 1개와 명시적 참조 3개를 의미 증분하고 재클러스터링했다. 최종 directed graph는 216노드·200관계·52커뮤니티다.
- Graphify 진단은 누락·dangling·self-loop·중복·directed collapse 모두 0건이며, 질의에서 새 기슭막이 문서와 B05 정본·B06 조작·기존 독립 기슭막이 문서 연결을 확인했다.
- Graphify Skill 0.9.12와 설치 패키지 0.9.16 차이는 남아 있다.
[2026-08-29] lint+graphify | 상시계획서 완료 항목 전체 정리
- 승인 대기 중인 B05/B06 인터페이스 일원화를 제외하고 사용자 검증 완료 항목을 모두 계획 아카이브·검증보고서로 이관했다.
- CAD 테마·확대/팬, B07↔B08 순서 교환, 초기값 보전·초기화 실측과 배수시설 추천 기준을 completed_2026-08-29에 반영했다.
PLAN.md에는 인터페이스 승인 대기, 화면 실측·사용자 결정 대기, 3D 결함·상세 산식 후속만 유지했다.- 정제 Graphify 결과는 217노드·204관계·51커뮤니티이며 dangling·self-loop·directed collapse는 0건이다. 기본 Markdown 오인 증분 결과는 폐기했다.
[2026-08-29] ingest | 상시계획서 추가 완료 항목 반영
- 사용자 검증을 최종 근거로 CAD 테마·확대/팬, B07↔B08 순서 교환, 초기값 보전 마무리와 초기화 복원 실측을 아카이빙했다.
- 배수시설 추천 기준 확정·구현 항목도 계획 아카이브와 검증 보고서로 보존했다.
- 완료 요약과 초기화 실측·추천 기준을 completed_2026-08-29에 추가했다.
- 미완료 화면 실측, 사용자 선택 대기, B05/B06 3D 결함과 상세 산식은
docs/raw/PLAN.md에 유지했다.
[2026-08-29] ingest | 추가 완료 항목 아카이빙
- 사용자 검증을 최종 근거로 B07 CAD 테마, CAD 확대·팬, B07↔B08 순서 교환, 초기값 보전 마무리를 아카이빙했다.
- 각 항목의 미완료 화면 실측·사용자 결정 대기 내용은
docs/raw/PLAN.md에 유지했다. - 공통 완료 사항을 completed_2026-08-29에 반영했다.
[2026-08-29] plan-cleanup | 상시계획서 재대조
- 계획서에 중복 잔류하던 CAD 테마·확대/팬, B07↔B08 순서 교환, 초기화 실측·초기값 보전의 완료 본문을 아카이브 포인터로 정리했다.
- 척도 고정·횡단면 배치, B05/B06 인터페이스 승인 대기, 화면 실측·사용자 결정 대기 및 3D 후속 항목은 완료로 이동하지 않고 유지했다.
- 사용자 검증을 근거로 삼았으며 Codex 2차 교차검증은 사용자 지시에 따라 생략했다.
[2026-08-30] ingest | 상시계획서 완료 범위 위키화
- 사용자 검증 완료 선언을 최종 근거로 채택하고 Codex 2차 교차검증은 지시에 따라 생략했다.
- B05 종단테이블 관통선, B06 추가 기슭막이 부모 행 유지, B08 CAD 명령 P0~P5를 아카이빙했다.
- A1 토적도·유역도 T1~T6와 화면 후속 3건을 B08_DesignDetail/B08_drawing_masshaul_watershed에 반영했다.
- 블록 라이브러리, 토적도 장 분할·축척, 표기 차이와 TABLE 검토는
docs/raw/PLAN.md에 유지했다.
[2026-08-30] lint+graphify | 완료 범위 위키 점검
- 이번 변경 문서는 frontmatter·page_id·100줄 제한·UTF-8·내부 링크 검사를 통과했다.
- 기존
AGENTS.md예시와 append-onlylog.md의 과거 링크 23건은 기존 부채로 남아 있으며 신규 링크 오류는 없다. - Graphify는 38개 변경 문서를 재추출해 740노드·594관계·147커뮤니티로 갱신했다. 이번 실행은 62,279 입력·4,664 출력 토큰을 사용했다.
cluster-only로GRAPH_REPORT.md,graph.json,graph.html을 동기화했고 질의에서 B08 CAD 명령 및 토적도·유역도 신규 노드를 확인했다.
[2026-08-30] plan-cleanup | 토적도·유역도 완료/후속 경계 정정
- 상시계획서의 「B07 도면 신규」 제목을 현재 workflow에 맞는 「B08 토적도·유역도 후속」으로 정정했다.
- 완료된
DRAWING_FORMAT8 전환은 상시계획서에서 제거하고, 구현·검증 결과와 납품도면 표기 차이를 B08_DesignDetail/B08_drawing_masshaul_watershed에 보강했다. - 상시계획서에는 장 분할·축척 선택, 실노선 재확인, 표기 차이와 TABLE 직렬화 결정만 유지했다.
[2026-08-30] ingest | 체크박스 완료 항목 전수 위키화
- 대소문자
x를 모두 포함해 상시계획서 완료 체크 53개를 전수 확인하고 사용자 검증을 최종 근거로 이관했다. - 횡단 구조물·가변 장 배치의 문제·설계·실측을 B08_DesignDetail/B08_cross_structure_sheets에 반영했다.
- LAS 없는 업로드·도엽 서피스·관 투영·계획노선 보존의 데이터 계약과 E2E를 las_free_sheet_surface에 반영했다.
- 사진·블록, 좌표·복구·선택·그립, TableEntity의 범위 결정과 검증을 B08_DesignDetail/B08_CAD_blocks, B08_DesignDetail/B08_CAD_interaction, B08_DesignDetail/B08_CAD_table_entity에 반영했다.
- 상시계획서는 976줄에서 167줄로 정리했고 완료 체크는 0개, 미완료 체크 38개만 유지했다.
[2026-08-30] lint+graphify | 체크박스 전수 이관 점검
- 신규 페이지 5개는 frontmatter·status·page_id·100줄 제한·UTF-8·내부 링크 검사를 통과했다.
- 상시계획서에는 완료 체크 0개, 미완료 체크 38개가 남았다.
- Graphify는 14개 변경 문서 중 11개를 재추출해 729노드·582관계·150커뮤니티로 갱신했다.
- 이번 의미 추출은 19,366 입력·2,466 출력 토큰을 사용했고, 질의에서 LAS 없는 서피스와 B03/B04 연결을 확인했다.
[2026-09-01] ingest+lint | B04 지면 처리·B05/B06 배수 제어 완료분 반영
- 완료 계획 4개 범위를 단일 아카이브와 교차검증 보고서로 이관했다.
- B04 지면 필터·온디맨드 생성, B05/B06 최소고 선택, 레거시 기슭막이 관 지점 이관을 completed_2026-09-01에 반영했다.
- B07 CAD 편의성 작업은 전체 시험 86건 중 6건 실패로 완료 처리하지 않고 상시 계획서에 유지했다.
[2026-09-01] ingest+lint | 상시 계획서 잔여 완료 체크 추가 이관
- 혼합 섹션에 남아 있던 완료 체크 37개를 completed_2026-09-01_followups와 raw 아카이브로 이관했다.
- B07 편의성 항목은 CAD 전체 시험 실패로 미체크 재검증 대기 상태로 유지했다.
- 상시 계획서의 완료 체크 표시는 0개가 됐다.
[2026-09-01] ingest | B08 CAD 사용자 편의성 구현을 검증 보류 상태로 반영
- PLAN의 역사적 B07 상세설계 항목을 현재 B08 책임에 맞춰 B08_DesignDetail/B08_CAD_usability_2026-09-01에 정리했다.
- 사용자 검증 기록은 보존하되 전체 Vitest 6건 실패를 명시하고
draft로 유지했다.
[2026-09-01] plan-cleanup | B07 편의성 상세 기록 축약
- 241줄 상세 구현·실측 원문을
2026-09-01_plan_B07_usability_verification_hold.md로 보존했다. - 상시 계획서에는 CAD 실패 6건 재검증 체크 1개만 남기고 B08_DesignDetail/B08_CAD_usability_2026-09-01에 연결했다.
[2026-09-01] plan-cleanup | 신규 완료 체크 17개 재정리
- 노선 원천화·B04 3D 트림·포트 분리 구현 체크 16개를 검증 보류 원문으로 분리했다.
- PRJ 실패 테스트 분류 1개는 미확인 내용이 남아 미체크로 바로잡았다.
- 상시 계획서에는 실데이터 검증·보조 직접 기동 등 실제 남은 작업만 유지했다.
[2026-09-01] plan-cleanup | 구현 완료·검증 대기 섹션 3개 축약
- 노선 원천화, B04 3D 트림, 보조 포트 분리의 배경 원문을 별도 보류 파일에 보존했다.
- 상시 계획서에는 실데이터·화면·직접 기동 검증 체크만 남겼다.
[2026-09-02] ingest | 상시계획서 완료 항목 정리
- 완료 체크 10개와 관련 자체검증·실측 설명을
2026-09-02_plan_completed_items.md로 이관했다. - 용화 노선 트림·배관 정착, B04 3D 표시, 보조 워크트리 포트, CAD 후속과 과거 실패 테스트 분류를 completed_2026-09-02에 반영했다.
- 미완료
fitCamera()·basis구분·CAD 회귀 6건과 기타 후속은docs/raw/PLAN.md에 유지했다. - 사용자 지시에 따라 위키 관리자의 2차 교차검증과 별도 검증보고서 작성은 생략했다.
[2026-09-02] ingest+plan-cleanup | 사용자 검증 완료 항목 위키화
- 사용자 검증 완료 선언을 최종 근거로 채택하고 위키 관리자의 2차 교차검증과 별도 검증보고서는 생략했다.
- 완료 체크와 후속 완료 기록을
2026-09-02_plan_user_verified_completed_items.md로 이관하고 상시계획서는 614줄에서 266줄로 축약했다. - 상시계획서에는 완료 체크 0개, 미완료·판단 대기 36건만 유지했다.
- B04 화면맞춤·종단
basis, B05 구조물 3D 패치·마스크, B08 CAD 회귀·도각·표제란·회사 자산을 completed_2026-09-02와 관련 페이지에 반영했다. - B08_DesignDetail/B08_CAD_usability_2026-09-01을 사용자 검증 완료에 따라
stable로 승격하고 B08_DesignDetail/B08_CAD_title_block을 추가했다.
[2026-09-02] ingest+plan-cleanup | B05 종단 편집 후속 완료 이관
- 최소고 가드 단일 창구와 구조물 위치 되돌리기 완료 블록을
2026-09-02_plan_B05_profile_edit_followup_completed.md로 이관했다. - 완료 내용을 completed_2026-09-02와 B05_Profile/B05_frontend에 반영하고 미사용 수출 정리 등 후속은 상시계획서에 유지했다.
- 사용자 지시에 따라 2차 교차검증과 별도 검증보고서는 생략했다.
[2026-09-04] ingest+plan-cleanup | 사용자 검증 완료 항목 위키화
- 사용자 2차 검증 완료를 근거로 완료 섹션 20개·체크 109개를
2026-09-04_plan_user_verified_completed_items.md로 이관했다. - B01·B02·B03·B04·B05·B06·B08 완료 내용을 completed_2026-09-04에 반영했다.
- 「B05 초기화 범위 확대 — 전체 결과 보존」은 미완료 체크 2개와 완료 체크 3개를 포함한 채 상시 계획서에 보존했다.
- 상시 계획서에는 미완료 체크 11개와 제외 항목의 완료 체크 3개만 남겼다.
[2026-09-04] ingest | 추가 완료 항목·700줄 제한 분리 위키화
2026-09-04_plan_completed_items.md의 완료 작업 5개와2026-09-04_plan_700line_split.md의 대형 파일 분리 15개를 completed_2026-09-04에 추가했다.- 사용자 지시에 따라 위키 관리자의 2차 교차검증과 별도 검증보고서 작성은 생략하고 개발 담당 AI의 자체검증 기록을 근거로 반영했다.
- B04 배수유역 분석 재실행 쓰기 경로 미실행 제한은 완료 페이지에 명시했으며, 착수 전인
2026-09-04_plan_dead_code_cleanup_parked.md는 완료 범위에서 제외했다.
[2026-09-04] plan-cleanup+ingest | 상시계획서 완료 체크 정리
- 정리 전
docs/raw/PLAN.md의 완료 체크 62개와 미완료 문맥을2026-09-04_plan_snapshot_before_cleanup.md에 원문 보존했다. - B03 미리보기·파일교체·부속정보, B08 화면 손질, B05/B06 종단·유토곡선과 구조물 누가거리 완료분을 completed_2026-09-04에 추가했다.
- 새 상시계획서는 완료 체크 0개, 미완료 체크 21개만 유지한다. 완료된 700줄 초과 5개 계획은 최신 전수점검의 초과 0건 기록으로 대체했다.
- 사용자 지시에 따라 별도 2차 교차검증과 검증보고서는 작성하지 않았다.
[2026-09-09] ingest | 9월 6~8일 계획 아카이브·검증 문서 반영
docs/raw/PLAN.md는 사용자 지시에 따라 조회·수정하지 않고raw/plans/·raw/verification/의 신규 유입분만 대조했다.- 9월 7일 노선·캐시·B01~B07 완료와 성능 종료·유역 보류 결정을 completed_2026-09-07에 반영했다.
- 현재 실제 책임을 B07 상세설계·B08 수량산출·B09 원가계산으로 바로잡고 quantity_cost_contract과 B08·B09 구현 개요를 추가했다.
- 표준도·원단위·법령·실무자료 재조사 결과는 standard_drawing_cost_inputs에 정리하되 사용자 결정·자료 미확보 항목은
draft로 유지했다. - 과거
B07_Quantity·B08_DesignDetail·B09 셸 문서는 삭제하지 않고stale역사 기록으로 표시했다.
[2026-09-09] lint+graphify | 9월 6~8일 신규 원본 점검
- 신규 위키 6개는 frontmatter·status·page_id·100줄 제한을 통과했고 전체 208개 문서 중 100줄 초과는 append-only
log.md1개뿐이다. - 현재 워크트리에서 관련 회귀 25건과 TypeScript 검사를 통과했다. 원문에 기록된 git 밖
tmp/tests/test_b08_handoff.py는 존재하지 않아 재실행하지 못했다. - 기본
graphify update .가 Markdown을 코드로 오인해 1,126노드로 팽창한 결과는 자동 백업으로 복구했다. - 신규 문서 노드 6개와 명시적 위키링크 관계 10개만 정제 그래프에 추가하고 재클러스터링했다. 최종 그래프는 991노드·800관계·194커뮤니티다.
[2026-09-09] ingest | 예약 재점검 — B07 표준도 조사·합의 반영
- 기준 시점 이후
raw/verification/에 유입된2026-09-09_B07_표준도_조사와_합의.md1건을 확인했다.raw/plans/신규 문서는 없었고docs/raw/PLAN.md는 조회·수정하지 않았다. - 제원 조합별 장, B08 단위당 성분·B09 단가·B07 도면 책임, 프로젝트 설정 구획과 표→그림 편집 계약을 B07_DesignDetail/B07_standard_drawings_2026_09에 반영했다.
- 소스 대조에서 표준도 Sheet·CAD·Figure·Edit·Router·UI 진입점과 공용 설정 구획, B08
billing_*, B09composite_parts통로를 확인했다. - 원문이 정본으로 지목한 「2026-09-09 결정 시트 회신」 절은 파일에 없어 최종 선택값 27건은 임의 복원하지 않고 누락으로 기록했다.
[2026-09-09] lint+graphify | 예약 재점검 표준도 문서 점검
- 위키 209개 문서에서 비로그 100줄 초과·frontmatter·status·page_id 오류는 모두 0건이다.
- Graphify 정제 그래프에 B07 표준도 문서 노드 1개와 명시적 위키링크 관계 5개를 증분하고 재클러스터링했다.
- 최종 그래프는 992노드·805관계·197커뮤니티이며
graph.json,GRAPH_REPORT.md,graph.html을 동기화했다.