بنقرة واحدة
verify-session-recording
PomodoroSession 생성·저장 SES-1~5 검증. timerStore, 세션 모델/라우트 변경 후 사용.
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
القائمة
PomodoroSession 생성·저장 SES-1~5 검증. timerStore, 세션 모델/라우트 변경 후 사용.
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
세션 변경사항을 분석하여 검증 스킬 누락을 탐지합니다. 기존 스킬을 동적으로 탐색하고, 새 스킬을 생성하거나 기존 스킬을 업데이트한 뒤 CLAUDE.md를 관리합니다.
todoStore↔timerStore 간 연동 및 삭제 안전성 SYNC-1~6 검증.
프로젝트의 모든 verify 스킬을 순차 실행하여 통합 검증 보고서를 생성합니다. 기능 구현 후, PR 전, 코드 리뷰 시 사용.
서버 사이드 타이머 동기화 SYNC-T1~T5 검증. 브라우저 닫아도 타이머 상태 유지, 서버 시간 기준 경과시간 계산.
UX/동작 규칙 E1-E9 검증. 컴포넌트, CSS, App 레이아웃 변경 후 사용.
프론트↔백엔드 API 연동 API-1~7 검증. todoStore, 서버 라우트 변경 후 사용.
استنادا إلى تصنيف SOC المهني
| name | verify-session-recording |
| description | PomodoroSession 생성·저장 SES-1~5 검증. timerStore, 세션 모델/라우트 변경 후 사용. |
뽀모도로 세션(PomodoroSession)이 실제로 생성·저장되는지 검증합니다:
src/stores/timerStore.ts의 start/onPhaseComplete 수정 후server/src/models/ 또는 server/src/routes/에 세션 관련 파일 추가/변경 후src/types/index.ts의 PomodoroSession 타입 변경 후| File | Purpose |
|---|---|
src/stores/timerStore.ts | start, onPhaseComplete — 세션 생성/완료 트리거 |
src/types/index.ts | PomodoroSession 타입 정의 |
server/src/models/db.ts | pomodoro_sessions 테이블 정의 |
server/src/models/session.ts | SessionModel (있을 경우) |
server/src/routes/sessions.ts | 세션 API 라우트 (있을 경우) |
파일: src/stores/timerStore.ts
검사: start 액션에서 PomodoroSession 생성 + startedAt 기록
grep -B2 -A10 "start\b" src/stores/timerStore.ts | head -20
grep -n "startedAt\|PomodoroSession\|activeSession\|sessionId" src/stores/timerStore.ts
grep -n "dayjs\|new Date\|toISOString" src/stores/timerStore.ts
PASS: start 시 세션 객체 생성 + startedAt 타임스탬프 기록 FAIL: start 액션에 세션 생성 로직 없음
수정 방법: start 액션에 activeSession: { id: crypto.randomUUID(), todoId: activeTodoId, startedAt: dayjs().toISOString() } 생성
파일: src/stores/timerStore.ts
검사: onPhaseComplete에서 work 완료 시 completedAt 업데이트
grep -B2 -A15 "onPhaseComplete\|phaseComplete" src/stores/timerStore.ts
grep -n "completedAt" src/stores/timerStore.ts
PASS: phase === 'work' 조건 내 completedAt 갱신 존재
FAIL: completedAt 업데이트 로직 없음
수정 방법: onPhaseComplete에 set({ activeSession: { ...activeSession, completedAt: dayjs().toISOString() } }) 추가
파일: server/src/models/
검사: 세션 모델 파일 존재 + CRUD 메서드
ls server/src/models/session* 2>/dev/null || echo "SESSION MODEL NOT FOUND"
grep -rn "create\|findAll\|findByTodoId" server/src/models/session* 2>/dev/null || echo "NO SESSION METHODS"
grep -n "pomodoro_sessions" server/src/models/db.ts
PASS: 세션 모델 파일 존재 + create/find 메서드 정의 FAIL: 세션 모델 파일 또는 메서드 부재
수정 방법: server/src/models/session.ts 생성, db.ts의 pomodoro_sessions 테이블 활용
파일: server/src/routes/
검사: 세션 라우트 엔드포인트 존재 (최소 POST + GET)
ls server/src/routes/session* 2>/dev/null || echo "SESSION ROUTE NOT FOUND"
grep -rn "router\.\(post\|get\)" server/src/routes/session* 2>/dev/null || echo "NO SESSION ENDPOINTS"
grep -n "session" server/src/index.ts
PASS: POST (생성) + GET (조회) 엔드포인트 존재 + index.ts에 라우트 등록 FAIL: 세션 라우트 미존재 또는 미등록
수정 방법: server/src/routes/sessions.ts 생성, POST /api/sessions + GET /api/sessions 구현, index.ts에 등록
파일: src/stores/timerStore.ts
검사: 세션 생성/완료 시 백엔드 API 호출
grep -n "fetch.*session\|/api/session" src/stores/timerStore.ts
grep -n "fetch\|axios\|ky" src/stores/timerStore.ts
PASS: 세션 생성/완료 시점에 fetch 호출 존재 FAIL: 프론트엔드 로컬 상태에만 보관
수정 방법: start 시 POST /api/sessions 호출, onPhaseComplete 시 PATCH /api/sessions/:id 호출
| Step | 검사 | 판정 | 비고 |
|------|------|------|------|
| 1 | 프론트 세션 생성 | PASS/FAIL | 상세 |
| 2 | 프론트 세션 완료 | PASS/FAIL | 상세 |
| 3 | 백엔드 모델 | PASS/FAIL | 상세 |
| 4 | 백엔드 API | PASS/FAIL | 상세 |
| 5 | 프론트↔백 연동 | PASS/FAIL | 상세 |
node_modules/ 제외