본문으로 건너뛰기

Cursor용 RIPER-5 고급 에이전트 제약 모드

Cursor RIPER-5 Mode

RIPER-5는 AI 환각과 무단 코드 수정을 크게 줄이는 것으로 입증된 커뮤니티 제작 제약 프레임워크입니다. 원래 Claude 3.7을 위해 설계되었으며, Cursor의 Agent 모드에서도 매우 뛰어난 성능을 발휘합니다. 이 가이드는 5단계와 구현 방법을 설명합니다.

RIPER-5란?​

RIPER-5는 다음을 의미합니다:

단계이름목적
RResearch (연구)변경 없이 정보 수집
IIdentify (식별)정확한 문제 또는 요구사항 파악
PPlan (계획)상세하고 승인된 계획 수립
EExecute (실행)승인된 계획만 구현
RReview (검토)구현을 검증하고 테스트

5단계 상세 설명​

단계 1: 연구 (R)​

규칙: 읽기 전용. 파일 수정은 허용되지 않습니다.

작업:

  • 관련 파일 읽기
  • Grep으로 코드베이스 검색
  • 기존 패턴 분석
  • 의존성 이해

출력: 발견 사항이 포함된 연구 요약

## 연구 단계 완료

### 분석된 파일
- `src/auth/login.ts` - 현재 인증 흐름
- `src/middleware/auth.ts` - JWT 검증
- `tests/auth.test.ts` - 기존 테스트

### 주요 발견
1. 인증은 15분 만료 JWT 사용
2. 리프레시 토큰 메커니즘이 없음
3. 비밀번호 재설정이 구현되지 않음
4. 테스트는 로그인을 커버하지만 엣지 케이스는 커버하지 않음

### 의존성
- jsonwebtoken: ^9.0.0
- bcrypt: ^5.1.0

단계 2: 식별 (I)​

규칙: 정확한 문제 진술을 정의합니다.

작업:

  • 문제를 명확히 진술
  • 수락 기준 정의
  • 제약 조건 식별
  • 잠재적 위험 기록

출력: 문제 정의 문서

## 문제 식별

### 문제 진술
사용자는 15분 후 로그아웃되며 재인증해야 합니다.
이는 장기 실행 세션에 대해 나쁜 UX를 만듭니다.

### 근본 원인
JWT 토큰은 리프레시 메커니즘 없이 15분 후 만료됩니다.

### 수락 기준
- [ ] 사용자는 7일간 로그인 상태 유지
- [ ] 리프레시 토큰은 사용할 때마다 교체
- [ ] 이전 리프레시 토큰은 무효화
- [ ] 사용자는 모든 세션을 취소할 수 있음

### 제약 조건
- 이전 버전과의 호환성 유지 필요
- 기존 API에 대한 주요 변경 없음
- 기존 JWT 미들웨어와 작동해야 함

### 위험
- 리프레시 토큰이 손상된 경우 토큰 도난
- 토큰 추적을 위한 데이터베이스 저장소

단계 3: 계획 (P)​

규칙: 상세한 단계별 계획을 수립합니다.

작업:

  • 수정할 모든 파일 나열
  • 파일별 정확한 변경 사항 지정
  • 테스트 전략 정의
  • 롤백 절차 계획

출력: 상세한 구현 계획

## 구현 계획

### 수정할 파일

#### 1. `src/models/refresh-token.ts` (신규)
```typescript
// 리프레시 토큰 스키마
// 필드: id, userId, token, createdAt, expiresAt, revoked

2. src/services/auth.ts (수정)​

  • createRefreshToken() 함수 추가
  • rotateRefreshToken() 함수 추가
  • revokeAllUserTokens() 함수 추가

3. src/routes/auth.ts (수정)​

  • POST /refresh 엔드포인트 추가
  • POST /revoke 엔드포인트 추가

4. src/middleware/auth.ts (수정)​

  • 더 긴 세션을 지원하도록 JWT 검증 업데이트

테스트 계획​

  1. 토큰 교체에 대한 단위 테스트
  2. 리프레시 흐름에 대한 통합 테스트
  3. 토큰 취소에 대한 보안 테스트

롤백 계획​

  1. 리프레시 토큰 모델 제거
  2. 인증 서비스 변경 사항 되돌리기
  3. 새 엔드포인트 제거

### 단계 4: 실행 (E)

**규칙**: 계획된 내용만 구현합니다.

**작업**:
- 계획된 변경 사항 수행
- 계획을 정확히 따르기
- 각 파일 후 진행 상황 보고
- 계획 수정이 필요하면 중지

**출력**: 진행 상황 추적이 포함된 구현

```markdown
## 실행 단계

### 진행 상황
- [x] `src/models/refresh-token.ts` 생성
- [x] `src/services/auth.ts` 수정
- [ ] `src/routes/auth.ts` 수정 (진행 중)
- [ ] `src/middleware/auth.ts` 업데이트

### 수행된 변경 사항
1. 필드가 있는 RefreshToken 모델 추가
2. 토큰 교체 로직 구현
3. 취소 지원 추가

### 다음 단계
- 리프레시 엔드포인트 추가
- 미들웨어 업데이트

단계 5: 검토 (R)​

규칙: 모든 것이 계획대로 작동하는지 검증합니다.

작업:

  • 모든 테스트 실행
  • 회귀 확인
  • 수락 기준 검증
  • 편차 문서화

출력: 검토 보고서

## 검토 단계

### 테스트
- [x] 단위 테스트 통과 (15/15)
- [x] 통합 테스트 통과 (8/8)
- [x] 보안 테스트 통과 (5/5)

### 수락 기준
- [x] 사용자는 7일간 로그인 상태 유지
- [x] 리프레시 토큰은 사용할 때마다 교체
- [x] 이전 리프레시 토큰은 무효화
- [x] 사용자는 모든 세션을 취소할 수 있음

### 회귀
- 감지되지 않음

### 계획에서의 편차
- 토큰 정리 cron 작업 추가 (원래 계획에 없음)
- 이유: 만료된 토큰으로 인한 데이터베이스 비대 방지

Cursor에서 RIPER-5 설정​

단계 1: 규칙 파일 생성​

.cursor/rules/riper5-mode.mdc 생성:

---
description: 'RIPER-5 고급 제약 모드'
globs: ['**/*']
alwaysApply: true
---

# RIPER-5 모드

모든 작업에 대해 RIPER-5 워크플로를 따라야 합니다.

## 단계 순서
1. **연구** - 읽기 및 분석만 수행
2. **식별** - 문제 정의
3. **계획** - 상세한 계획 수립
4. **실행** - 계획만 구현
5. **검토** - 검증 및 테스트

## 단계 규칙

### 연구 단계
- Read, Grep, Search 도구만 사용
- 파일 수정 금지
- 코드 생성 금지
- 구조화된 형식으로 발견 사항 제시

### 식별 단계
- 문제를 명확히 진술
- 수락 기준 정의
- 제약 조건 나열
- 위험 식별

### 계획 단계
- 수정할 모든 파일 나열
- 각 파일의 정확한 변경 사항 표시
- 테스트 전략 포함
- 롤백 계획 포함
- 사용자 승인 대기

### 실행 단계
- 계획된 변경 사항만 구현
- 각 파일 후 보고
- 막히면 설명 요청
- 계획 외 수정 금지

### 검토 단계
- 모든 테스트 실행
- 수락 기준 검증
- 회귀 확인
- 편차 문서화

## 중요
- 단계를 건너뛰지 마세요
- 연구 단계에서 파일을 수정하지 마세요
- 실행 단계에서 계획 외 변경을 추가하지 마세요
- 실행 단계 전에 항상 승인을 받으세요

단계 2: 시스템 프롬프트에 추가​

Cursor 설정에서:

## RIPER-5 워크플로

모든 작업에 대해 다음 5단계를 따라야 합니다:

1. **연구**: 변경 없이 읽기 및 분석
2. **식별**: 정확한 문제 정의
3. **계획**: 상세한 구현 계획 수립
4. **실행**: 승인된 계획만 구현
5. **검토**: 모든 것이 작동하는지 확인

현재 단계를 완료하지 않고 다음 단계로 진행할 수 없습니다.
연구 또는 식별 단계에서 파일을 수정할 수 없습니다.
실행 단계에서 계획 외 변경을 추가할 수 없습니다.

단계 3: 간단한 작업으로 연습​

익숙해지기 위해 작은 작업부터 시작하세요:

[작업] 날짜를 형식화하는 유틸리티 함수를 추가하세요.

RIPER-5를 따르세요:
1. 기존 날짜 처리 연구
2. 필요한 것 식별
3. 구현 계획
4. 내 승인 후 실행
5. 결과 검토

고급: 체크포인트가 있는 RIPER-5​

Git 통합​

# 시작 전 (연구 단계)
git checkout -b feature/riper5-task
git commit -m "checkpoint: before RIPER-5 implementation"

# 연구 단계 후
git add research-notes.md
git commit -m "riper5: research complete"

# 계획 단계 후 (승인 전)
git add plan.md
git commit -m "riper5: plan created, awaiting approval"

# 실행 단계 후
git add -A
git commit -m "riper5: implementation complete"

# 검토 단계 후
git commit -m "riper5: review passed, tests green"

효과성 측정​

다음 지표를 추적하세요:

지표RIPER-5 도입 전RIPER-5 도입 후
무단 변경높음거의 없음
계획 승인률해당 없음>90%
변경 후 테스트 통과율60%95%
롤백 빈도높음낮음
사용자 만족도복합적높음

일반적인 과제​

과제해결책
에이전트가 단계를 건너뜀엄격한 규칙으로 강제
계획이 너무 광범위함파일 수준의 구체성 필요
검토가 피상적임테스트 실행을 의무화
간단한 작업을 느리게 만듦사소한 변경에는 지름길 허용

빠른 참조​

[RIPER-5 시작]

단계 1/5: 연구
[에이전트가 읽고 분석]

단계 2/5: 식별
[에이전트가 문제 정의]

단계 3/5: 계획
[에이전트가 계획 생성]
[사용자: 승인 또는 수정]

단계 4/5: 실행
[에이전트가 구현]

단계 5/5: 검토
[에이전트가 검증]

[RIPER-5 완료]

관련 리소스​