인수인계 — GS 안산 성포 한샘 견적서 (26.9.7 · 블록명 규약만 남음)
앞 세션이 컨텍스트 51.8% 로 넘겼다. 산출물은 이미 정상 동작한다. 남은 건 페페 지시 1건. 작업 폴더 =
C:\dev\_work\gs-ansan-seongpo\· 리포 =C:\dev\pfs
0. 🔴 남은 일 — 이거 하나다
페페 지시(26.9.7 채팅) = 「각 행블록 이름들도 잘 정리해서 맞춰라. 포인 양식 항목별 이름이 기준이다. 단가만 해당 단가항목으로 설정.」
- 지금 = 블록명이 한샘 단가군 이름(
상부장·하부장·하부 FIX PANEL·키큰장)이고, 포인 품명(장식장 키큰장·냉장고장·가전소물장·홈바 상부 유리장)은 세트 라벨(C열) 에만 있다. 한 블록이 포인 항목 여러 개를 칸으로 나눠 갖는다(예 84A 키큰장 블록 = 장식장 키큰장·냉장고장·가전소물장). - 가야 할 곳 = 포인 항목 1개 = 블록 1개, 블록명 = 포인 품명.
단가 LOOKUP 만 한샘 단가군을 쓴다 —
KIT_BASE/KIT_TALL+ 배수(FIX 0.5 · 공틀도어 0.7).<블록명>-추가블록도 그 항목 바로 밑에 붙는다(이름도장식장 키큰장-추가식이 된다). - 고칠 곳 =
C:\dev\_work\gs-ansan-seongpo\hansem_plan.py의BLOCK_OF/FIX_BLOCK배정 로직. 지금은 「분류 → 고정 블록행, 같은 블록이면 col_index 를 늘린다」. 이걸 항목마다 제 블록으로 바꾼다. 블록 좌표(block_row)는 더 이상 4/11/18/25/32/39/46 에 못 담긴다(84A 는 본 7 + 추가 5 = 12블록). ⚠hansem_excel.BLOCK_ROWS는 양식 원본이 가진 7블록 좌표다 — 항목 수가 그보다 많으면 블록을 복제해 늘리는 코드가 필요하다(insert_extra_blocks가 이미 「블록 복제·삽입」을 한다. 그걸 일반화하는 게 제일 싸다). ⚠블록명은B{b}(B:O 병합) 셀이다. 단가행 LOOKUP 은C{b+5}(마감·등급 참조) — 단가군은 바꾸지 마라. - 끝나면 재빌드 → 검증 → NAS 교체(아래 §3 순서 그대로).
1. 페페 확정 규칙 (이번 건 정본 — 어기면 사고)
- 등급 A 고정 + 적용률로 금액 맞춤.
J{b+3} = J{b+2}/10*적용률. 적용률 = 목표금액 ÷ (A등급단가 × 배수 × 순길이/10), 소수 4자리. - 🔴행총액(
margin_total_amount)이 최종 청구액이고 추가금액이 그 안에 들어 있다. → 본항목 목표 = 행총액 − Σsub.amount. 안 빼면 이중 계상(1차가 그랬다). 실측 = 30,889,000 = 본 21,664,850 + 추가 9,224,150. - 🔴sub-item 은
/api/estimate/<no>에 없다./api/estimate/sub/list/<detail_no>로 상세마다 받는다. 46건.amount = price × qty × (1+margin%)= 마진 포함 최종합 → 한샘 지정단가 =amount/qty. <블록명>-추가블록 = 부모 블록 바로 아래, 미러열 순서 단가 → 수량 → 비고 → 적용가(행이름단 가/수 량/비 고/적용가). 적용가 ==J{b+2}*J{b+3}. 6칸 넘으면 같은 이름 블록 하나 더.- 적용률 곱셈 표기 금지(
상부장 x1.9383같은 메모 →apply_note=""). - 냉장고장은 한샘 단가표에 자리가 없다 → 키큰장(주방_키큰장) 단가군.
- 안 쓰는 블록은 삭제(숨기기 아님), 숨김 행 0.
- 갑지 절사 = 만원 단위 내림(
=-MOD(SUM(W19:AD22),10000)). 운반비 300,000, 시공비 0, 자재비 0, 수납 0. - 도면 = 모노크롬, 앵커 상자 비율(1.6179)로 레터박스.
2. 끝난 것 (건드리지 마라)
- PFS 엔진
C:\dev\pfs\api\pfs\hansem\hansem_excel.py— master350a080까지 push 완료.ensure_cell·remap_rows·insert_extra_blocks·drop_empty_blocks·_retarget_total·_ensure_price_formula(단가+적용가) ·inject_ledger2패스. 자체검사 =python api/pfs/hansem/hansem_excel.py. ⛔운영 미반영(deploy-live 는 페페가 채팅에 직접 입력해야 한다). - 운영 등록 = 양식
form_no=3활성 · 한샘 견적estimate_no=6(현장 2180). - NAS 정본 =
\\192.168.0.101\공유폴더\2026현장\견적\09월\넥서스\GS 안산 성포 MH\한샘 GS 안산 성포 MH 견적서 v2 (추가금액 반영).xlsx현재 갑지 합계 = 본오더 소계 30,880,000 + 운반비 300,000 = 31,180,000원. ⛔v1(…견적서.xlsx)은 페페가 Excel 로 편집한 파일 — 절대 덮어쓰지 마라. ⛒v2 를 교체할 땐_v2_uploaded.md5와 대조해서 내가 올린 그대로일 때만 덮어쓴다(스크립트에 이미 있다).
3. 재빌드·검증 순서 (그대로 따라라)
cd C:/dev/_work/gs-ansan-seongpo
PYTHONUTF8=1 python hansem_plan.py # 운영 769 + sub 46건 -> plan_769.json (assert 내장)
PYTHONUTF8=1 python build_form4.py # 4평형 주방전용 양식 재생성
PYTHONUTF8=1 python local_build.py # 양식 + plan -> 최종 견적서(추가블록 포함)
PYTHONUTF8=1 python _xlcheck.py "GS안산성포_한샘견적서_4평형.xlsx" # 구조(병합 겹침 등) 0건이어야 한다
PYTHONUTF8=1 python verify_form4.py # ALL PASS 여야 한다
_xlcheck.py= 엑셀 「복원하시겠습니까」 예방 검사(병합 겹침이 1순위 원인이었다). 항상 돌려라.verify_form4.py[3] = 단가기준→백데이터→LOOKUP→적용가→총합 수식 체인 실계산. ⛔Excel COM 쓰지 마라 — Bash 는 Session 0 라 COM 이 계속 거부하고 고아EXCEL.EXE만 남는다.- 운영 갱신이 필요하면
register_hansem.py {VERIFY|FORM|REGISTER|UPDATE|EXCEL}. ⚠register_poin.py는 import 만 해도 main() 이 돈다 →sys.argv = sys.argv[:1]로 자르고 import.
4. 시드 포인터
- 규칙 =
C:\dev\seedchain\projects\pfs\rules.md「🆕 신규」 맨 위 11줄(전부 26.9.7 이 건에서 나온 것) - 상태 =
C:\dev\seedchain\projects\pfs\handoff.md「✅ 26.9.7 GS 안산 성포 한샘 양식 재작성」 - 앞 세션 착수 근거 =
projects/pfs/relay-2026-09-07-hansem-form-rebuild.md(완료 배너 있음, 재구현 금지) - seedchain 최신 커밋
b544498· pfs master350a080
5. 페페 판단 대기 3건 (내가 못 정한다)
api/pfs/hansem/운영배포 여부 — 하면 기존 한샘 견적 4건의 엑셀 금액이 바로잡힌다 (지금 −4,123,878 ~ +7,412,865 어긋나 있다. 측정 =_prod_impact.py).- 한샘 견적에 sub-item 저장 스키마 넣을지 — 넣어야 운영이 v2 를 그대로 재생산한다.
지금 운영 다운로드에는
-추가블록이 없다(본항목만). - NAS v1 파일 정리 + 양식에서 수납 계열 시트 진짜 삭제(지금은 숨김+내용비움).