Communitygithub.com

mgummich/mealie-skill

REST API を介して Mealie インスタンスをクリーンアップします。LLM が判断を下し、スクリプトが書き込みを行います。Agent スキル兼スタンドアロン CLI。

mealie-skill とは?

このスキルは、Mealie レシピ管理インスタンスを保守するためのエージェントスキルです。レシピの改善(空欄の補充、食材リストに基づく材料解析、手順の翻訳、メートル法への変換、画像設定)、フードとユニットの整理(説明・複数形・ラベル・エイリアスの補完、重複のマージ)、カテゴリ・タグ・ツールの統合、クックブックの作成、重複レシピやデッドリンクの発見、食事タグの推論、URL からのレシピインポート、献立計画の作成などを自動化します。常に「分析 → 計画 → 実行」の3フェーズで動作し、計画の明示的な承認なしに書き込みは行いません。対応プラットフォームは Mealie の REST API であり、`mealie_ctx.py` スクリプトがすべての API 呼び出しをラップして、順序ガードやドライランを提供します。また、`mcp-mealie` MCP サーバーが接続されている場合は、それを分析に利用し、インデックス構築をスキップしてサーバーサイドで監査を実行します。

対応~Claude Code~Codex CLI~Cursor
npx skills add mgummich/mealie-skill

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

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

ドキュメント

Mealie メンテナンス

常に3つのフェーズで行います:分析 -> 計画 -> 実行。 計画の明示的な承認なしには何も書き込みません。 1つの計画に2種類のタスクを混在させないでください。

モードを選択し、対応するリファレンスを読む

現在のモードに対応するリファレンスだけを読んでください。すべてを読む必要はありません。

タスクリファレンス
レシピのクリーンアップ、材料解析、項目の入力references/recipes.md
フード:不足、マッチング、重複references/foods.md
ユニット:不足、重複、メートル法への変換references/units.md
ショッピングリストのラベル:パレット、不足、軸references/labels.md
カテゴリ、タグ、ツールの統合references/organizers.md
クックブックの作成または作り直しreferences/cookbooks.md
重複レシピ、壊れた材料行、デッドリンク、食事タグreferences/maintenance.md
レシピ、フード、ユニットの extras フィールドreferences/extras.md
献立計画、URLからのレシピインポート、MCPサーバーの操作references/mcp.md

ACTIONS フォーマットはすべてのモードで同じです:references/actions.md。 そのファイルはフェーズ2が始まるときにのみ読んでください。

mcp-mealie MCP サーバーが接続されている場合は、references/mcp.md を読んでください。 それにより、他のすべてのモードでのデータ収集方法が変わります。

ツール

scripts/mealie_ctx.py がすべての API 呼び出しをラップします。ソースコードは読まず、--help を指定して呼び出してください。

パスはこのスキルディレクトリからの相対パスであり、作業ディレクトリからの相対パスではありません。 すべての呼び出しの前にこれを付けてください。付けないとコマンドが見つかりません。

python .agents/skills/mealie/scripts/mealie_ctx.py <command>

setup [--check]                    接続を確認、認証情報を保存
index [--refresh]                  ローカルレシピインデックスを構築
audit <what> [--limit N]           フード、ユニット、ラベル、カテゴリ、タグ、
                                   ツール、レシピ、リンク、エクストラ
ctx recipe <slug> [--search T]     レシピ + マッチするフード + オーガナイザー
                  [--full]         完全な JSON(めったに必要ありません)
ctx <what> [--limit N] [--group G] フード、ユニット、カテゴリ、タグ、ツール、
                                   クックブック、ダイエット
usage <kind> <id>                  特定のフード/ユニット/カテゴリ/タグ/ツールを
                                   使用しているレシピ
convert "<amount>" [...]            非メートル法の量 -> メートル法 + 
                                   Original: 注意; °F とインチも対応
rules [--init]                     このインスタンスのハウスルール
seed labels|units|all [--out F]    固定ボキャブラリに対するアクション
apply <file> [--slug S] [--dry-run]

最初の audit 呼び出しでインデックスが構築されます(すべてのレシピを1回スキャン。インスタンスのサイズによって時間がかかります)。 それ以降の監査はすべてそのインデックスから読み取ります。 書き込み apply のたびにインデックスは破棄され、再構築されます。

これらの3つは、手作業で書くと間違いやすい処理を代行します。

  • convert は密度テーブルと丸めルールを保持し、Original: 注意を返します。 ヤード・ポンド法の量を頭で変換しないでください。
  • rules はこのインスタンスの決定事項(ロケール、カテゴリ軸、コンテナの前提、 ベアフードを解決するテーブル(pepper -> black pepper [ground]))を出力します。 何かを作成またはリネームする前にこれを読み、同じ質問を2回判断するのではなく、 1行を追加してください。
  • seed は固定ボキャブラリ(ゾーンカラー付きの29のラベル、メートル法ユニットセット)を ACTIONS ファイルとして書き込みます。既存のものはスキップします。

apply はすべてのアクションを .mealie.changelog.jsonl に、上書きした状態とともに記録します。 リストフィールドを短縮する patch_recipe や、Mealie 1.x 用に書かれたクックブックペイロード (1つの queryFilterString、決して tags/categories/tools/requireAll* ではない) を拒否し、プランをリントします(非メートル法ユニットは致命的エラー)。 --dry-run は同じチェックを実行します。 詳細は references/actions.md を参照してください。

コンテキストコマンドはフィルタリングされたデータを返します。 フィルタリングせずに完全なテーブルをロードしたり、手動でレシピループを構築したりしないでください。 それがインデックスの役割です。

環境変数:MEALIE_URL、MEALIE_TOKEN — さらに MEALIE_API_TOKEN( mcp-mealie におけるトークンの名前)、MEALIE_BASE_URL、MEALIE_API_KEY も 読み取られます。これらが設定されていない場合、スクリプトは .mealie.env から、次に作業ディレクトリの .env から読み取ります。 どちらも見つからない場合、setup へのヒントとともにコマンドは中断します。

スクリプトはインスタンスへのネットワークアクセスを必要とします。 サンドボックス環境では、URL とトークンが正しくても接続エラーで呼び出しが失敗します。 設定のバグではなく、環境の権限の問題です。その旨を伝え、ユーザーに呼び出しを許可させてください。 手書きの HTTP スクリプトで回避しないでください。mealie_ctx.py だけが API への唯一の経路であり、 別の経路には順序ガードもドライランもありません。MCP サーバーが接続されている場合、 その呼び出しはサーバーを経由して実行され、影響を受けません。

setup --check は設定をテストするだけで、自分で安全に実行できます。 セッションの開始時に接続が不明な場合に1回使用してください。 通常の setup は URL とトークンを要求し、あなたではなくユーザーが実行する必要があります。 ユーザーに依頼して待ってください。 チャットでトークンを尋ねたり、自分でファイルに書き込んだりしないでください。

mcp-mealie MCP サーバーが接続されている場合、代わりに分析に使用してください。 サーバーサイドで監査質問に回答するため、インデックスはまったく構築されず、 このスクリプトには意図的にない機能(献立計画、URLからのレシピインポート、インタラクティブなレシピ検索)もカバーします。 スクリプトは順序付けられたバッチを保持します。 ORDER またはセット全体に対するドライランを必要とする計画は、依然として actions.json と apply を経由します。 最初に references/mcp.md を読んでください。

出力スタイル:caveman

caveman スキルが利用可能な場合、このワークフローでそれを有効にしてください。 監査、計画、レポートは長い表形式の出力になります。圧縮が効果を発揮するまさにそのケースです。 スキルがない場合:通常通りに、しかし簡潔に回答してください。つまり、散文ではなく表を使い、ツールがすでに出力した内容を繰り返さないでください。

圧縮されるのはチャット出力だけです — 分析、計画、レポート、途中のコメント。 次の2つは完全な ${CONTENT_LANG} の散文のままにしてください。

  • Mealie に書き込むすべてのもの、つまり actions.json 内のすべて。データベースコンテンツであり、チャットではありません。references/actions.md を参照してください。
  • 破壊的操作に関する警告、確信が持てない場合の質問、および承認の質問。14のレシピを書き換えるマージでは、曖昧さを避けることが数トークンの節約よりも重要です。

すべてのモードに共通するルール

何も発明しないでください:材料、量、手順は構造化、翻訳、修正のみ行われ、追加または削除はされません。既存の正しい値はそのまま残します。

すべてのコンテンツは ${CONTENT_LANG} で記述します。確立された調理用語(sous-vide、roux、ganache)はそのままにします。メートル法の単位を使用します。

見積もりはレポートに明記してください。不明な場合は、推測する代わりにフィールドを空のままにしてください。

作成する前に検索してください — フード、ユニット、オーガナイザーすべてについて。スペルのバリエーション、単数形/複数形、外国語の同等語も確認してください。

破壊的操作(merge_*、delete_organizer、retag_recipe)は、影響を受けるレシピ数とともに計画内で明示的にマークし、元に戻せないことを指摘してください。

バッチは小さく保ってください:1回の実行につき、最大25個のフード/ユニットの不足、または5つの重複/オーガナイザーのグループ。レシピには独自のルールがあります。材料、手順、ノートについては1計画あたり1レシピ、フィールドレベルの変更については任意の数です。references/recipes.md を参照してください。

中断時には、推測による修復を試みないでください。到達した状態を報告して質問してください。

関連スキル