商品名の照合で起きた8つの失敗:英語とカタカナ、セット商品の分け方、公式カタログ、誤字の増殖

English version

トレカダッシュ 開発の記録 / 8 件のまとめ

抽選の記事を「どの商品の話か」に結びつけるのは、トレカダッシュの中心の処理です。商品名は、英語とカタカナ、略称、セットの書き方、誤字で、いくらでも形を変えます。ここには、商品の照合で実際に起きた 8 つの失敗と、直し方と、測った数字を、起きた順にまとめました。

それぞれの節は、もとは別々に公開していた記録です(2026 年 10 月から)。数字と出典は、その時の作業の記録のままです。テーマごとに読めるよう、1 つの記事にまとめ直しました(2026 年 11 月 7 日)。

英語表記とカタカナ表記は、1 文字も重ならない:正しい照合 42 件を、指紋の関門が却下していた

2026 年 10 月 17 日の記録。

iOS アプリ「トレカダッシュ」は、商品ごとの相場を、売買の実績があるサイトから取ってきて、定価と並べて表示します。ところが、健全性のチェックに、こう出ていました。

相場の紐付け率が低下: 177 / 449 件(39%)

「新しい弾は、まだ相場のサイトに無いから、仕方ない」で、済ませることもできました。しかし、実際にそのサイトで検索してみると、商品は、ちゃんと存在していました。この記事は、その本当の理由と、直し方の記録です。

この記事は、2026 年 8 月 24 日の作業の記録から書いています。

相場のサイトに、商品はあった

自社    拡張パック「30th CELEBRATION」
相場側  ポケモンカードゲーム MEGA 拡張パック「30周年 セレブレーション」ボックス(存在する)

自社    QUARTER CENTURY TRINITY BOX
相場側  遊戯王 OCG デュエルモンスターズ クォーター・センチュリー・トリニティ・ボックス(存在する)

自社    スタートデッキ 青 クザン【ST-33】
相場側  ワンピースカードゲーム スタートデッキ「青 クザン」(存在する)

原因:指紋のチェックが、構造的に成り立たない組み合わせだった

この照合は、AI が選んだ候補を、コードの側でも、商品名の固有名が、実際に重なるか(指紋のチェック、productNamesShareFingerprint)で、確かめ直しています。これは、2026 年 8 月 8 日の、「無関係な商品を統合してしまう」データ破損の再発防止として入れたもので、これ自体は正しいものです。

ところが、この相場の照合だけは、突き合わせが、構造的に成り立ちません。自社の商品名は、メーカー公式の英語表記、相場のサイトの商品名は、カタカナ表記であることが多く、文字が 1 つも共通しないからです。

実際のログ(26 時間)で、42 件が、「指紋が一致しないため却下」されていました。中身を見ると、大半が、正しい一致でした。

自社相場のサイト
PHOTON HYPERNOVAフォトン・ハイパーノヴァ ボックス
CHAOS IMPACTカオス・インパクト ボックス
ROMANCE DAWN【OP-01】ブースターパック ロマンスドーン ボックス
RAGE OF THE ABYSSレイジ オブ ジ アビス ボックス
拡張パック「30th CELEBRATION」拡張パック「30周年 セレブレーション」ボックス

しかも、この 42 件の中に、報告 [111]「相場が安すぎて怪しい」の商品(30th CELEBRATION)が、まさにいました。それ以前に、「抽選の価格が、相場に混ざっていた」問題を直しましたが、そもそも、実勢の相場に紐付けられていなかったという、もう一段深い原因が、残っていたのです。

直し方:指紋は弱めず、この照合だけに、2 つ目の判定を足す

指紋のチェック自体を緩めると、ほかの用途(別表記の登録、商品の重複の統合)まで、一緒に緩みます。元のデータ破損が、再発します。絶対に、弱めません。

代わりに、相場の照合で指紋が一致しなかった候補に対してだけ、「これは、同じ固有名の、英語表記とカタカナ表記か?」という、一点に絞った、2 つ目の判定を足しました(snkrdunkNamesAreTransliterationMatch)。

実データで確かめる:ドライランが先

「見つからず」という判定には、7 日間のクールダウンがあります。表示中の記事がある商品 148 件だけについて、待ち時間を外して、判定し直させました。一括の書き換えなので、ドライランで件数を確かめてから、実行しました。

分かったこと

正しい関門が、正しい照合を、構造的に落とすことがある。関門は弱めず、狭い 2 つ目の判定を足す。

1 つの記事を商品ごとに分ける処理で起きた 3 つの取り違え:子が親になり、共有リンクが別の店を指し、名前が 2 つの商品のものだった

2026 年 10 月 17 日の記録。

iOS アプリ「トレカダッシュ」には、お店の告知を、商品ごとの記事に分ける処理があります。1 つの告知に「ポケモンカードの A と B の抽選」と書いてあれば、A の記事と B の記事に分けます。分けた記事を「子」、元の記事を「親」と呼びます。

この処理のまわりで、3 つの「取り違え」が見つかりました。どれも、画面には何も出ないまま、本物の抽選が消える失敗です。

数字は、2026 年 9 月の作業の記録(9 月 5 日と 9 月 20 日の分を含む)から書いています。

1. 子に、親向けの処理をもう一度かけた(9 月 20 日)

多角的に点検していて、その日の 23:59 が締切の抽選、60 件(23 店)が、全部フィードから消えているのが見つかりました。

子の記事は、親のチラシの画像と、親の題名(splitFromTitle)を、そのまま持っています。複数の商品が書かれた記事を聞き直す処理が、この子を見て、「9 商品が載っている」と読みました。子の商品の欄は空になり、「9 件」と書き換えられました。そして翌日、総称の記事(特定の商品を指さない記事)を整理する処理が、「商品が無い総称だ」として、伏せました。

割った先の商品の ID は、すでにいる兄弟と同じなので、新しい記事は 0 件でした。その商品だけが、消えたのです。

同じ根っこの問題は、もう 1 つありました。結果発表や当選者向けの案内を見分ける判定が、子の題名は商品名だけで、本文(親の題名)が届かないので、すり抜けていました(16 件)。

直し方は、記事を集めて判定したり伏せたりする処理を足すときに、子を除く(splitFromArticleId を持つ記事を除く)か、親の題名を本文として渡すか、どちらかを必ず決めることでした。「子だから触らない」の目印には、URL の中の印ではなく、記事の項目を使います。URL の印は、応募先の張り替えで消えるからです。

2. リンクだけで親を探したら、別の店の記事が出てきた

ふるいちという店の、2 商品をまとめた告知が、10 件、分割されませんでした。親の記事を探す関数が、リンクだけで探していたからです。

この店のチェーンは、同じ共有のページを、13 店が同じリンクで持っています。リンクだけで探すと、次のどれかに当たりました。

その結果、チェーン全体の別の店の記事や、子の記事を親として、何度も分割していました。ログに「2 商品へ分割しました」が、毎回同じ親で出ていました。

リンクは、店を特定する鍵ではありません。共有のページ、引用、まとめ記事の由来で、同じリンクを複数の記事が持ちます。直し方は、記事をリンクで引くときに、サイトと店名も条件に入れること、子の記事を親にしないことでした。「ログに同じ親の ID が何度も出たら疑う」も、教訓として残しました。

3. 2 つの商品が名乗る名前は、どちらも特定しない(9 月 5 日)

商品には、別の呼び方(別表記)を登録しておきます。「30th CELEBRATION BOX」という呼び方が、拡張パック「30th CELEBRATION」と、別の商品「30th CELEBRATION FUTURISTIC BOX」の両方の別表記に入っていました。

この名前は、どちらの商品も特定しません。AI に候補として見せると、そのとき、どちらを選んだかで結果が決まります。実際に、表示中の 25 件が、別の商品の名前で出ていました。

数えると、こういう「2 つ以上の商品が名乗る名前」は、267 組、321 件ありました。

同じ形の別の失敗もありました。店名を「@ より前」で切る処理が、「カードショップ@ほ~む。」の 3 支店を1 つの店に潰し、毎日、2 支店を「重複」として畳んでいました。

直し方は、名前で何かを特定する仕組みを作ったら、「その名前を名乗るものが 2 つ以上ないか」を数えることでした。監査を 1 本作って、0 件を保ちます。残す相手は、機械的に決まるときだけです。その名前を正式名にしている商品がちょうど 1 つなら、そこだけに残す。決まらないなら、全部から外す。足す側(入口)と、掃除する側の両方に、同じ判定を置きます。片方だけだと、外したそばから足し直されます。

分かったこと

分けた先の記事は、元の記事ではない。名前は、持ち主が 1 つのときだけ、鍵になる。

「9種セット」を中身ごとに分けて、偽の商品が80個できていた

2026 年 10 月 8 日の記録。

iOS アプリ「トレカダッシュ」の商品リストを点検していて、ポケモンカードの「30th CELEBRATION カードセット」の周りに、実在しない商品が 80 個あることが分かりました。公式の商品は、9 つだけです。残りの 80 は、「9 種セット」を、中身ごとに分けてしまった結果、作られた偽の商品でした。HANDOFF の記録で、何が起きて、どう直したかを書きます。

このサイトには、トレカダッシュの作品ページがあります(トレカダッシュ)。ここに書くのは、開発の記録です。

9 種セットは、「1 つの商品」だった

店が出している「カードセット(9 種セット)」の抽選は、1 つの商品です。カタログには、「9 種類セット」(10,800 円)として登録されています。ところが、アプリの商品照合(複数の商品が書いてある記事を、商品ごとに分ける処理)が、この題名を、中身ごとに分けていました。「メガミュウツー X」や「ニャビー」のように、9 種の中身の名前が、それぞれ別の商品として扱われたのです。

その結果、こうなっていました。

状態件数
分けられた元の記事(親)が、非表示になっていた22
分けて作られた記事(子)190(うち表示中 63)
子のために作られた、偽の商品80

画面には、1 つの抽選が、中身ごとの別々の抽選のように、並んでいました。

直し方:入口を止める、そして戻す

  1. 入口で、分けないようにする。「カードセット」+「N 種」という形の題名は、分割しません。
  2. 親を戻す。非表示にされた親 22 件を、「9 種類セット」の商品に戻しました。戻し方は、記事ごとに違います(表示に戻したもの 5 件、同じ店に表示中の 9 種セットがあって重複とみなしたもの 3 件、締切が切れていたもの 13 件、締切が無かったもの 1 件)。
  3. 子を外す。子 190 件は、「誤った分割」の印(hiddenByWrongSplit)を付けて非表示にして、商品との結び付きを外しました。
  4. 偽の商品を消す。80 個を削除しました。消す前に、参照しているものが 0 であることを確かめて、元の内容を控えに保存してあります。

ただし、例外があります。「スターターセット ex ニャオハ/ホゲータ/クワッス 3 種セット」のように、題名に、商品名がすべて書いてある出品は、これまでどおり分けます。「N 種セット」は、1 つの商品として売られている、というのが、今回分かったことでした。

同じ点検で見つかった、ほかの偽の商品

これらを見張るために、監査(audit_catalog_clean.js)を足しました。単品カードの商品、複数の弾名の商品、応募ページの題名と商品の食い違い、商品から写した定価のズレ、カードではない名前の商品、の五つを、毎回数えます。

分かったこと

「分ける」処理には、「分けない」条件が要る。

この記事は、HANDOFF(§272)の記録(2026年10月7日)から書きました。件数は、記録に書かれたものです。

「9種セット」の正体は御三家9商品だった:同じ商品なのに、決して一致しなかった

2026 年 10 月 8 日の記録。

iOS アプリ「トレカダッシュ」は、トレカの抽選・先着情報を集めて通知します。集めた情報に抜けがないか調べるため、他のまとめサイト(抽選図鑑、ポケチュー)の掲載と、自分のアプリの記事を突き合わせて数えています。10月7日に測ったところ、抜けの多くは、同じ商品なのに、決して一致しないという、小さな食い違いが原因でした。HANDOFF とコミットの記録で書きます。

このサイトには、トレカダッシュの作品ページはまだありません。ここに書くのは、開発の記録です。

測ったこと

「まとめサイトが紹介している抽選が、全部アプリに出ているか」を、読み取りだけで確かめました。

非表示 12 件のうち 7 件は、行のほうが間違っていた

非表示だった 12 件を調べると、7 件は、まとめサイトの行が応募ページと違う商品を書いていました。ある系列の 4 店は「エネルギーカードセット」、別の 3 店は「拡張パック」と書いてあります。応募ページ(抽選の応募フォーム)と店の X を見ると、実際は「カードセット 9種セット 10,800円」でした。

アプリの「価格の関門」(商品の定価と出品価格が合わないものを弾く仕組み)は、これを正しく弾いていました。間違っていたのは関門ではなく、商品の取り違えのほうです。商品を付け替えて、表示に戻しました。

「9種セット」の正体

この「9種セット」は、ポケモンカードの 30th CELEBRATION のカードセットで、歴代 9 世代の御三家(3 匹)のセットが 9 商品あるものでした。カタログには、この 9 商品が、もともと正しい形で登録されていました。ところが、マーケットプレイスの出品や X の監視が新しい記事を作るたびに、3 匹のうち 1 匹だけの名前の、別の商品として登録されてしまうバグが、9 商品のうち複数で起きていました。たとえば「ヒノアラシ」だけの商品です。

同じ商品なのに、一致しない

突き合わせの仕組みには、商品名を比べるための「キー」を作る処理があります。ここに、左右非対称がありました。

同じ商品なのに、決して一致しません。そのため、相手の名前は「エネルギーカードセット」や「拡張パック」といった別の商品に、誤って解決されていました。これが、取り違えの出どころでした。両方に同じ規則(「N 種」「N 種類」「セット」を落とす)を当て、さらに、数の指定がある名前は、部分一致で一つに決めないようにしました。カタログ全体で、キーの衝突が 0 であることも確かめています。

もう一つの穴:前回の記事が、次の回を止めていた

「フィードに無い」の主な原因は、別にありました。記事の ID が「まとめの URL + 店 + 商品」で作られていて、抽選の回が含まれていなかったのです。前回の期限切れの記事が、同じ店・同じ商品の新しい回の記事を作るのを止めていました(「同じ記事 ID が既にある」)。新しい回の締切が前回より 1 日超あとなら、日付を足した別の ID で作るようにしました。

結果

カバー率前後
抽選図鑑(受付中 90 件)54%(49件)91%(82件)
ポケチュー86%90%

残りは、応募ページが「商品各種」としか書いておらず商品を特定できないもの、店名の手がかりがページに無いもの、などです。「安全のため採用しない」と決めたものも含まれています。取りこぼしがゼロになったわけではありません。

分かったこと

正しく弾いた関門と、間違っていたデータは、別の問題。

この記事の数字は、HANDOFF(§272、§281)とコミット(2026年10月7日)の記録から取りました。

公式の一覧から、「作品名だけの商品」が 393 件できていた:商品名の欄に、商品の形は入っていなかった

2026 年 10 月 17 日の記録。

iOS アプリ「トレカダッシュ」の商品リストは、一部を、公式サイトの一覧から取り込んで作っています。ある日、この取り込みで作られた商品を日ごとに数えたら、この日だけで 502 件。ふだんは 1 日に 1〜10 件です。

中身を見ると、ヴァイスシュヴァルツが 379 件で、名前が、こうなっていました。

GA文庫
魔界戦記ディスガイア4
勝利の女神:NIKKE
ラブライブ!虹ヶ咲学園スクールアイドル同好会

どれも、作品の名前で、商品の名前ではありません。この記事は、その原因と、掃除のあとに起きた副作用の記録です。

数字は、2026 年 9 月 7 日の作業の記録から書いています。

原因:商品の「形」は、名前の外にあった

公式の一覧のページでは、商品名の欄(products__name)に、作品名だけが書かれています。商品の形(ブースターパック、トライアルデッキ)は、名前ではなく、カテゴリ(ページの URL の一部)で分かれていました。

カテゴリ商品名の欄の実データ
booster-pack「アズールレーン Vol.3」「ステラソラ」「anemoi」
trial-deck「ガールズ&パンツァー 大洗女子学園」「GA文庫」

正しい商品名は、「トライアルデッキ GA文庫」のように、形が付いたものです。すでにある正しい商品(「ブースターパック D4DJ Groovy Mix」「トライアルデッキ ステラソラ」)と、形がそろいます。

直し方:入口と、すでにできた分

入口:カテゴリから、形を足すようにしました(trial-deck はトライアルデッキ、booster-pack はブースターパック、など)。形が決まらない「その他」は、足さず、作りません。

すでにできた分:掃除の道具を作りました。既定では下見だけで、delete=true を付けたときだけ実行します。消すのは、次の 4 つが全部当てはまるものだけです。

  1. 公式の一覧から作った商品である。
  2. 形を表す語が、名前に無い。
  3. 記事が 1 件も付いていない。
  4. 定価も画像も無い。

下見で 393 件。実行して、商品は 811 件から 418 件になりました。ただし、「【推しの子】Vol.3」は、記事が付いているので、残しました。消しすぎは、苦情が出ないので、条件を厳しくしておきます。

掃除のあと、公式の一覧を取り込み直して、ヴァイスシュヴァルツに 328 件を、正しい名前(「トライアルデッキ ご注文はうさぎですか??」のように、形が付いたもの)で登録し直しました。形の語が無いものは、0 件です。

なぜ、監査で見つからなかったか

商品の名前を調べる監査は、「商品名として不自然」なものを探します。記号、改行、URL が混ざっているもの、などです。まっとうな日本語の作品名は、不自然に見えません。「ラブライブ!虹ヶ咲学園スクールアイドル同好会」は、立派な名前です。

もう 1 つの穴は、数える監査がなかったことです。「1 日に何件、商品が作られたか」を数えていれば、502 件は一目で異常でした。出ているものだけを見ていると、静かに増えるものは、見えません。

副作用:別表記のぶつかりが、0 組から 250 組になった

正しい名前の商品が、328 件増えたことで、新しい問題が出ました。商品には、別の呼び方(別表記)を登録しています。既存の商品の別表記「ブースターパック ご注文はうさぎですか??」が、新しくできた正式名の商品と、ぶつかりました。2 つ以上の商品が名乗る別表記を数える監査が、0 組から 250 組になりました。

監査が案内している修復の道具を、下見のあとに実行しました。判定は、「正式名を名乗っているほうを残す」で、外れるのは別の商品側だけです。253 件(商品 220 件)の曖昧な別表記を外し、監査は 0 組に戻りました。

分かったこと

カタログを増やす直しは、入れ直したあとに、もう一度、監査を流す。

一度だけ生まれた誤字が、店ごとに増えていった:「30th SEREBRATION」の件

2026 年 10 月 8 日の記録。

iOS アプリ「トレカダッシュ」で、利用者から、「この記事、別の記事と重複しているよ。それに、商品名がおかしい」という報告が来ました。調べると、一度だけ生まれた誤字の商品が、店ごとの記事が来るたびに、再利用されて増えていたことが分かりました。原因と、直し方と、直し方の限界まで、コミットの記録で書きます。

このサイトには、トレカダッシュの作品ページはまだありません。ここに書くのは、開発の記録です。

報告されたもの

ポケモンカードの「30th CELEBRATION」という商品の記事が、「30th SEREBRATION」という商品名(CELEBRATION の綴りの間違い)で、複数の店に出ていました。しかも、同じ商品の、正しい名前の記事と重複していました。

根本原因:短い見出しが、公式名と一致しなかった

まとめサイトの要約の投稿には、「『30th CELEBRATION』」のような、短い見出しが出てきます。一方、アプリの公式カタログの正式名は、「拡張パック『30th CELEBRATION』」です。短い見出しのほうが、公式名より短いので、「記事のタイトルが公式名を含むか」という、一方向の判定では、一致しませんでした。

一致しないと、AI による照合に回されます。その過程で、一度だけ、「30th SEREBRATION」という誤字の商品が作られました。コミットの推測では、カタログにある別の表記「30th セレブレーション」を、ローマ字に変換するときに間違えたもの、とのことです。

本当に困ったのは、その次です。誤字の商品は、いったん作られると、「既存の商品」として、繰り返し再利用されます。店ごとの新しい記事が来るたびに、同じ誤字、同じ重複が、量産されていきました。

まず、データを直す

全店舗を調べました。ビックカメラ、三洋堂書店、ゲームプラザなどの 3 店舗では、正しい名前の記事と重複していたので、片方を非表示にしました。ほかの 10 記事は、商品を付け替えるだけで済みました。合わせて 13 記事です。誤字の商品は、削除しました。

ここで、一つ、わざと手を付けなかったところがあります。商品を統合する既存の道具は、「SEREBRATION」と「CELEBRATION」を、別の商品と判定して、弾きました。この関門は、意図的に厳しく作ってあるので、緩めませんでした。手作業で、個別に直しています。

本命の予防:「完全一致」で、短い見出しを拾う

データを直しただけでは、また起きます。そこで、公式カタログとの照合を直しました。公式名の先頭にある汎用的な形態語(「拡張パック」など)を一つ取り除いて、残りが記事のタイトルと完全に一致するときだけ、同じ商品とみなします。

「含む」ではなく「完全一致」にしたのは、「30th CELEBRATION カードセット○○」のような、より具体的な別の商品まで、拾ってしまわないためです。これで、最初から公式カタログと正しく一致するようになり、誤字が生まれた AI 照合の経路に、そもそも届かなくなります。確かめた結果は、こうです。

保険:編集距離のチェック、そして、その限界

念のため、商品を作る前の合流点に、「公式カタログとの編集距離が近い候補は、誤字の疑いが強いので、却下する」というチェックも入れました。ところが、このチェックだけでは、「30th SEREBRATION」と、「拡張パック『30th CELEBRATION』」を、捕まえられません。文字数の差が大きすぎて、編集距離が遠くなるからです(確かめて、そう分かっています)。

つまり、今回の件には、保険は効きません。効くのは、上の本命の修正です。保険は、同じ長さの帯で起きる別の誤字(たとえば、ヴァイスシュヴァルツの「/」が抜けるもの)を捕まえるために、残してあります。さらに、誤字の疑いのあるカタログを見つける読み取り専用の監査も作りました。コミットの時点では、同じ形の疑いが 21 件、見つかっています。

分かったこと

一度だけ生まれた間違いは、「既存のもの」になって、増える。

この記事は、コミット(2026年9月28日)の記録から書きました。誤字が生まれた経緯は、コミットの推測によります。

商品のジャンルを、公式カタログで直した:下見を 3 回やって、13 件から 4 件に絞った

2026 年 10 月 17 日の記録。

iOS アプリ「トレカダッシュ」には、「この商品が、ポケモンカード扱いなのが、そもそも間違い」という報告が来ました。商品の名前は「勝敵!逆転おこせ鬼の∞ディスペクター!!」。これは、デュエル・マスターズの商品なのに、ポケモンカードの商品として登録され、ポケモンカードのフィードに出ていました。

直し方は、「公式のカタログを、ジャンルの正解にする」でした。ただ、それを一括で当てる前に、下見を 3 回やって、はじめて安全になりました。この記事は、その過程の記録です。

数字は、2026 年 9 月 11 日の作業の記録から書いています。

なぜ、デュエル・マスターズの商品が、ポケモンカードになったか

お店の X アカウントは、「ポケモンカード担当」として監視しています。そのため、記事のジャンルが、そのまま商品のジャンルになります。この商品の名前には、ゲームの呼び名も、型番も入っていません。ジャンルを推定する、既存の 2 つの判定(名前の言葉から推定する、型番から推定する)は、どちらも答えられませんでした。

公式のカタログには、「DM26-RP3 デュエル・マスターズ TCG 逆札篇 第 3 弾 勝敵!逆転おこせ鬼の∞ディスペクター!!」として載っています。商品の名前、画像、定価と同じく、ジャンルも、公式が正です。そこで、「公式のカタログから、ジャンルを決める」判定を足しました。入口(商品を作るとき)と、当て直し(すでにある商品を直す処理)の両方に、同じ判定を入れました。

1 回目の下見:正しい商品が、9 件も別のゲームになるところだった

最初の判定は、「名前が、1 つのジャンルの弾の名前に、丸ごと含まれるなら、そのジャンル」でした。書き込まずに結果だけを見る下見をすると、直す対象は 13 件。中身を見ると、ヴァイスシュヴァルツの正しい商品が 9 件、ユニオンアリーナに変えられるところでした。

回判定直す対象中身
1名前が、1 つのジャンルの弾に丸ごと含まれる13 件ヴァイスの正しい商品が 9 件、ユニオンアリーナへ
2+形態の語を外した、作品名でも、曖昧さを見る9 件まだ、ヴァイス 5 件が誤爆
3+公式の弾名が、自分でゲーム名か型番を名乗っているときだけ4 件誤爆 0 件

真因:公式の一覧は、古い弾まで網羅していない

誤爆の原因は、公式の一覧が、古い弾まで載せていないことでした(ヴァイスシュヴァルツは 64 件で、最近の弾だけ)。さらに、「ブースターパック チェンソーマン」のように、形の語と作品名だけの弾の名前は、ゲームを特定しません。同じ作品のカードが、複数のゲームから出ているからです。

そこで、弾の名前に、「デュエル・マスターズ TCG」「ONE PIECE」のようなゲームの呼び名か、[SB02]、[EVX13]、DM26-RP3 のようなそのジャンルだけの型番が入っているときだけ、信じることにしました。

最後に残った 4 件は、全部、正しい直しでした。

pokemon    → onepiece     「Heroines Edition」        (ONE PIECE…【EB-03】)
pokemon    → duelmasters  「勝敵!逆転おこせ鬼の∞ディスペクター!!」(報告の件)
yugioh     → dragonball   「MANGA BOOSTER 02」        ([SB02])
dragonball → gundam       「プレミアムカードコレクション02」([EVX13])

もう 1 つ:行をまたいで書かれた商品名が、「書いていない」扱いだった

同じ日に、もう 1 つ、自動検知の報告が来ました。「商品名の指紋が一致しない照合を却下」。お店の X の投稿は、商品名を行をまたいで書きます。

【本日発売商品】
〇ユニオンアリーナ
アドバンスドデッキ
∟BLEACH 千年血戦篇
おひとり様1個まで

※ブースターパック『BLEACH 千年血戦篇Vol.3』は
抽選販売商品です。当選者のみ購入いただけます。

商品名の照合には、「選ばれた商品名が、題名に丸ごと入っているなら、何も言わない」という決まりがあります。ところが、行頭の「∟」を落としていなかったので、「丸ごと入っていない」と判定されました。その結果、同じ投稿の中にある別の商品(「ブースターパック BLEACH 千年血戦篇 Vol.3」)を根拠に、正しい照合が却下されていました。

1 つの投稿に、複数の商品が並ぶのは、普通のことです。直し方は、比較専用の整形処理に、続きを表す印(∟ └ ┗ ├ ┣ ⇒ → ▶ >)を足すことでした。この処理は 6 か所から呼ばれているので、1 か所直せば、全部に効きます。実データで、却下が採用に変わることを確かめました。

分かったこと

下見は、1 回では足りない。

「これベイブレードじゃん」が、関門を入れても戻ってきた:弾いた値が、別の形で漏れた

2026 年 10 月 17 日の記録。

iOS アプリ「トレカダッシュ」には、「これ、ベイブレードじゃん」という報告が、3 件来ました。トレーディングカードの情報を集めるアプリなのに、玩具のベイブレードが、商品として登録されていました。

9 月 6 日に、「商品名に玩具の名前があれば、商品を作らない」という関門を入れていました。それなのに、また出てきました。この記事は、弾いたはずの値が、別の形で戻ってきた話です。

数字は、2026 年 9 月 6〜11 日の作業の記録から書いています。

関門を入れたのに、商品名から玩具の名前が消えていた

お店の告知は、こういうものでした。

おもちゃ新製品 ベイブレードX
①CX-19 ランダムブースター クロコレッドセット
②CX-00 ディガレイジ FT3-60T

ここから、AI が商品名を作ります。作られた商品は、こうでした。

「CX-19 ランダムブースター クロコトレッドセレクト」
「CX-00『ティガレイジ』FT3-60T」

どちらも、「ベイブレード」の語がありません。関門は、商品名に玩具の名前があれば弾く作りでした。ところが、AI が返す商品名から、玩具の名前が消えていたので、関門を、すり抜けました。弾いた値(玩具の名前)が、別の形(名前の無い商品名)で、戻ってきたのです。

直し方:判定を、商品名から、告知の本文へ

判定を、商品名ではなく、告知の本文に移しました。本文には、玩具の名前が、そのまま書かれています。

ただし、「玩具の名前がある、なら弾く」にはできません。お店の告知には、「【ベイブレード】【ドラゴンボールカードゲーム】」のように、玩具とカードゲームを、並べて書いたものがあります。弾くと、本物の抽選が、消えてしまいます。そこで、「カードゲームの語が、1 つも出てこないときだけ」弾く、という条件にしました。

実データで数えると、こうでした。

調べたこと件数
玩具の名前に触れる記事44
そのうち、条件に当たる(カードゲームの語が無い)31
そのうち、表示中だったもの報告の 1 件だけ
カードゲームの語がある記事(全部、残る)13

分かったこと

弾いた値は、別の形で戻ってくる。値の行き先を追う。

それぞれの要点

ほかの記録は、Notes の一覧から、テーマごとに読めます。トレカダッシュそのものは、作品ページに書いています。

ほかの記録

コメント

感想や、記事の間違いの指摘は、ここへ。書くには、GitHub のアカウントが要ります。

押すと、giscus(giscus.app)と GitHub に接続します。押さなければ、接続しません。詳しくはプライバシーポリシーに書いています。