[ contents ]
理解する

ワークフロー

このガイドは Rasen の一般的なワークフローパターンと各パターンをいつ使うかをカバーしています。基本的なセットアップについては はじめに を参照してください。コマンドリファレンスについては コマンド を参照してください。

哲学:ステージではなくアクション

従来のワークフローはあなたをステージを通じて強制します:計画、次に実装、次に完了。しかし実際の作業はきちんとボックスに収まりません。

OPSX は異なるアプローチを採ります:

Traditional (phase-locked):

  PLANNING ────────► IMPLEMENTING ────────► DONE
      │                    │
      │   "Can't go back"  │
      └────────────────────┘

OPSX (fluid actions):

  proposal ──► specs ──► design ──► tasks ──► implement

主な原則:

  • ステージではなくアクション - コマンドはあなたが立ち往生しているステージではなく、あなたができることです
  • 依存関係は有効化条件 - 依存関係は何が必須かではなく何が可能かを示しています

カスタマイズ: OPSX ワークフローは成果物シーケンスを定義するスキーマで駆動されます。カスタムスキーマ作成の詳細は カスタマイズ を参照してください。

2 つのモード

クイックパス(core プロファイル)

新規インストールはデフォルトで full プロファイル(すべてのワークフロー)になります。core は毎日のリズムに切り替えられるスリム化されたプロファイルです:

  • /rasen:explore
  • /rasen:propose
  • /rasen:apply
  • /rasen:sync
  • /rasen:archive

一般的なフロー:

/rasen:explore ──► /rasen:propose ──► /rasen:apply ──► /rasen:sync ──► /rasen:archive
  (optional)

探索から始めます(形成する価値のある習慣)

/rasen:explore はデフォルトプロファイルの一部です。高度な追加ではなく。問題はあるが計画がない場合に行う動きです。AI アシスタントの場合、ほとんどの場合。

You: /rasen:explore

AI:  What would you like to explore?

You: Our search results feel stale. I'm not sure if it's caching,
     indexing, or the query itself.

AI:  Let me look... [reads the search service and cache layer]
     It's the index: it only rebuilds nightly, so edits don't show
     up until the next day. Two options: rebuild on write (simple,
     more load) or a short-TTL cache invalidation (more moving parts,
     less load). Given your write volume is low, rebuild-on-write is
     the cleaner fix. Want to scope it?

You: Yes.

You: /rasen:propose rebuild-search-index-on-write

Explore は成果物を作成せず、コードを作成しません。曖昧な懸念を正確な変更に変える無料のノーリスク会話です。したがって、その後の提案は鋭いです。既に正確に何が必要かを知っていますか?スキップして直接 /rasen:propose に移動します。完全ガイド:探索を最初に

拡張/フルワークフロー(カスタム選択)

明示的なスキャフォールドおよびビルドコマンド(/rasen:new, /rasen:continue, /rasen:ff, /rasen:verify, /rasen:bulk-archive, /rasen:onboard)はデフォルトで既にインストールされています。新規インストールはデフォルトで full プロファイルになるため。むしろ core セットだけに絞り込むを好む場合は、以下で切り替えます:

rasen config profile core
rasen update

ワークフローパターン(拡張モード)

クイック機能

構築する内容を知っていて実行する必要があるだけの場合:

/rasen:new ──► /rasen:ff ──► /rasen:apply ──► /rasen:verify ──► /rasen:archive

会話例:

You: /rasen:new add-logout-button

AI:  Created rasen/changes/add-logout-button/
     Ready to create: proposal

You: /rasen:ff

AI:  Creating all planning artifacts...
     ✓ proposal.md
     ✓ specs/
     ✓ design.md
     ✓ tasks.md
     Ready for implementation!

You: /rasen:apply

AI:  Working through tasks...
     ✓ Added logout button to header
     ✓ Implemented session clearing
     ✓ Added confirmation dialog
     All tasks complete!

You: /rasen:archive

AI:  ✓ Merged specs
     ✓ Archived change

最適な用途: 小~中規模機能、バグ修正、単純な変更。

探索的

要件が不明か最初に調査する必要がある場合:

/rasen:explore ──► /rasen:new ──► /rasen:continue ──► ... ──► /rasen:apply

会話例:

You: /rasen:explore

AI:  What would you like to explore?

You: I want to improve page load performance but I'm not sure
     where the bottlenecks are.

AI:  Let me help investigate...
     [Analyzes bundle sizes, identifies slow queries, reviews
     component render patterns]

     I found three main bottlenecks:
     1. Large unoptimized images
     2. Synchronous data fetching in ProductList
     3. Re-renders from context changes

     Which would you like to address first?

You: Let's tackle the data fetching issue.

You: /rasen:new optimize-product-list-fetching

AI:  Created change. Ready to create: proposal

You: /rasen:continue

AI:  Creating proposal based on our exploration...
     [Writes proposal incorporating investigation insights]

     Ready to create: specs, design
     Which would you like next?

You: /rasen:continue

AI:  Creating specs...

最適な用途: パフォーマンス最適化、デバッグ、アーキテクチャ決定、不明な要件。

並列変更

複数の変更を同時に処理します:

Change A: /rasen:new ──► /rasen:ff ──► /rasen:apply (in progress)
                                         │
                                    context switch
                                         │
Change B: /rasen:new ──► /rasen:ff ──────► /rasen:apply

会話例:

You: I'm working on add-dark-mode but got pulled into a bug fix

You: /rasen:new fix-login-redirect

AI:  Created rasen/changes/fix-login-redirect/

You: /rasen:ff

AI:  ✓ Created planning artifacts

You: /rasen:apply

AI:  Working on fix-login-redirect...
     [Implements the fix]
     All tasks complete!

You: /rasen:archive

AI:  ✓ Archived fix-login-redirect

You: Let's get back to dark mode

You: /rasen:apply add-dark-mode

AI:  Resuming add-dark-mode...
     Picking up at task 2.3: Update Header...

最適な用途: 並列作業ストリーム、緊急割り込み、チーム協力。

複数の完成した変更がある場合は、/rasen:bulk-archive を使用します:

You: /rasen:bulk-archive

AI:  Found 3 completed changes:
     - add-dark-mode (all tasks done)
     - fix-login-redirect (all tasks done)
     - update-footer (all tasks done)

     Checking for spec conflicts...
     ⚠ add-dark-mode and update-footer both touch specs/ui/

     Inspecting codebase to resolve...
     Both changes are implemented. Will apply in chronological order.

     Archive all 3 changes?

You: Yes

AI:  ✓ Archived add-dark-mode
     ✓ Archived fix-login-redirect
     ✓ Archived update-footer
     Specs merged in order: add-dark-mode → update-footer

一括アーカイブは複数の変更が同じ仕様に触れる場合を検出し、実装されている内容をチェックして競合を解決します。

変更を完成させる

推奨される完成フロー:

/rasen:apply ──► /rasen:verify ──► /rasen:archive
                    │                 │
              validates          prompts to sync
              implementation     if needed

検証:作業をチェック

/rasen:verify は 3 つのディメンションにわたって実装を成果物に対して検証します:

You: /rasen:verify

AI:  Verifying add-auth...

     COMPLETENESS
     ✓ All 12 tasks in tasks.md are checked
     ✓ All requirements in specs have corresponding code
     ⚠ Scenario "Session timeout after inactivity" not tested

     CORRECTNESS
     ✓ Implementation matches spec intent
     ✓ Edge cases from scenarios are handled
     ✓ Error states match spec definitions

     COHERENCE
     ✓ Design decisions reflected in code structure
     ✓ Naming conventions consistent with design.md
     ⚠ Design mentions "event-driven" but implementation uses polling

     SUMMARY
     ─────────────────────────────
     Critical issues: 0
     Warnings: 2
     Ready to archive: Yes (with warnings)

     Recommendations:
     1. Add test for session timeout scenario
     2. Consider refactoring to event-driven as designed, or update design.md

検証がチェックする内容:

ディメンション 検証内容
完全性 すべてのタスク完了、すべての要件実装、シナリオ対応
正確性 実装が仕様の意図と一致、エッジケース処理
一貫性 コードに反映された設計決定、一貫したパターン

検証はアーカイブをブロックしませんが、最初に対処したい問題を表示します。

レビューサイクル:クリーンになるまでループ(オプト・イン)

/rasen:verify は単一パスです。/rasen:review-cycle は変更が実際にクリーンになるまでレビュアーをラップして実行を続けるループです:

review ──► triage ──► fix ──► re-review(Δ) ──► { pass | loop | escalate }

各レビューパスは常にインストールされている rasen-review エンジンに委任します — ループはレビューヒューリスティックを再実装しません。上に 4 つのことを追加します:

  • 修正サイズトリアージ。 各検出結果は修正のサイズで経路指定されます:軽微 → オーケストレータインライン、重大 → コードを書いた実装エージェント、設計レベル → 別の修正エージェント(元の著者ではない)。
  • 著者 ≠ 検証者。 検出結果は修正を作成しなかった レビュアーが元の検出結果に対して確認した場合のみ解決済みです。軽微なインラインの修正の場合、独立したゲート実行(テスト/リント/ビルド)と正確な変更の読み込みが同等の非著者チェック — そしてそれはサイクルレポートに記録される必要があります。
  • デルタのみを再レビュー。 Claude Code とエージェントチーム(CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=1)の場合、リード は SendMessage 経由で元のレビュアーを再開してデルタのみを再レビューできます(SendMessage を開始できるのはリード のみ)。そうでなければ、事前検出結果と修正差分を共有ファイル経由で新しいデルタレビューにフォールバック — 同等の結果、ただしコストが高くなります。
  • 制限された終了。 ループは最大ラウンド(デフォルト 3)でキャップされます。上限に到達した未解決の Blocker/Major 検出結果でヒューマンにエスカレートして、オープン検出結果とラウンド履歴 — クリーン合格をサイレント報告することはありません。

実装後、ライブの差分に対して使用します。オプト・インです:カスタムプロファイル経由で有効にします(core にはありません)。ラウンド履歴と各非著者確認は変更ディレクトリの review-cycle-report.md に記録されます。

アーカイブ:変更を終了

/rasen:archive は変更を完成させてアーカイブに移動します:

You: /rasen:archive

AI:  Archiving add-auth...

     Artifact status:
     ✓ proposal.md exists
     ✓ specs/ exists
     ✓ design.md exists
     ✓ tasks.md exists (12/12 tasks complete)

     Delta specs: Not yet synced to main
     → Would you like to sync now?

You: Yes

AI:  ✓ Synced specs to rasen/specs/auth/spec.md
     ✓ Moved to rasen/changes/archive/2025-01-24-add-auth/

     Change archived successfully.

アーカイブは仕様が同期されていない場合はプロンプトします。不完全なタスクでブロックしませんが、警告します。

何をいつ使うか

/rasen:ff/rasen:continue

状況 使用
明確な要件、構築の準備ができている /rasen:ff
探索中、各ステップをレビューしたい /rasen:continue
仕様前に提案に関して反復したい /rasen:continue
時間的プレッシャー、速く動く必要がある /rasen:ff
複雑な変更、コントロール必要 /rasen:continue

経験則: 完全なスコープを事前に説明できる場合は /rasen:ff を使用します。進行に応じて理解している場合は /rasen:continue を使用します。

更新対新規開始

一般的な質問:既存の変更を更新する時と新しい変更を開始する時はいつですか?

既存の変更を更新する場合:

  • 同じ意図、調整された実行
  • スコープが狭くなる(MVP 最初、残りは後で)
  • 学習駆動の修正(コードベースが予想と異なる)
  • 実装発見に基づいた設計調整

新しい変更を開始する場合:

  • 意図が根本的に変更
  • スコープが異なる作業に爆発した
  • 元の変更は単独で「完了」マークできる
  • パッチはより明確にするより混乱させる
                     ┌─────────────────────────────────────┐
                     │     Is this the same work?          │
                     └──────────────┬──────────────────────┘
                                    │
                 ┌──────────────────┼──────────────────┐
                 │                  │                  │
                 ▼                  ▼                  ▼
          Same intent?      >50% overlap?      Can original
          Same problem?     Same scope?        be "done" without
                 │                  │          these changes?
                 │                  │                  │
       ┌────────┴────────┐  ┌──────┴──────┐   ┌───────┴───────┐
       │                 │  │             │   │               │
      YES               NO YES           NO  NO              YES
       │                 │  │             │   │               │
       ▼                 ▼  ▼             ▼   ▼               ▼
    UPDATE            NEW  UPDATE       NEW  UPDATE          NEW

例:「ダークモード追加」

  • 「カスタムテーマも サポートする必要がある」→ 新しい変更(スコープ爆発)
  • 「システム環境設定検出は予想以上に難しい」→ 更新(同じ意図)
  • 「トグル最初出荷、環境設定は後で追加」→ 更新してアーカイブ、次に新しい変更

ベストプラクティス

変更をフォーカスさせておきます

1 つの論理的な作業単位あたり 1 つの変更。「機能 X を追加してまた Y をリファクタ」を行う場合は、2 つの分離された変更を検討します。

理由:

  • 理解しやすくレビューしやすい
  • クリーンなアーカイブ履歴
  • 独立して出荷できます
  • 必要な場合のシンプルなロールバック

要件が不明な場合は /rasen:explore を使用します

変更にコミットする前に、問題スペースを探索します:

You: /rasen:explore

AI:  What would you like to explore?

You: How should we handle rate limiting for our API?

AI:  Let me investigate your current setup and options...
     [Researches codebase, considers patterns]

     I see three approaches we could take:
     1. Middleware-based (simple, per-endpoint)
     2. Redis-backed (scalable, shared state)
     3. Token bucket per user (fair, complex)

     Your current stack suggests #1 or #2. What's your scale?

探索は成果物を作成する前に思考を明確にします。

アーカイブ前に検証します

/rasen:verify を使用して実装が成果物と一致することを確認します:

You: /rasen:verify

AI:  Verifying add-dark-mode...

     ✓ All tasks in tasks.md are checked
     ✓ Requirements in specs have corresponding code
     ✓ Design decisions are reflected in implementation

     Ready to archive!

変更を閉じる前に不一致を検出します。

変更を明確に命名します

良い名前は rasen list を有用にします:

Good:                          Avoid:
add-dark-mode                  feature-1
fix-login-redirect             update
optimize-product-query         changes
implement-2fa                  wip

コマンドクイックリファレンス

詳細なコマンドと選択肢については、コマンド を参照してください。

コマンド 目的 いつ使うか
/rasen:propose 変更 + 計画成果物を作成 高速デフォルトパス(core プロファイル)
/rasen:explore アイデアを AI と一緒に検討 ここから始めます。要件が不明、調査、オプション比較
/rasen:new 変更スキャフォールドを開始 拡張モード、明示的な成果物制御
/rasen:continue 次の成果物を作成 拡張モード、ステップバイステップの成果物作成
/rasen:ff すべての計画成果物を作成 拡張モード、明確なスコープ
/rasen:apply タスクを実装 コード記述の準備ができている
/rasen:verify 実装を検証 拡張モード、アーカイブ前
/rasen:sync デルタ仕様をマージ 拡張モード、オプション
/rasen:archive 変更を完成 すべての作業が終了
/rasen:bulk-archive 複数の変更をアーカイブ 拡張モード、並列作業

次のステップ