一键导入
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 页面并帮你完成安装。
基于 SOC 职业分类
세션 변경사항을 분석하여 검증 스킬 누락을 탐지합니다. 기존 스킬을 동적으로 탐색하고, 새 스킬을 생성하거나 기존 스킬을 업데이트한 뒤 CLAUDE.md를 관리합니다.
todoStore↔timerStore 간 연동 및 삭제 안전성 SYNC-1~6 검증.
프로젝트의 모든 verify 스킬을 순차 실행하여 통합 검증 보고서를 생성합니다. 기능 구현 후, PR 전, 코드 리뷰 시 사용.
서버 사이드 타이머 동기화 SYNC-T1~T5 검증. 브라우저 닫아도 타이머 상태 유지, 서버 시간 기준 경과시간 계산.
UX/동작 규칙 E1-E9 검증. 컴포넌트, CSS, App 레이아웃 변경 후 사용.
프론트↔백엔드 API 연동 API-1~7 검증. todoStore, 서버 라우트 변경 후 사용.
| 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/ 제외