Communityコーディング&開発github.com

C51 コード解説と教学可視化

完全な51マイコンC51プログラムを解析し、高専・職業大学向けの中国語コード解説と教学情報図を生成します。ソースコード、キーステートメント、ハードウェア効果、実行フローを可視化し、LED、ボタン、ブザー、7セグメントLEDなどのC51教学に対応。コード解析のみ、プロンプト生成のみの利用も可能です。

C51 コード解説と教学可視化 とは?

このスキルは、学習者が51マイコン(C51)のソースコードを深く理解できるよう、高専や職業大学の『マイコン応用技術』初級者向けの教学情報図を自動生成するエージェントスキルです。ユーザーが提出した完全なC51ソースプログラムを解析し、コードの各行に対応するハードウェアの動作、実行フロー、重要ポイントを視覚的に説明する中国語のPNG画像(1814x867ピクセル)を作成します。特に、LED点滅、キー入力、ブザー制御、7セグメントLED表示など、C51でよく扱う基本周辺機器の動作をコードと対応づけて説明する機能に優れています。スキルは、コードの完全性と可読性を最優先し、ソースコードを一切改変せずにそのまま解析に使用します。また、解析結果は専用のJSON形式でレンダリングツールに渡され、プログラムによる確定論的な描画で情報図が生成されます。画像生成が不要な場合や、コード解析のみ、あるいは画像生成用のプロンプトのみを出力することも可能で、柔軟な運用に対応しています。使用にあたっては、解析とレンダリングという二段階のプロセスを経るため、ソースコードの正確な解析と視覚的な情報設計の両立が可能であり、教学現場でのコード解説に特化したスキルです。

対応~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/Davidypy/Skills/tree/HEAD/skills/c51-code-visualizer

Installed? Explore more コーディング&開発 skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

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

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

ドキュメント

C51 コード解説と教学可視化 は何をしますか?

ユーザーから提出された完全なC51ソースプログラムを、高専・職業大学の『マイコン応用技術』初学者向けの教学教材に変換します。ソースコードの完全性と可読性をグラフィックの美しさよりも優先します。実際のコードに基づいて動作を説明し、コメント、ファイル名、或いは慣用的な回路図を事実として扱いません。

入力と成果物の範囲

  • デフォルトでは1814×867ピクセル、横向き、白背景の中国語PNG情報図を生成します。PPTのタイトル下に挿入するのに適したサイズです。デフォルトでは1枚の画像を生成し、可読性に応じてページ数を増やします。ユーザーが明示的に画像枚数やレイアウトを指定した場合は、それを優先します。
  • ユーザーが解析、プロンプト、または計画のみを希望する場合は、その範囲のみを実行します。本スキルの作成自体が画像生成を意味するわけではありません。実際のコードがない場合、サンプルやプレースホルダーのテキストをプログラムとみなして扱いません。
  • 完全なコード、プログラム名(存在する場合)、画像枚数、レイアウト、既知の回路条件を読み取ります。コードがない場合は、コードの提供を要求します。その他の合理的に推定可能なパラメータについては、デフォルト値を明示して処理を進めます。未知のアクティブレベルについては、明示的な仮定を含めて分析するか、ポートの状態のみを表示することができます。
  • ファイル名はユーザーが指定したもの、またはソースコード内で明示されているものを使用します。識別できない場合は「未命名程序.c」を使用し、表示名であることを明記し、元のファイル名と偽ることはしません。
  • 出力はデフォルトで、現在のタスク用の独立した出力ディレクトリに書き込まれ、スキルのディレクトリにユーザーの作業を書き込むことはありません。

ソースコード不変の基準

  1. ソースファイルは元のバイト列のまま保存します。チャット内のコードは、コードフェンス内の原文のみを抽出し、空行、インデント、末尾の改行を保持した上で保存し、基準(ベースライン)を確立します。異なるエンコーディングは明示的にデコードする必要があり、置換文字を使用してエラーを黙殺することは禁止します。
  2. ファイル名、エンコーディング、SHA-256、物理行数、各行の内容、括弧文字の数を記録します。括弧の数にコメントや文字列内のものが含まれている場合、それは文字の監査としてのみ機能し、構文チェックとは見なしません。
  3. 識別子、定数、コメント、演算子、括弧、または重複するステートメントを書き換えません。コードの最適化や括弧の自動補完は行いません。ソースコード領域に省略記号を追加しません。エラーを発見した場合は、図の外で説明します。
  4. デフォルトでは、元の行順序とインデントを保持します。行番号やシンタックスハイライトは表示レイヤーに属し、ソーステキストに書き戻すことはできません。タブは明確なタブストップで展開表示できますが、検証のために元の文字は保持します。
  5. 改ページやコードの2カラムレイアウトは、ソースファイルの全ての行を1回だけ、元の順序で連続して番号を振ってカバーしなければなりません。コードスニペットが解説セクションで再度引用されることは、ソースコードの改ページ重複とは見なしませんが、明確に区別する必要があります。

プログラムに基づく教学解説の構築

分析時には references/c51-analysis.md を参照し、実際のプログラムに基づいて整理します:

  • 入出力ピン、型、変数の初期値、関数の責務。
  • 初期化、メインループ、条件分岐、ブロッキングループ、割り込み間の実際の関係。
  • 式の評価順序、ループ回数、シフト/ローテート、ポートの数値と状態変化。
  • キー検出、チャタリング除去、再確認、解放待ちが実際に存在するかどうか、および1回のキー押下が繰り返しトリガーされる可能性があるかどうか。
  • 既知の回路情報、必要な仮定、ソースコードのみでは決定できない部分。

各キー解説は「ソースコードから直接引用した文 → 文の機能 → 実際の効果」の形式で行います。このページに関連する3~6個の知識ポイントのみを選択し、機能の概要は通常2~4行とします。数を揃えるために、ソースコードに存在しない知識ポイントを追加しないでください。

レイアウトと生成

画像生成前に references/rendering.md を参照します。そこにはレンダリングツールのコマンド、教学JSONフォーマット、改ページルールが記載されています。

  • 白背景、細い枠線、角丸カード、周囲のセーフマージンは20~30px。コードは青色テーマ、キー説明は緑色、実行効果はオレンジ色、フローはシアン色。履歴画像がない場合は、本仕様に従って新規に作成し、未見の過去作品と一致するとは主張しません。
  • 余分なコースタイトルは追加しません。コードカードのタイトルには実際のファイル名を表示し、右側に「C言語(51マイコン)」とページ番号を表示します。
  • 左側のコード領域は通常55%~65%を占め、等幅コードフォントと中国語対応のフォールバックフォントを使用し、コメントは緑色、キーワードは青/紫、数値はオレンジ色で表示します。コードとコメントははみ出したり、切り取られたり、非常に小さなフォントサイズで無理やり収められたりしてはいけません。
  • 右側には、コンテンツに応じてプログラム機能、キーステートメント、ハードウェア効果、実際のフローを配置します。複数ページの場合は、関連するページに割り当て、すべてのページですべてのモジュールを繰り返す必要はありません。コードが長い場合は、コード専用ページと解説専用ページを使用できます。
  • 優先的に本スキルの scripts/render_infographic.py を使用して、確定的に完全なPNGをレンダリングします。このスクリプトは、ソースコードの一行読み込み、改ページ、行番号、シンタックスハイライト、教学カード、ポートLED、接続線付きフローノードを担当します。教学内容はあなたが分析してJSONに書き込み、ツールはセマンティクスを推測しません。
  • スクリプトが行幅、テキスト容量、レイアウト制約のために拒否した場合は、改ページやレイアウトを調整し、必要に応じてプログラムによるSVG/HTMLなどのツールを使用して、同じソースコード基準とカバレッジ検証を実現します。制約を回避するために、コードを切り詰めたり、密かに文字を減らしたりしてはいけません。
  • 通常のカード、ピン、LED、7セグメントLED、矢印はプログラムで描画し、画像モデルは不要です。ユーザーが希望する場合、またはコンテンツにビットマップイラストが本当に必要な場合にのみ、利用可能なimagegenスキルを使用します。このスキルは、非コード素材のみを担当します。画像モデルにソースコードを再描画させて、正確であると主張させることはできません。
  • ユーザーが強制的に指定した画像枚数で、完全性と可読性を同時に満たせない場合は、必要なページ数と理由を説明し、明確なレイアウトの選択肢を提示します。勝手にソースコードを削減してはいけません。自動枚数モードでは、明確で読みやすい改ページを直接採用します。

検証と成果物の提供

  1. すべてのソースコードページのテキストを再構築し、ベースラインと文字ごとに比較します。連続した行番号、重複や欠落がないこと、元の閉じ括弧と末尾の改行を確認します。結果のリストを保持します。
  2. プログラム解説、分岐条件、キー動作、ハードウェア状態をチェックします。LEDのレベル、ビット順、方向は、既知の配線または明示された仮定と一致している必要があります。
  3. 最終的なPNGを1枚ずつ開き、コード、中国語のコメント、フローノード、解説テキストが明確であり、重なり、文字欠け、切り取り、位置ずれがないことを確認します。各画像の実際のサイズを確認します。
  4. 検証範囲を区別します:ソースコード比較に合格したことは、レイアウト入力が一貫していることを証明します。最終ピクセルの可読性には、さらに目視チェックが必要です。ソースコードのハッシュやPNGのハッシュを、OCRやセマンティックな正確性の証明として扱ってはいけません。
  5. 画像と簡単な説明を提供します:画像枚数、各ページのソースコード行番号と主な解説内容、実際のサイズ、完了した検証範囲、発見されたソースプログラムの問題とハードウェアの仮定。ソースコードベースラインと manifest.json へのリンクを提供し、再確認を容易にします。
  6. プロンプト、コードパネル、未検証のスケッチのみが得られた場合は、その提供状態を明確に表示し、完全な教学情報図とは呼びません。ツールに制限がある場合は、実際の制限と完了した内容を説明します。

関連スキル