성과 관리(OKRT) 1단계 — 뼈대 구현

ID: b816c40f-c4f2-44e0-8b45-d3bb19ee58bd

높음 리뷰

구현안 docs/plans/leader-duties-workspace/index.html 의 10절 1단계.
- okr_* 데이터 모델 (cycles, objectives, key_results, owners, alignments, milestones, tasks, task_assignees, checkins, change_logs)
- 메뉴·권한: performance 키, MENU_FEATURES, 라벨 5개 언어, 사이드바
- 빈 첫 화면 · 정렬 만들기 · 이번 주(O→KR→TASK + 팀원 목록) · KR 상세 · 주간 점검 · 월요일 알림
- 용어 O·KR·TASK, 상태 정상·주의·위험·달성, KR 책임자 1명 권장(여럿 허용), TASK 담당 여럿

첨부 이미지

이미지 추가 (Ctrl+V로 붙여넣기 또는 클릭)

JPEG, PNG, GIF, WebP / 최대 10MB

담당자: claude-code
생성일: 2026년 09월 25일 13:24

활동 로그

  • C
    claude-code 성과 관리 다듬기(같이 쓰기·TASK 진척·날씨·일괄 콕 찌르기·목록/카드 연결 보기·TASK 고치기) + 팀원 관리 1차(a20eb08c). 미배포.

    2026년 09월 26일 07:04:18

    상세 보기

    ## 성과 관리 추가(2026-09-26)
    - 같이 쓰기: 초안 → 팀장 확정, 확정 뒤 수정 제안, 팀원이 TASK 바로 넣기
    - TASK 진척(%), 체감 맑음·흐림·비, 점검 전 표시·일괄 콕 찌르기
    - 조직 전체 연결: 목록(나무)·카드(연결 지도), 독립 KR 빨간 테두리
    - TASK 고치기(제목·담당·마감일)

    ## 팀원 관리 1차
    - 메뉴 team_members(관리자·팀장), 팀원 목록(먼저 볼 사람부터)
    - 상세 탭: 대화(7가지 주제·5칸·⑤ 적어야 끝남·합의 할 일→TASK) / 성과 / 역할기술서(+혼자 정해도 되는 범위)
    - 질문 셋 전날 저녁 6시 메일, 팀원 본인은 성과 관리 화면에서 다음 대화·할 일 확인

    ## 남은 것
    - 팀원 관리 2차: 몰입 탭, 피드백 5단계, 대화 주제 자동 제안
    - 분기 마감·CSV·바로 알림, UI 맞추기, 배포

  • C
    claude-code 상태 변경: 진행 중 → 리뷰

    2026년 09월 25일 14:22:26

  • C
    claude-code 1단계(성과 관리 뼈대) 완료 — 1e 주간 점검(4ec4a542), 1f 월요일 알림·콕 찌르기(6ee05a67). 관련 테스트 296개 통과. 미배포.

    2026년 09월 25일 14:22:25

    상세 보기

    ## 1e 주간 점검
    - 책임 KR마다 값+체감, 맡은 TASK 상태, 막힌 것 하나를 한 번에 저장(휴대폰은 세 걸음)
    - 이번 주 화면 위 「이번 주 점검이 아직입니다」 카드

    ## 1f 알림
    - 월요일 8시 한 통(recurring okr_monday_digest): 점검 안내, 상속 원본 숫자 변경, 위 조직 새 KR, 남이 접은 TASK
    - 콕 찌르기: 관리자·그 조직 팀장, 주 1회, 보낸 사람 비공개
    - 알림톡은 기본 꺼짐 — NCP에 okrWeeklyV1·okrNudgeV1 템플릿 검수 후 OKR_ALIMTALK=on

    ## 남은 것
    - 배포(프로덕션 SHA 대조 후 kamal deploy) — 사용자 확인 필요
    - 2단계 팀원 관리 1차부터

  • C
    claude-code 1d KR 상세 패널과 창 다섯 개 커밋 (4d802bd9). 관련 테스트 234개 통과, 브라우저로 체크인·접기·삭제 흐름 확인

    2026년 09월 25일 14:10:01

    상세 보기

    ## 변경
    - KR 상세: 오른쪽 패널(turbo-frame) + 전체 보기, 탭 넷(개요·TASK·이력·연결)
    - 창: 체크인 / TASK 접기(이유 필수) / 진척 계산 바꾸기(전후 %와 영향) / 위 KR에 걸기 / KR 삭제(관리자만, 확인 체크)
    - 변화의 첫 신호: 숫자 두 주 이상 그대로, 체감 두 주 연속 어렵다, 같은 막힌 것 계속
    - 공개 범위 Okr::Visibility로 통합
    - 성과 관리 하위 화면에서 사이드바·하단 탭 활성 표시

    ## 다음
    - 1e 팀원 주간 점검(책임 KR마다 숫자+체감, TASK 상태, 막힌 것)
    - 1f 월요일 알림(+ 콕 찌르기)

  • C
    claude-code 1c 정렬 만들기 + 빈 첫 화면 커밋 (27a224e7). 새 테스트 19개 통과, 브라우저로 5단계를 끝까지 돌려 확인

    2026년 09월 25일 13:57:17

    상세 보기

    ## 변경
    - 빈 첫 화면: 위 조직이 KR을 정했나 → 정했음 / 아직 / 맨 위 세 갈래 (팀원에게는 안내만)
    - 정렬 만들기 5단계: ① 위 KR 고르기 ② O ③ KR 상속·연결 ④ TASK(담당 여럿) ⑤ KR 책임자(한 명 권장)
    - 경고는 막지 않고 안내만: 위 KR 셋 초과, O에 숫자, 위 KR 그대로 옮김, KR 다섯 초과, 공동 책임, 한 사람 셋 초과, 책임자 없음
    - Okr::AlignmentForm으로 한 번에 저장(트랜잭션), 분기가 없으면 저장할 때 만듦
    - 권한 OkrAccess: 관리자는 어느 조직이든, 팀장은 자기 조직과 그 아래
    - 이번 주 화면: + O 추가 버튼, KR 줄 진척 막대 줄바꿈 버그 수정(휴대폰은 둘째 줄)

    ## 확인
    - 개발 서버에서 데스크톱·휴대폰 너비로 전체 흐름을 스크린샷 확인, JS 오류 0
    - 확인용으로 만든 개발 DB 데이터는 지움(개발 DB 건수 전후 동일)
    - engagement_surveys 테스트 간헐 실패 1회는 기존 `order(:created_at).last` 문제(이번 변경과 무관, 재실행 통과)

    ## 다음
    - 1d KR 상세 패널 + 체크인 창

  • C
    claude-code 1b 메뉴·권한·「이번 주」 화면 커밋 (4486c526) — 테스트 42개 + 영향 범위 137개 통과

    2026년 09월 25일 13:38:28

    상세 보기

    ## 변경
    - 권한 키 `performance`(admin·leader·member) + MENU_FEATURES → 설정·관리자 권한 표에 노출
    - 사이드바(팀 강점 다음), 폰 하단 탭(대시보드 다음, 1:1 코칭은 맨 뒤)
    - `Workspaces::PerformanceController#show`, `Okr::WeekBoard`, `OkrHelper`
    - 화면: O → KR → TASK(책임자 깃발·공동, TASK 담당 여럿, 진척+지금쯤 눈금) + 팀원 목록(먼저 볼 사람 순)
    - `okr_week_controller.js`: 사람 선택 시 KR·TASK 강조/흐림, 팀원 줄 펼침, 「볼 것만」에서 정상 KR 접기
    - 공개 범위: O·KR·TASK 전체 공개, 체감·막힌 것은 본인과 그 조직 직속 팀장·관리자만
    - 문구 5개 언어(config/locales/okr/*)

    ## 덤으로 고친 버그
    - en/zh/vi/ja 설정 권한 표에 coaching 라벨 누락 → 영어 화면에도 「1:1 코칭」이 한국어로 나오던 것

    ## 다음
    - 1c 정렬 만들기(5단계) + 빈 첫 화면

  • C
    claude-code 1a 데이터 모델 커밋 (89f9efe6) — okr_ 테이블 10개, 모델 테스트 31개 통과

    2026년 09월 25일 13:30:08

    상세 보기

    ## 변경
    - `db/migrate/20260925133000_create_okr_tables.rb` — cycles, objectives, key_results, key_result_owners, alignments, milestones, tasks, task_assignees, checkins, change_logs
    - `app/models/okr/*` — 진척(측정 방식 6종·자동 평균·직접 측정·상속), 상태(정상·주의·위험·달성), 연결/상속 고리 방지, TASK 접기(이유 필수), 체크인 → KR 숫자 반영(상속이면 원본)
    - `app/services/okr/guardrails.rb` — O당 KR 5개, 1인 책임 3개 초과, 공동 책임 경고
    - `config/locales/okr/{ko,en,zh,vi,ja}.yml`
    - Workspace/WorkspaceMember/WorkspaceGroup 연관 추가(멤버 삭제 시 정리, 조직 삭제 시 O는 보존)

    ## 검증
    - test/models/okr 31개 통과, 기존 워크스페이스 테스트 46개 통과
    - 개발 DB 건수 전후 동일(11073·159·4580)
    - 테스트가 잡은 버그: 새 KR id=nil 비교로 모든 상속을 고리로 막던 문제 수정

  • C
    claude-code 상태 변경: 할 일 → 진행 중

    2026년 09월 25일 13:24:52