부모 티켓
1개 티켓

백로그

0
티켓 없음

할 일

0
티켓 없음

진행 중

0
티켓 없음

리뷰

1
보통 b8b914c2
서브 티켓 [P5] LAUNCH 체크리스트 + 카피 생성기

LAUNCH 체크리스트 + Ai::CopyGeneratorService — Launch 컨트롤러 + 카피 생성 + 테스트

## 목표 Launch 네임스페이스. 출시 준비 체크리스트 UI. AI 카피 생성기 (landing_headline, landing_subcopy, landing_cta). ## 현재 상태 - Launch::HomeController 스텁 (index) - Launch::ChecklistsController 스텁 (show, update) - Launch::CopyGeneratorsController 스텁 (show, create) - 라우트: `namespace :launch { get "/", to: "home#index"; resources :projects, only: [] do resource :checklist, only: [:show, :update]; resource :copy_generator, only: [:show, :create] end }` - Project: landing_headline, landing_subcopy, landing_cta 필드 존재 - Ai::IdeaAnalyzerService/BlueprintGeneratorService 패턴 참고 ## 구현 사항 ### 1. Launch::ChecklistsController ```ruby def show @project = Current.user.projects.find(params[:project_id]) @checklist = build_checklist(@project) end def update # 체크리스트 상태는 프로젝트 필드 기반으로 계산 (별도 DB 불필요) redirect_to launch_project_checklist_path(@project) end ``` **체크리스트 항목** (프로젝트 데이터 기반 자동 판단): - [ ] 아이디어 분석 완료 (one_line_definition 존재) - [ ] 설계도 생성 완료 (tech_stack 존재) - [ ] CLAUDE.md 생성 완료 (claude_md_content 존재) - [ ] 빌드 단계 50% 이상 완료 (completion_percentage >= 50) - [ ] 랜딩 카피 생성 완료 (landing_headline 존재) - [ ] 서비스 URL 등록 (service_url 존재) ### 2. Ai::CopyGeneratorService ```ruby class Ai::CopyGeneratorService def initialize(project:, user:) @project = project @user = user @client = Anthropic::Client.new(api_key: ENV["ANTHROPIC_API_KEY"]) end def call response = @client.messages(model: "claude-sonnet-4-6", max_tokens: 1000, system: system_prompt, messages: [{ role: "user", content: user_prompt }]) data = JSON.parse(response.content.first.text.strip) @project.update!(landing_headline: data["headline"], landing_subcopy: data["subcopy"], landing_cta: data["cta"]) end private def system_prompt = "VALUEIT 랜딩 카피 전문가. JSON만 응답. 한국어." def user_prompt "서비스: #{@project.one_line_definition}\n타겟: #{@project.target_customer}\n수익모델: #{@project.revenue_model}\n\nJSON: {\"headline\": \"...\", \"subcopy\": \"...\", \"cta\": \"...\"}" end end ``` ### 3. Launch::CopyGeneratorsController - show: 카피 결과 표시 (있으면) / 생성 버튼 - create: CopyGeneratorService 호출 (동기 또는 Job) → redirect ### 4. Launch::HomeController - index: 프로젝트 목록 + 각 프로젝트의 체크리스트 진행률 ### 5. 뷰 - checklist/show: 체크리스트 항목 (자동 판단, 읽기 전용 체크마크) - copy_generator/show: headline, subcopy, cta 표시 + 재생성 버튼 - home/index: 프로젝트별 출시 준비 상태 - 다크 테마, 기존 Partial ### ⚠️ 주의 - launch/ + services/ai/ 범위만 (developer-1은 services/toss/ 작업 중) - IdeaAnalyzerService 패턴과 일관성 (DI, JSON strip, 에러 처리) - 소유자 접근제어 ### 테스트 - ChecklistsController: show (체크리스트 항목 표시) - CopyGeneratorsController: show, create (API mock) - CopyGeneratorService: 카피 생성 + 프로젝트 업데이트 ### 완료 기준 - 체크리스트 항목 자동 판단 표시 - AI 카피 생성 동작 - 생성 카피 프로젝트 저장 - bin/rails test 전체 통과

D
developer-2
25 days

완료 (전체)

0
티켓 없음