33 KiB
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.md및concepts/ui_templates.md에source메타데이터 필드가 누락되어 있음을 식별, 각각source: A00_Common 공유 프레임워크 소스 코드및source: ui_template/ 공통 UI 소스 코드 및 스타일시트를 추가 정비함. - Lint 2차: 개별 페이지
pages/하위 마크다운 파일들의page_id메타데이터 누락 여부를 전수 린트한 결과, 100% 정상 준수하고 있음을 교차 확인. (조치 사항 없음) - Lint & 개선 3차:
concepts/dependencies.md에 외부 라이브러리NumPy가 중복으로 기재되어 있음을 발견, 하나의 통합된 행으로 병합 및 사용처(B03,B05) 역참조를 단일 셀로 통합 완료. - Lint & 개선 4차:
concepts/storage_paths.md의related_pages속성에 신규 프로젝트 생성 및 스키마 시드를 책임지는[[B02_ProjRegister/B02_backend]]링크가 빠져 있음을 감지하여 추가 정비함. - Lint & 개선 5차:
concepts/workflow_state.md의related_pages에 워크플로우 진행 상태에 연관된 B07~B09 단계 파일 링크가 누락된 것을 감지,[[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.md및index.md내에 기재된system_admin_logs 용도 미상경고 bullet 및 미해결 항목을 해결됨 상태로 최종 정정 완료.
- 미확정/연결 대기 테이블 관리 규칙 도입:
- 향후 신규 추가되거나 프로젝트 비즈니스 로직(사용처)이 불명확한 테이블을 안전하게 격리하고 관리할 수 있도록
db_schema/unconfirmed/디렉토리를 신설하고 [README.md](file:///C:/Program_coding/임도설계 및 견적자동화 프로그램 개발/docs/wiki/concepts/db_schema/unconfirmed/README.md)에 운영 가이드라인을 정의함. db_schema/overview.md에 미확정 그룹 앵커 링크([[unconfirmed/README]]) 및 격리 관리 원칙을 명문화하여 지식 시스템을 완성함.
- 향후 신규 추가되거나 프로젝트 비즈니스 로직(사용처)이 불명확한 테이블을 안전하게 격리하고 관리할 수 있도록
- Lint 조치: 신설된
unconfirmed/README.md가 위키 규칙 2번(페이지 생성 시 index.md 반영)을 충족하도록 [index.md](file:///C:/Program_coding/임도설계 및 견적자동화 프로그램 개발/docs/wiki/index.md)에 링크 및 한 줄 명세를 연동 보완함.
[2026-07-12] ingest+lint | 3회 반복 린트-개선 사이클 수행 및 위키 무결성 확보
- Ingest:
docs/raw/plans/2026-07-12_plan_add_phase4_role.md및docs/raw/verification/2026-07-12_verify_add_phase4_role.md를 기반으로, 루트 폴더의AGENTS.md에#### 역할 4: 기타 작업자 (위키 관리 / 작업 보조)가 정상 추가 및 검증 완료되었음을 확인 및 반영. - Lint & 개선 1차:
concepts/ui_templates.md전수 점검. 규칙 13(공유 자원 표 형식 준수)에 위배되는 서술식 다국어 텍스트 기능 설명 및theme.css색상/마진 변수 나열 항목을 색출하여항목 | 위치 | 역할형태의 표 포맷으로 전면 개선 완료. - Lint & 개선 2차:
A08_Support/A08_backend.md에서db_schema/logs_monitoring.md내에 실존하지 않는#support_requests세부 앵커를 가리키는 깨진 앵커 링크 2건을 색출하여[[db_schema/logs_monitoring]]으로 개선(단순화) 완료. - Lint & 개선 3차:
storage_paths.md에 기술된 물리 저장소 경로 패턴 및 세션/이메일 세부 규칙을 백엔드 설정 코드(config_system.py,common_util_storage.py)와 전수 교차 대조하여, 수치(유효시간 12h/4h, OTP 5분, 재인증 90일, 재시도 3회) 및 폴더 레이아웃이 100% 정합함을 확인. 추가 수정 없음.
[2026-07-12] ingest | B09_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건 (계획서 → 실 코드):
- API: api.md는 "추정 경로 2개(surface/analyze·models)"였으나 실제
/api/projectsprefix 12개 엔드포인트. 전부 실 위치 표로 기록 - 3D 뷰어: 계획서·dependencies "WebCAD 3D 뷰어 미구현"이었으나 실 코드에 three.js(WebGL) 뷰어 구현됨 — UI_Viewer(포인트클라우드)+UI_TerrainViewer(지형 메시), UI_Page에서 import·사용 확인. dependencies.md에 three.js 추가+"미구현" 정정
- 416/420줄 "구형 잔재": 잔재가 아니라 레거시 폴백(project_workflow_stages SSOT 우선, 부재 시에만 projects.status 비교,
:412-427). index.md·workflow_state.md 정정
- API: api.md는 "추정 경로 2개(surface/analyze·models)"였으나 실제
- 추가 발견:
update_project_status()(:76) 정의만·호출처 없음(죽은 코드, grep 확인) → 미해결 항목 추가 - 워크플로우 전이: analyze에서 start_stage(168)/complete_stage(209)/fail_stage(227,233) stage 1
- 역참조: files_surface B04 이미 등록(구 링크 정정), dependencies·workflow_state 갱신
- index.md B04 링크 갱신, 미해결 항목 정정. 엔진 서브모듈 15개는 backend.md에 표로 요약(과분할 방지)
[2026-07-12] ingest | B02_ProjRegister (backend + frontend + db 상세화)
- 대상: B02_ProjRegister_Router.py(44줄), B02_ProjRegister_Schema.py(30줄), B02_ProjRegister_Repository.py(136줄), B02_ProjRegister_UI_Page.ts(179줄), B02_ProjRegister_UI_Style.css(66줄)
- 기존 파일 정리: 구 파일명 스텁 backend.md/db.md/frontend.md(요약 수준, 비표준 frontmatter, frontend/db는 draft) 삭제 → B02_backend/B02_frontend/B02_db.md 상세 재작성(전부 stable)
- 출력:
B02_backend.md—POST /api/b02/project, create_project 트랜잭션(projects INSERT+initialize_project_stages 7단계 시드+system_audit_logs PROJECT_CREATE+저장소 초기화), Pydantic 2종, 저장소 경로 이탈 방지B02_frontend.md— 등록 폼(2열 그리드, road_type select 4종), fetch 직접 호출, 성공 시 CURRENT_PROJECT_ID_KEY 저장 후 B03 이동B02_db.md— 쓰는 테이블 3종(projects/project_workflow_stages/system_audit_logs) 용도+링크만(규칙11), 저장소 규칙
- 로케일 키 검증: B02_Proj_Title(487), B02_Proj_Field_RoadType(499), B02_Proj_RoadType_Stream(503), B02_Proj_Success(510) 등 실 파일 등록 확인
- 역참조 갱신(규칙12): logs_monitoring.md system_audit_logs 섹션 제목 "B01 사용"→"사용처(B01,B02)"로 일반화 + B02 PROJECT_CREATE 행 추가. projects.md/workflow_state.md엔 B02 이미 등록됨
- 발견 사항:
- 계획서엔 "7단계 시드가 마이그레이션 Phase1 과제"였으나 실 코드에 이미 구현됨(규칙6 실코드 채택)
- projects INSERT 시 status 'NEW', crs_epsg 5178 고정
- 프론트가 fetch 직접 호출(A08처럼 별도 API 클라이언트 없음)
- index.md B02 링크
[[B02_ProjRegister/backend]]→[[B02_ProjRegister/B02_backend]]갱신 - 주: B01은 병행 작업자가 진행 중이라 건드리지 않음(A07_backend 링크 등 B01발 자동 갱신은 반영됨)
[2026-07-12] query | B01_Dashboard 실 코드 기준 최신화
- 상위 프로젝트
B01_Dashboard/코드 9개를 읽기 전용으로 대조했다. - 기존
frontend.md,backend.md를 규칙에 맞는B01_frontend.md,B01_backend.md로 교체했다. - API·DB·의존성을
B01_api.md,B01_db.md,B01_dependencies.md로 분리하고 코드 위치를 표로 기록했다. - 실제 감사 테이블이
system_audit_logs임을 반영하고 workflow 조회의 미구현 표기를 바로잡았다. - 관련 concepts와
index.md를 갱신했으며, 검증보고서가 없어 B01 상태는draft로 유지했다. - 기술부채로 UI Page 739줄과 Repository 790줄을 기록했다.
[2026-07-12] query | B03_FileInput 실 코드 기준 최신화
- 상위 프로젝트
B03_FileInput/코드 11개를 읽기 전용으로 대조했다. - 기존 frontend/backend 문서를
B03_frontend.md,B03_backend.md로 교체했다. - API·DB·의존성을
B03_api.md,B03_db.md,B03_dependencies.md로 분리했다. - 일반·청크 업로드, LAS/TIF/PRJ/TFW 메타데이터 분석, WF0/WF1 상태 전이, 이메일 알림을 기록했다.
dependencies,db_schema/files_surface,index.md를 실제 코드 기준으로 갱신했다.- 검증보고서가 없어 B03 페이지 상태는
draft로 유지했다. - 기술부채로 UI Page 695줄과 UI Style 376줄을 기록했다.
[2026-07-12] query | B05_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.md를B08_frontend.md로 교체하고 workflow 셸의 실제 함수·locale·활성 단계 위치를 기록했다. - 수량 계산 본문·Repository·Router/API·Pydantic 스키마가 아직 없음을 명시했다.
- 예정 DB 자원
quantity_items와quantity_data_path를B08_db.md및 concepts 링크로 연결했다. index.md를 실제 구현 상태에 맞게 갱신했다.
[2026-07-12] lint | 전체 위키 구조·상태·공유 개념 정리
- A/B 페이지의 누락된
related_pages를 보완하고 concepts의 관련 페이지 역참조를 추가했다. - 검증보고서가 없는 stable 페이지를 draft로 조정해 status 규칙을 일관화했다.
- B05/B06 뷰어 상태, B03 구현 상태, workflow-state 실제 경로, legacy polling 문구를 갱신했다.
- 100줄 초과 문서인 A01과 A00 공통 개념을 하위 문서로 분리했다.
- index의 페이지 상태 표기를 페이지 frontmatter와 일치시켰다.
- 코드 파일은 수정하지 않았으며
raw/는 변경하지 않았다.
[2026-07-12] lint | 전체 위키 구조·상태·공유 개념 정리
- A/B 페이지의 누락된
related_pages를 보완하고 concepts의 관련 페이지 역참조를 추가했다. - 검증보고서가 없는 stable 페이지를 draft로 조정해 status 규칙을 일관화했다.
- B05/B06 뷰어 상태, B03 구현 상태, workflow-state 실제 경로, legacy polling 문구를 갱신했다.
- index의 페이지 상태 표기를 페이지 frontmatter와 일치시켰다.
- 코드 파일은 수정하지 않았으며
raw/는 변경하지 않았다.
[2026-07-12] lint | 위키 시스템 초기 세팅
- raw/, wiki/, output/ 폴더 구조 생성
- docs/CLAUDE.md에 Wiki Schema(위키 운영 규칙) 추가
- 하위 CLAUDE.md 3개 생성 (raw/, wiki/, output/)
- wiki/index.md, wiki/log.md 초기화 (콘텐츠 없음, 카테고리 헤더만)
- 아직 raw/에 원본 없음 → 다음 단계는 첫 ingest 대기
[2026-07-12] ingest | guidelines/plans 7건 일괄 반영
- 대상: raw/guidelines/{structure,db_schema,backend,frontend,agent,migration_plan}.md, raw/plans/plan_workflow_state_management.md (7건). raw/guidelines/design.md는 Aislo와 무관한 "Wiza" 스타일가이드로 판단해 ingest 제외.
- concepts 신규 8건: db_schema/{overview,users_auth,logs_monitoring,projects,files_surface,route_profile,structure_output}, storage_paths, auth_rbac, common_util, dependencies, api_common, schema_common, workflow_state (총 14파일, db_schema는 34개 테이블을 9그룹→7파일+개요로 분할, 전부 100줄 이내)
- pages 신규: B01(backend/frontend), B02(frontend/db), B03(backend/frontend/db), B04(backend/frontend/db/api), B05(backend/frontend/db/api), B06(backend/frontend/db), B07~B09(frontend만, 셸 상태)
- 전부 status: stable (검증보고서 없음, 계획서·행동지침만 반영됨)
- 발견한 모순: 테이블 총 개수(db_schema.md 34 vs agent.md 18/23) — 미해결, db_schema/overview에 기록
- 발견한 이슈: B03/B04 WF1 상태 이중 세팅, projects.status 단일문자열 한계 → workflow_state로 별도 정리
- index.md 전체 갱신 (카테고리별 요약 + 미해결 항목 섹션 추가)
[2026-07-12] query+lint | 실 DB/실 코드 대조 검증 (읽기 전용)
.env자격증명으로 aislo_db에 read-only 접속(SHOW TABLES,DESCRIBE) — DB는 수정하지 않음- 테이블 개수 모순 해결: 실측 34개 = db_schema.md와 일치. agent.md(18/23)는 오기로 확정 → ../concepts/db_schema/overview
- raw에 없던 실 테이블 2개 발견:
project_workflow_stages(구현완료 확인) /system_admin_logs(용도 미상, 임의 해석 보류 — 사용자 확인 대기) common_util_workflow_state.py, B01~B06 라우터/리포지토리 실 코드 확인 → ../concepts/workflow_state status: stable→stable로 갱신 (계획서 설계가 이미 전면 구현됨을 확인)- B02_ProjRegister 백엔드(raw엔 없었음) 실 코드 확인 후 backend.md 신규 작성, status stable
- A01~A09(로그인 전 페이지) 카테고리 신규 추가, 실 코드 기반 15개 파일 작성 (전부 status stable, raw 문서 근거 부족은 각주로 표시)
- B04_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.md→A01_frontend.md(page_id prefix 추가) - 이유: 그래픽 뷰에서
frontend.md,backend.md등 기능명이 겹칠 때 page_id로 즉시 식별 가능하게 함 - 적용 범위: wiki/pages/A0x_이름/, wiki/pages/B0x_이름/ 하위 파일 모두 (신규 + 기존)
- 수정 파일:
wiki/pages/A01_Home/frontend.md→A01_frontend.md, index.md 링크[[A01_Home/frontend]]→[[A01_Home/A01_frontend]] - docs/CLAUDE.md 규칙 5번, wiki/CLAUDE.md 작성규칙 수정 — 파일명 규칙 명시
- 향후 ingest 시 신규 파일 생성할 때마다 page_id prefix 붙임
[2026-07-12] lint | A그룹(A01~A09) 전체 검증 및 정합성 점검
- 범위: A01~A09 wiki 페이지 13개 + 참조 concept(ui_templates/a00_app_shell_framework/auth_rbac/common_util/logs_monitoring 등) + index.md
- 검증 통과 항목:
- 파일 100줄 제한: 전 파일 통과(최대 A01 76줄), 파일명 규칙(page_id prefix) 전부 준수
- 위키링크 유효성: A그룹이 거는 링크 대상 전부 실존 확인(깨진 링크 0)
- 소스 커버리지: A01
A09 실 소스 파일 전부 wiki 반영 확인(A02A05 frontend-only는 백엔드 소스 없어 정당)
- 발견·수정한 문제:
- A02_frontend.md frontmatter에 비표준
related_pages: []잔재 → 제거(A01 린트 때와 동일 유형) - index.md 미해결 항목 섹션에 A그룹 발견 불일치 3건 누락 → "A그룹 인제스트 중 발견" 소섹션 추가(세션정책/support_requests컬럼/미사용코드)
- auth_rbac.md 역참조 누락(B01만 있고 A06/A07/A09 없음) → 사용처 섹션 + 계획서-실코드 불일치 소섹션 추가(규칙12)
- index.md A01 요약 톤 정리(다른 A페이지와 일관성, stable 명시)
- A02_frontend.md frontmatter에 비표준
- 기록만(수정 안 함):
[[B01_Dashboard/backend]]링크는 구 파일명(backend.md) 참조하나 파일 실존→깨진 링크 아님. B01 파일명 규칙 마이그레이션은 B그룹 작업 시 처리- common_util.md 사용처 "전 페이지/인증 관련"로 A그룹 포괄됨(세부 명시는 선택사항, 링크 유효)
- 결론: A그룹 인제스트 정합성 확보. 누적 불일치 3건은 index.md 미해결 항목에 집약(코드 수정은 사용자가 나중에)
[2026-07-12] ingest | A09_Security (backend + frontend 상세화)
- 대상: A09_Security_Router.py(123줄), A09_Security_Schema.py(25줄), A09_Security_UI_Page.ts(30줄), A09_Security_Terms.ts(16줄), A09_Security_Api_Fetch.ts(61줄), A09_Security_UI_Style.css(14줄)
- 기존 파일 정리: 얕은 스텁 backend.md/frontend.md 삭제 → A09_backend.md/A09_frontend.md 상세 재작성
- 출력:
A09_backend.md(stable) —/api/security9개 엔드포인트(마스터 5종 require_master, 시스템관리자 3종 require_system_admin, 활동로그 1종 verify_session), Pydantic 3종, psutil 리소스 계측A09_frontend.md(stable) — 약관 열람 페이지(3섹션), Terms 데이터 표, 미사용 API 클라이언트 8함수 표
- 로케일 키 검증: A09_Security_Title(375), A09_Security_Version(376), A09_Security_Policy(379) 실 파일 등록 확인
- ⚠️ 중요 발견 1 (프론트/백엔드 기능 불일치): UI_Page.ts는 약관 텍스트 열람만, Api_Fetch.ts(마스터/관리자 8함수)는 어디서도 import 안 됨(grep 확인). 백엔드 API는 완비, 프론트 연동 미완 → 양쪽 파일에 명시
- ⚠️ 중요 발견 2 (약관-실코드 불일치): Terms.ts security 텍스트 "세션 12h/4h 만료"는 auth_rbac 계획서 기준, A06 실코드(auth_expires_at 3개월)와 다름. A06 불일치와 동일 뿌리 → 코드수정은 나중에(사용자 지시)
- 발견 사항:
- 스텁엔 프론트가 "약관 동의 페이지"로 기술됐으나 실제론 동의 체크 없는 단순 열람(동의 흐름은 A07 회원가입에 있음)
- 백엔드는 B01_Dashboard 관리자 기능과 역할 중복 가능성
- activity_logs INSERT: user_id/action_type/resource_id/status/details
- index.md A09 링크
[[A09_Security/backend]]→[[A09_Security/A09_backend]]갱신
[2026-07-12] ingest | A08_Support (backend + frontend 상세화)
- 대상: A08_Support_Router.py(68줄), A08_Support_Schema.py(13줄), A08_Support_UI_Page.ts(217줄), A08_Support_UI_Style.css(64줄)
- 기존 파일 정리: 얕은 스텁 backend.md/frontend.md 삭제 → A08_backend.md/A08_frontend.md 상세 재작성
- 출력:
A08_backend.md(stable) —POST /api/a08/support단일 엔드포인트, get_optional_session(비로그인 허용), support_requests INSERT + 관리자 알림 메일A08_frontend.md(stable) — 문의 폼(textarea 자체 구현 createTextAreaField), 세션 자동 채움(fetchSessionUser), fetch 직접 호출(Api_Fetch 파일 없음)
- 로케일 키 검증: A08_Support_Title(348), A08_Support_Field_Phone(357), A08_Support_Field_Message(361), A08_Support_Success(367) 실 파일 등록 확인
- ⚠️ DB 스키마 불일치 발견:
db_schema/logs_monitoring의 support_requests 컬럼은 계획서 기준(user_id/title/priority/status)인데 실 코드 INSERT는 company_id/company_name/user_name/user_email/user_phone/subject/message → 컬럼명 다름. logs_monitoring.md에 양쪽 병기 + 사용처에 A08 추가, 실 DB 대조 필요(규칙6)로 표시 - 발견 사항:
- 비로그인도 문의 가능(get_optional_session), 로그인 시 회사 정보 자동 연결
- textarea는 공통 컴포넌트에 없어 자체 구현
- 프론트가 fetch를 직접 호출(별도 API 클라이언트 파일 없음)
- index.md A08 링크
[[A08_Support/backend]]→[[A08_Support/A08_backend]]갱신
[2026-07-12] ingest | A07_Register (backend + frontend 상세화)
- 대상: 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/auth3종(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, 단순 폼). 후자는 구버전 잔재로 판단, 두 파일 모두renderA07Registerexport하나 라우터는 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(초기 세팅 시 얕은 스텁, 비표준 frontmattertype/source/related_pages포함) → 삭제하고 규칙에 맞는A06_backend.md/A06_frontend.md로 상세 재작성 - 출력:
A06_backend.md(stable) —/api/auth엔드포인트 5종 표(login/request·verify·session·logout·password), 내부헬퍼 3종, Pydantic 3종, 로그인 흐름, 보안정책A06_frontend.md(stable) — 2단계 폼(비번→OTP 전환), API 클라이언트 5함수, 로케일 키, 이벤트 핸들러
- 로케일 키 검증: A06_Login_Title(124), A06_Login_Field_Otp(288), A06_Login_Verify(290), A06_Login_OtpSent(291) 등 실 파일 등록 확인
- 발견 사항:
- OTP는 "신규 브라우저 OR 주기적 재인증(EMAIL_REVERIFY_DAYS 경과)" 조건에서만 요구 (매 로그인 아님)
_finish_login에서auth_expires_at = NOW() + 3개월갱신, 브라우저 신뢰 등록- 5회 연속 실패 시 ADMIN_EMAIL로 보안 경고 메일
fetchSession/fetchSessionUser/logout은 app_shell과 공유
- ⚠️ 불일치 기록: auth_rbac는 계획서 기준(OTP 5분·재시도 3회·세션 4h/12h·15분 잠금)인데 실 코드와 다름 → 규칙6에 따라 auth_rbac 갱신 대상으로 A06_backend.md에 명시(별도 처리 필요)
- index.md A06 링크
[[A06_Login/backend]]→[[A06_Login/A06_backend]]갱신
[2026-07-12] lint | A03~A05 인제스트 재점검
- 대상: A03/A04/A05 frontend.md + concepts/ui_templates.md
- 줄번호 대조: 실 코드와 전부 일치 확인 (A03 buildHero 23-41 등, A04 buildTimeline 70-106, A05 onClick 26-28 등)
- 로케일 키 검증: A03_CompDetail_Contact_Email(238), A04_NewsHistory_Empty(249), A05_EduDetail_Cta(273) 등 실 파일에 등록 확인
- 발견/수정한 문제:
- 규칙13 위반: A03~A05 컴포넌트 섹션이 서술식 불릿 → 표 형식(함수|위치|역할)으로 전환, renderAxx 진입점 함수 누락분 추가
- ui_templates.md 컴포넌트 목록 부정확: createButton variant 3종→4종(danger 추가), createTag variant 5종·기본값 neutral 명시, 누락 컴포넌트 6종(createInputField/createSelectField/showLoadingOverlay/hideLoadingOverlay/showToast/createLineChart/injectBaseStyles) 표로 보완
- 깨진 위키링크
[[A00_Common/app_shell_framework]]→[[a00_app_shell_framework]]로 수정(ui_templates.md 2곳) - ui_templates.md 사용처 역참조에 A03/A04/A05 추가
- ui_templates.md 91줄(100줄 제한 이내 유지)
[2026-07-12] ingest | A05_EduDetail
- 대상: A05_EduDetail_UI_Page.ts (106줄), A05_EduDetail_UI_Style.css (87줄)
- 출력:
wiki/pages/A05_EduDetail/A05_frontend.md(stable) - 발견 사항:
- Hero + 3개 교육 과정 카드그리드 + CTA 버튼 레이아웃
- createButton, createCard 공통 컴포넌트 사용
onA05_EduDetail_Inquiry_Click()→ A08_SUPPORT 라우트로 이동- theme.css 변수 엄격 준수
- index.md 업데이트 (A05 분리)
[2026-07-12] ingest | A04_NewsHistory
- 대상: A04_NewsHistory_UI_Page.ts (117줄), A04_NewsHistory_UI_Style.css (87줄)
- 출력:
wiki/pages/A04_NewsHistory/A04_frontend.md(stable) - 발견 사항:
- MOCK_HISTORY 데이터: feature/fix/notice 3종 태그 + 날짜
- KIND_META 맵핑으로 variant 자동 결정
- createTag 공통 컴포넌트 사용
- 빈 상태(empty) 처리 구현
- 백엔드 API 미구현: GET /api/a04/history (코드 주석에 언급)
- index.md 업데이트 (A04 분리)
[2026-07-12] ingest | A03_CompDetail
- 대상: A03_CompDetail_UI_Page.ts (114줄), A03_CompDetail_UI_Style.css (100줄)
- 출력:
wiki/pages/A03_CompDetail/A03_frontend.md(stable) - 발견 사항:
- A02와 동일 패턴(Hero + 섹션 + 3열 카드그리드)
- createCard 공통 컴포넌트 사용
- 3개 가치 카드 (Value1~3) + 연락처 이메일
- theme.css 변수 엄격 준수
- index.md 업데이트 (A03 분리)
[2026-07-12] lint | A01_Home 페이지 검사 및 수정
- 대상:
wiki/pages/A01_Home/A01_frontend.md - 발견 사항:
- frontmatter에 비표준 필드
type: page-frontend존재 → 제거 (규칙에는 status/page_id/last_updated만) - related_pages 배열 형식 오류 → 제거 (위키링크는 본문에만 사용)
- 의존성 링크
[[ui_template_locale]],[[ui_template_elements]]오류 → concepts 페이지 부재
- frontmatter에 비표준 필드
- 해결:
- frontmatter 정제 (status/page_id/last_updated만 유지)
- 새 concepts 페이지
ui_templates.md신규 생성 (locale + elements + theme 통합, 사용처 역참조 포함) - 의존성 섹션 링크 수정: ui_templates로 통합
- index.md에 ui_templates 추가
- status: stable 유지 (실 코드 반영 완료)
[2026-07-12] ingest | A02_ProgDetail + A00_Common Framework
- 대상: A02_ProgDetail_UI_Page.ts (146줄), A02_ProgDetail_UI_Style.css (127줄) + A00_Common (app_shell.ts 284줄, b_page_scaffold.ts 163줄, router.ts 158줄)
- 출력:
wiki/pages/A02_ProgDetail/A02_frontend.md(신규) — 컴포넌트 분석 + 로케일 키 + CSS 클래스 + 이벤트wiki/concepts/a00_app_shell_framework.md(신규) — 공유 프레임워크(전체 페이지의 헤더·라우터·가드)
- 발견 사항:
- A02는 단순 정적 페이지(Hero + Workflow 배지 + Tech 카드)
- A00_Common는 전체 앱의 스켈레톤—모든 페이지가 의존하는 공유 레이어
renderShell()+injectShellStyles()로직으로 헤더/아울렛/푸터 통합 관리- 라우터 테이블에 A01
A09, B01B11 (22개 라우트) 모두 등록됨 (B10_Payment, B11_Status 신규 발견) - 워크플로우 라우트(B02~B11)에 대한 추가 인증 가드 구현 (company_id 검증)
- index.md 업데이트 (A02 분리, concepts에 a00_app_shell_framework 추가)
- status: both stable (실 코드 구현 완료 확인)