Claude CodeでPRのウォークスルーページを作り、URLをそのままSlackに貼ったことがある。相手の反応を待つ間、ふと引っかかりを覚えた。ローカルのプロジェクトフォルダには確かにHTMLファイルが生成されている。でも今開いているこの claude.ai のURLは、一体どこにあるファイルを表示しているのか。会社の情報が入ったページを、こんな手軽さで公開してしまって本当に大丈夫なのか。この疑問を放置したまま使い続けるのは怖いので、公式ドキュメントとAnthropicのコンプライアンス関連ページを読み込んで、保存場所と漏洩リスクの実態を確認した。
Artifactとは何か——公開の瞬間に何が起きているか
Artifactは、Claude Codeのセッションでの作業を、claude.ai上の非公開URLとして公開する機能だ。対応プランはPro/Max/Team/Enterpriseで、モデルプロバイダはAnthropic APIのみに限定される。Bedrock・Google Cloud Agent Platform・Microsoft Foundry経由でClaude Codeを使っている場合はそもそも対象外になる。
公式ドキュメントには「Artifactはアプリではなく、作業のキャプチャだ」という位置づけが明記されている。バックエンドを持たない単一の自己完結ページで、フォーム入力を保存したり、閲覧時にAPIを呼んだり、複数のルートを持たせたりはできない。つまり動くWebアプリを作る機能ではなく、その場のセッションの結果をスナップショットとして見せるための機能だ。
公開の流れはこうだ。Claudeがプロジェクト内に .html か .md のファイルを書き出し、そのあとpublishする。新規のArtifactを公開する前には必ず許可を求められる。「Claudeが『Deploy failures by service』(deploy-failures.html) をclaude.aiの非公開ページとして公開しようとしています」といった文言でプロンプトが出る形だ。一度承認したArtifactを同じURLに再度publishするときは、この確認は出ない。
ここでもう一つ、読者から聞かれることが多い疑問に触れておきたい。Claude CodeのCLIでスラッシュコマンドを入力すると、補完候補に /artifact-design — Design guidance and fundamentals for Artifacts. という項目が実際に出てくる。他の自作スキルと並んで表示されるので、/artifact-design とタイプすれば直接呼び出すこと自体はできる。ただし面白いのは、この名称もコマンドとしての振る舞いも、公式のコマンド一覧ページには載っていないという点だ。同種のビルトインスキルである /dataviz はドキュメントに明記されているのに、artifact-designは表に出てこない。普段Claudeがartifactを組み立てる際にはこのスキルを内部的に自動適用しているので、ユーザーが意識して手動で呼ぶ場面は多くないが、「ドキュメントに載っていない=ユーザーが呼べない」わけではない。
このスキルは、プロンプトで何も指定しなくても一定水準の配色・タイポグラフィ・レイアウトになるよう働く。プロジェクトに既存のデザインシステムがあればそちらを優先し、なければClaude自身の判断に落ち着く。CLAUDE.mdに次のようなデザイントークンを書いておくと、Claudeはそれを踏まえてartifactを作る。
## Design system
- Colors: primary #1a4d8f, accent #f59e0b, surface #f8fafc
- Typography: Inter for body, JetBrains Mono for code
- Spacing: 8px scale, 6px border radius優先順位は「プロンプトの指示 > プロジェクトのデザインシステム > Claude自身のデフォルト」の3層になっている。チームで使うartifactのトーンを揃えたいなら、ここを整えておくだけでだいぶ印象が変わる。
"非公開"の実態——保存場所と漏洩リスクの核心
ここからが本題だ。新規のArtifactは自分にしか見えない状態で作られる。Pro/Maxプランでは常にこの状態で、管理者による制御は一切入らない。この「自分にしか見えない」という表示を見て、多くの人は「ローカルで完結している」と思い込んでしまう。だが実際はそうではない。
公式ドキュメントにはこう書かれている。「Artifactのコンテンツは、Anthropicが運用するインフラ上に保存され、公開元組織に所属し認証済みのメンバーのみが閲覧できる」。つまりpublishというアクションを実行した時点で、コンテンツはローカルのファイルとは別に、Anthropic側のサーバーにもアップロードされている。プロジェクトフォルダに残っている .html ファイルと、claude.aiのURLで表示されているコンテンツは、見た目こそ同じでも、実体としては「手元にあるファイル」と「サーバー上に保存された複製」という、別々の2つが存在している。
もう一つ押さえておきたいのが、共有の範囲だ。公式には「共有は自組織の外には出ない」と明記されている。組織外の誰かがartifactを閲覧できるようにするオプションはなく、閲覧者は同じ組織のメンバーとしてclaude.aiにサインインする必要がある。組織外の相手にコンテンツを渡したい場合の唯一の手段として案内されているのは、「Claudeに元のHTMLファイルをもらって、それを直接共有する」というものだ。つまり組織外共有をしたいなら、Artifactという仕組み自体を経由せず、ファイルとして手渡しするしかない。
共有機能自体もプランによって挙動が変わる。Pro/Maxは常に自分のみで管理機能なし。Teamプランはデフォルトで有効になっており、ページヘッダーのShareから組織内の特定メンバーか、組織全員かを選んで共有できる。Enterpriseでは、この機能自体をOwner権限を持つ管理者が有効化しない限り使えない。
Artifactのページ自体には、厳格なCSPによる制約がかかっている。外部への通信は一切禁止され、CSSやJSはページ内にインライン化、画像はdata URIとして埋め込まれる。バックエンドを持たない静的なページで、レンダリング後のサイズは16MiB以下という上限もある。この制約は「ページを開いた閲覧者のブラウザから情報が漏れ出す経路」を塞ぐ役には立つが、「コンテンツがAnthropicのサーバーに保存されている」という前提そのものを変えるものではない。ここは混同しないほうがいい。
社内で使う前に確認すべきこと
Team/Enterpriseで組織として使う場合、管理者側にはいくつかの制御ポイントがある。
claude.aiの管理画面「Settings > Claude Code > Capabilities」にArtifactsのオン/オフを切り替えるトグルがある。Enterpriseであれば「Settings > Roles」から、特定のロールにだけArtifactsの利用範囲を絞ることもできる。まず自組織でこのトグルがどうなっているか確認してほしい。
保持期間についても、「Settings > Data & privacy controls」で管理者が設定する。ここでは「本人のみに非公開のartifact」と「共有済みのartifact」を別々の期間で設定できる。ただし公式ドキュメントには固定のデフォルト日数は明記されていない。Claude Codeの一般的なセッションデータには「商用プランは標準30日保持」という数字があるが、これはArtifactsそのものの保持期間とは別の話で、混同して覚えないほうがいい。Artifactsの保持期間がどう設定されているかは、自組織の管理者に直接確認するしかない。
もう一段厳しい制約として、ZDR(Zero Data Retention)・CMEK・HIPAA対応が有効になっている組織では、Artifacts機能自体が使えない。理由は明確で、Artifactsは公開ページのコンテンツをAnthropic側のインフラに保存することが前提の機能だからだ。ZDRのドキュメントにも、Artifactsが「サーバー側でのコンテンツ保存を要求する」という理由でバックエンドレベルから自動的に無効化される機能として名指しされている。厳格なデータ保持ポリシーを敷いている組織では、そもそもこの機能を検討する余地自体がない。
セキュリティ担当者向けには、組織内のArtifactを棚卸しする手段もある。Compliance APIを使うと、組織配下で公開されているArtifactの一覧を取得でき、各Artifactが「組織全員に公開中」「本人のみ」「特定ユーザーへの限定共有」のどの状態にあるかを、read_mode というフィールドで機械的に判定できる。公開・共有範囲の変更や削除といった操作も監査ログに記録されるため、「いつ誰がどのArtifactを公開・共有したか」という履歴を追うこともできる。定期的にこの棚卸しを回す運用を組んでおくと、気づかないうちに機密情報入りのページが組織全体に公開されたままになる、という事態を防ぎやすくなる。
そもそもチームでこの機能を使う予定がないなら、無効化してしまうのも選択肢だ。個人設定であれば、settings.jsonに "disableArtifact": true を書く、環境変数 CLAUDE_CODE_DISABLE_ARTIFACT=1 を設定する、あるいはpermissions.denyに Artifact を追加する、という3通りの方法がある。組織単位では、前述の管理画面のトグルをオフにするだけでメンバー全員に対して無効化できる。
それでも使う価値はある——実務での使いどころ
ここまでリスク側の話が中心になったが、Artifact自体は使いどころさえ選べば便利な機能だ。公式ドキュメントが挙げている例で、筆者が実際に近い使い方をしたのはPRのウォークスルーだった。「このPRの差分に、重要度で色分けした注釈を付けてartifactにして」と頼むと、diffに沿ってレビュー観点が整理されたページができる。文字だけのターミナル出力よりも、レビュアーに背景を共有するときの負担がずっと小さい。
複数案を並べて比較したいときにも向いている。設定パネルのレイアウト案を4パターン作らせて、それぞれの密度やグルーピングの違いをグリッドで並べ、1行のトレードオフコメントを添えて比較する、といった使い方だ。スライダーやトグルでイージングカーブやdurationを動かしながらアニメーションをその場でプレビューする、といったインタラクティブな調整にも使える。
artifact上での操作結果を「Copy as prompt」のようなボタンでテキスト化し、ターミナルのセッションに貼り戻せるようにするパターンも実用的だ。ドラッグ&ドロップで並び替えたトリアージボードの結果を、ボタン一つでプロンプトとしてコピーしてセッションに反映する、という流れになる。長時間かかるマイグレーション作業の進捗をチェックリスト形式のartifactとして最新に保っておき、リンクだけで関係者が進捗を追えるようにする使い方もある。
これらはどれも「見せて終わり」ではなく、レビューや意思決定の材料としてartifactを使う発想だ。だからこそ、公開する前に「これは組織内共有前提の情報か、自分の作業メモに留めるべきか」を一呼吸おいて判断してほしい。
まとめ
Artifactの「非公開」という表示は、コンテンツがどこにも保存されていないという意味ではない。publishした瞬間にAnthropicのインフラ上にコンテンツが保存され、組織のメンバーだけがアクセスできる状態になる、という仕組みを理解した上で使うかどうかは自分で判断すればいい。
自組織がTeamかEnterpriseを使っているなら、まず管理画面でArtifactsのオン/オフと保持期間の設定を確認してほしい。セキュリティ担当であれば、監査ログとCompliance APIで既存のArtifactを一度棚卸しし、read_mode が「組織全員」になっているページが放置されていないかを見ておく価値がある。デザインの一貫性を気にするなら、CLAUDE.mdにデザイントークンを一言添えるだけで、artifact-designが拾ってくれる。
便利な機能ほど、仕組みを知らずに使い続けると気づかないリスクを抱え込みやすい。手元のプロジェクトで公開ボタンを押す前に、自分の会社のポリシーがそれを許しているかどうか、一度確認しておいて損はない。

コメント