feat: 업무 작성 AI 할 일 추천

- POST /ai/suggest-checklist — 저장소 표시제목/설명 + 업무 제목/내용을 Claude 에 보내
  카테고리별(필수/추가/보안) 할 일 항목을 JSON 으로 받아 파싱(코드펜스/잡텍스트 방어, 빈 결과 502)
- AiSuggestController + SuggestChecklistDto + AiService.suggestChecklist/parseSuggestions
- 프론트: TaskCreatePage 액션바 "취소 / AI 추천 / 지시 보내기" + 체크리스트 추천 패널
  (카테고리별 항목 클릭 추가·전체 추가·중복 스킵), useAi.suggestChecklist(silent)

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-06-20 15:05:34 +09:00
parent 51b608efeb
commit 0976a5057b
8 changed files with 478 additions and 1 deletions
+13
View File
@@ -3,6 +3,7 @@ import type {
ConversationDetail,
ConversationSummary,
SendResult,
SuggestChecklistResult,
} from '@/types/ai'
import type { Paginated } from '@/types/pagination'
@@ -43,11 +44,23 @@ export function useAi() {
await api.delete(`/ai/conversations/${id}`)
}
// 할 일(체크리스트) 추천 — 실패는 호출측에서 인라인 처리(silent)
async function suggestChecklist(payload: {
repoId: string
title: string
content?: string[]
}): Promise<SuggestChecklistResult> {
return (await api.post('/ai/suggest-checklist', payload, {
silent: true,
})) as unknown as SuggestChecklistResult
}
return {
listConversations,
getConversation,
startConversation,
sendMessage,
deleteConversation,
suggestChecklist,
}
}