Files
Aislo/docs/wiki/log.md
T
2026-07-15 18:33:33 +09:00

33 KiB

Wiki Log

append-only. 형식: ## [YYYY-MM-DD] 오퍼레이션 | 제목 — 오퍼레이션은 ingest / query / lint 중 하나. 최근 항목 확인: grep "^## \[" log.md | tail -5

[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 단계 파일 링크가 누락된 것을 감지, [[B07_wf4_DesignDetail/B07_frontend]], [[B08_wf5_Quantity/B08_frontend]], [[B09_wf6_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_wf6_Estimation (실 코드 대조, 미착수 확인)

  • 대상: B09_wf6_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_wf6_Estimation/frontend]][[B09_wf6_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 | B07_wf4_DesignDetail (실 코드 대조, 미착수 확인)

  • 대상: B07_wf4_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 링크 [[B07_wf4_DesignDetail/frontend]][[B07_wf4_DesignDetail/B07_frontend]] 갱신, "계획적 미착수" 근거 명시
  • 주: B01/B03/B05/B06은 병행 작업자가 계속 진행 중이라 건드리지 않음

[2026-07-12] ingest | B04_wf1_Surface (실 코드 대조·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_wf2_Route 실 코드 기준 최신화

  • 상위 프로젝트 B05_wf2_Route/ 코드 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_wf3_ProfileCross 실 코드 기준 최신화

  • 상위 프로젝트 B06_wf3_ProfileCross/ 코드 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 | B08_wf5_Quantity 실 코드 기준 최신화

  • 상위 프로젝트 B08_wf5_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_wf1_Surface_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 상세화)

  • 대상: A07_Register_Router.py(76줄), A07_Register_Schema.py(30줄), A07_Register_UI_Auth_Page.ts(208줄), A07_Register_UI_Page.ts(142줄), A07_Register_Api_Fetch.ts(47줄), A07_Register_UI_Style.css(103줄)
  • 기존 파일 정리: A06와 동일하게 얕은 스텁 backend.md/frontend.md 삭제 → A07_backend.md/A07_frontend.md 상세 재작성
  • 출력:
    • A07_backend.md(stable) — /api/auth 3종(companies·register/request·verify), Pydantic 2종, 2단계 가입 흐름(PENDING_EMAIL→NO_COMPANY)
    • A07_frontend.md(stable) — 약관 아코디언, 2단계 폼(정보입력→OTP), API 클라이언트 3함수
  • 로케일 키 검증: A07_Register_Field_Otp(340), A07_Register_Verify(341), A07_Register_OtpSent(342), A07_Register_Marketing(336) 실 파일 등록 확인
  • ⚠️ 중요 발견: A07에 UI 파일이 2개 — A07_Register_UI_Auth_Page.ts(실사용, router.ts:30이 import)와 A07_Register_UI_Page.ts(백엔드 미연동 TODO, 단순 폼). 후자는 구버전 잔재로 판단, 두 파일 모두 renderA07Register export하나 라우터는 Auth_Page만 사용 → frontend.md에 명시하고 정리 권장
  • 발견 사항:
    • 가입은 회사 없이 완료(NO_COMPANY), 회사 생성/연결은 로그인 후 B01_Dashboard에서 진행
    • 회사검색 API(searchCompanies)는 자동완성용
    • 약관 본문은 resources/legal/*.txt에서 fetch
    • terms_version "1.0" 프론트 하드코딩
  • 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 (실 코드 구현 완료 확인)