[ contents ]
ガイド

カスタマイズ

Rasen は 3 つのカスタマイズレベルを提供しています:

レベル 何をするか 最適用途
プロジェクト設定 デフォルトを設定、コンテキスト/ルールを注入 ほとんどのチーム
カスタムスキーマ 独自のワークフロー成果物を定義 ユニークなプロセスを持つチーム
グローバルオーバーライド すべてのプロジェクト間でスキーマを共有 パワーユーザー

プロジェクト設定

rasen/config.yaml ファイルは、チーム向けの Rasen をカスタマイズする最も簡単な方法です。それはあなたができます:

  • デフォルトスキーマを設定 — すべてのコマンドで --schema をスキップ
  • プロジェクトコンテキストを注入 — AI があなたのテックスタック、コンベンションなどを見ます
  • 成果物単位のルールを追加 — 特定の成果物のカスタムルール

クイックセットアップ

rasen init

これはあなたを対話的に設定を作成するのをガイドします。または手動で作成してください:

# rasen/config.yaml
schema: spec-driven

context: |
  Tech stack: TypeScript, React, Node.js, PostgreSQL
  API style: RESTful, documented in docs/api.md
  Testing: Jest + React Testing Library
  We value backwards compatibility for all public APIs

rules:
  proposal:
    - Include rollback plan
    - Identify affected teams
  specs:
    - Use Given/When/Then format
    - Reference existing patterns before inventing new ones

動作方法

デフォルトスキーマ:

# 設定なし
rasen new change my-feature --schema spec-driven

# 設定付き — スキーマは自動
rasen new change my-feature

コンテキストとルール注入:

任意の成果物を生成する場合、コンテキストとルールは AI プロンプトに注入されます:

<context>
Tech stack: TypeScript, React, Node.js, PostgreSQL
...
</context>

<rules>
- Include rollback plan
- Identify affected teams
</rules>

<template>
[スキーマの組み込みテンプレート]
</template>
  • コンテキスト はすべての成果物に表示されます
  • ルール は一致する成果物のみに表示されます

スキーマ解決順序

Rasen がスキーマを必要とするとき、この順序でチェック:

  1. CLI フラグ:--schema <name>
  2. メタデータを変更(変更フォルダの .openspec.yaml
  3. プロジェクト設定(rasen/config.yaml
  4. デフォルト(spec-driven

カスタムスキーマ

プロジェクト設定が不十分な場合、完全にカスタムワークフローで独自のスキーマを作成します。カスタムスキーマはプロジェクトの rasen/schemas/ ディレクトリに住んでおり、コードでバージョン管理されています。

your-project/
├── rasen/
│   ├── config.yaml        # プロジェクト設定
│   ├── schemas/           # カスタムスキーマがここに住む
│   │   └── my-workflow/
│   │       ├── schema.yaml
│   │       └── templates/
│   └── changes/           # あなたの変更
└── src/

既存スキーマをフォーク

カスタマイズする最速の方法は、組み込みスキーマをフォークすることです:

rasen schema fork spec-driven my-workflow

これは全体の spec-driven スキーマを rasen/schemas/my-workflow/ にコピーします。ここで自由に編集できます。

取得内容:

rasen/schemas/my-workflow/
├── schema.yaml           # ワークフロー定義
└── templates/
    ├── proposal.md       # 提案成果物のテンプレート
    ├── spec.md           # 仕様のテンプレート
    ├── design.md         # 設計のテンプレート
    └── tasks.md          # タスクのテンプレート

現在、schema.yaml を編集してワークフローを変更するか、テンプレートを編集して AI が生成するものを変更します。

スキーマを最初から作成

完全にフレッシュなワークフロー用:

# インタラクティブ
rasen schema init research-first

# 非インタラクティブ
rasen schema init rapid \
  --description "Rapid iteration workflow" \
  --artifacts "proposal,tasks" \
  --default

スキーマ構造

スキーマはワークフロー内の成果物と相互にどのように依存するかを定義しています:

# rasen/schemas/my-workflow/schema.yaml
name: my-workflow
version: 1
description: My team's custom workflow

artifacts:
  - id: proposal
    generates: proposal.md
    description: Initial proposal document
    template: proposal.md
    instruction: |
      Create a proposal that explains WHY this change is needed.
      Focus on the problem, not the solution.
    requires: []

  - id: design
    generates: design.md
    description: Technical design
    template: design.md
    instruction: |
      Create a design document explaining HOW to implement.
    requires:
      - proposal    # 提案が存在するまで設計を作成できません

  - id: tasks
    generates: tasks.md
    description: Implementation checklist
    template: tasks.md
    requires:
      - design

apply:
  requires: [tasks]
  tracks: tasks.md

主要フィールド:

フィールド 目的
id ユニークな識別子、コマンドとルールで使用
generates 出力ファイル名(specs/**/*.md などのグロブをサポート)
template templates/ ディレクトリのテンプレートファイル
instruction この成果物を作成するための AI 指示
requires 依存関係 — 最初に存在する必要がある成果物

テンプレート

テンプレートは AI をガイドするマークダウンファイルです。その成果物を作成するときにプロンプトに注入されます。

<!-- templates/proposal.md -->
## 理由

<!-- この変更の動機を説明してください。これはどのような問題を解決しますか? -->

## 何が変わるか

<!-- 変わるものを説明してください。新しい機能または変更について具体的に。 -->

## 影響

<!-- 影響を受けるコード、API、依存関係、システム -->

テンプレートに含めることができます:

  • AI が埋める必要があるセクションヘッダー
  • AI のガイダンス付きコメント
  • 予想される構造を示す例のフォーマット

スキーマを検証

カスタムスキーマを使用する前に、検証してください:

rasen schema validate my-workflow

これはチェック:

  • schema.yaml 構文が正しい
  • すべての参照されるテンプレートが存在
  • 循環依存なし
  • 成果物 ID は有効です

カスタムスキーマを使用

作成したら、スキーマを使用してください:

# コマンドで指定
rasen new change feature --schema my-workflow

# またはconfig.yaml でデフォルトとして設定
schema: my-workflow

スキーマ解決をデバッグ

どのスキーマが使用されているか確認していますか?確認してください:

# 特定のスキーマがどこから解決されるかを確認
rasen schema which my-workflow

# 利用可能なすべてのスキーマをリスト
rasen schema which --all

出力はそれがプロジェクト、ユーザーディレクトリ、またはパッケージから来ているかどうかを示します:

Schema: my-workflow
Source: project
Path: /path/to/project/rasen/schemas/my-workflow

注意: Rasen は ~/.rasen/schemas/RASEN_HOME で場所をオーバーライド)のユーザーレベルのスキーマもサポートしていますが、プロジェクトレベルのスキーマは rasen/schemas/ で推奨されています。


迅速なイテレーションワークフロー

最小限のオーバーヘッドでの迅速なイテレーション用の最小限のワークフロー:

# rasen/schemas/rapid/schema.yaml
name: rapid
version: 1
description: Fast iteration with minimal overhead

artifacts:
  - id: proposal
    generates: proposal.md
    description: Quick proposal
    template: proposal.md
    instruction: |
      Create a brief proposal for this change.
      Focus on what and why, skip detailed specs.
    requires: []

  - id: tasks
    generates: tasks.md
    description: Implementation checklist
    template: tasks.md
    requires: [proposal]

apply:
  requires: [tasks]
  tracks: tasks.md

レビュー成果物を追加

デフォルトをフォークしてレビューステップを追加:

rasen schema fork spec-driven with-review

その後、schema.yaml を編集して追加:

  - id: review
    generates: review.md
    description: Pre-implementation review checklist
    template: review.md
    instruction: |
      Create a review checklist based on the design.
      Include security, performance, and testing considerations.
    requires:
      - design

  - id: tasks
    # ... 既存のタスク設定 ...
    requires:
      - specs
      - design
      - review    # タスクもレビューを必須にします

コミュニティスキーマ

Rasen はまた、スタンドアロンリポジトリを介して配布されるコミュニティメンテナンスされたスキーマもサポートしています。これらは Rasen を他のツールまたはシステムと統合する独断的なワークフローを提供しています。github/spec-kit のコミュニティ拡張カタログが spec-kit でどのように機能するかに似ています。

コミュニティスキーマは Rasen コアにベンダーされていません — それら独自のリポジトリに住んで、独自の解放チェーンサイクルがあります。1 つを使用するには、スキーマバンドルをプロジェクトの rasen/schemas/<schema-name>/ ディレクトリにコピーします(各リポの README にインストール指示があります)。

スキーマ メンテナ リポジトリ 説明
superpowers-bridge @JiangWay JiangWay/openspec-schemas Rasen の成果物ガバナンスを obra/superpowers 実行スキル(ブレーンストーミング、計画の作成、サブエージェント経由の TDD、コードレビュー、終了)と統合します。Superpowers がネイティブにカバーしない隙間を埋める証拠最初の retrospective 成果物を追加します。

コミュニティスキーマを投稿したいですか?リポジトリへのリンクで問題を開くか、このテーブルに行を追加する PR を送信してください。


関連を参照