TECH NOTE / 006
チャットへ貼ったWindowsパスをCodexが誤読した
アンダースコア入りのWindowsパスを異なる階層として解釈した事例と、ユーザーとの実行前照合で止めるための確認手順です。
/ Hræsa
観測記録01 / OBSERVATION
実行前に、パスの食い違いが見つかった
PowerShellツールを作っている途中、チャットへ貼り付けたWindowsパスが意図と異なる形で解釈されました。実フォルダへ実行する前に判明したため、ファイルの作成・上書き・変更・削除は発生していません。
掲載するパスはすべて説明用の架空例です。 実在する環境のパスや観測ログは掲載していません。
D:\knowledge_base\Art_and_Design\100_images\illustrations
D:\knowledge_base\Art_and_Design\002_md-files\referencesD:\knowledge\_base\Art\_and\_Design\100\_images\illustrations
D:\knowledge\_base\Art\_and\_Design\002\_md-files\references02 / WHAT CHANGED
アンダースコアの直前に、区切りのような文字が見えた
観測できたのは、アンダースコアの直前へ規則的にバックスラッシュが加わったように見えたことです。\_はMarkdownのエスケープ表現と整合しますが、Windowsではバックスラッシュがフォルダ区切りでもあります。
そのためknowledge_baseをknowledgeと_baseに分けるような誤読が起き、存在しない細切れの階層をスクリプトの既定値へ一時的に入れました。
03 / UNKNOWN CAUSE
どの処理層で変化したかは、特定できていない
元入力、チャットの表示、内部での直列化、モデルへ渡る表現など、文字列が通る処理層は複数考えられます。今回の記録だけでは、どこでバックスラッシュが加わったのかは分かりません。
したがって、「Codexでは必ずMarkdownによってWindowsパスが変換される」とは結論づけません。確認できたのは、今回モデル側からエスケープされたような表記に見え、それを実パスとして解釈したことまでです。
04 / LIMITS
Codexだけでは、正誤を決められない場合がある
Codexに見えていたのは変換後の可能性がある文字列でした。_baseなどで始まる階層が未知の環境に実在しないとは、文字列だけでは断定できません。正しい元入力を知るユーザーとの照合で初めて、食い違いを確定できました。
対象は安全上Codexが直接閲覧しない領域であり、無断の存在確認も代替手段にできませんでした。後から「見れば分かったはず」と注意力だけの問題にするのではなく、解釈の確認を往復させる必要があります。
05 / PRE-EXECUTION CHECK
構文と対象パスを、別々に確認する
誤ったパスはスクリプトと説明文へ一時的に入りましたが、対象フォルダでは実行していません。構文が正しいことと、対象パスが正しいことは別です。コピー、移動、削除のような操作では、実行前に対象と操作内容の両方を確認します。
- 01チャット上の \_ を、ただちにフォルダ区切りと断定しない。
- 02複数のアンダースコアが一律に \_ となっていれば、Markdownエスケープの可能性を疑う。
- 03パスをコードや設定へ固定する前に、解釈した文字列をコードブロックでユーザーへ提示する。
- 04閲覧を許可されていない場所では、無断の存在確認や一覧取得を確認手段にしない。
- 05パスを使う処理を実行する前に、対象と操作内容を分けて確認する。
コードブロックで解釈結果を渡す方法は補助策です。表示形式だけで内部変換を完全に防ぐ保証ではなく、元の文字列を知るユーザーとの照合を残すことが目的です。
06 / SUMMARY
途中表現も、実行前の確認対象にする
- 01アンダースコアの直前にあるバックスラッシュが、本当にフォルダ区切りなのか疑う。
- 02パスの見た目だけで正誤を断定せず、解釈した文字列をユーザーへ見せる。
- 03存在確認できないパスは、推測で確定しない。
- 04実行前に、正規化したパスと予定している操作を明示する。
パス、URL、正規表現、コード断片のように記号へ意味がある入力では、途中表現の違いが事故につながりやすくなります。自動化を増やすほど、実行処理だけでなく、その直前にある文字列の受け渡しも確認対象にします。