Communitygithub.com

brunofbloq/embedded-agent-skills

STM32、ESP32、Cortex-M および関連 MCU 向けのベアメタル C/C++、FreeRTOS、Zephyr またはベンダー HAL を使用した組み込みファームウェアの実装、修正、デバッグ、レビュー、最適化を行います。ペリフェラルドライバ、GPIO、SPI/I2C/UART/CAN、DMA、ISR、ブート、電源管理、並行処理、ビルドエラー、小規模なコード変更に使用します。また、低レベルの組み込み Linux ドライバ/BSP 実装も対象です。主要な設計判断には embedded-architect、テスト戦略と検証には embedded-qa を優先的に利用してください。

embedded-agent-skills とは?

このスキルは、組み込みファームウェア開発に特化した AI エージェント(Claude Code、Cursor、Codex 等)向けのガイドラインを提供します。STM32、ESP32、Cortex-M など主要な MCU を対象とし、ベアメタル C/C++、FreeRTOS、Zephyr、各ベンダー HAL を用いた実装・修正・デバッグ・レビュー・最適化を効率的に行うためのワークフローと不変条件を定義します。 スキルは、プロジェクトのリポジトリ、ボード構成、SDK/デバイスドキュメントを信頼できる情報源として、検証可能でミニマルな変更を推奨します。具体的には、影響範囲の選択的調査、変更サイズに応じた適切な契約(オーナーシップ/インタフェース/エラー/レイテンシ)、レジスタや API の推測禁止、ハードウェア依存の適切なカプセル化、フォールトパスの監査、ユニットテスト/ビルド/静的チェックによる検証、そして変更レポートの作成を求めます。 さらに、ISR での制約(ブロッキング禁止、ヒープ割り当て禁止、優先順位設定)、共有状態の保護(アトミック操作、クリティカルセクション、RTOS プリミティブ)、デッドライン制約のある経路での非決定的動作回避、ウォッチドッグフィードの条件、安全なファームウェア更新、MISRA 準拠の主張制限、ハードウェアへの不可逆的操作の禁止など、組み込みシステム特有の不変条件を強制します。 対応プラットフォームは STM32/Cortex-M、ESP32/ESP-IDF、および組み込み Linux(カーネル/デバイスツリー/BSP)で、それぞれに専用のリファレンスドキュメントが用意されています。プロジェクト固有のボード情報は、テンプレートを使用してリポジトリに保存し、検証済みのソースからのみ入力します。

対応~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/brunofbloq/embedded-agent-skills/tree/HEAD/skills/embedded-developer

お気に入りのAIに質問する

このエージェントスキルを事前に読み込んだ状態で新しいチャットを開きます。

ドキュメント

組み込み開発者

正確で、ミニマルで、検証可能な変更を、低いコンテキストオーバーヘッドで実現します。リポジトリ、ボード構成、正確な SDK/デバイスドキュメントを信頼できる情報源として扱います。

実装ワークフロー

  1. 選択的に調査: 影響を受けるファイル、プロジェクトの指示、ターゲット MCU/ボードリビジョン、ツールチェーン/ビルド、スタートアップ/リンカ/パーティションファイル、SDK/RTOS バージョン、関連するテストを読みます。新しいコードでは、不足しているハードウェアの事実を特定しますが、それらをでっち上げてはいけません。
  2. 変更サイズに合わせる: 小さな欠陥には最小限のパッチとフォーカスされたテストを適用します。新しいドライバ/サブシステムには、短いオーナーシップ/インタフェース/エラー/レイテンシ契約が必要です。OS の選択、主要な分割、リソースバジェット、コンポーネント境界が実質的に変更される場合にのみ、embedded-architect に問い合わせてください。
  3. ハードウェアの前提を検証: レジスタ、ピンマルチプレクサ、クロック、DMA、NVIC、キャッシュ、ブート、フラッシュ、低消費電力モードを編集する前に、正確なデータシート/リファレンスマニュアル/エラッタ、ボード設計、SDK ヘッダを調査します。レジスタや API を推測してはいけません。
  4. 狭く実装: プロジェクトの命名規則、生成コードの境界、HAL/IDF の規約に従います。無関係なリファクタリングは避けます。ハードウェア固有の依存関係は、各 GPIO に冗長なレイヤを追加するのではなく、有用な移植性/テスト境界でカプセル化します。
  5. フォールトパスを監査: ペリフェラル待機には、そのブート/スリープステージで有効なクロックに基づく制限を設け、ティックラップアラウンド、バッファ境界、キューオーバーフロー、初期化順序、キャンセル、リセット、電源断、安全状態の動作を処理します。volatile はレジスタ可視性として扱い、同期メカニズムとしては決して使いません。
  6. 検証: フォーカスされたユニット/ホストテスト、ターゲットビルド、設定されたフォーマッティング/静的チェック、および該当する場合はサイズ/マップ/スタック分析を実行します。エミュレーション、フォールトインジェクション、オンボード検証は、要求/利用可能な場合に embedded-qa に委任します。「未実行」と「合格」を明確に区別します。
  7. 報告: 変更したファイル、コマンド/結果、ターゲットとハードウェアの前提、未測定のリスク、公開動作/インタフェースの変更を簡潔に記述します。

組み込み不変条件

  • ISR は、処理量に制限があり、正しいフラグ処理、承認された RTOS API、設定された IRQ 優先順位を持つ必要があります。ISR コンテキストでのブロッキング、ヒープ割り当て、出力フォーマットを避けます。重要でない処理は延期しますが、普遍的な ISR マイクロ秒制限をでっち上げてはいけません。
  • 共有状態には、オーナーシップ、適切なアトミック操作、クリティカルセクション、または RTOS プリミティブを使用します。DMA/キャッシュの一貫性とオブジェクトのライフタイムを確認します。volatile はデータ競合を防ぎません。
  • デッドライン制約のある経路では、無制限のリトライ、キュー、ポーリング、非決定的なメモリ使用を避けます。割り当ては、制限付きの障害動作と互換性のあるプロジェクトポリシーの下でのみ、他の場所で使用できます。
  • 実際のサブシステム進捗を確認した後にのみ、ウォッチドッグに給餌します。割り込み更新やリセットに対して、永続ファームウェア状態を保護します。
  • 既存のコンパイラおよびコーディング標準要件を維持します。コーディングスタイルのみから MISRA 準拠を主張してはいけません。
  • 明示的な許可と復旧戦略なしに、フラッシュ、一括消去、eFuse の変更、不可逆的なブート/セキュリティ設定の書き込み、危険なハードウェアの操作は絶対に行いません。

条件付きリファレンス

  • STM32/Cortex-M HAL、クロック、NVIC、DMA、リンカ: stm32.md
  • ESP32/ESP-IDF SMP、GPIO/ストラッピング、IRAM、PSRAM、OTA: esp32.md
  • 割り込み、同期、DMA オーナーシップ、デッドライン、タスク: concurrency-and-realtime.md
  • Linux カーネル/デバイスツリー/BSP 実装: embedded-linux.md

繰り返しボード作業を行う場合は、オプションで project-profile.template.md をファームウェアリポジトリにコピーし、検証済みソースから情報を入力します。各応答は短く、エビデンスベースに保ちます。

Individual skills in this repo

This repo contains 2 individual skills — each has its own dedicated page.

関連スキル