Files
CODE_ASSISTANT/specs/005-chat-image-input/tasks.md
T
2026-09-16 17:22:14 +09:00

2.8 KiB

작업: 채팅 이미지 입력

Phase 1: 계약 기반

  • T001 2_frontend/src/features/snap/contract/types.ts에 이미지 입력과 stream 요청 계약 추가
  • T002 [P] 2_frontend/src/features/snap/api/snap.stream.test.ts에 images 요청 전달 테스트 추가

Phase 2: 사용자 스토리 1 - 캡쳐 이미지 전송

독립 테스트: 캡쳐 한 장만으로 새 세션을 만들고 이미지 요청을 전송함.

  • T003 [US1] 2_frontend/src/features/snap/components/Composer.test.tsx에 캡쳐 이미지-only 전송과 제한 테스트 추가
  • T004 [US1] 2_frontend/src/features/snap/components/Composer.tsx에 이미지 계약 변환·검증·전송 구현
  • T005 [US1] 2_frontend/src/features/snap/pages/NewChatPage.tsx2_frontend/src/features/snap/pages/SessionChatPage.tsx에 첫 이미지 전달 구현
  • T006 [US1] 2_frontend/src/features/snap/hooks/useSnapChat.test.tsx에 images 요청 body 테스트 추가
  • T007 [US1] 2_frontend/src/features/snap/hooks/useSnapChat.ts에 이미지 전송 연결

Phase 3: 사용자 스토리 2 - 클립보드 이미지 전송

독립 테스트: 기존 대화에서 지원 이미지를 클립보드로 가져오면 썸네일과 함께 요청에 포함됨.

  • T008 [US2] 2_frontend/src/features/snap/components/Composer.test.tsx에 클립보드 이미지 첨부 테스트 추가
  • T009 [US2] 2_frontend/src/features/snap/components/Composer.tsx에서 클립보드 이미지를 질문 첨부로 누적
  • T010 [US2] 2_frontend/src/features/snap/pages/SessionChatPage.tsx에서 기존 대화 이미지 입력 허용

Phase 4: 사용자 스토리 3 - 제한과 입력 보존

독립 테스트: 형식·개수·크기 제한을 넘으면 요청 없이 안내하고 작성 내용을 유지함.

  • T011 [US3] 2_frontend/src/features/snap/components/Composer.test.tsx에 형식·개수·크기·입력 보존 회귀 테스트 추가
  • T012 [US3] 2_frontend/src/features/snap/components/Composer.tsx의 오류 안내와 경계 처리를 완성

Phase 5: 마무리

  • T013 specs/005-chat-image-input/stage-1.md에 구현 및 단계 검증 결과 기록
  • T014 2_frontend에서 format, lint, test, build 실행
  • T015 specs/005-chat-image-input/report.md에 계획 대비 결과와 검증 기록

의존 관계

  • T001 뒤에 T003~T012를 진행함.
  • US1이 새 대화 전달 경로를 완성하고, US2는 같은 Composer 계약을 기존 대화까지 넓힘.
  • US3은 US1·US2의 공통 입력 경계를 잠금.

구현 전략

  • MVP는 US1의 캡쳐 이미지-only 전송임.
  • 다음으로 기존 대화 클립보드 입력을 연결하고 마지막에 제한 회귀를 잠금.
  • 모든 구현 작업은 대응 테스트 실패를 먼저 확인한 뒤 통과시킴.