[{"data":1,"prerenderedAt":516},["ShallowReactive",2],{"content-/commit-command-and-travel-article":3,"all-pages-for-dir":514,"og-image-/commit-command-and-travel-article":515},{"id":4,"title":5,"body":6,"category":495,"description":496,"extension":497,"meta":498,"navigation":95,"ogImage":499,"path":500,"project_name":501,"published":502,"publishedAt":503,"seo":504,"stem":505,"tags":506,"todo":512,"unpublished":502,"updatedAt":499,"__hash__":513},"pages/2026-03/2026-03-30/commit-command-and-travel-article.md","/commitカスタムコマンド作成と世界一周旅行記事の並列リサーチ",{"type":7,"value":8,"toc":479},"minimark",[9,14,23,28,33,51,58,61,68,144,158,162,165,217,224,227,230,233,236,253,256,259,262,273,277,323,325,329,332,334,337,448,450,453,475],[10,11,13],"h1",{"id":12},"commitカスタムコマンドと世界一周旅行記事","/commitカスタムコマンドと世界一周旅行記事",[15,16,17,18,22],"p",{},"Claude Codeで ",[19,20,21],"code",{},"/commit"," と打ったら「Unknown skill: commit」とエラーが返ってきた。ビルトインCLIコマンドでもスキルでもないので当然だが、コミット作業を毎回手動でやるのは面倒すぎる。カスタムコマンドを書いて解決し、ついでに世界一周旅行の記事をリサーチエージェント2本で並列生成した。",[24,25,27],"h2",{"id":26},"commitカスタムコマンドの作成","/commitカスタムコマンドの作成",[29,30,32],"h3",{"id":31},"unknown-skillエラーの正体","「Unknown skill」エラーの正体",[15,34,35,36,39,40,43,44,46,47,50],{},"Claude Codeの ",[19,37,38],{},"Skill"," ツールは ",[19,41,42],{},".claude/commands/"," にあるMarkdownファイルをスキルとして読み込む。",[19,45,21],{}," は見た目からビルトインコマンドに見えるが、実際にはどこにも定義されていない。",[19,48,49],{},"Skill(commit)"," を呼ぶと「Unknown skill」エラーで止まる。",[15,52,53,54,57],{},"解決は単純で、",[19,55,56],{},".claude/commands/commit.md"," にカスタムコマンドを置くだけ。",[29,59,60],{"id":60},"機能単位の分割コミット戦略",[15,62,63,64,67],{},"単に ",[19,65,66],{},"git add -A && git commit"," するのではなく、変更内容を分析して機能単位にグルーピングしてから順番にコミットする戦略にした。",[69,70,75],"pre",{"className":71,"code":72,"language":73,"meta":74,"style":74},"language-markdown shiki shiki-themes vitesse-light vitesse-light","## グルーピング規則（優先順位）\n\n1. コード変更（apps/web/app/, server/, scripts/ 等）\n2. コンテンツ記事（日付ディレクトリ単位、古い→新しい順）\n3. 設定・ツール（.claude/, nuxt.config.ts 等）\n4. 画像・SVG（関連記事と同じコミットに含める）\n5. メモ（memo/ はユーザーに確認してから）\n","markdown","",[19,76,77,90,97,108,117,126,135],{"__ignoreMap":74},[78,79,82,86],"span",{"class":80,"line":81},"line",1,[78,83,85],{"class":84},"sFA8A","##",[78,87,89],{"class":88},"syTZV"," グルーピング規則（優先順位）\n",[78,91,93],{"class":80,"line":92},2,[78,94,96],{"emptyLinePlaceholder":95},true,"\n",[78,98,100,104],{"class":80,"line":99},3,[78,101,103],{"class":102},"snbK4","1.",[78,105,107],{"class":106},"sG7-3"," コード変更（apps/web/app/, server/, scripts/ 等）\n",[78,109,111,114],{"class":80,"line":110},4,[78,112,113],{"class":102},"2.",[78,115,116],{"class":106}," コンテンツ記事（日付ディレクトリ単位、古い→新しい順）\n",[78,118,120,123],{"class":80,"line":119},5,[78,121,122],{"class":102},"3.",[78,124,125],{"class":106}," 設定・ツール（.claude/, nuxt.config.ts 等）\n",[78,127,129,132],{"class":80,"line":128},6,[78,130,131],{"class":102},"4.",[78,133,134],{"class":106}," 画像・SVG（関連記事と同じコミットに含める）\n",[78,136,138,141],{"class":80,"line":137},7,[78,139,140],{"class":102},"5.",[78,142,143],{"class":106}," メモ（memo/ はユーザーに確認してから）\n",[15,145,146,147,150,151,150,154,157],{},"コミットメッセージはConventional Commits準拠（",[19,148,149],{},"feat:",", ",[19,152,153],{},"docs:",[19,155,156],{},"chore:"," 等）で日本語記述。",[29,159,161],{"id":160},"codexgpt-54レビューで2件修正","Codex（GPT-5.4）レビューで2件修正",[15,163,164],{},"計画をCodexに投げたら致命的な指摘が2件返ってきた。",[166,167,168,184],"table",{},[169,170,171],"thead",{},[172,173,174,178,181],"tr",{},[175,176,177],"th",{},"#",[175,179,180],{},"指摘内容",[175,182,183],{},"修正",[185,186,187,206],"tbody",{},[172,188,189,193,196],{},[190,191,192],"td",{},"1",[190,194,195],{},"ファイルパスがモノレポ構造を反映していない",[190,197,198,201,202,205],{},[19,199,200],{},"app/"," → ",[19,203,204],{},"apps/web/app/"," に修正",[172,207,208,211,214],{},[190,209,210],{},"2",[190,212,213],{},"コミットメッセージ規約が未定義",[190,215,216],{},"Conventional Commitsのtype一覧とフォーマットを追記",[15,218,219,220,223],{},"パス指摘は地味だが、実行時に ",[19,221,222],{},"git add"," が空振りする致命傷になるところだった。Codexがモノレポ構造をCLAUDE.mdから読み取って指摘してきたのは助かった。",[225,226],"hr",{},[24,228,229],{"id":229},"世界一周旅行記事の並列リサーチ",[29,231,232],{"id":232},"リサーチエージェント2本を同時起動",[15,234,235],{},"円安環境下での学生向け世界一周旅行プランについて、2つのリサーチエージェントを並列で走らせた。",[237,238,239,247],"ul",{},[240,241,242,246],"li",{},[243,244,245],"strong",{},"エージェントA",": 費用・予算の調査（宿泊費、交通費、食費の地域別相場）",[240,248,249,252],{},[243,250,251],{},"エージェントB",": 安全ルートの調査（渡航危険度、現地治安、ビザ要件）",[29,254,255],{"id":255},"イラン戦争で中東ルートが消えた",[15,257,258],{},"リサーチで最大の発見は、2026年2月に始まったイラン戦争とホルムズ海峡危機で中東全域が事実上の通過不可になっていること。バックパッカーの定番だった「トルコ→イラン→インド」陸路ルートは使えない。アフリカ東岸経由やコーカサス迂回も検討したが、いずれも安全面でリスクが残る。",[29,260,261],{"id":261},"予算試算",[15,263,264,265,268,269,272],{},"ドミトリー前提、5大陸カバー6ヶ月で",[243,266,267],{},"100〜135万円","。東南アジア中心3〜4ヶ月の節約コースなら",[243,270,271],{},"55〜75万円","。ワーキングホリデーやWorkawayで途中の資金補充も組み込んだ。",[29,274,276],{"id":275},"codex-gpt-54レビューで3件指摘","Codex GPT-5.4レビューで3件指摘",[166,278,279,290],{},[169,280,281],{},[172,282,283,285,287],{},[175,284,177],{},[175,286,180],{},[175,288,289],{},"対応",[185,291,292,302,312],{},[172,293,294,296,299],{},[190,295,192],{},[190,297,298],{},"エチオピア北部をルートに含めているが紛争リスクあり",[190,300,301],{},"該当区間を削除",[172,303,304,306,309],{},[190,305,210],{},[190,307,308],{},"Workawayはビザステータスに注意が必要",[190,310,311],{},"注意書きを追記",[172,313,314,317,320],{},[190,315,316],{},"3",[190,318,319],{},"為替レートの前提が記事中で揺れている",[190,321,322],{},"150〜159円のレンジに統一",[225,324],{},[24,326,328],{"id":327},"_2026-03-29の日記生成","2026-03-29の日記生成",[15,330,331],{},"make-diaryコマンドでclaude-code-syncログから03-29の日記を自動生成した。Chrome拡張の大規模リファクタリング（タブ再編、NFKC正規化によるルールID照合バグ修正、事業者設定エクスポート/インポート）が中心の一日だった。",[225,333],{},[24,335,336],{"id":336},"試行錯誤",[166,338,339,354],{},[169,340,341],{},[172,342,343,345,348,351],{},[175,344,177],{},[175,346,347],{},"テーマ",[175,349,350],{},"試したこと",[175,352,353],{},"結果",[185,355,356,368,380,393,407,420,434],{},[172,357,358,360,362,365],{},[190,359,192],{},[190,361,21],{},[190,363,364],{},"Skill(commit)で呼び出し",[190,366,367],{},"「Unknown skill」エラー",[172,369,370,372,374,377],{},[190,371,210],{},[190,373,21],{},[190,375,376],{},".claude/commands/commit.md作成",[190,378,379],{},"正常動作",[172,381,382,384,387,390],{},[190,383,316],{},[190,385,386],{},"コミット計画",[190,388,389],{},"app/パスでファイル指定",[190,391,392],{},"Codexが「モノレポではapps/web/app/」と指摘",[172,394,395,398,401,404],{},[190,396,397],{},"4",[190,399,400],{},"リサーチ",[190,402,403],{},"エージェント1本で費用+ルート両方",[190,405,406],{},"情報量が多すぎて途中で切れた",[172,408,409,412,414,417],{},[190,410,411],{},"5",[190,413,400],{},[190,415,416],{},"2本並列（費用/ルート分離）",[190,418,419],{},"両方完走。結果をマージして記事化",[172,421,422,425,428,431],{},[190,423,424],{},"6",[190,426,427],{},"中東ルート",[190,429,430],{},"トルコ→イラン→インド陸路",[190,432,433],{},"イラン戦争で通過不可",[172,435,436,439,442,445],{},[190,437,438],{},"7",[190,440,441],{},"中東迂回",[190,443,444],{},"コーカサス経由",[190,446,447],{},"安全面でリスク残。記事では非推奨扱い",[225,449],{},[24,451,452],{"id":452},"学び",[237,454,455,466,469,472],{},[240,456,457,458,461,462,465],{},"カスタムコマンドは ",[19,459,460],{},".claude/commands/{name}.md"," に置くだけで ",[19,463,464],{},"/name"," として呼べる。Skillツールの仕組みを理解すると、繰り返し作業を一発で自動化できる",[240,467,468],{},"Codexレビューはパス構造のような「動かしてみないと気づかない」ミスを事前に潰せる。特にモノレポでは相対パスの罠が多い",[240,470,471],{},"リサーチ系タスクは関心軸で分割して並列実行すると、1本で全部やるより完走率が上がる",[240,473,474],{},"地政学リスクは旅行記事に限らず、サプライチェーンやSaaS選定でも同じ構造。「定番ルートが使えなくなる」前提で代替を用意しておく思考が染みついた",[476,477,478],"style",{},"html pre.shiki code .sFA8A, html code.shiki .sFA8A{--shiki-default:#999999;--shiki-default-font-weight:bold;--shiki-dark:#999999;--shiki-dark-font-weight:bold}html pre.shiki code .syTZV, html code.shiki .syTZV{--shiki-default:#1C6B48;--shiki-default-font-weight:bold;--shiki-dark:#1C6B48;--shiki-dark-font-weight:bold}html pre.shiki code .snbK4, html code.shiki .snbK4{--shiki-default:#A65E2B;--shiki-dark:#A65E2B}html pre.shiki code .sG7-3, html code.shiki .sG7-3{--shiki-default:#393A34;--shiki-dark:#393A34}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"title":74,"searchDepth":92,"depth":92,"links":480},[481,486,492,493,494],{"id":26,"depth":92,"text":27,"children":482},[483,484,485],{"id":31,"depth":99,"text":32},{"id":60,"depth":99,"text":60},{"id":160,"depth":99,"text":161},{"id":229,"depth":92,"text":229,"children":487},[488,489,490,491],{"id":232,"depth":99,"text":232},{"id":255,"depth":99,"text":255},{"id":261,"depth":99,"text":261},{"id":275,"depth":99,"text":276},{"id":327,"depth":92,"text":328},{"id":336,"depth":92,"text":336},{"id":452,"depth":92,"text":452},"dev","Claude Codeの/commitがSkillエラーになる問題を.claude/commands/commit.mdで解決し、機能単位分割コミット戦略を設計。並行して円安時代の世界一周旅行記事をリサーチエージェント2本で作成した一日の記録。","md",{},null,"/commit-command-and-travel-article","mdx-playground",false,"2026-03-30T00:00:00.000Z",{"title":5,"description":496},"2026-03/2026-03-30/commit-command-and-travel-article",[507,508,509,510,511],"Claude Code","カスタムコマンド","git","Codexレビュー","世界一周旅行","memo","zVyqiraNeuh8LoYY-R1znAJLI-QOziiVnHVw68EP4ls",[],"https://log.eurekapu.com/og/blog/commit-command-and-travel-article.png?v=2026-03-30T00%3A00%3A00.000Z&title=%2Fcommit%E3%82%AB%E3%82%B9%E3%82%BF%E3%83%A0%E3%82%B3%E3%83%9E%E3%83%B3%E3%83%89%E4%BD%9C%E6%88%90%E3%81%A8%E4%B8%96%E7%95%8C%E4%B8%80%E5%91%A8%E6%97%85%E8%A1%8C%E8%A8%98%E4%BA%8B%E3%81%AE%E4%B8%A6%E5%88%97%E3%83%AA%E3%82%B5%E3%83%BC%E3%83%81&author=Kei%20Komatsu&sig=832517d59cc7a6f1",1782528822184]