Claude Media
Claude Codeのartifact公開で「Also makes 1 edit」が出る理由と止め方

Claude Codeのartifact公開で「Also makes 1 edit」が出る理由と止め方

公開確認の「Also makes 1 edit to that file on disk.」は、ファイル変更と公開を1手で行うサインです。CLAUDE_CODE_ARTIFACT_PUBLISH_EDITS=0で分ける方法を示します。

artifactの公開確認に Also makes 1 edit to that file on disk. と出るのは、Claude Codeがartifactのファイルを書き換えることと公開することを、1回の承認でまとめて行おうとしているからです。この動作を止めたいときは、環境変数 CLAUDE_CODE_ARTIFACT_PUBLISH_EDITS を 0 にします。Claude Code v2.1.300以降で使えます。

この記事では、文言の意味、確認が出る条件、0 にしたときに何が変わるかを順に見ていきます。

「Also makes 1 edit to that file」は何を知らせているのか

確認ダイアログの文は、公開と編集が1つの操作に束ねられていることを示します。公式ドキュメントの説明は次のとおりです。

  • 公開確認に Also makes 1 edit to that file on disk. のような一文が含まれる場合、Claude Codeはartifactのファイルを変更して、公開も同時に行っている
  • 承認すると、Claude Codeはまずページを公開し、そのあとで変更を手元のファイルに書き込む

つまり、承認の対象は「公開」だけではありません。手元のファイルが書き換わることも含みます。何が変わるかを承認前に把握したい人にとっては、気になる一文です。

この一文が出る背景は、v2.1.300の変更にあります。

あゆみ

artifact更新まわりの変更(v2.1.300〜v2.1.302)

  1. v2.1.300小さな変更を公開と同時に適用

    小さな変更は適用と再公開を1回の呼び出しで行い、大きな編集は1回の応答の中で編集と再公開を行うようになりました。CLAUDE_CODE_ARTIFACT_PUBLISH_EDITS もこの版から使えます。

  2. v2.1.301PreToolUseフックとの衝突を修正

    EditやWriteをPreToolUseフックが対象にしている環境で、artifactの更新が拒否される問題が直りました。Claudeはファイルを編集してから再公開する流れになります。

  3. v2.1.302空の編集リストでの失敗を修正

    Claudeが空の編集リストを送ったときに公開が失敗することがある問題と、新しい版に拒否された更新の再試行が誤った方法になる問題が直りました。

既定の動作は、ファイルを編集してから公開するという2手を、小さな変更に限って1手に畳むものです。手数が減る代わりに、承認画面で「公開」と「ファイル変更」が1枚に重なって見えます。

どんなときに確認が出るのか

そもそもartifactの公開は、確認なしで通る場面のほうが多くあります。自分が打ったプロンプトへの応答として公開する新しいartifactは、権限プロンプトも分類器の審査もなく通ります。確認が入るのは次の場面です。

場面Claude Codeの動き
plan modeClaude Codeの動きartifactごとの最初の公開の前に確認する
コネクタ呼び出しやファイルダウンロードをページが宣言するClaude Codeの動きその公開の前に確認する
公開リンクで共有済みClaude Codeの動き会話ごとに1回、変更前に確認する
スケジュールタスクが起こしたターンでの公開Claude Codeの動きartifactごとの最初の公開の前に確認する
承認なしでは読めないファイルClaude Codeの動き公開前に確認する。Artifact ツールのallowルールがあっても省略されない
ManualまたはacceptEditsで、承認なしでは編集できないファイルへの小さな変更Claude Codeの動き変更の公開前に確認する。allowルールがあっても、ファイル編集の承認が要るため確認される

Also makes 1 edit が表に出やすいのは、最終行の場面です。Manualモードでプロジェクト内のファイルを編集しようとすると、編集そのものに承認が要ります。そこへ公開が束ねられるので、1枚のプロンプトで両方の可否を問われます。

ここで押さえておきたいのは、Artifact ツールにallowルールを書いても、この確認は消えない点です。ルールが許可するのは公開の呼び出しで、ファイルへの書き込みには別の承認が必要です。

CLAUDE_CODE_ARTIFACT_PUBLISH_EDITS=0で何が変わるか

環境変数の説明は次のとおりです。0 にすると、Claudeはartifactのファイルに対する小さな変更を、公開の一部として適用しなくなります。代わりに、ファイル編集ツールでファイルを編集し、そのあと公開を別の手順として行います。

くらべる

PUBLISH_EDITSの既定と0の違い

1手

未設定(既定)

小さな変更は公開の呼び出しに同梱され、承認プロンプトに Also makes 1 edit to that file on disk. が出ます。

2手

0を設定

まずファイル編集ツールで編集し、次に公開します。変更はEditやWriteの通常の権限判定を通ります。

2手に分けると、次のことが起きます。

  • ファイルの変更は、通常のファイル編集と同じ扱いになる。差分の確認や、EditとWriteに掛けた権限ルール・フックの対象になる
  • 公開の確認プロンプトには、ファイル変更の一文が付かなくなる

公式の文言はここまでで、プロンプトの回数が必ず減る、増えるといった保証は書かれていません。Manualモードでは編集の承認と公開の確認が別々に出る形になる、と整理するのが安全です。

設定のしかた

その場の1セッションだけなら、シェルで変数を付けて起動します。

CLAUDE_CODE_ARTIFACT_PUBLISH_EDITS=0 claude

常に止めておきたいときは、settings.json の env に書きます。

{
  "env": {
    "CLAUDE_CODE_ARTIFACT_PUBLISH_EDITS": "0"
  }
}

書き込み先で適用範囲が変わります。~/.claude/settings.json は自分の全プロジェクト、.claude/settings.json はプロジェクトの全員、.claude/settings.local.json は自分のそのプロジェクトだけ、管理設定は組織全体です。チームで編集と公開を分けたいなら、プロジェクトの .claude/settings.json に置くとコミットを通じて共有できます。

落とし穴

v2.1.299以前では変数が効かない

この環境変数はv2.1.300以降が対象です。claude --version で版を確認してください。古い版では、設定しても公開と編集の束ねる動作を止める手段として機能しません。

0にしたほうがよい場面、既定のままでよい場面

どちらが正しいというより、承認画面で何を見たいかの違いです。

状況向く設定
ファイルの変更内容を、公開と別に差分で確認したい向く設定0
EditやWriteにPreToolUseフックで検査や整形を掛けている向く設定0(通常の編集経路を通せる)
artifactのファイルがプロジェクトのリポジトリ内にあり、変更の記録を分けたい向く設定0
一時ディレクトリに置いたページを素早く直して再公開したい向く設定既定のまま

artifactのページは、場所を指定しない限り、プロジェクトの外の一時ディレクトリにHTMLまたはMarkdownとして書かれます。Claudeはこの一時ディレクトリのファイルを、確認なしで読めます。Manualモードで「承認なしでは編集できないファイル」に当たりやすいのは、出力先にプロジェクト内のパスを指定したときです。

フックとの関係には補足があります。v2.1.301で、EditやWriteに掛けたPreToolUseフックのせいでartifact更新が拒否される問題が直されました。直し方は「ファイルを編集してから再公開する」流れに寄せるものです。環境変数で 0 にした構成は、その流れを最初から選ぶ形と言えます。

切り替えたあとの確認手順

設定を入れたら、実際にプロンプトの文面が変わるかを確かめます。

  1. claude --version でv2.1.300以降であることを確かめる
  2. ManualモードでClaude Codeを起動し、既存のartifactのファイルを指定して「この見出しを1つ直して再公開して」と頼む
  3. 先にファイル編集の承認が出て、そのあと公開の確認が別に出る形になれば、0 が効いている見込み
  4. 一文 Also makes 1 edit to that file on disk. が公開確認に残っていれば、変数が読み込まれていない。起動したシェルの変数と、settings.json の env のキー名の綴りを見直す

settings.json に書いた値は、実行中のセッションでも保存時に反映されると公式に書かれています。ただし、ほかのファイルが同じ変数を異なる値で設定している場合は、設定の優先順位で決まります。

承認プロンプトで見ておきたい点

Also makes 1 edit が付いた公開確認に出会ったときは、次の3点を見ると判断しやすくなります。

  • 対象のファイルが、一時ディレクトリのページか、プロジェクト内のファイルか
  • 公開より先に、ファイルへの変更が自分の意図した範囲か
  • 公開リンクで共有済みのartifactではないか(共有済みなら、会話ごとの確認も重なる)

変更の中身を先に見たいなら、0 にして編集を独立させるほうが見通しがよくなります。反対に、一時ディレクトリのページを何度も直して再公開する作業なら、1手にまとまる既定のほうが往復は少なく済みます。

似た名前の環境変数との違い

artifact関連の環境変数はほかにもあり、目的が違います。

環境変数止めるもの
CLAUDE_CODE_ARTIFACT_PUBLISH_EDITS=0止めるもの公開と同時に行うファイルの小さな編集(v2.1.300以降)
CLAUDE_CODE_ARTIFACT_COMMENTS=0止めるものartifactのコメントの読み取りと返信(v2.1.221以降)
CLAUDE_CODE_ARTIFACT_COMMENTS_AUTOREACT=0止めるもの自分宛てのコメントへの自動返信(v2.1.228以降)
CLAUDE_CODE_ARTIFACT_AUTO_OPEN=0止めるもの公開後にブラウザを自動で開く動作

コメント系の2変数の違いはClaude Code Artifactの自動返信を止める2つの環境変数で扱っています。公開時にどんな確認が入るかをさらに広く見たい場合は、Claude Code Artifactsの共有ページが同じURLで自動更新される仕組みが公開リンク後の挙動まで触れています。組織側で公開範囲を絞る設定はClaude Code Artifactsの組織管理にあります。

公開リンクへの切り替えそのものが拒否されるときは、環境変数ではなく共有設定の問題です。切り分けはClaude Artifactsで公開できない「can't be shared publicly」の原因と対処を見てください。

要点

Also makes 1 edit to that file on disk. は、小さな変更の適用と公開が1つの承認に束ねられているサインです。承認すると、公開が先に行われ、その後でファイルに書き込まれます。

編集を公開と切り離して通常のEdit・Writeの経路に乗せたいなら、CLAUDE_CODE_ARTIFACT_PUBLISH_EDITS=0 が使えます。置き場所は、個人なら ~/.claude/settings.json、チームなら .claude/settings.json です。Manualモードでは、編集の承認と公開の確認が別々に出る形に変わります。

この記事を共有:XはてブLinkedIn