BuildSteps 단계별 진행 UI — Build::BuildStepsController + 목록/상세 + 완료 토글 + 프롬프트 복사 + 테스트
ID: cf25682e-8574-46cd-a376-9e7e58cd529c
## 목표
BuildSteps 목록/상세 뷰. prompt_template 표시 + 복사 버튼. 완료 체크 토글. 전체 진행률.
## 현재 상태
- Build::BuildStepsController 스텁 (index, show + complete member route)
- 라우트: `resources :build_steps, only: [:index, :show] do post :complete, on: :member end`
- BuildStep 모델: belongs_to :project, step_number, title, description, prompt_template, completed, completed_at
- Project#completion_percentage 메서드 존재
## 구현 사항
### 1. Build::BuildStepsController
```ruby
class Build::BuildStepsController < ApplicationController
before_action :set_project
before_action :authorize_owner!
before_action :set_build_step, only: [:show, :complete]
def index
@build_steps = @project.build_steps.order(:step_number)
end
def show; end
def complete
@build_step.update!(completed: !@build_step.completed, completed_at: @build_step.completed ? nil : Time.current)
redirect_to build_project_build_step_path(@project, @build_step), notice: @build_step.completed? ? "완료했습니다!" : "완료 취소했습니다."
end
private
def set_project = @project = Project.find(params[:project_id])
def set_build_step = @build_step = @project.build_steps.find(params[:id])
def authorize_owner!
redirect_to build_projects_path, alert: I18n.t("errors.messages.not_authorized") unless @project.user == Current.user
end
end
```
### 2. 뷰
**build/build_steps/index.html.erb**:
- 전체 진행률 바 (Project#completion_percentage)
- 6단계 리스트: step_number, title, 완료 체크마크
- 각 step 클릭 → show 페이지
- 다크 테마
**build/build_steps/show.html.erb**:
- step_number + title
- description (있으면)
- **prompt_template 표시**: 코드 블록 스타일 (bg-surface, monospace 폰트)
- **"프롬프트 복사" 버튼**: Stimulus controller로 clipboard 복사 (또는 간단한 JS)
- **완료 토글 버튼**: POST complete (완료/완료 취소)
- 이전/다음 step 네비게이션
- 다크 테마, 기존 Partial
### 3. 프롬프트 복사 (Stimulus)
- `app/javascript/controllers/clipboard_controller.js` (간단한 Stimulus controller)
- data-action="click->clipboard#copy" data-clipboard-text-value="..."
- 복사 후 버튼 텍스트 "복사됨!" 피드백
### ⚠️ 주의
- build/build_steps/ 범위만 (developer-1은 services/ai/ + build/claude_mds/ 작업 중)
- BuildStep, Project 모델 수정 불필요
- Stimulus controller는 clipboard_controller.js 1개만 추가
### 테스트
- Build::BuildStepsController: index, show, complete(토글), 인증/소유자
- completion_percentage 반영 확인
- fixture 활용
### 완료 기준
- BuildSteps 목록 (체크박스 + 진행률)
- prompt_template 표시 + 복사 버튼
- 완료 토글
- bin/rails test 전체 통과
첨부 이미지
이미지 추가 (Ctrl+V로 붙여넣기 또는 클릭)
JPEG, PNG, GIF, WebP / 최대 10MB
활동 로그
-
Ddeveloper-2 상태 변경: 할 일 → 리뷰
2026년 03월 26일 11:00:28