カスタマイズ
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 がスキーマを必要とするとき、この順序でチェック:
- CLI フラグ:
--schema <name> - メタデータを変更(変更フォルダの
.openspec.yaml) - プロジェクト設定(
rasen/config.yaml) - デフォルト(
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 を送信してください。
関連を参照
- CLI リファレンス:スキーマコマンド — 完全なコマンドドキュメント