계획서 V-8. 엔진이 일부러 화면 몫으로 남긴 자리(`_Handoff_Rows_Prep.py:182`
「표기는 만들지 않는다 — 측점 간격을 아는 화면 몫이다」)를 채움.
- 토적표가 쓰던 `stationLabel` 을 **내보내 같이 씀** — 두 벌로 만들면 같은 측점이
화면 두 곳에서 다르게 적힘.
- 구간은 `start_m`·`end_m` 을 그대로 씀. `length_m` 이 그 구간의 합이라 두 값이 갈릴 자리가 없음.
- 값이 없으면 표기를 안 붙임(지어내지 않음).
화면 실측 — 「돌쌓기(찰) H=2.5 · L=10.0m · NO.4 ~ NO.4+10」(정본 80~90m)로 뜸.
시험 둘 추가(표기 함수 한 벌 · 구간은 구조물 값에서), 전체 1220 통과·실패 0.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
- 「기본 안 셈」이되 「현장에 따라 파쇄가 적용될 필요 있음」이라 **임목파쇄만** 켤 수 있게 둠
- ⚠ 안 켠 프로젝트에는 **줄 자체가 없음** — 빈 칸이 「세야 함」으로 읽히지 않게
(부대시설은 법정 의무라 늘 서는 것과 다른 자리)
- 켜도 부피는 지어내지 않음 — 넣어야 값이 서고 FP-08-11(이동식 임목 파쇄)이 붙음
- 근주이식(FP-14-02)은 **칸도 안 만듦** — 켤 자리가 없으면 물을 일도 없음
- 설정 `wood_chipping_enabled`·`wood_chipping_volume_m3` + 화면 칸 둘
- tmp/tests/test_b08_wood_chipping.py 신설(5건)
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
- 「재료량은 설계수량에 따른다」는 값을 안 준다는 뜻이지 안 센다는 뜻이 아님.
근주이식·임목파쇄(셀지 말지가 설계 판단)와 성격이 다름 — 확정 ⑨·⑩ 과 같은 틀로 감
- 제안값(울진 소광 §8 관측): 각재 50×50 0.0044㎥ · 판재 T12 0.0029㎥ · 못 0.03㎏/개소
- ⚠ 「실무 관측값이지 법정 기준 아님」과 손율 원문값(비탈 50% · 수평 80%)을 줄 사유와
화면 칸 밑에 함께 적음 — 값만 박으면 「대신 페이지에 남길 것」 지시를 어기는 것
- 개소가 안 서면 재료도 안 섬(밑수가 그 줄) · 자재 축으로 감(할증은 자재총괄에서 한 번)
- 설정 `frame_material` + 화면 칸 셋
- tmp/tests/test_b08_frame_material.py 신설(7건)
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
- 「입목 본수를 들고 있지 않음」이 원문과 달랐음. 품셈 9-21 [주]① 은
**소림(30~60㎥/㏊)·중림(60~90)·밀림(90 이상)** 으로 가름 — 본수가 아니라 **축적**
- ⚠⚠ 그리고 **9-21 표에 밑수 단위 열이 없음**(9-20 은 「10주당」이라 적혀 있음).
등급을 넣어도 「무엇당 값」인지 모르면 못 셈 — 원문 확인이 필요한 자리로 사유에 적음
- 임목축적 등급 설정·화면 칸 신설(`stand_volume_class`) + 근거 한 줄
(산림조사부·영림계획에서 옮겨 적는 값이라 프로그램이 만들 수 없음)
- 대상 면적(벌개제근 연동, 지장목제거와 같은 자리)을 참고값으로 실음
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
표토 운반(법이 요구하는데 제거만 세고 있던 자리)
- 시행규칙 별표2 「표토는 전량 제거한 후 … 최고 홍수위보다 높은 장소로 운반하고
쌓아두어야 한다」 — 제거(9-15)만 세면 운반이 빠짐
- 물량은 제거 물량 그대로(다시 안 셈), 거리는 설계 입력 `topsoil_haul_distance_m`
- 거리가 없으면 막고 사유 · 제거가 안 서면 운반도 안 섬(밑수가 그 줄) · 법 문구를 사유에
화면 칸(사용자 지시 「대신 페이지에 남길 것」)
- 부대시설 개소 다섯(국가지점번호판·안내판·차단기·가설창고·수방자재) — 서버가 받고
있었는데 넣을 칸이 없던 자리. 산식으로 만들지 않는다는 사유를 칸 밑에 적음
- 표토 운반거리 칸 + 별표2 근거 한 줄
- tmp/tests/test_b08_topsoil_haul.py 신설(5건)
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
사용자 지시(2026-09-09): 「값을 코드에 박고 끝내지 말 것 · 대신 페이지에 남길 것」
- 층따기 길이(확정 2차 ①) — 비면 층따기 줄이 막힘. 칸이 없어 값이 안 들어가던 자리
- 기초잡석 두께(확정 3차 ②, 0.2m) — 근거: 폭은 버림 폭과 같음(KCS 34 50 05),
두께는 품셈 12-25 가 안 정해 사용자 확정값
- 사토장까지 거리(확정 3차 ③ 미정) — 비어 있고, 비면 사토 운반 줄이 막힘
- 구조물터파기 용수(확정 3차 ④) — 기본 「육상」이 **통상값이고 사용자 확정 아님**을
칸 밑 근거 줄에 적음. 품셈 9-13 의 18구분이 이 값으로 갈림
- 칸마다 근거 한 줄(`b08-quantity__hint`)을 붙임 — 왜 그 값인지 화면에서 보이게
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
㉘ 자기 감사. B09 에 겨눈 네 축을 내 것에 그대로 겨눔.
안 부르던 검사 — 시험에서만 불리고 있던 것들을 실제 경로에 이음
- verify_no_code_on_materials · verify_bill_flags → build_handoff 결과에 실음
- check_against_plan → 운반 표 옆에 haul_check 로 실음 (계획이 있을 때만)
- 바로 위 주석이 「검사는 실제로 부른다」였는데 형제 둘이 놀고 있었음
표토 두께 — 서버·엔진은 받고 있었는데 화면에 넣을 칸이 없었음
- optionalNumberField 신설 (빈 값 = 「안 정함」, 0 과 구별)
- null 을 저장에서 버리던 것 수정 (NULLABLE_SETTING_KEYS) —
한 번 넣으면 「안 정함」으로 못 되돌리던 자리
짝 시험 — 규칙은 있는데 시험이 없던 둘
- REFERENCE_MARKS (41건을 지웠던 그 규칙): 기준표는 잡고 「단 위」는
안 잡는 것을 양쪽으로 박음
- attachments_of: 칸이 있을 때만 줄이 서고 부모와 id 가 갈리는 것
시험: 662 passed · 24 skipped (B05 코리도 1건 기존 깨짐, 무관) · tsc 오류 0.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
목록에만 있고 화면에 없으면 사용자는 그것이 잠정인 줄도 모름. 셋 다
「지금 어떤 값으로 돌고 있는지 + 왜 잠정인지」를 함께 보임.
- 콘크리트 타설 방식을 좌측 패널 칸으로 냄. ⚠ 금액에 바로 걸리는 값이라
기본값으로 돌고 있으면 「기본값 「레디믹스트」로 계산 중 — 아직 안 정한 값」
안내를 띄움. 설정 기본을 None 으로 바꿔 「안 정함」과 「일부러 레디믹스트를
고른 것」을 가름 — 값을 미리 넣으면 그 구별이 사라짐. 되돌리기도 됨.
- 물구멍 근거에 잠정값을 적음 — 「관 Ø 미정(법 3~6㎝ / 실무 Ø50) ·
간격 2.0㎡당 1개소(법 2~3㎡당 1개소 이상)」. 「미확정」만으로는 무엇을
정해야 하는지 모름.
- 준비공의 벌목 줄에 공종 미확정 사유와 후보를 함께 적음(수확베기·단목베기·
위험목 베기 중 어느 것인지 원본이 말하지 않음).
검증 — 전체 580 passed, tsc 오류 0. 화면에서 셋 다 뜨는 것과 타설 방식
저장·되돌리기까지 확인 후 검증으로 바꾼 값은 원래대로 복원.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
- 암 시공법(ripping/blasting)을 갈래 비율 칸 아래에 붙임. 갈래 이름만으로는
품셈 공종(암절취 FP-09-04 / 발파암 FP-09-05)을 못 고르던 자리. 기본은
「안 정함」이고, 안 정하면 인계에서 사유와 함께 드러남. 비율 미입력 상태의
「암」 한 줄에도 칸을 냄.
- 관급/사급은 표 안에서 줄마다 고름. 관급 줄에만 설치주체가 열리고 사급으로
되돌리면 잠기며 비워짐. 만진 줄은 표시가 남음.
- 산출 요약(최소·중앙·최대)을 원단위·자재총괄·인계에 붙임. 단위별로 갈라 냄 —
값이 있기만 하면 시험이 못 잡는 자릿수 어긋남을 사람이 훑게 하는 장치.
화면에서 걸려 고친 것 둘
- 관급을 골라도 설치주체 칸이 잠긴 채 남던 것. 고른 즉시 열고 닫게 함.
- 한 번 고른 시공법을 되돌릴 길이 없던 것. 설정 저장이 병합이라 빈 값을 보내도
옛 값이 남았음. `save_section(replace_keys=…)` 로 되돌릴 수 있어야 하는 칸만
통째로 갈아 끼움. 나머지는 그대로 병합.
앞 커밋에서 온 타입 오류 2건도 고침 (`slopeColumnCount` 미사용,
`variant: "outlined"` 는 없는 값). 앞선 확인에서 npx 가 엉뚱한 패키지를 실행해
「오류 없음」으로 잘못 봤음 — tsc 는 config/node_modules 것으로 부를 것.
검증 — 새 시험 5건 + 인계 28건 통과, 전체 509 passed. tsc 오류 0.
화면 실조작으로 시공법 저장·되돌리기, 관급/설치주체 저장·되돌리기 확인 후
검증으로 바꾼 값은 원래대로 복원.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
B06 담당(랩탑) 실측 회신 반영. 미교차는 드문 예외가 아니라 상시임 —
route 169 는 22/105(21 %), 이 노선은 17/65(26 %). 매번 요란하면 곧 무시당함.
고친 것 셋
· 붉은 오류 → **주의 표시**(테두리를 danger 에서 muted 로). 잘린 줄 표시도 같게.
· 목록을 `details` 로 **접어 둠**. 필요할 때만 폄.
· 문구를 **한 덩어리**로 묶음 — 절·성토 면적 · 사면길이 · 사면적이 전부 같은 사유로
잘리므로 항목마다 따로 띄우지 않음.
안 넓히는 까닭 (주석에 남김)
미교차 절반 이상이 계곡·절벽처럼 지형이 설계 사면에서 멀어지는 자리라 반폭을 늘려도
영원히 안 닫힘. 닫히는 쪽도 중앙값 +3m 인데 꼬리가 +292m 이라 전역 확대는 값이 안 남.
2026-09-03 사용자 확정 「경고로 대체」가 그대로 유효함.
정본 키 대조 — StationSlope.unclosed 가 design.slope_unclosed 에서 나오는 것 확인
(B06_Section_Engine_Design.py:807 이 내는 그 값).
검증 — 공용 브라우저 실화면. 타입검사 오류 0.
접힌 상태 `details[open=false]` · 요약 문구 한 줄 · 측점 단추 17개.
펴면 목록이 보이고, 첫 단추(NO.13)를 누르면 그 줄로 가서 강조됨.
조작한 화면은 사용자가 보던 주소로 되돌려 놓음.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
일감 3 의 API·화면 덩어리. 토적표 오른쪽 절반(실무 V~AI)이 화면에 섬.
한 응답으로 냄
실무 토적표가 한 장이라 화면도 한 장임. 나눠 부르면 두 번 왕복하고 같은 측점
목록을 두 벌로 들게 됨. earthwork-table 응답에 slope 를 함께 실음.
열 구성 — 계열 4 x 성토면/절토면 = (거리, 면적) 7쌍
층따기[성토면] · 면고르기 · 법면보호공(종자파종) · 지장목제거.
거리 = 그 측점 사면길이, 면적은 토적표와 같은 평균단면적법.
합계행은 면적만 — 거리(사면길이)는 합이 뜻이 없음(실무 시트도 비움).
⚠ 잘린 측점을 감추지 않음 (PLAN 8-4b)
사면이 원지반을 못 만난 측점은 사면길이·면적이 그 지점에서 잘려 있음.
경고 문구에 **무엇이 잘렸는지**를 적고(「실제 값은 이보다 큼」), 측점 단추를
누르면 그 줄로 가서 잠깐 강조됨 — 17곳을 눈으로 찾게 하지 않음.
잘린 줄은 측점 칸 왼쪽에 표시가 남음.
검증 — 공용 브라우저 실화면. 타입검사 오류 0.
머리글 3단 13/12/28셀, 대분류에 층따기·면고르기·법면보호공·지장목제거,
3단에 거리/면적 쌍. 본문 65행 x 34열(토공 20 + 사면 14).
NO.1 사면값 6.4/64.4 · 3.5/93.0 등이 엔진값과 일치.
잘린 줄 17개 표시 · 경고 문구 · 측점 단추 17개 확인.
합계 면고르기 성토 13,518.6㎡ · 절토 5,433.7㎡ 로 엔진 합계와 같음.
회귀 404 passed (실패 1건은 B05 코리도 기존 깨짐).
조작한 화면은 사용자가 보던 주소로 되돌려 놓음.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
PLAN 8-4b 열 명세를 화면에 세움. 일감 2 의 마지막 덩어리(엔진 → API → 화면).
왜 실무 서식 그대로인가
이 화면의 첫 사용자는 「프로그램이 맞나」를 확인하려는 설계자임. 보기 좋게
재배치하면 실무 산출서와 눈으로 대조를 못 함. 열 순서·머리글 문구를 실무
토적표(= 오솔길 1.BOM 36열)에 맞춤.
소수 자리는 표기 규칙일 뿐 (PLAN 8-16)
서버는 전정밀 값을 주고 자르는 것은 화면뿐임. 실무 시트 관측대로
단면적·체적 2자리 · 보정량계·유용토·차인·누가 1자리 · 거리 정수.
원가 쪽(줄마다 원 단위 절사)과 규칙이 반대라 그 코드를 옮기지 말 것.
구성
좌측 = 산출 조건 읽기 전용(산출법·토량환산계수). 계수는 서버 상수가 유일
정의처라 화면이 값을 다시 적지 않음.
우측 = 시트 탭 + 표. 지금 서는 장은 토적표 하나, 나머지 6장은 차례로 붙임.
표는 한 번만 받아 좌측·우측이 함께 씀(중복 호출 없음).
측점 열·머리글은 sticky — 가로로 굴러도 어느 줄인지 보임.
locale 은 B08 키 8개만 추가 (다른 창과 겹치는 파일이라 기존 줄 무접촉).
검증 — 공용 브라우저 실화면.
타입검사 오류 0. 탭 「토적표」, 3단 머리글 3행(9/5/14셀), 본문 65행 x 20열,
합계행 표시. 둘째 줄이 API 값과 일치: NO.1 거리 20 · 절토토사 1.96/22.34/20.10
· 암 2.54/25.43/29.24 · 측구 0.08/2.58/2.33 + 0.10/1.02/1.17 · 보정량계 52.8
· 성토 4.82/48.79 · 유용 48.8 · 차인 4.0 · 누가 4.0.
⚠ 어두운 테마에서 머리글이 묻히던 것을 프로젝트 테마 변수로 바꿔 고침 —
대비 실측 머리글 10.51:1 · 본문 11.32:1 (기준 4.5:1).
조작으로 바꾼 화면은 사용자가 보던 주소로 되돌려 놓음.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>