mcpField
F
framework-recipes

framework-recipes

github.com/josiahsiegel開発5959 回インストール19 週間前に更新
リポジトリ

framework-recipes について

ターミナルUIを開発する人向けに、言語ごとのフレームワーク選定と実装パターンをまとめたスキルです。ツールキットの選択からテスト、端末の安全な扱いまで扱います。

主な機能

  1. 01言語別のターミナルUIフレームワーク
  2. 02フレームワーク選定の指針
  3. 03状態・イベント・描画のパターン
  4. 04テストと端末クリーンアップの助言
  5. 05詳細を補うリファレンスファイル

活用シーン

  1. 01言語に合うターミナルUIツールキットの選択
  2. 02状態管理とイベント処理の計画
  3. 03端末動作に依存する画面のテスト
  4. 04端末異常終了後のクリーンアップ

インストール

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

$npx skills add https://github.com/josiahsiegel/claude-plugin-marketplace --skill framework-recipes

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

同梱ファイル

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

references/
low-level-and-emerging.md
node-dotnet-and-selection.md
rust-python-go.md

詳細

フレームワークエコシステムのレシピ

ユーザーが特定のターミナル UI フレームワークを指定した場合や、エコシステムに関する実践的なガイダンスが必要な場合に、このスキルを使用します。API の正確な構文やバージョン固有の動作が重要な場合は、最新の公式ドキュメントを取得してください。

Rust のレシピ

Ratatui + Crossterm は、Rust のフルスクリーン TUI で現在の標準的な選択肢です。明示的な状態管理、イベント処理、描画関数を中心にアプリを構成します。クロスプラットフォームのターミナル設定とイベント処理には Crossterm を使用します。ウィジェットは固定サイズでスナップショットを作成し、PTY を介してイベントループを統合テストします。

ガイドライン:

  • ターミナルの設定とクリーンアップは、1 つのガードにまとめます。
  • 可能な限り、不変の状態から描画します。
  • 絶対座標ではなく、制約とレイアウトプリミティブを使用します。
  • パニックはターミナルのクリーンアップが必要になるイベントとして扱います。

Python のレシピ

Textual は、ウィジェット、CSS のようなスタイル設定、ワーカー、自動テストを備えた大規模なアプリに適しています。Rich は、リッチな出力、進捗状況、Markdown、テーブル、パネル、ロギングに適しています。prompt_toolkit は、シェル、REPL、補完、複数行編集、カスタムキー割り当てに適しています。curses/ncurses は、クリーンアップを適切に行うことを前提とした、依存関係の少ない従来型の TUI に適しています。

ガイドライン:

  • curses では、wrapper/finally によるクリーンアップを使用し、座標が y,x であることを忘れないでください。
  • Textual では、アプリの状態とワーカーを分離し、フレームワークがサポートするパイロットを使ってテストします。
  • Rich では、リッチなスクロールバック出力で解決できる問題に、フルスクリーンの複雑さを持ち込まないようにします。

Go のレシピ

Bubble Tea は Elm 風の Model、Update、View を使用します。一般的なコントロールには Bubbles を、スタイルやレイアウトには Lip Gloss を組み合わせます。tview は、tcell 上に構築されたウィジェット豊富なアプリを提供します。より低レベルでセルを制御するには、tcell を直接使用します。

ガイドライン:

  • 可能な限り、更新ロジックを純粋に保ちます。
  • 時間のかかる処理は、メッセージを返すコマンドやゴルーチンを介して実行します。
  • PTY テストの前に、Update と View を個別にテストします。

Node と TypeScript のレシピ

Ink は、React 風のターミナルコンポーネント、フック、コンポーネントテストに最適です。Blessed は、DOM のようなウィジェットツリーと手動での画面ライフサイクル管理に適しています。短い質問への回答を集める場合は、フルスクリーンアプリよりプロンプトライブラリのほうが適していることがよくあります。

ガイドライン:

  • 使用するライブラリの正確なバージョンについて、サイズ変更、マウス、Windows での動作を確認します。
  • レンダー関数で副作用を発生させないようにします。
  • ターミナルの動作に依存するフローには、PTY 統合テストを使用します。

.NET のレシピ

Terminal.Gui は、ビュー、キーボードナビゲーション、マウス、テーマ、レイアウトを備えたフルスクリーンアプリに適しています。Spectre.Console は、リッチな CLI 出力、プロンプト、進捗状況、ステータス、ツリー、テーブル、コマンドアプリの構成に適しています。

ガイドライン:

  • UI を行指向のままにできる場合は、Terminal.Gui より先に Spectre.Console を選びます。
  • テスト用にコンソール I/O を抽象化します。
  • 自動化向けに、非対話型コマンドの代替手段を用意します。

C/C++、Zig、Swift のレシピ

ncurses は、従来型のポータブルな C TUI レイヤーとして今も使われています。notcurses は、最新のビジュアル、リッチセル、サポートされる環境での画像、高性能なターミナルグラフィックスとフォールバックに役立ちます。FTXUI は、組み合わせ可能な C++ コンポーネントとレイアウトを提供します。zig-vaxis は、Unicode を考慮したターミナル処理を備えた最新の Zig TUI ツールキットです。SwiftTUI や関連する Swift ターミナルライブラリは、Swift ネイティブの CLI に適していますが、プラットフォームとターミナルの対応状況を慎重に確認してください。

ガイドライン:

  • 低レベルのフレームワークでは、明示的なクリーンアップ、Unicode の幅測定、機能フォールバックのテストが必要です。
  • Windows、tmux、Unicode の動作が文書化された、メンテナンスされているライブラリを優先します。
  • デプロイ先のターミナル環境が管理されていない限り、画像やグラフィックス機能を必須要件にしないでください。

参考ファイル

  • references/rust-python-go.md - Ratatui、Textual/Rich/prompt_toolkit/curses、Bubble Tea/tview/tcell の実践的なパターン。
  • references/node-dotnet-and-selection.md - Ink、Blessed、Terminal.Gui、Spectre.Console、移行、選定時の注意点。
  • references/low-level-and-emerging.md - C/C++ の ncurses/notcurses/FTXUI、Zig の vaxis、SwiftTUI、新興ツールキットに関する注意点。

コメント