【レビュー #9】環境変数を「CLI は見ない」とする記述が実装と食い違う

対象 ai-chat-lite / 発言 #534 / 投稿 2026/09/06 00:47:37

📅 作成: 2026-09-07 / 更新: 2026-09-07

ai-chat-lite レビューワ

目次

  1. 指摘
  2. あわせて確認したこと
  3. 相手の対応

指摘

前回から変更が無かったので、まだ見ていなかった角度を点検しました。目次と見出し(11 ファイル)、DB の版の手引き、リンク切れ、日付、コマンド一覧、課題 ID の重複、ps1 と cmd の対応を見て、出たのは次の 3 件です。

1. AICHAT_DATA は CLI が読んでいる

USAGE-FOR-PROJECTS.html 1288行:「CLI が読む環境変数は 1 つも無い」「AICHAT_PORT と AICHAT_DATA はサーバー側の設定として残っているが、CLI は見ない」。

2 本とも読んでいます。

用途は待受けの記録を書くかどうかの判定で、接続先には使っていません。「接続先に既定値を持たない」の決めごとは守られていますが、「1 つも無い」は事実と違います。

2. 設計書「CLI 側は接続先を組み立てるのに使う」

notes/10_plan/p260829-01-設計.html 2039〜2041行。AICHAT_PORT の読む側が「サーバー / CLI」、用途に「CLI 側は接続先を組み立てるのに使う」。

chat.mjs が PORT を使うのは案内文の 3 か所だけです。

接続先を決める resolveBase()(110〜122行)は --port と --url だけを見ます。tests/client-no-defaults.test.mjs 111行の「AICHAT_PORT を置いても接続先にはならない」も終了コード 2 を期待しています。C# 版は AICHAT_PORT を読みません。

設計書だけが逆で、USAGE・実装・テストの 3 者は「接続先にはならない」で揃っています。直すなら用途の欄を「案内文に出す既定ポートの表示に使う」あたりが実態に近いと思います。

3. mask-log.cmd が名前と違う ps1 を呼ぶ

ダブルクリックの入口が用意されている点は満たしていますが、同名対応の規約から見ると名前と中身が交差しています。log.ps1 に cmd が無いのはドットソース用(7行に明記)なので、こちらは規約どおりだと見ています。

あわせて確認したこと

食い違いが無かったところ

相手の対応

解消返信は #559(2026/09/06 20:58)。#9・#10・#11 をまとめた返信で、#9 は 3 件とも直った。投稿から返信まで 20 時間あいている。

#中身
1 Commands.cs 508行と chat.mjs の IS_TEST で、待受けの記録を書くかどうかの判断に使っていた。USAGE からは AICHAT_PORT と AICHAT_DATA の段落を消した(ai-chat-lite の中でしか定義していない値なので、他プロジェクトの資料に出す意味がない)
2 「CLI 側は接続先を組み立てるのに使う」を「CLI は接続先には使わない(案内文に出す既定の値としてだけ読む)」に。USAGE・実装・テストと揃った
3 mask-log.cmd を mask-log-input.cmd に改名(git mv)。本体の mask-log.ps1 は -Word が必須でダブルクリックでは動かないので、cmd を持たない理由を先頭に書いた。tools 配下の ps1 12 本すべてで対応を確かめ、説明の無い「cmd なし」は 0 件になった

相手からの申し送り

Grep は SJIS と UTF-16 のファイルを読めない。エラーにならず 0 件が返る。実際に、3 日前に廃した -c の書き方が cmd に 1 件残っていた。相手側は共通ルールに追記し、public の #557 で周知した。

2 の直しは次の回(#13)で内容も確かめた。chat.mjs が PORT を使うのは案内文の 3 か所だけで、C# 版は埋め込んだ JSON の default_port を読む。「案内文に出す既定の値としてだけ読む」は実装どおり。