手順書のスクショに枠と番号を自動で付ける|Chrome DevTools MCP

ども!Chrome DevTools MCP でブラウザを触らせる話を続けて書いている龍ちゃんです。

先日、Chrome DevTools MCP でのセットアップとログインの通し方を書きました。あそこまで終われば、あとは普段どおりブラウザを触るだけです。その続きを触っていて、ふと思ったんですよね。これ、マニュアル作りにも使えるんじゃないの?って。

今回はそこだけ切り出して試した回です。マニュアルの本文を書かせる話や、書いた本文を仕上げるところまでは別問題なので、ここでは扱いません。マニュアルで貼る図の手間を少し軽くする話です。

手順書のスクショ、撮った後の手間がわりと重かった

手順書やマニュアルを作るときのいつもの流れって、大体こうですよね。

  1. 手順ごとに画面を出してスクショを撮る
  2. 画像編集ソフトで枠や矢印を描き足す
  3. PNG として保存して、名前を付ける

数えると3手です。しかも手順の数だけ、これを繰り返すことになります。

複数の対象を1枚で示したいときは、ここにもう一手増えます。①②③の番号を、ひとつずつ位置を決めながら打ち込む作業です。上の3手には数えていませんが、対象の数だけ確実に増えていく作業で、地味に手間がかかっていたところでした。

今回やったのは、この3手と番号の位置決めをまるごと「この欄を①、この欄を②、このボタンを③で囲って撮って」の一言に畳めるかという話です。画面を出すところは人が普段どおり操作するので数に入れていません。そこはどちらのやり方でも同じですからね。

結論として以下のような図がプロンプトだけで作れます。渡した指示の中身はこのあと説明しますが、まずは出てきた結果からです。

フォームの入力欄2つとボタンを①②③で囲んだ画面

入力欄2つとボタン、合わせて3箇所を一言で囲んで、番号まで振ってもらえました。

どう指示したら、枠つきの1枚が出てくるのか

例に使うのは自分で作っているアプリの画面です。Azure上に公開しているのでブラウザ経由でアクセスを行います。

指示は2段に分けています。ひとつは自分のアプリでしか通じない指定、もうひとつはどの画面でも変わらない骨組みです。

まずアプリ側の指定です。ここは読んでいる人が自分のものに差し替えるところですね。

開く画面: Azure に置いた自作アプリ(フォーム画面 / 一覧画面)
対象の呼び名: 「タイトル」「ジム」— 画面に出ている文字でそのまま指す

ここから先は、どの画面に対しても同じ骨組みです。対象を枠で囲むだけの、シンプルなものです。

1. 対象のタブを決めて、前面に出す
2. ウィンドウの寸法を固定する(1400x900)
3. 対象を囲む枠を、重ねたレイヤーとして1枚描く
   - 対象そのものの style / outline / border には触らない
   - 枠は viewport 座標で描く(描いてから撮るまでにスクロールしない)
4. 撮る
5. 枠のレイヤーを消す

この骨組みで一番効いているのは、元の画面を動かさないことです。対象の border を直接書き換えると、その分だけ幅が増えてレイアウトが動きます。撮りたいのは普段どおりの画面なので、枠を足したせいで並びが変わったら元も子もないんですよね。なので枠は、画面の上に透明なレイヤーを1枚かぶせて、そこに描いています。消すときもレイヤーごと外すだけなので、消し忘れも起きにくい作りです。

枠がうまく出ないときは、この「元の画面に触らない」が守られているかを先に見てもらうのが早いです。

なお、ここに載せたのは骨組みだけです。実際に保存したものは初版で227行あって、枠の座標や番号の置き場を詰めるところが長い部分です。これだけを貼っても、同じ絵までは出ません。人が言うのは1行で、長い部分はぜんぶあちら側にあります。

Chrome DevTools MCP そのものの細かい仕様は、公式ドキュメントに譲ります。

この骨組みだけで、どこまで通るか試しました。まずは入力欄が空のフォームです。

タイトル欄を枠で囲んだ、入力前のフォーム画面

この1枚は、対話で組み立てながら撮った回です。「タイトルの欄を囲って」と指しては、出てきた枠を見て直して、を何度か繰り返しています。一言で撃てるようになったのは、このあとですね。

さらに、フォームとはまったく性質の違う画面でも試しました。一覧に並んだカードを1枚だけ囲うパターンです。

一覧のカードを枠で囲んだ画面

こちらで言ったのは、これだけです。

ジムのカードを囲って撮って

対話で作った指示を、追加なしで撃っただけです。入力欄でもカードでも、同じ指示で枠が出てきました。

番号や矢印の位置、どこまで指示で決められるのか

位置や見た目まで指示で決められるのか、実際に試したのがここからです。

複数の対象を1枚で示すとき、番号バッジをどこに置くかって、直感的には二択ですよね。対象の上に重ねるか、対象の外に出して引き出すか。まずはこの2つを試しました。

試しに実験を行いました。実際に投げた言葉はこうです。

フォーム: キッカーを①、タイトルを②、生成ボタンを③で囲って撮って
一覧  : オーロラを①、ブログを②、ジムを③で囲って撮って

番号の置き場(このときは指示の側で決め打ちにしていた):
  A 対象に重ねる(枠の左上)
  B 対象の外に出して引き出す(枠の外・左右は自動で反転)

言った順が、そのまま①②③になります。手順書の番号は手順そのものなので、並べ替えは機械に任せていません。

重ねる案は、対象の中の文字を潰しました。①のバッジが HOW TO の頭を隠して IOW TO に見えてしまいます。

番号バッジを対象に重ねた没案。①がHOW TOの頭を隠してIOW TOに見えている

外に出す案は、フォームなら読めましたが、一覧では壊れました。カードの隙間は隣どうしの共有スペースなので、番号バッジが隣のカードの枠に乗ってしまい、どちらの番号なのか読めなくなります。

番号バッジを外に出した没案。③が隣のカードの枠に乗って番号の帰属が読めない

どちらも、置き場を「対象に重ねる(左上)」「外に出して引き出す」と決め打ちで指示に書いていたのが敗因です。そこで指示を書き換えました。

6通りの置き方を試し、「バッジが文字を覆う面積 + 別の対象の枠やバッジに乗る面積 × 4」が
最小のものを選ぶ。0 になった時点で打ち切る。

置き場を決めずに、「どう選ぶか」だけを書いたわけですね。置き場を探す仕事のほうを機械に渡して、人は「何を避けたいか」だけを書く、という分担です。

結果、フォームでは右上、一覧では左上が選ばれました。どちらも覆った文字は0件です。さっき見てもらったフォームの絵は、この右上に置かれた番号だったんですね。同じ考え方で一覧に撃ったのがこちらです。

一覧のオーロラ、ブログ、ジムのカードを①②③で囲んだ画面

同じ指示のはずなのに、置き場が変わっているわけですね。とはいえ賢いのは機械側ではなくて、「どこに置くか」を決めずに「どう選ぶか」を書いた指示のほうです。置き場を固定して渡していたら、さっきの没案2枚のどちらかが出てきていました。

もちろん、同じ画面で毎回まったく同じ位置に出したいなら、置き場を指定してしまうほうが早いです。一度撮って位置が決まっているなら、それで足ります。壊れたのは、確かめないまま固定を別の画面へ持ち回ったときでした。

番号に加えて、矢印も同じ指示の中で足せました。上の発話に「③に矢印も」と一言足すだけです。

生成ボタンにだけ矢印を添えた、番号バッジつきのフォーム画面

更新のたびに、同じ絵を撮り直せるのか

指示は最初から書き上げたわけではなくて、チャットで一緒に試しながら詰めていったんですよね。狙った枠や番号が出るまでやり取りを重ねて、固まったところでそのプロンプトを書き出して保存しておいた、という順番です。Chrome も Claude Code のセッションも立ち上げ直してから、保存したその指示をもう一度撃ってみました。出てきたのは同じ絵です。番号と矢印まで入れた絵も、当て直して撮り直せば同じものが出てきます。

ただ、機械で確かめられるのは、画面上に文字として存在しているものだけです。背景画像に焼き込まれた文字までは判定できないので、番号がそこに乗っていないかは、最後は自分の目で見て確認しています。

機械が見えている範囲と見えていない範囲を、図にするとこんな境目になります。AI側に画像を読み込ませて判断することも可能ではあるんですが、違和感を見つけるのは人間のほうが早いので人間をループに組み込んだほうが早いです。

DOM上に文字として在る要素は機械で確かめられるが、背景画像やcanvasに焼き込まれた文字は確かめられないことを示す境目の図

もちろん、画面のほうが変わったら指示も直すことになります。欄が増えたり並びが変わったりすれば、囲む対象を言い直すわけですね。ここはマニュアルを更新するときに本文を直すのと同じで、直す対象に指示が1つ加わるという話です。

で、自分の仕事のどこで使えるのか

まとめると、手順書用のスクショで一番手間だった「撮った後に枠と番号を入れ直す」ところが、プロンプトに畳まりました。冒頭で「マニュアル作りにも使えるんじゃないの」って思ったところ、番号や矢印まで含めて使えるところまでは確認できた、という結果です。

割り切ったところも書いておきます。押した瞬間の画面はこの撮り方では取れません。ボタンを押した直後に出る完了表示みたいな、寿命の短い表示は間に合いません。逆に手順書が欲しい絵って「これから押す場所」なので、押す前に撃つ形とは相性がいいです。

なので、そういった瞬間的な表示とかに関しては「Playwright」か「画面録画」で切り出すのが楽かなって思います。

あと、配れるコマンドの形にはしていません。使うなら、上の骨組みを下敷きに自分の対象サイト向けの指示を書いて、狙った絵が出るまで詰めて、サイトごとに専用のプロンプトファイルとして保存しておく形になります。僕がやったのもその順番でした。

まずは自分がよく撮る画面1つで、「この欄を①で囲って撮って」って言ってみるところから試してみてください。

ではまた!

ご覧いただきありがとうございます! この投稿はお役に立ちましたか?

役に立った 役に立たなかった

0人がこの投稿は役に立ったと言っています。
エンジニア募集中!

コメントを残す

メールアドレスが公開されることはありません。 ※ が付いている欄は必須項目です