Claudeで化粧品の全成分表示を点検する — 薬機法の容器表示と配合量順
化粧品の成分表と容器・外箱の文面を薬機法61条・62条に沿って突き合わせ、記載漏れと配合量順の誤りをClaudeで洗い出す手順です。順序の判定はスクリプトに任せる分担も示します。
化粧品の容器や外箱の表示は、薬機法の61条と62条が決めています。そこに書く事項と、全成分表示の並べ方を、成分表と容器の文面から機械的に突き合わせるのがこの記事の手順です。Claudeには文面の読み取りと突合を任せ、配合量の順序だけは処方表を使ったスクリプトで判定します。
広告に書く表現の点検とは別の作業です。広告の最大級表現や効能の保証は薬機法の広告NG表現の点検にあり、ここでは容器・外箱に印字される事項を扱います。
薬機法61条の記載事項と全成分表示はどうつながるか
容器表示の根拠は61条です。化粧品は、直接の容器または直接の被包に、次の事項が記載されていなければなりません。
61条が求める直接の容器の記載事項
1号〜3号:誰の何という製品か
製造販売業者の氏名または名称と住所、名称、製造番号または製造記号です。
4号:成分の名称
厚生労働大臣の指定する成分を含有する化粧品では、その成分の名称を書きます。全成分表示はこの4号の運用で実現しています。
5号〜7号:条件付きの事項
使用の期限は、厚生労働大臣が指定した化粧品だけです。基準で容器への記載が定められた事項(6号)と、省令が定める事項(7号)も加わります。
全成分表示が義務になった経緯は、2000年9月29日付の医薬発第990号に書かれています。承認に係る化粧品を除き、配合するすべての成分の名称を表示する制度に改めたもので、通知は2001年4月1日からの施行としています。それまでは、アレルギーのおそれがある成分として指定した102種類だけが表示対象でした。
つまり点検の核は、4号の「成分の名称」です。条文の1号〜3号は有無の確認で済みますが、4号は中身(成分名・順序・省略の条件)まで見る必要があります。
外箱にも書く必要があるのはどんなときか
62条は、51条・53条〜57条などを化粧品に準用しています。51条の準用により、直接の容器に書いた事項が外箱を透かして容易に見えないときは、外箱にも同じ事項を書きます。化粧箱入りの製品では、容器と外箱の両方を点検対象にします。
53条の準用は、記載を「他の文字、記事、図画又は図案に比較して見やすい場所」に置き、購入者が読みやすく理解しやすい用語で正確に書くよう求めています。文字が小さすぎる、デザインに埋もれている、といった点も条文上の論点です。
54条の準用は、虚偽または誤解を招くおそれのある事項や、承認を受けていない効能の記載を禁じています。容器の宣伝文句も、この条文の射程に入ります。
61条や53条に違反した化粧品は、55条1項の準用で販売・授与・貯蔵・陳列ができません。違反した者への罰則は、2年以下の拘禁刑もしくは200万円以下の罰金、またはその併科です(85条3号)。
点検用の突合表を先に作る
Claudeに「この表示は問題ないか」と丸ごと聞くと、観点が抜けます。先に突合表の枠を決め、1行ずつ埋めさせる形にします。
| 点検項目 | 根拠 | Claudeに渡すもの | 判定できる範囲 |
|---|---|---|---|
| 製造販売業者の氏名・住所 | 根拠61条1号 | Claudeに渡すもの容器・外箱の写真 | 判定できる範囲有無と表記の一致 |
| 名称(販売名) | 根拠61条2号 | Claudeに渡すもの容器・外箱の写真 | 判定できる範囲容器と外箱で同じか |
| 製造番号・製造記号 | 根拠61条3号 | Claudeに渡すもの容器の写真 | 判定できる範囲有無のみ |
| 成分の名称(全成分) | 根拠61条4号 | Claudeに渡すもの全成分表示の書き起こしと処方表 | 判定できる範囲漏れと順序の疑い |
| 外箱への再掲 | 根拠62条(51条準用) | Claudeに渡すもの容器と外箱の写真 | 判定できる範囲透かして見えるかは写真から判断しにくい |
| 見やすさ・用語 | 根拠62条(53条準用) | Claudeに渡すもの実物に近い画像 | 判定できる範囲目視の補助まで |
| 虚偽・誤解の表現 | 根拠62条(54条準用) | Claudeに渡すもの容器の宣伝文句 | 判定できる範囲候補の抽出まで |
最後の列を決めておくのが要点です。使用の期限(5号)は、指定された化粧品にだけ求められる事項です。自社製品が指定の対象かどうかは、突合表に入れる前に人が確かめます。
写真を渡すときの注意は、食品表示ラベルを写真から点検する方法と共通です。Claudeの画像理解は、低画質、回転した画像、200ピクセル未満の小さな画像で誤読する場合があると、画像理解のドキュメントに示されています。化粧品の全成分表示は小さな字で詰まっているため、成分欄だけを大きく撮った画像を渡します。claude.aiでは1回のやり取りに20枚まで画像を添付できます。
全成分表示の書き方ルールを先にClaudeへ渡す
全成分表示の並べ方は、2001年3月6日付の医薬審発第163号・医薬監麻発第220号が示しています。点検では、次の6項目をそのままプロンプトに貼ります。
全成分表示の書き方(163号通知の1)
- 1
邦文名で書く
成分の名称は邦文名で記載し、化粧品業界の連合会が作成した「化粧品の成分表示名称リスト」等を利用して、消費者の混乱を防ぐよう留意します。
- 2
分量の多い順に並べる
製品における分量の多い順に記載します。ただし、1%以下の成分と着色剤は、互いに順不同でも差し支えありません。
- 3
キャリーオーバー成分は書かなくてよい
配合成分に付随する成分(不純物を含む)で、製品中に効果が発揮されるより少ない量しか含まれないものは、表示不要です。
- 4
プレミックスは成分ごとに書く
混合原料は、混合されている成分ごとに記載します。
- 5
抽出物は溶媒と分ける
抽出された物質と、抽出溶媒または希釈溶媒を分けて書きます。最終製品に溶媒等が残らない場合は、この限りではありません。
- 6
香料は「香料」でよい
香料を着香剤として使うときは、「香料」と書いて差し支えありません。
この6項目のうち、AIの読み取りで確かめられるのは「邦文名か」「プレミックスや抽出物が分解されているか」の2点です。表示の元になる処方を知らなければ、キャリーオーバーかどうかも、溶媒が残るかどうかも判断できません。
手順1:成分欄を書き起こさせる
最初の依頼は、点検をさせずに書き起こしだけを頼みます。誤読が混じると、以降の突合がすべて崩れるためです。
添付は化粧品の容器と外箱の写真です。
1. 全成分表示の欄を、見えるとおりに1行1成分で書き起こしてください。
2. 読み取れない文字は推測で補わず、「判読不能」と書いてください。
3. 製造販売業者の氏名・住所、名称、製造番号の欄も、容器と外箱で分けて書き起こしてください。書き起こしは、人の目で写真と見比べて直します。成分名の1文字違いは、後の突合で別成分に見えるからです。直した書き起こしは label.txt のように、1行1成分で保存します。
手順2:処方表と成分表示の順序をスクリプトで見る
配合量順の判定は、Claudeに言葉で聞くより、処方表の数値を使って機械的に見るほうが確実です。順序の検査に必要なのは「1%を超える着色剤以外の成分が降順に並んでいるか」だけで、表示を並べ替えたり合否を言い切ったりする必要はありません。
処方表は、製品100gあたりの配合率を入れた表です。数値を含む内部資料を外部に渡す前に、社内の取り扱いルールに沿っているかを確かめてください。
name,pct,is_colorant
水,70,0
グリセリン,10,0
BG,5,0
ジメチコン,8,0
フェノキシエタノール,0.5,0
香料,0.2,0
酸化チタン,0.8,1次のスクリプトは、Claude Codeに書かせて実行させる使い方を想定しています。表示と処方表の過不足と、順序違反の疑いを出力します。
import csv, sys
# formula.csv: name,pct,is_colorant (処方表。pct は製品100gあたりの配合率)
# label.txt : 全成分表示を1行1成分に書き起こしたもの(表示順)
formula = {}
with open(sys.argv[1], encoding="utf-8") as f:
for r in csv.DictReader(f):
formula[r["name"]] = (float(r["pct"]), r["is_colorant"] == "1")
label = [l.strip() for l in open(sys.argv[2], encoding="utf-8") if l.strip()]
print("処方表にあって表示に無い:", sorted(set(formula) - set(label)) or "なし")
print("表示にあって処方表に無い:", sorted(set(label) - set(formula)) or "なし")
# 順序検査の対象は「1%を超える着色剤以外の成分」だけ
seq = [(n, formula[n][0]) for n in label
if n in formula and formula[n][0] > 1 and not formula[n][1]]
for (a, pa), (b, pb) in zip(seq, seq[1:]):
if pb > pa:
print(f"順序違反の疑い: {a}({pa}%) の後に {b}({pb}%)")
print("順序検査の対象成分数:", len(seq))python3 -I check_inci_order.py formula.csv label.txt上の処方表と、処方表どおりの順に書いた表示で実行すると、BGの後にジメチコンが並んでいる箇所が「順序違反の疑い」として出ます。ジメチコンは8%、BGは5%なので、ジメチコンを先に書く必要があるという指摘です。
1%以下の成分と着色剤は、通知の文面どおり互いに順不同を許すため、検査の対象から外しています。1%以下の成分を1%を超える成分より前に置いてよいかは、通知の文面だけでは読み切れません。その並びを検出したいときは、スクリプトの条件を足さず、人が通知の趣旨に照らして判断します。
手順3:Claudeに突合表を埋めさせる
書き起こしとスクリプトの出力が揃ったら、突合表の判定に進みます。ここで初めてClaudeに判断を頼みます。
以下は人が確認した書き起こし(容器・外箱)と、順序検査の出力です。
薬機法61条の記載事項(製造販売業者の氏名・住所、名称、製造番号、全成分)について、
次の表を埋めてください。
- 項目/容器の記載/外箱の記載/容器と外箱の食い違い/要確認か
判断できない項目は断定せず「要確認」とし、理由を1行で添えてください。
全成分欄は、邦文名でない表記、プレミックスや抽出物のまとめ書き、
処方表との過不足を別表で挙げてください。Claudeの出力は点検の下書きです。「問題なし」と返ってきたときも、突合表で空欄になっていないかを見ます。
省略の特例と、添付文書で全成分を示す場合
小さな容器では、全成分を容器に書ききれません。省令の221条の2は、61条4号の事項(全成分の名称)が次のいずれかに記載されていれば、直接の容器への記載を省略できるとしています。
全成分表示の記載先の特例(規則221条の2)
外箱・タグ・ディスプレイカード
外部の容器または被包、直接の容器に固着したタグまたはディスプレイカードに書かれていれば、容器への記載を省略できます。
50g・50mL以下で外箱なし
内容量が50g・50mL以下の容器で、外箱がないものは、添付する文書に記載できます。
10g・10mL以下で外箱あり
内容量10g・10mL以下で外箱があるものは、外箱に添付する文書、または容器に添付する文書とディスプレイカードに記載できます。
この特例を使う場合、通知は2つの条件を付けています。添付文書は容器に固着していなくてもよいものの、購入時に製品とともに持ち帰れるものに限ります。ディスプレイカードも、購入時に成分が確認できるように設置されていなければなりません。
固着しない添付文書で全成分を示すときは、直接の容器と被包に、添付文書がある旨を記載します(163号通知の2)。突合表に、この一文があるかを確かめる行を足します。
特例の適用は、内容量と外箱の有無で決まります。Claudeに「特例が使えるか」を聞かず、容器と外箱の有無、内容量を人が表に書いて、条件を満たしているかを突合させるほうが誤りません。
人が持つ確認の範囲
Claudeの点検で埋められないのは、次のような判断です。
- 処方表が正しいかどうか。表示は処方を写したもので、処方の誤りは文面から見えません
- 成分名の表記が「化粧品の成分表示名称リスト」に合っているか。リストそのものを渡さない限り、モデルの記憶で名称を判断することになります
- 全成分表示の省略が許される成分(キャリーオーバーなど)に当たるかどうか
- 承認を受けた化粧品で、成分の名称を表示しない扱い(承認条件として「その他の成分」と書くもの)になっていないか
- 医薬部外品か化粧品かの区分。医薬部外品の容器表示は、薬機法の59条が別に定めています
とくに最後の区分は、製品の販売名と届出の種別を確かめてからプロンプトに進みます。薬用の表記がある製品に、この記事の表をそのまま当てはめることはできません。
容器の注意書きや使用上の警告の点検は、製造物責任法の観点から取扱説明書と警告表示の点検でも扱っています。EC販売用の商品説明文を作るときはClaudeでせどり・EC商品説明文を作る際の注意点も合わせて参照してください。
最終的な表示の可否は、製造販売業者の責任で判断します。AIの点検結果は、製造販売業者の薬事担当者が最終確認をする前の下調べとして使います。