見出し画像

CodexでAI文章チェックツールを17分40秒で試作し、X投稿3本で使ってみた記録

AIで文章を作れば、公開前の確認まで自動化できるのか。

AIで作った文章のどこまでを機械に任せ、どこを自分で確認すべきか迷う人に向けた検証記録だ。

この記事では、X投稿向けツールの試作条件、実使用で起きた失敗、改修を保留した理由までを扱う。
配布方法や販売可能性は、未確認のため扱わない。

僕は、文章の合否を機械に決めさせるのではなく、人間が確認する箇所を探す道具を作ることにした。

Codexへ指示し、HTML、CSS、JavaScriptの3ファイルを実装した。
実装と静的検証にかかった時間は17分40秒だった。

その後、実際のX投稿案3本で使った。
1本はローカルの確認を通ったのに、Xの投稿画面で文字数NGになった。

一方、3本ともツール上の警告は0件だった。
作れたことは確認できたが、警告機能が役立つかは判断できなかった。

文章の合否を決めない

今回作ったのは、AI文章の公開前チェックツールである。
X投稿案を入力欄へ貼り付けると、次の3項目を表示する。

  • 入力文章の単純文字数

  • 40文字を超えた文や行

  • 登録した注意語句の候補

登録語句は「誰でも」「必ず」「放置」「すぐ稼げる」など10件にした。
語句が見つかっても、誇張だとは断定しない。

たとえば「必ずしも成功するとは限りません」には「必ず」が含まれる。
文字列だけを見れば検出対象だが、文章全体は成功を保証していない。

そこで画面には合否ではなく「要確認」と表示する。
根拠の有無、引用や否定の文脈、公開可否は人間が判断する設計にした。

作る前に決めた範囲

機能を増やす前に、v1で扱う範囲を決めた。

  • X投稿案を1件ずつ貼り付けて確認する

  • 入力文章を外部へ送信せず、端末内で処理する

  • 入力文章をブラウザ終了後まで保存しない

  • AIによる自動書き換えを付けない

  • Xの投稿画面で最終確認する案内を残す

対象者は、まず僕自身に限定した。
他人への配布や販売は、完成後に判断することにした。

作業前の完成条件には、空欄でもエラーにならないことや、自動チェックだけで公開可否を断定しないことも含めた。
外部通信を行う処理がないことはコードで確認したが、通信を切った状態での起動試験は行っていないため、オフライン動作は未確認のまま残っている。

17分40秒で確認できたこと

作業は2026年7月15日18時04分20秒に始め、18時22分に実装と静的検証を終えた。
この17分40秒には、実際のブラウザで画面を開く確認は含まれていない。

Codexへの実装指示は1回のみで、その後の修正は不要だった。
この1回の指示で、HTML、CSS、JavaScriptの3ファイルが作られた。

判定ロジックと画面の配線は、次の8件のテストで確認した。

  • 空欄でエラーが出ず、文字数と警告件数が0になる

  • 短い文章で文字数を表示し、注意候補を出さない

  • 40文字では警告せず、41文字で長文候補を出す

  • 登録語句を2件含む文で、両方を候補として出す

  • 短い2文に分割し、長文候補を出さない

  • 否定文に含まれる「必ず」を候補として出す

  • 記号と改行で文を分割してもエラーにならない

  • URLと絵文字を含む文で文字数を表示し、Xでの最終確認案内を出す

途中で、Codexの内蔵ブラウザからローカルファイルを開けない制約が出た。
回避操作や依存関係の追加は行わず、Codex側ではロジックと静的な接続を検証した。

実画面は僕がローカルファイルを開いて確認した。
空欄、40文字と41文字の境界、登録語句、URL、絵文字、スマートフォン幅相当の表示を試した。

ここまでで確認できたのは、決めた仕様どおりに動くことまでである。
実際の投稿確認で役立つかは、まだ別の問題として残った。

X投稿3本で起きたこと

実使用では、公開予定のX投稿案を1件ずつ貼り付けた。

1本目はツール上の警告が0件だった。
しかし、Xの投稿画面へ貼り付けると文字数NGになった。
文章を1回短縮し、Xで再確認してから投稿した。

2本目と3本目も警告は0件だった。
この2本はXの投稿画面でも、そのまま投稿できた。

3本を使った結果は次のとおりである。

  • ツール上の警告:3本とも0件

  • Xでの文字数NG:1本

  • 文字数対応による修正:1回

  • 各投稿の確認時間:未確認

警告0件だけを見れば、問題がなかったようにも見える。
ところが、1本はXで止まった。

単純文字数とXの判定

このツールは、JavaScriptでUnicodeコードポイントを数えている。
URLも入力された文字列の長さのまま数える。

Xは単純な文字列長ではなく、文字種に応じた加重方式を使う。
公式資料では、日本語を含むCJK文字や絵文字の重み、URLを23文字として扱う規則が示されている。

正確な判定には、Xが案内する`twitter-text`相当の処理が必要になる。
今回は外部依存を増やさず、Xの投稿画面で最終確認する設計を残した。

1本目の失敗は、未実装の範囲として残した差が実際に現れた例である。
ツールの表示が間違っていたというより、表示している文字数とXが判定する文字数が別だった。

警告0件を成功にしなかった理由

サンプルテストでは、41文字の文と登録語句を検出できた。
これは、実装した判定ルールが想定どおり動いたことを示している。

しかし、実投稿3本には警告対象がなかった。
この結果からは、40文字という基準や10件の登録語句が、実際の投稿確認に役立つかを評価できない。

確認時間も記録できなかった。
そのため、作業時間を短縮できたかも未評価である。

警告が出なかったことと、警告機能が有用だったことは同じではない。
今回は、改修する根拠が足りないと判断した。

Codexが作り、人間が決めた部分

Codexは、確定済みの仕様から3ファイルを実装した。
判定ロジックのテスト、画面要素の接続、安全条件の静的確認も行った。

一方、次の内容は僕が決めた。

  • 誰が、どの場面で使うか

  • 40文字という長文基準

  • 登録する注意語句10件

  • 合否ではなく「要確認」と表示する方針

  • 保存、自動修正、外部送信を付けない範囲

  • Xへ公開してよい文章かどうか

Codexは決めた仕様を形にできた。
その仕様が適切か、文章に根拠があるか、他人へ渡せるかは人間側に残った。

今回の記録から整理した7工程

最初から「7工程」という型で進めたわけではない。
作業記録をあとから並べ直すと、今回の試作は次の流れになっていた。

  1. 作る成果物を決める
    AI文章の公開前チェックツールを作ると決めた。

  2. 完成条件を決める
    入力、文字数、長文、登録語句、安全条件、人間の最終判断を定めた。

  3. 作業時間を記録する
    実装と静的検証を17分40秒と記録した。

  4. 小さく試作する
    外部依存を追加せず、3ファイルのローカルWebツールに絞った。

  5. 想定ケースで確認する
    空欄、境界値、注意語句、URL、絵文字など8件を試した。

  6. 実際の用途で使う
    X投稿案3本を確認し、1本でXの文字数NGを経験した。

  7. 続行、改善、撤退を判断する
    v1は続けるが、根拠が足りないためコード改修は保留した。

この7工程は、今回の1例から整理したものだ。
別の成果物でも同じ結果になることまでは確認していない。

まだ判断できないこと

v1は僕自身の実投稿3本で使えた。
それでも、次の項目は未確認である。

  • 警告が出る実投稿で役立つか

  • 確認時間や修正時間が減るか

  • 他人が説明なしで使えるか

  • 配布や販売ができる水準か

現時点ではv1をそのまま使い続ける。
警告が出る実例が集まった段階で、40文字の基準と登録語句を再評価する。

17分40秒で確認できたのは、範囲を絞れば小さなツールを実装できることだった。
そのツールが役立つかどうかは、実際に使った記録が増えるまで決められない。

このツール自体は公開していない。
同じ課題があるなら、公開予定の文章1本で同じ確認手順を手作業で試してほしい。
単純文字数、長文、注意語句を確認し、Xへ投稿する場合は投稿画面で最終判定する。
警告の有無と修正内容を1件記録すれば、同じ仕組みを作るか見送るかの判断材料になる。

いいなと思ったら応援しよう!