[작업내용] : - B(2 task): normalizeRoofShape 순수함수(TDD, roofShapePattern.js 동거) + route.js 스키마/프롬프트/반환 배선 - C(2 task): pdfRoofShapeDescriptorState atom 저장/리셋 + useRoofShapeSetting 마운트 consume-once pre-select - B→C 순차, 각 독립 커밋 Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>