ノートを内容別のフォルダへ整理しても、保存するコードが以前の共通フォルダを既定値にしていれば、次の保存で古い置き場を作り直せます。
自作のAIアシスタントには、案件を指定すれば案件別に、指定しなければ共通の場所へ追記するツールがありました。ノートを内容別カテゴリへ整理したあと、この「省略したら共通へ」という動きを残さないよう、保存先を選ぶ境界を変更しました。
保存先の文字列だけを置き換えない
以前の共通フォルダを、新しい知識フォルダの直下へ置き換えるだけでは、分類できなかったメモが別の一か所に集まります。
今回選んだのは、案件を指定しない保存には既存の内容カテゴリを明示させる方法です。案件もカテゴリもない、カテゴリが許可した一覧にない、案件とカテゴリが両方ある。この3種類では、保存せずにエラーを返します。
実装の分岐を簡略化すると、次の順序です。
案件名とカテゴリ名の前後空白を除く
→ 両方あれば保存せずエラー
→ 案件があれば従来の案件別保存へ
→ 案件がなければ既存カテゴリ一覧と照合
→ 未指定・一覧外なら保存せずエラー
→ 通った保存先だけを解決し、ディレクトリ作成と追記へ
入力の矛盾や不足を確認する位置を、ディレクトリ作成より前に置きました。「正しい場所に保存された」だけでなく、「分類できないときには何も作られない」を確かめられる境界にするためです。
ツールの案内と、書く側の検査をそろえる
モデルへ渡すツール定義にはカテゴリの列挙を追加し、日英の説明も更新しました。呼び出す側から保存関数へ、そのカテゴリを渡す経路も変更しています。
それでも、説明に「カテゴリを選ぶ」と書いただけで完了にはしません。保存関数自身が一覧を検査し、不足や両指定を拒否します。案件とカテゴリを両方渡されたとき、どちらかを暗黙に優先することもしません。
この変更は、分類不能なら必ず利用者へ確認する画面が動作したことを意味しません。保存関数の非保存条件と、モデル向けの案内を整えた範囲です。
非保存と、既存の追記を一緒に確かめる
保存済みの試験記録では、一時フォルダとダミーデータを使って次を確認しています。
| 条件 | 確認した結果 |
|---|---|
| 案件・カテゴリとも未指定 | エラー。保存用のルートディレクトリも作られない |
| 一覧外やパス風のカテゴリ | エラー。保存用のルートディレクトリも作られない |
| 案件とカテゴリの両指定 | エラー。どちらかへ暗黙に保存しない |
| 有効なカテゴリで既存メモへ追記 | 元のファイル名と先頭の原文バイトを保持し、追記が存在する |
| ツール経由でカテゴリを指定 | 選んだ内容カテゴリへ保存される |
| ツール経由で案件を指定 | 従来の案件別保存経路を維持する |
| 日英のツール定義 | カテゴリ入力と契約の整合を確認 |
アシスタント側は、既存試験を含む3ファイルの計57件が成功した記録です。57件すべてを今回追加した、という意味ではありません。main層のTypeScript型検査も成功しています。
関連する一方向ノート生成スクリプトには、別のmock試験が1件あります。実際の生成処理を、一時的なhomeと制限したファイルアクセスで動かし、新しいカテゴリ内の生成先、入口ノートの位置、手書き原文の保持、旧フォルダを作らないことを確認しました。
ソースの適用と、実運用の成功を分ける
確認したのは2026年10月21日JSTの保存済み差分と結果です。実行ソース3件と関連テスト4件を適用し、適用した内容と試験した内容のhashが一致した記録があります。本稿のために試験を再実行してはいません。
実アプリの起動、配布物へのビルド反映、実vaultへの自動保存、実際の同期は、この記録では確認していません。生成スクリプトの既存ファイル整理処理も、今回の変更では作り直していません。実同期前には、移動後に増えた手書きの追記をどう保持するか、別に確認が必要です。
一覧外のカテゴリを拒否する試験は、あらゆるパス操作・symlink・同時書込みへの安全性を証明するものでもありません。
今回の境界は小さなものです。保存先を決められない入力を、便利な既定値で書込みへ進めない。その条件を、案内文だけでなく保存関数と非保存の試験に置きました。
本稿は実装と保存済み検証記録の整理です。実装・検証および本稿の整理・執筆にはAIを使用しています。