앞 커밋에서 원문 「(단위: 일 당)」을 보고 12-7-1·12-7-2·12-8·12-38-3·13-16-2 에 밑수 「1일」을
넣었으나, 이 표들은 **작업조 표**로 밑수가 시공량 열이다(1단위당 = 인원 ÷ 시공량 · B09 CrewOutput).
「1일」이 박히자 그 길이 막혀 **`B-FP-12-38#보통` 호표가 통째로 사라졌음**(시험 둘 빨감).
2026-09-14 301 판정이 작업조 표를 미확보 목록에서도 빼 둔 까닭이 이것이었음.
- 다섯을 판정에서 뺌(F0339·F0340·F0341·F0395·F0449) · 까닭을 코드에 적음
- 밑수 확보 243 → 238 · 미확보 92 그대로(작업조 표는 애초에 미확보 목록에 안 듦)
- 「작업조 표는 밑수가 비어 있어야 한다」를 시험으로 못박음 — 다시 넣으면 빨감
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01QsGw1Dz9HmhuAxGisxmDPF
브레인 일감 ②. `[주]` 에 **단가에 바로 닿는 조건**이 적혀 있는데 마스터가 그 글을 안 싣고
있었음 — 받는 쪽이 볼 길이 없었음(안티그래비티 전수 대조 ④).
- 표마다 `notes` 칸 — 표 바로 아래 `[주]` 덩어리를 그대로 담음. 다음 표·다음 절을 만나면 멈춤
- 아홉 건이 다 들어옴 — 발파 가산 20%(F0245) · 고철 공제 50kg/㎥(F0251) ·
공구손료 3%·고소 감속 9%(F0395) · 덤프 환산(F0068) · 물탱크 5,500ℓ(F0285) …
- 아홉만이 아니라 **모든 표**에 담음 — 산림 320/453 · 건설 1,761/2,192
- ⚠ **읽기만 싣는다 — 여기서 셈하지 않음.** 쓰는 일은 로직 몫(브레인: 로직은 나중에)
- **순수 더하기** — 원문 셀 453/453 · 밑수 453/453 · 형태 453/453 그대로(건설도 2,192 전부)
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01QsGw1Dz9HmhuAxGisxmDPF
산출은 저쪽 것으로 다시 짓고, 내 쪽 시험 파일(열쇠 장부)은 내 것을 남김
(저쪽은 form 미판정 14 판정 전 판이라 70줄이 빠져 있었음).
- 이름표 — 산림 형태 미판정이 0 이 되어 그 표가 값 묶음으로 내려감(표 102 → 101)
- 갈래 다듬어진 줄 14 → 70(저쪽 이름 다듬기가 들어옴) · 갈래 332 그대로
- 지문·줄 수 다시 맞춤(밑수 미확보 산림 103 · 건설 439)
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01QsGw1Dz9HmhuAxGisxmDPF
브레인 일감 1. `산림품셈_form_미판정_14개_원문대조_규명.json`(안티그래비티)을 기존
사람 판정 자리(`FORM_JUDGMENTS`)에 실음 — 머리 소실 9 · 혼합 3 · 공식 1 · 글값 1, 전부 금액 대상.
- 형태 — 소요량형 9 · 생산량형 3 · 계수 2. **산림 미판정이 0 이 됨**
⚠ 안티그래비티가 적은 `formula` 는 낱말을 새로 만들지 않고 뜻이 같은 `coefficient` 로 둠
(받는 쪽이 모르는 형태를 만나면 조용히 건너뜀)
- 밑수 — 머리가 소실돼 **자동으로는 못 읽는 표 일곱**만 `BASIS_JUDGMENTS` 로(막갈이 100㎡당 ·
묘목운반 1,000본당 · 12-1-3 ㎥당 · 12-11-1 m당). 자동으로 읽히는 표는 안 넣음(정본이 흐려짐)
- **더하기만** — 형태 14가 undetermined 에서 갈렸고 밑수 5가 빈칸에서 찼음. 덮어쓴 값 0
- 딸린 시험·이름표 손질 — F0349 는 이제 소요량형 · F0322 「형식 미정」 사유가 사라짐 ·
미판정 목록이 비어 이름표에서 표 → 값 묶음으로 내려감(다시 생기면 표로 섬)
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01QsGw1Dz9HmhuAxGisxmDPF
안티그래비티 자리 명세(2dab2ce2)가 준 것은 **값이 아니라 읽는 규칙**이었음(155 중 142가
「표머리 명시 단위」 자리표시). 그래서 하나씩 넣지 않고 꼴을 코드로 짬.
- 본문 쪽 몫꼴(`SOURCE_BASIS_RATIO_RE`)은 이미 있었으나 **표머리는 안 보고 있었음** —
`인/ha`·`인/100kg`·`소요인력(인/본당)`·`재료비(1km 소요량기준)` 을 읽게 함. **분모가 밑수**
- ⚠ 반쪽 진실보다 「미확보」 — 거절하는 자리 둘
· 분모가 둘인 몫(`ℓ/일,대`) — 대수를 안 곱해 조용히 적게 섬
· 표머리끼리 어긋나는 표(`주연료 (ℓ/hr)` + `조종원 (인/일)`) — 먼저 걸린 것을 고르면 반은 틀림
- 차례가 뜻 — 표 안 「…당」이 먼저, 표머리 몫꼴은 그 뒤. **덮어쓴 것 0 · 사라진 것 0**
밑수 확보 산림 204 → 222(미확보 115 → 99) · 건설 515 → 538(447 → 439)
지문 한 번 갱신 — 값이 움직인 것이 아니라 **곱하면 안 되던 줄이 곱할 수 있게 된 것**
이름표 줄 수도 맞춤(basis_missing 115→99 · const 447→439)
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01QsGw1Dz9HmhuAxGisxmDPF
갈래가 공종 열쇠와 똑같은 병을 앓고 있었음 — 줄 열쇠에 갈래 **글자**가 그대로 들어가
`FW-00105#1.1∼1.5` 였고, 원문이 물결표를 둘(∼ 26 · ~ 8)로 쓰고 자간 공백만 다른 짝이
6쌍이라 **이름 한 번 다듬으면 열쇠가 갈렸음**(메인의 「띄어진 이름 175줄 다듬기」가 곧 그 손질).
- 갈래 장부 — `work_item_keys.json` 의 `variants`. 자리는 **공종 열쇠 아래**(목차 코드 아래가 아님)
· 산림 66 공종 · 갈래 335 · 맞대는 꼴은 공백을 다 떼고 물결표를 하나로
· 장부에 없는 갈래는 새 번호 · 사라진 번호는 다시 쓰지 않음(옛 일위대가가 가리키던 자리)
- 이름 칸 둘 — `name`(원문 그대로) · `name_clean`(자간 한 칸 · 물결표 하나) · 14줄이 다듬어짐
- Z01 줄 열쇠 `FW-00105#01` · 칸 `variant`(원문)·`variant_clean`(다듬은 것)
- 이름표 — 장부 `variants` 표 · 목록 열 `variant_clean` · 마스터 `variants` 칸
- 시험 — 갈래 열쇠 누락·중복 0 · 번호가 1부터 빠짐없음 ·
**원문을 다듬어도 같은 번호가 나옴**(물결표 바꿔 넣고 자간 정리해도 새 발급 0)
함께 — 건설 총칙 뿌리 확정(안티그래비티 조사 · 브레인): 공통부문 제8장 건설기계(CP-01-08)를
총칙에 더함(산림 FP-02 와 짝) · 유지관리 제1장 「공 통」은 공종으로 둠
⇒ 건설 줄 구실 공종 923 · 묶는 마디 258 · 총칙 112 · 빈 잎 74
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01QsGw1Dz9HmhuAxGisxmDPF
랩탑 서브가 낸 기본 감춤(2ee6a7ed)·갈래 펴기(0ff186c1)를 받고, 판정 자리만 옮김.
- 서버에 박혀 있던 `DEFAULTS` → `axis_policy.json` 의 `list_default` 를 읽음
(총칙 범위는 기관이 정하는 값 — 코드에 박으면 관리자가 못 고침 · 못 읽을 때만 대비값)
- 구실마다 `list_label` — 거르기 상자에서는 「총칙」이 아니라 **「공종 아님 · 규정·기준」**
· 기본 감춤이되 **지운 것이 아니라 감춘 것**임이 드러남
- 지금 수 — 산림 전부 627 중 공종 568 · 공종 아님 59 / 건설 전부 997 중 공종 983 · 공종 아님 14
⚠ 갈래 열쇠 흠 하나 기록 — `@id` 가 `FW-00105#1.1∼1.5` 꼴로 갈래 문자열을 그대로 담음.
원문이 물결표를 둘(∼ U+223C 26 · ~ U+FF5E 8)로 쓰고 자간 공백만 다른 짝이 6쌍이라,
문자열을 손질하면 열쇠가 갈림. 잣대 `known_defects` 에 적고 수를 시험으로 못박음(갈래 335).
건설은 갈래 키가 비어 편 수 = 줄 수(997).
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01QsGw1Dz9HmhuAxGisxmDPF
- 목록 응답 kinds 에 group_label — 이름표 base_price_groups 이름(기초단가 · 품셈 기준 · 공종 축) · 화면은 7cb15af1 부터 이 칸을 읽음
- 공종 축 계산 규칙 칸 — 이름표 value_overrides 의 work_item_master 방식 이름(아래 하나를 고름 · 아래를 단계로 다 더함) · 없으면 영문 그대로
- 표 수준 rules 의 mode 는 영문 그대로(기계가 읽는 자리)
- 화면 확인: 상자 넷 한글 · 발파암 다섯 줄 「아래를 단계로 다 더함 | 0.1 · 0.9 · 1」
- 시험: 상자 이름 셋 · 발파암 깍기 합산 · 토사깍기 하나 고름 · Z01·이름표 시험 105 통과
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016VBGFXB9AbJBwXP19z75Qq
- 줄 = 갈래(일위대가가 갈래마다 다름) · 산림 365공종 → 627줄 · 건설은 갈래 키가 비어 997 그대로
- 줄 열쇠 = 공종 열쇠#갈래 키(FW-00105#1.1∼1.5 · B08·B09 코드#갈래 꼴) · 갈래 키 글자는 마스터 것 그대로(조립 두 벌 금지)
- 공종 열쇠는 @key 로 함께 보냄 — 거르기(부문·줄 구실)와 stats.work_items 는 공종 단위
- 칸: 갈래 키 목록(variant_keys) → 갈래 하나(variant) · 이름표 공종 축 두 표의 열도 같이 바꿈(묵은 열 시험)
- 화면 코드는 그대로 — 산림 단추 627 · 교목굴취 찾기 10줄(9갈래 + 근원직경) · 2.6∼3.0 칸 집힘
- 시험: 교목굴취 9갈래 차례·열쇠 · 갈래 없는 공종은 # 없는 한 줄 · 갈래 이름으로 찾힘 · 앞 시험 수(365 → 627 · 발파암 3 → 5 · 가짜 자료 두 줄) 맞춤 · Z01·이름표 시험 105 통과
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016VBGFXB9AbJBwXP19z75Qq
평평한 목록 열(산림 8·건설 8)은 이미 다 한글이었으나, **파일 보기 쪽에 구멍**이 있었음 —
공종 축 산출 일곱이 이름표 `files` 에 아예 없어 덮개 시험도 그 파일을 안 훑고 있었음.
- 올린 일곱 — 건설 공종 마스터 · 건설 형태 미판정 · 건설 밑수 미확보(byproduct) ·
열쇠 장부 둘 · 구실 잣대(logic) · 건설 폴더 지문(fingerprint)
- 영문으로 뜨던 칸 열넷에 이름 — `general_provision_roots`「총칙 뿌리」 ·
`code_shape_why`「코드 꼴 까닭」 · `settled`「확정됐나」 · `relinked`「손으로 이은 자리」 따위
- 사전 모양 표 넷에 줄 이름 열 — 「산림 공종 열쇠」·「건설 공종 열쇠」·「구실 이름」·「갈래 이름」
- 잣대 칸 이름 통일 — `counts_2025_82`·`counts_2026` → `counts`(판이 바뀌어도 안 갈림)
- 다시 안 생기게 시험 하나 — `test_이름이_영문으로_떨어진_칸이_없다`
(「비지 않았나」만 보던 옛 시험은 영문 키가 이름 자리에 앉은 것을 못 잡았음)
- 못박은 수 갱신 — 파일 34→41 · logic 15→19 · byproduct 4→6 · 지문 3→4 · 표 92→100
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01QsGw1Dz9HmhuAxGisxmDPF
랩탑이 내 설계(잣대를 자료에서 읽기)를 취해 건설을 닫았음. 충돌 아홉 해소 — 코드·산출은 랩탑 것:
- **건설 총칙 뿌리를 적는 꼴은 랩탑 쪽** — 장 파일 이름(「01_공통부문/제1장_적용기준.md」).
뽑는 코드가 목차 코드(`CP-01-01`)로 바꿔 주니 관리자가 부문 번호를 셀 필요가 없음
⚠ 내가 코드로 적어 두었던 것이 랩탑 변환기(`file_place`)를 깨뜨렸음 — 되돌림
- 잣대에 미확정 둘의 **목차 코드도 함께 적음**(`CP-01-08` · `CP-05-01`) · 줄·표 수 · 근거
- 「건설 표 883 절 이름 어긋남」 결함 항목 지움 — 본문 절 제목으로 붙여 2,192 전부 제자리(브레인)
- 이름표 「기다리는 자리」 버림 — 랩탑이 `merged_tables` 로 옮겨 서버가 kind 를 냄
확인 — 갈래 「공종」 상자 둘: 산림품셈 기준 365줄(FW-) · 건설품셈 기준 997줄(CW-) ·
이름은 전체 경로 · 건설 줄 구실 공종 983 · 묶음 264 · 총칙 37 · 빈 잎 83 (합 1,367 그대로)
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01QsGw1Dz9HmhuAxGisxmDPF
- 이름·선택지·줄 수·기본값도, 어느 줄을 거를지 판정도 서버 것(화면은 판정 안 함 · 2026-09-17 브레인)
- 안 골랐으면 서버 default 를 보임 — 첫 선택지를 보이면 「전부」로 보이며 걸러진 목록이 뜸
- 고르면 1쪽부터 · 다른 표로 가면 고른 것 비움 · filters 없는 표(산림 등)는 상자 없음
- 화면 확인: 진짜 건설 공종 축 위에 가짜 filters 얹어 기본 「임도가 쓰는 것」 → 「전부」 전환 · 산림 상자 없음
- 시험: 기본값 = 서버 default(첫 선택지 아님) · 고르면 고른 값
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016VBGFXB9AbJBwXP19z75Qq
- 총칙 뿌리를 코드에서 꺼냄 — `general_provision_roots()` 가 `axis_policy.json` 을 읽음
(기관이 정하는 범위라 코드에 박으면 관리자가 못 고침)
- 방침 못박음 — `never_delete: true` · 평평한 목록은 `pum_tables > 0`(「잎」 아님)
- 구실 넷에 「지우지 않음」 딱지 — 브레인 승인(2026-09-17)
- 건설 축 자리 — `CP`/`CW` · 총칙 뿌리 `01_공통부문/제1장_적용기준.md` ·
⬜ 미확정 둘(제8장 건설기계 351표 · 유지관리 제1장 공통 40표 · 안티그래비티 조사 대기)
- ⚠ 건설 코드 꼴 경고 — 부문마다 장 번호가 1부터 다시 시작(공통 제1장=적용기준 ·
토목 제1장=도로포장) · 장 번호만으로 코드를 지으면 부문이 다른 공종끼리 덮음
계층 근거는 목차표가 아니라 장 파일 46개(`source_file` 칸)
- 이름표에 건설 kind 자리 — `pending_merged_tables` (서버가 kind 를 내는 날 옮겨 담을 것)
- 시험 둘 더 — 잣대가 자료에 있음 · 어느 구실도 안 지움
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01QsGw1Dz9HmhuAxGisxmDPF
이름표 충돌 해소 — 같은 자리는 랩탑 쪽(`merged_tables` 의 `work_item_forest`)을 취하고,
내 쪽에서 빠진 것만 되살림:
- `work_item_master` 새 표 `toc_duplicate_rows` · 새 값 묶음 `toc_edition`
- `work_items` 새 칸 여섯(work_item_key·toc_code·toc_number·toc_edition·path_name·axis_role)
- 공용 `columns` 여덟 — 랩탑엔 없어 영문으로 뜨던 것
- `value_overrides` — axis_role 넷 · rule 둘 낱말
- 내 `work_item_axis` 구획은 버림(두 곳에 같은 이야기를 두지 않음)
시험 둘 손질 — 열쇠가 실제로 오면서 뜻이 뒤집힌 자리:
- `test_z01_work_items.py` 「불변 열쇠 없음」 알림이 **사라지는 것**이 곧 열쇠가 섰다는 증거
- `test_z01_master_data.py` 표 수 91 → 92 (`toc_duplicate_rows`)
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01QsGw1Dz9HmhuAxGisxmDPF
- 열쇠 장부 `work_item_keys.json` — 판 없는 영구 장부 · 판(고시 2025-82)+목차 자리로만 이음
· 장부에 없으면 새 열쇠 + 「새로 난 공종」 목록(짐작으로 안 이음)
- 새 칸 여섯 — work_item_key · toc_code · toc_number · toc_edition · path_name · axis_role
`work_item_code`(FP-…) 는 이름째 그대로 둠 — 164 파일이 씀
- 잎 경로 이름 — 「토공 › 토사깍기 › 인력」 · 이름 겹침 35줄이 갈림
- 줄 구실 넷 — 공종 304 · 묶는 마디 82 · 총칙 78 · 빈 잎 13 (지우지 않고 가름만)
⚠ 총칙 2장은 B09 연료·손료가 읽어 못 지움(Consumables.py:44~99)
- ⚠ 목차 번호 겹침 둘 발견 — 12-17-2 · 12-24-1 이 서로 덮고 있었음 · 줄마다 제 열쇠로 갈라
`toc_duplicate_rows` 목록으로 냄
- 이름표 — 공종 축 구획(`work_item_axis`) 새로 · 갈래 「공종」 · kind 둘 · 열 열하나
- 금액 불변 시험 14개 — 새 칸 떼면 옛 벌과 지문(sha256) 같음
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01QsGw1Dz9HmhuAxGisxmDPF
- 지금 서버가 갈래 키(base_price·pumsem_basis)만 줘 상자 제목이 영문으로 뜨던 자리
- 공종 축(work_item) 상자는 코드 추가 없이 섬 — 가짜 응답으로 확인(산림 358 · 건설 가짜 2,199 · 찾기·끝 쪽)
- 시험: 갈래 이름이 오면 그 이름 · 안 오면 키가 드러남
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016VBGFXB9AbJBwXP19z75Qq
- 서버 `kind_group()` 이 내는 갈래 둘에 한글 이름을 붙임. 상자 설명도 한 줄씩 —
기초단가는 「**얼마인가** · 때가 되면 갈아 끼우는 값」, 품셈 기준은 「**얼마나 드나** · 품셈·법령이 정한 계수」
- ⭐ **서버가 읽을 자리를 못박음** — `labels["base_price_groups"][group]["name_ko"]`.
지금 서버에 갈래 이름 읽는 코드가 아직 없어, 두 창이 서로 다른 자리를 보면
2026-09-15 의 「26칸이 영문으로 뜸」 사고가 되풀이됨
- 시험 둘 더함 — 서버가 내는 갈래마다 이름표에 이름이 있는지 · 상자마다 kind 가 서고
그 kind 이름이 영문 그대로가 아닌지(빈 상자·영문 상자 막음)
- 새 kind 열 15칸은 앞 커밋(`46fe2bc0`)에서 이미 이름 붙음 — 지금 영문으로 뜨는 열 0
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01FFCnEYNH4tsS2MbHvzBhZk