見出し画像

Claude Codeに「献立作成→買い物リスト化→イオンネットスーパーのカート投入」を丸ごと任せてみた話

はじめに

毎週の献立を考えて、必要な食材を書き出して、ネットスーパーで一つずつ検索してカートに入れる——地味に時間を取られるこの一連の作業を、Claude Code(AIコーディングエージェント)に任せてみました。

やったことはシンプルで、次の4ステップです。

  1. 対話しながら1週間分の献立を決める

  2. 献立から買い物リストを作る

  3. 決まった献立を履歴ファイルに記録する(次回の重複を避けるため)

  4. ブラウザ操作でイオンネットスーパーの商品を検索し、カートに投入する

この記事では、実際にどう組み立てて、どこでつまずいたかを含めて記録しておきます。同じようなことをやってみたい人の参考になれば嬉しいです。

全体の仕組み

Claude Codeには CLAUDE.md という指示書ファイルを置けます。ここに「何をどういう手順でやってほしいか」を書いておくと、そのプロジェクトで作業するたびにAIがこのルールに従って動いてくれます。

今回用意したCLAUDE.mdの骨子はこんな内容です。

  • 過去2週間分の献立履歴を読み込んで、同じ主菜が続かないようにする

  • 足の早い食材(生魚・ひき肉など)は週の前半に配置する

  • キャベツや大根のような大きい野菜は、複数日で使い回す構成にする

  • 確定した献立は data/menu_history.json に追記して記録する

  • 買い物リストは、ネットスーパーの検索窓に入力しやすい形(例:「豚バラ肉300g」→検索語「豚バラ」/備考「300g以上」)に正規化する

  • プライベートブランド(トップバリュ)がある商品は優先的に選ぶ

  • カートに入れる操作はPlaywright(ブラウザ自動操作)で行うが、決済・注文確定は絶対に自動化しない

最後の「決済は絶対に自動化しない」は特に大事にしたポイントです。カートに入れるところまでは自動化しても、実際に支払いを確定させる操作は必ず人間の目視確認を挟む、というルールを最初から明文化しておきました。

Step1〜2:対話で献立を決めて、買い物リストにする

まずAIから「冷蔵庫の残り物はあるか」「今週外食の予定はあるか」「和食中心にしたいかバランス重視か」といったヒアリングを受けます。今回は「残り物なし・外食予定なし・和食中心」で回答し、1週間分の献立案が提示されました。

傷みやすい食材を週の前半に、大根やキャベツを複数日で使い回す構成になっていて、提案自体は違和感なく確認だけで済みました。

献立が確定すると、そこから自動的に買い物リストが作られます。「豆腐」だけだと具体性がないので、「2丁、トップバリュ優先」のように数量と選定基準まで添えて出してくれるのがポイントです。また、味噌・生姜・すりごま・米のような「家にある可能性が高い調味料」は先に確認を取ってから、必要なければリストから外す、という一手間も入りました。

Step3:履歴ファイルへの記録

確定した献立は data/menu_history.json に、日付・曜日・主菜・主な食材・副菜・カテゴリの形で追記されます。これを続けていくと、次回以降「直近2週間で似た献立が続いていないか」を自動でチェックできるようになる、という設計です。

Step4:ブラウザ自動操作でカートに投入する

ここが一番の山場でした。実際のイオンネットスーパーのサイトを開き、買い物リストを1品ずつ検索してカートに追加していきます。

つまずいたポイント:配送枠が空だとカートが保持されない

最初、商品をカートに追加してもページを移動するたびにカートが「0点」にリセットされる現象に遭遇しました。原因を調べたところ、画面上部の「配送日時」が「選択してください」のまま未確定だったことが判明。このサイトはカートの内容が配送時間枠の予約と紐づいていて、枠が決まっていないと商品を保持できない仕様だったようです。

配送日時・時間帯の予約は在庫や手数料にも関わる判断なので、AIが勝手に決めず、いったん作業を止めてユーザーに確認を取りました。配送枠を選んでもらった後は、カートの中身がきちんと保持されるようになりました。

このように「良かれと思って自動で進める」のではなく、判断が必要な分岐点でいったん止まって確認を挟む、というのは今回意識して徹底した部分です。

つまずいたポイント:配送日と商品の受取期限が合わない

商品一覧を見ていくと、「大根1本(9月14日〜9月15日のお受取り限定)」のように、特定の受け取り日でしか注文できない商品が多数ありました。予約していた配送枠(9月16日)とズレる商品は自動的に除外し、日付制限のない同等の商品に差し替える、という判断をその都度行いました。人間が買い物する感覚だと見落としがちな部分かもしれません。

商品選定のロジック

検索結果が複数出た場合は、あらかじめ決めておいた優先順位で選びました。

  1. トップバリュ(プライベートブランド)製品を優先

  2. 指定した数量・容量に近いもの

  3. 検索結果の上位にある標準的な商品

例えば「豚肉ロース生姜焼用」で検索すると、和牛から輸入肉まで色々出てきますが、用途に合う「生姜焼き・豚丼用」表記の商品の中から、配送可能日の制限がないものを選ぶ、という形です。

最終的にどうなったか

1週間分・19品目、合計21点をカートに投入完了。イオンのページ更新に時間がかかることもあり、カートに入れるだけで15minほどかかりました。カートに入れたところで作業を終え、支払い方法の選択や注文確定は、必ずユーザー自身がブラウザで最終確認してから行う運用にしています。

やってみて感じたこと

  • 「献立を考える」「食材を書き出す」「ネットスーパーで検索する」という3つの別々の作業が、対話の流れの中で一本につながるのは想像以上に楽でした

  • 決済のような取り返しのつかない操作は自動化の対象から外し、人間の最終確認を必須にする設計にしたのは正解だったと思います。AIに「できること」と「あえてやらせないこと」を分けて考えるのが大事だと感じます

おわりに

「毎週の献立と買い物が地味に面倒」という悩みは多くの人が抱えていると思います。今回のように、AIエージェントに指示書(CLAUDE.md)を渡して、対話しながら一連の作業を任せるやり方は、他の定型的な家事タスクにも応用できそうです。次は栄養バランスのチェックや、家族の好みの学習なども組み込んでみたいと考えています。

作成したCalude.mdファイル


いいなと思ったら応援しよう!