Commit Graph
84 Commits
Author SHA1 Message Date
eomsangdon 507a7cfc43 auto: 2026-09-06 20:03 (ESD_LAPTOP) 2026-09-06 20:03:36 +09:00
eomsangdon 8dab657930 auto: 2026-09-06 18:14 (ESD_LAPTOP) 2026-09-06 18:14:35 +09:00
eomsangdon 9743416301 auto: 2026-09-06 18:00 (ESD_LAPTOP) 2026-09-06 18:00:40 +09:00
eomsangdon a22886c4c9 auto: 2026-09-06 17:22 (ESD_LAPTOP) 2026-09-06 17:22:50 +09:00
eomsangdon d69d4eb6ec auto: 2026-09-06 17:07 (ESD_LAPTOP) 2026-09-06 17:07:07 +09:00
eomsangdonandClaude Opus 5 43f6325d30 knowledge(교본): 임도 교본 2~6장 수식·표 정리
산림과임업기술(임도) 2장 임도구조 · 3장 임도계획 · 4장 노선측량 ·
5장 설계 · 6장 시공에서 한 줄로 뭉개져 있던 공식을 LaTeX 수식 블록으로
분리하고 기호 설명을 목록화. 본문 값·출처 불변.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-06 16:55:41 +09:00
eomsangdon 724adf25cd Merge remote-tracking branch 'origin/sub_laptop_1' into main_laptop_1 2026-09-06 16:20:55 +09:00
eomsangdonandClaude Opus 5 6fe7004946 knowledge(교본): 산림과임업기술(임도) 그림 파일명 의미화
페이지 번호식 이름(`..._p101_1.png`)을 내용이 드러나는 이름으로 바꿨다.
예: `노선측량_그림5-2-27_중심선과영선의위치비교.png`

- 그림 120개 이름 변경(122개 신규 등록), 본문 md 12개의 링크를 새 이름으로.
- 추출 파이프라인(`_pipeline/pdf2md.py`)과 QC 리포트 갱신.

확인: 그림 127개 · md 이미지 링크 127개 · 깨진 링크 0.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-06 16:17:10 +09:00
eomsangdonandClaude Opus 5 d0d3f2a311 feat(B07): 자리표 마우스 크기조절·기본 도각 칸 정렬·도면명 미리보기
- 칸이 있는 글자와 그림에 모서리 그립 추가, 모서리를 끌어 칸 크기를 바꾸는 조작 신설 (다른 도면 요소에도 동일 적용)
- 기본 도각(00_template_A1)의 글자 24개에 표제란 칸을 계산해 부여 — 칸 기준 가로·세로 가운데 정렬
- 도각 편집 시 도면명·도면번호도 보던 도면 값으로 미리보기 제공
- 복제 시 미리보기 값 유지 (그립 편집 후 자리표가 토큰으로 되돌아가던 문제)
- CAD index.html 을 캐시하지 않도록 처리 — 빌드 후에도 옛 화면이 남던 문제 해소

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-06 15:52:36 +09:00
eomsangdon 54478394f4 auto: 2026-09-06 11:28 (ESD_LAPTOP) 2026-09-06 11:28:25 +09:00
eomsangdonandClaude Opus 5 698f8f0505 knowledge(임도): 유토곡선 토량배분 기술문서 신설 + 미결 20·21 등재
실무 유토곡선 원본 6건(.MASS · EARTH.DAT) 파싱 관측 수록 — 최종 누가토량 +49~+324㎥,
0선 교차 3~17회, 장비 한계거리 전 건 무대 20.0 / 도자 60.0 m. 평형선 자동 선정·극값
무시 임계·balloon 표기 관행은 현행 근거 공백임을 명시하고 미결 20 으로 등재. 도자
한계거리 60m(실무) vs 70m(현행 구현) 채택은 미결 21.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-03 07:53:32 +09:00
eomsangdonandClaude Opus 5 3d0215f8d8 feat(B07): 표지에 회사 로고 자리 신설
- `00_template_cover.json` 에 Image 자리 추가 — `{{회사로고}}`,
  x 57.40~137.40 · y 64.06~104.06 (폭 80 · 높이 40)
- 자리는 오른쪽 아래 `{{시행청}}`(기준점 784.35, 84.06)과 좌우로 마주 보게 잡음.
  왼쪽 여백은 `{{연도기번}}`(x 57.4)과 맞추고 세로는 시행청 글자줄에 맞춤
- 값 공급은 도각과 같은 통로 — `build_cover_drawing` 이 이미 `_fill_placeholders` 를
  태우므로 로고를 못 구하면 종전대로 엔티티째 빠짐

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-02 19:19:57 +09:00
eomsangdon 94883733d5 auto: 2026-09-02 19:08 (EOMSANGDON-HOME) 2026-09-02 19:08:55 +09:00
eomsangdonandClaude Opus 5 b1593bce83 feat(B07): 표제란에 로고·서명 자리 신설 + 시행청·담당자 DB 확장
사용자 지시(2026-09-02) — 로고·서명을 임의로 만들어 표제란에 넣고, 위치·크기는
도각을 고치면 따라오게 하며, 시행청·과업책임자 등은 DB를 넓혀 채울 것.

도각(표제란)
- `00_template_A1.json` 에 그림 자리 2개 추가 — 회사 로고는 용역회사 칸 왼쪽
  (316~348 × 20~36mm), 설계자 서명은 설계 칸 아래(638~680 × 17.5~25.5mm).
  자리·크기가 **템플릿 좌표로만** 정해지므로 도각을 고치면 그대로 따라옴.
- `_fill_placeholders` 가 그림 자리(`imageData`)의 `{{키}}` 도 채움. 값을 못 구하면
  빈 문자열을 남기지 않고 **엔티티째 제거** — 빈 값은 CAD 가 깨진 그림으로 그림.
- `_transform_entity` 가 `points` 배열도 옮김. 그림(로고·서명)과 띠(Hatch)가 이 키를
  쓰는데 여태 변환 대상이 아니라 도각을 옮기면 제자리에 남았음.

DB (`011_title_block.sql`, 전부 ADD COLUMN·NULL 허용)
- `projects` — `client_org`(시행청), `pm_user_id`·`field_lead_user_id`·`designer_user_id`
- `companies.logo_path` · `users.signature_path` — 그림은 파일로 두고 경로만 담음
  (기존 `storage_path`·`input_files` 와 같은 방식)
- FK 는 걸지 않음 — 사유를 파일 머리말에 적음(소프트 삭제·LEFT JOIN·4환경 공유).

배선
- `_title_block_fields` 가 시행청·과업책임자·분야별책임자·설계자(배정 없으면 소유자)와
  로고·서명 data URL 까지 실어 보냄.
- `read_stored_asset()` 신설 — `storage/` 기준 상대 경로의 **파일**을 읽음.
  `resolve_stored_project_path()` 는 폴더를 만드는 프로젝트 루트용이라 파일에 못 씀.

CAD 결함 1건 (이번 작업에서 드러남)
- `screenCanvas.drawController.drawImage` 가 `(width, height)` 를 좌표처럼 변환해
  화면 오프셋과 y 뒤집기가 섞여 들어갔음 — 그림이 제 자리를 벗어나고 비율이 무너짐.
  크기는 배율만 곱하고 자리는 세계 중심으로 잡도록 고침(SVG 컨트롤러와 같은 방식).
- 검증 창구 `__aisloCad.screen(x, y)` 추가 — 세계→화면 좌표. 그림·글자가 제 자리에
  그려졌는지 픽셀로 판정할 때 씀.

검증: `pytest tmp/tests/ -q` 135 passed / 0 failed(그림 자리 3건 신규),
`npx vitest run` 87 passed / 0 failed, `check-types`·`build` 통과.
화면 실측(5174, wdw): 표준도 API Text 24개 `{{` 잔존 0, Image 2개가 도각 좌표
(316,20)-(348,36)·(638,18)-(680,26)에 실림. 캔버스 픽셀 판정 — 두 자리 모두 배경색
외 픽셀이 그려짐(로고 88px·서명 64px), 로고 파랑(20,70,140)이 슬롯 안에서만 검출.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-02 08:35:25 +09:00
eomsangdonandClaude Opus 5 4cb9b15939 style: 저장소 전체 포맷터 일괄 적용 (prettier·biome·ruff)
파일마다 포맷 폭이 달라(≈80 대 100) 한 줄만 고쳐도 포맷터가 무관한 줄을 대량
재포맷했음. 사용자 지시로 전체를 한 번에 맞춤. 코드 동작 변경 없음 — 포맷만.

- 프론트엔드 `.ts/.css/.html` → 저장소 prettier (`.prettierrc`, printWidth 100)
- `B07_DesignDetail/openwebcad/**` → 자체 biome (tab 들여쓰기·single quote·lineWidth 100).
  `biome format` 만 사용 — `biome lint --write` 는 포맷 아닌 코드 수정까지 하므로 제외
- 파이썬 → `ruff format` (엔진 코드는 이미 정합, resources·scratch 스크립트 24개만 변경)

두 포맷터가 서로 되돌리지 않도록 `.prettierignore` 신규 — openwebcad 와 빌드·산출물
폴더를 prettier 대상에서 뺌. `.prettierrc` 에 `endOfLine: "auto"` 추가 — 기본값 `lf` 가
`core.autocrlf=true` 로 받은 CRLF 파일을 매번 전부 다시 써서 `--list-different` 가
실제 포맷 차이를 가리고 있었음.

검증: `tsc --noEmit` 통과(루트·openwebcad 둘 다), pytest 349 passed / 17 skipped /
0 failed, CAD vitest 87건 중 81 passed / 6 failed(laptop-sub 기준선과 동일, 회귀 없음).
포맷터 재실행 시 prettier·biome 모두 변경 0건.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-02 07:08:24 +09:00
eomsangdonandClaude Opus 5 44fbe480df feat(B07): 표지를 A1 전면 템플릿으로 만들고 도면 목록에 붙인다
표지는 DRAWING_GROUPS에 kind 없이 라벨만 있어 화면에서 열 수 없었다. 실무 설계도면
원본(울진 소광리, A3) 1쪽의 잉크 bbox를 pymupdf로 mm 실측해 A1로 2배 환산했다.
원본에 도각이 없다 — 좌우 테두리 없이 상·하 굵은 가로선 두 줄뿐이라, 사용자가 고른
"도각 없는 전면 디자인"이 실무 그대로였다.

- resources/template_2dDrawing/00_template_cover.json 신설. 엔티티 14개(재단 표식
  Point 4·띠 Hatch 3·글자 Text 7), bbox가 정확히 A1(840x594). 좌표계는 00_template_A1
  과 같아 도각 도면과 나란히 놓인다.
- 굵은 띠는 solid Hatch로 냈다. lineWidth는 캔버스 화면 픽셀이라(screenCanvas
  .drawController.ts:261) 확대해도 두꺼워지지 않아 실치수를 못 낸다.
- 글자 크기는 잉크 높이가 아니라 폭으로 잡았다. 원본은 장평이 좁은 CAD 글꼴이라
  높이를 그대로 옮기면 위치값이 종이 밖으로 44mm 넘치고 라벨과 겹친다.
- B07_DesignDetail_Engine_Cad_Cover.py 신설. frame_entities()를 쓰지 않는다 —
  _transform_entity()가 Hatch의 points 배열을 못 옮기고, 표지는 A1 실치수 고정이라
  애초에 변환이 필요 없다. 공용 함수는 건드리지 않았다.
- kind "cover" 배선: Schema Literal, Api_Fetch, UI_Page DRAWING_GROUPS,
  Router_Support 목록·빌드 분기·확정 캐시 매핑.

값(공사명·위치·사업량·시행청)은 아직 빈칸이다 — 메타 배선은 다음 판.

검증: tmp/tests/test_cover_template.py 6건 통과(A1 치수·Hatch 두께·잠금 레이어·
치환·lru_cache 오염 없음). 공용 브라우저에서 표지를 열어 엔티티 14개 전부
b08-frame, Ctrl+A 선택 0 확인.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-31 19:49:47 +09:00
eomsangdon 3f98670637 merge: AutoCAD 리본 기능 조사자료 브랜치를 합친다 2026-08-31 17:26:12 +09:00
eomsangdon 66d24fdffa merge: main의 실무문서(2026 임도 용화)를 받아들이고 코드는 최신을 유지한다
# Conflicts:
#	B07_DesignDetail/openwebcad/src/App.css
#	B07_DesignDetail/openwebcad/src/commands/command.types.ts
#	B07_DesignDetail/openwebcad/src/commands/commands.annotate.ts
#	B07_DesignDetail/openwebcad/src/commands/commands.draw.ts
#	B07_DesignDetail/openwebcad/src/commands/commands.file.ts
#	B07_DesignDetail/openwebcad/src/commands/commands.insert.ts
#	B07_DesignDetail/openwebcad/src/commands/commands.modify.ts
#	B07_DesignDetail/openwebcad/src/commands/registry.ts
#	B07_DesignDetail/openwebcad/src/commands/run-command.ts
#	B07_DesignDetail/openwebcad/src/components/CommandLine.tsx
#	B07_DesignDetail/openwebcad/src/components/InspectorPanel.tsx
#	B07_DesignDetail/openwebcad/src/components/RibbonWidgets.tsx
#	B07_DesignDetail/openwebcad/src/components/StatusBar.tsx
#	B07_DesignDetail/openwebcad/src/components/Toolbar.tsx
#	B07_DesignDetail/openwebcad/src/inputController/input-controller.ts
#	B07_DesignDetail/openwebcad/src/main.tsx
#	B07_DesignDetail/openwebcad/src/ribbon/Ribbon.tsx
#	B07_DesignDetail/openwebcad/src/ribbon/ribbon.config.ts
#	B07_DesignDetail/openwebcad/src/tools/factories/sequence-tool.ts
2026-08-31 17:07:38 +09:00
eomsangdon b012cd8003 auto: 2026-08-31 16:45 (EOMSANGDON-HOME) 2026-08-31 16:45:43 +09:00
eomsangdonandClaude Opus 5 6a2c5d9f7b feat(B07): 기본 도면층 이름을 국문으로 바꾸고 방위표 템플릿을 정리한다
도면층 17종을 프로젝트가 이미 쓰는 용어로 맞춘다 — 원지반·계획선·구조물·
암 경계선·수량 산출표·도각·등고선·계류·노선·배수유역·유역 제원·표제·
그래프 격자·측점표·유토곡선·그래프 축·운반 구간. CAD 앱의 'Default'와
'New layer'도 기본·새 도면층으로 바꾼다. layerId는 그대로다.

방위표 템플릿(00_template_compass.json)에 원본 DXF의 표제란 글자 4개가
도면 반대편에 남아 있었다. 이 때문에 템플릿 bbox가 183x262mm로 부풀어,
긴 변을 14mm에 맞추는 compass_entities()가 방위표를 1.1x1.8mm로 줄여
놓고 있었다. 글자를 지우니 bbox 20.5x32.9mm, 방위표가 8.7x14mm로 나온다.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-31 15:07:14 +09:00
eomsangdon 8ae61af7dd auto: 2026-08-31 14:38 (ESD_LAPTOP) 2026-08-31 14:38:53 +09:00
eomsangdonandClaude Opus 5 a1dc0ee235 feat(B07): 토적도(유토곡선)·유역도(수리집수면적유역도)를 도면으로 낸다
납품 도면 2장을 B07 도면 목록에 새로 붙였다. 계산은 하지 않는다 —
유토곡선은 B06 확정 시 저장한 산출물(longitudinal_sections.data.mass_haul)을,
유역도는 B04 세부유역 GeoJSON과 도엽 등고선·세류선을 읽어 좌표만 종이 mm로 옮긴다.

- 도면 종류 확장: kind에 mass_haul·watershed 추가(Schema·Api_Fetch·openwebcad
  App.types), 12분류 라벨에 연결, 목록에 단장 도면 2건 상시 노출
- 엔진 신규: _Engine_Cad_MassHaul.py(축·곡선·평형선·띠 현·balloon·측점 테이블),
  _Engine_Cad_Basin.py(등고선·세류선 배경·노선·유역·구역별 정보표·방위표)
- 척도 상수: 유토곡선 H 1/2,000 · 세로 1mm=50㎥, 유역도 1/6,000 (A1 고정)
- 유토곡선 저장 payload에 띠·잔여의 기하 필드 추가 — 파이썬에 곡선 보간·토량 배분
  로직을 복제하지 않기 위해 값을 낳는 쪽(TS 엔진)에서 함께 남긴다
- 유역도 배경은 여러 도엽을 합쳐 받은 뒤 도곽 크기로 절취(clip_line_to_box)
- 배수규격은 소요 관경이 아니라 규격관(recommended_diameter_mm)으로 표기

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-30 13:01:39 +09:00
eomsangdon ea9d9685be feat(B07): CAD를 AutoCAD 명령 체계로 재구성한다 (조사표 1·2·3·5절)
저장소 사고로 잃은 4개 커밋(38eb7cd4·b8a11756·281528bf·f60b488d)의 작업물을
하나로 다시 담았다. 내용은 동일하다.

■ 구조
- commands/: 명령 정의(id·AutoCAD 별칭·글리프·도구/즉시실행)를 단일 소스로 두고
  리본·명령행·단축키가 모두 이 레지스트리를 읽는다. tools/tool.consts.ts 폐지.
- ribbon/: 탭→패널→명령 데이터(ribbon.config.ts)와 범용 렌더러 분리.
  AutoCAD 배치(홈·삽입·주석·뷰·출력)와 패널 확장(▾)을 따른다.
- tools/factories/sequence-tool.ts: 점·숫자·문자·객체·선택 단계를 선언하면
  xstate 머신을 만들어 주는 공장. 명령당 170줄 보일러플레이트 제거.
- helpers/geometry/: 3점 호·정다각형·타원·스플라인·구름형·평행이동·해치 스캔선·
  점렬 샘플링 등 상태 없는 순수 함수.
- Toolbar 483줄을 QuickAccessBar/Ribbon/InspectorPanel/StatusBar/CommandLine/
  ViewControls/PropertiesEditor/QuickProperties로 분해.

■ 명령 (조사표 기준)
- 1절 그리기 21건, 2절 수정 27건, 3절 도면층·특성·그룹·유틸리티 39건 전부 반영.
- 5절 주석 34건 중 26건 반영(문자·치수 16종·지시선·표·구름형·주석 축척).
- HatchEntity 추가(solid·pattern·cross·gradient) + JSON 왕복, Layer에 색·선가중치·
  선종류·동결·투명도 필드 추가, 그리기 루프가 동결·숨김·투명도를 반영.

■ 화면 실측에서 고친 결함
- 명령행 포커스 상태에서 ENTER가 도구로 가지 않던 문제
- 명령행 문자 입력이 접두사가 같은 명령으로 실행되던 문제
- 명령이 끝나도 입력을 계속 먹던 문제(점 입력 명령만 반복, 나머지는 선택 도구 복귀)
- 시퀀스 단계 인덱스 오사용 9건 + 단계 값 종류 검사 추가
- 해치 내부를 클릭해도 선택되지 않던 문제

미반영 8건(맞춤법 검사·꺾기 치수·치수 끊기/재연관/검사 치수·기하공차·지시선 수집·
축척 리스트 편집)은 조사표 `반영` 열과 PLAN.md에 사유를 적었다.
2026-08-30 01:34:13 +09:00
eomsangdon 487539bba1 auto: 2026-08-29 23:30 (ESD_LAPTOP) 2026-08-29 23:30:04 +09:00
eomsangdonandClaude Opus 5 03840407f6 chore(resources): AutoCAD 리본·주요 기능 조사자료 추가
B07 CAD 화면 개선 참조용. AutoCAD 2024 Windows 기본 2D 제도 기능 기준,
Autodesk 공식 명령 참조·2024 신규/변경 명령·상태막대와 재대조한 조사 결과.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-29 23:20:07 +09:00
eomsangdon 07089e285a auto: 2026-08-29 18:37 (EOMSANGDON-HOME) 2026-08-29 18:37:18 +09:00
eomsangdonandClaude Opus 5 be7503d741 chore(knowledge): 중첩 Obsidian 볼트 잔재 제거 + .obsidian gitignore
- resources/knowledge/knowledge/ 아래 남아 있던 .obsidian 설정과 기본 노트 삭제
- .gitignore에 **/.obsidian/ 추가 — 볼트 설정은 추적하지 않는다
- 03_미결_및_확인사항.md BOM 제거

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-22 16:26:25 +09:00
eomsangdon a5800e5a34 auto: 2026-08-21 19:34 (EOMSANGDON-HOME) 2026-08-21 19:34:27 +09:00
eomsangdon 3e9be53e7c auto: 2026-08-17 17:09 (ESD_LAPTOP) 2026-08-17 17:09:05 +09:00
eomsangdon f4a9791662 auto: 2026-08-17 02:03 (ESD_LAPTOP) 2026-08-17 02:03:12 +09:00
eomsangdonandClaude Fable 5 7705a9c961 docs(pipeline): gen_md.py 잔여 코드 안내 주석 — 구 전체생성 조립부는 산출물 미사용
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-15 20:35:40 +09:00
eomsangdonandClaude Fable 5 40e7d8301a knowledge(색인): 04 목록 근거 원장 재구성 — 절 계층화·AUTO 마커·gen_md 스플라이스화
04_참조_법령기준_목록.md (파일명 유지):
- 제목 정정(# 0. → # 04.) + 성격 재정의: 근거 등록부·탐색 관문
  (전체 인벤토리는 각 _index.md, 역링크 없이 technical_info sources = SSOT)
- 근거 수준 절 분리: §1~§4 법정 등록표(수동) / §5 원문 색인(자동) /
  §6 품셈·원가 기능별 링크 모음(중복 등록 없음) / §7 공식 기초가격 원천
  (노임 2·나라장터·ECOS·오피넷, 전용 필드) / §8 교본(보조 참고) /
  §9 포맷·실무 검증자료(경고+인덱스 위임) / §10 갱신 관리 / §11 통계(114건 실측)

gen_md.py:
- 전체 덮어쓰기 → AUTO:INDEX 마커 스플라이스 (수기 행·큐레이션 절 보존,
  마커 없으면 실행 거부)
- 잠복 버그 2건 수정: ORIG=OUTMD.parent(이동 후 빈 색인 생성) → ROOT_DIR,
  색인 링크 original/ 접두 누락 → 보정. 재실행으로 색인 최신화
  (법령 md 161→182·별표 292→312, 조달수수료 폴더 자동 반영, 깨진 링크 0)

연동 정정:
- 00_운영지침: 깨진 구경로 2곳 수정, §6 갱신주기표 → 04 §10 이관(SSOT)
- 01_수집지침 W6: 색인 절만 재생성으로 절차 변경, 수기 행 추가 규칙 명시
- _pipeline/README·knowledge README 설명 갱신

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-15 20:33:18 +09:00
eomsangdonandClaude Fable 5 b6fc46ebf7 knowledge(원가): 조달수수료 md 성격 표현 정정 — 전문 md화 → 핵심 규정 구조화본
맞춤형서비스 요율 요지 압축·단위업무별 구성비 생략을 헤더에 명시.
전체 원문 = 첨부 추출본(_extracted_fulltext.txt)·원본 HWP.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-15 20:09:27 +09:00
eomsangdonandClaude Fable 5 52f4e512f5 knowledge(원가): 미결 No.20 해소 — 조달수수료 고시 제2025-22호 원문 수집·반영
- original/행정규칙/조달수수료 고시/ 신설: 현행_20250701.md(전문 md화)
  + 원본 HWP(나라장터 공지 첨부) + 추출 원자료 + _index/_meta
- 핵심 규명: 실무 관측 0.54% = 현행 내자구매 단가계약(일반·3자·MAS)
  정률 0.54%(10억원 이하, 초과 0.47/0.37% 체감)와 일치 — 관급자재
  쇼핑몰 구매 시 단가계약 열 적용. 총액계약은 구간별 정액·정률 별도
- 반영: 제비율(§1 현행값·sources·§3 해소), 원가계산_체계, 입출력변수사전
  (⚠ 각주 갱신 — 원문 확보·검증 세션 대조 전), 단수처리_규칙 §3
- 04_참조_법령기준_목록 No.25 등록, 03_미결 No.20 행 삭제
- 주의 기록: 한시적 감경 특례 고시(조기·신속집행) 수시 병행 — 적용
  시점 특례 확인 필요

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-15 20:05:20 +09:00
eomsangdonandClaude Fable 5 67d04ed8fa knowledge(원가·STC): 검증 지적 4건 반영 — XOR 프로브 스크립트·표현 완화·상태 각주
- _scripts/xor_probe.py 신설: 키스트림 후보 유도 가정·계산 범위·한계 명시,
  파일 간 일치율·공백 복원 데모 출력. STC_난독화_상태 §2에 실행 명령·출력 기록
  (SYSINFO 7파일 100%·BDQTY 83~100%·공백 복원 82~91% — 재현 가능해짐)
- 단수처리_규칙: "설계연도 무관 규칙" → "2024~25 STmate 산출물 5건 관측 구현
  후보 규칙"으로 완화, 일반화 전 미확정 5요소(타 버전·발주기관·법령 의무·
  CUTNM·예외값) 명시, "5건 전부 일치" → "항목 존재 파일 전부 동일"
- 입출력변수사전(verified): 조달수수료·D9-1·D10 신규 행에 검증 범위 밖
  ⚠ 각주 (evidence=observed, 미결 No.20 연동) — 문서 상태는 유지
- 표현 완화 2곳: "포맷 고유 특성 확정" → "강한 증거 (알고리즘 미확정)"
  (교차비교·_STC포맷분석), extract_rounding.py 주석 6개→5개 정정

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-15 19:46:57 +09:00
eomsangdonandClaude Fable 5 89e3b034e9 knowledge(원가·STC): 계산로직 3건 신설·STC 포맷 명세 9문서 + BDQTY 난독화 오판 정정
계산 로직 트랙 (technical_info/05_원가정보):
- 단수처리_규칙.md 신설: 위치별 3함수(내역·제경비 ROUNDDOWN 원절사 / 집계표
  ROUND / 관급자재대 ROUNDUP 천원올림) — 5공사지 xlsx 수식 교차 추출,
  관급자재대 +620원 차이 = 천원올림 규명
- 조달수수료 계상 구조: base→fee→total 3변수 분리(순환 정의 방지),
  원가계산_체계·제비율·입출력변수사전 반영 (0.54%는 과거 관측 ⚠, 현행 원문 미수집)
- 자재단가_적용 §3-1: 적용단가 채택 규칙 후보 — COSTN PG_1 분포(자재만 출처
  선택 존재) 관측, 알고리즘 미확정 명시

STC 포맷 트랙 (original/원가계산/STmate/ 신설 — import/export 필수 요구사항):
- 컨테이너·필드사전 핵심/보조·난독화상태·교차비교·SIxMemo·INITIAL·왕복검증
  9문서 + 재현 스크립트 2본
- 7개 STC 전수 자동 비교: BDQTY·SYSINFO 난독화 전수 재현(플래그 0x45),
  SYSINFO 키스트림 파일 간 100% 동일, BOQ12(다공구)·차수 슬롯 신규 발견

정정:
- _STC포맷분석.md: BDQTY·SYSINFO "빈 것" 오판 정정(실재 667·8건 난독화),
  교차대조 7파일 확장
- _숨김탭분석.md: INITIAL "무가치" 철회 — STC/xlsx 입출력 매핑 참조로 재분류

미결 3건 등록: No.19 STmate 실기 환경, No.20 조달수수료 현행 원문,
No.21 포맷 역공학 라이선스

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-15 19:40:27 +09:00
eomsangdonandClaude Fable 5 a29ca1a11d docs(knowledge): 신설 7문서 원문 전수 검증 (Z11) — 65문서 검증 완료·verified 승격
Z1~Z10(2026-08-12, 58건) 이후 신설된 원가·수량 계열 7건을 원문 1:1 대조.
사방 2건(01_수량산출·01_원가_특이사항)은 개명분으로 기검증 확인 — 잔여는 7건.

 통과 4건:
- 노임단가_적용: 승인번호·직종수·조사규모·적용요령(8시간/기본급여액/유사직종
  준용/증가율 보정)·제조업 수당 6종·용도 제한 문구·품셈 1-2-5 구분 전수 일치
- 기계경비_산정: 품셈 8-1-2~8-1-7 전 조항(손료 구성·C.I.F·잔존율·보정표·
  [주]①②·운전사 3구분·Q식) 일치
- 건설품셈_활용: 5부문 45장 실측·장 매핑 링크 전수 실존·별표2 근거 문구 일치
- 원가_기초데이터_원천: ESTX SHA·산식 통계·슬롯 채택률·게시판 표 정합 재확인

✏ 정정 3건:
- 자재단가_적용·원가_입력변수_사전: 모래·자갈 할증 단일값 표기를 용도별
  구분(잔골재 10/12·노반 6·관류기초 4 / 굵은골재 3/5·노반 4)으로 정정
- 원가_출력변수_사전: B6-2 포장 근거 — 별표3의2(노폭확장 한정) 단독 인용을
  별표2 Ⅰ.2.바.(2) 일반 근거 병기로 보완

_최종검증로그: Z11 7행 추가, 총괄 65문서 전수 검증으로 갱신.
7건 status: draft → verified (00_운영지침 4단계 스키마 최초 적용).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-15 08:23:23 +09:00
eomsangdonandClaude Fable 5 950d3828d0 docs(knowledge): 문서 승인 상태 4단계 스키마 정의 (draft→verified→approved→exported)
- 00_운영지침 §4: 구 draft|confirmed 를 4단계로 대체 — verified(원문 검증)·
  approved(사용자 승인)·exported(JSON 반영). 승격 조건·강등 규칙(원문 개정 시
  draft 강등 = 검증 자동 무효화)·건너뛰기 금지 명시
- 기존 65문서는 draft 유지 — 검증 세션 통과분부터 개별 승격 (일괄 변경 금지)
- §7 프로그램 연계: 기준값 배포 = approved 이상, 데이터 연동 = exported 만 신뢰

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-15 08:11:54 +09:00
eomsangdonandClaude Fable 5 1932e1c4d1 fix(data): coef 토량 중복행 원문 미러링 + 노임 신뢰도 플래그 40건
- coef_2026.json: 2026-08-14 감사 반영 — '암괴ㆍ호박돌 섞인 점질토'(원문 부재)를
  '암괴(岩塊)나 호박돌이 섞인 점토'로 정정, '역이 섞인 점질토' 값 상이 2행을
  원문 그대로 수록. 중복 쌍에 duplicate_group·duplicate_index·selection:pending
  부여 (기본 채택행 = 개발 단계 사용자 선정). 토량계산.md 해시 재동기화 —
  원가 JSON 해시 불일치 잔여 0건
- labor_const JSON: 원문 신뢰도 기호 reliability 필드로 반영 (* 26 · ** 14 =
  40직종). 포설공·일반기계운전사 등 임도 빈발 직종 경고 근거. 단가 무변
- _manifest.json: coef·labor 해시/크기 갱신, selection_pending에 토량 중복행
  채택 항목 등록 (rate_environment와 동일 패턴 — 값 선정형은 미결표 미등록)
- 원가_입력변수_사전: G3에 신뢰도 플래그 설명 추가

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-15 08:11:06 +09:00
eomsangdonandClaude Fable 5 6df07f60a1 fix(knowledge): 검토내역 8건 반영 — 상한 제거·행정규칙 부칙 복원·회귀검사 신설
타 AI 검토내역(tmp/기술문서DB_검토내역_260814.md) 전수 검증 후 동의분 적용.

파이프라인:
- fix_fences.py units[:20] / collect_law.py 별표 limit=80·변경이력 [:40] 상한 제거
- gen_md.py 기준목록 출력을 운영본(04_참조_법령기준_목록.md) 경로로 정정
- README 구경로(docs/raw/law) 3곳 현행화, ruff format 일괄 적용
- verify_structure.py 신설: XML↔md 부칙·목·별표·CHANGELOG 행수 회귀검사

신규 발견 결함 2건 정정 (검토내역에 없던 것):
- 행정규칙 XML은 부칙내용이 부칙 직속(부칙단위 래퍼 없음) — 변환기가 미처리해
  행정규칙 md 22건에 부칙 전무. patch_law_md 확장 후 부칙 138건 복원
- patch_law_md 부칙 dedup 키가 괄호형 타법개정 헤더 미매칭 — 재실행 시
  기존 부칙 1,724건 중복 추가되는 비멱등 결함. 정규식 보강

재수집 (law.go.kr):
- 대기환경보전법 시행규칙 별표 PDF 78건 추가 확보 (80→158, 전수)
- CHANGELOG 절단 3건 재생성 (고용보험법 시행령 42·국가계약법 시행령 41·
  대기환경 45회 — API 연혁과 전건 일치 확인)

기술문서·데이터:
- _최종검증로그: 55문서 스냅샷 범위 명시 (현재 65문서, 신설 10건 미검증 주지)
- 제비율.md frontmatter에 조달청 제비율(2026.04.13)·국민연금법 출처 보강
- 원가_입력변수_사전: 장비대금 지급보증을 공사종류별 표로 정정, csv→json 표기
- labor_const JSON: 원문 노임 118건 전건 일치 확인 후 해시만 재동기화
  (원문 변경분 = 신뢰도 플래그 컬럼뿐, 단가 무변)

검증: verify_structure 결함 0건, patch_law_md 재실행 +0 (멱등),
원가 JSON 해시 56건 중 잔여 불일치 1건(coef_2026 — 사용자 협의 대상)

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-15 07:47:36 +09:00
eomsangdon 46bcaf4f4a docs(knowledge): 원문 인용 4원칙·갱신주기표 + 원가 입력변수 데이터셋 10건
- 00_운영지침 §5: 원문 인용 4원칙 신설(범위 축약 금지·조건 단서 동반·법률
  부칙 특례 확인·교본값을 현행으로 쓰지 않기) — 감사 오류 30건의 공통 원인
- §6: 갱신 주기표(산재고시 2027-01·노임 2026-09·제비율 분기·품셈 연간),
  재검토기한 경과 고시 4건, patch_law_md 절차
- data_cost_input_value: 노임·자재·품·제비율·환율·유가·중기·계수 JSON 10건
2026-08-14 20:38:52 +09:00
eomsangdon a3b23dea49 fix(knowledge): 기술문서 오류 30건 정정 (전역 감사 결과 반영)
상: 국가지점번호판 1km→500m(훈령 제26조⑤, 수량식 ⌈연장÷500⌉로 교체)
중: 연금·요양 요율 출처를 부칙 §4·법 §9①로 / 암석 손료 보정 제외 단서 복원 /
  찰쌓기 채움 콘크리트 소요량표 전면 수록 / 배수공 2~3㎡당 1개소 이상(범위
  유지) / 쇄석 두께 근거 삭제 / 모래 할증 용도별 3종 / 노임 근거 산림품셈
  1-2-5 / 투과형 사방댐 토석류 1.5배 할증 / 돌쌓기댐 1:0.3~0.5 / 지반반력
  P₁=2V/(3d) / 평가위원 기술특급·고급 4명 이상 / 물빼기구멍 PVC·흄관 분리 /
  평면도 축척 오해석
하: 안전관리비 밑수 +도급자관급(3문서 통일) / KDS 현행 23.01 인용 / 조번호·
  항목명 / 미결 참조 / 고용보험 7등급 이하 1.01% / 산림재난방지법 체계표

링크 전수 검사 67문서 0건 깨짐
2026-08-14 20:38:33 +09:00
eomsangdon b586c7443f fix(knowledge): 원문 변환 누락분 복원 (부칙 2,264·목 2,114·노임 플래그 40·KDS 표 2)
- 법령 md 83건: 최신 부칙 전건과 목(가·나·다) 보충. 국민연금 2025 연금개혁
  부칙, 임도 종류 정의(간선·산불진화·작업임도) 복원. 사후 점검 109건 중복 0
- 노임 정밀파싱표: 신뢰도 플래그 * 26 · ** 14 복원(원문 일치). 포설공·일반
  기계운전사 등 임도 빈발 직종 경고 표시 회복
- 조달청 제비율 md: xlsx 누락 표 6종(고용보험 등급표·환경보전비·법정부담금·
  퇴직공제·보증수수료) 복원
- KDS 44 40 00 md: hwp 원본 판독으로 유출계수 12항목·경제적 수로단면
  원형수로 행(H=0.94D) 복원 — 수식개체(EQEDIT) 미변환분
2026-08-14 20:38:10 +09:00
eomsangdon 06640d04ea fix(pipeline): 법령 md 부칙 절단·목 미출력 결함 수정 + 보정 도구 신설
- collect_law.py: 부칙단위[:20] 상한 제거(법제처 XML은 오래된 순 → 최신 부칙
  절단됨), 목이 항의 직속 자식으로 오는 구조 처리(문서 순서 순회), _meta에
  수집일 필드 추가
- split_cost_docs.py: 노임 표 신뢰도 플래그(*/**) 캡처 → 별도 열로 복원
- patch_law_md.py 신설: 보관 XML 기준 누락분만 보충(전량 재생성은 후처리
  파괴하므로 금지). README에 사유·절차 명문화
2026-08-14 20:37:39 +09:00
eomsangdon cc51b60c13 fix(knowledge): 제비율 오류 정정·누락 8항목 보강 (타 AI 지적 검증 반영)
- 국민연금 4.5→4.75% (국민연금법 2025.4.2 개정 부칙4 + 조달청 표 이중 확인,
  2026~2032 연도별 스케줄 추가), 안전관리비 적용 4천만→2천만원
- 고용보험 조달청 등급표 1.01~1.57% 확보(기존 ⚠ 해소)
- 조달청 원문 md에 xlsx 누락표 6종 복원(고용보험·환경보전비·석면/임채/
  퇴직공제·하도급/이행보증 수수료)
- 제비율·원가계산_체계·입출력변수 사전에 rate_other_expense 등 8변수 추가,
  표형([표]) 저장 원칙 명시. 환경보전비 임도 분류(도로0.9/기타토목0.8)는
  사용자 협의로 이관
2026-08-14 19:37:16 +09:00
eomsangdon 3fed89a0cf docs(knowledge): 내역서_구성항목_총람 → 원가_출력변수_사전 파일명 변경
- 입력변수 사전과 짝 명명. 참조 전건 수정(_index·원가_입력변수_사전·자체 title)
2026-08-14 19:02:13 +09:00
eomsangdon a9dee1884f docs(knowledge): 총람에 F 계산로직 추가 (입력변수 G → 출력항목 A/B/D 연결 지도)
- 총람 = 출력변수 사전 성격 명시(공사지별 가감 가능), 5단계 파이프라인
  (F1 수량 / F2 단가조립 / F3 내역 / F4 원가체인 / F5 목록·집계 역산)
  각 단계 산식 요약·입력 G코드·출력 A코드·상세 로직 문서 링크
- 입력변수 사전·_index에 짝 문서·§F 상호 연결
2026-08-14 19:00:32 +09:00
eomsangdon c4fe188361 docs(knowledge): 원가 입력변수 사전 신설 (변수 단위 — data_cost_input_value 설계 기초)
- G1 환율 5 · G2 유가 2 · G3 노임(빈도 16+카탈로그) · G4 자재(빈도 21+카탈로그)
  · G5 중기 5필드 · G6 품(공종×자원) · G7 제비율 11 · G8 할증계수 · G9 사용자입력 구분
- 변수별 총람(A/B/C/D) 연결·단위·원천·갱신주기, 파일 분할안 8종 포함
2026-08-14 18:54:44 +09:00
eomsangdon 7b6758ea78 docs(knowledge): 임도 내역서 구성항목 총람 신설 (사용 항목 결정용 체크리스트)
- 05_원가정보/내역서_구성항목_총람.md: A 문서구성 17종(별표2+미결17 대상표),
  B 공종 79항목(산림품셈 절번호·단위·빈도, 준비~부대공 8그룹), C 기초단가
  (직종 15·자재 3경로·중기 10작업군·값층 5), D 원가 14항목, E 현행 공백 6건.
  채택 칸 공란 = 사용자 결정용. 링크 검사 0깨짐
2026-08-14 18:40:16 +09:00
eomsangdon 537b8629e3 auto: 2026-08-14 18:31 (EOMSANGDON-HOME) 2026-08-14 18:31:31 +09:00