**① 기종 이름 — `(8201) 3D GNSS 머신 가이던스(굴착기용)`**
추출기가 **첫 낱자가 숫자면 쪽번호로 보고 버리던** 탓에 8201 이름을 못 찾고 **옛 벌의 뭉개진 글**을
이어받고 있었음(`배관파이프시 간 당(10-7)분류번호규 격7995-0050…`). 낱자가 하나도 없는 토막만
버리게 고침 — 옛 벌에서 이어받은 이름 7 → **0** · 이름 바로잡힌 줄 1(값은 안 움직임).
⚠ `_build_mach.py` 는 랩탑 메인이 지은 것 — 한 줄 잣대만 고쳤음.
**② 8-1-7 손료보정 — 원문이 제 표로 고쳐졌음**
전엔 글로 뭉개져 `덤프트럭2510` 처럼 붙어 있어 「25·10 인지 2·510 인지 못 가름」으로 세고 있었음.
이제 `| 덤프트럭 | 25 | 10 |` 이라 **칸에서 바로** 읽음 — 기종 글은 원문이 낱자 사이에 빈칸을 두므로
(`불도저( 1 9 톤이상 제외)`) 빈칸을 지워 맞댐. 네 줄이 한꺼번에 풀림(보정 셋 + 수 자리 가름).
**③ 이름 없는 기종을 세는 자리** — 8-3 에 `(코드) 이름` 머리글이 없어 **양쪽이 다 비어 조용히 지나가는**
자리를 세게 함. 지금은 **0** — 8202~8204 도 머리글이 [주] 줄에 섞여 있어 둘 다 읽고 있음.
⇒ 기초단가 어긋남 23 → **17**(잣대 못 알아봄 16 → **10** · 원문 부재 7).
남은 잣대 10 은 다 랩탑 서브 PDF 몫 — 규격 빈칸 일곱(원문이 기종 이름을 여러 줄로 쪼갬) ·
양수기 7993-0020 셋(규격이 주연료 칸에 밀림).
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01QsGw1Dz9HmhuAxGisxmDPF
- 시험 장부는 양쪽을 다 읽어 합침(서브 줄 25 살림) · 자료는 추출기로 다시 뽑음
- `_fuel` 은 내 판(겸용 연료·전력)을 취함 — 서브의 「㎾ 전용은 기름 값 없음」 뜻도 그 안에 담김
- 칸 토막은 서브 `_cells`(빈 칸 = 없음 · `동력` 뗌) 를 쓰되 **코드가 하나면 칸 통째로**
(`1.87㎾ 휘발유1.3` 처럼 한 값 안에 공백)
- 8-1-7 손료 가산비율 이름 셋은 원문이 글로 뭉개져 이름 칸에 수가 들어앉음 — 목록에 사유로 둠
- 셈 — 건설 표 2,274 · 형태 미판정 166 · 밑수 확보 713 · 미확보 438 · 기계 손료 611 → 620
· PDF↔md 구멍은 결손 749 · 허구 547 그대로(md 고치는 창 몫)
- 전체 시험 2,445 통과
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BW6Jdsh18WPtYUR6THZJqn
브레인 B08·B14.
- **PDF ↔ md 커버리지**(`test_const_pdf_coverage.py`) — PDF 글자층을 좌표로 줄로 다시 묶어
값 수를 뽑고 md 전문과 양방향으로 맞댐. 지금 **결손 749**(PDF 에 있는데 md 에 없음) ·
**허구 547**(md 에만 — 대부분 붙은 줄 잔재 `0008900.90` 꼴)
· 쪽별 셈을 목록에 두어 **늘면 빨강**(새 구멍) · `--report` 로 구멍 큰 쪽 스물을 뽑음
· ⚠ 줄 짝은 안 맞춤(PDF 는 칸마다 줄바꿈) · 값처럼 생긴 수만(소수점·세 자리 이상, 연도 뺌) ·
차례 줄·쪽번호 줄은 뺌
- **겸용 연료 둘**(`_build_mach.py`) — 3450-0642 현장가열 표층재생기 `73.7+휘발유54.5` ·
7992-0001 모르타르 믹서 `1.87㎾ 휘발유1.3`
· 둘째 연료는 `secondary_fuel_*`, 전력은 `electric_power_kw`(연료가 아니라 곁값)
· 연료 줄 274 → 276 · 대조 시험도 같은 꼴을 읽게 넓혀 **기계 못 보는 자리 38 → 27**
· 이름표에 새 열 셋 + 줄 수 갱신
- 전체 시험 2,442 통과
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BW6Jdsh18WPtYUR6THZJqn
**① 기계 못 보는 자리 25 → 13**
· **규격을 맞대기 시작** — 원문 손료표 「규 격」 칸을 읽어 손료·가격·연료 세 벌에 다 걸어 맞댐.
**437 줄이 원문과 같음을 확인**(그 전엔 한 줄도 안 재던 칸). 토막이 코드 수와 안 맞는 줄은
자료 값으로 갈음되니 지어 채우는 일 없음.
· 「안 잰 칸」 아홉은 **원문 밖 말**이라 할 일 아님 칸으로 뺌 — 프로그램 이름(alias·rule_id) ·
사람 메모(note) · 살림살이(parse_method) · 낳은 값(loss_coefficient_per_hour = 계 계수 ÷ 10⁷) ·
자리 표시(source_section·section) · 원문 조건을 영어로 줄인 이름(exception·exclusion)
**② 기초단가 장부 49 줄을 두 갈래로 가르고 줄마다 사유·주인**
· **원문 부재 32** — 값이 원문·원천에 없거나 원문 밖 말(㉮ 25 는 집계에서 뺌 · ㉰ 7 은 남김)
· **잣대 못 알아봄 17** — 값은 원문에 있는데 전사·읽기가 못 가름 ⇒ 고치면 풀림
– **랩탑 서브 15**: 9020 이어 표 일곱 · 8201 손료표 머리 뭉개짐 둘 · 양수기 7993-0020 셋 ·
손료보정 `2510` 가름 · 5220·7995 계수 칸(PDF 에 있는지 확인)
– **랩탑 메인 2**: 겸용 연료(`73.7+휘발유54.5` · `1.87㎾ 휘발유1.3`) 갈라 읽기
⇒ 할 일 **61 → 24**(㉯ 17 · ㉰ 7) · 할 일 아님 칸 34
**③ 랩탑 메인 것을 받아 다시 뽑음** — 건설 형태 미판정 196 → **175** · 밑수 확보 711 → **713** ·
기계 값 바뀜 0 · 갈래 열쇠 장부는 합집합 209(내 CW-00326 · 랩탑 CW-00370 둘 다 살림)
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01QsGw1Dz9HmhuAxGisxmDPF
**① 프룬 구멍** — 읽기(`load_known()`)만 「할 일 아님」 칸을 읽게 고쳤고 **쓰기는 안 고쳤음**.
`--prune` 이 합쳐 읽은 것을 그대로 되쓰면 2026-09-18 에 가른 칸이 다시 갈래로 섞여
**없는 할 일 36 이 되살아남**. 세 파일 다 「제자리에서 지우기」로 고침.
**② 기계 읽기 넓힘**
· `| 9020- | 비항SD | | … |` 꼴 **앞자리만 알리는 머리줄** — 값이 없으니 못 보는 자리가 아님(8줄 뺌)
· 빈 칸·`동력` 낱말·전력(㎾) 주연료를 읽게 함 — 전력 기종 아홉은 원문에 기름 값이 없어
양쪽이 비는 것이 맞음(12줄 뺌) · 7360-0090 차선 제거기는 원문 휘발유 5.53 을 이제 읽음
· ⭐ **머리 없는 이어 표**를 세는 자리를 만듦 — 책장 넘김에 밀린 줄을 `|---|` 없이 따로 적어
표로 안 잡히던 자리. **9020 그래브 준설선 일곱 줄의 손료계수가 양쪽 다 조용히 빠져 있었음**
**③ 드러난 어긋남을 장부에 사유·주인과 함께 올림**
· 7993-0020 양수기 — md 가 규격을 주연료 칸에 밀어 적음(코덱스: PDF 대조로 휘발유 1.3ℓ 제자리에)
· 9020 일곱 줄 — 코덱스: 앞 표에 이어 붙일 것(`제8장_건설기계.md` 3617줄 자리)
· 겸용 연료 둘(3450-0642 · 7992-0001) — 랩탑 메인: `_build_mach.py` 가 갈라 읽게
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01QsGw1Dz9HmhuAxGisxmDPF
**① ㉮ 를 갈래에서 아주 뺌** — 장부에 섞여 있어 바퀴마다 「어긋남」으로 다시 세어지던 것.
`_할일_아님` 칸으로 옮김(공종축 34 + 기초값 2) · **지우지는 않음**(나중에 사유를 보아야 함)
갈래 — 거절 자리 11 · 그 밖 18 · 원문 부재 4 · 부록 예시 1
⚠ **세는 곳에서만 빼고 비교에는 넣음** — `load_known()` 이 그 칸도 읽게 함.
안 그러면 옮긴 줄이 다시 「새로 어긋남」으로 빨개짐
시험으로 못박음 — 칸이 있나 · 34줄인가 · 줄마다 **왜 할 일이 아닌지** 사유가 있나 · 갈래가 넷 중 하나인가
**② ㉯ 남의 몫에 주인 다 적음** — 갈래 없던 기계 줄 65 에도 적어 미정 0
랩탑 메인 87(md 읽기 22 + 기계 원천 벌 재추출 65) · 랩탑 서브 1(F0333 PDF 대조)
**③ 남은 건수 — 실제 할 일만**
① 산림 공종 축 **0** (미확보 79 = 원문 부재 69 + 미판독 10, 열은 다 거절 자리) · 미귀속 표 22 는 ㉰ 에
② 건설 공종 축 **1,053** (형태 미판정 891 + 밑수 미판독 162) — 뿌리는 「판정이 산림 표로만
맞춰진 것」이라 랩탑 메인 몫
③ 확인 대기 **100** = ㉯ 92(다 남의 몫) + ㉰ 8 · 할 일 아님으로 뺀 것 36
④ 사용자 판단 **8** — F0046·F0068 「1인」 밑수 · F0076 반쪽 「1km」 · 부록 14-2 표 셋 ·
F0405 증가율표 성격 · 이형철근 범위 6~7
⇒ **내가 지금 할 수 있는 것은 0** — 다 남의 차례이거나 사용자 판단
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01QsGw1Dz9HmhuAxGisxmDPF
코덱스 2단 머리 복원(42073a6d)으로 손료표 13개는 풀림. 남은 둘에서 시험이 멈추고(15건 오류) 있었음.
- 5220 소형브레이커 · 7995 배관파이프 — 머리 「시 간 당(10-7)」 은 표 위 글줄로 돌아왔으나 표에 계수 칸이
없음(원문에 값 없음) → 멈추지 않고 「손료 계수 칸 없는 표」 로 못 보는 자리에 남김
- ⚠ 목록 열쇠·원표 맞대기가 줄 번호에 기대고 있었음(`손료 줄 L2683` · 운전경비 원표를 `line` 으로 찾음)
→ md 가 고쳐질 때마다 통째로 밀림. 코드·8-4 안 표 차례로 바꿈
- 복원으로 원문에서 새로 읽히는 손료 줄 → 자료에 없는 기종 8 묶음(0230·3601·6532·6801·7101·7120·7830·9060)
· 원문 손료 코드 586 → 608 · 뭉개진 손료 글 11 이 모두 표로 돌아와 못 봄 목록에서 빠짐
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BW6Jdsh18WPtYUR6THZJqn
브레인 4바퀴. 원문을 열어 하나씩 확인한 뒤 고침. **값(숫자)은 원문 그대로, 자리·이름만 맞춤.**
**① 거푸집 「각재」 비율 여섯 — 지어낸 것이라 뺌**
원문 12-4(F0336)는 **「합 판」 한 줄에 두 열**(재료별% · 노무비%)을 적고 「각 재」 줄엔 비율이 없음.
각재 자리에 있던 값이 **합판 줄의 노무비 열과 한 자도 안 다름** — 다른 열을 갖다 쓴 것이었음.
⇒ `plywood` → `plywood_material_pct` · 노무비 열은 `plywood_labor_pct` 로 제자리 ·
각재는 `timber_absent` 로 **비워 두고 사유**(옛 값도 함께 남김)
**② 기계 손료 5202·5203 칸 밀림** — 규격 열이 둘·셋인 표라 한 칸(5202)·두 칸(5203) 밀려
상각비율 자리에 내용시간(800·4,000)이 들어가 있었음. 원문 건설 8장 L2617~2633 대로 여덟 줄 맞춤
**③ 전문공사 일반관리비 300억 이상** — 마지막 구간이 「100억-300억 미만」으로 닫혀 **300억 넘는
전문공사가 어느 구간에도 안 걸렸음.** 원본 XLSX 대로 300~1000억 · 1000억 이상(둘 다 4.5%)을 더함.
⚠ 대조 시험의 구간 지도(`SPECIAL_PRICE`)에도 그 둘이 없어 원문 쪽에서도 안 잡히고 있었음 — 함께 채움
**④ 제조 노임 115~123 상위업종** — 「품질 관리 / 하위업종」인데 하위만 담아 반쪽이었음(아홉 줄).
원문(중소기업중앙회 조사표)대로 채움. 노임 값은 안 건드림
**⑤ 덤프 토사 E0 는 0.60 이 맞음** — 원문 10-12-1 은 식에 `E0=0.75` 를 적지만 바로 아래 [주]⑤
「굴착기의 작업능력 산정 비교」 표가 `E0 | 토사 | 0.60(불량)` 비고에 **「임 도」** 라고 못박음. 근거를 자료에 적음
**⑥ 이형철근** — 원문이 범위 「6~7」로 적은 것을 `alt_rate_range` 로 함께 실음(쓰는 값은 7 그대로)
⚠ 기계 이름 뭉개짐·손료표 md 변환 오류는 **코덱스가 md 를 고치는 중**이라 손대지 않음
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01QsGw1Dz9HmhuAxGisxmDPF
브레인 일감 ③ 뒤 절반. 자료 `sources[].path` 가 가리키는 원천(노임 md 둘 · 건설 품셈 제8장 md ·
나라장터 json · 오피넷 json 둘 · 조달청 제비율 xlsx + 국민연금법 xml)을 따로 읽어 칸마다 맞댐.
- 맞댄 양 — 노임 건설 132×5 · 제조 129×6 / 기계 가격 613 · 손료 387×9 · 연료 197×4 · 연료표 21 칸 ·
조종원 규칙 3 · 암석 할증 4 / 자재 6,999×13 / 유가 전국 2×3 · 시도 17×2 / 제비율 233 값
- 어긋남 → 알려진 목록(`fixtures/base_prices_source_known.json`) 에 까닭과 함께
· ⚠ 기계 손료 5202·5203(8 코드) 칸 밀림 — 규격 칸이 둘·셋인 표라 내용연수 자리가 비고 상각비율에 800·4,000
· 기계 — 내용연수 빠짐 9 · 코드 「-0003」 표기로 3201-0003 빠짐 · 자료에 없는 기종 묶음 32(199 코드) ·
이름에 뭉친 표 글이 들어가거나 비었거나 앞 기종 이름을 물려받은 코드 약 60
· 제비율 — 전문공사 일반관리비 4.5% 가 원문 병합 칸으로 300억 이상까지인데 자료는 100억~300억까지만
· 노임 제조 115~123 업종 이름에서 상위 「품질 관리」 빠짐
· 자재 0 · 유가 0 · 기계 가격 값 0
- 못 보는 자리 `*_blind` — PDF→md 변환 틀림 · 한 줄로 뭉친 손료표 11 · 값과 코드가 1:1 로 안 맞는 연료표 4 ·
파생 시간당 손료계수 · 조종원 배정 121(사람 판단) · 붙어 버린 암석 할증 수 · API 스냅숏(공표 원본 아님) ·
출처 없는 부가세·처리 규칙 · 제비율은 조달청 요약표(국민연금만 법령 대조)
- 원천 쪽 이상 — 제8장 9010 손료표 내용연수 「3,0000」 오기 · 가격표 머리 「가격(₩)」 인데 8-1-6 은 천원 ·
제조 노임 111 상하위 표 「**94,994」 · 시도 유가 07·16 이 「전남광주(20)」 한 줄
- 값을 하나씩 바꿔 16/16 빨강 · 원천 쪽 값 바꿈 · 고쳐짐 · 새 칸 · 줄 삭제도 잡음
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BW6Jdsh18WPtYUR6THZJqn