bargainbadger-price-update について
bargainbadger-price-updateは、商品検索セッションを製品のvaultノート内の日付付き価格セクションにまとめるスキルです。購入先を推奨せず、vaultの仕様に従って価格を記録します。
主な機能
- 01vaultの仕様とリンク先ノートを読む
- 02検索セッションと商品を確認
- 03取得データを絞り込み件数を集計
- 04派生価格をコードで計算
- 05価格セクションを更新してコミット
活用シーン
- 01製品ノートに日付付き価格欄を追加
- 02複数店舗の商品価格を記録
- 03使い切りコーヒーポッドを除外し理由を記載
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ gkwa/ volcanicviper --skill bargainbadger-price-updateインストール後、Claude Code で/bargainbadger-price-updateを入力して読み込まれたか確認します。
同梱ファイルtile.json
詳細
このスキルの内容
1 回のクロールで、1 回のセッション中にすべての店舗から 1 つの商品を検索します。
このスキルは、そのセッションの結果を、商品ノートの日時付き価格セクションにまとめます。
納品物は、更新されたノートです。
最安値について尋ねる依頼であっても、作業内容は価格を記録することであり、最安値を選ぶことではありません。
商品はパラメーターなので、セッションで何を検索したかにかかわらず、同じ手順を実行します。
まず仕様を読む
データベースの場所、スキーマ、フィールド定義、サンプリングクエリ、抽出ルール、計算方法、エッジケースなど、事実に関する情報はすべて保管庫にあります。
何かに手を加える前に、ハブノートを読んでください。
/Users/mtm/Documents/Obsidian Vault/bargainbadger.md
次に、目次セクションにリンクされているすべてのノートを読み、そのノートが定義について別のノートを参照している場合は、二次リンクもたどってください。
ウィキリンクは、保管庫のパスとリンクテキストを結合し、.md サフィックスを付けて解決します。
目次の一覧をここに再掲していないのは、ノートの追加、分割、改名が行われるためです。
このスキルを書いた時点の一覧ではなく、現在ハブに記載されている内容を読んでください。
このファイルはワークフローであり、リファレンスではありません。
データ、データベース、スキーマについての事実は一切記載しておらず、今後も記載してはなりません。
データ、スキーマ、テーブルに関する情報が保管庫に不足している場合は、このファイルではなく、保管庫に追加してください。
例外は記述のレイアウトで、これはこのファイルに記載します。
完成したセクションをページ上でどう配置するかは食料品に関する情報ではないため、以下の「セクションのレイアウト」のルールはこのファイル独自のものであり、保管庫の仕様の欠落には当たりません。
実行条件
商品ノートに価格を書き込むよう依頼された場合にのみ実行します。
実行対象となる依頼:
- 「たった今エシャロットを検索したので、今日の価格を追加するセクションをエシャロットの Markdown ファイルに追加してもらえますか」
- 「リーキのノートに価格セクションを追加して」
- 「今、発酵バターの最安値はいくらですか」
実行対象とならない依頼:
- スキーマを作成するためのデータベースのサンプリング。これは仕様策定の作業です。
- 変更履歴のエントリを追加すること
- 商品ノートにテーブルを書き込むところまで至らない依頼
ワークフロー
- 上記のとおり仕様を読みます。
- セッションを特定し、セッションに付けられたラベルを信用する前に、実際に何を検索したか確認します。
- 保管庫内の商品ノートを特定します。付随作業として新規作成してはなりません。
- セッションの行を取得して商品に絞り込み、取得、採用、除外した件数を報告します。
- スキーマで定義されたフィールドをそれらの行からバッチで抽出し、保管庫の外にスクラッチファイルを作成して保存します。
- 派生価格はすべて、手計算ではなくコードで計算します。
- テーブルを「セクションのレイアウト」に従って配置した価格セクションに整形し、ノート内の最新セクションより上に挿入します。既存の古いセクションは変更せず、セクションがない場合は新たに作成します。
- ノートをコミットし、スクラッチファイルを削除します。
セクションのレイアウトがこのファイルで定められているステップ 7 を除き、各ステップのルールは仕様に従います。
テーブル自体も同様です。どの列を含めるか、各列に何を記載するか、行をどの順序にするかは仕様で定義し、このファイルでは定義しません。
仕様に記載がない場合は、ノート内の最新の価格セクションに合わせ、慣例として黙って採用するのではなく、仕様の欠落として報告します。
継承した形式は、仕様で定義されるまでの暫定措置です。
セクションの構成
表の背景にある考えを記録しておく価値はありますが、読者が表にたどり着く妨げになってはいけません。
そのため、価格セクションは表の後にサブセクションを1つだけ置きます。
- 日付付き見出しの直下に表を置き、その間には何も挟みません。
### notesに、セクション内の文章をすべて記載します。
表には独自の見出しを付けません。日付付き見出しがすでに表の見出しだからです。
この構成の要点はそこにあります。メモの目次から日付付き見出しに移動すれば、最もよく求められる価格が表示され、背景を知りたい場合は、見出しを1つ下に進めばよいのです。
どんなに短くても、表の上に要約を置かないでください。価格を知りたい読者はすでに表を見ていますし、経緯を知りたい読者は ### notes を開きます。
### notes には、実行 ID と店舗数、このセクションの対象範囲、取得・採用・除外した行数から始めて、主な調査結果、そして表の作成方法をすべて記載します。表の対象を製品に絞るためにクロール語句をどのように限定したか、表に含めたバリエーションと別のメモに回したバリエーション、列の表記を正規化した用語、各行の処理内容、行が作成されなかった商品とその理由を記載してください。
このサブセクションをさらに分割しないでください。背景説明を読み飛ばすと決めた読者にとって、分類されていても何の利点もないからです。
導入文と箇条書きを使って順序を整え、内容をグループ化してください。行が作成されなかった商品は最後にまとめ、それぞれに名前を記載してリンクしてください。
相互に順位を付けられない2つの尺度で販売されているため、1つの製品に複数の表が必要な場合は、日付付き見出しの下に表をそのまま並べることはできません。そのため、それぞれの表に ### priced by weight や ### priced by volume のように基準を示す ### 見出しを付け、最後に ### notes を置きます。
保管庫内の古いセクションには、ほかにもさまざまなサブセクション名がありますが、それらを引き継がないでください。
対象外
- スキーマに関する判断。これは保管庫のメモと変更ログで扱います。
- メモのフロントマターにある店舗のブール値フィールドの更新。
- 購入する製品や店舗の推奨。
- クロールの実行。ユーザーはこのスキルを呼び出す前に実行します。
1回分のポッドは除外
Keurig、K-Cup、Nespresso など、1杯分のカプセル式コーヒーポッドは、価格セクションに一切掲載しません。
絞り込みの段階で除外し、どこにも価格を記載しないでください。ポッドは1杯ごとに捨てる使い捨てのプラスチックカップですが、袋入り製品はそうではないため、価格にかかわらず対象外です。
これはユーザーが購入する製品についての継続的な希望であり、スキーマのルールではありません。
クロールで袋入り製品とポッドの両方が見つかった場合は、袋入り製品のみ表に記載してください。ポッドは継続的な希望に基づいて除外したことをセクションの ### notes に記載し、その数を示してください。また、ポッドのみを取り扱っているために表から完全に除外される店舗があれば、その店舗名も記載してください。
スキーマの変更
正式な規約は、ハブメモ「bargainbadger.md」からリンクされている保管庫メモ「bargainbadger change log.md」の冒頭に記載されています。スキーマを変更する前に、そこで規約を確認してください。
スキーマを変更するたびに日付付きの項目を追加し、変更のきっかけとなった製品を挙げてください。取得した商品情報のテキストをそのまま引用し、どの部分が変更を必要としたかを説明して、productUrl も記載してください。
その根拠はスキーマの変更と同じ編集で記録してください。後から追記してはいけません。
データベースの行 ID や取得時刻は絶対に含めないでください。データベースは定期的に消去されるため、ID、サイト、capturedAt は役に立ちません。引用した商品情報のテキストと productUrl だけが残ります。