This commit is contained in:
ysCha 2026-05-06 16:46:06 +09:00
parent a5d2964e8e
commit cee4f9e4e9
5 changed files with 97 additions and 13 deletions

View File

@ -1,6 +1,6 @@
- [잘 되는 코드 건들지 않기](feedback_no_touch_working_code.md) — 버그 수정 시 정상 코드 수정 금지, 최소 지점만 수정
- [코드 수정 시 주석 + 커밋 메시지 둘 다 제시](feedback_inline_change_tag.md) — 인라인 `[태그명 YYYY-MM-DD]` + 작업 단락 끝에 git commit 메시지 제안 (사용자가 직접 입력)
- [작업 완료 = 코드+인수인계서+커밋 메시지 한번에](feedback_handover_sync.md) — 코드 변경 시 docs/ 인수인계서 동시 갱신, 한국어 커밋 메시지 제시(직접 커밋 X), 해시는 post-commit 훅 자동 기록
- [작업 완료 = 코드+인수인계서/메모리, 커밋은 2단계](feedback_handover_sync.md) — 같은 응답에 코드+docs+memory 모두 작성. 단 커밋은 1차 코드만→해시확보→[TBD-CODE] 치환→2차 docs/memory. 커밋 메시지 2개 제시.
- [커밋 로그 파일 위치](reference_commit_log.md) — qcast-front 는 post-commit 훅으로 `memory/commit_log.txt` 에 매 커밋 자동 append
- [오버 이동은 평행 위치까지 클램핑](feedback_over_move_silent_skip.md) — useMovementSetting handleSave OVER_GUARD. 정책 flag `OVER_MOVE_POLICY` (clamp/reject/passthrough) 상단 상수로 전환 가능
- [moveLine + offset 이중 적용 방지](feedback_moveline_offset.md) — drawHelpLine 호출 전 roof.moveFlowLine/moveUpDown 설정 금지. 순서: baseLines 복원 → drawHelpLine(moveLine 없이) → moveLine 속성 복원
@ -22,3 +22,4 @@
- [마루이동 x/y-overlap 사전필터](project_marudo_xoverlap_prefilter.md) — useMovementSetting FLOW_LINE 거리최소필터 이전 overlap 사전필터. 2차 이동 반대측 wall 오선택 차단.
- [hip pitch 폴백](project_hip_pitch_fallback.md) — processEavesEdge:2915 outerLine.pitch ?? roof.pitch ?? 0. hip 의 plane===actual 메뉴토글 무효 버그 수정.
- [auxiliaryLine integrate 제외](project_aux_line_integrate_exclusion.md) — integrateExtensionLines sk-finder 에서 aux 제외. ext+aux 코너끝점 손실 → split 실패 차단.
- [저구배+특정기와 안내 alert](project_low_pitch_warning.md) — 6종 기와(和瓦A/B,平板瓦C/D,S瓦,セメント瓦)+寸 2~2.5미만 시 시공 매뉴얼 안내 alert(OK만). util `roof-pitch-warning.js`

View File

@ -1,20 +1,20 @@
---
name: 작업 완료 시 인수인계서 동시 갱신 + 커밋 메시지 제안 + 커밋 해시는 자동 로그 참조
description: 코드 변경이 끝나면 같은 응답 안에서 관련 인수인계서까지 자동 갱신하고 한국어 커밋 메시지 한 줄을 제시한다. 커밋 해시는 post-commit 훅이 누적하는 commit_log.txt 에서 참조.
name: 작업 완료 시 인수인계서 동시 갱신 + 2단계 커밋 (선코드 후문서) + 커밋 해시는 자동 로그 참조
description: 코드 변경이 끝나면 같은 응답에서 인수인계서/메모리도 작성. 단, 커밋은 2단계 — 1차 코드만 커밋 → 해시 확인 → 인수인계서/메모리에 해시 명시 → 2차 커밋. 해시 자리는 [TBD-CODE] placeholder.
type: feedback
---
## 1. 커밋 메시지 제안
## 1. 커밋 메시지 제안 (2단계)
작업이 완료되면 항상 git 커밋에 사용할 메시지를 함께 제시한다.
작업이 완료되면 git 커밋 메시지를 **2개** 제시한다 — 1차 코드용 / 2차 문서·메모리용.
**Why:** 사용자가 직접 커밋한다 (Claude 가 `git commit` 하지 말 것). 매번 메시지 작성 요청을 반복시키지 않기 위함.
**Why:** 사용자가 직접 커밋한다 (Claude 가 `git commit` 하지 말 것). 또한 인수인계서/메모리에 자기참조 해시를 쓰려면 코드 커밋이 먼저 이뤄져야 한다 (§3 참조).
**How to apply:**
- 작업 완료 응답 마지막에 별도 섹션으로 커밋 메시지 제시
- 한국어 **타이틀 한 줄** (한 작업 = 한 커밋, 본문 불릿은 일반적으로 불필요)
- 작업 완료 응답 마지막에 **커밋 메시지 2개** 별도 섹션으로 제시
- **1차 (코드)**: 한국어 타이틀 한 줄. 변경 핵심 간결히.
- **2차 (문서/메모리)**: `docs: <태그> 인수인계서/메모리 갱신 (<해시>)` 형식. `<해시>` 자리는 사용자가 1차 커밋 후 알려주면 채움.
- **티켓번호(`[1845]` 등) prefix 는 임의로 붙이지 말 것** — 사용자가 직접 추가
- 변경 핵심을 간결히 (무엇을/어디서/어떻게 압축형)
## 2. 작업 완료 시 인수인계서 동시 갱신 (커밋 신호 기다리지 말 것)
@ -33,9 +33,23 @@ type: feedback
- 갱신 방식: **기존 §번호 보존**, 새 항목은 **마지막 번호 다음에 신규 섹션으로 append** (기존 §번호를 미루지 말 것 — diff 부담↑)
- 새 섹션에는 **작성일(YYYY-MM-DD)**, 배경(무슨 일이 있었나), 한 일(파일·라인·태그), 후속 확인 포인트
- 사소한 변경(오타·포맷팅 등) 인수인계서 정책에 영향 없으면 갱신 생략 가능. 의심되면 갱신 쪽으로 기울 것.
- 인수인계서 갱신은 같은 커밋에 묶을지 별도 커밋으로 분리할지 사용자에게 안내
- **커밋 해시 자리는 `[TBD-CODE]` placeholder** 로 두고 §3 의 2단계 커밋 흐름에 맡긴다.
## 3. 커밋 해시는 자동 로그에서 참조 (수동 기록 X)
## 3. 2단계 커밋 — 선(先)코드, 후(後)문서/메모리 (2026-05-06 신규)
**Why:** UI_MODAL_HANDOVER §1.1 표처럼 "어떤 작업이 어느 커밋인지" 인수인계서/메모리에 정확한 해시로 추적하려면, 코드 커밋이 먼저 이뤄지고 그 해시를 사후에 인수인계서/메모리에 적어야 함. 한 번에 커밋하면 자기참조 해시를 쓸 수 없음.
**How to apply:**
- 응답 구성: 코드 + 인수인계서/메모리 모두 같은 응답에서 작성. 해시가 들어갈 자리는 `[TBD-CODE]` placeholder 표시.
- 커밋 가이드 (사용자가 직접):
1. **1차 — 코드 파일만 stage 후 커밋** → 해시 확보 (`git rev-parse --short HEAD`)
2. 사용자가 해시를 Claude 에게 알려줌
3. Claude 가 인수인계서/메모리의 `[TBD-CODE]` → 실제 해시로 교체
4. **2차 — 인수인계서 + 메모리 stage 후 커밋**
- post-commit 훅의 `commit_log.txt` 에는 두 커밋 모두 자동 append (§4 참조)
- 인수인계서/메모리 변경만 단독으로 있는 작업(코드 변경 없음)은 1단계로 끝.
## 4. 커밋 해시는 자동 로그에서 참조 (수동 기록 X)
2026-05-06 부터 qcast-front 저장소에 git `post-commit` 훅이 설치되어, 커밋 직후 자동으로 `~/.claude/projects/-Users-cha-Works-Projects-qcast3-qcast-front/memory/commit_log.txt` 에 한 줄 append 된다.

View File

@ -0,0 +1,28 @@
---
name: 저구배+특정기와 안내 alert
description: 6종 기와(和瓦A/B, 平板瓦C/D, S瓦, セメント瓦) + 寸 2~2.5 미만 저장 시 시공 매뉴얼 안내 alert (OK 만)
type: project
---
저구배(2 ≤ pitch < 2.5 OR 11.31 angle < 14.04°) 에서 6종 기와 사용 저장 직전에 안내 alert 띄움 (OK , 중단 흐름 없음). (도입 커밋 `[TBD-CODE]`)
대상 6종 (`getRoofMaterialList` 응답 기준):
- `ROOF_ID_WA_53A`, `ROOF_ID_WA_53B`
- `ROOF_ID_HIRA_C`, `ROOF_ID_HIRA_D`, `ROOF_ID_HIRA_S`, `ROOF_ID_HIRA_SEME`
트리거 3 곳:
- `PlacementShapeSetting.handleSaveBtn` (배치면 초기설정 저장)
- `useRoofAllocationSetting.handleSave` (屋根面の割り当て)
- `useRoofAllocationSetting.handleSaveContext` (屋根材変更 후 할당)
판정/confirm 헬퍼: `src/util/roof-pitch-warning.js`
i18n 키: `modal.roof.material.low.pitch.warning`
**Why:** 저구배에서 이 6종 기와 제품군은 적용 가능한 부속/구조물에 제한이 있어, 사용자에게 시공 매뉴얼 사전 확인을 강제할 필요. 일본어 메시지 "2寸以上2.5寸未満の瓦を使用する場合…" 그대로 번역 사용.
**How to apply:**
- 6종 변경 시 `LOW_PITCH_RESTRICTED_ROOF_IDS` Set 만 수정 (3 트리거 핸들러는 수정 불필요)
- 임계값 변경 시 `PITCH_LOW_INCLUSIVE` / `PITCH_HIGH_EXCLUSIVE` / `ANGLE_*` 상수 수정
- 寸 / 度 둘 다 OR 조건 — `roofAngleSet``'slope'` 면 pitch 만, `'flat'` 이면 angle 만 갱신될 수 있어서. 한쪽만 검사하면 빠뜨림.
- 등록된 지붕재마다 순차 alert. OK 만 있고 중단 흐름 없음 — OK 누르면 저장 진행.
- 세션 캐시 없음, 매번 표시.

10
.gitignore vendored
View File

@ -46,4 +46,12 @@ yarn.lock
package-lock.json
pnpm-lock.yaml
certificates
.ai
.ai
# [auto-untracked 2026-05-06] 머신별 자동 산출물 / 알 수 없는 파일
.claude/memory/commit_log.txt
.claude/settings.local.json
last_updated.log
claude-501/
sl

View File

@ -125,11 +125,44 @@ UI 옵션을 켜고 끄는 토글 스위치를 일본어 모달들에 추가한
---
## 9. 인수 직후 권장 절차
## 9. 저구배 + 특정 기와 시공 매뉴얼 안내 (2026-05-06, 커밋 `[TBD-CODE]`)
### 9.1 무엇을
6종 기와 제품을 **저구배 (2 ≤ 寸 < 2.5 또는 11.31° ≤ 角度 < 14.04°)** 로 사용하려 할 때, 저장 직전에 시공 매뉴얼 확인 안내 alert 을 띄움 (OK 만 — 중단 흐름 없음).
### 9.2 트리거 3 곳
| # | 트리거 | 핸들러 |
|---|---|---|
| 1 | 配置面 초기설정 → 「保存」 | `PlacementShapeSetting.jsx` `handleSaveBtn` |
| 2 | 平面図入力 → 「屋根面の割り当て」 | `useRoofAllocationSetting.js` `handleSave` |
| 3 | [配置面]屋根材変更 → 「屋根面の割り当て」 | `useRoofAllocationSetting.js` `handleSaveContext` |
### 9.3 대상 屋根材 6종 (`getRoofMaterialList` 응답 기준)
`ROOF_ID_WA_53A` (和瓦A), `ROOF_ID_WA_53B` (和瓦B), `ROOF_ID_HIRA_C` (平板瓦C), `ROOF_ID_HIRA_D` (平板瓦D), `ROOF_ID_HIRA_S` (S瓦), `ROOF_ID_HIRA_SEME` (セメント瓦)
### 9.4 동작
- 안내 alert (OK 만). **중단 흐름 없음** — OK 누르면 저장 진행.
- 등록된 지붕재가 여러 개일 경우, 해당 항목마다 **순차로** alert.
- 세션 캐시 없음 — 트리거마다 매번 표시.
### 9.5 핵심 파일
| 파일 | 역할 |
|------|------|
| `src/util/roof-pitch-warning.js` | `LOW_PITCH_RESTRICTED_ROOF_IDS` Set + `isLowPitchRestricted` + `notifyLowPitchRestrictionForRoofs` |
| `src/locales/{ko,ja}.json` | i18n 키 `modal.roof.material.low.pitch.warning` |
### 9.6 임계 변경 시 주의
- 寸 / 度 둘 다 OR 조건. `roofAngleSet``'slope'``pitch` 만, `'flat'` 이면 `angle` 만 갱신될 수 있어서.
- 6종 ID 변경은 `LOW_PITCH_RESTRICTED_ROOF_IDS` 만 수정하면 됨. 트리거 3개 핸들러는 수정 불필요.
---
## 10. 인수 직후 권장 절차
1. 이 문서 통독.
2. 계산기 토글 모달 1개 (예: 보조선 사이즈변경) 직접 띄워서 동작 확인.
3. 외벽선 확정 다이얼로그 동작 확인 (Enter 키 포함).
4. 라인 오버 → 평행 자동 전환 확인 (SK 트랙 §8.1 와 함께).
5. 저구배 + 6종 기와 confirm 동작 확인 (배치면 초기설정에서 和瓦A + 寸=2 저장 → 팝업 확인).
끝.