sparc-implement について
sparc-implementは、仕様の承認後にSPARCの疑似コード設計とアーキテクチャ設計を進めるRufloスキルです。アルゴリズム、モジュール境界、API契約をまとめ、成果物とフェーズ状態を記録します。
主な機能
- 01アルゴリズムの疑似コード設計
- 02データ構造と制御フローの定義
- 03DDDコンテキストとAPI契約の設計
- 04モジュールとインフラ境界の計画
- 05フェーズ成果物と状態の記録
活用シーン
- 01承認済み要件を疑似コードにする
- 02実装前にAPIとモジュール構成を計画する
- 03永続化やメッセージング方式を記録する
MCP 対応
Ruflo MCPツールを使い、仕様とフェーズ状態の取得、アーキテクチャパターンの検索、成果物の保存、状態更新、軌跡ステップの記録を行います。
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ ruvnet/ ruflo --skill sparc-implementインストール後、Claude Code で/sparc-implementを入力して読み込まれたか確認します。
詳細
SPARC アーキテクチャ+実装
SPARC 方法論のフェーズ 2 と 3 を実行します。まず疑似コードでアルゴリズムを設計し、次にモジュールの境界と API コントラクトを定めてアーキテクチャを確立します。
使用するタイミング
仕様フェーズが完了し、そのゲートを通過した後に使用します。このスキルでは、疑似コードフェーズとアーキテクチャフェーズの両方を扱います。これらは密接に関連しており、アルゴリズム設計がモジュールの境界に影響し、その逆も同様だからです。
手順
-
仕様を取得する — 名前空間
sparc-phasesを指定してmcp__plugin_ruflo-core_ruflo__memory_searchを呼び出し、機能の仕様を検索します。要件、受け入れ基準、制約、エッジケースを抽出します。 -
フェーズの状態を取得する — 名前空間
sparc-stateを指定してmcp__plugin_ruflo-core_ruflo__memory_searchを呼び出し、機能を検索してフェーズ 2 または 3 であることを確認します。 -
アーキテクチャパターンを検索する — 機能の説明を指定して
mcp__plugin_ruflo-core_ruflo__neural_predictを呼び出し、過去のプロジェクトから関連するアーキテクチャ上の決定を見つけます。 -
フェーズ 2 — 疑似コード設計: a. 各受け入れ基準について、それを満たす言語非依存の疑似コードを記述します b. 型注釈を付けて主要なデータ構造を定義します c. 次の要素を含めて制御フローをマッピングします:
- 正常系のフロー
- 各エッジケースのエラー/例外処理
- 該当する場合は並行アクセスの処理 d. 重要な処理について、アルゴリズムの計算量(時間および空間)を注記します e. 疑似コードの成果物を保存します:
- 名前空間
sparc-phases、キーpseudo-{feature-slug}を指定してmcp__plugin_ruflo-core_ruflo__memory_storeを呼び出します - 値:
{ status: "complete", algorithms: [...], dataStructures: [...], controlFlow: [...], complexity: {...} }
-
フェーズ 3 — アーキテクチャ設計: a. DDD パターンに従って、境界づけられたコンテキストと集約ルートを定義します:
- エンティティの境界と値オブジェクトを特定します
- 集約の不変条件を定義します
- ドメインイベントをマッピングします b. API コントラクトを設計します:
- TypeScript インターフェースを使ったリクエスト/レスポンスのスキーマ
- エラーレスポンスのコードと形式
- 該当する場合はバージョニング戦略 c. モジュールの境界を計画します:
- ディレクトリ構成
- 依存関係の方向に関するルール(循環依存なし)
- 公開インターフェースと内部インターフェース d. インフラストラクチャ上の考慮事項を明記します:
- 永続化戦略(データベース、キャッシュ、ファイル)
- メッセージングパターン(同期、非同期、イベント駆動)
- 設定と環境要件 e. アーキテクチャの成果物を保存します:
- 名前空間
sparc-phases、キーarch-{feature-slug}を指定してmcp__plugin_ruflo-core_ruflo__memory_storeを呼び出します - 値:
{ status: "complete", boundedContexts: [...], apiContracts: [...], moduleBoundaries: {...}, infrastructure: {...} }
-
フェーズの状態を更新する — 名前空間
sparc-stateを指定してmcp__plugin_ruflo-core_ruflo__memory_storeを呼び出し、両方の成果物を記録したうえで現在のフェーズを 3(アーキテクチャ)に更新します -
軌跡のステップを記録する — アーキテクチャの概要を指定して
mcp__plugin_ruflo-core_ruflo__hooks_intelligence_trajectory-stepを呼び出します -
実装を開始する — ユーザーが確認した場合は、本番コードの作成に進みます: a. 定義したモジュールの境界に従ってファイルを作成します b. まずインターフェースと型を実装します c. 疑似コードに沿って主要なロジックを実装します d. 実装と並行してユニットテストを作成します(可能であれば TDD で進めます) e. テストを実行して受け入れ基準を満たすことを確認します
-
アーキテクチャを提示する — アーキテクチャ決定記録を表示し、フェーズ 3 のゲートを通過するために
/sparc advanceの実行を提案します
出力形式
# Pseudocode: {Feature Name}
## Core Algorithms
### Algorithm 1: {name}
```pseudocode
FUNCTION processRequest(input):
VALIDATE input against schema
IF invalid THEN THROW ValidationError
result <- TRANSFORM input
STORE result
RETURN result
計算量:時間 O(n)、空間 O(1)
データ構造
- {StructName}:{ field1: type, field2: type }
アーキテクチャ:{Feature Name}
境界づけられたコンテキスト
- {ContextName}:{description}
- 集約:{list}
- イベント:{list}
API コントラクト
POST /api/{resource}
- リクエスト:{ field1: string, field2: number }
- レスポンス:{ id: string, ...fields }
- エラー:400(検証)、409(競合)、500(内部エラー)
モジュール構造
src/{feature}/
{feature}.types.ts # Interfaces and types
{feature}.service.ts # Business logic
{feature}.controller.ts # HTTP handling
{feature}.repository.ts # Data access
{feature}.test.ts # Tests
インフラストラクチャ
- 永続化:{strategy}
- キャッシュ:{strategy}
- イベント:{strategy}
フェーズ 2~3 が完了しました。ゲートチェックに進むには、/sparc advance を実行してください。