出したくない語スキャンを公開します ── 止まった8回のうち6回は、出してよいものを止めていた
(一体記事・2026-10-05・表7・実物3)
結論
公開するリポジトリに push する前に、自分で決めた「出したくない語」が入っていないかを検査するツール「出したくない語スキャン」を公開します。ぼくは2026年9月17日から、自分の運用でこの検査を回してきました。出したくない語は、2026年10月4日時点で23語です。記録に残っている止まった回は8回で、そのうち6回は、出してよいものを止めていました。本物だった2回は、どちらも、すでに公開していたものを後から見つけた回です。公開の前に本物を止めた記録は、ありません。
| やったこと | 結果 | つまずき |
|---|---|---|
| 出したくない語を決めて、push の前と、公開したあとに検査した(9月17日から) | 止まった記録は8回(2026年10月4日時点) | 8回のうち2回は、件数を残していない |
| 止まった8回を、本物か誤りかで分けた | 誤り6回・本物2回 | 本物の2回は、どちらも公開済みのものを後から見つけた回 |
| 9月28日、公開中の46ページ全部に初めてかけた | 5ページ・9件で止まり、9件とも誤り。当て方を3つ変えて、18分後に通った | 読者向けにも使う語を、出したくない語に入れていた |
| 内部版から公開版を切り出し、例の検査語で試した(10月4日) | 3回とも止まった。許可を足した4回目は、ヒット0で通った | 止まった3回で当たったのは、このツールの3つのファイル(README・本体・例のファイル)に自分で書いた例の語と、公開用のアドレスだけ |
23語の中身
語そのものは書きません。種類と数だけです。
| 種類 | 語の数 |
|---|---|
| 私用の情報(メールアドレスの形・ホームフォルダ名・ユーザーのフォルダのパス) | 3 |
| ほかの事業にかかわる名前(表記の違いを含む) | 9 |
| まだ公開していない、構想中のものの名前 | 1 |
| 運用の中だけで使う呼び名 | 8 |
| 自分の X の投稿の番号 | 2 |
9月17日に21語で始めて、9月20日と9月25日に1語ずつ足しました。数えたのは、検査語のファイルを読み込んだときの数です(2026年10月4日時点)。
9月28日19時08分、46ページのうち6ページが×
本番確認(公開したページが正しく出ているかの確認)をスクリプトにしたのは、9月27日です。9月28日の夕方、サイトを組み立てる仕組みを変えて push したので、本番確認は公開中の46ページ全部を見ました。確かめる項目の1つが、本文に出したくない語が無いかで、使う検査語は同じ23語です。
翌朝の受領票(朝の自動実行が、その朝の結果を1行ずつまとめる記録)には、こう残っています。
実物1: 9月29日の朝の受領票の「本番確認」の2行(原文)
本番確認: × 6/46 ページ(2026-09-28 19:08)
本番確認(--urls 指定): 6 ページ OK(2026-09-28 19:26)
2行目の「--urls 指定」は、確かめるページを手で選んだ回の印です。
9月28日の×の6ページのうち、5ページ・9件が出したくない語の検査でした。残りの1ページは、本文が手元で組み立てたものと同じかの確かめで、別の件です。下の表のページの数を足すと6になりますが、1ページは両方の語に当たっていたので、ページは5つです。
| 当たった語 | 件数 | ページ | 本物か誤りか |
|---|---|---|---|
| 内部の呼び名に使っている一般の語 | 6 | 3 | 誤り(読者向けの説明にも、普通の語として出ていた) |
| 英字の短い呼び名 | 3 | 3 | 誤り(前後に英字が続く、ほかの語の中に当たった) |
9月28日の9件は、どれも公開してよい文でした。出したくない語として入れた語のうち1つは、読者向けの説明でも普通に使っている語でした。英字の呼び名は短いので、ほかの語の一部にも当たります(当たったのは1語・3件。同じ形のもう1語も、あわせて直しました)。
18分で通した直し
作る側のAIが当て方の直しを3つ出し、ぼくが決めました。
| 直した語 | 直し方 |
|---|---|
| 英字の呼び名2つ | 語の境界つきにした(前後が英数字なら当てない) |
| 一般の語1つ | 検査語から外し、内部でだけ使う書き方の形だけを当てるようにした |
数は23語のままです(書き換え2・外す1・足す1)。19時26分に、×だった6ページだけをもう一度確かめて、6ページとも通りました。最初の×から18分です。
そのあと9月30日から10月3日までの本番確認9回では、この項目は9回とも0件でした。
止まった8回
記録(決定の記録・コミット・本番確認の記録・クラウド側の作業の記録・手元の作業のセッションの記録)で追えるものだけを並べました。「本物」は、出してはいけない語が本当に入っていた回、「誤り」は、出してよいものに当たって止めた回です。
| 日付 | 場面 | 本物か誤りか(件数) | どう直したか |
|---|---|---|---|
| 2026-09-17 | 公開リポジトリ(ツールの配布先)の今の中身 | 本物・19件(前から公開していたツールの中の、内部の呼び名1語) | その日は件数だけ出して止めない扱いにし、9月20日に公開用の語へ改名した |
| 2026-09-20 | 同じリポジトリの、古い書き方も読めるようにしたコードと説明 | 誤り・3件(わざと残した古い書き方) | 行の許可を3行 |
| 2026-09-22 | note に貼る本文の一括検査(転載する予定の記事25本) | 誤り・件数は追えず(英字の語がほかの語の一部に当たる・読者向けの語に当たる) | note に貼る本文の検査だけ、当て方を変えた。直したあと25本とも通った |
| 2026-09-22 | 同じ一括検査 | 本物・1件(公開中の記事のリンクの文字に、内部の通し番号の書き方) | リンクの文字から外した(変更履歴に1行) |
| 2026-09-28 | 本番確認(公開中の46ページ) | 誤り・9件(5ページ。上の2種類) | 当て方を3つ変えた。18分後に通った |
| 2026-09-29 | クラウド側のセッションで、作業の push の範囲にかけた検査 | 誤り・4件(クラウド側のコミットの著者の公開用アドレス3・差分の前後に写る、前からある行1) | 9月30日に、メールの許可に1つ足した |
| 2026-09-30 | クラウド側の作業を手元に取り込んで、サイトのリポジトリへ送る push | 誤り・12件(GitHub の公開用の著者アドレス8・差分の前後に写る、前からある行4) | 足した行だけを見るように変え、メールの許可に1つ。ほかに、公開版には入れていない扱いを1つ |
| 2026-10-02 | サイトのリポジトリへの push(X の投稿の下書き) | 誤り・4コミットのうち3コミット、件数は追えず(下書きのボードの小さな画像のデータが、検査語の形に当たった) | 埋め込み画像のデータを、検査から外した |
合わせると、誤りは6回で、件数を追えた4回の分が28件。本物は2回で20件です(2026年10月4日時点)。
この8回は、記録で追えるものだけです。公開リポジトリへの push の前の検査は、結果を残す場所を作っていませんでした。記録にあるのは9月17日と9月20日の2回だけです。9月17日より前は、作業のたびに使い捨てのスクリプトで確かめていて、そのスクリプトは残っていません。
本物の2回は、どちらも公開のあと
1回目(9月17日)は、検査語のファイルを作った日に、公開リポジトリの今の中身へかけた回です。前から公開していたツールの中に、内部の呼び名が19件ありました。検査語のファイルを作る前から、公開されていたものです。
2回目(9月22日)は、note に貼る本文を一括で検査した回です。公開中の記事のリンクの文字に、内部の通し番号の書き方が1件ありました。これも、検査にかける前から公開されていました。
どちらも、検査があったから見つかった、とは言えます。ただ、公開の前に止めたのではありません。8回の中に、公開の前に本物を止めた回はありません。
逃がし方
誤って止めたものを、次から止めないための仕組みです。2026年10月4日時点で、ぼくの内部版にはメールの許可が6つ、行の許可が9行あります。
| 誤って止めたもの | 逃がし方 | 公開版 |
|---|---|---|
| 公開してよいメールアドレス(問い合わせ先・コミットの著者の公開用アドレス) | メールの許可(アドレスを1行ずつ書く) | 入れた |
| わざと残す行(古い書き方・記事の題材として書く語) | 行の許可(ファイル名と行の文字の両方が合う行だけ外す) | 入れた |
| 前から公開していて、すぐには直せない語 | 既知の件数(件数だけ出し、止めない。直したら外す) | 入れた |
| ほかの語の一部に当たる英字の語 | 語の境界つきの正規表現で書く | 検査語の書き方で書ける |
| 読者向けにも使う一般の語 | その語は入れず、内部でだけ使う書き方の形を書く | 検査語の書き方で書ける |
| 差分の前後に写る、前からある行・消した行 | 足した行だけを見る | 入れた(いつもこの動き) |
| 埋め込み画像のデータ | data:image で始まる文字列を外してから見る | 入れた(いつもこの動き) |
| 内部の文書の中の名前 | 内部の文書を置くフォルダだけ、検査語を減らして見る | 入れていない |
公開版で確かめたこと
内部版から、内部の検査語・許可の中身・内部の文書の扱いを外して、公開版を切り出しました。10月4日に、例の検査語(架空の語4つと、メールアドレスの形・ホームフォルダ名の6語)で3回かけました。そのあと、例の検査語のファイルの写しに、公開用のアドレスと例の語の行の許可を足して、4回目をかけました。
| 範囲 | 見た量 | ヒット | 止まったか |
|---|---|---|---|
| 配布先のリポジトリの今の中身 | 35ファイル・4,081行 | 1(GitHub Actions の bot の公開用アドレス) | 止まった |
| このツールを足した差分 | 1コミット・299行 | 11(例の検査語が、このツールの3つのファイル〈README・本体・例のファイル〉に自分で書いた同じ語に当たった9か所・コミットの著者とコミッターの公開用アドレス2) | 止まった |
| 足したあとの今の中身(参考) | 38ファイル・4,370行 | 10(例の検査語が、このツールの3つのファイル〈README・本体・例のファイル〉に自分で書いた同じ語に当たった9か所・上の bot のアドレス1) | 止まった |
| 4回目: 例の検査語のファイルを写して(公開するリポジトリの外に置いて)、メールの許可2つ(公開用のアドレス)と行の許可4つ(このツールのフォルダの中の、例の語の行)を足し、2つ目のコミット(README の直し)を含む差分と今の中身を検査 | 2コミット・307行と、38ファイル・4,370行 | 0 | 止まらなかった(終了コード 0) |
実物2: 1回目の出力(抜粋。表の1行を「/」で区切って写し、ファイルの場所の途中を「…」で略した)
今の中身(35ファイル・4081行)
メールアドレス / 1 / …/x_board_daily.yml:110 (値は伏せる)
検査語 6語(words_example.txt)/ヒット合計 1(既知 なし を除く)
終了コード 1
3回とも止まり、当たったのは全部、出してよいものでした。9か所は、例の検査語が、このツールの3つのファイル(README・本体・例のファイル)に自分で書いた同じ語を見つけた数です。例の検査語のファイルには、メールの許可を架空のアドレス1つしか書いていないので、ぼくの公開用のアドレスにも当たります。逃がし方を書かずに回すと、こうなります。4回目は、ぼくの公開用のアドレスと、GitHub Actions の bot のアドレスの2つをメールの許可に、例として書いた語の行を行の許可に足しただけで、ヒット0になりました。
この公開版は、ぼくの内部版の23語でも検査しました(10月4日)。README と例のファイルに書いた架空のアドレスに2件当たったので、内部版にメールの許可を1つ足しました。上の「止まった8回」は、この回より前の記録です。
配布物と、できないこと
配布先は GitHub の haif-tools。中身は本体(word_scan.py)・検査語のファイルの例(語はすべて架空)・README の3つです。使い方は①例のファイルを写して、自分の出したくない語に書き換える(公開するリポジトリの外に置く)②push の前に走らせる ③当たったら表の実物を見て直し、ヒット合計 0 を確かめてから push する。
README には、AI に公開物を書かせたり push させたりするときに、AI への指示に入れておく1行も書きました。
実物3: README の「AI に守らせる決まりの1行」
公開するリポジトリに push する前に、word_scan.py で push する差分とリポジトリの今の中身(--tree)を検査し、ヒット0件を確かめる。当たったら push せずに直し、もう一度検査する。
できないこと: 一覧に無い語は見つけません。画像の中の文字は見ません。ホームフォルダ名は、実行した PC のものだけを見ます。確かめた環境は macOS だけです。当たった箇所は直さず、push を自動で止める設定も入っていません。詳しくはツールページに書きました。
この記事のツール
- 配布物(GitHub): github.com/mhitori/haif-tools/tools/word-scan
- ツールページ: 出したくない語スキャン
- 9月22日に一括検査をかけたツールの公開版: note転載キット
この記事について
同じところで詰まった、ここが分からなかった、があれば聞かせてください。次の記事の材料にします。ツールを使って詰まった場合は、リポジトリのIssueでも受け付けています。
Xで返信する →