[작업내용] :
- matchRoofShapePattern(descriptor)→shapeNum|null 순수 함수 설계
- 매칭 키 flows 집합(1차) + type/ridge guard(모순 거부)
- 폴백 null(4 비반환), confidence 무시 — UX 정책은 C 단계 위임
- 검증: scratchpad .mjs 불변식 하니스 8종
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
[작업내용] :
- PDF 분석→지붕형상 자동 매칭의 선행 단계로 8패턴 카탈로그 설계 정의
- 매칭 키: type+ridge+flows(화면축) 시그니처, flows 집합만으로 8패턴 유일 식별
- 5~8 화면축↔버튼 매핑을 useRoofShapeSetting case 4~8 에서 1:1 전사
- 매칭 함수·PDF 분석 확장은 다음 작업으로 분리(계약만 명시)
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
docs(outerline): 외벽선 확정(handleFix) 흐름 및 PDF 자동 확정 가이드 문서 추가
```
- 외벽선 확정 (`handleFix`) 로직의 상세 흐름과 확정 후 캔버스/Recoil 불변 조건을 문서화합니다.
- PDF 도면 분석을 통한 외벽선 자동 확정 기능 구현 시 참고할 설계 가이드와 체크리스트를 포함합니다.
- `handleFix` 본체와 `useEffect`, `ccwCheck` 등 관련 로직의 역할 및 주의사항을 명확히 합니다.
```
- '읽기 페이지 설정'의 평면도/입면도 페이지 번호가 프롬프트 힌트로만 쓰이고
PDF 전체가 Gemini 로 전송되던 문제 해결 — pdf-lib 로 지정 페이지만 잘라 전송
- 분할본이 12MB 이하면 inlineData(base64) 즉시 전송 → Files API 업로드·폴링 제거,
초과 시에만 Files API 로 fallback
- 분할 시 buildPrompt 를 페이지번호 힌트 대신 평면도/입면도 순서 매핑으로 전환
- 유효 페이지 0개 → 422 INVALID_PAGE_RANGE, 분할 실패 → 422 PDF_SPLIT_FAILED
- 설계 문서 추가(docs/superpowers/specs/2026-06-21-pdf-page-split-design.md)
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit introduces a new HTML document detailing the functionality of the PDF 도면 to 외벽선 자동작성 feature, including styles and layout for improved presentation.
- .env.development / .env.production 에 GEMINI_API_KEY 추가 (PDF 평면도 분석 기능용)
- docs/ 에 PDF → Gemini → 캔버스 반영 기능 구현 계획서(html) 추가
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
5개 이미지 API 라우트(upload/cad/map/canvas/estimate-image-copy)의 서버 처리,
클라이언트 콜러(useRefFiles/useImgLoader/useEstimateController), S3 키 레이아웃,
캔버스 캡처 가드 조건과 알려진 거친 모서리를 한 문서에 정리.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>