[ contents ]
시작하기

시작하기

이 가이드는 설치 및 초기화한 후 rasen의 작동 방식을 설명합니다. 설치 지침은 설치 가이드를 참조하세요. 전체 문서 집합에 새로운가요? 문서 홈이 모든 것을 매핑합니다.

이 명령들을 어디에 입력하나요? 두 곳이 있으며, 그들을 혼동하는 것이 가장 일반적인 초기 실수입니다.

  • rasen ... 명령 (예: rasen init)은 터미널에서 실행됩니다.
  • /rasen:... 명령 (예: /rasen:propose)은 AI 어시스턴트의 채팅에서 실행됩니다. 코드를 작성해달라고 요청하는 동일한 상자입니다.

시작할 별도의 "대화형 모드"는 없습니다. 채팅에 슬래시 명령을 입력하면 어시스턴트가 처리합니다. 전체 설명: 명령이 어떻게 작동하는지.

첫 5분

전체 루프, 각 단계가 발생하는 위치로 라벨됨:

터미널     $ npm install -g @atelierai/rasen@latest
터미널     $ cd your-project && rasen init
AI 채팅    /rasen:explore                    (선택사항: 먼저 생각하기)
AI 채팅    /rasen:propose add-dark-mode      (AI가 계획을 초안, 당신이 검토)
AI 채팅    /rasen:apply                      (AI가 구축)
AI 채팅    /rasen:archive                    (스펙 업데이트, 변경 보관)

설정하는 두 터미널 단계, 그 후 채팅에서 살아갑니다. 이 가이드의 나머지는 각 단계가 무엇을 하고 무엇을 볼지 풉니다.

아직 뭘 구축할지 확실하지 않나요? /rasen:explore로 시작하세요. 코드베이스를 읽고, 옵션을 저울질하고, 모호한 아이디어를 구체적인 계획으로 날카롭게 하는 무해한 생각 파트너입니다. 모든 산출물이나 코드가 존재하기 전입니다. 그림이 명확하면 /rasen:propose로 인계됩니다. 이것은 그렇지 않으면 자신감 있게 잘못된 것을 구축할 AI로 작업할 때 형성할 가장 좋은 습관입니다. 탐색 가이드를 참조하세요.

작동 방식

Rasen은 코드가 작성되기 전에 당신과 AI 코딩 어시스턴트가 뭘 구축할지 동의하도록 돕습니다.

빠른 경로 (core 명령 집합):

/rasen:explore ──► /rasen:propose ──► /rasen:apply ──► /rasen:sync ──► /rasen:archive
   (선택사항)

뭘 할지 알아내고 있을 때 /rasen:explore로 시작하거나, 이미 알 때 /rasen:propose로 바로 뛰어들기. Explore는 기본 full 프로파일과 축소된 core 프로파일 모두에서 제공되므로, custom 프로파일을 선택하여 빠지지 않으면 그곳에 있습니다.

확장 경로 (단계별 산출물 제어):

/rasen:new ──► /rasen:ff 또는 /rasen:continue ──► /rasen:apply ──► /rasen:verify ──► /rasen:archive

기본 글로벌 프로파일은 full이며, 모든 워크플로우 명령을 설치합니다 — 이미 위의 두 경로 모두 사용 가능합니다. 필수 사항 (propose, explore, apply, sync, archive)으로 축소하려면 rasen config profile core로 전환한 다음 rasen update를 수행하세요.

Rasen이 생성하는 것

rasen init을 실행한 후, 프로젝트는 이 구조를 가집니다:

rasen/
├── specs/              # 신뢰할 수 있는 단일 소스 (시스템의 동작)
│   └── <domain>/
│       └── spec.md
├── changes/            # 제안된 업데이트 (변경당 폴더)
│   └── <change-name>/
│       ├── proposal.md
│       ├── design.md
│       ├── tasks.md
│       └── specs/      # 증량 스펙 (변경되는 것)
│           └── <domain>/
│               └── spec.md
└── config.yaml         # 프로젝트 설정 (선택사항)

두 가지 핵심 디렉터리:

  • specs/ - 신뢰할 수 있는 단일 소스. 이 스펙은 시스템이 현재 어떻게 동작하는지 설명합니다. 도메인별로 정리 (예: specs/auth/, specs/payments/).

  • changes/ - 제안된 수정. 각 변경은 모든 관련 산출물과 함께 자체 폴더를 가집니다. 변경이 완료되면, 스펙은 메인 specs/ 디렉터리로 병합됩니다.

산출물 이해

각 변경 폴더는 작업을 안내하는 산출물을 포함합니다:

산출물 목적
proposal.md "왜"와 "무엇" - 의도, 범위 및 접근 방식 캡처
specs/ ADDED/MODIFIED/REMOVED 요구사항을 보여주는 증량 스펙
design.md "어떻게" - 기술적 접근 방식 및 아키텍처 결정
tasks.md 체크박스가 있는 구현 체크리스트

산출물이 서로 기반합니다:

제안서 ──► 스펙 ──► 설계 ──► 작업 ──► 구현
   ▲         ▲         ▲               │
   └─────────┴─────────┴───────────────┘
         배우면서 업데이트

구현 중 더 배우면서 항상 이전 산출물을 검토하고 정제할 수 있습니다.

증량 스펙이 어떻게 작동하는지

증량 스펙은 rasen의 핵심 개념입니다. 현재 스펙에 비해 변경되는 것을 보여줍니다.

형식

증량 스펙은 섹션을 사용하여 변경 타입을 나타냅니다:

# 인증을 위한 증량

## ADDED 요구사항

### 요구사항: 2단계 인증
시스템은 로그인 중 두 번째 요소가 필요합니다(MUST).

#### 시나리오: OTP 필요
- GIVEN 2FA가 활성화된 사용자
- WHEN 사용자가 유효한 자격증명 제출
- THEN OTP 챌린지가 제시됨

## MODIFIED 요구사항

### 요구사항: 세션 시간초과
시스템은 30분의 비활성 후 세션을 만료합니다(SHALL).
(이전: 60분)

#### 시나리오: 유휴 시간초과
- GIVEN 인증된 세션
- WHEN 30분이 활동 없이 경과
- THEN 세션이 무효화됨

## REMOVED 요구사항

### 요구사항: 기억하기
(2FA 대신 사용 중단됨)

보관 시 발생하는 것

변경을 보관할 때:

  1. ADDED 요구사항은 메인 스펙에 추가됨
  2. MODIFIED 요구사항은 기존 버전 대체
  3. REMOVED 요구사항은 메인 스펙에서 삭제

변경 폴더는 감사 기록을 위해 rasen/changes/archive/로 이동합니다.

예제: 첫 번째 변경

애플리케이션에 다크 모드를 추가하는 방법을 살펴봅시다.

1. 변경 시작 (기본)

당신:     /rasen:propose add-dark-mode

AI:       rasen/changes/add-dark-mode/ 생성
          ✓ proposal.md — 왜 이것을 하는지, 뭐가 변경되는지
          ✓ specs/       — 요구사항 및 시나리오
          ✓ design.md    — 기술적 접근 방식
          ✓ tasks.md     — 구현 체크리스트
          구현 준비 완료!

확장 워크플로우 프로파일을 활성화했다면, 이를 두 단계로 수행할 수 있습니다: /rasen:new 그 다음 /rasen:ff (또는 증분적으로 /rasen:continue).

2. 생성되는 것

proposal.md - 의도를 캡처:

# 제안서: 다크 모드 추가

## 의도
사용자가 밤 시간 사용 중 눈 피로를 줄이기 위해 다크 모드 옵션을 요청했습니다.

## 범위
- 설정에 테마 토글 추가
- 시스템 환경설정 감지 지원
- localStorage에서 환경설정 유지

## 접근 방식
테마 관리를 위해 CSS 커스텀 속성과 React Context를 사용합니다.

specs/ui/spec.md - 새로운 요구사항을 보여주는 증량:

# UI에 대한 증량

## ADDED 요구사항

### 요구사항: 테마 선택
시스템은 사용자가 light와 dark 테마 사이를 선택하도록 해야 합니다(SHALL).

#### 시나리오: 수동 토글
- GIVEN 모든 페이지의 사용자
- WHEN 사용자가 테마 토글 클릭
- THEN 테마가 즉시 전환
- AND 환경설정이 세션 전체에 걸쳐 지속

#### 시나리오: 시스템 환경설정
- GIVEN 저장된 환경설정이 없는 사용자
- WHEN 애플리케이션 로드
- THEN 시스템의 선호 색 구성표가 사용됨

tasks.md - 구현 체크리스트:

# 작업

## 1. 테마 인프라
- [ ] 1.1 light/dark 상태로 ThemeContext 생성
- [ ] 1.2 색상에 CSS 커스텀 속성 추가
- [ ] 1.3 localStorage 지속성 구현

## 2. UI 컴포넌트
- [ ] 2.1 ThemeToggle 컴포넌트 생성
- [ ] 2.2 설정 페이지에 토글 추가
- [ ] 2.3 빠른 토글을 포함하도록 Header 업데이트

## 3. 스타일링
- [ ] 3.1 다크 테마 색상 팔레트 정의
- [ ] 3.2 CSS 변수를 사용하도록 컴포넌트 업데이트

3. 구현

당신:     /rasen:apply

AI:       작업을 진행 중...
          ✓ 1.1 light/dark 상태로 ThemeContext 생성
          ✓ 1.2 globals.css에 CSS 커스텀 속성 추가
          ✓ 1.3 localStorage 지속성 구현
          ✓ 2.1 ThemeToggle 컴포넌트 생성
          ...
          모든 작업 완료!

구현 중 설계를 조정해야 한다는 것을 발견하면, 산출물을 업데이트하고 계속하세요.

4. 보관

당신:     /rasen:archive

AI:       add-dark-mode 보관 중...
          ✓ rasen/specs/ui/spec.md에 스펙 병합
          ✓ rasen/changes/archive/2025-01-24-add-dark-mode/로 이동
          완료! 다음 기능에 준비됨.

증량 스펙이 이제 메인 스펙의 일부이며, 시스템 작동 방식을 문서화합니다.

검증 및 검토

CLI를 사용하여 변경을 확인합니다:

# 활성 변경 나열
rasen list

# 변경 세부사항 보기
rasen show add-dark-mode

# 스펙 형식 검증
rasen validate add-dark-mode

# 대화형 대시보드
rasen view

다음 단계