make-diaryコマンドを月別ディレクトリ運用に移行 - 3ヶ月分のコンテンツ整理
/make-diary コマンドの保存先を月別ディレクトリに変更し、散在していた3ヶ月分の日記コンテンツを一気に整理した。単純な「移動」作業のはずが、dev serverがファイルを掴む、2月6日だけマージが必要になる、プラグインが動かないなど、次々と壁にぶつかった。
make-diaryコマンドの運用変更
Before: content直下に日付ディレクトリが並ぶ
content/
├── 2026-01-04/
│ └── diary-2026-01-04.md
├── 2026-01-05/
├── ...
├── 2026-03-19/
│ └── diary-2026-03-19.md
└── (80近いディレクトリ)
ls を実行すると、1月から3月までの日付ディレクトリが縦にずらりと並ぶ。目的の日付を探すには、延々とスクロールして目視で確認する必要があった。
After: 月別ディレクトリに格納する運用へ
content/
├── 2026-01/
│ ├── 2026-01-04/
│ ├── 2026-01-05/
│ └── ...
├── 2026-02/
└── 2026-03/
└── 2026-03-19/
└── diary-2026-03-19.md
月でグループ化すれば、まず月を選んで、その中から日付を探せる。認知負荷が下がり、ディレクトリ構造も見通しやすくなる。
3ヶ月分のコンテンツ整理プロセス
1月分(28ディレクトリ): 素直にコピー&削除
1月分は 2026-01-04 から 2026-01-31 まで28ディレクトリ。content/2026-01/ を作成し、全ディレクトリをコピー後に元を削除した。重複やマージは発生せず、ストレートに完了。
2月分: 2026-02-06のマージ問題
2月も同じ調子で進めていたら、2026-02-06 で手が止まった。
content/2026-02/2026-02-06/ (月フォルダ側)
content/2026-02-06/ (直下側)
両方にディレクトリが存在していた。中身を確認すると、それぞれ固有のファイルを持っている。どちらか一方を削除すると、コンテンツが欠損してしまう。
マージ戦略: cp -n で既存ファイルを守る
月フォルダ側を基準にして、直下側の固有ファイルだけを追加する方針を取った。
# -n(no-clobber)で既存ファイルを上書きしない
cp -n content/2026-02-06/* content/2026-02/2026-02-06/
コピー後、diff -r で両ディレクトリの差分を確認。問題ないことを確かめてから、直下の 2026-02-06/ を削除した。
Windows特有の罠: dev serverがファイルを掴む
ExplorerでドラッグANDドロップしようとしたら、「別のプロセスが使用中」エラーが頻発した。dev server(Nuxt)がファイルをウォッチしており、ロックを握っていた可能性が高い。
教訓: Windowsで大量のファイル操作をするときは、dev serverを停止してから実行する。
3月分: 経験を活かしてスムーズに
2月の教訓を活かし、最初からdev serverを停止。重複ディレクトリもなく、コピーと削除がスムーズに進んだ。
make-diaryスキルの保存先パス更新
統合作業を終えたあと、/make-diary コマンド自体も月別ディレクトリに対応させた。
// Before
const savePath = `content/${date}/diary-${date}.md`
// After
const savePath = `content/${yearMonth}/${date}/diary-${date}.md`
今後は最初から月ディレクトリに格納される。後から移動する手間がなくなった。
副産物: feature-devプラグインの修正
プラグインが認識されない問題
整理作業の合間に claude plugin install feature-dev を実行したが、/feature-dev コマンドが使えなかった。
調査すると、プラグインが commands/ ディレクトリに配置されていた。しかし Claude Code v2.1.78 は skills/ ディレクトリを読む。旧形式のプラグインは認識対象外だった。
# プラグイン(旧形式)
~/.claude/plugins/feature-dev/commands/feature-dev.md
# Claude Codeが認識する形式
~/.claude/skills/feature-dev.md
手動配置で解決
プラグインのMarkdownファイルを ~/.claude/skills/ に手動でコピー。さらに、Markdown内で参照しているツール名も現行バージョンに合わせて修正した。
自動インストールに頼らず、中身を理解して手動配置するほうが確実だった。
試行錯誤の軌跡
| 問題 | 試したこと | 結果 | 学び |
|---|---|---|---|
| ディレクトリ数が多すぎて見づらい | 月別フォルダに統合 | 成功 | 階層化で認知負荷を下げる |
| 2026-02-06が両方に存在 | 片方を削除 | 失敗 | 固有ファイルを確認してマージが必要 |
| Explorerコピーでエラー | dev server実行中にコピー | 失敗 | Windowsではdev serverを止めてから操作 |
| cp -r で上書きの危険 | cp -n でno-clobber | 成功 | 既存ファイルを守りつつマージ |
| プラグインが動かない | 再インストール | 失敗 | ディレクトリ構造の変更を疑う |
今回の学び
ディレクトリ整理は「全部同じ」と思い込まない。 2月6日のように、同名ディレクトリが複数箇所に存在するケースがある。機械的にコピーせず、中身を確認してマージ戦略を決める。
Windowsでのファイル操作はdev serverを止める。 ファイルウォッチがロックを握ると、Explorerは黙って失敗する。エラーダイアログすら出ないことがある。
プラグインが動かないときはディレクトリ構造を疑う。 Claude Codeのバージョンアップで commands/ → skills/ に変わっていた。READMEを信じず、実際のコードで確認する。
make-diaryのような生成系コマンドは、最初から正しい場所に作る。 後から移動するのは二度手間。最初の設計で月別ディレクトリを考慮しておけば、この整理作業自体が不要だった。
3ヶ月分のコンテンツ整理を通じて、ディレクトリ設計の重要性を再認識した。次の3ヶ月は、最初から整理された状態を保てる。