セットアップ会 / 手順

写真を送ると
メルカリの下書きができる

商品の写真を渡すだけで、相場を実データで調べ、タイトル・説明文・価格を作り、メルカリの出品フォームに入力して下書き保存まで進みます。出品ボタンは押しません。最後に人が確認します。

0 / 0
01

持ち物チェック

会の前に揃えておけば、当日すぐ動けます。

02

セットアップ(3分)

ファイルを配ったりはしません。下のプロンプトを自分のClaude Codeに貼るだけです。

これをコピーして貼る
メルカリの出品作業を自動化するスキルを ~/.claude/skills/mercari-auto-list/ に作ってください。
(Windowsなら %USERPROFILE%\.claude\skills\mercari-auto-list\ )

## 目的
商品の写真を渡すと、メルカリの「出品下書き」が完成している状態にする。
写真解析 → 相場調査 → タイトル・説明文・価格の生成 → 出品フォーム入力 → 下書き保存。

## 前提
- メルカリの個人アカウント(メルカリShopsではない)
- 個人向けの公式出品APIは無い。ブラウザ操作で行う
- ブラウザは Claude in Chrome(私のログイン済みChrome)を使う

## 絶対に守る設計ルール(勝手に変えないこと)
1. 出品ボタンは押さない。下書き保存までで必ず止まる。
   価格ミスや誤認識がそのまま公開されるのを防ぐため、最終判断は人がする。
2. 傷・汚れ・欠品は疑わしくても必ず申告する。ただし確認のために作業を止めない。
   断定できないものは安全側に倒して下書きに書き(傷はある前提・状態は一段下)、
   「推測で埋めた前提」を報告に必ず列挙する。下書きは公開されないので、そこが安全網になる。
3. 価格は必ず実データを根拠にする。毎回「何件見たか・レンジ・中央値」を示す。
   売れた実績が10件未満なら「相場データが薄い」と明示する。精度を装わない。
4. 私のログイン操作をしない。パスワード、SMS認証コード、reCAPTCHA、本人確認には一切触れない。
   必要な場面では止めて私に知らせる。
5. 推測で埋めない。公開される項目(発送元の地域など)は config.json を使うか、無ければ私に聞く。
6. 商品の状態は、迷ったら一段下を選ぶ。

## 動作確認済みの事実(2026-09-29/30に実機で確認。再検証はしてよいが、ここから始めると早い)

■ 画面
- 新規出品 /sell/create / 下書き編集 /sell/draft/{id} / 下書き一覧 /mypage/drafts
- カテゴリー /sell/categories / 商品の状態 /sell/conditions / 配送の方法 /sell/shipping_methods
  この3つは別ページに遷移する。遷移しても入力は保持される

■ ボタン(最重要)
- 新規画面:押してよいのは button[data-testid="save-draft"]。
  button[data-testid="list-item-button"] が「出品する」。絶対に押さない
- 下書き編集画面には data-testid が無い。テキスト完全一致でしか区別できない
  (「出品する」「上書き保存する」「削除する」)。一致が1個でなければ中断するガードを必ず入れる
- 「type=submit は押さない」というルールは使えない。配送方法ページの「更新する」も submit で、これは押す必要がある
- メルカリは写真なし・必須項目未入力でも「出品する」を disabled にしない。止めるのは実装側の責任

■ 入力欄
- input[name="name"](商品名・40文字まで)
- textarea[name="description"](説明・1000文字まで)
- select[name="shippingPayer"](2=送料込み(出品者負担) / 1=着払い(購入者負担))
- select[name="shippingFromArea"](47都道府県 + 99=未定)
- select[name="shippingDuration"]
- input[data-testid="price-text-input"](¥300〜)
- Reactなので値の代入だけでは反映されない。ネイティブsetter+input/changeイベントで入れる

■ 入力順序の罠
- 「配送料の負担」を変更すると「配送の方法」がクリアされる。
  必ず 配送料の負担 → 配送の方法 の順で設定する。逆にすると消える

■ 配送の方法ページ
- input[name="selectedShippingMethod"] の value:14=らくらくメルカリ便 / 17=ゆうゆうメルカリ便 / 16=たのメル便
- ラジオを選んだだけでは確定しない。「更新する」ボタンを押す必要がある。
  このボタンは main要素の外にあるので、main内だけ探すと見つからない
- 本人確認が未完了だと、メルカリ便以外は disabled になる。押す前に disabled を確認する

■ 商品の状態
- a[data-testid="condition-1-row"] 〜 condition-6-row
  1=新品、未使用 / 2=未使用に近い / 3=目立った傷や汚れなし / 4=やや傷や汚れあり / 5=傷や汚れあり / 6=全体的に状態が悪い

■ カテゴリー
- input[placeholder="カテゴリー名を検索"] に入力すると、フルパス付きの候補が main内の a要素に出る。クリックで戻る

■ AI出品サポート
- 写真を上げるとウィザードが起動し、商品名・説明文・価格をAIが推測で埋めようとする。
  ルール5に反するので必ず「スキップ」する。スキップしても写真はフォームに残る

■ 相場調査
- /search?keyword=...&status=sold_out&item_types=mercari
- item_types=mercari は必須。無いとメルカリShopsの新品が混ざって相場が壊れる
  (実測で104件中83件がShops商品だったことがある)
- 販売中は status=on_sale。SOLDと両方取って報告する
- 価格は [data-testid="item-tile-price"] から取る。
  セル全体のtextContentに正規表現をかけると、価格と商品名が連結していて誤読する
  ("¥2,950" + "1616/arita japan…" が 29501616 になった)
- 結果は遅延ロード。JSの window.scrollBy では発火しない。実際のスクロール入力が必要
- [data-testid="loading"] は最後まで消えないことがある。待ち条件にしない。
  「価格入りセル数が増えなくなったら完了」で判定する
- 0件のときは「出品された商品がありません」と表示される
- アクセサリー(ケース・充電器)が混ざると中央値が壊れる。必要なら price_min を付けて本体だけに絞る

■ 金額(改定されうるので、使う前に出品画面の表示と突き合わせること)
- 出品料 無料 / 販売手数料 販売価格の10% / 振込申請手数料 一律¥200
- ネコポス¥210 / ゆうパケットポストmini¥160 / ゆうパケットポスト¥215 / ゆうパケット¥230
- 宅急便コンパクト¥450(専用箱¥70別) / ゆうパケットプラス¥455(専用箱¥65別)
- 宅急便60サイズ¥750・80¥850・100¥1,050 / ゆうパック60¥750・80¥870・100¥1,070
- 出品画面に出る「販売利益」は送料を引いていない。手残りは自分で計算する
  手残り = 販売価格 − 手数料10% − 送料 − 専用資材代

■ その他の制約
- 下書きの保存上限は30件(出品画面に明記されている)
- 高額商品は本人確認が済んでいないと出品できない。解除にはメルカリアプリでの操作が必要なので、
  ブロックされたら止めて私に報告する。代行しない
- 「配送料の負担」で着払いが選べないアカウントは、高額出品もできないと考えてよい

## 作ってほしいもの
- SKILL.md(上のルールと手順。検証日を明記)
- reference/ に、フォームのセレクタと手順 / 送料と手数料 / 相場調査の手順 / つまずいた箇所と回避方法
- scripts/ に相場抽出用のJS
- config.example.json(発送元の地域、配送料の負担の既定、発送までの日数、価格方針など)
- 私のアカウント固有の事情やこのPC固有のパスはハードコードせず、config.json に逃がす

## セットアップまで済ませてほしい
- config.example.json を config.json にコピーし、発送元の都道府県を私に聞いて書き込む
- 作り終えたら、写真を1枚渡すところから下書き保存までの使い方を3行で説明する

## 進め方
- 事実を確認してから書く。「動かして確かめたこと」と「調べただけのこと」を区別して書く
- ブラウザ操作でうまくいかなかった箇所は、回避方法を必ず書き残す
- 上の事実は2026-09-30時点のもの。UIや料金は変わるので、怪しい箇所は実際に開いて確かめてから書く
03

その場で1件やってみる

高額品は避けて、本や雑貨など安いものから。

04

つまずいたら

実際に踏んだものだけ載せています。

ブラウザを操作してくれない / メルカリが開かない

ほぼ確実に --chrome を付け忘れています。いったん終了して claude --chrome で起動し直してください。

それでも駄目なら、Chrome本体は起動していても拡張がつながっていないことがあります。拡張アイコンから接続を確認してください。

「高額商品の取引には本人確認が必須です」と出た

メルカリ側の制限です。マイナンバーカード等での本人確認が要り、スマホアプリでの操作が必要です。これは自分で行ってください。代わりに実行することはできません。

会の最中は、安い商品に切り替えるのが早いです。

出品ボタンを押してくれない

仕様です。価格の打ち間違いや写真の読み違いがそのまま公開されるのを防ぐため、下書き保存で必ず止まります。

出品まで進めたいときは、内容を確認したうえでその都度はっきり指示してください。まとめて許可しておくことはできません。

相場の金額がおかしい(安すぎる)

検索にケースや充電器などのアクセサリーが混ざると、中央値が本体価格から大きくずれます。実際にMacBookを調べたとき、中央値が ¥7,000 になったことがあります。

「本体だけで調べ直して」と伝えれば、価格の下限を付けて取り直します。

下書きが保存できなくなった

下書きは最大30件までです(メルカリの出品画面に書かれています)。古いものを消してください。

プロンプトを貼ってもうまく作れなかった

ここが最終手段です。すでに完成したスキル一式(zip)を主催者からもらい、~/.claude/skills/ に展開してください。中身は同じです。

展開後、config.example.json を config.json にコピーして、発送元の都道府県だけ書き換えます。

05

お金まわりの数字

2026年9月29日にメルカリ公式ガイドと出品画面の両方で確認した値です。改定されることがあるので、しばらく経ったら出品画面の表示と見比べてください。

項目金額備考
出品料無料—
販売手数料販売価格の 10%出品画面にも表示されます
振込申請手数料¥200振込ごと。1件ごとではありません
ネコポス¥210厚さ3cm以内/1kgまで
ゆうパケットポスト¥215専用資材が必要
ゆうパケット¥230厚さ3cm以内/1kgまで
宅急便コンパクト¥450専用箱 ¥70 が別途
宅急便 60サイズ¥7502kgまで
手残りの出し方

出品画面に出る「販売利益」は送料を引いていません。実際の手残りはこうなります。

手残り = 販売価格 − 手数料10% − 送料 − 専用資材代

例:¥3,800 の本をネコポスで送料込みにすると、3,800 − 380 − 210 = ¥3,210。

06

決めてあること

勝手に変えない前提です。ここだけは友達にも伝えてください。

  1. 出品ボタンは押さない。下書き保存で必ず止まります。最終判断は人がします。
  2. 傷・汚れ・欠品は疑わしくても申告する。写真に写っていない面は「きれい」ではなく、傷がある前提で書きます。見落とした傷は返品とクレームに直結します。
  3. 価格は実データを根拠にする。毎回「何件見たか・レンジ・中央値」を示します。売れた実績が10件に満たないときは「相場データが薄い」と正直に言います。
  4. ログイン操作はしない。パスワード、SMS認証コード、reCAPTCHA、本人確認には一切触れません。必要な場面では止めて知らせます。
  5. 推測で埋めない。発送元の地域のように公開される項目は、設定ファイルにあるものを使うか、分からなければ聞きます。
  6. 商品の状態は迷ったら一段下を選ぶ。期待を下回るより上回るほうが、取引は円滑に終わります。