Claude Codeで使う:HTMLがもつ驚くべき有効性

Simon Willison's Blog / 2026/5/9

💬 オピニオンSignals & Early TrendsIdeas & Deep AnalysisTools & Practical Usage

要点

  • このブログ記事は、Claude Code利用者がMarkdownではなくClaudeに対してHTML出力を要求すべきだと主張し、HTMLの表現力が説明の効果を高めると述べています。
  • 著者は、HTML出力ならSVG図表、インタラクティブなウィジェット、ページ内ナビゲーションなどのリッチ要素を活用でき、情報の「見せ方」と「掘り下げやすさ」が改善すると強調しています。
  • 記事では、差分を実際に描画し、インラインで色分けした注釈を入れるなど、PRレビューのためのHTMLアーティファクト生成を促す具体的なプロンプト例も提示されています。
  • 著者は、GPT-4時代のトークン制約によってMarkdownのトークン効率が大きな利点だった点と対比し、出力フォーマットとしては考え方が変わってきたと述べています。
  • 実地検証として、copy.failで見つかったLinuxのセキュリティエクスプロイトを題材に、GPT-5.5にHTMLでの詳細な説明を作らせる試みを行い、リッチHTML説明の有効性を確認しようとしています。
スポンサー: WorkOS — SSO、SCIM、RBAC などで、アプリをエンタープライズ対応に。

2026年5月8日 - Link Blog

Claude Code を使う:HTML の「不合理なほどの有効性」。Thariq Shihipar(Anthropic の Claude Code チーム)の、Claude に依頼する出力フォーマットとして Markdown より HTML を推す、示唆に富む記事です。

この記事には面白い例がぎっしり詰まっています(このサイトで収集されたもの)し、次のようなプロンプトの提案もあります:

この PR をレビューするのを手伝ってください。PR を説明する HTML アーティファクトを作成して。ストリーミング/バックプレッシャーのロジックはあまり詳しくないので、そこに注力してください。差分をインラインの余白注釈付きで実際に表示し、見つけたものを重大度別に色分けし、概念をうまく伝えるのに必要なら他にも何でも入れてください。

私は GPT-4 の時代から、ほとんどのものを Markdown で要求するのがデフォルトでした。8,192 トークン制限があった当時は、HTML より Markdown のほうがトークン効率が非常に高く、それが大きな利点だったためです。

Thariq のこの記事は、特に「出力」については、私にそれを再考させました。HTML で説明を出すよう Claude に頼むと、SVG 図、インタラクティブなウィジェット、ページ内ナビゲーションなどを差し込めるため、情報の見やすさ・たどりやすさが格段に良くなります。

昨年12月に HTML ツールを作るための有用なパターン について書きましたが、そこでは tools.simonwillison.net サイトにあるようなインタラクティブなユーティリティにかなり寄せていました。アドホックなプロンプトへの応答として、リッチな HTML の説明をもっと実験し始めるのが楽しみです。

copy.fail で試してみる

copy.fail は、難読化された Python として配布された概念実証(PoC)を含む、最近発見された Linux のセキュリティ脆弱性の悪用手口を説明しています。

私は GPT-5.5 に、次のようにしてその悪用の HTML での説明を作らせようとしてみました:

curl https://copy.fail/exp | llm -m gpt-5.5 -s 'このコードを詳細に説明してください。フォーマットし直し、紛らわしい部分は展開して、何をしていてどう動くのかを深掘りしてください。HTML を出力してください。見栄え良く整え、HTML と CSS と JavaScript の機能を使って、説明をリッチでインタラクティブにし、可能な限り分かりやすくしてください'

こちらが 生成された HTML ページ です。かなり良い出来です。とはいえ、周辺にある Python のハーネスよりも、悪用(エクスプロイト)自体を説明することを強調すべきだったでしょう。

Screenshot of a dark-themed technical document titled "What this Python script does". Body text: "This is a compact, deliberately obfuscated Linux-specific local privilege-escalation proof-of-concept. Its apparent goal is to tamper with the in-memory image/page cache of /usr/bin/su, then execute su to obtain elevated privileges." A yellow-bordered callout reads: "Safety note: This explanation is for code understanding, reverse engineering, and defensive analysis. Do not run this on systems you do not own or administer. On a vulnerable kernel, code like this can alter the behavior of a privileged executable." Left column heading "High-level summary": "The script opens /usr/bin/su read-only, decompresses an embedded binary payload, and then processes that payload in 4-byte chunks. For each chunk, it performs a carefully arranged sequence involving Linux's kernel crypto socket interface, AF_ALG, pipes, and splice(). The important point is that this is not ordinary file writing. It never calls write() on /usr/bin/su. Instead, it appears to rely on a kernel bug/primitive involving spliced file pages and the crypto API to get controlled bytes placed into the page-cache representation of a privileged executable." Numbered steps follow: "1. Open target executable — /usr/bin/su is opened read-only. 2. Decode hidden payload — A zlib-compressed hex blob is decompressed into bytes. 3. Patch in 4-byte chunks — The helper function is called repeatedly with offsets 0, 4, 8, ...". Right column heading "Why it looks strange" contains a table with Pattern and Purpose columns: "import os as g — Short aliasing to make the script compact and harder to read. socket(38, 5, 0) — Uses raw numeric Linux constants instead of readable names. Compressed hex blob — Hides binary payload bytes and keeps the script small. splice() — Moves file-backed pages through pipes without normal user-space copying. try: recv(...) except: 0 — Triggers the kernel operation and ignores expected errors."

2026年5月8日 21:00 に投稿

これは Simon Willison による リンク投稿 で、2026年5月8日 に投稿されました。

html 96 security 602 markdown 32 ai 2009 prompt-engineering 190 generative-ai 1780 llms 1746 llm 597 claude-code 112

月次ブリーフィング

$10/月でスポンサーになってください。今月の最も重要なLLMの動向を厳選したメールダイジェストをお届けします。

あなたに送る量を減らすために、私にお金を払ってください!

スポンサー&購読