改訂版プラン(追記) — GitBucket の Issue は本文を編集できないため、最新の計画をここに追記します。
| 項目 | 内容 |
|---|---|
| 有効化 | 設定 UI のトグル「標準フォルダを有効にする」を ON にして保存 |
| 既定の配置 | DB と同じディレクトリ = app_data_dir 直下の 汎用ルール / 汎用スキル / 汎用ツール |
| パス | ユーザーが変更可能。監視パス一覧で 3 件の path を編集できる(カテゴリ名で標準フォルダと識別)。 |
| トグル ON 時 | 3 カテゴリがまだ無ければ既定パスで追加しフォルダを自動作成。既に同じカテゴリの行があればその path を維持(ユーザーが変更したパスを尊重)。 |
| トグル OFF 時 | カテゴリが 汎用ルール / 汎用スキル / 汎用ツール のエントリを monitor_paths から削除(フォルダは削除しない)。 |
| 説明 | 最初から標準フォルダには既定の説明(Markdown)を入れておく。#13 の説明フィールドを使い、追加時のみ設定。既にユーザーが説明を編集している行は上書きしない。 |
パスを変更したときの扱い
初回判定・アップデート時のマイグレーションは不要。ユーザーがトグルで明示的に ON にするまで何も作成しない。
settings.json に standard_folders_enabled(boolean, 既定 false)を追加する。標準フォルダは カテゴリ名(汎用ルール / 汎用スキル / 汎用ツール)で識別する。パスは monitor_paths の行として保存され、ユーザーが一覧で編集できる。
standard_folders_enabled: true が含まれる場合
monitor_paths のうち、上記 3 カテゴリに該当するエントリを確認する。app_data_dir.join("汎用ルール") 等)で { path, category, description? } を追加し、既定の説明(下記)を設定。その path を create_dir_all。既にエントリがあれば ユーザーが入力した path・説明をそのまま使う(上書きしない)。monitor_paths と standard_folders_enabled: true を保存。標準フォルダの既定説明(Markdown・案)
汎用ツール: 「MCP ツール定義やスクリプト(ソースコード)を格納します。監視対象の拡張子は設定(watch_extensions)で指定し、MCP からも変更可能にします。」
standard_folders_enabled: false の場合
monitor_paths から、category が 汎用ルール / 汎用スキル / 汎用ツール のエントリを除外した配列にする(path でなくカテゴリで判定するので、ユーザーがパスを変更していても正しく外せる)。standard_folders_enabled: false とともに保存。フォルダは削除しない。パス変更時の引っ越し: 同一カテゴリで path が変更された場合(直前の設定と比較)、「中身を移動する」が有効なら旧パス配下のファイルを新パスへ移動する。オプションで「引っ越ししない」を選べる場合は、この移動をスキップする。
standard_folders_enabled をペイロードに含める。既存の「監視パス」リストで、標準フォルダ 3 件の path をユーザーが編集できる。app_data_dir を OS のファイラで開く。get_app_settings に standard_folders_enabled を追加。設定保存時の 3 フォルダ作成・monitor_paths 更新。任意で open_app_data_folder コマンド。settings_get に standard_folders_enabled を含める。settings_post で standard_folders_enabled に応じた monitor_paths 更新。standard_folders_enabled を含める。standard_folders_move_on_change などを settings に持つか。既定は true。/settings で watch_extensions を読み書きする。現状の settings_get_handler / settings_post_handler はすでに扱っているので MCP から変更可能。仕様・ドキュメントで明示する。
標準監視フォルダの初回自動作成
前提・先行案件
仕様
app_data_dir直下汎用ルール/汎用スキル/汎用ツール実装方針
1. 初回判定
settings.jsonにstandard_folders_created(boolean)を追加する。standard_folders_created: trueを書き込み、以降は実行しない。2. 自動作成処理(Rust)
実行箇所:
src/backend/src/lib.rsのsetup内。create_dir_all(&app_data_dir)の直後、DB 初期化の前に実施する。settings.jsonを読む(無ければ{}扱い)。standard_folders_created === trueなら何もしない。app_data_dir.join("汎用ルール")などで 3 ディレクトリをcreate_dir_all。monitor_paths用の{ path, category }にし、既存のmonitor_pathsとマージ(同じ path が既にあれば重複追加しない)。monitor_pathsとstandard_folders_created: trueを、既存のmin_score/limit/run_on_login/watch_extensionsを保った形でsettings.jsonに書き込む。パスは OS ごとの形式でよい。既存の monitor_paths の形式(
[{ path, category }])に合わせる。3. 設定の読み書きでの扱い
get_app_settings(lib.rs)および MCP のsettings_getで、standard_folders_createdをそのまま返す(フロントで表示しなくてよい)。settings_postで設定を上書きする際、既存のstandard_folders_createdを維持する。standard_folders_createdを含める。インポートでtrueが入っていれば、その環境では自動作成は実行されない。4. データフォルダを開く(任意)
app_data_dirを OS のファイラ(Windows: エクスプローラ、macOS: Finder、Linux: xdg-open)で開く。open_app_data_folderのようなコマンドを追加し、tauri-plugin-shell のopenまたはCommandでパスを渡して起動する。変更ファイル一覧
setup内で初回のみ 3 フォルダ作成+monitor_paths更新+standard_folders_created書き込み。任意でopen_app_data_folderコマンド追加。settings_getのマージ対象にstandard_folders_createdを含める。settings_postで保存時に既存のstandard_folders_createdを維持する。standard_folders_createdを消さないようにペイロードを組み立てる。任意で「データフォルダを開く」ボタン。動作フロー(イメージ)
注意
settings.jsonがありmonitor_pathsがある」状態。その場合でもstandard_folders_createdが無ければ作成処理は走る。既存のmonitor_pathsとマージするので、既存の監視はそのまま残る。PathBuf/joinで問題ないかだけ確認する。