mcpField
S
sparc-implement

sparc-implement

github.com/ruvnet開発80.0k734 回インストール今日更新
リポジトリ

sparc-implement について

sparc-implementは、仕様の承認後にSPARCの疑似コード設計とアーキテクチャ設計を進めるRufloスキルです。アルゴリズム、モジュール境界、API契約をまとめ、成果物とフェーズ状態を記録します。

主な機能

  1. 01アルゴリズムの疑似コード設計
  2. 02データ構造と制御フローの定義
  3. 03DDDコンテキストとAPI契約の設計
  4. 04モジュールとインフラ境界の計画
  5. 05フェーズ成果物と状態の記録

活用シーン

  1. 01承認済み要件を疑似コードにする
  2. 02実装前にAPIとモジュール構成を計画する
  3. 03永続化やメッセージング方式を記録する

MCP 対応

Ruflo MCPツールを使い、仕様とフェーズ状態の取得、アーキテクチャパターンの検索、成果物の保存、状態更新、軌跡ステップの記録を行います。

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/ruvnet/ruflo --skill sparc-implement

インストール後、Claude Code で/sparc-implementを入力して読み込まれたか確認します。

詳細

SPARC アーキテクチャ+実装

SPARC 方法論のフェーズ 2 と 3 を実行します。まず疑似コードでアルゴリズムを設計し、次にモジュールの境界と API コントラクトを定めてアーキテクチャを確立します。

使用するタイミング

仕様フェーズが完了し、そのゲートを通過した後に使用します。このスキルでは、疑似コードフェーズとアーキテクチャフェーズの両方を扱います。これらは密接に関連しており、アルゴリズム設計がモジュールの境界に影響し、その逆も同様だからです。

手順

  1. 仕様を取得する — 名前空間 sparc-phases を指定して mcp__plugin_ruflo-core_ruflo__memory_search を呼び出し、機能の仕様を検索します。要件、受け入れ基準、制約、エッジケースを抽出します。

  2. フェーズの状態を取得する — 名前空間 sparc-state を指定して mcp__plugin_ruflo-core_ruflo__memory_search を呼び出し、機能を検索してフェーズ 2 または 3 であることを確認します。

  3. アーキテクチャパターンを検索する — 機能の説明を指定して mcp__plugin_ruflo-core_ruflo__neural_predict を呼び出し、過去のプロジェクトから関連するアーキテクチャ上の決定を見つけます。

  4. フェーズ 2 — 疑似コード設計: a. 各受け入れ基準について、それを満たす言語非依存の疑似コードを記述します b. 型注釈を付けて主要なデータ構造を定義します c. 次の要素を含めて制御フローをマッピングします:

    • 正常系のフロー
    • 各エッジケースのエラー/例外処理
    • 該当する場合は並行アクセスの処理 d. 重要な処理について、アルゴリズムの計算量(時間および空間)を注記します e. 疑似コードの成果物を保存します:
    • 名前空間 sparc-phases、キー pseudo-{feature-slug} を指定して mcp__plugin_ruflo-core_ruflo__memory_store を呼び出します
    • 値:{ status: "complete", algorithms: [...], dataStructures: [...], controlFlow: [...], complexity: {...} }
  5. フェーズ 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: {...} }
  6. フェーズの状態を更新する — 名前空間 sparc-state を指定して mcp__plugin_ruflo-core_ruflo__memory_store を呼び出し、両方の成果物を記録したうえで現在のフェーズを 3(アーキテクチャ)に更新します

  7. 軌跡のステップを記録する — アーキテクチャの概要を指定して mcp__plugin_ruflo-core_ruflo__hooks_intelligence_trajectory-step を呼び出します

  8. 実装を開始する — ユーザーが確認した場合は、本番コードの作成に進みます: a. 定義したモジュールの境界に従ってファイルを作成します b. まずインターフェースと型を実装します c. 疑似コードに沿って主要なロジックを実装します d. 実装と並行してユニットテストを作成します(可能であれば TDD で進めます) e. テストを実行して受け入れ基準を満たすことを確認します

  9. アーキテクチャを提示する — アーキテクチャ決定記録を表示し、フェーズ 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 を実行してください。

コメント