[{"data":1,"prerenderedAt":300},["ShallowReactive",2],{"content-/skill-audit-and-command-diet":3,"all-pages-for-dir":298,"og-image-/skill-audit-and-command-diet":299},{"id":4,"title":5,"body":6,"category":281,"description":282,"extension":283,"meta":284,"navigation":253,"ogImage":285,"path":286,"project_name":287,"published":288,"publishedAt":289,"seo":290,"stem":291,"tags":292,"todo":285,"unpublished":288,"updatedAt":285,"__hash__":297},"pages/2026-07/2026-07-02/skill-audit-and-command-diet.md","Claude Codeスキル約100ファイルを監査官の姿勢で棚卸しし、816行の/make-diaryコマンドを356行に分割した",{"type":7,"value":8,"toc":271},"minimark",[9,14,18,23,26,37,40,43,78,85,88,95,102,106,109,112,123,126,129,133,136,151,154,157,180,183,189,192,195,201,204,207,239,242],[10,11,13],"h1",{"id":12},"claude-codeスキルの棚卸し監査と-make-diary-コマンドの分割","Claude Codeスキルの棚卸し監査と /make-diary コマンドの分割",[15,16,17],"p",{},"Claude Codeに溜め込んだスキルとコマンドが、気づけば約100ファイル（自前73＋プラグイン由来約30）まで積み上がっていた。半年前に書いたdescriptionは古いモデル名を指し、似た名前のスキルが同じ言葉で発火を奪い合っている。今日はこれを全部机に並べさせて、1件ずつ判定を下させることにした。",[19,20,22],"h2",{"id":21},"監査官の姿勢で棚卸しさせる","「監査官」の姿勢で棚卸しさせる",[15,24,25],{},"依頼の仕方をひとつだけ工夫した。「整理して」ではなく、こう指示した。",[27,28,33],"pre",{"className":29,"code":31,"language":32},[30],"language-text","Claudeに溜め込んだSkillを棚卸しし、「どれを・どうすべきか」を判定する。\n甘く見ない「監査官」の姿勢で、問題を遠慮なく洗い出すこと。\n","text",[34,35,31],"code",{"__ignoreMap":36},"",[15,38,39],{},"「監査官」という役割を与えたのは、普通に頼むと「概ね良好です」で流される予感があったからだ。個人スキル29・プロジェクトスキル10・個人コマンド14・プロジェクトコマンド20・プラグイン由来約30の全ファイルを実物で読ませ、参照パスの実在まで検証させた。サブエージェントの報告を待つ間に、疑わしい衝突は本体側でも直接検証させる二段構えで進んだ。",[15,41,42],{},"結果、深刻な問題が7件出てきた。",[44,45,46,54,60,66,72],"ul",{},[47,48,49,53],"li",{},[50,51,52],"strong",{},"壊れている",": 1件。SKILL.md自体が存在せず、機能していないスキルがあった",[47,55,56,59],{},[50,57,58],{},"二重定義",": 2件。個人コマンドとプラグインで実質同一の定義が両方有効になっていた",[47,61,62,65],{},[50,63,64],{},"陳腐化",": 4件。存在しないスキル名への参照、旧モデル名（GPT-5.2表記）、現運用と矛盾する「git push=Auto deploy」の記述など",[47,67,68,71],{},[50,69,70],{},"トリガー衝突",": 3組。「まとめて」「要約して」で summarize-meeting と summarization-technique が奪い合う、図解指示で drawio と svg-diagram が競合する、など",[47,73,74,77],{},[50,75,76],{},"肥大化",": /make-diary（816行）を筆頭に数件",[15,79,80,81,84],{},"全スキルに発火精度の採点（10点満点）を付けさせたのも効いた。7点未満には書き換え案がセットで付く。結果は ",[34,82,83],{},"memo/2026-07-02/skill-audit.md"," に保存させた。",[19,86,87],{"id":87},"修正計画を別ファイルに落とす",[15,89,90,91,94],{},"監査結果を見て、修正計画を別に作ってもらうことにした。最初はHTMLに落とすか迷ったが、監査memoがすでにマークダウンで根拠・採点・書き換え案まで揃っていたので、マークダウンのまま進めることにした。監査memoは「根拠置き場」としてそのまま残し、実行用の修正計画を ",[34,92,93],{},"skill-audit-fix-plan.md"," としてチェックボックス管理で切り出す構成だ。",[15,96,97,98,101],{},"計画の方針は非破壊優先。削除はすべて ",[34,99,100],{},"~/.claude/backup/"," への移動で行い、いつでも復元できるようにした。計画はCodexにもレビューさせ、致命的指摘3件のうち1件（二重定義の根本原因であるプラグインの処遇を先に決めるべき）を Phase 0 として計画に足した。",[19,103,105],{"id":104},"phase-05-1-を順次実行","Phase 0〜5-1 を順次実行",[15,107,108],{},"計画に沿って修正を流した。プラグイン無効化、壊れ・二重定義の3件退避、description書き換え7件、プロジェクトスキル2件の作り直し。descriptionの書き換えは監査memoの案をそのまま使えたので、判断で止まる場面がほとんどなかった。",[15,110,111],{},"途中で拾いものが2つあった。",[15,113,114,115,118,119,122],{},"ひとつは",[50,116,117],{},"監査エージェントの誤報告","。「参照先ファイルが欠落している」と報告されたissueファイルが、確認したら ",[34,120,121],{},".claude/issues/"," に実在していた。報告を鵜呑みにして消していたら実在ファイルへの参照を壊すところだった。修正実行の前に参照先の実在を自分の目（＝メインセッションのツール実行）で確かめる工程を挟んでいたのが効いた。",[15,124,125],{},"もうひとつは編集の空振り。372行のコマンドを分割する際、Editの置換対象文字列が一致せず止まった。該当箇所を読み直させて正確な文字列を取得してから再実行、という素朴なリカバリで通過した。",[15,127,128],{},"ここまでで残るは大物の /make-diary 分割だけ。毎朝のパイプラインを壊すリスクがあるため、計画どおり別セッションに回した。",[19,130,132],{"id":131},"make-diary-は動いているのに直す価値があるか","/make-diary は「動いているのに直す」価値があるか",[15,134,135],{},"816行の /make-diary について、正直「今動いているんだから、そのままでもいいかな」と思っていた。そこで修正内容を説明させたら、納得のいく答えが返ってきた。",[15,137,138,139,142,143,146,147,150],{},"816行の大部分は",[50,140,141],{},"チェーン先コマンドの説明の写し","だった。Step 9 は ",[34,144,145],{},"/check-earnings"," を呼ぶだけなのに、check-earnings.md 本体の手順をほぼ丸ごと再掲している。台湾売上・韓国輸出・ポートフォリオ更新のステップも同じ構造で、コミット手順も ",[34,148,149],{},"/commit"," と重複していた。つまり本体を直すたびに写しが古くなる構造そのものが陳腐化の温床だった。動作は一切変えず書き方だけ痩せさせるリファクタだと分かったので、GOを出した。引き継ぎ用のプロンプトを1行もらい、次のセッションにそのまま貼った。",[19,152,153],{"id":153},"分割リファクタの実行",[15,155,156],{},"別セッションでの作業は次の順で進んだ。",[158,159,160,167,170,177],"ol",{},[47,161,162,163,166],{},"旧版を ",[34,164,165],{},".claude/backup/make-diary-2026-07-02.md"," にバックアップ",[47,168,169],{},"チェーン先の check-earnings.md / update-ticker-quarter.md / commit.md を読ませて重複箇所を特定",[47,171,172,173,176],{},"固有テンプレ・詳細手順を ",[34,174,175],{},".claude/references/make-diary/"," に3本切り出し",[47,178,179],{},"本体をチェーン先参照方式に書き換え",[15,181,182],{},"新設した参照ファイルは3本。",[27,184,187],{"className":185,"code":186,"language":32},[30],".claude/references/make-diary/\n├── subagent-prompt.md        # 記事生成サブエージェントへの指示文\n├── diary-template.md         # 統合日記のテンプレート\n└── beat-monitoring-chain.md  # 決算チェーン（Step 9以降）の詳細手順\n",[34,188,186],{"__ignoreMap":36},[15,190,191],{},"結果、816行 → 356行。半分以下になった。",[15,193,194],{},"検証は二重にかけた。見出し構成と重要トークン58個の機械チェックに加えて、独立のエージェントに新旧を意味レベルで照合させた。判定は「実運用が壊れる欠落・矛盾なし」。それでも旧版は消さない。次回の /make-diary が正常に走るのを確認するまで backup に置いたままにして、修正計画には復旧手順を1行書き足した。",[27,196,199],{"className":197,"code":198,"language":32},[30],"不具合時: cp .claude/backup/make-diary-2026-07-02.md .claude/commands/make-diary.md\n",[34,200,198],{"__ignoreMap":36},[15,202,203],{},"明日の朝、いつもどおり日記が生成されたら旧版を消す。",[19,205,206],{"id":206},"学び",[44,208,209,215,221,227,233],{},[47,210,211,214],{},[50,212,213],{},"「監査官」の役割指定は棚卸しに効く","。甘い自己評価を封じて、削除・作り直しの判定まで踏み込ませられる",[47,216,217,220],{},[50,218,219],{},"監査（根拠）と修正計画（実行）はファイルを分ける","。監査memoにチェックボックスを混ぜると、根拠の読み物として腐る",[47,222,223,226],{},[50,224,225],{},"サブエージェントの「欠落」報告は実在確認してから消す","。今日も1件、実在ファイルが「欠落」と誤報告された",[47,228,229,232],{},[50,230,231],{},"コマンドの肥大化はチェーン先の説明を写すことから始まる","。呼ぶだけのステップは1行参照に留め、正はチェーン先に置く",[47,234,235,238],{},[50,236,237],{},"動いているものを直すときは、旧版バックアップ＋復旧手順1行＋実運用での動作確認をワンセットにする","。検証で「矛盾なし」が出ても、本番1回が通るまで退路を残す",[19,240,241],{"id":241},"明日やること",[44,243,246,256,265],{"className":244},[245],"contains-task-list",[47,247,250,255],{"className":248},[249],"task-list-item",[251,252],"input",{"disabled":253,"type":254},true,"checkbox"," 朝の /make-diary を通常どおり実行し、分割後の356行版で日記が最後まで生成されるか確認する",[47,257,259,261,262,264],{"className":258},[249],[251,260],{"disabled":253,"type":254}," 正常に走ったら ",[34,263,165],{}," を削除する",[47,266,268,270],{"className":267},[249],[251,269],{"disabled":253,"type":254}," 途中で止まったら復旧コマンドで旧版に戻し、どのStepで何が欠けたかを修正計画の5-2に追記する",{"title":36,"searchDepth":272,"depth":272,"links":273},2,[274,275,276,277,278,279,280],{"id":21,"depth":272,"text":22},{"id":87,"depth":272,"text":87},{"id":104,"depth":272,"text":105},{"id":131,"depth":272,"text":132},{"id":153,"depth":272,"text":153},{"id":206,"depth":272,"text":206},{"id":241,"depth":272,"text":241},"dev","溜め込んだスキル・コマンド約100ファイルを全数監査させ、壊れ・二重定義・陳腐化・トリガー衝突を洗い出した。肥大化と判定された816行の/make-diaryコマンドは参照ファイル方式に分割して356行まで痩せさせた記録。","md",{},null,"/skill-audit-and-command-diet","claude-code-tools",false,"2026-07-02T00:00:00.000Z",{"title":5,"description":282},"2026-07/2026-07-02/skill-audit-and-command-diet",[293,294,295,296],"Claude Code","スキル管理","スラッシュコマンド","リファクタリング","-qn6GIgSsDvLT3YSvE0SXhWuKBVLlgN_gdpLfuVPI0g",[],"https://log.eurekapu.com/og/blog/skill-audit-and-command-diet.png?v=2026-07-02T00%3A00%3A00.000Z&title=Claude%20Code%E3%82%B9%E3%82%AD%E3%83%AB%E7%B4%84100%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%82%92%E7%9B%A3%E6%9F%BB%E5%AE%98%E3%81%AE%E5%A7%BF%E5%8B%A2%E3%81%A7%E6%A3%9A%E5%8D%B8%E3%81%97%E3%81%97%E3%80%81816%E8%A1%8C%E3%81%AE%2Fmake-diary%E3%82%B3%E3%83%9E%E3%83%B3%E3%83%89%E3%82%92356%E8%A1%8C%E3%81%AB%E5%88%86%E5%89%B2%E3%81%97%E3%81%9F&author=Kei%20Komatsu&sig=12fb6e714b87bb51",1783124599739]