원이 아니라, 나선이다.
의도는 출발점이다. 나선은 그곳에 도달하는 방법이다.
Rasen(螺旋, 나선)은 계속 상승하는 루프의 형태다.
그것이 전체 발상이며, 실제로 이 도구가 작동하는 방식과 그대로 맞아떨어진다.
>>>의도가 기원이다.
모든 변경은 당신이 써야 하는 문서가 아니라, 당신이 원하는 것에서 시작한다 — 목표, 버그 리포트, 기능 요청. 하니스가 그것을 rasen/ 워크스페이스에 기록하고 바로 작업에 들어간다: /rasen:propose → apply → archive. 그 과정에서 나오는 스펙은 파이프라인이 스스로 쌓아가는 작업 기억일 뿐, 당신에게 돌아오는 숙제가 아니다.
>>>루프가 형태다.
작업은 한 번의 워터폴이 아니라 주기로 진행된다. rasen 파이프라인 패밀리 — small-feature, bug-fix, full-feature, auto-decompose — 는 하나의 작업을 제안, 구현, 리뷰, 배포로 이어지는 하나의 루프로 만든다.
>>>매 회전마다 상승한다.
이 하니스는 단순히 반복하지 않고 진전을 만든다. /rasen:auto는 역할이 분리된 서브에이전트를 지휘하는 LEAD를 실행하고, 스스로 실수를 잡아내는 리뷰 사이클과, 세션 간 맥락을 옮기는 핸드오프/릴레이를 갖추어 — 매 회전이 시작보다 더 높은 지점에서 끝나게 한다.
>>>돌파할 때까지.
/rasen:goal은 문서가 아니라 조건으로 나선을 닫는다: 지표를 목표치까지 끌어올리거나, 모듈을 평가 기준에 맞게 정리하거나, 브리프에 답이 나올 때까지 조사한다 — 게이트가 충족될 때까지 수정 → 판정을 반복한다.
일곱 개의 모듈, 하나의 하니스.
무엇을 만들지 말하기만 하면 된다. 하니스가 작업하는 동안 제안서, 스펙, 설계, 작업 목록을 담은 폴더를 스스로 생성하고 유지한다 — 당신이 직접 쓸 필요가 없다: /rasen:propose → /rasen:apply → /rasen:archive.
small-feature / bug-fix / full-feature / auto-decompose는 데이터(YAML)로 제공되며, rasen pipeline show|list|classify|resume로 확인한다. 작업 유형 추가는 파일 하나 추가로 끝나며, 코드는 필요 없다.
명령 하나로 에이전트가 LEAD가 되어, 역할이 분리된 서브에이전트(planner / implementer / reviewer / fixer / shipper)를 지휘해 파이프라인을 진행하며, 게이트에서만 멈춘다.
/rasen:auto의 자매 기능으로, "완료"가 문서가 아니라 조건인 작업을 위한 것이다. LEAD가 measure / evaluate / research로 분류하고, 게이트가 충족되거나 라운드 상한에 도달할 때까지 수정 → 판정을 반복한다.
하나의 리뷰 가능한 diff에 담기에 너무 큰 작업은 의존성 DAG와 보수적인 직렬/병렬 정책을 갖춘, 독립적으로 전달 가능한 하위 변경들로 분할된다.
CDP를 통해 실제 Chrome을 조작하는 전문가: 탐색, 클릭, 네트워크 트래픽 캡처, JS 주입, 쿠키와 localStorage 읽기, 요청 대기 — 로그인된 페이지, SPA, 일반 fetch로는 닿지 않는 모든 것에 사용한다.
rasen agent context는 실제 점유율을 측정하고, /rasen:handoff는 요약된 체크포인트를 기록한다. 워커는 소프트 예산에 도달하면 스스로 핸드오프하고, 컴팩트 복구 훅이 자동 컴팩트 이후 다시 기준점을 잡아, 장시간 실행도 컨텍스트 한계를 견딘다.
하나의 세션, 네 개의 명령.
You: /rasen:explore AI: What would you like to explore? You: I want dark mode but I'm not sure how to do it cleanly. AI: Let me look at your styling setup... Cleanest path here: CSS variables + a small theme context, with system-preference detection. No new dependencies. Scope it? You: Yes, let's do it. You: /rasen:propose add-dark-mode AI: Created rasen/changes/add-dark-mode/ proposal.md — why we're doing this, what's changing specs/ — requirements and scenarios design.md — technical approach tasks.md — implementation checklist Ready for implementation! You: /rasen:apply AI: Implementing tasks... 1.1 Add theme context provider 1.2 Create toggle component 2.1 Add CSS variables 2.2 Wire up localStorage All tasks complete! You: /rasen:archive AI: Archived to rasen/changes/archive/2026-01-23-add-dark-mode/ Specs updated. Ready for the next feature.
명령 하나, 그리고 초기화.
Node.js >= 20.19.0이 필요합니다. rasen 설치는 기존 OpenSpec 설정을 전혀 방해하지 않습니다 — 네임스페이스가 절대 겹치지 않습니다.
npm i -g @atelierai/rasen
cd your-project && rasen init
rasen init은 rasen/ 워크스페이스(스펙과 변경 사항)를 생성하고, 사용 중인 AI 코딩 도구에 /rasen:* 슬래시 명령을 설치합니다. 업그레이드 후에는 rasen update를 실행해 안내와 최신 슬래시 명령을 받아오세요.
독립된 네임스페이스, 충돌 제로.
Rasen은 Fission-AI의 OpenSpec(MIT)에서 포크되어 현재는 Sayo가 독립적으로 유지 관리하고 있으며, Fission-AI와는 무관합니다. 워크플로우 시맨틱은 업스트림 OpenSpec v1.5.0과 일치합니다 — 제안 → 적용 → 보관 모델이 동일합니다 — 다만 rasen은 독립된 네임스페이스에서 동작하므로, 같은 프로젝트에 둘 다 동시에 설치할 수 있습니다.
기존에 openspec/ 워크스페이스가 있다면, rasen migrate는 복사만 수행합니다: openspec/{specs,changes,config.yaml}을 rasen/으로 복사하고, 이미 존재하는 항목은 건너뜁니다. 원본 openspec/ 디렉터리는 수정되거나 삭제되지 않습니다.