mcpField
B
board-support

board-support

github.com/wedsamuel1230その他2857 回インストール2 週間前に更新
リポジトリ

board-support について

指定されたボード名を、出典付きインベントリ内の正確なプロファイルに対応付ける AI 向けスキルです。ボード固有の能力やリスクを調べ、ピン割り当てや広範なハードウェア作業は他のスキルに引き継ぎます。

主な機能

  1. 01インベントリに基づくボード名の解決
  2. 02正確な識別情報とバリアントの確認
  3. 03能力と出典の参照
  4. 04不明点と情報源の不足の保持
  5. 05ピンやワークフロー依頼の振り分け

活用シーン

  1. 01指定ボードの能力の確認
  2. 02特定リビジョンのピンリスクの確認
  3. 03フレームワーク互換範囲の確認
  4. 04モジュールやボードのバリアントの特定

インストール

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

$npx skills add https://github.com/wedsamuel1230/embedded-engineering-skills --skill board-support

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

詳細

ボードサポート

このリポジトリのソースに基づくボード一覧について、AI が参照する正式な確定ボード情報および検索の入口です。指定されたターゲットを単一の正確なプロファイルに照合し、機能とリスクを抽出して、結果を後続のスキルに引き渡します。プロジェクト要件に基づいてボードを選択または変更する役割を担う board-selection に置き換わるものではありません。

最初に読むもの

  1. Arduino 共通スキル契約を読みます。
  2. ボード一覧と AI 参照スキーマを読みます。
  3. ../../references/boards/ にある該当する Markdown プロファイルと、その事実とソースの対応表を読みます。
  4. ユーザーが GPIO の割り当てまたは宣言も求めている場合に限り、../pin-assignment/SKILL.md を読み込みます。
  5. 配線、書き込み、給電、測定、復旧、または複数セッションにわたる作業が依頼に含まれる場合は、まず ../embedded-project-loop/SKILL.md を読み込みます。

リポジトリをチェックアウトしている場合は、プロファイルを解釈する前に、決定論的リゾルバーを使用します。

python3 ../../scripts/resolve_board_profile.py \
  --query "<board name>" --purpose lookup

該当するアドバイス経路では --purpose pin または --purpose electrical を使用し、確認済みの値は --identity FIELD=VALUE オプションを繰り返し指定して渡します。リゾルバーがゼロ以外のステータスを返した場合は処理を停止してください。推測してよいという意味ではありません。

インデックスは、コンパクトな検索用の情報です。Markdown プロファイルは、事実、注意事項、情報の欠落に関する詳細な信頼できる情報源です。プロファイルまたは引用された一次ソースにないフィールドを作り出してはいけません。

所有範囲と振り分け

  • 指定ボードの検索、機能に関する質問、プロファイルの取得、特定ピンのリスク確認、ソースの信頼度に関する質問、フレームワークの互換性確認は、ここから開始します。
  • 要件に基づくボードの選択、変更、トレードオフの比較、ライフサイクルの選定は board-selection から開始します。事実確認には、このスキルが呼び出される場合があります。
  • ファームウェア/電子回路/電源/ネットワーク/デプロイを組み合わせた作業は arduino-workflow-router から開始します。指定ボードの照合が必要な場合、ルーターがこのスキルを読み込みます。
  • ピンの割り当てと宣言の生の形式への変換は pin-assignment の担当です。

照合手順

  1. ボード名、正確なリビジョン、モジュールのサフィックス、MCU、フレームワーク/コア、ツールチェーン、ホスト、要求された検証段階を把握します。不明な値には unknown と記します。

  2. インデックス内の id、name、aliases に照らして、ユーザーのボード名を正規化します。一致するものが必ず 1 件であることを確認します。販売上のシリーズ名、クローン、キャリア、またはサフィックスが異なるモジュールは、正確な一致ではありません。

  3. 該当する identity_contract を読みます。profile_type が bounded-variant-family の場合は、その境界に依存するアドバイスを提供する前に、要求された variant と required_for_pin_advice または required_for_electrical_advice の各フィールドを確認します。共通の事実は、プロファイルで共通と明記されている場合に限り報告できます。暗黙にバリアントを選んではいけません。

  4. 識別情報が十分であれば、対応する Markdown プロファイルを読み、識別情報、ロジックレベル、メモリ、バス、ADC/PWM/タイマーの機能、予約済みまたはリスクのあるピン、フレームワーク/ツールチェーンの範囲、ソースの信頼度、未解決の情報を簡潔に返します。

  5. MCU の電気的限界を、ボードのレギュレーター、コネクター、GPIO 合計数、無線のピーク、外部負荷の限界とは区別します。unknown、gap、verify の記述は、シリーズに関する推測で補わず、そのまま保持します。

  6. フレームワークに関する依頼では、正確なボードパッケージ/コア、バージョンまたはコミット、FQBN/PlatformIO 環境、ライブラリのバージョン、アップロードツールを記録します。プロファイルにフレームワークが記載されていても、それは互換性の範囲を示すものであり、ビルドが実行された証明ではありません。

  7. ピンに関する依頼では、次の引き継ぎ情報を pin-assignment に渡します。

    board_id: <index id>
    profile: <references/boards/*.md>
    resolution_status: <resolved | needs-disambiguation | unsupported | profile-gap>
    exact_identity: <board revision and module, or unknown>
    identity_contract: <profile_type, variant, and required fields>
    framework_core: <framework/core/version or unknown>
    logic_level: <value and source status>
    reserved_or_risky_pins: <input-only, strapping, flash/PSRAM, USB, debug, bus, LED>
    usable_capabilities: <ADC/PWM/UART/I2C/SPI/touch/PIO/etc.>
    unresolved: <gaps that block a safe assignment>
    

    pin-assignment は、宣言を出力する前に、正確な物理ピンを再確認する必要があります。論理 ID と物理 GPIO 番号を区別し、生の順序付き constexpr int の規約を維持してください。

解決エンベロープ

別のスキルが文章を解析せずに照会結果を利用できるよう、応答の冒頭にこの簡潔な記録を記載してください。限定されたファミリーに一致したものの、必須のバリアント、リビジョン、モジュール、またはフレームワークの項目が不足している場合は、needs-disambiguation を使用してください。識別には十分な情報があるものの、要求された事実がプロファイルのソースで裏付けられていない場合は、profile-gap を使用してください。

resolution_status: resolved | needs-disambiguation | unsupported | profile-gap
board_id: <index id or null>
profile: <references/boards/*.md or null>
matched_alias: <normalized user term or null>
identity:
  profile_type: <exact-board | bounded-variant-family | null>
  variant: <confirmed value or unknown>
  revision: <confirmed value or unknown>
  module_suffix: <confirmed value or unknown>
required_disambiguators: []
framework_core: <name/version or unknown>
evidence:
  source_confidence: <index value or unknown>
  checked: <YYYY-MM-DD or unknown>
  physical_status: unverified

このエンベロープはルーティング用の記録であり、ビルド、アップロード、ハードウェア、システム、またはデプロイに関する主張ではありません。unsupported はインデックス内に一致するプロファイルがないことを意味します。profile-gap はプロファイルに一致したものの、要求された事実がソースで裏付けられていないことを意味します。

曖昧な対象と未対応の対象

  • 複数のプロファイルに一致する場合は、リビジョン、モジュールの接尾辞、ボードの写真、製品識別子、またはフレームワークの対象など、判別に必要な情報を尋ねてから先に進んでください。
  • 一致するプロファイルがない場合は、unsupported by the indexed board set と伝え、新しいプロファイルの作成に必要な最小限の一次ソースを提示してください。また、類似ボードのピンを割り当ててはいけません。board-selection で比較できるのは、対象の識別情報とソースが確立された後に限ります。
  • クローン製品やキャリアボードについては、参照用プロファイルを比較対象としてのみ特定し、未検証のボードレベルの仮定にはすべてその旨を明記してください。

出力要件

短い照会でも、次のセクションを必ず返してください。

  1. 前提:正確な識別情報、不明点、クローンとリビジョンの境界。
  2. 必要なツールとバージョン:要求された手順に必要なフレームワーク/コア、ボードパッケージ、ツールチェーン、ホスト、ライブラリの各バージョン。
  3. 実装手順:照会、プロファイル、後続工程への引き継ぎの順序。
  4. テストと証拠:ソース/プロファイルの確認と検証段階。実機、ビルド、アップロード、システム、デプロイの各段階を分けて明記してください。
  5. 既知の制限事項:未対応の項目、ソースの不足、対象とするリビジョンの範囲。
  6. 復旧とセキュリティに関する注意事項:対象が接続されている場合のブート/USB/デバッグのリスク、ロールバック手順、シークレットの取り扱い要件。

誤った合理化の防止

近道必要な応答
「ESP32だから、ピンはわかっています。」正確なファミリー、モジュール、DevKit のリビジョン、フレームワークのバリアントを特定してください。
「インデックスにソースで裏付け済みとあるので、すべての値が検証済みです。」プロファイルの事実とソースの対応表を確認し、明示された不足情報をそのまま示してください。
「似たボードのヘッダーが同じです。」識別情報の境界で止まり、ボードの一次ソースを求めてください。
「コアがそのボードをサポートしているので、コンパイル済みです。」互換性の範囲のみを報告し、新たにビルドした証拠を求めてください。
「ピン一覧を見る限り安全です。」ブート、フラッシュ/PSRAM、USB、バス、電圧、プル、電流の各制約を再確認してください。
「ファミリーのプロファイルに一致したので、そのバリアントを選べます。」needs-disambiguation を返し、必要なバリアントまたはリビジョンを尋ねてください。
「解決エンベロープに解決済みとあるので、ハードウェアも立証済みです。」ユーザーからボード固有の証拠が提示されるまで、physical_status: unverified のままにしてください。

検証の境界

ソースの照会とスキーマの検証は、ドキュメント上の証拠です。配線、電源、書き込み、実行時の動作、システムの動作、または現場へのデプロイを証明するものではありません。次の手順で実機を操作する必要がある場合は、共有の実世界操作ゲートを使用し、続行する前に具体的な質問を1つユーザーにしてください。

前提、ツール、実装手順、証拠、制限事項、復旧/セキュリティに関する注意事項には、共有 Arduino スキルの契約を使用してください。

コメント