# step07 ヒント：自動整理（1日1回）

## 手順の要点
1. 整理を実行するシェルスクリプトを `~/.claude/hooks/organize-vault-daily.sh` に作る
2. スクリプトの中では Vault へ `cd` してから `claude -p "…"` を非対話で呼ぶ
3. `chmod +x` で実行できる状態にし、まず手で1回動かして確かめる
4. `launchd`（`~/Library/LaunchAgents/com.pmvault.organize-daily.plist`）に登録して1日1回動かす

## 参考プロンプト
~~~
Vaultを1日1回、自動で軽く整理するためのシェルスクリプトを作ってください。
置き場所は ~/.claude/hooks/organize-vault-daily.sh です。中身の要件は次のとおりです。

1. このVaultのフォルダ（絶対パス）に cd する。
2. Claude Code を非対話モード（claude -p）で起動し、次の内容を指示する：
   「直下に散らかった新しいノートだけを、organize-vault の構造に沿って安全なフォルダへ移動する。
    既存のフォルダ構造は触らない。ファイルの削除は絶対にしない。
    これは自動実行なので、確認は求めず最後まで実行する。」
3. 人が見ていなくても、途中で止まらずに最後まで動くようにする。
4. 実行した日時と結果を、このVaultの 40_運用/organize.log に追記する。

作成したら chmod +x で実行権限を付け、中身を見せて、各行が何をしているか説明してください。
~~~

## 仕組み
`launchd` は macOS が決まった時刻にプログラムを動かすしくみです。`StartCalendarInterval` で時刻を指定し、`launchctl load` で登録します。スクリプトから呼ぶ `claude -p` は、画面を開かずに指示を1回だけ実行する形（非対話モード）です。人が見ていないので、途中で確認待ちになると止まります。そのため「確認を求めず最後まで実行する」ことを指示に含めます。

## 比較観点
- 「削除しない」「既存構造を触らない」が、スクリプト内の指示文にはっきり書かれているか
- Vault のパスが絶対パスで書かれているか（相対パスだと実行時のカレントで壊れる）
- 実行結果が `40_運用/organize.log` に追記され、あとから履歴を追えるか

## よくある勘違い
- いきなり本番で全部動かす → 最初は「移動せずに提案だけ」から始め、数日ログを見てから移動させる
- 確認待ちの設定のまま登録する → 自動実行では誰も承認できないので、途中で止まったまま終わる
- 時刻にMacがスリープしていると実行を逃す → 「起動を逃したら次回起動時に実行する設定も足して」と頼む

## 発展課題の参考解

### 整理の結果を要約させる
参考プロンプト
~~~
organize-vault-daily.sh の最後に、処理を1つ足してください。
その日の整理で何がどこへ移ったかを 40_運用/organize.log から読み取り、
3行の要約にして 40_運用/hot.md の先頭に日付つきで追記します。
hot.md の既存の内容は消さず、上に積む形にしてください。
~~~
期待される成果の形
- 翌朝 `hot.md` を開くだけで、前日に何が整理されたかが分かる
- 既存の hot.md の内容が消えていない（追記であって上書きではない）
- 要約が「どのファイルがどこへ移ったか」を具体的に含んでいる
