ハコヅミを作る #68:ほかの人の料理を、自分の料理にコピーする(5日前の案を、作る前に読み直す)
#60 で、「人のレシピを、コピーしてよいか」を考えました。共有の機能が、まだなかったころです。そのときは、作らずに、案として Notion に書いておきました。
5日たって、共有ができました。ほかの人の料理を見て、「これ、作ってみたい」と思える状態です。案を、作ることにしました。
- 案を、そのまま作らない
- 守れないものが、2つある
- しおりでは、足りない
- 写すもの、写さないもの
- 「コピーした」の印は、編集しても外れない
- 食材は、自分の消耗品になる
- 日本語の並び順で、テストが落ちる
- 同じテストを、2回直す
- 共有で、残るのはランキングだけ
案を、そのまま作らない
5日前の案の中心は、わたしが出したものでした。
他の人からコピーした料理は共有不可とする必要はありそう(真似しながら新規に作れば回避できてしまうが)
作る前に、もう一度、Claude Code に聞きました。
他の人のレシピを自分用にコピーして、かつ、コピーした料理はその人が共有できないようにすれば、問題ないのでは?と思うが、どうだろう?
返事の最初は、「大筋は、その考えでよい」でした。ただし、続きがありました。
「コピーした料理は共有できない」だけでは、守りきれないところが2つある。
5日前の案は、自分でも分かっているつもりでした。分かっているつもりのものほど、読み直さずに作ってしまいます。案は、書いた日の自分が、その日に分かっていたことの控えです。作る日には、もう一度、問い直します。
守れないものが、2つある
「コピーした料理は、共有できない」で止められるのは、人のレシピが、ボタン1つで、別の人の名前で広がることです。いちばん避けたいのは、これなので、効き目は大きい。
でも、それだけでは、守れないものがありました。
1つ目:写真
写真は、撮った人のものです。料理の写真に、人が写っていることもあります。
コピーで写真まで写すと、もとの人が共有をやめても、退会しても、その写真が、相手の手元に残ります。コピーした料理を「共有できない」ようにしても、写真が残ることは、止められません。
写真は、写さないことにしました。ギアを「欲しい」に入れる機能と、同じ線です。
2つ目:もとのレシピが、そもそも写しだったとき
共有した人が、料理の本や、レシピのサイトの文を、そのまま写して登録していたとします。規約では、それを共有にしてはいけない、と書いてあります。でも、守らない人は、いるかもしれません。
その料理をコピーすると、本の文が、コピーした人の手元にも残ります。コピーを「共有できない」にしても、これは防げません。コピーした人は、悪くないのに、です。
ここは、仕組みでは守れません。もとの共有を、通報で見つけて止める。規約に、写したレシピを共有にしない、と書いておく。どちらも、もうあるものです。この2つで受けると、割り切りました。
全部を仕組みで守れないときは、「どこまでを仕組みで守り、どこからを約束と通報で受けるか」を、はっきりさせておきます。はっきりしていれば、通報が来たときに、迷いません。
しおりでは、足りない
コピーではなく、「しおり(お気に入り)」にする手も、ありました。料理そのものは写さず、もとの料理への印だけを持ちます。
しおりなら、写真の問題も、写しの問題も、起きません。もとの人が共有をやめれば、しおりの先は、見えなくなります。何も、残りません。
それでも、コピーにしました。
ハコヅミの料理は、キャンプで「作る料理」として選ぶと、その食材が、持ち物チェックに入ります。カレーを選べば、じゃがいもとカレールーが、積み込むものの一覧に並びます。
そのためには、料理と食材が、自分のものになっている必要があります。しおりの先にある、ほかの人の料理では、自分の持ち物チェックに入れられません。
ハコヅミで、ほかの人の料理を「作ってみたい」と思う理由は、キャンプで作るためです。読むだけなら、しおりで足ります。作るためには、コピーが要ります。
写すもの、写さないもの
料理の詳細の画面に、ボタンを1つ足しました。

ほかの人の料理の詳細(架空のデータ)
| 写す | 写さない |
|---|---|
| 名前・カテゴリ・レシピ・参考の URL | 写真(撮った人のもの) |
| 食材の名前 | おすすめ度・おすすめ理由(もとの人の感想) |
| だれの料理から写したか |
参考の URL は、写すことにしました。もとの人が、「このサイトを見て作った」と書いた URL です。写すと、レシピの出どころが、コピーした人の手元にも残ります。出どころが分かるほうが、作る人にとっても、もとのサイトにとっても、よいと考えました。
だれから写したかは、ギアのときと同じ理由で、残しません。もとの人が退会したあとも、名前だけが残る、ということが起きないように。

コピーしたあと
コピーしたあと、「同じ名前の料理が、もう登録されています」と出ているのは、今コピーした料理のことです。画面を読み直すので、そうなります。気になるなら、コピーした直後は出さない、という直し方もありましたが、このままにしました。まちがいでは、ないからです。
「コピーした」の印は、編集しても外れない
コピーした料理には、「コピーした」の印を付けます。印の付いた料理は、共有の設定に関係なく、ほかの人には見えません。料理の編集の画面にも、共有のスイッチは出ず、代わりに、理由が出ます。

コピーした料理の編集の画面
迷ったのは、編集したら、どうするかです。
コピーしたあと、自分なりに手順を足したり、材料を変えたりすることは、ありそうです。半分くらい書き換えたら、もう自分の料理ではないか。そう考えることも、できます。
でも、「どこまで変えたら、自分のものか」を、アプリが決めることはできません。1文字でも変えたら外れる、なら、印は意味をなくします。
編集しても、印は外れないことにしました。出どころは、人のレシピのままだからです。外す手段も、作っていません。
すっかり自分の料理にしたい人は、新しく登録し直せば、ふつうの料理になります。これは、5日前に「打ち直せば、すり抜けられる。それでよい」と書いたのと、同じ考えです。止めたいのは、「ボタン1つで広がること」です。手で打ち直すのは、本から書き写すのと、同じ手間がかかります。
確かめていないこと
ここまでは、Claude Code と考えた整理です。法律の専門家には、確かめていません。
5日前の記事には、「作る前に確かめる前提です」と書いていました。結局、確かめないまま、作りました。
言い訳をすると、今は、本番で共有をオンにしている人が、まだいません。コピーのボタンが押される場面は、まだ、ありません。一般に公開する前には、規約の文と一緒に、一度、見てもらいたいところです。
食材は、自分の消耗品になる
ハコヅミでは、料理の食材は、消耗品として持っています。「カレールー」は、消耗品の1つで、料理は、それを指しているだけです。
コピーした料理の食材は、ほかの人の消耗品を指すわけには、いきません。自分の消耗品を、名前で作って、付けます。
- 同じ名前の消耗品が、自分にもうあれば、それを使う(増やさない)
- なければ、新しく作る(種類は「毎回用意する」、カテゴリは「食材」)
これは、料理の画面の「新しい食材」の欄と、まったく同じ決まりです。その処理を、そのまま使いました。
1つ、気をつけたのは、上限です。フリーの会員は、消耗品を 200 件まで登録できます。食材を作ると、その数を超えてしまうときは、コピーを丸ごとやめます。料理だけできて、食材が欠けている、という半端な状態にしないためです。これも、「新しい食材」の欄と同じ扱いです。
日本語の並び順で、テストが落ちる
テストを書いて流したら、1つ落ちました。
- "name": "カレールー",
+ "name": "じゃがいも",
- "name": "じゃがいも",
+ "name": "カレールー",
コピーした料理の食材を、データベースから「名前の順」で取り出して、テストに書いた順と比べていました。テストには、「カレールー、じゃがいも」の順で書いていました。データベースは、「じゃがいも、カレールー」の順で返してきました。
カタカナとひらがな、どちらが先か。データベースの並べ方と、わたしが思っていた並べ方が、違ったのです。JavaScript の並べ方とも、違うことがあります。
直し方は、「並び順を比べない」です。両方を同じやり方で並べ直してから、比べます。確かめたいのは、「この2つの食材が付いていること」で、「この順で並んでいること」では、ありません。
テストが確かめていることと、確かめたいことが、ずれていると、テストは、関係のないところで落ちます。落ちたときに、「アプリがまちがっている」のか、「テストが、確かめなくてよいことまで確かめている」のかを、まず見ます。
同じテストを、2回直す
もう1つ、前からあるテストが落ちました。
料理の詳細のページに、送信のフォームは、ない。
「ほかの人のものは、見るだけ」を確かめるテストです。コピーのボタンを足したので、フォームが1つできて、正しく落ちました。
ギアの詳細でも、まったく同じことがありました。そのときと同じ形に、直しています。
- フォームは、1つだけ
- その送り先は、コピー
- 中に、入力欄は、ない
同じ直しが2回続いたら、それは、もう「形」です。ギア・キャンプ・料理の詳細のページは、どれも「見るだけ」を確かめるテストを持っています。次に、キャンプの詳細に何かのボタンを足すときも、同じテストが落ちて、同じ形に直すはずです。
共有で、残るのはランキングだけ
これで、共有の機能は、ほぼそろいました。
| 日付 | できたもの |
|---|---|
| 10月13日 | ギアの共有、通報と共有の停止、キャンプと料理の共有、アイコン |
| 10月14日 | ほかの人のギアを「欲しい」に入れる、SNS のリンク |
| 10月15日 | ほかの人の料理を、自分の料理にコピーする |
10月12日に、「テスタの意見を待たずに、前倒しで作る」と決めてから、4日です。残っているのは、よく見られている共有を並べる、ランキングだけになりました。ランキングは、見る人がいて、はじめて意味があります。テスタが来てから、考えます。
おわりに
- 案は、書いた日の控え。作る日には、もう一度、問い直す
- 仕組みで守れるところと、約束と通報で受けるところを、はっきり分ける
- 「読むため」ならしおり、「使うため」ならコピー。何のために写すのかで、形が決まる
- 出どころ(参考の URL)は、写す。だれから写したか(人の名前)は、写さない
- 「どこまで変えたら自分のものか」は、アプリには決められない。決められないものは、外れない印にする
- 半端な状態を作るくらいなら、丸ごとやめる
- テストは、確かめたいことだけを確かめる。並び順を確かめたいのでなければ、並び順を比べない
- 同じ直しが2回続いたら、それは形。次も、同じ形で直す
- 確かめると書いたことを、確かめずに作ったなら、そう書いておく
テスタを募集しています。キャンプに行く方、よければ、触ってみてください。