Files
Aislo/docs/wiki/log.md
T
eomsangdonandClaude Opus 5 eb30b774f8 chore(docs): docs 폴더 git 추적 전환 · PLAN·OWNERS 최상위 이관
- `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>
2026-09-09 18:19:07 +09:00

181 KiB
Raw Blame History

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.pyvalue_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.jsonstation, candidates, idf_method, idf_mononobe, idf_general, region_mode 확장 명세를 drainage_watershed, common_util, B04_PreProcess/B04_backendindex에 반영 완료.

[2026-08-12] ingest | DB 정리: 소프트 삭제 프로젝트 CASCADE 소멸 및 임시 보관함 고아 메타데이터 초기화 반영

  • 소프트 삭제 프로젝트 정리: projects 테이블에서 소프트 삭제된 2개 행 삭제 및 project_workflow_stages 14개 행 CASCADE 연쇄 소멸 확인.
  • 임시 보관함 고아 메타데이터 초기화: storage/tmp 실체 없는 upload_chunks(14행), upload_sessions(11행), temp_upload_batches(3행) 메타데이터 정리 및 system_audit_logsresource_type='project' 12행 초기화 내역을 db_schema, B01_Dashboard/B01_db, temp_upload에 반영.

[2026-08-08] ingest | B01 프로젝트 하드 삭제 설정 스위치 및 대시보드 4행 스크롤 제한 반영

[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.z number | null).
    • 3D 카메라 드래그 및 탑뷰 회전 튐 보정 (TOP_VIEW_TILT = 2°).
  • B03 업로드 E2E 결함 수정 6건 반영:
    • finalize 시 upload_session 변수 분리로 404 에러 방지 및 WF1 자동 실행 복구.
    • B03_FileInput_Fingerprint.ts SHA-256 파일 지문 기반 중복 전송 스킵 및 SUPERSEDED 처리.
    • WF1 동시 실행 가드 및 stage 3 완료 시점까지 업로드 버튼 스피너 잠금.
    • common_util_workflow_state.py fail_stage() 메시지 200자 제한 클램프.
    • GET /api/temp-uploads 쿼리 시 linked 묶음 대시보드 목록 제외.
    • common_util_project_reset 자료 교체 시 하위 단계 산출물 초기화 및 b_missing_data_guard 리다이렉트 가드 반영.

[2026-08-08] ingest | R1 워크플로우 단계 재편 (B04~B09) 및 R2 임시 보관함 (Temp Upload) 반영

  • R2 임시 보관함 (Temp Upload) 스펙 반영: temp_upload_batches, temp_upload_files 테이블 신설 및 upload_sessions project_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.ts root 요소에 공통 외곽선 클래스 ui-sidebar-section 부착을 반영.
  • B06 횡단 줌/팬 및 표시 반폭 기준 정정: Cross_View.ts 내 줌/팬 대상을 SVG viewBox에서 plotLayer (transform) 조작으로 전환하여 축선/격자/눈금 고정 및 플롯선만 확대. UI_Page.ts 내 보유 샘플 오프셋 계산 폴백(sampledHalfWidth())을 제거하고 백엔드 기본값 20m를 기본 적용하도록 정정.
  • B05/B06 6종 UI/엔진 기능 개선:
    • Cross_View.ts SVG clipPath 적용으로 설계선/면적 밴드 플롯 이탈 방지.
    • SECTION_CROSS_HALF_WIDTH_M 20m 기본값 상향 및 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) 수량 제외 및 balloon M.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 세분화 마크다운 완수

  • 전수 소스코드 파악: A01A09 및 B01B11 전 폴더의 모든 소스 파일들을 list_dirview_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/)로 세분화.
  • 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.mdB05_frontend.md 문서 100줄 제한 엄수를 위한 서브 인덱스 경량화 (50줄 이내).
  • A00_Common 및 공통 유틸 세분화 완료:
    • A00_Common_AppShell.md, A00_Common_Router.md, common_util_workflow_state.md, common_util_storage.md 1:1 세분화 작성.

[2026-07-24] ingest | B05 종단면도 정렬 개편 및 비정규 측점(구조물) 구현

  • docs/raw/plans/2026-07-24_plan_b05_reorganization.mddocs/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 헬퍼를 통한 종단 파일 병합. 확정 시 비정규 단면 생성에 실패해도 경로 확정은 성공 처리되도록 비치명적 격리 설계.
  • 위키 문서 최신화:
    • 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_종단_계획선_편집_체계_개편.mddocs/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 스타일을 덮어씌우지 않도록 우선순위 패치 적용.
  • 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.mddocs/raw/verification/2026-07-22_verify_B06_B07.md 반영.
  • B06 횡단 설계 상호작용 성능 개선:
    • 단건 카드 Surgical 갱신: B06_Section_UI_Section_View.ts 내에 refreshCard(chainageM)를 신설하여 전체 재렌더 대신 replaceWith로 해당 카드만 정교하게 갱신하는 Surgical Update를 구현.
    • 로컬 피드백 및 경합 가드: 클릭 즉시 UI 상태를 로컬 선반영하고, 비동기 응답 도착 시 designRequestSeq Map을 활용해 이전의 느린 응답은 폐기하고 최신 요청만 갱신하도록 처리.
    • 미지정 측점 자동 프리뷰: get_section_detail API 응답 시 누락 측점에 대해 _attach_default_designs를 동적으로 호출하여 토사+좌절토 기본값의 프리뷰 데이터(status="provisional")를 1회 조회 응답에 포함시켜 렌더링 지연 및 중복 호출 제거. CPU 바운드 연산을 asyncio.to_thread를 사용하여 비동기 최적화.
  • 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.mddocs/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.mddocs/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_idskind == "cross"인 횡단도만으로 한정하여, 종단도 확정 여부와 상관없이 횡단도 전수 확정 시 다음 단계 진입 허용.

[2026-07-20] ingest | B06 종단 계획선 렌더링 및 횡단 십자선 계획고 정합

  • docs/raw/plans/2026-07-20_plan_B06_profile_cross_design_elevation.mddocs/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.py 700줄 준수 분할), 비포장 대수차 5% 이하 곡선 생략 법정 예외, V/Λ자 지형 대응(_detect_main_direction), 경사 % 단위 일원화 및 3D 뷰어 다크 테마 배경 연동 명세화.
  • B06 종횡단도 정비: STA 라벨 2+0.0 표기 통일 및 잔재 횡단 자동 정리 연동 기록.
  • B07 독립 WebCAD & 상세설계 개선: openwebcad 독립 2D CAD iframe 서빙, screenScale 주석 스케일 분할, 선/폰트 UI 툴바 컨트롤, 하단 내부 접이식 QuantityPanel CAD 패널 연동 및 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.mddocs/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.pyupdate_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.mdcreateButton glass 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.mdA08_backend.md에 남아 있던 해결 완료된 과거의 warning 섹션들을 영구 제거하고 index.md 요약 및 상태를 동기화하였습니다.

[2026-07-19] lint | 위키 린트 진단 결과 후속 보완 및 status 승격

  • B06 누락 보완: B06_api.mdroad-widths API를 추가하고, 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 내 경로/종횡단 테이블 사용처 정보를 B05B06 페이지로 각각 역참조 매핑 완료하였습니다.
  • 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 뷰포트 내 최적 경로 위의 측점 가로선(stationGroup LineSegments) 렌더링 및 개별 토글 조정을 완수하였습니다. 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.mdindex.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.tsshowFooter 옵션을 파라미터화하여 비활성화 시 .app-outlet--without-footer 클래스 기반 아울렛 높이 확장을 구현하였습니다. main.tsFOOTERLESS_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 /latest API를 경유하여 새로고침 시에도 기존 폼 옵션과 기하 데이터를 완벽하게 복원하고, 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 실행 복구: setuptools 83.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_models repository 함수를 추가하고 교체 로직을 반영했습니다.

[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/confirm API 신설 및 surface_models.statusCONFIRMED 상태값을 정비했습니다. 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) 및 DB trusted_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.pytrust_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.mdconcepts/ui_templates.mdsource 메타데이터 필드가 누락되어 있음을 식별, 각각 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.mdrelated_pages 속성에 신규 프로젝트 생성 및 스키마 시드를 책임지는 [[B02_ProjRegister/B02_backend]] 링크가 빠져 있음을 감지하여 추가 정비함.
  • Lint & 개선 5차: concepts/workflow_state.mdrelated_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.mdindex.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.mddocs/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건 (계획서 → 실 코드):
    1. API: api.md는 "추정 경로 2개(surface/analyze·models)"였으나 실제 /api/projects prefix 12개 엔드포인트. 전부 실 위치 표로 기록
    2. 3D 뷰어: 계획서·dependencies "WebCAD 3D 뷰어 미구현"이었으나 실 코드에 three.js(WebGL) 뷰어 구현됨 — UI_Viewer(포인트클라우드)+UI_TerrainViewer(지형 메시), UI_Page에서 import·사용 확인. dependencies.md에 three.js 추가+"미구현" 정정
    3. 416/420줄 "구형 잔재": 잔재가 아니라 레거시 폴백(project_workflow_stages SSOT 우선, 부재 시에만 projects.status 비교, :412-427). index.md·workflow_state.md 정정
  • 추가 발견: 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.mdPOST /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.mdB08_frontend.md로 교체하고 workflow 셸의 실제 함수·locale·활성 단계 위치를 기록했다.
  • 수량 계산 본문·Repository·Router/API·Pydantic 스키마가 아직 없음을 명시했다.
  • 예정 DB 자원 quantity_itemsquantity_data_pathB08_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.mdA01_frontend.md (page_id prefix 추가)
  • 이유: 그래픽 뷰에서 frontend.md, backend.md 등 기능명이 겹칠 때 page_id로 즉시 식별 가능하게 함
  • 적용 범위: wiki/pages/A0x_이름/, wiki/pages/B0x_이름/ 하위 파일 모두 (신규 + 기존)
  • 수정 파일: wiki/pages/A01_Home/frontend.mdA01_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)
    • 소스 커버리지: A01A09 실 소스 파일 전부 wiki 반영 확인(A02A05 frontend-only는 백엔드 소스 없어 정당)
  • 발견·수정한 문제:
    1. A02_frontend.md frontmatter에 비표준 related_pages: [] 잔재 → 제거(A01 린트 때와 동일 유형)
    2. index.md 미해결 항목 섹션에 A그룹 발견 불일치 3건 누락 → "A그룹 인제스트 중 발견" 소섹션 추가(세션정책/support_requests컬럼/미사용코드)
    3. auth_rbac.md 역참조 누락(B01만 있고 A06/A07/A09 없음) → 사용처 섹션 + 계획서-실코드 불일치 소섹션 추가(규칙12)
    4. index.md A01 요약 톤 정리(다른 A페이지와 일관성, stable 명시)
  • 기록만(수정 안 함):
    • [[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/security 9개 엔드포인트(마스터 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(초기 세팅 시 얕은 스텁, 비표준 frontmatter type/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) 등 실 파일에 등록 확인
  • 발견/수정한 문제:
    1. 규칙13 위반: A03~A05 컴포넌트 섹션이 서술식 불릿 → 표 형식(함수|위치|역할)으로 전환, renderAxx 진입점 함수 누락분 추가
    2. ui_templates.md 컴포넌트 목록 부정확: createButton variant 3종→4종(danger 추가), createTag variant 5종·기본값 neutral 명시, 누락 컴포넌트 6종(createInputField/createSelectField/showLoadingOverlay/hideLoadingOverlay/showToast/createLineChart/injectBaseStyles) 표로 보완
    3. 깨진 위키링크 [[A00_Common/app_shell_framework]][[a00_app_shell_framework]]로 수정(ui_templates.md 2곳)
    4. 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 정제 (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() 로직으로 헤더/아울렛/푸터 통합 관리
    • 라우터 테이블에 A01A09, 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-viewer MIT 뷰어가 내부적으로 동적 로드하는 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.mdlongitudinal_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_SIZE 16px, MEASUREMENT_EXTENSION_LENGTH 12px)하여 겹침 현상 해결.
    • 전역 점선 패턴 스타일(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 하단 중심에 접이식 React QuantityPanel 마운트. 구조화된 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.mdDitchSpec 유니언 신구조 타입 적용 및 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.mdb07-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.ts dirty-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줄) 신규 도킹, B04 MapRender 엔진을 재사용하여 도엽 등고선·하천중심선·표고점 및 VWorld 위성 레이어 오버레이, 노선 평면 선형 정규화 투영.
  • 능선 분수령 & 백엔드 유역 산정 엔진: Whitebox fill_depressions 함몰 보정, D8 흐름 방향/누적, 도로 측구 흐름 모델(종단 고개 기준 셀 배정) 및 계획선 clip (_clip_to_plan_line), scipy griddata 10m 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/basins outlet_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.ts 7단계 표준 명칭 적용, 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.pyEARTHWORK_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.ts balloon 본문에 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_RATIO 0.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_M 20m 기본값 상향 및 전역 반폭 적용 보강.
  • B05 경로확정 측구 방향 동기화: B05_Profile_Router_Confirm.pysync_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-out 463개 파일을 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 | 최종 필터링·검증 결과 정정

  • 운영 문서 제외: .graphifyignoregraphify-out/, log.md, AGENTS.md, CLAUDE.md, ingest/를 등록해 그래프 산출물·운영 기록·감사 대장을 의미 그래프 입력에서 제외.
  • 최종 코퍼스: docs/wiki/의 의미 문서 146개, 약 39,252단어.
  • 최종 그래프: directed graph 73노드·47관계·30커뮤니티. 모든 노드의 source_filedocs/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 | 소스 읽기 기반 구현 현황 정정

  • 범위: A00A09, 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개로 분류.
  • 보강: 공개·관리 지도, 공유 자원, A01A05, 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 querygraphify 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.mdraw/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-19B05_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 집수정 조정·계류측 성토부 완료 반영

[2026-08-22] lint+graphify | B06 집수정 조정 완료 위키 점검

  • 변경 위키 5개는 frontmatter·status·page_id·100줄 제한을 통과했고 상시계획서의 완료 구간 제거와 계획 아카이브 생성을 확인했다.
  • 변경 문서만 의미 증분해 최종 directed graph 190노드·164관계·51커뮤니티, dangling 관계 0건으로 갱신했다.
  • graphify 질의에서 집수정 9키 조작 → basin_adjust API → 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_plandraft로 분리했다.
  • 원·보정 코리도 단순 중첩 금지, 최종 노견 외곽 기준 측구·절성토 배치, 보정 구간 구조물 프레임 연동과 기슭막이 이동 시 노견 확장 규칙을 기록했다.
  • 커밋 cd8d14f1inletFill 3D 수집 제외와 1e-6m 동일 표고 판정을 노견 확장 회귀의 조사 대상으로 상시계획서에 추가했다.
  • 사용자 지시에 따라 구현 완료 판정이나 2차 교차검증은 수행하지 않았으며, 기존 소스의 다른 AI 작업분은 변경하지 않았다.

[2026-08-24] lint+graphify | B05 급선회 3D 계획 점검

  • 위키 Markdown 166개를 점검해 신규 페이지 frontmatter·draft status·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_VERSION 63과 저장 형식 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.htmlGRAPH_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-only log.md의 과거 링크 23건은 기존 부채로 남아 있으며 신규 링크 오류는 없다.
  • Graphify는 38개 변경 문서를 재추출해 740노드·594관계·147커뮤니티로 갱신했다. 이번 실행은 62,279 입력·4,664 출력 토큰을 사용했다.
  • cluster-onlyGRAPH_REPORT.md, graph.json, graph.html을 동기화했고 질의에서 B08 CAD 명령 및 토적도·유역도 신규 노드를 확인했다.

[2026-08-30] plan-cleanup | 토적도·유역도 완료/후속 경계 정정

  • 상시계획서의 「B07 도면 신규」 제목을 현재 workflow에 맞는 「B08 토적도·유역도 후속」으로 정정했다.
  • 완료된 DRAWING_FORMAT 8 전환은 상시계획서에서 제거하고, 구현·검증 결과와 납품도면 표기 차이를 B08_DesignDetail/B08_drawing_masshaul_watershed에 보강했다.
  • 상시계획서에는 장 분할·축척 선택, 실노선 재확인, 표기 차이와 TABLE 직렬화 결정만 유지했다.

[2026-08-30] ingest | 체크박스 완료 항목 전수 위키화

[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-02B05_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.md 1개뿐이다.
  • 현재 워크트리에서 관련 회귀 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_표준도_조사와_합의.md 1건을 확인했다. raw/plans/ 신규 문서는 없었고 docs/raw/PLAN.md는 조회·수정하지 않았다.
  • 제원 조합별 장, B08 단위당 성분·B09 단가·B07 도면 책임, 프로젝트 설정 구획과 표→그림 편집 계약을 B07_DesignDetail/B07_standard_drawings_2026_09에 반영했다.
  • 소스 대조에서 표준도 Sheet·CAD·Figure·Edit·Router·UI 진입점과 공용 설정 구획, B08 billing_*, B09 composite_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을 동기화했다.