بنقرة واحدة
verify-todo-domain
TODO 도메인 규칙 B1-B6 검증. Todo 타입, CRUD 액션, 토글, 삭제 확인, 프런트-백 스키마 일치 변경 후 사용.
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
القائمة
TODO 도메인 규칙 B1-B6 검증. Todo 타입, CRUD 액션, 토글, 삭제 확인, 프런트-백 스키마 일치 변경 후 사용.
التثبيت باستخدام 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-todo-domain |
| description | TODO 도메인 규칙 B1-B6 검증. Todo 타입, CRUD 액션, 토글, 삭제 확인, 프런트-백 스키마 일치 변경 후 사용. |
TODO 도메인 모델이 합의된 규칙(B1-B6)을 준수하는지 검증합니다:
src/types/index.ts의 Todo 타입 변경 후src/stores/todoStore.ts 수정 후server/src/models/db.ts 또는 server/src/models/todo.ts 변경 후src/components/TodoItem.tsx 삭제 관련 로직 변경 후| File | Purpose |
|---|---|
src/types/index.ts | Todo, TimerPhase, TimerStatus, PomodoroSession 타입 정의 |
src/stores/todoStore.ts | CRUD + toggleTodo + incrementPomodoro 액션 |
src/components/TodoItem.tsx | 삭제 확인, 인라인 편집, 뽀모도로 시작 UI |
server/src/models/db.ts | SQLite 테이블 생성 SQL |
server/src/models/todo.ts | TodoModel CRUD 메서드 |
파일: src/types/index.ts
검사: 필수 필드 7개 존재
grep -n "id" src/types/index.ts
grep -n "title" src/types/index.ts
grep -n "description?" src/types/index.ts
grep -n "completed" src/types/index.ts
grep -n "completedPomodoros" src/types/index.ts
grep -n "createdAt" src/types/index.ts
grep -n "updatedAt" src/types/index.ts
PASS: 7개 필드 모두 존재, description은 optional(?) FAIL: 누락된 필드가 있음
파일: src/stores/todoStore.ts
검사: 4개 액션 + title.trim() 가드
grep -n "addTodo" src/stores/todoStore.ts
grep -n "updateTodo" src/stores/todoStore.ts
grep -n "deleteTodo" src/stores/todoStore.ts
grep -n "toggleTodo" src/stores/todoStore.ts
grep -n "title.trim()" src/stores/todoStore.ts
PASS: 4개 액션 + trim 가드 존재 FAIL: 액션 누락 또는 빈 제목 가드 없음
수정 방법: addTodo 시작에 if (!title.trim()) return; 추가
파일: src/stores/todoStore.ts
검사: toggleTodo에서 completed 반전 + updatedAt 갱신
grep -A5 "toggleTodo" src/stores/todoStore.ts | grep "!todo.completed\|!completed"
grep -A5 "toggleTodo" src/stores/todoStore.ts | grep "updatedAt"
PASS: !completed 반전 + updatedAt 갱신 모두 존재 FAIL: 어느 하나 누락
파일: src/types/index.ts
검사: 금지 필드 부재
grep -c "priority" src/types/index.ts
grep -c "tags" src/types/index.ts
grep -c "subtasks" src/types/index.ts
PASS: 3개 모두 0건 FAIL: MVP 범위 밖 필드가 존재
파일: server/src/models/db.ts
검사: todos 테이블에 프런트 타입의 모든 필드가 컬럼으로 존재
grep -n "id TEXT" server/src/models/db.ts
grep -n "title TEXT" server/src/models/db.ts
grep -n "description TEXT" server/src/models/db.ts
grep -n "completed INTEGER" server/src/models/db.ts
grep -n "completedPomodoros INTEGER" server/src/models/db.ts
grep -n "createdAt TEXT" server/src/models/db.ts
grep -n "updatedAt TEXT" server/src/models/db.ts
PASS: 7개 컬럼 모두 존재 FAIL: 프런트 타입에 있는 필드가 DB에 없음
파일: src/components/TodoItem.tsx
검사: 삭제 시 confirm 호출
grep -n "confirm(" src/components/TodoItem.tsx
PASS: confirm() 또는 동등 확인 UI 존재 FAIL: 확인 없이 즉시 삭제
수정 방법: if (!window.confirm('삭제하시겠습니까?')) return;
| Step | 검사 | 판정 | 비고 |
|------|------|------|------|
| 1 | Todo 타입 필드 | PASS/FAIL | 상세 |
| 2 | CRUD + 빈제목 가드 | PASS/FAIL | 상세 |
| 3 | 토글 로직 | PASS/FAIL | 상세 |
| 4 | MVP 경계 | PASS/FAIL | 상세 |
| 5 | 프런트-백 일치 | PASS/FAIL | 상세 |
| 6 | 삭제 confirm | PASS/FAIL | 상세 |
?)이어야 하며, 누락이 아닌 optional 표기 없는 경우만 FAILcompleted_pomodoros) — 매핑만 확인