円ではない、螺旋だ。
意図が出発点。そこへ至る道が螺旋だ。
Rasen(螺旋)は、上昇し続けるループの形。
発想はそれだけで、実際のツールの動き方そのものに対応している。
>>>意図が起点。
すべての変更は、あなたが書くべき文書からではなく、あなたのやりたいことから始まる——目標、バグ報告、機能要望。基盤がそれを rasen/ ワークスペースに記録し、すぐに作業へ入る:/rasen:propose → apply → archive。その途中で生まれる仕様書は、パイプライン自身が蓄積していく作業記憶であって、あなたに返される宿題ではない。
>>>ループが形。
作業は一度きりのウォーターフォールではなく、周回で進む。rasen のパイプラインファミリー——small-feature、bug-fix、full-feature、auto-decompose——がタスクを提案・実装・レビュー・出荷という一つの形あるループに変える。
>>>一周ごとに上昇する。
この基盤はただ繰り返すのではなく、前進する。/rasen:auto は役割ごとに分離されたサブエージェントを統率する LEAD を動かし、自らの誤りを捕えるレビューサイクルと、セッションをまたいで文脈を運ぶハンドオフ/リレーを備える——だから一周ごとに、始点より高い地点で終わる。
>>>突破するまで。
/rasen:goal は文書ではなく条件で螺旋を閉じる:指標を目標値まで押し上げる、モジュールを評価基準どおりに仕上げる、ブリーフに答えが出るまで調査する——修正 → 判定を、ゲートを満たすまで繰り返す。
7つのモジュール、1つの基盤。
作りたいものを伝えるだけ。基盤が提案・仕様・設計・タスクリストを含む1つのフォルダを、作業しながら自分で生成・維持する——あなた自身が書く必要はない:/rasen:propose → /rasen:apply → /rasen:archive。
small-feature / bug-fix / full-feature / auto-decompose はデータ(YAML)として提供され、rasen pipeline show|list|classify|resume で確認できる。タスク種別の追加はファイル1つの追加だけで、コードはゼロ。
コマンド1つでエージェントが LEAD になり、役割ごとに分離されたサブエージェント(planner / implementer / reviewer / fixer / shipper)を統率してパイプラインを進め、ゲートでのみ停止する。
/rasen:auto の姉妹機能で、「完了」が文書ではなく条件であるタスク向け。LEAD が measure / evaluate / research に分類し、ゲートを満たすかラウンド上限に達するまで修正 → 判定を繰り返す。
1つのレビュー可能な差分に収まらない大きすぎるタスクは、依存関係の DAG と保守的な直列/並列ポリシーを備えた、独立して提供可能な子タスクに分割される。
CDP 経由で実際の Chrome を操作するエキスパート:ナビゲーション、クリック、ネットワークトラフィックの取得、JS の注入、cookie と localStorage の読み取り、リクエストの待機——ログイン済みページ、SPA、普通の fetch では届かないものすべてに対応する。
rasen agent context は実際の占有量を計測し、/rasen:handoff は要約したチェックポイントを書き出す。ワーカーはソフト予算に達すると自らハンドオフし、コンパクト復旧フックが自動コンパクト後に再アンカーするため、長時間の実行もコンテキスト制限を乗り越えられる。
1つのセッション、4つのコマンド。
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.
コマンド1つ、そして初期化。
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/ ディレクトリが変更・削除されることはありません。