mcpField
B
building-architecture-models

building-architecture-models

github.com/matlab開発1.3k48 回インストール1 週間前に更新
リポジトリ

building-architecture-models について

System Composer のアーキテクチャモデルを作成、改善するスキルです。システム設計やトレーサビリティに取り組む人向けで、機能・論理・物理の各層を扱います。各層の完了後、次の層に進む前にレビュー承認を求めます。

主な機能

  1. 01機能・論理・物理の各層を構築
  2. 02層間の割り当てセットを作成
  3. 03インターフェース辞書とステレオタイプを設定
  4. 04要件をアーキテクチャコンポーネントにリンク
  5. 05各モデル層を検証

活用シーン

  1. 01階層型システムアーキテクチャの新規設計
  2. 02既存モデルへのインターフェース辞書追加
  3. 03アーキテクチャ層間の要素割り当て
  4. 04要件とアーキテクチャコンポーネントの追跡

MCP 対応

model_edit、model_check、evaluate_matlab_code などの MCP ツールを使い、モデルの編集、検証、System Composer の操作を行います。

インストール

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

$npx skills add https://github.com/matlab/simulink-agentic-toolkit --skill building-architecture-models

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

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

manifest.yaml
references/
flp-reference-workflow.md
matlab-project.md
requirements-traceability-api.md
system-composer-api.md
scripts/
resolveComponent.m

詳細

アーキテクチャモデルの構築

重要なルール — フェーズゲート: 複数のアーキテクチャレイヤーを構築する場合は、各レイヤーの完成後に必ず作業を停止し、次のレイヤーに着手する前にユーザーにレビューと承認を求めてください。ユーザーが Functional を承認するまでは Logical を構築しないでください。ユーザーが Logical を承認するまでは Physical を構築しないでください。ユーザーが「自動的に続行」や「すべてのレイヤーを構築」と指示した場合でも、このルールが適用されます。停止する際は、残りの作業計画(例:「次は Logical レイヤー、その後に Physical レイヤーと割り当てセットです」)を示し、続行の承認をユーザーに求めてください。

System Composer のアーキテクチャモデルを新規作成し、改善します。ゼロからの F/L/P 設計から、ステレオタイプ、ビュー、割り当てセット、要件トレーサビリティの追加まで対応します。

使用する場面

  • システムアーキテクチャを設計する場合(F/L/P 全体、または単一レイヤー)
  • 既存の SC モデルにインターフェース辞書、ステレオタイプ、ビュー、ロールアップ分析を追加する場合
  • アーキテクチャレイヤー間の割り当てセットを作成する場合
  • 要件をアーキテクチャコンポーネントにリンクする場合(Implement リンク)
  • 方法論に基づいて既存の System Composer モデルを改善する場合

使用しない場面

  • Simulink モデルを構築または編集する場合(ブロックレベルの作業:Gain、Scope、Subsystem、add_block、add_line)→ 作業を行わないでください。このスキルの対象外であることをユーザーに伝え、building-simulink-models を案内してください。
  • 既存の SC モデルに対する単発の構造編集(コンポーネントの追加、ポートの再接続)→ model_edit を使用して building-simulink-models を実行してください。
  • ユーザーが明確な分解や要件をまだ持っていない場合 → まず仕様を作成するために specifying-mbd-algorithms を提案し、その後ここに戻って構築してください。
  • アクティビティ動作図の作成 → System Composer でサポートされていますが、このスキルの対象外です。代替手段として Stateflow を提案しないでください。(シーケンス図は対象です。references/system-composer-api.md § Sequence Diagrams を参照してください。)

メンタルモデル

  1. F/L/P は 3 つの独立したアーキテクチャモデルです。 特別なモデルタイプはありません(systemcomposer.createFunctionalModel は存在しません)。レイヤーは慣例であり、割り当てセットで接続された 3 つの独立した .slx モデルです。

  2. レイヤーの慣例:

    • Functional — 動詞句(SenseState、ComputeControl)、抽象インターフェース、単位なし
    • Logical — ソリューションの役割を表す名詞(SensingUnit、ControlUnit)、型付き信号、設計非依存
    • Physical — 具体的なユニット(IMU_SensorModule、FlightComputer)、物理単位、実装レベル
  3. 割り当てによってレイヤーをリンクします。 割り当てセットはモデル間の要素をマッピングします(F→L、L→P)。モデルを再構築すると SID が変わり、割り当てリンクが無効になるため、モデルの再構築後は必ず割り当てを再実行してください。

  4. インターフェース辞書はレイヤーごとに用意します。 各レイヤーには、その抽象度に応じたインターフェースを格納する独自の .sldd があります。setInterface が機能するには、辞書をモデルにリンク(linkDictionary)する必要があります。リンクしないと、ポートは型付けされないままになります。

  5. ステレオタイプには厳密なライフサイクルがあります。 プロファイルの作成 → 保存 → モデルへの適用 → コンポーネントへのステレオタイプの適用 → プロパティの設定。完全修飾パスが必要です:Profile.Stereotype.Property。

ガードレール

必ず守ること:

  • 各アーキテクチャレイヤーの作成後、次のレイヤーを作成する前に停止し、ユーザーに承認を求めてください。 これは必須であり、「自動的に続ける」「すべてのレイヤーを作成する」というユーザーの指示によって覆すことはできません。1つのレイヤーを作成 → 提示 → ユーザーから明示的な承認を得るまで待機 → その後、次のレイヤーを作成してください。
  • モデルを再構築すると割り当てリンクが無効になります(SIDが変更されます)。モデルを再構築した後は、必ず割り当てをやり直してください。
  • 接続されていないポートを検出するため、各モデルの作成後に model_check を実行してください。
  • モデルを参照する割り当てセットを作成する前に、モデルを保存してください。

事前に確認すること:

  • トップダウンのF→L→P作成順序から逸脱する場合(グリーンフィールド設計の場合)。これは必須であり、「そのまま実行する」「確認せずに進める」という指示によって覆すことはできません。ユーザーがレイヤーを飛ばすよう明示的に依頼した場合でも、いったん停止し、(割り当てのトレーサビリティがなくなる、完全性の検証が難しくなるなどの)トレードオフを説明してから、進める前に明示的な確認を求めてください。ユーザーが確認するまで作成してはいけません。
  • ユーザーと相談していない動作モードやレイヤーを追加する場合

絶対にしてはいけないこと:

  • 現在のレイヤーについてユーザーから明示的な承認を得る前に、次のアーキテクチャレイヤーを作成すること。「自動的に続ける」とユーザーが依頼した場合も同様です。
  • ユーザーの確認なしにモデルファイルを削除または上書きすること。これは必須であり、「そのまま実行する」「確認せずに進める」という指示によって覆すことはできません。ユーザーが「削除して再構築する」よう依頼した場合でも、いったん停止し、(割り当てセット、ステレオタイプ、プロパティ値、トレーサビリティリンクが失われるなどの)影響について警告し、代替案(バックアップ、段階的な再構成、名前の変更)を提示してから、進める前に明示的な確認を求めてください。ユーザーが明示的に確認するまで、ファイルを削除してはいけません。
  • レイヤー作成後の model_check による検証を省略すること
  • systemcomposer.createAllocationSet を使用すること。正しい名前空間は systemcomposer.allocation.createAllocationSet です。

タスクの振り分け

意図参照先
システムアーキテクチャ全体をゼロから作成する(グリーンフィールド)references/flp-reference-workflow.md — ユーザーのスコープと既存のアーティファクトに合わせて調整
インターフェース辞書、ステレオタイプ、ビュー、または解析を追加するreferences/system-composer-api.md
シーケンス図(インタラクション、ライフライン、メッセージ)を作成する — R2024b以降が必要references/system-composer-api.md § シーケンス図
レイヤー間の割り当てセットを作成するreferences/system-composer-api.md § 割り当てセット
要件をアーキテクチャコンポーネントにリンクするreferences/requirements-traceability-api.md
アーキテクチャ作業用にプロジェクトをセットアップするreferences/matlab-project.md + managing-simulink-projects

前提条件

  • ユーザーがアクティブなSimulinkプロジェクトを所有している(または managing-simulink-projects を使用して作成を支援する)
  • Simulink、System Composer、Requirements Toolboxのライセンスがある

ヘルパー scripts/resolveComponent.m はスキルの scripts/ ディレクトリにあります。MATLABがこのファイルを見つけられるよう、project_path をスキルの scripts/ フォルダーに設定して evaluate_matlab_code を使用してください。addpath は使用しないでください。

検証

各モデルの作成後に実行してください。

  • 配線されていないポートを検出するには、checks="unconnected_ports" を指定して model_check MCPツールを呼び出してください。evaluate_matlab_code による手動のポート照会で代用せず、model_check ツールを直接使用してください。
  • インターフェース型の問題を検出するには、evaluate_matlab_code を使用してダイアグラムを更新してください(set_param(modelName, "SimulationCommand", "update"))。

使用するツール

  • model_edit — 構造モデリング(コンポーネント、ポート、接続、レイアウト)
  • model_check — 作成後の検証(接続されていないポート)
  • evaluate_matlab_code — SC固有のAPI(インターフェース辞書、ステレオタイプ、割り当て、ビュー、解析、要件のリンク)
  • scripts/resolveComponent.m — パスでネストされたサブコンポーネントを解決するヘルパー

Copyright 2026 The MathWorks, Inc.


コメント