Claude Codeで記事を公開する前に、文章チェックを忘れないための仕組みを入れました。
ところが、投稿手順を調べるために作業記録を検索したら、その操作まで止められました。
検索したい文字が投稿コマンドと同じだったため、公開しようとしていると取り違えられたんです。
検索だけなのに、どうして?と思うような止まり方でした。
記事の確認を忘れないよう、公開前に止めることにした
きっかけは、確認を飛ばしていたことです。
記事を公開する前には、文章の自然さを調べる検査と、AIっぽい言い回しを避けるためのガイド照合をすることにしていました。
ところがClaude Codeは、ガイドの保存場所を確認せず、覚えている範囲の言葉検索で代用していました。動画台本の文章チェックも実行していませんでした。
手順を書くだけでは抜けることがある。そこで、確認が終わっていないと記事を作成できないよう、Claude Codeの「フック(hooks)」という設定で、チェックを追加しました。
フックは、Claude Codeが特定の操作をする直前や直後に、あらかじめ用意した処理を自動で挟める機能です。
チェックが動くのは、Claude Codeがターミナルでコマンドを実行する直前です。
WordPressで新しい記事を作る命令は「wp post create」です。
チェックはコマンドに「post create 」という文字か、動画投稿プログラムの名前が含まれていたら、確認済みの印があるかを調べます。
印は確認を終えたあとに作る小さなファイルです。作成から15分を過ぎたものや、一度使ったものは無効になります。
前の投稿で作った印を、時間がたってから使い回さないためです。次の投稿には、確認をやり直して新しい印を作ります。
印なしなら投稿コマンドを止める。
新しい印なら通す。使った印はもう一度使えない。
この3つは試し、想定どおりに動きました。
ただ、印があるだけで文章チェックまで済んだと証明できるわけではありません。
チェックが本当に終わったあとに印を作るのは、作業を進めるClaude Code側です。仕組みが確かめるのは、印が新しいかどうかだけでした。
印の中には記事のタイトルも書きますが、チェックはそのタイトルまで読みません。別の記事のために作った印でも、時間内なら通ってしまいます。
作業記録を検索しただけなのに止められた
設定を入れたあと、過去の作業記録を検索して動きを確認しようとしました。
ターミナルでファイルの中から文字を探すときは、「grep」という検索コマンドを使います。そこで検索語に「post create」と入力して、記録の中から投稿手順を探しました。
すると、検索コマンドを実行する前にClaude Codeが止まりました。
チェックは、コマンドの中に「post create」という文字があるかだけを見ていました。
そのコマンドが本当に投稿を作るのか、検索のために文字を探しているのかまでは見分けません。
投稿の手順を探すコマンドも、投稿コマンドと同じ文字を含んでいたため、公開操作だと判定されたんです。
ここで止められたのは検索結果の文章ではありません。検索を始める前に、実行しようとしたコマンドが止められました。
この違いが分かるまで、「何を調べようとしても止められる」ように感じました。
原因は検索の中身ではなく、調べるために使った文字列でした。
原因をメモに残そうとしたときも止められました。
今度は、動画をYouTubeへ送るプログラム名「upload_video.py」を説明する文章を保存しようとしていました。
書き込み用コマンドにその名前が含まれていたため、また公開操作だと判定されたんです。
検索語を別の書き方に変えると、その場の調査は続けられました。
でも、止まるたびに言葉を避けていては、仕組みを直したことにはなりません。
今回はチェックの設定自体は変えていません。公開操作以外のコマンドも止まる可能性を残したままです。
止める仕組みは、通す操作も試す
コマンドを細かく読み解く仕組みにはしませんでした。
投稿処理をサーバー経由で呼び出す場合もあり、長いコマンドには日本語や記号も混ざります。どこからどこまでが実際の操作なのかを正確に取り出そうとして、読み違えるおそれもありました。
そこで今回は、決めた文字列が含まれるかを見る簡単な方法を選びました。
このチェックが対象にするのは、新しい記事の作成と動画のアップロードです。すでに公開した記事の修正は対象にしていません。
対象を絞ったつもりでも、文字列だけで判断すれば、関係のない検索まで巻き込むことがあります。
その選択には、関係のない操作まで止める可能性もありました。
確認のときは「印がない投稿は止まるか」「印があれば通るか」「使った印を再利用できないか」を試しました。
一方で、検索やメモの保存など、止める必要のない操作まで通るかは十分に試していませんでした。
止めるテストはしても、通すテストが抜けていたんです。
止める側の確認だけでは足りません。
公開したい操作が止まるかと同じくらい、関係のない検索や記録が止まらないかも確かめる必要があります。
安全のための仕組みが普段の作業を邪魔すると、使う人は避け方ばかり探すようになってしまいます。
公開前の確認を忘れないための仕組みは、止められれば完成ではありません。
何を止めるのかだけでなく、何なら通してよいのか。両方を実際の使い方で試してから使うことにします。