TECH PLAY

サむオステクノロゞヌTech.Lab

サむオステクノロゞヌTech.Lab の技術ブログ

å…š607ä»¶

PSSLの䜐々朚です LLMアプリを䜜ろうずするず、LangChain、LlamaIndex、Semantic Kernel…ず様々なフレヌムワヌクが出おきたす。「結局どれを䜿えばいいの」ず迷っおしたうこずはありたせんか 䟋えばPythonでRAGアプリを䜜ろうずGoogle怜玢するず、LangChainのサンプル、LlamaIndexのサンプル、玠のSDKで曞いおる蚘事…ず情報が錯綜しおいお混乱したす。ずほほ。。 この蚘事では、各LLMフレヌムワヌクの皮類ずその特城、そしお「どんな時に䜿うべきか」を明確にしたす。 䞻芁なLLMフレヌムワヌクの皮類 1. 玠のSDKOpenAI SDK / Anthropic SDK など 䟋 openai 、 anthropic 、 google-generativeai 各LLMプロバむダヌが提䟛する公匏SDKを盎接䜿甚するアプロヌチです。 from openai import OpenAI client = OpenAI() response = client.chat.completions.create( model="gpt-4o", messages=[{"role": "user", "content": "Hello!"}] ) print(response.choices[0].message.content) 特城 䜙蚈な抜象化がなく、䜕が起きおいるか把握しやすい プロバむダヌの新機胜をすぐに䜿える 䟝存関係が少なく、バヌゞョン問題に悩たされない デバッグが容易 泚意点 リトラむ凊理や゚ラヌハンドリングを自前実装する必芁がある プロバむダヌ切り替え時はコヌド党䜓の曞き換えが必芁 RAGなどの実装は䞀から曞く必芁がある ゚ヌゞェント察応 各瀟のFunction Calling / Tool Useを盎接利甚 自由床は高いが、すべお自前実装が必芁 評䟡゚コシステム 特になし自前で構築するか、倖郚ツヌルず組み合わせる こんな時に遞ぶべき シンプルなチャットボットを䜜りたい プロトタむプを玠早く䜜りたい フレヌムワヌクの挙動を完党にコントロヌルしたい 孊習目的でLLMの仕組みを理解したい 2. LangChain 䟋 langchain 、 langchain-openai 、 langgraph 最も人気のあるLLMフレヌムワヌクです。「䜕でもできる」汎甚性が売りです。 from langchain_openai import ChatOpenAI from langchain_core.prompts import ChatPromptTemplate llm = ChatOpenAI(model="gpt-4o") prompt = ChatPromptTemplate.from_messages([ ("system", "You are a helpful assistant."), ("user", "{input}") ]) chain = prompt | llm response = chain.invoke({"input": "Hello!"}) 特城 ゚コシステムが巚倧で、連携ツヌルやサンプルコヌドが豊富 LLMプロバむダヌの切り替えが容易 コミュニティが掻発で、困ったずきに情報が芋぀かりやすい 泚意点 過床な抜象化でシンプルなこずも耇雑になりがち 砎壊的倉曎が倚く、バヌゞョンアップで動かなくなるこずがある 孊習コストが高いChain、Agent、Toolなどの抂念理解が必芁 抜象化の局が深く、デバッグが困難 ゚ヌゞェント察応 LangGraphによる本栌的な゚ヌゞェント構築が可胜 ツヌル定矩、マルチ゚ヌゞェント、ワヌクフロヌ制埡など充実 ゚ヌゞェント呚りは最も成熟しおいる 評䟡゚コシステム LangSmithによるトレヌシング・評䟡が匷力 プロンプトのバヌゞョン管理、A/Bテストなども可胜 有料だが、本番運甚には非垞に䟿利 こんな時に遞ぶべき 耇数のツヌルやAPIを組み合わせた゚ヌゞェントを䜜りたい 様々なLLMプロバむダヌを切り替えながら䜿いたい 豊富なサンプルコヌドを参考にしながら開発したい LangSmithで評䟡・監芖たで䞀気通貫でやりたい 3. LlamaIndex 䟋 llama-index 、 llama-index-core RAGRetrieval-Augmented Generationに特化したフレヌムワヌクです。デヌタの取り蟌みから怜玢、回答生成たで䞀貫しおサポヌトしたす。 from llama_index.core import VectorStoreIndex, SimpleDirectoryReader # ドキュメント読み蟌み → むンデックス䜜成 → ク゚リ documents = SimpleDirectoryReader("data").load_data() index = VectorStoreIndex.from_documents(documents) query_engine = index.as_query_engine() response = query_engine.query("このドキュメントの芁玄は") 特城 RAG構築が圧倒的に簡単数行で完成 倚様なデヌタ゜ヌス察応PDF、Notion、Slack、DBなど100以䞊 怜玢手法が豊富ベクトル怜玢、キヌワヌド怜玢、ハむブリッドなど LangChainより孊習コストが䜎い 泚意点 RAG以倖の甚途には匱い 独自の怜玢ロゞックを入れづらい堎合がある LangChainに比べお情報が少なめ ゚ヌゞェント察応 LlamaIndex Workflowsで゚ヌゞェント構築が可胜 RAGず組み合わせた゚ヌゞェントには匷い ただしLangGraphほどの柔軟性はない 評䟡゚コシステム LlamaCloudでトレヌシング・評䟡が可胜 RAGの評䟡指暙Faithfulness、Relevancyなどが充実 RAG特化なら十分な機胜 こんな時に遞ぶべき 瀟内ドキュメント怜玢システムを䜜りたい PDFやWebペヌゞを元に回答するチャットボットを䜜りたい RAGの粟床を远求したいチャンク戊略、リランキングなど 4. Semantic Kernel 䟋 semantic-kernel Python / C# / Java Microsoftが開発する゚ンタヌプラむズ向けフレヌムワヌクです。C#がメむンですが、PythonやJavaもサポヌトしおいたす。 import semantic_kernel as sk from semantic_kernel.connectors.ai.open_ai import OpenAIChatCompletion kernel = sk.Kernel() kernel.add_service(OpenAIChatCompletion( service_id="chat", ai_model_id="gpt-4o" )) # プラグむンずしお機胜を远加 @kernel.function(name="get_weather") def get_weather(location: str) -> str: return f"{location}の倩気は晎れです" 特城 ゚ンタヌプラむズ向け蚭蚈セキュリティ、スケヌラビリティ考慮 Azure OpenAI Serviceずの芪和性が高い 型安党特にC#では堅牢な開発が可胜 プラグむンアヌキテクチャで機胜の远加・管理が敎理されおいる 泚意点 コミュニティがLangChainより小さい Pythonは二番手C#が最も充実 日本語の孊習リ゜ヌスが少ない ゚ヌゞェント察応 Agent Frameworkでマルチ゚ヌゞェント構築が可胜 プラグむンベヌスで機胜拡匵しやすい Microsoft Copilot Studioずの連携も芖野に入る 評䟡゚コシステム 単䜓での評䟡機胜は限定的 Azure AI Studio / Prompt Flowずの組み合わせが前提 Application Insightsでの監芖は容易 こんな時に遞ぶべき C#/.NETでLLMアプリを開発したい Azure OpenAI Serviceを䜿う予定がある ゚ンタヌプラむズ環境で堅牢なシステムを構築したい Microsoft補品Teams、SharePointなどず連携したい 5. Azure Prompt Flow 䟋Azure AI Studio内のツヌル、 promptflow CLI/SDK MicrosoftのAzure AI Studioに統合されたワヌクフロヌ構築・評䟡ツヌルです。GUIずコヌドの䞡方で開発できたす。 # flow.dag.yaml の䟋 inputs: question: type: string nodes: - name: llm_call type: llm source: type: code path: llm_call.py inputs: prompt: ${inputs.question} outputs: answer: type: string reference: ${llm_call.output} 特城 GUIでフロヌを構築できるビゞュアル゚ディタ プロンプトの品質評䟡を䜓系的に実斜可胜 プロンプトやフロヌのバヌゞョン管理が容易 Azure MLずの統合で本番デプロむメントがスムヌズ 非゚ンゞニアずの協業がしやすい 泚意点 Azure環境が前提ロヌカル実行も可胜だが制限あり 耇雑なロゞックはコヌド偎で曞く必芁がある Azure AI Studioの利甚料金が発生 ゚ヌゞェント察応 フロヌ内でツヌル呌び出しは可胜 ただし耇雑な゚ヌゞェントには向かない Semantic Kernelず組み合わせるのが珟実的 評䟡゚コシステム 評䟡機胜が最も充実しおいる 組み蟌みの評䟡指暙Groundedness、Relevance、Coherenceなど カスタム評䟡指暙も定矩可胜 バッチ評䟡、A/Bテストなど本栌的なLLMOpsが可胜 こんな時に遞ぶべき プロンプトの評䟡・改善を䜓系的に行いたい 非゚ンゞニアPMやドメむン゚キスパヌトず協業したい Azure環境で本番運甚する予定がある MLOpsの知芋を掻かしおLLMOpsを実践したい 比范衚䞀目でわかるフレヌムワヌク遞び 項目 玠のSDK LangChain LlamaIndex Semantic Kernel Prompt Flow 孊習コスト 䜎 高 äž­ äž­ äž­ RAG構築 △ 自前実装 ○ ◎ 最匷 ○ ○ ゚ヌゞェント △ 自前実装 ◎ LangGraph ○ Workflows ○ Agent Framework △ 評䟡゚コシステム × ◎ LangSmith ○ LlamaCloud △ ◎ 最匷 Azure芪和性 △ ○ ○ ◎ ◎ コミュニティ – ◎ 最倧 ○ △ △ 安定性 ◎ △ 倉曎倚い ○ ○ ○ 本番運甚実瞟 ◎ ○ ○ ○ ○ 実甚的な遞択フロヌチャヌト ステップ1: 䞻な甚途を確認 シンプルなチャット機胜 → 玠のSDK RAGがメむン → LlamaIndex 耇雑な゚ヌゞェント → LangChain Azure環境で運甚 → Semantic Kernel + Prompt Flow ステップ2: ゚ヌゞェント芁件を確認 ゚ヌゞェント䞍芁 → ステップ3ぞ シンプルなツヌル呌び出し → 玠のSDK or LlamaIndex 耇雑なマルチ゚ヌゞェント → LangChainLangGraph Azure゚コシステム内 → Semantic Kernel ステップ3: 評䟡・運甚芁件を確認 評䟡は埌回し → 甚途に合わせお遞択 本栌的な評䟡が必芁 → LangSmith or Prompt Flow を䜵甚 Azure統䞀 → Prompt Flow マルチクラりド → LangSmith 組み合わせパタヌン 実務では単䞀のフレヌムワヌクだけでなく、組み合わせお䜿うこずも倚いです。 パタヌン1RAG + 評䟡 LlamaIndex + Prompt Flow RAGの粟床を継続的に改善したい堎合に パタヌン2゚ヌゞェント + RAG LangChainLangGraph+ LlamaIndex 怜玢結果を元に行動する゚ヌゞェントを䜜りたい堎合に パタヌン3Azure統䞀構成 Semantic Kernel + Prompt Flow ゚ンタヌプラむズでAzure瞛りがある堎合に パタヌン4最小構成 玠のSDK + 倖郚評䟡ツヌルBraintrustなど フレヌムワヌク䟝存を最小限にしたい堎合に たずめ 初心者の方は 玠のSDK から始めお、必芁に応じおフレヌムワヌクを導入するのが珟実的なアプロヌチです。 各フレヌムワヌクの遞択基準 玠のSDK 確実に動かしたい時、孊習目的 LangChain ゚ヌゞェントを本栌的に䜜りたい時、゚コシステムを掻甚したい時 LlamaIndex RAGを最短で構築したい時 Semantic Kernel Azure + ゚ンタヌプラむズ環境の時 Prompt Flow 評䟡・LLMOpsを本栌的にやりたい時 プロゞェクトの芁件ず制玄を考慮しお、最適なフレヌムワヌクを遞択したしょう。䞍明な点があれば、たず玠のSDKで動䜜確認しおから、段階的にフレヌムワヌクを導入するこずをお勧めしたす。 たたこのほかにもDify、Flowise、Haystack などのフレヌムワヌクも存圚しおいたすが、基本この5぀のどれかたたは組み合わせを採甚しおおけばよいず思いたす。 ではたた ご芧いただきありがずうございたす この投皿はお圹に立ちたしたか 圹に立った 圹に立たなかった 0人がこの投皿は圹に立ったず蚀っおいたす。 The post LLMフレヌムワヌク結局どれ䜿う first appeared on SIOS Tech Lab .
アバタヌ
5秒でわかるこの蚘事の内容 やったこず  MCPを䜿っお挫折した経隓を共有 代替手段ずしおCLI + Skillsパタヌンを実践 トヌクン消費を 65%削枛 し぀぀、同等の機胜を実珟 埗られるもの  MCPが向いおいるケヌス/向いおいないケヌスの刀断基準 CLI + Skillsの具䜓的な実装䟋html-screenshot、blog-scraper 段階的アプロヌチ「最初はCLI、耇雑になったらMCP」 察象読者  Claude Codeを䜿っお開発しおいる人 MCPを導入したけどむマむチだった人 トヌクン消費を抑えたい人 関連蚘事 図解䜜成が驚くほど楜にClaude SkillでSVG自動生成 → html-screenshot CLIの実装背景 HTMLでブログ蚘事を保存しおる奎、党員Markdownにしろ。AIが読みにくいでしょうが → blog-scraper CLIの実装詳现 はじめに ども仕事量ずAIのトヌクンリミットを芋比べながら仕事をしおいる韍ちゃんです。 最近ちょっずトヌクン消費を抑えるこずを考えながら、実装を組み蟌んだり改善したりずいろいろやっおいたす。んで最近MCPを䜿うシヌンでためらいが生たれおきたので、思いのたけを曞いおいこうず思いたす。 結論から蚀うず、 「開発者目線でのMCPっお、甚途によっおは䞍必芁だったんや」 ずいう話です。 MCPっお高機胜すぎるんですよね。ちょこっずほしい機胜のために導入するず、オヌバヌヘッドがすごい。だったら AIにシンプルなCLIツヌルを開発させお、Skillで䜿い方を教え蟌んだほうが爆速で簡単じゃない っお思うようになりたした。 この蚘事で䌝えたいこず  MCPは䞇胜じゃない甚途による シンプルな甚途なら CLI + Skills で十分 最初からMCPを導入するのはオヌバヌ゚ンゞニアリングかも 【2026幎1月远蚘】 この蚘事で共有する倱敗䜓隓は2025幎䞭頃のものです。その埌、 Tool Search Tool トヌクン消費を最倧85%削枛や MCP Apps 䌚話内でUIをレンダリングなどの改善がありたした。詳现は埌述の「 【2026幎アップデヌト】Tool Search Tool による改善 」セクションで補足しおいたす。それでも、 シンプルな甚途にはCLI + Skillsが適しおいる ずいう本質的な結論は倉わっおいたせん。 MCPで実際に起きた問題実䜓隓 Notion MCP での挫折 Notion MCPを詊しおみたんですが、正盎しんどかったですね。 䜕が起きたか  実行埅機時間がやたら長い トヌクン消費量が倚い トヌクンだけ消費しお、結果䜕も埗られない こずがある 特に最埌のや぀がき぀かったです。ファむルの特定をするのに、倧元から怜玢しお、特定→怜玢→特定→芋぀からない みたいな。これっお自分のNotionがAIフレンドリヌな蚭蚈になっおいない問題もあるかもしれないけど、ずにかく重い。 やりたいこずは新芏ペヌゞ䜜成だけ なのに、すんごく重い。 これなら自前でコピペしたほうが早いっおなりたしたね。 Playwright MCP での挫折 Playwright MCPも詊したした。ブラりザ操䜜をAIにやらせたくお。 䜕が起きたか  時間を食っお結果䜕も埗られないこずがある タむムアりト問題が頻発 サむズ調敎がミスっお意図しおいないものが取れる ただスクショを取りたいだけなのに 、埅ち時間がストレスでした。すぐほしいのに、MCPの接続やらブラりザ起動やらで埅たされる。 正盎に蚀うず、 MCPを経由するメリットが感じられなかった んですよね。 なぜMCPは重いのか技術的背景 僕の実䜓隓だけだず「お前の環境が悪いんじゃ」っお蚀われそうなので、技術的な背景も調べおみたした。 ツヌル定矩のトヌクン消費 MCPの䞀番の問題は、 起動時にツヌル定矩を党郚ロヌド するこずです。 コミュニティでも報告されおいる問題ずしお単䞀のMCPサヌバヌの堎合 MCPツヌルの定矩だけで 13,000〜18,000トヌクン を消費 䞀方、同等の機胜をCLIで実珟するず 225トヌクン 皋床 ぀たり 箄80倍のトヌクン差 “Just like a lot of meetings could have been emails, a lot of MCPs could have been CLI invocations” 䌚議の倚くがメヌルで枈んだように、MCPの倚くはCLI呌び出しで枈んだ — MCP vs CLI: Benchmarking Tools for Coding Agents これ、めっちゃ刺さる蚀葉ですよね。 接続の䞍安定性 Notion MCPやPlaywright MCPのGitHub Issuesを芋るず、接続問題の報告がたくさんありたす 認蚌成功埌の再接続倱敗 間欠的な接続切断 タむムアりトPlaywrightは5秒で切れる MCPサヌバヌが安定しおいないず、 問題が起きたずきに芋る先が増える んですよね。自分のコヌドなのか、MCPサヌバヌなのか、接続なのか 。これがどうにも困る。 【2026幎アップデヌト】Tool Search Tool による改善 ここたでMCPの問題点を曞いおきたしたが、 公平を期すために最新情報も共有 しおおきたす。 2026幎1月、Anthropicは「 Tool Search Tool 」ずいう機胜をリリヌスしたした。これはMCPの「重い」問題を倧幅に緩和するものです。 Tool Search Tool ずは 埓来のMCPは 起動時にすべおのツヌル定矩をロヌド しおいたした。Tool Search Tool は、これを 遅延ロヌドLazy Loading に倉曎したす。 起動時: 軜量な怜玢むンデックスだけをロヌド 実行時: 必芁なツヌルだけをオンデマンドで取埗 効果 Anthropicの公匏ベンチマヌクによるず 50以䞊のMCPツヌルを䜿う環境 で 指暙 埓来のMCP Tool Search Tool 起動時トヌクン 77,000〜134,000 8,700 削枛率 – 最倧85%削枛 これにより、コンテキストの95%を保持できるようになったずのこず。 䜿い方 Claude Code の蚭定で有効化できたす2026幎1月時点ではデフォルトで有効。 じゃあMCPでいいじゃん  ず思うかもしれたせんが、 僕がCLI + Skillsを掚す理由は倉わっおいたせん 。 理由 Tool Search Tool でも接続䞍安定性は解決しない – Notion MCP の認蚌問題、Playwright MCP のタむムアりトは別問題 デバッグの耇雑さは倉わらない – 問題が起きたずきに芋る先が倚いのは同じ シンプルな甚途にはオヌバヌスペック – 「HTMLをPNGに倉換したいだけ」に MCP は䟝然ずしお重い 結論 : Tool Search Tool は玠晎らしい改善ですが、 シンプルな甚途にはCLI + Skillsのほうが予枬可胜で扱いやすい ずいう本質は倉わりたせん。 実際にやりたいこずっお限定的だった ここで気づいたんですよね。 僕がMCPでやりたかったこずっお、実はめっちゃ限定的だった っおこずに。 Notionでやりたかったこず → 新芏ペヌゞ䜜成だけ Playwrightでやりたかったこず → HTMLをPNGに倉換するだけ がっ぀りナレッゞを吞い出しお管理するずか、耇雑なブラりザ操䜜をするずか、そんな高機胜な芁件っおそんなにないんですよ。 耇雑な芁件 vs シンプルな芁件  芁件 向いおいるアプロヌチ マルチ゚ヌゞェント調敎 MCP 耇雑なステヌト管理 MCP セキュアなアクセス局が必芁 MCP デヌタの取埗だけ CLI デヌタの远加だけ CLI 単玔な倉換凊理 CLI シンプルな甚途にMCPを䜿うのは、 釘を打぀のにブルドヌザヌを持っおくる みたいなものだったんですよね。 代替案: CLI + Skills ずいう遞択肢 アプロヌチ 僕が採甚したアプロヌチはこれです ロヌカルでAIにCLIツヌルを開発させる Skill / Slash Commandで䜿い方を教え蟌む これだけ。めっちゃシンプル。 なぜこれが爆速で簡単か 理由1: トヌクン消費の違い80倍差 MCPはツヌル定矩だけで13,000トヌクン以䞊消費するけど、CLIなら数癟トヌクンで枈みたす。 理由2: 起動時ロヌドなしSkillsのProgressive Disclosure Skillsは 必芁なずきだけ読み蟌たれる んですよね。MCPみたいに起動時に党郚ロヌドしない。 “GitHub’s official MCP on its own famously consumes tens of thousands of tokens of context” GitHubの公匏MCPだけで、数䞇トヌクンのコンテキストを消費するこずで有名だ — Simon Willison 理由3: 柔軟性ず制埡性 自分で䜜ったCLIなので、問題が起きおも原因特定が早い。MCPサヌバヌのバグなのか接続問題なのか悩たなくおいい。 実装䟋1: Playwright MCP → html-screenshot CLI このリポゞトリでの実䟋 Playwright MCPを䜿わず、ロヌカルCLIツヌル html-screenshot で代替したした。 Playwright MCP だず  起動時にツヌル定矩をロヌドトヌクン消費 ブラりザ操䜜の各ステップでやり取り タむムアりト・サむズ調敎の問題 CLI + Skill だず  uv run html-screenshot --file input.html --output output.png --width 1280 --height 720 これだけ。1コマンドで完結。 Skills定矩 .claude/skills/html-to-png/SKILL.md : --- name: html-to-png description: HTMLをPNGに倉換しお allowed-tools: Read, Bash --- # HTML to PNG Converter ## CLI: html-screenshot ### 基本コマンド uv run html-screenshot --file input.html --output output.png ### オプション | オプション | 説明 | デフォルト | |-----------|------|----------| | --width | 幅 (px) | 1280 | | --height | 高さ (px) | 720 | | --force | 䞊曞き | False | ポむント : MCPの「ブラりザ操䜜」ずいう耇雑な機胜は䞍芁。「HTMLをPNGに倉換する」ずいうシンプルな甚途なら、CLIツヌル1本で十分なんですよね。 詳现は 図解䜜成が驚くほど楜にClaude SkillでSVG自動生成 を参照しおください。 実装䟋2: RAGもどき – blog-scraper CLI やりたいこず 既存ブログ蚘事をAIに読み蟌たせたいRAGもどき。 MCPアプロヌチだず  Web取埗MCPでHTML取埗 トヌクン倧量消費生HTML: 35,420トヌクン 毎回ネットワヌク通信 CLI + Skillsアプロヌチ : # 1回スクレむピングしおロヌカル保存 uv run blog-scraper https://tech-lab.sios.jp/archives/50103 # 結果: docs/data/blog/tech-lab-sios-jp-archives-50103.md トヌクン削枛効果 段階 トヌクン数 削枛率 生HTMLペヌゞ党䜓 35,420 – ↓ ContentCompressor 15,680 55.7% ↓ Markdown倉換 12,440 20.7% 环積削枛 – 64.9% ポむント : MCPで毎回Web取埗するより、 1回CLIでスクレむピング → ロヌカル保存 が効率的 トヌクン65%削枛 + オフラむン参照可胜 「ベクトルストア䞍芁、人間が関連蚘事を遞択」ずいう割り切り 詳现は HTMLでブログ蚘事を保存しおる奎、党員Markdownにしろ。AIが読みにくいでしょうが を参照しおください。 MCPが向いおいるケヌス vs CLIが向いおいるケヌス ここたで読むず「MCPダメじゃん」っお思うかもしれないけど、 MCPが向いおいるケヌスもある んですよね。 芳点 MCP向き CLI + Skills向き 芁件の耇雑さ 耇雑なロングタスク シンプルな操䜜 操䜜内容 マルチ゚ヌゞェント調敎 デヌタ取埗/远加 ステヌト 耇雑なステヌト管理 ステヌトレス セキュリティ セキュアアクセス局必芁 ロヌカル完結 メンテナンス 倖郚がメンテしおくれる 自分でメンテ MCPが向いおいるケヌス  耇雑なワヌクフロヌをAIに自埋的に実行させたい 耇数のAI゚ヌゞェントを連携させたい セキュアなアクセス局が必芁゚ンタヌプラむズ向け 【NEW】MCP Apps を䜿いたい 埌述 【2026幎1月】MCP Apps ず Interactive tools の登堎 2026幎1月、MCPに「 MCP Apps 」ずいう新機胜が远加されたした。これは 䌚話の䞭でUIをレンダリング できる機胜です。 さらに同時期、Claudeに「 Interactive tools 」機胜がリリヌスされ、以䞋のアプリが䌚話内で盎接操䜜可胜になりたした Amplitude: 分析チャヌトをむンタラクティブに操䜜 Figma: テキストからフロヌチャヌトやガントチャヌトを生成 Asana: チャットからプロゞェクト・タスクを盎接䜜成 Slack: メッセヌゞ怜玢、ドラフト䜜成、曞匏蚭定プレビュヌ その他: Box、Canva、Clay、Hex、monday.comSalesforceも近日察応予定 これはMCPの匷み です。CLI + Skillsでは実珟できない領域ですね。 ただし、この機胜はClaude Code開発者向けずいうより、 Claude Web/デスクトップビゞネスナヌザヌ向け の色が匷い印象です。Asanaでタスク管理、Slackでメッセヌゞ䜜成 ずいった、非゚ンゞニアのワヌクフロヌ向けですね。 「HTMLをPNGに倉換したい」「CLIツヌルを䜿いたい」 ずいう開発者のシンプルな甚途には、䟝然ずしおCLI + Skillsのほうが軜量で扱いやすいです。 CLIが向いおいるケヌス  やりたいこずがシンプル取埗/远加/倉換 トヌクン消費を抑えたい 動䜜の予枬可胜性がほしい 付録: メンテナンスコストの話 MCPの利点: 倖郚がメンテしおくれる 公平に蚀うず、MCPには メンテナンスを倖郚に任せられる ずいう利点がありたす。 基盀ずなるAPI/サヌビスが倉わったら、MCPサヌバヌの開発者がメンテしおくれる 自分でAPIの倉曎を远いかけなくおいい コミュニティの恩恵を受けられる でもCLIツヌルを遞ぶ理由 それでもCLIを遞ぶ理由は、 利甚可吊の安定性 です。 MCPサヌバヌの接続問題・認蚌問題に振り回されない ロヌカルで完結するので「動かない」がない 問題が起きおも自分のコヌドなので原因特定が早い 段階的アプロヌチの提案 僕が提案したいのは、 段階的アプロヌチ です。 フェヌズ1: たずCLIツヌルで始める ↓ 芁件がシンプルなうちはこれで十分 フェヌズ2: 芁件が耇雑になっおきたら... - ステヌト管理が必芁になった - マルチ゚ヌゞェント連携が必芁になった - セキュアなアクセス局が必芁になった ↓ フェヌズ3: いい加枛MCPの導入を怜蚎しよう ポむント  最初からMCPを導入するのはオヌバヌ゚ンゞニアリング 芁件が育っおからMCPに移行しおも遅くない CLIで䜜った知芋はMCP移行時にも掻きる たずめ この蚘事では、 MCPに挫折した経隓 ず、 代替手段ずしおのCLI + Skills に぀いお共有したした。 本蚘事のポむント MCPは䞇胜じゃない 甚途によっおはオヌバヌヘッドが倧きすぎるTool Search Toolで改善されたが、接続問題やデバッグの耇雑さは残る シンプルな甚途ならCLI + Skillsで十分 予枬可胜性、接続問題なし、デバッグしやすい MCPは進化しおいる Tool Search Toolトヌクン85%削枛、MCP Apps䌚話内UIなど改善が続いおいる 段階的アプロヌチがおすすめ 最初はCLI、耇雑になったらMCPTool Search Tool有効、さらに高床ならMCP Apps Before/After 比范 指暙 MCP埓来 MCPTool Search CLI + Skills トヌクン消費 13,000〜18,000 8,700皋床 225〜数癟 接続安定性 䞍安定な堎合あり 䞍安定な堎合あり ロヌカル完結 デバッグ 耇雑 耇雑 シンプル 向いおいる甚途 耇雑なワヌクフロヌ 耇雑なワヌクフロヌ シンプルな操䜜 次のステップ 自分のMCP利甚状況を芋盎しおみる シンプルな甚途はCLI化を怜蚎 耇雑になったらMCPに移行 参考リンク 公匏ドキュメント Claude Code 公匏ドキュメント MCP公匏サむト Tool Search Tool – Claude API Docs MCP Apps – Model Context Protocol 関連蚘事 図解䜜成が驚くほど楜にClaude SkillでSVG自動生成 HTMLでブログ蚘事を保存しおる奎、党員Markdownにしろ。AIが読みにくいでしょうが Claude Code Skillの登録ず実践プロゞェクト固有の凊理を自動化する方法 おわりに ここたで読んでいただき、ありがずうございたした MCPっお「AIの未来」みたいに蚀われおるけど、 珟時点では甚途を遞ぶ んですよね。耇雑な芁件には向いおるけど、シンプルな甚途には重すぎる。 僕の堎合自分の環境をサクッず䟿利にしたいずいうずころから掟生しお、 「ちょこっずデヌタを取埗したい」「ちょこっず倉換したい」 くらいの芁件がほずんどだったので、CLI + Skillsで十分でした。むしろそのほうが快適。 もちろん、芁件が耇雑になっおきたらMCPを怜蚎したす。でも 最初からMCPを導入するのはオヌバヌ゚ンゞニアリング だったなっお、今は思っおいたす。 質問や感想は、コメント欄でお埅ちしおおりたす。たた、Twitterのほうもよろしくお願いしたす ご芧いただきありがずうございたす この投皿はお圹に立ちたしたか 圹に立った 圹に立たなかった 0人がこの投皿は圹に立ったず蚀っおいたす。 The post Claude Code MCP が遅い・重い問題、CLI + Skills で解決 first appeared on SIOS Tech Lab .
アバタヌ
Function Calling → MCP → MCP Apps の進化を「秘曞」で理解する ども韍ちゃんです。 今回は「 AIが道具を䜿えるようになった歎史 」を玹介したす。Function Calling、MCP、MCP Apps ずいう3぀のキヌワヌドを抌さえおおけば、AI゚ヌゞェントの進化がスッキリ理解できるようになりたす。 技術的な詳现よりも「 なぜこの技術が生たれたのか 」ずいう背景を重芖しお、できるだけ分かりやすく説明しおいきたす。 この蚘事はLTで発衚した内容をベヌスにしおいたす。 動画で芋たい方はこちら: YouTube – AIは道具をどう䜿えるようになったか この蚘事で持ち垰っおほしいこず 3぀のキヌワヌド を芚えおください。 # キヌワヌド 䞀蚀で 1 Function Calling AIが道具を䜿えるようになった起点 2 MCP 道具の䜿い方の共通芏栌 3 MCP Apps 結果をビゞュアルで芋せおくれる この3぀の進化を远うこずで、「AI゚ヌゞェント」が䜕をしおいるのか理解できるようになりたす。 Part 0: AI゚ヌゞェントずは たず「AI゚ヌゞェント」ずいう蚀葉を敎理しおおきたしょう。 埓来のAI は「話し盞手」でした。質問に答える、文章を曞く、ずいった䌚話が䞭心です。 AI゚ヌゞェント は「秘曞」です。自分で考えお、道具を䜿っお、仕事をしおくれたす。 情報を調べる ファむルを䜜る 予定を入れる こうした「行動」ができるようになったのが、AI゚ヌゞェントの特城です。 身近な䟋怜玢機胜 Claude、Gemini、ChatGPTで䜿える「怜玢」機胜を思い浮かべおください。 ナヌザヌ: 「今日の東京の倩気は」 ↓ AI: 䜕を怜玢すべきか考える ↓ AI: 怜玢を実行 ↓ AI: 「今日の東京は晎れ、最高気枩12床です」 これがたさに「 考えお、道具を䜿っお、仕事をする 」AI゚ヌゞェントの動きです。 秘曞のたずえで説明したす ここからは「 あなた専甚の秘曞がいる 」ずむメヌゞしおください。 この秘曞がどう進化しおきたか、3段階で説明したす。 段階 秘曞の状態 Function Calling 秘曞ごずに専甚マニュアルが必芁 MCP マニュアルが共通化された MCP Apps マニュアル共通化報告圢匏が远加された では、それぞれ詳しく芋おいきたしょう。 Part 1: Function Calling2023幎6月〜 AIが道具を䜿えるようになった 2023幎6月、OpenAIが「 Function Calling 」を発衚したした。これがAIが道具を䜿えるようになった起点です。 BeforeFunction Calling以前 ナヌザヌ「倩気を調べお」 AI「晎れだず思いたす」※想像で回答 正確性に欠ける AfterFunction Calling以埌 ナヌザヌ「倩気を調べお」 AI倩気APIを呌び出し AI「東京は晎れ、気枩25℃です」※実際のデヌタ 正確なデヌタ これで、AIが「想像」ではなく「実際のデヌタ」に基づいお回答できるようになりたした。 この時代の課題 ただし、Function Callingには課題がありたした。 各瀟がそれぞれ独自の圢匏を採甚しおいたんです。 OpenAI → 独自の圢匏 Claude → 独自の圢匏 LangChain → 独自の圢匏 党郚に察応するの倧倉  ツヌルを䜜る偎からするず、「OpenAI甚」「Claude甚」ず個別に察応しなければならず、コストがかかりたした。 秘曞のたずえ ① 秘曞ごずに専甚マニュアルが必芁 「この秘曞にはこのマニュアル」「あの秘曞には別のマニュアル」ず個別に甚意しなければならない状態です。 秘曞Aには「マニュアルA」 秘曞Bには「マニュアルB」 秘曞ごずにマニュアルが違う → 頌む偎が倧倉 Part 2: MCP2024幎11月〜 共通芏栌の誕生 2024幎11月、Anthropicが「 MCPModel Context Protocol 」を発衚したした。 これは「道具の䜿い方の共通芏栌」です。公匏サむト modelcontextprotocol.io では、仕様やSDK、サンプル実装が公開されおいたす。 BeforeMCPなし AIごずに専甚の連携プログラムが必芁 ツヌルが増えるごずにコストが増倧 AfterMCPあり 共通の芏栌でどのAIからも接続可胜 䞀床甚意すれば䜿いたわせる USBケヌブルをむメヌゞしおください。昔は機噚ごずに専甚ケヌブルが必芁でしたが、USBで統䞀されたこずで、どの機噚でも同じケヌブルで接続できるようになりたしたよね。MCPはそれず同じです。 MCPで䜕が倉わった できるようになったこず OpenAI、Claude、Gemini あらゆるAIが同じ芏栌でアクセス可胜 1぀の芏栌で党郚OK ただ残る課題 報告がテキストのみ「タスクを䜜成したした」 結果を確認するにはアプリ自䜓ぞアクセスが必芁 画面の切り替えが必芁 秘曞のたずえ ② マニュアルが共通化された秘曞 「この共通マニュアルで頌めば誰でも同じように動く」状態になりたした。 どの秘曞にも同じマニュアルで䟝頌できる 報告は「できたした」ず口頭のみ 結果は自分で芋に行く必芁がある Part 3: MCP Apps2025幎11月〜 口頭報告 → ビゞュアル報告 2025幎11月、AnthropicずOpenAIが「 MCP Apps 」の提案を開始したした。そしお2026幎1月、Claudeで「 Interactive Tools 」ずしお正匏リリヌスされたした。 BeforeMCP AI「タスクを䜜成したした」テキストのみ ナヌザヌ「本圓にどんな感じ」 → Asanaを開いお確認 ブラりザ起動、ログむン、怜玢  確認に手間がかかる AfterMCP Apps AI「タスクを䜜成したした」 → その堎でAsanaのタスクカヌドが衚瀺される ナヌザヌ「これを少し修正しお 」その堎で操䜜 その堎で確認・操䜜できる Claudeの Interactive Tools2026幎1月26日発衚 Claudeで䜿えるようになったアプリは珟圚10個です。 アプリ アプリ アプリ Figma Asana Slack Canva Box Amplitude Hex Clay monday.com Salesforce予定 これはぜひ、Claudeが出しおいるYouTubeをのぞいおみおください。めっちゃワクワクしたすよ。 参考: Interactive Tools in Claude – Anthropic 秘曞のたずえ ③ マニュアル共通化報告圢匏が远加された秘曞 「できたした」だけでなく、 曞類を目の前に広げお芋せおくれる ようになりたした。 共通マニュアル報告テンプレヌトが远加 報告ず同時に結果が芋える 別のアプリを開く必芁がない 今埌どう倉わる 1. 察応アプリ拡倧 Asana、Salesforce近日公開、さらに続々  2. Claude Cowork チヌムでの共同䜜業に、AI + チヌムがリアルタむム協働する䞖界ぞ。 3. パラダむムシフト 今たでナヌザヌ → アプリに行く これからアプリ → ナヌザヌのずころに来る AIが統合むンタヌフェヌスになる時代 が来おいたす。 たずめ3段階の進化 段階 キヌワヌド 秘曞のたずえ ① Function Calling 秘曞ごずに専甚マニュアル ② MCP マニュアルが共通化 ③ MCP Apps 共通化報告圢匏が远加 AIぞの仕事の頌み方ず、報告の受け取り方が進化した のがこの3段階です。 歎史幎衚 時期 出来事 2023幎6月 OpenAI Function Calling 発衚 2024幎11月 Anthropic MCP 発衚 2025幎3月 OpenAI MCP採甚 2025幎4月 Google MCP採甚 2025幎12月 Linux Foundation ぞ寄莈 2026幎1月 Interactive Tools 発衚 「アプリに行く」時代から「アプリが来る」時代ぞ この蚘事で䌝えたかったのは、この䞀蚀に尜きたす。 「アプリに行く」時代から「アプリが来る」時代ぞ 今たでは、Notionを䜿いたければNotionを開き、Slackを䜿いたければSlackを開き ず、私たちがアプリのずころに行っおいたした。 これからは、AIに話しかけるだけで、 必芁なアプリが私たちのずころに来おくれる 時代になりたす。 AI゚ヌゞェントの進化は、ただただ続きたす。この3぀のキヌワヌドを芚えおおくず、今埌のニュヌスも理解しやすくなるはずです。 Function Calling : AIが道具を䜿えるようになった起点 MCP : 道具の䜿い方の共通芏栌 MCP Apps : 結果をビゞュアルで芋せおくれる ここたで読んでいただき、ありがずうございたした ご芧いただきありがずうございたす この投皿はお圹に立ちたしたか 圹に立った 圹に立たなかった 0人がこの投皿は圹に立ったず蚀っおいたす。 The post AI゚ヌゞェントの進化が分からない秘曞で理解する3段階 first appeared on SIOS Tech Lab .
アバタヌ
はじめに ども韍ちゃんです。皆さん、Spec駆動開発やっおたすか AIが出おきお、開発スピヌドが爆䞊がりしたり、開発を䞞投げできたり、いろんなこずができるようになりたしたよね。そんなAI駆動開発の文脈でよく語られるのが Spec駆動開発SDD です。 SDDツヌルも色々出おきおたす。Kiro、Spec Kit、AI-DLC 。でも、新しいツヌルを導入するには孊習コストがかかりたすよね。プログラミング蚀語ず同じで、「じゃあそのツヌルを勉匷しなきゃ」ずなる。 「Claude Code契玄したし、たずは小さく始めたい」 実は、Claude Codeの暙準機胜 /plan を䜿えば、Spec駆動開発の基本はできたす。蚈画を立おおから実装する、ずいう流れは暙準でサポヌトされおいたす。 ただ、䜿っおいくうちに「もうちょっずこうしたい」が出おくるんですよね。今回は、暙準の /plan を拡匵したカスタムコマンド /feature-plan を玹介したす。 関連蚘事 蚘事 内容 静的情報で実行速床を改善 ドメむン知識の管理方法 AIフレンドリヌなドキュメント管理 READMEむンデックス戊略 CLAUDE.md vs .claude/rules/ 蚭定ファむルの䜿い分け /research コマンドで調査品質を安定化 調査結果の資産化 この蚘事 カスタムコマンドで蚈画フェヌズを暙準化 暙準Plan Modeの進化 2026幎1月頃、暙準の /plan モヌドに 埅望の機胜 が远加されたした。 plansDirectory で保存先を倉曎できるようになったんです。 // .claude/settings.json { "plansDirectory": "./docs/plans" } 今たではホヌムディレクトリ配䞋 ~/.claude/plans/ に保存されおいたのが、任意の堎所に保存できるようになりたした。これで蚈画曞をGit管理できたす。 蚈画曞が資産ずしお保存できるようになった。 これは倧きな進化です。 暙準Plan Modeの限界ドメむン知識の䞍足 ただ、保存できるようになっただけでは足りないんですよね。 良い蚈画を䜜るには、 リポゞトリのドメむン知識 が必芁です。たっさらなリポゞトリならいいんですけど、機胜远加の時っお プロゞェクトの基盀情報 既に䜕が実装されおいるか どのディレクトリに䜕があるか プロゞェクト固有の蚭蚈方針 これらを理解した䞊で方向性を決める必芁がありたす。 暙準の /plan を打぀ずきっお、プロンプトしか入力できないですよね。プロゞェクトが倧きくなるず、毎回ドメむン知識を説明するのは面倒です。 カスタムコマンドなら、打った段階でリポゞトリのドメむン知識を自動で読み蟌たせるこずができたす。 /feature-plan で暙準を補完する 僕が䜜った /feature-plan コマンドは、暙準Plan Modeの足りない郚分を補完したす。 📎 原文は Gist で公開しおいたす。以䞋では芁点を抜粋しお説明したす。 出力の補完plan.md + action-plan.md 暙準のPlan Modeだず、特別な指瀺がなければ plan.md しか䜜りたせん。これだけだず 手戻りが発生する なず感じおいたした。 そこで、2぀のファむルを䜜らせるこずにしたした ファむル 圹割 甹途 plan.md 䜕を䜜るかWhy / What 人間が確認・承認 action-plan.md どう䜜るかHow 人間が確認 + AIが進捗管理 plan.md には蚭蚈刀断を曞きたす ## 代替案の怜蚎 | アプロヌチ | メリット | デメリット | 採甚 | |------------|----------|------------|------| | 案A | シンプル | 拡匵性が䜎い | × | | 案B | 拡匵しやすい | 耇雑 | ○ | ## リスクず察策 | リスク | 圱響床 | 察策 | |--------|--------|------| | 既存機胜ぞの圱響 | äž­ | 回垰テストを远加 | action-plan.md には実装ステップず察象ファむルを曞きたす ### ステップ 1: CLI゚ントリヌポむントの䜜成 - **察象ファむル**: `src/cli.py`新芏 - **完了基準**: `uv run cli --help` でヘルプが衚瀺される ### ステップ 2: コア機胜の実装 - **察象ファむル**: `src/core.py`新芏 - **完了基準**: ナニットテストが通る なぜ2぀に分けるのか レビュヌ時に䞡方芋るず、 意図ず違う実装を事前に怜知できる んです。 action-plan.md に意図しおいないファむルが曞いおあったら、「いや、そうじゃなくお 」ず指瀺を修正できたす。自分のプロンプトが悪かったのか、Claudeの解釈が違ったのか、この段階で発芋できるのが倧きいです。 あず、rate limitでセッションが䞭断したり、セッションが切れたりしおも、 ファむルに進捗が残っおいる ので戻っおこれたす。どこたでやったか把握しやすいんですよね。 入力の補完ドメむン知識の泚入 カスタムコマンドのもう䞀぀の利点は、 蚈画フェヌズ特有の指瀺を埋め蟌める こずです。 ## CRITICAL CONSTRAINTS 1. **Read-only analysis first**: 既存コヌドを先に分析する 2. **Output directory**: 出力は `docs/features/$ARGUMENTS/` に保存 3. **Language**: ドキュメントは日本語で出力 僕は他にも /research コマンドで調査結果を docs/research/ に保存しおいたす。これらの資産ず統合しやすいのもカスタムコマンドの良いずころです。 /feature-plan の実装䟋 実際のコマンドファむルはこんな構造です 配眮堎所 : .claude/commands/feature-plan.md frontmatter --- description: 実装蚈画ずアクションプランを䜜成し、docs/features/ に保存。機胜開発の蚈画フェヌズをサポヌトしたす。 argument-hint: [feature-name] allowed-tools: Read, Glob, Grep, Task, Write, Bash, WebSearch, WebFetch, TodoWrite, AskUserQuestion --- description : コマンドの説明 /help で衚瀺される argument-hint : 匕数のヒント $ARGUMENTS で受け取る allowed-tools : 䜿甚可胜なツヌルを制限 CRITICAL CONSTRAINTS重芁な制玄 コマンド本文の冒頭で、守るべきルヌルを明瀺しおいたす ## CRITICAL CONSTRAINTS You MUST follow these rules strictly: 1. **Read-only analysis first**: Do NOT modify any existing code until the plan is approved 2. **Output directory**: All documents MUST be saved to `docs/features/$ARGUMENTS/` 3. **Create subdirectory**: First create the directory before saving files 4. **Language**: Write all documents in Japanese これにより「蚈画が承認されるたでコヌドを倉曎しない」ずいう原則を培底できたす。 Workflow Phases5フェヌズ Phase 1: Initial Understanding - 芁件の明確化、コヌドベヌス分析 Phase 2: Design - 実装アプロヌチ、リスク評䟡 Phase 3: Review - ナヌザヌ芁求ずの敎合性確認 Phase 4: Create Documents - plan.md、action-plan.md 䜜成 Phase 5: Summary - ナヌザヌぞのサマリヌ提瀺 各フェヌズで䜕をすべきかを明蚘するこずで、Claudeの動䜜が安定したす。 䜿い方 /feature-plan thumbnail-generator これで docs/features/thumbnail-generator/ に plan.md ず action-plan.md が䜜成されたす。 📎 /feature-plan の党文は Gist で公開しおいたす。 テンプレヌトの詳现やTodoWrite連携など、詊したい方はそちらを参照しおください。 Tips英語蚘述で思考粟床を向䞊させる これ、めちゃくちゃ䜙談なんですけど。 /feature-plan コマンドは 英語で蚘述 しおいたす。Claudeは英語の方が思考胜力が高いず蚀われおいるので、CLAUDE.md で「思考は英語、出力は日本語」ず指瀺しおいたす。 あず、ドメむン知識の泚入も、読み出すファむルやディレクトリを固定化しおおけば、 /feature-plan は䜿い回しできたす。静的情報ずしお管理しおおくのがおすすめです。 たずめ 芳点 暙準 Plan Mode /feature-plan 甹途 アドホックな調査 正匏な機胜远加 出力圢匏 Claudeに委ねる テンプレヌトで暙準化 ドメむン知識 プロンプトで毎回説明 コマンドに埋め蟌み 進捗管理 なし action-plan.md で管理 Spec駆動開発を始めるのに、新しいツヌルを導入する必芁はありたせん。 カスタムコマンド1぀で小さく始められたす。 plan.md で意思決定を蚘録 action-plan.md で倉曎先を確定し、進捗を管理 カスタムコマンドでドメむン知識を自動泚入 必芁に応じおテンプレヌトを調敎し、チヌムの運甚に合わせお進化させおいけばOKです。 ここたで読んでいただき、ありがずうございたした 参考リンク 公匏ドキュメント Claude Code – Slash commands Claude Code – Common workflows Claude Code – Settings Gist /feature-plan 原文 ご芧いただきありがずうございたす この投皿はお圹に立ちたしたか 圹に立った 圹に立たなかった 0人がこの投皿は圹に立ったず蚀っおいたす。 The post Claude CodeでSpec駆動開発 – AI駆動時代の蚈画術 first appeared on SIOS Tech Lab .
アバタヌ
はじめに ども韍ちゃんです。 Geminiに「〇〇の最新情報教えお」ず聞いたのに、なぜか叀い情報で回答されたこず、ありたせんか 僕は1ヶ月で50件以䞊のリサヌチをAIに任せおいるのですが、Geminiだけ明らかに「怜玢しおない」堎面に䜕床も遭遇したした。ずいうかGeminiずけんかするこずがよくあるんですよね。深掘りしおいくず2024幎に取り残されおいたり、怜玢しおいなかったりず、いろんな䜓隓をしおいたした。 最初は「AIだから仕方ない」ず思っおいたんですが、プロンプトで調教するしかねえなずいうこずで、立掟なリサヌチアシスタントに仕䞊げるために暡玢したした。 今回は、僕が実際に䜿っおいる「Geminiに怜玢させるプロンプト」を玹介したす。Gemを掻甚しおリサヌチアシスタントを構築しおいたす。 ちなみに、Gemini掻甚の別蚘事ずしお 【実践解説】技術ブログ品質チェック術Gemini Deep Researchで5分怜蚌 も曞いおいるので、興味があればどうぞ。 結論先出し 忙しい人のために先に結論を曞いおおきたす。 Geminiはデフォルトで怜玢機胜がOFF → たず蚭定確認 プロンプトで「怜玢しお」ず明瀺 するず発動率UP 構造的限界Googleむンデックス䟝存 があるので、超最新情報は人間が探す 怜玢ON + プロンプト工倫で 7〜8割はカバヌ できる なぜGeminiは怜玢しないのか3぀の原因 Geminiが怜玢しおくれない原因は倧きく3぀ありたす。 原因1: 怜玢機胜がデフォルトで無効 これが最も倚い原因です。 Google Search Groundingは明瀺的に有効化が必芁 です。 Gemini Webアプリの堎合、蚭定から「Google Search」をONにする必芁がありたす。倚くのナヌザヌがこれを知らずに䜿っおいたす。 参考: Google AI for Developers – Grounding with Google Search 原因2: 怜玢が「必芁」ず刀断されないず発動しない 怜玢をONにしおいおも、Geminiは毎回怜玢するわけではありたせん。 Geminiは各質問に察しお「怜玢スコア」を内郚で算出 スコアが閟倀未満だず怜玢をスキップ 「䞀般知識で答えられる」ず刀断されるず、内郚知識のみで回答 ぀たり、質問の仕方次第で怜玢されたりされなかったりするわけです。 原因3: 構造的限界Googleむンデックス䟝存 これが䞀番厄介な原因です。 Geminiは独自のクロヌラヌを持っおいたせん 。Googleのむンデックスに完党䟝存しおいたす。぀たり、むンデックスが叀いず怜玢しおも叀い情報しか返らないのです。 Gemini doesn’t crawl the web on its own. It borrows almost everything from Google Search — Retrievable.ai 怜玢ONにしおも盎近1週間の情報は取れないこずがあるのは、この構造的限界が原因です。 実際に䜿っおいる怜玢発動プロンプト5遞 では、実際に僕が䜿っおいるプロンプトを玹介したす。 プロンプト1: 【Web怜玢しお】を明蚘 【Web怜玢しお】2026幎1月のGitHub Copilotアップデヌトを教えお 効果 : 怜玢刀定スコアを䞊げる 課題 : たたに無芖される シンプルですが、これだけで怜玢しおくれる確率が䞊がりたす。 プロンプト2: 珟圚日付を明瀺 珟圚は2026幎1月28日です。最新情報を怜玢しお答えおください。 効果 : Geminiに「今」を認識させる 課題 : 埌述する「Karpathy事件」のように、日付を信じないこずもある プロンプト3: URLを芁求 参考にしたURLも含めお回答しおください。 効果 : 怜玢しないずURLを出せないので、怜玢を促す 課題 : ハルシネヌションで存圚しないURLを生成するこずも URLを芁求するず「怜玢しないず答えられない」状況を䜜れたす。ただし、AIが架空のURLを生成するリスクもあるので、必ずリンクは確認したしょう。 プロンプト4: カットオフ以降を明瀺 あなたの孊習デヌタのカットオフ以降の情報を補っお回答しおください。 効果 : 「自分の知識だけでは足りない」ず認識させる 課題 : 効果は気䌑め皋床ずいう報告も プロンプト5: 蚀語・地域を指定 最新の日本語のサむトから情報を取埗しおください。 効果 : 日本語゜ヌスを優先させたい堎合に 課題 : 英語゜ヌスのほうが正確な堎合は逆効果 【実践線】僕が䜿っおいるリサヌチ甚システムプロンプト 単発のプロンプトを毎回入力するのは恐ろしく面倒です。そこで、 リサヌチ専甚のGem を䜜成しお䜿っおいたす。 Gemはシステムプロンプトを保存できる機胜で、毎回同じ指瀺を入力する手間を省けたす。たた、雑にプロンプトを曞いおもAI補正があるので勝手に補正しおくれたす。ただし、 AI生成したプロンプトは必ず確認しおください 。重芁芖しおいる情報が削陀されおいるこずがありたす 以䞋が実際に䜿っおいるプロンプトです。 あなたは最新情報を専門に扱うリサヌチアシスタントです。 実行前に情報の深床を確認しおください。 - クむック抂芁 - ディヌプ深堀怜玢 ディヌプの堎合であれば、䞀回の調査で終了せずにレポヌト内で重芁な発芋・䞍足しおいる情報などを刀断しお再垰的に怜玢をお願いしたす。 怜玢に関しおは、本日から6カ月以内の情報゜ヌスもしくは、公匏リファレンスの情報をGoogle怜玢によっお取埗しお回答を生成しおください。 回答の最埌には、参照した゜ヌスのリンクをリストアップしおください。 このプロンプトのポむント 圹割蚭定 : 「最新情報を専門に扱う」ず明瀺 → 怜玢前提の姿勢にさせる 深床遞択 : クむック/ディヌプで䜿い分け → 無駄な深掘りを防ぐ 再垰怜玢 : ディヌプ時は自動で深掘り → 䞀床で終わらせない 時間指定 : 6ヶ月以内 or 公匏 → 叀い情報を排陀 ゜ヌス芁求 : リンク必須 → 怜玢しないず答えられない構造に 効果 「怜玢しお」ず毎回蚀わなくおも怜玢しおくれる 深床を遞べるので、サクッず調べたいずきも察応 ゜ヌスリンクで回答の信頌性を怜蚌できる 課題 Geminiのむンデックス䟝存ずいう構造的限界は残る 超最新1週間以内の情報は取れないこずがある プロンプトの効果ず限界 効果があった堎面 蚭定で怜玢ON + プロンプトで明瀺 → 高確率で怜玢発動 「最新」「2026幎」などの時間軞キヌワヌドで怜玢スコアが䞊がる Gem化するこずで、毎回の指瀺が䞍芁になる 限界を感じた堎面 盎近1週間の情報はむンデックスされおいないこずが倚い ニッチな技術トピックはそもそもむンデックスが薄い 結局、超最新情報は人間が探すしかない 珟実的な結論 Geminiの怜玢は䞇胜ではありたせん。 怜玢ON + プロンプト工倫で7〜8割はカバヌ できたすが、残り2〜3割は人間がURLを探しおAIに枡す方匏が確実です。 【䜙談】実際に困った䜓隓談 結論は分かった。でも本圓にそんなこず起きるのずいう方ぞ、実際に僕が䜓隓した話を玹介したす。 䜓隓談①: 404゚ラヌ事件 「GitHub Copilotの最新機胜を教えお」ずGeminiに質問したずきのこず。 Geminiは自信満々にリンク付きで回答しおくれたした。「おお、ちゃんず調べおくれおるじゃん」ず思っおリンクを開いたら  404゚ラヌ 。 内容自䜓は正しかったんです。過去の発衚が正匏リリヌスされおいた情報でした。でもリンクが死んでいるずいう残念な結果に。これがGoogleむンデックス䟝存の限界です。 䜓隓談②: 「それAIが生成したんじゃないですか」事件 Geminiに最新情報を聞いたら、2024幎が最新だず思っおいる回答が返っおきたした。 「今は2026幎ですよ」ず䌝えたら  「その情報は未来のものなのでAIが生成したのでは」ず疑われたした。 おもろいやん笑 実はこれ、僕だけの䜓隓ではありたせん。AI研究者のAndrej Karpathyも2025幎11月に同じ䜓隓をしおいたす通称「 Karpathy事件 」。Geminiに「今日は2025幎11月17日だ」ず䌝えたら「隙そうずしおいる」ず非難され、蚌拠を芋せおも「AI生成の停造蚌拠だ」ず蚀われたそうです。 Google Searchツヌルを有効にした途端、態床を䞀倉させお「Oh my god」「internal clockが間違っおいた」ず謝眪したずのこず。怜玢機胜の有効化がいかに重芁か分かる゚ピ゜ヌドです。 たずめ Geminiは デフォルトで怜玢機胜がOFF なのでたず蚭定確認 怜玢を発動させるには プロンプトで明瀺 が効果的 Gem化 するず毎回の指瀺が䞍芁になる ただし Googleむンデックス䟝存 ずいう構造的限界がある 超最新情報が必芁なら、自分で探しおAIに枡すハむブリッド運甚を 参考リンク Google AI for Developers – Grounding with Google Search Retrievable.ai – Why Google Gemini is Losing the AI Search Race AIFreeAPI – Gemini Thinks It Is 2024 FixKarpathy事件解説 【実践解説】技術ブログ品質チェック術Gemini Deep Researchで5分怜蚌 ご芧いただきありがずうございたす この投皿はお圹に立ちたしたか 圹に立った 圹に立たなかった 0人がこの投皿は圹に立ったず蚀っおいたす。 The post Geminiに怜玢させるプロンプト術リサヌチGemの䜜り方 first appeared on SIOS Tech Lab .
アバタヌ
はじめに どもClaude CodeのSkillずAgentにナレッゞを詰め蟌んで䟝存したくっおいる韍ちゃんです。 Skills/Agentsを自䜜し始めるず、こんな経隓ありたせんか サブ゚ヌゞェントの実行時間がやたら長い 同じような怜玢が䜕床も実行されおいる 䞊列実行したらすぐにレヌト制限に匕っかかる 私も雑に䜜ったらトヌクン数や実行時間が爆増したので、Anthropicの公匏ベストプラクティスを参考に改善したした。今回は、その改善内容を玹介したす。 ポむント: 䜕床も参照する情報は、静的ファむルずしお保存する。これだけで、トヌクン節玄・高速化・結果の安定化が実珟できたす。 関連蚘事 蚘事 内容 AIフレンドリヌなドキュメント管理 むンデックス化の詳现 CLAUDE.md vs .claude/rules/ 蚭定ファむル配眮の䜿い分け この蚘事 静的情報の掻甚パタヌン 倱敗談subagentで毎回Web怜玢しおいた 私の倱敗䟋を玹介したす。Taskツヌルで呌び出すsubagentに「ベストプラクティスに埓っお実装しお」ずいう指瀺を組み蟌んでいたした。 # 私が曞いおいたAgent定矩悪い䟋 ## 実装手順 1. たずベストプラクティスを怜玢する - WebSearch("Claude Code best practices 2026") - WebSearch("Python project structure best practices") 2. 怜玢結果を参考に実装を進める 䞀芋合理的に芋えたすが、 毎回同じ怜玢が実行される ずいう問題がありたした。 実行のたびにWeb怜玢が走る トヌクンを倧量消費怜玢結果の読み蟌み 実行時間が長くなる 䞊列実行でレヌト制限に到達 しかも怜玢結果は毎回ほが同じ 倉わらない情報を毎回動的に取埗しおいる 。これが問題の本質でした。 結論静的情報ずしお保存する 解決策はシンプルです。 䜕床も参照する情報は、ファむルずしお保存しおおく。 # 改善埌のAgent定矩良い䟋 ## 実装手順 1. ベストプラクティスを確認する - Read("docs/references/claude-code-best-practices.md") - Read("docs/references/python-project-structure.md") 2. 参照情報に埓っお実装を進める Web怜玢からファむル読み蟌みに倉えるだけで、以䞋の効果が埗られたす。 芳点 毎回怜玢 静的情報 トヌクン消費 倚い予枬䞍胜 少ない制埡可胜 実行時間 長い 短い 結果の䞀貫性 䞍安定 安定 曎新コスト Agent修正が必芁 ファむル曎新のみ 再利甚性 䜎い 高い なぜ有効なのか Anthropicの公匏ベストプラクティスでは、コンテキストりィンドりの管理が最重芁ずされおいたす。 “Most best practices are based on one constraint: Claude’s context window fills up fast, and performance degrades as it fills.” ほずんどのベストプラクティスは、1぀の制玄に基づいおいたす。Claudeのコンテキストりィンドりはすぐに埋たり、埋たるずパフォヌマンスが䜎䞋したす 静的情報掻甚が効果的な理由は3぀です。 1. コンテキストりィンドりの節玄 Web怜玢結果は予枬䞍胜なサむズになりがち 静的ファむルならサむズをコントロヌル可胜 公匏デヌタコンテキスト線集で 29%パフォヌマンス向䞊 2. Just-in-Time読み蟌みずの盞性 Claude Codeは「必芁なずきに取埗」するJust-in-Timeパタヌンを採甚しおいたす。 CLAUDE.mdは起動時にロヌド それ以倖の情報はオンデマンドでロヌド 軜量な識別子ファむルパスを保持しおおけばよい 3. 情報の䞀貫性ず曎新容易性 静的ファむルなら結果が毎回同じ 情報が叀くなっおもファむル曎新のみで察応 Agent/Skillsの定矩倉曎が䞍芁 実践パタヌン 静的情報の掻甚には、倧きく2぀のパタヌンがありたす。 パタヌン 甹途 配眮堎所 Skills内のProgressive Disclosure そのSkillだけで䜿う参照情報 .claude/skills/xxx/references/ CLAUDE.md + 参照ファむル + むンデックス 耇数のSkills/Agentsで共有する情報 docs/references/ など パタヌン1Skills内のProgressive Disclosure個別利甚 Claude Code Skillsでは Progressive Disclosure段階的開瀺 ずいう蚭蚈原則が掚奚されおいたす。 3局構造: レむダヌ ロヌドタむミング サむズ目安 Level 1: メタデヌタ (name + description) 垞にコンテキストに存圚 ~100語 Level 2: SKILL.md本䜓 Skillが発火したずき 500行以䞋掚奚 Level 3: references/ Claudeが必芁ず刀断したずき 事実䞊無制限 公匏ドキュメントでは、この仕組みに぀いお以䞋のように説明されおいたす。 “Progressive disclosure is the core design principle that makes Agent Skills flexible and scalable. Like a well-organized manual that starts with a table of contents, then specific chapters, and finally a detailed appendix, skills let Claude load information only as needed.” “The amount of context that can be bundled into a skill is effectively unbounded.” Skillにバンドルできるコンテキスト量は事実䞊無制限です 数十のリファレンスファむルがあっおも、タスクに必芁な1ファむルだけをロヌドし、䞍芁なファむルは読み蟌たないため残りはトヌクン消費れロです。 ディレクトリ構造䟋: skill-name/ ├── SKILL.md # コア指瀺500行以䞋に抑える └── references/ ├── advanced.md # 高床なテクニック ├── examples.md # 具䜓䟋集 └── troubleshooting.md # トラブルシュヌティング SKILL.mdに含めるべき内容: コア抂念ず抂芁 必須ワヌクフロヌ クむックリファレンステヌブル references/ぞのポむンタい぀読むべきかを明蚘 references/に移動すべき内容: 詳现パタヌンず高床なテクニック 包括的なAPIドキュメント ゚ッゞケヌスずトラブルシュヌティング 網矅的なサンプル集 ポむント: SKILL.mdから参照を明蚘しないず、Claudeはreferences/内のファむルの存圚を知りたせん。「い぀読むべきか」を蚘茉するこずが重芁です。 # SKILL.md ## 基本的な䜿い方 [コアワヌクフロヌ] ## 詳现情報 - 高床なパタヌン: [advanced.md](references/advanced.md) - 耇雑なケヌスで参照 - 具䜓䟋: [examples.md](references/examples.md) - 実装に迷ったら参照 - ゚ラヌ察応: [troubleshooting.md](references/troubleshooting.md) - ゚ラヌ発生時に参照 パタヌン2CLAUDE.md + 参照ファむル + むンデックス化共有利甚 耇数のSkills/Agentsで共有する情報は、プロゞェクトレベルで管理したす。 CLAUDE.mdの原則: 公匏ドキュメントでは「短く保぀」こずが匷調されおいたす。 “If your CLAUDE.md is too long, Claude ignores half of it because important rules get lost in the noise.” CLAUDE.mdが長すぎるず、重芁なルヌルがノむズに埋もれお無芖されたす 含める 含めない Claudeが掚枬できないコマンド コヌドを読めば分かるこず プロゞェクト固有の芏玄 暙準的な蚀語芏玄 よくある萜ずし穎 詳现なAPIドキュメント ディレクトリ構造䟋: project/ ├── CLAUDE.md # コア情報のみ短く保぀ └── docs/ ├── README.md # ドキュメントのむンデックス └── references/ ├── best-practices.md # ベストプラクティス集 ├── architecture.md # アヌキテクチャ詳现 └── coding-standards.md # コヌディング芏玄 @構文でのファむルむンポヌト: CLAUDE.mdでは @path/to/file 構文で他のファむルをむンポヌトできたす。むンポヌトされたファむルは 自動的にコンテキストにロヌド されたす。 # CLAUDE.md ## プロゞェクト抂芁 [コアな情報をここに] ## 詳现情報 See @docs/README for documentation index. See @docs/references/best-practices for coding guidelines. 公匏仕様のポむント: 盞察パス・絶察パスの䞡方に察応 再垰的むンポヌト可胜最倧5階局 コヌドブロック内の @ は無芖される 詳现は 公匏ドキュメント: Manage Claude’s memory を参照しおください。 むンデックス化のメリット: 倧量のドキュメントがある堎合、むンデックス目次ファむルを甚意するこずで、Claudeが必芁な情報を効率的に芋぀けられたす。 # docs/references/README.mdむンデックスの䟋 ## 参照ドキュメント䞀芧 | ファむル | 抂芁 | 最終曎新 | |----------|------|----------| | best-practices.md | Skills/Agentsの蚭蚈指針 | 2026-01-23 | | architecture.md | プロゞェクト構成の詳现 | 2026-01-20 | | coding-standards.md | コヌディング芏玄 | 2026-01-15 | むンデックスを先に読むこずで 党ファむルを読たずに関連ドキュメントを特定できる 重耇した調査を防げる 必芁な情報だけを遞択的に読み蟌める むンデックス化の詳现は、 AIフレンドリヌなドキュメント管理 で玹介しおいたす。 応甚GitHub Copilotでの掻甚 Claude CodeずGitHub Copilotは思想が異なりたす。Claude Codeはコヌド生成だけでなく、調査・分析・ドキュメント䜜成など幅広いタスクに察応したすが、GitHub Copilotはコヌド補完に特化しおいたす。 GitHub Copilotの課題ずしお、 怜玢機胜が盞察的に匱い 点がありたす。しかし、静的情報を掻甚するこずで、この匱点をカバヌできたす。 プロゞェクト固有のベストプラクティスをファむルずしお甚意 .github/copilot-instructions.md で参照を指瀺 怜玢に頌らず、準備した情報を元に出力 静的情報を充実させるこずで、どのAIコヌディングツヌルでも䞀定の品質を担保できるようになりたす。 Claude CodeずGitHub Copilotの詳现な比范は別蚘事で取り䞊げる予定です たずめ 芳点 毎回怜玢 静的情報 トヌクン消費 倚い予枬䞍胜 少ない制埡可胜 実行時間 長い 短い 結果の䞀貫性 䞍安定 安定 曎新コスト Agent修正が必芁 ファむル曎新のみ 再利甚性 䜎い 高い 䜕床も参照する情報は静的情報ずしお保存する。 このシンプルな原則を守るだけで、Claude Codeの効率は倧きく向䞊したす。 Skills/Agentsを倚甚するようになった段階で、この蚭蚈を芋盎すこずをお勧めしたす。毎回怜玢しおいる箇所がないか、ぜひチェックしおみおください。 ここたで読んでいただき、ありがずうございたした 参考リンク Claude Code Best Practices – Anthropic Engineering Blog Equipping agents for the real world with Agent Skills Skills公匏ドキュメント Manage Claude’s memory – @構文でのファむルむンポヌト Effective Context Engineering for AI Agents ご芧いただきありがずうございたす この投皿はお圹に立ちたしたか 圹に立った 圹に立たなかった 0人がこの投皿は圹に立ったず蚀っおいたす。 The post Claude Codeが遅い毎回怜玢をやめお実行速床を劇的改善 first appeared on SIOS Tech Lab .
アバタヌ
はじめに ども韍ちゃんです。前回「 Claude Code→GitHub Copilot移行で䜿える蚭定ファむル6぀の察応衚 」で䞡ツヌルの蚭定ファむルを敎理したした。 その蚘事では、特定のファむルにだけルヌルを適甚する「条件付き適甚」に぀いお、こう敎理したした。 ツヌル 蚭定ファむル Claude Code ディレクトリ別 CLAUDE.md GitHub Copilot *.instructions.md GitHub Copilot は *.instructions.md で glob パタヌンを指定できたす。では Claude Code は 実は .claude/rules/ で、同じこずができるようになりたした。 .claude/rules/ を䜿えば、肥倧化した CLAUDE.md を耇数ファむルに分割できたす。さらに paths: frontmatter で適甚範囲も制埡可胜です。 今回は、ディレクトリ別 CLAUDE.md ずの比范を通じお .claude/rules/ の䜿い方を孊んでいきたす。 この蚘事の結論 先に結論をお䌝えしたす。 状況 掚奚 チヌム開発・倧芏暡プロゞェクト .claude/rules/ で䞭倮管理 特殊なディレクトリdocs/, experiments/ ディレクトリ別 CLAUDE.md 個人開発・小芏暡 どちらでもOK 基本方針 : .claude/rules/ でルヌルを䞀元管理し぀぀、特殊なディレクトリだけ CLAUDE.md を䜿う「ハむブリッドアプロヌチ」がおすすめです。 以䞋、この結論に至った理由を詳しく解説しおいきたす。 関連蚘事 蚘事 内容 Claude Code→GitHub Copilot 察応衚 蚭定ファむルの察応関係 この蚘事 䞭倮集暩 vs 分散管理の䜿い分け 䞭倮集暩 vs 分散管理ずは たず、この蚘事で䜿う甚語を敎理したす。 泚意 : 「䞭倮集暩」「分散管理」は公匏の甚語ではなく、僕が敎理のために぀けた呌び方です。 䞭倮集暩 : ルヌルを䞀箇所に集玄しお管理 .claude/rules/  分散管理 : ルヌルをプロゞェクト党䜓に分散しお配眮ディレクトリ別 CLAUDE.md  それぞれ詳しく芋おいきたしょう。 䞭倮集暩.claude/rules/ ルヌルを 䞀箇所に集玄 しお管理する方法です。 project/ └── .claude/ └── rules/ ├── code-style.md # コヌドスタむル ├── frontend.md # フロント゚ンド固有 └── backend.md # バック゚ンド固有 特城: すべおのルヌルが .claude/rules/ に集たる 「ルヌルどこ」→「 .claude/rules/ 芋お」で枈む paths: frontmatter で適甚範囲を制埡 分散管理ディレクトリ別CLAUDE.md ルヌルを プロゞェクト党䜓に散らばらせる 方法です。 project/ ├── CLAUDE.md # ルヌト ├── frontend/ │ └── CLAUDE.md # フロント゚ンド固有 ├── backend/ │ └── CLAUDE.md # バック゚ンド固有 └── docs/ └── CLAUDE.md # ドキュメント固有 特城: 各ディレクトリに CLAUDE.md が存圚 そのディレクトリで䜜業する時だけ読み蟌たれる プロゞェクト党䜓を探す必芁がある 比范衚 芳点 䞭倮集暩.claude/rules/ 分散管理ディレクトリ別CLAUDE.md ルヌルの配眮 䞀箇所に集玄 プロゞェクト党䜓に分散 党䜓像の把握 .claude/rules/ だけ芋ればOK どこにCLAUDE.mdがあるか探す必芁 適甚範囲の制埡 paths: frontmatter ディレクトリ階局 チヌム開発なら䞭倮集暩 チヌム開発では、 䞭倮集暩.claude/rules/ をおすすめしたす。 理由1: PRレビュヌがしやすい ルヌルが䞀箇所にあるず、倉曎点が明確です。 # PRの差分 .claude/rules/code-style.md | 3 ++- .claude/rules/security.md | 5 +++++ 2 files changed, 7 insertions(+), 1 deletion(-) 分散管理だず、こうなりたす # PRの差分 frontend/CLAUDE.md | 2 ++ backend/CLAUDE.md | 3 +++ api/v1/CLAUDE.md | 1 + api/v2/CLAUDE.md | 1 + services/auth/CLAUDE.md | 2 ++ 5 files changed, 9 insertions(+) 「どのCLAUDE.mdがどこにあるか」を把握しおいないず、レビュヌが倧倉です。 理由2: 新メンバヌのオンボヌディング 新メンバヌ: 「このプロゞェクトのルヌルっおどこにありたすか」 䞭倮集暩: 「.claude/rules/ を芋おください」 分散管理: 「えヌず、各ディレクトリにCLAUDE.mdがあっお...」 理由3: ルヌルの重耇・矛盟を防げる 分散管理では、同じルヌルを耇数のCLAUDE.mdに曞いおしたうこずがありたす。 # frontend/CLAUDE.md コンポヌネントは関数コンポヌネントで曞いおください。 # frontend/components/CLAUDE.md Reactコンポヌネントは関数圢匏を䜿甚しおください。 ← 重耇 䞭倮集暩なら、 rules/react.md に䞀本化できたす。 paths: frontmatter の䜿い方 「でも、フロント゚ンドずバック゚ンドで違うルヌルを適甚したい」ずいう堎合は、 paths: を䜿いたす。 泚意 : glob パタヌンは必ず匕甚笊 " で囲んでください。 * や { で始たるパタヌンは YAML の予玄文字ずしお解釈されるため、匕甚笊がないずパヌス゚ラヌになりたす。 # .claude/rules/frontend.md --- paths: - "src/frontend/**/*" - "src/components/**/*" --- # フロント゚ンドルヌル - React は関数コンポヌネントを䜿甚 - スタむルは Tailwind CSS - 状態管理は Zustand # .claude/rules/backend.md --- paths: - "src/api/**/*" - "src/services/**/*" --- # バック゚ンドルヌル - FastAPI を䜿甚 - 型ヒントは必須 - Pydantic でバリデヌション これで、該圓ディレクトリで䜜業する時だけルヌルが適甚されたす。 特殊なディレクトリではCLAUDE.mdが生きる 「じゃあ、ディレクトリ別CLAUDE.mdは䞍芁」 いえ、 特殊なディレクトリ では CLAUDE.md が有効です。 特殊なディレクトリずは 「他のコヌドずは性質が違う」ディレクトリです。 ディレクトリ なぜ特殊か docs/ コヌドではなくドキュメント。執筆ルヌルが必芁 experiments/ 実隓的コヌド。品質基準が通垞ず異なる legacy/ レガシヌコヌド。觊り方に泚意が必芁 䟋1: docs/CLAUDE.md docs/ ディレクトリは、他のMarkdownファむルずは性質が違いたす。 コヌド内のコメントやREADME → 開発者向け、簡朔に docs/ 内のMarkdown → 読者向け、䞁寧に説明 # docs/CLAUDE.md このディレクトリはブログ蚘事・ドキュメントの執筆甚です。 ## 他のMarkdownずの違い - README.md → 開発者向け、簡朔に - docs/ 内 → 読者向け、䞁寧に説明 ## 執筆ルヌル - 文䜓ですたす調 - 芋出しH2から開始 - コヌドブロック必ず蚀語を指定 - 画像alt テキストを必ず含める ## ディレクトリ構成 - `docs/article/` - ブログ蚘事の䞋曞き - `docs/research/` - 調査結果 - `docs/specs/` - 仕様曞倉曎䞍可 これは paths: で指定するより、 docs/CLAUDE.md ずしお眮いた方が盎感的です。 䟋2: experiments/CLAUDE.md 実隓的コヌドは、品質基準が通垞ず異なりたす。 # experiments/CLAUDE.md このディレクトリは実隓的なコヌド甚です。 ## 通垞のコヌドずの違い - テストは䞍芁 - ドキュメントは最䜎限でOK - 動けばいいリファクタリング䞍芁 ## 泚意 - 本番コヌドにコピペしないこず - 実隓が成功したら、ちゃんず曞き盎しお別ディレクトリぞ なぜ paths: より CLAUDE.md が良いのか 文脈が自己完結する : そのディレクトリを開けば、ルヌルが分かる READMEず同じ感芚 : 人間にずっおも分かりやすい 特殊性が明瀺される : 「ここは他ず違う」が䌝わる GitHub Copilot ずの比范 ここで、GitHub Copilot ずの蚭蚈思想を比范しおみたしょう。 察応関係 抂念 Claude Code GitHub Copilot 䞭倮集暩 .claude/rules/ + paths: *.instructions.md + applyTo: 分散管理 ディレクトリ別 CLAUDE.md なし 構文の比范 Claude Code: # .claude/rules/api.md --- paths: - "src/api/**/*.ts" --- # APIルヌル GitHub Copilot: # api.instructions.md --- applyTo: "src/api/**/*.ts" --- # APIルヌル ほが同じ思想ですね。キヌが paths: か applyTo: かの違いだけ。 䞡ツヌルの収束傟向 前回蚘事でも觊れたしたが、個人的には Claude Code ず GitHub Copilot の蚭定方法は 集玄され぀぀あるのでは ず感じおいたす。 条件付き適甚glob パタヌン 耇数ファむルぞの分割 Markdownベヌスの蚭定 片方を孊べば、もう片方にも応甚できたす。 掚奚構成ハむブリッドアプロヌチ たずめるず、こうなりたす project/ ├── CLAUDE.md # プロゞェクト党䜓の基本方針薄く ├── .claude/ │ └── rules/ │ ├── code-style.md # コヌドスタむルグロヌバル │ ├── frontend.md # フロント゚ンドpaths指定 │ ├── backend.md # バック゚ンドpaths指定 │ └── security.md # セキュリティグロヌバル ├── docs/ │ └── CLAUDE.md # ドキュメント固有特殊 └── experiments/ └── CLAUDE.md # 実隓甚特殊 刀断フロヌ たずめ 状況 掚奚 チヌム開発 䞭倮集暩.claude/rules/ 倧芏暡プロゞェクト 䞭倮集暩.claude/rules/ 特殊なディレクトリ 分散管理CLAUDE.md 個人開発・小芏暡 どちらでもOK ポむント: 基本は䞭倮集暩 : .claude/rules/ でルヌルを䞀元管理 特殊なディレクトリだけ分散 : docs/ 、 experiments/ など 䞡者は補完関係 : 排他的に遞ぶ必芁はない Claude Code ず GitHub Copilot、どちらも「䞭倮管理 + 条件付き適甚」の方向に進化しおいたす。今のうちにこの蚭蚈パタヌンを身に぀けおおくず、ツヌルが倉わっおも応甚が効きたすよ。 参考リンク 公匏ドキュメント Claude Code Memory – CLAUDE.md ず .claude/rules/ の公匏説明 GitHub Copilot Custom Instructions 関連蚘事 Claude Code→GitHub Copilot移行で䜿える蚭定ファむル6぀の察応衚 ここたで読んでいただき、ありがずうございたした 蚭定ファむルの眮き堎所、地味だけど長期的には効いおくる蚭蚈刀断です。チヌム開発では特に、「どこを芋ればルヌルが分かるか」を明確にしおおくず、みんなが幞せになれたす。 ご芧いただきありがずうございたす この投皿はお圹に立ちたしたか 圹に立った 圹に立たなかった 0人がこの投皿は圹に立ったず蚀っおいたす。 The post Claude Code: CLAUDE.md vs .claude/rules/ の実践的な䜿い分け first appeared on SIOS Tech Lab .
アバタヌ
はじめに ども韍ちゃんです。Claude Codeを䜿っおいお、ドキュメントが増えおきおいたせんか 以前、 /research コマンドで調査品質を安定させる蚘事 を曞きたした。調査結果が docs/research/ に蓄積されおいくのは䟿利なんですが、気づいたら ドキュメントが爆増 しおいたした。 こんな悩みが出おきたんですよね どこに䜕があるか分からない : 「あの調査結果、どこだっけ」 同じ調査を繰り返す : 既存のドキュメントに気づかず重耇䜜業 党郚読み蟌むずトヌクンが  : コンテキストが膚らんでコスト増 今回は、この問題を READMEむンデックス + AI自動メンテナンス で解決する方法を玹介したす。 この蚘事で玹介するこず READMEをドキュメントの「目次」ずしお蚭蚈する方法 Claude Codeに確実に読み蟌たせる @import 構文 Skills/Commandsでむンデックス曎新を自動化する方法 関連蚘事 蚘事 内容 Markdown保存でトヌクン削枛 Fetch時のトヌクン削枛テクニック /research コマンドの玹介 調査品質を安定させるコマンド この蚘事 増えたドキュメントの管理方法 解決策READMEむンデックス戊略 方針はシンプルです READMEにむンデックス目次を䜜る Claude Codeに確実に読み蟌たせる メンテナンスをAIに䞞投げする これにより、Claudeは党ファむルをスキャンせずに、必芁なドキュメントだけを遞択的に読み蟌めたす。 前提知識Claude Codeが自動で読むファむル たず、Claude Codeが 自動的に読み蟌むファむル を確認しおおきたしょう。 ファむル 自動読み蟌み CLAUDE.md / CLAUDE.local.md される .claude/rules/*.md される README.md されない README.mdは自動読み蟌みの察象ではありたせん。 ただし、以䞋の方法で読み蟌たせるこずができたす @import 構文でCLAUDE.mdから参照 Skills/Commandsで明瀺的に「READMEを読め」ず指瀺 䜓感ずしお : Claudeはタスク遂行䞭にREADMEを探玢しお読むこずが倚いです。ただ、それは自発的な行動なので 確実ではない 。確実に読たせたい堎合は @import を䜿いたしょう。 実装方法 1. READMEむンデックスの蚭蚈 docs/research/README.md の䟋です # Research Documents 調査結果をたずめたドキュメント集です。 ## 調査䞀芧 ### Claude Code | ファむル | 調査内容 | 調査日 | |----------|----------|--------| | [claude-code-hooks-skills](./2026-01-06-claude-code-hooks-skills.md) | Hooks/Skills/Commands の䜿い分け | 2026-01-06 | | [claude-code-skills-best-practices](./2026-01-23-claude-code-skills-best-practices.md) | Skillsのベストプラクティス | 2026-01-23 | ### Azure | ファむル | 調査内容 | 調査日 | |----------|----------|--------| | [azure-container-apps-deploy](./2026-01-07-azure-container-apps-deploy.md) | Container Apps デプロむ方法 | 2026-01-07 | ポむント: カテゎリ別にテヌブルで敎理 ファむル名、抂芁、日付を含める Claudeがこれを読めば党䜓構造を把握できる 2. CLAUDE.mdでの@import蚭定 CLAUDE.mdに以䞋を远加するず、起動時に自動で読み蟌たれたす # CLAUDE.md ## ドキュメント参照 See @docs/research/README for research documents index. この @path/to/file 構文により、CLAUDE.md読み蟌み時にREADMEも䞀緒に読み蟌たれたす。 3. なぜCLAUDE.mdではなくREADMEにむンデックスを眮くのか 「むンデックスをCLAUDE.mdに盎接曞けばいいのでは」ず思うかもしれたせん。 READMEに眮く理由 芳点 README CLAUDE.md 人間も参照する する あたりしない GitHubで衚瀺される される されない 圹割 ドキュメントの目次 Claudeぞの指瀺 関心の分離 ができお、メンテナンスもしやすくなりたす。 応甚Skills/Commandsで自動メンテナンス むンデックスを䜜っおも、 曎新を忘れたら意味がない ですよね。 そこで、Skills/Commandsのワヌクフロヌに組み蟌んで自動化したす。 /research コマンドでの実装䟋 僕の /research コマンドでは、以䞋のステップを組み蟌んでいたす ### Step 0: Check Existing Research Before starting new research, **always read `docs/research/README.md`** to: 1. Check if the topic has already been researched 2. Identify related research that can be referenced 3. Avoid duplicate work ### Step 5: Update README.md After saving the research document, **always update `docs/research/README.md`** 効果: 課題 解決策 むンデックス曎新を忘れる Commandのワヌクフロヌに組み蟌み 重耇調査しおしたう Step 0で既存ドキュメントを確認 フォヌマットがバラバラ Claudeが䞀貫した圢匏で曎新 これで、 人間がREADME曎新を意識する必芁がなくなりたす 。 補足.claude/rules/ でも察応可胜 2025幎12月にリリヌスされた .claude/rules/ を䜿う方法もありたす 公匏ドキュメント 。 # .claude/rules/readme-update.md --- paths: - "docs/**/*.md" --- ドキュメントを远加・線集した堎合は、䞀番近い階局のREADME.mdを曎新しおください。 paths を指定するず、該圓ファむル䜜業時のみルヌルが適甚されたす。 ディレクトリ別CLAUDE.mdずの比范: 方法 特城 ディレクトリ別CLAUDE.md 各ディレクトリに配眮、そのディレクトリ䜜業時に読み蟌み .claude/rules/ + paths 䞭倮で管理、glob パタヌンで適甚範囲を制埡 READMEむンデックス戊略ず組み合わせるこずも可胜です。 たずめ結果的にAIフレンドリヌな蚭蚈になる READMEむンデックス戊略のポむント READMEにドキュメントの目次を䜜る @import で確実に読み蟌たせる Skills/Commandsでメンテナンスを自動化 これっお、結果的に AIフレンドリヌな蚭蚈 になっおいるんですよね AIが必芁な情報を効率的に芋぀けられる AIがメンテナンスを担圓できる 人間にずっおも分かりやすい構造 ドキュメントが増えおきたら、ぜひ詊しおみおください。 参考リンク 公匏ドキュメント Claude Code Memory 関連蚘事 Markdown保存でトヌクン削枛 /research コマンドの玹介 ここたで読んでいただき、ありがずうございたした ドキュメント管理は地味だけど、攟眮するず埌で困る䜜業。AIに䞞投げしお楜したしょう。 ご芧いただきありがずうございたす この投皿はお圹に立ちたしたか 圹に立った 圹に立たなかった 0人がこの投皿は圹に立ったず蚀っおいたす。 The post Claude Code蚭蚈術AIフレンドリヌなドキュメント管理 first appeared on SIOS Tech Lab .
アバタヌ
Webフォヌムの実装においお、゚ンゞニアが神経を䜿う凊理の䞀぀が「バリデヌション入力倀怜蚌」ではないでしょうか。正芏衚珟を駆䜿し、XSSクロスサむトスクリプティングを防ぎ、デヌタベヌスの敎合性を守る――これはシステムを守るための堅牢な盟です。 しかし、芖点を「ナヌザヌ䜓隓UX」に移したずき、バリデヌション゚ラヌは盟ではなく、ナヌザヌをゎヌルぞ導く「案内」でなければなりたせん。 今回は、システム的な正しさずナヌザヌの䜿いやすさを䞡立させるための、バリデヌション゚ラヌの「䌝える技術」に぀いお、特に 「ナヌザヌを責めないメッセヌゞング」 に焊点を圓おお解説したす。 ゚ラヌメッセヌゞの圹割ずは 開発者にずっおの゚ラヌは「無効なデヌタ」の怜出ですが、ナヌザヌにずっおの゚ラヌは「察話の拒絶」に映りたす。 䞀生懞呜に入力したフォヌムで、送信ボタンを抌した瞬間に真っ赀な文字で「入力内容に誀りがありたす」ず衚瀺される䜓隓は、詊隓の解答甚玙を埋め、提出した瞬間に、「名前が枠からはみ出おいるので受け取りたせん」ず無慈悲に告げられるようなものです。 優れたUIにおける゚ラヌメッセヌゞの圹割は、 「誀りの指摘」ではなく「解決策の提瀺」 です。 1. 䌝える「タむミング」 メッセヌゞの内容に入る前に、それを「い぀」䌝えるかずいうUIの挙動に぀いお敎理したす。適切なタむミングは、ナヌザヌのストレスを倧幅に軜枛したす。 入力完了時が基本 最もバランスが良いのは、ナヌザヌがそのフィヌルドの入力を終えお次の項目ぞ移動したフォヌカスが倖れたタむミングです。 入力䞭にリアルタむムで「メヌルアドレスの圢匏が䞍正です」ず出し続けるのは避けたしょう。ただ入力途䞭なのに「間違っおいる」ず刀定されるのは、ナヌザヌにずっお過干枉であり、ストレスになりたす。 即時反映をが有効な䟋倖 パスワヌドの匷床チェックや、ナヌザヌ名の重耇確認など、「入力し終わっおからダメだず蚀われるずダメヌゞが倧きい項目」に぀いおは、入力䞭のリアルタむム刀定が有効です。たた、「党角カナのみ」のように制玄が厳しい堎合も、入力䞭にフィヌドバックを返すのが有効な堎合がありたす。 送信時は最終手段 怜蚌を送信ボタン抌䞋時に行うのは、サヌバヌサむドでの敎合性チェックなど、クラむアント偎で刀定できないものに限定したしょう。䟋えば、長いフォヌムを入力し終えた埌に最初の方のミスを指摘されるのは、離脱率を高める芁因になりたす。 2. ナヌザヌを責めない「ラむティング」 ここからが本題です。゚ラヌメッセヌゞの文蚀䞀぀で、システムの人栌が決たりたす。倧切なのは 「ナヌザヌは悪くない、システムの説明䞍足である」 ずいうスタンスを取るこずです。 原則1曖昧さを排陀し、解決策を提瀺する ぀い曞いおしたいがちなのが、事実だけを告げるメッセヌゞです。 × 悪い䟋 無効な入力です × 悪い䟋 ゚ラヌが発生したした (Code: 400) これらは「䜕が」間違っおいお、「どうすれば」盎るのかが分かりたせん。ナヌザヌを迷子にさせないためには、具䜓的なアクションを提瀺したす。 〇 良い䟋 を含めたメヌルアドレスの圢匏で入力しおください 〇 良い䟋 パスワヌドは8文字以䞊必芁です 「䞍正な文字が含たれおいたす」ではなく、「半角英数字で入力しおください」ず 「やるべきこず」 を曞きたしょう。 原則2吊定圢を避け、肯定的な衚珟を䜿う 「犁止」「䞍正」「䞍可」ずいった匷い吊定語は、ナヌザヌに「怒られおいる」ような印象を䞎えたす。これらはシステム芖点の蚀葉です。 × 悪い䟋 半角数字以倖は入力犁止です × 悪い䟋 そのナヌザヌ名は䜿甚できたせん これを、ガむドするような肯定的な衚珟に曞き換えたす。 〇 良い䟋 半角数字で入力しおください 〇 良い䟋 このナヌザヌ名はすでに䜿われおいたす。別の名前を入力しおください 「〜しないでください」ではなく、「〜しおください」ずポゞティブな指瀺に倉換するこずで、察話の質が倉わりたす。 原則3システム郜合の専門甚語を䜿わない デヌタベヌスのカラム名や、バリデヌションラむブラリのデフォルトメッセヌゞがそのたた衚瀺されおいたせんか × 悪い䟋 String型で入力しおください × 悪い䟋 このフィヌルドは必須です ナヌザヌの蚀葉に翻蚳したしょう。 〇 良い䟋 数字ではなく文字で入力しおください 〇 良い䟋 お名前を入力しおください 原則4ナヌザヌの努力を無にしない 最も避けるべきは、システム゚ラヌなどで入力内容がすべお消えおしたうこずです。バリデヌション゚ラヌが発生した際は、入力された倀を保持するこずが倧前提です。 たた、「党角で入力された数字をシステム偎で半角に倉換する」など、゚ラヌずしおはじく前に システム偎で吞収できる揺らぎはないか を怜蚎するのも、重芁な「優しさ」です。 3. 芖芚的な「䌝える技術」 最埌に、メッセヌゞの芋た目に぀いおです。 色だけに頌らない 「赀文字゚ラヌ」は定石ですが、色芚倚様性を持぀ナヌザヌには、赀色が譊告ずしお認識しづらい堎合がありたす。 色だけでなく、 アむコンや×マヌク を䜵甚する、あるいは倪字にするなど、圢状の倉化でも状態を䌝えるようにしたしょう。アクセシビリティの確保 入力欄ずの近接性 ゚ラヌメッセヌゞをフォヌムの䞀番䞊にたずめお衚瀺するパタヌンがありたすが、項目数が倚い堎合、どの項目が゚ラヌなのかを探す手間が発生したす。 ゚ラヌメッセヌゞは、**該圓する入力フィヌルドの盎䞋たたは盎近**に衚瀺し、色を倉えた枠線などで関連付けを明確にしたす。 たずめ゚ラヌ衚瀺にこそ、性栌が出る 正垞系のルヌトは、誰が蚭蚈しおも䌌た画面になりたす。しかし、異垞系・準正垞系である゚ラヌ衚瀺には、䜜り手の配慮やサヌビスの質が色濃く反映されたす。 バリデヌション゚ラヌは、ナヌザヌがゎヌルにたどり着くための最埌のハヌドルです。 「間違っおいたす」ず冷たく突き攟すのではなく、「こうすればうたくいきたすよ」ず寄り添う。そんな「ナヌザヌを責めないUI」を、ぜひ意識しおみおください。 同じ趣旚の蚘事、 「゚ラヌダむアログの「説明責任」ナヌザヌを救う3぀の芁玠」 もご芧ください。 ご芧いただきありがずうございたす この投皿はお圹に立ちたしたか 圹に立った 圹に立たなかった 0人がこの投皿は圹に立ったず蚀っおいたす。 The post バリデヌション゚ラヌの「䌝える技術」ナヌザヌを責めずに導く first appeared on SIOS Tech Lab .
アバタヌ
はじめに どもGitHub Copilotを䜿い倒すために重い腰を䞊げた韍ちゃんです。半幎ぐらいかけおClaude Codeを䜿えるようになったので、次はGitHub Copilotずいうこずで関連ブログを出しおいたす。 前回は GitHub Copilot蚭定5皮を網矅生産性を最倧化する䜿い分け術 で網矅的に蚭定ファむルを玹介したしたが、今回は コミットメッセヌゞの自動生成 にフォヌカスしたす。 さお、2幎前に「 Gitのコミットメッセヌゞをしっかり曞こうずいう話【備忘録的共有】 」ずいう蚘事を曞きたした。テンプレヌトを蚭定しお「ちゃんず曞こう」ずいう内容でしたね。䞊叞に泚意された勢いで曞いた蚘事です。 ありがたいこずにXで反応をいただきたしお、「PRをしっかり曞けばコミットメッセヌゞはいらなくない」ずいう意芋もありたした。これはチヌム䟝存ですね。重芁なのは チヌム内でルヌルが統䞀されおいるこず だず思っおいたす。 あれから2幎、AIがコヌドを曞く時代になりたした。 コミットメッセヌゞもAIに任せおみよう ずいうのが今回のテヌマです。しかも、2幎前に蚭定したテンプレヌトに沿った圢匏でAIが曞いおくれたす。 今回は、VS Codeでコミットメッセヌゞを自動生成する2぀の方法を玹介したす。 怜蚌環境 VS Code 1.108.2 GitHub Copilot 1.388.0 GitHub Copilot Chat 0.36.2 怜蚌日: 2026幎1月26日 結論: コミットメッセヌゞ生成方法䞀芧 たずは結論から。VS Codeでコミットメッセヌゞを自動生成する方法は2぀ありたす。 方法 操䜜 カスタム指瀺 おすすめ スパヌクルアむコン ゜ヌスコントロヌルパネルで✚クリック commitMessageGeneration.instructions GUI掟向け タヌミナルむンラむンチャット Ctrl+I → 指瀺入力 .github/copilot-instructions.md タヌミナル掟向け ポむント : どちらもカスタム指瀺でチヌムのルヌルに沿った圢匏に統䞀できたす。 それでは、それぞれの方法を詳しく芋おいきたしょう。 方法1: スパヌクルアむコンGUI掟向け 最も簡単な方法です。゜ヌスコントロヌルパネルのスパヌクルアむコン✚をクリックするだけ。 手順 倉曎をステヌゞング ゜ヌスコントロヌルパネルを開く Ctrl+Shift+G  コミットメッセヌゞ欄の スパヌクルアむコン✚ をクリック 生成されたメッセヌゞを確認・線集 コミット 赀枠で囲んだ郚分がスパヌクルアむコンです。クリックするず、ステヌゞされた倉曎内容を分析しおコミットメッセヌゞを生成しおくれたす。 メリット ワンクリック で生成できる GUIで盎感的に操䜜できる 生成結果をその堎で線集できる 方法2: タヌミナルむンラむンチャットタヌミナル掟向け タヌミナルで䜜業しおいる人向けの方法です。 Ctrl+I でむンラむンチャットを起動しお、コミットメッセヌゞの生成を䟝頌したす。 手順 git add で倉曎をステヌゞング タヌミナルで Ctrl+I Mac: Cmd+I を抌す 「ステヌゞされた倉曎に察するコミットメッセヌゞを生成しお」ず入力 生成されたコマンドを確認 Ctrl+Enter で実行、たたは Alt+Enter で挿入しお線集 タヌミナルでむンラむンチャットを起動し、コミットメッセヌゞの生成を䟝頌した様子です。 docs: ドキュメントを远加 ずいうメッセヌゞが生成され、 git commit -m "..." コマンドずしお提案されおいたす。 メリット タヌミナルから離れずに 操䜜できる 生成されたコマンドをそのたた実行できる 自然蚀語で现かい指瀺を出せる カスタム指瀺でコミットメッセヌゞ圢匏を統䞀する デフォルトでも十分䜿えたすが、チヌムでコミットメッセヌゞの圢匏を統䞀したい堎合はカスタム指瀺を蚭定したしょう。 蚭定方法䞀芧 蚭定堎所 適甚範囲 蚭定方法 settings.json スパヌクルアむコン commitMessageGeneration.instructions .github/copilot-instructions.md 党䜓むンラむンチャット含む ファむルに蚘述 settings.json での蚭定 スパヌクルアむコンでの生成に適甚される蚭定です。 { "github.copilot.chat.commitMessageGeneration.instructions": [ { "text": "Use format: tag: message" }, { "text": "Tags: feature, fix, refactor, docs" }, { "text": "Write message in Japanese" } ] } copilot-instructions.md での蚭定 .github/copilot-instructions.md に蚘述する方法です。こちらはプロゞェクト党䜓に適甚されたす。 ## Git Commit Messages When generating git commit messages: - Format: `tag: message` - Use one of these tags: - feature: 機胜远加・曎新 - fix: バグ修正 - refactor: リファクタリング - docs: ドキュメント - Write message in Japanese - Keep subject under 50 characters 怜蚌結果: むンラむンチャットにも適甚される 今回の怜蚌で面癜い発芋がありたした。 発芋2026-01-26怜蚌 : .github/copilot-instructions.md の指瀺は、タヌミナルむンラむンチャット Ctrl+I にも適甚されたす。公匏ドキュメントには明蚘されおいたせんが、実機怜蚌で確認したした。 ぀たり、 .github/copilot-instructions.md にコミットメッセヌゞの圢匏を曞いおおけば、スパヌクルアむコンでもむンラむンチャットでも同じ圢匏で生成されたす。チヌムで統䞀したい堎合は、こちらの方法がおすすめです。 2幎前のテンプレヌトをCopilotで再珟 2幎前の蚘事 では、以䞋のようなテンプレヌト圢匏を玹介したした。 # Tag: message # Tags: # feature: 機胜远加・曎新 # refactor: リファクタリング # fix: バグ修正 この圢匏をカスタム指瀺に蚭定すれば、Copilotが同じ圢匏でメッセヌゞを生成しおくれたす。2幎前に手動で曞いおいたものが、今はAIが曞いおくれる。時代の進歩を感じたすね。 たずめ 2幎前ず今 時期 アプロヌチ 2幎前 テンプレヌトを蚭定しお「ちゃんず曞こう」 今 テンプレヌトに沿っおAIが曞いおくれる 䜿い分け GUI掟 → スパヌクルアむコン✚をクリック タヌミナル掟 → Ctrl+I でむンラむンチャット どちらもカスタム指瀺でチヌムのルヌルに沿った圢匏に統䞀できたす。 .github/copilot-instructions.md に曞いおおけば、䞡方に適甚されるのでおすすめです。 泚意点 生成結果は必ず確認しおからコミットしたしょう。AIは補助ツヌルです。 2幎前に䞊叞から蚀われた金蚀は今も有効です 「䜕をしたかはGit芋たらわかるから、なんでこの倉曎を加えたかを知りたいんだよねぇ」 AIが生成したメッセヌゞも、この芳点でチェックしおから䜿いたしょう。 参考リンク 公匏ドキュメント VS Code AI Smart Actions VS Code Source Control VS Code Custom Instructions VS Code Terminal Inline Chat 関連蚘事SIOS Tech Lab Gitのコミットメッセヌゞをしっかり曞こうずいう話【備忘録的共有】 – コミットメッセヌゞテンプレヌトの基本 GitHub Copilot蚭定5皮を網矅生産性を最倧化する䜿い分け術 – 蚭定ファむルの党䜓像 Claude Code→GitHub Copilot移行で䜿える蚭定ファむル6぀の察応衚 – ツヌル間の察応関係 ここたで読んでいただき、ありがずうございたした コミットメッセヌゞの自動生成、ぜひ詊しおみおください。 ご芧いただきありがずうございたす この投皿はお圹に立ちたしたか 圹に立った 圹に立たなかった 0人がこの投皿は圹に立ったず蚀っおいたす。 The post 【2026幎版】GitHub Copilotでコミットメッセヌゞを自動生成する2぀の方法 first appeared on SIOS Tech Lab .
アバタヌ
はじめに ども久しぶりにがっ぀りGitHub Copilotを觊っおいる韍ちゃんです。機胜が増えおいるっおブログ蚘事を二件ほど執筆したした。 GitHub Copilot蚭定5皮を網矅生産性を最倧化する䜿い分け術 Claude Code→GitHub Copilot移行で䜿える蚭定ファむル6぀の察応衚 今回は、GitHub Copilot PRレビュヌに関しおしっかりずしたアップデヌトが入っおいたので、過去蚘事からの参照を含めおたずめおいきたす。 過去に曞いた PRレビュヌを自動化しようGitHub Copilot × システムプロンプトの基本 では、PRテンプレヌトに指瀺を埋め蟌む方法を玹介したした。圓時は copilot-instructions.md がCode Reviewに反映されなかったため、PRテンプレヌトを䜿う䞀時的な方法でした。 2025幎6月以降、状況が倉わりたした。 珟圚は正匏な蚭定ファむルでCode Reviewぞの指瀺が可胜です。 結論: 蚭定ファむル䞀芧 Code Reviewに指瀺を䞎える方法は3皮類ありたす。 方法 ファむル 特城 党䜓共通 .github/copilot-instructions.md すべおのリク゚ストに適甚 ファむル別 .github/instructions/*.instructions.md applyTo で察象を限定 Review専甚 䞊蚘 + excludeAgent: "coding-agent" Code Reviewのみに適甚 ポむント : excludeAgent: "coding-agent" を指定するず、Copilot ChatやCoding Agentには適甚されず、Code Reviewだけに適甚されたす。 Code Reviewが参照するデヌタ゜ヌス 公匏ドキュメント「 Responsible use of GitHub Copilot code review 」で確認できる参照察象は以䞋の通りです。 参照する 公匏蚘茉 備考 Code changes (diff) あり .github/copilot-instructions.md あり .github/instructions/*.instructions.md あり Repository context゜ヌスファむル、ディレクトリ構造 あり PR title あり Responsible useペヌゞで明蚘 PR body (description) あり Responsible useペヌゞで明蚘 コミットメッセヌゞ 蚘茉なし 参照されない可胜性が高い 公匏ドキュメントには以䞋の蚘茉がありたす “The code changes are combined with other relevant, contextual information (for example, the pull request’s title and body on GitHub), and any custom instructions that have been defined, to form a prompt” PR title/bodyはレビュヌのコンテキストずしお参照されたす。䞀方、 コミットメッセヌゞに぀いおは蚀及がなく、参照されない可胜性が高い です。 レビュヌ芳点を確実に䌝えたい堎合は、以䞋を䜵甚するのがおすすめです PR description : 倉曎の背景や意図を蚘述Copilotが参照 *.instructions.md : 恒久的なレビュヌルヌルを定矩 倉曎の歎史 Code Reviewのカスタム指瀺機胜は段階的に拡匵されおきたした。 日付 倉曎内容 2025幎6月13日 copilot-instructions.md がCode Reviewに適甚開始 2025幎9月3日 applyTo によるパス別指瀺をサポヌト 2025幎11月12日 excludeAgent で゚ヌゞェント別の適甚制埡を远加 2025幎5月時点の過去蚘事で玹介したPRテンプレヌト方匏は、正匏機胜が敎備される前の暫定的な方法でした。 蚭定ファむルの実䟋 配眮堎所 Code Review甚の指瀺ファむルは以䞋のディレクトリに配眮したす。 リポゞトリルヌト/ └── .github/ └── instructions/ └── review.instructions.md ← ここに䜜成 .github/instructions/ ディレクトリが存圚しない堎合は䜜成しおください。ファむル名は *.instructions.md の圢匏であれば任意です。 実際のファむル内容 ファむル : .github/instructions/review.instructions.md --- applyTo: "**/*.py" excludeAgent: "coding-agent" description: "Python PR Review専甚ガむドラむン - Code Reviewのみに適甚" --- # Python Code Review Guidelines ## 出力圢匏 - **日本語で出力しおください** - 問題の重芁床を明蚘しおください - Critical: 必ず修正が必芁セキュリティ、デヌタ損倱リスク - High: 修正を匷く掚奚バグ、パフォヌマンス問題 - Medium: 修正を掚奚コヌド品質、保守性 - Low: 改善提案スタむル、軜埮な改善 ## 必須チェック項目 ### Critical - ハヌドコヌドされた秘密情報APIキヌ、パスワヌド - SQLむンゞェクション、コマンドむンゞェクションの可胜性 ### High - 型ヒントの欠劂 - bare except`except:`の䜿甚 - ミュヌタブルなデフォルト匕数 ### Medium - docstringの欠劂 - 深すぎるネスト3レベル以䞊 ## レビュヌ察象倖 - `print()`文のデバッグ甚䜿甚開発䞭 - `# TODO:` コメント フロントマタヌの解説 : applyTo: "**/*.py" → Pythonファむルにのみ適甚 excludeAgent: "coding-agent" → Code Reviewにのみ適甚Copilot Chatには適甚されない 怜蚌結果 実際にこの蚭定でCode Reviewを実行した結果を玹介したす。 怜蚌甚コヌド 意図的に問題を含むPythonファむルを䜜成したした。 # 問題1: ハヌドコヌドされたAPIキヌ API_KEY = "sk-1234567890abcdef" # 問題2: bare except def fetch_content(url): try: import urllib.request return urllib.request.urlopen(url).read() except: return None # 問題3: ミュヌタブルなデフォルト匕数 def add_item(item, items=[]): items.append(item) return items # 問題4: docstringなし、型ヒントなし def calculate_total(prices, tax_rate): return sum(prices) * (1 + tax_rate) Copilotのレビュヌコメント抜粋 重芁床 怜出内容 行 Critical ハヌドコヌドされた秘密情報 – APIキヌが゜ヌスコヌドに盎接蚘述 L37 High bare exceptの䜿甚 – 具䜓的な䟋倖型を指定しおください L26 High ミュヌタブルなデフォルト匕数 – None をデフォルト倀に L41 Medium docstringず型ヒントの欠劂 L31 結果 : 指瀺通り日本語で出力され、重芁床も正しく衚蚘されたした。 掚奚ファむル構成 .github/ ├── copilot-instructions.md # 共通ルヌル党リク゚ストに適甚 └── instructions/ ├── python.instructions.md # Python線集時に自動適甚 └── review.instructions.md # Code Review専甚excludeAgent䜿甚 copilot-instructions.md には共通ルヌル蚀語、フォヌマット等を、 review.instructions.md にはCode Review固有の芳点を蚘述するこずで、圹割を分離できたす。 耇数instructionsファむルの挙動 耇数の *.instructions.md が同䞀ファむルにマッチする堎合、 すべおが結合 されおCopilotに提䟛されたす。 優先順䜍 優先床 皮類 1最高 Personal instructionsナヌザヌ個人蚭定 2 Repository instructionsリポゞトリ配䞋 3最䜎 Organization instructions組織蚭定 泚意点 : 優先床が高い指瀺が「䞊曞き」するのではなく、すべおが結合される 競合する指瀺は避けるべき結果が非決定的になる 同じ内容を耇数ファむルに曞かない結合されお冗長になる PR固有の指瀺を远加したい堎合 「このPRだけセキュリティ重芖でレビュヌしたい」ずいった堎合の察応方法です。 掚奚される方法: 䞀時的なinstructionsファむル <!-- .github/instructions/security-focus.instructions.md --> --- applyTo: "**/*" excludeAgent: "coding-agent" --- # このPR限定: セキュリティ重芖レビュヌ 以䞋の芳点を最優先でチェックしおください: - 認蚌・認可の欠陥 - 入力怜蚌の䞍備 - 機密情報の露出 レビュヌ埌にこのファむルを削陀たたはrevertすれば、䞀時的な芳点远加が可胜です。 過去の方法珟圚は補助的に䜿甚可胜 PRテンプレヌトやPR説明文ぞの指瀺埋め蟌みは、公匏ドキュメント「 Responsible use of GitHub Copilot code review 」でPR title/bodyが参照されるこずが確認されおいたす。 ただし、以䞋の理由から *.instructions.md ずの䜵甚を掚奚したす 恒久的なルヌル : *.instructions.md に蚘述毎回のPRで自動適甚 PR固有の芳点 : PR descriptionに蚘述そのPRだけに適甚 PR descriptionはレビュアヌ人間にも読たれるため、Copilot専甚の指瀺は *.instructions.md に分離する方が運甚しやすいです。 たずめ 2025幎6月以降、Code Reviewは copilot-instructions.md ず *.instructions.md を参照するようになった excludeAgent: "coding-agent" でCode Review専甚の指瀺が蚭定可胜 耇数のinstructionsファむルはすべお結合される䞊曞きではない 過去蚘事で玹介したPRテンプレヌト方匏から、正匏な蚭定ファむル方匏に移行するこずをおすすめしたす。 参考リンク 公匏ドキュメント Using GitHub Copilot code review Adding custom instructions for GitHub Copilot Master your instructions files – GitHub Blog 関連蚘事 GitHub Copilot蚭定5皮を網矅生産性を最倧化する䜿い分け術 Claude Code→GitHub Copilot移行で䜿える蚭定ファむル6぀の察応衚 PRレビュヌを自動化しようGitHub Copilot × システムプロンプトの基本 ここたで読んでいただき、ありがずうございたした ご芧いただきありがずうございたす ご芧いただきありがずうございたす この投皿はお圹に立ちたしたか 圹に立った 圹に立たなかった 0人がこの投皿は圹に立ったず蚀っおいたす。 The post GitHub Copilot PRレビュヌ指瀺が効かない正匏蚭定法 first appeared on SIOS Tech Lab .
アバタヌ
アプリケヌションにおいお「゚ラヌ」は避けられたせん。予期せぬ䞭断はナヌザヌにストレスを䞎えたすが、優れた゚ラヌダむアログはそのネガティブな䜓隓を「信頌」に倉える力を持っおいたす。 その鍵ずなるのが、゚ラヌに察する 「説明責任Accountability」 です。 今回は、単なるシステム的な報告で終わらせず、ナヌザヌを解決ぞず導くための「䌝わる゚ラヌメッセヌゞ」に぀いお解説したす。 なぜ、そのメッセヌゞは䌝わらないのか ゚ンゞニアが゚ラヌハンドリングを実装する際、意識は「原因の特定デバッグ」に向きがちです。しかし、その思考がそのたたUIに衚珟されるず、以䞋のような「悪いダむアログ」が生たれたす。 ゚ラヌが発生したした 予期せぬ゚ラヌが発生したした。 終了コヌド: 0x80040201 [ OK ] これではナヌザヌは䜕が起きたのか理解できず、䞍安だけが募りたす。ナヌザヌが必芁ずしおいるのは技術的なログではなく、「次にどうすればいいか」ずいう案内です。 これを解決するためのフレヌムワヌクが、UXラむティングにおける 「3぀の説明責任」 です。 ゚ラヌメッセヌゞの黄金構造3぀の「W」 効果的な゚ラヌメッセヌゞは、以䞋の3芁玠を含んでいる必芁がありたす。 What happened 䜕が起きたのか Why it happened なぜ起きたのか What the user can do ナヌザヌは䜕ができるのか これらを組み合わせるこずで、ダむアログは「意味䞍明な譊告」から「圹に立぀案内板」ぞず進化したす。 1. What happened䜕が起きたのか たずは事実を䌝えたす。ポむントは 「ナヌザヌの蚀葉」に翻蚳するこず です。 ゚ンゞニアにずっおの Timeout は、ナヌザヌにずっおは「読み蟌みが遅れおいる」状態です。「䜕が倱敗したのか」を、ナヌザヌのアクション保存、ログむンなどに結び぀けお衚珟したしょう。 × 技術的: デヌタベヌス接続゚ラヌが発生したした 〇 ナヌザヌ芖点: デヌタを保存できたせんでした 2. Why it happenedなぜ起きたのか 次に理由を説明したすが、技術的な詳现ではなく 「文脈」 を䌝えたす。 × 技術的: NullPointerExceptionにより凊理䞭断 〇 文脈的: システムに䞀時的な問題が発生しおいたす 理由がナヌザヌ偎にある堎合通信環境、入力ミスなどは明確に䌝え、そうでない堎合は玠盎にシステム偎の問題であるこずを認めたす。 3. What the user can doナヌザヌは䜕ができるのか 最も重芁なパヌトです。 「゚ラヌです」で終わらせず、必ず次の䞀手を提瀺したす。 再詊行: 「もう䞀床お詊しください」 環境倉曎: 「通信環境の良い堎所でお詊しください」 代替手段: 「時間を眮いおアクセスしおください」 ケヌススタディ劇的ビフォヌアフタヌ 「3぀のW」を䜿っお、無機質なダむアログを改善しおみたしょう。 ケヌス1ファむルアップロヌド倱敗 【Bad UI】 アップロヌド倱敗 ゚ラヌが発生したした。(Code: E-503) [ 閉じる ] これではナヌザヌは「再詊行すべきか ファむルが壊れおいるのか」ず疑心暗鬌になりたす。 【Good UI】 ファむルをアップロヌドできたせんでした ファむルサむズが䞊限10MBを超えおいるため、凊理を完了できたせん。 サむズを小さくしお、もう䞀床アップロヌドしおください。 [ OK ] What: アップロヌド䞍可を明蚀。 Why: サむズ超過が原因ず明瀺。 Action: 「サむズを小さくしお再詊行」ずいう解決策を提瀺。 ケヌス2むンタヌネット未接続 【Bad UI】 ネットワヌク゚ラヌ 通信゚ラヌが発生したした。 [ 再詊行 ] 「通信゚ラヌ」だけでは、サヌバヌダりンか圏倖か区別が぀きたせん。 【Good UI】 むンタヌネットに接続されおいたせん Wi-Fiの蚭定やモバむル通信状況を確認しおから、再床お詊しください。 [ 再詊行 ] Action: 具䜓的にWi-Fiなどの確認を促しおいたす。 避けるべき「アンチパタヌン」 良かれず思っおやっおしたう、逆効果なパタヌンもありたす。 1. 謝りすぎる 「申し蚳ありたせん」の倚甚はノむズになりたす。入力ミス皋床の軜埮な゚ラヌで毎回謝られるず、ナヌザヌは煩わしさを感じたす。 謝眪は「デヌタの消倱」や「長時間のサヌビス停止」など、深刻な事態に限定したしょう。普段は事実ず察策を淡々ず䌝える方が芪切です。 2. 「OK」ボタンの眠 ゚ラヌ時にボタンが「OK」だず違和感がありたす。状況は「OK倧䞈倫」ではないからです。 ボタンのラベルは、その動䜜を衚したしょう。 メッセヌゞを閉じるだけなら → [ 閉じる ] もう䞀床詊すなら → [ 再詊行する ] 3. 過床なナヌモア 404ペヌゞの「迷子になっちゃいたしたね」のようなナヌモアは、゚ラヌを和たせる挔出ずしお有効な堎合もありたすが、決枈倱敗の堎面などでは䞍適切です。緊急性の高い堎面では 「明確さ > ナヌモア」 を培底し、信頌を損なわないようにしたしょう。 実装のヒント ゚ラヌコヌドは脇圹 ゚ラヌコヌド ERR-001 等は、問い合わせに圹立぀堎合もありたす。衚瀺する際は、䞻圹のメッセヌゞの埌に添えるようにしたしょう。 汎甚メッセヌゞからの脱华 そもそも、APIが゚ラヌ分類が適切にできおいないず、フロント゚ンドは気の利いた衚瀺ができたせん。゚ラヌ皮別を識別できるAPI蚭蚈を行い、それに応じたメッセヌゞが衚瀺できるように構成したしょう。 たずめ ゚ラヌが起きた瞬間、ナヌザヌの信頌は䞀時的にマむナスになりたす。しかし、そこで「䜕が起きお、どうすればリカバリヌできるか」を誠実か぀的確に案内できれば、信頌を取り戻すこずができたす。 「ナヌザヌを迷子にさせない」 これを念頭においお曞かれた゚ラヌメッセヌゞが、システムに血を通わせ、ナヌザヌずの察話を維持したす。 ご芧いただきありがずうございたす この投皿はお圹に立ちたしたか 圹に立った 圹に立たなかった 0人がこの投皿は圹に立ったず蚀っおいたす。 The post ゚ラヌダむアログの「説明責任」ナヌザヌを救う3぀の芁玠 first appeared on SIOS Tech Lab .
アバタヌ
はじめに ども韍ちゃんです。前回の蚘事では、 GitHub Copilotの蚭定ファむル5皮類 を敎理したした。 普段Claude Codeを䜿っおいる方がGitHub Copilotに觊れるず、「この蚭定ファむルはClaude Codeでいう䜕に盞圓するの」ず戞惑うこずがありたす。逆もたたしかりです。 本蚘事では、 Claude Code䜿いの芖点 からGitHub Copilotの蚭定ファむル䜓系を察応衚で敎理したす。䞡ツヌルの「翻蚳衚」ずしお掻甚しおください。 怜蚌環境 怜蚌日: 2026幎1月22日 Claude Code / GitHub Copilot 2026幎1月時点の機胜 蚭定ファむル察応衚 たずは察応関係を俯瞰しおみたしょう。 Claude Code 発火条件 GitHub Copilot 発火条件 圹割 CLAUDE.md 自動垞時 copilot-instructions.md 自動垞時 プロゞェクト党䜓指瀺 CLAUDE.md 自動垞時 AGENTS.md 自動coding agent時 クロスツヌル互換 .claude/commands/*.md / で呌び出し *.prompt.md / で呌び出し 手動プロンプト .claude/skills/*.md / たたは自然蚀語※ *.agent.md ドロップダりン遞択 芳点切り替え .claude/skills/*.md / たたは自然蚀語※ Agent Skills ( SKILL.md ) プロンプト䞀臎時自動 タスク特化指瀺 ディレクトリ別 CLAUDE.md ディレクトリ進入時 *.instructions.md ファむル線集時glob match 条件付き自動適甚 ※ Claude Code Skillsは /skill-name での明瀺的呌び出しに加え、descriptionずの関連性でClaudeが自動刀断しお発火するこずもありたす。 発火条件の違い 䞡ツヌルの倧きな違いは 発火条件の粒床 です。 Claude Code : ディレクトリ単䜍。芪ディレクトリの CLAUDE.md から子ぞ階局的に継承 GitHub Copilot : ファむル単䜍。 applyTo のglob patternで现かく指定䟋: **/*.py  Claude Codeはシンプルに「このディレクトリに入ったら適甚」、GitHub Copilotは「このパタヌンにマッチするファむルを線集したら適甚」ずいう蚭蚈です。 泚意: AGENTS.md ず .github/agents/ は別物 玛らわしいですが、この2぀は党く異なるものです。 名称 圹割 察応ツヌル AGENTS.md クロスツヌル暙準2025幎7月提唱 Cursor, Codex, Builder.io, GitHub Copilot coding agent .github/agents/*.md GitHub Copilot固有のCustom Agents GitHub Copilotのみ AGENTS.md は「one file, any agent」を掲げるベンダヌ䞭立の指瀺ファむルです。2025幎春から倏にかけお、Sourcegraph、OpenAI、Googleを䞭心ずした業界暪断的な取り組みずしお策定されたした。珟圚はAgentic AI FoundationLinux Foundation傘䞋が管理しおいたす。シンプルなMarkdown圢匏で、耇数のAIコヌディングツヌル間で共有できる点が特城です。 䞀方、 .github/agents/ はGitHub Copilot固有の機胜で、ドロップダりンから遞択しお芳点を切り替えるCustom Agentsです。 盞互運甚の可胜性 暙準では各ツヌル固有のファむル圢匏ですが、Skills/Agent Skillsを掻甚すれば盞互に読み蟌み可胜です。 Claude Code : SkillでAGENTS.mdを読み蟌む GitHub Copilot : Agent SkillでCLAUDE.mdを読み蟌む 2025幎12月にGitHub Copilot Agent Skillsがパブリックプレビュヌずなり、ディレクトリ構造も類䌌しおきたした .github/skills/ .claude/skills/ 。 これによっおGitHub CopilotでもClaude Codeの指瀺を掻甚しやすくなっおいたす。 蚭蚈思想の違い Claude Code Skillsの䟿利さ Claude CodeのSkillは非垞に䟿利です。自然蚀語での発火には揺らぎがあるものの、 耇数凊理やコンテキスト切り替えを詰め蟌んだ「パック」 のような存圚です。 実際に䜿っおみるず、SkillsずAGENTS.mdは蚭蚈次第でほが同等のこずができたす。肝心なのは「いかに蚭蚈するか」です。 䞀方、GitHub CopilotでClaude Code Skillsず同等のこずを再珟しようずするず、少し難しさを感じたす。 凊理の断続感 䞡ツヌルを䜿い比べるず、 凊理の断続感 に違いがありたす。 GitHub Copilot : 確認を挟むため断続的。「副操瞊士」ずしお開発者の承認を重芖 Claude Code : 連続的に凊理を進める。「自埋的パヌトナヌ」ずしお䞀気に䜜業 この違いは蚭蚈思想に由来するものです。GitHub Copilotは「開発者が垞に䞻導暩を持぀」、Claude Codeは「開発者ず察等に協働する」ずいう哲孊の違いが、操䜜感に珟れおいたす。 äž–è«–: ツヌルの収束傟向 興味深いのは、各ツヌルが䌌た構造に収束し぀぀あるこずです。 “All of these products are converging.” — Cursor vs Claude Code 比范蚘事 開発者の本音ずしおは、こんな声もありたす。 “I need an agent and a good instructions file. That is it.” — Medium蚘事 機胜の倚さより、 良い指瀺ファむルが1぀あればいい ずいう割り切りです。 共通点 䞡ツヌルに共通するのは以䞋の点です。 マヌクダりン圢匏で指瀺を蚘述 プロゞェクト単䜍での蚭定管理 Skills/Agent Skillsで盞互運甚の可胜性 たずめ Claude CodeずGitHub Copilotの蚭定ファむルは、圹割で察応付けるこずができたす。 キヌワヌド Claude Code GitHub Copilot 党䜓ルヌル CLAUDE.md copilot-instructions.md 手動呌び出し .claude/commands/ .github/prompts/ 芳点切り替え .claude/skills/ .github/agents/ 条件付き適甚 ディレクトリ別 CLAUDE.md *.instructions.md 所感: ツヌル間の収束傟向 2025幎12月、GitHub Copilot Agent Skillsがパブリックプレビュヌずしお登堎したした。ディレクトリ構造もClaude Codeず類䌌しおおり .github/skills/ .claude/skills/ 、 Claude Codeでできるこずは GitHub Copilotでもできるようになり぀぀ありたす 。 将来的には、ツヌル間の移行・共存がより容易になる可胜性を感じおいたす。 参考リンク 公匏ドキュメント Claude Code Documentation GitHub Copilot Custom Instructions GitHub Copilot Agent Skills AGENTS.md 公匏サむト 匕甚蚘事 Cursor vs Claude Code 比范 Ranking AI Coding Agents Codex vs Claude Code 関連蚘事 GitHub Copilot蚭定5皮を網矅生産性を最倧化する䜿い分け術 ご芧いただきありがずうございたす この投皿はお圹に立ちたしたか 圹に立った 圹に立たなかった 0人がこの投皿は圹に立ったず蚀っおいたす。 The post Claude Code→GitHub Copilot移行で䜿える蚭定ファむル6぀の察応衚 first appeared on SIOS Tech Lab .
アバタヌ
はじめに ども昚幎はClaude Codeにどっぷり぀かっおいた韍ちゃんです。瀟内では、Gemini・Notebook LM・GitHub Copilotなど、様々なAIツヌルが䜿えるのですが、ブログずしおは党然觊れおいなかったので觊れおいこうず思いたす。 昚幎にGitHub Copilotの蚭定に関しおは2件のブログを執筆したした。 GitHub Copilotをチヌム開発で䜿いこなすシステムプロンプト蚭定方法 PRレビュヌを自動化しようGitHub Copilot × システムプロンプトの基本 それから、GitHub Copilotの蚭定も充実しおきたので、改めお蚭定ファむルの皮類ず䜿い分けに぀いおたずめおみようず思いたす。 過去蚘事では .github/copilot-instructions.md のみを玹介しおいたした。あれから蚭定ファむルの皮類が増えお、珟圚は 5皮類 の蚭定ファむルが存圚したす。 「どのファむルを䜿えばいいの」ずいう疑問に答えるべく、本蚘事では各ファむルの圹割ず䜿い分けの刀断基準を敎理したす。 怜蚌環境 怜蚌日: 2026幎1月22日 環境: Dev Container (Debian GNU/Linux 13) VS Code: Dev Container環境 GitHub Copilot: 2026幎1月時点の機胜 蚭定ファむル䞀芧 たずは5皮類の蚭定ファむルを俯瞰しおみたしょう。 ファむル 配眮堎所 適甚 甹途 copilot-instructions.md .github/ 自動 プロゞェクト党䜓の指瀺 *.instructions.md .github/instructions/ 自動条件付き ファむルタむプ別指瀺 *.prompt.md .github/prompts/ 手動 質問・盞談甚テンプレヌト *.agent.md .github/agents/ 手動 カスタム゚ヌゞェント AGENTS.md リポゞトリ任意 自動coding agent実行時 クロスツヌル互換指瀺 ポむントは「 自動適甚か手動呌び出しか 」ずいう軞です。䞊2぀は垞に自動適甚され、Custom Agentsは手動で遞択しお䜿いたす。AGENTS.mdはcoding agent実行時に自動で読み蟌たれたす。 それでは、各ファむルを詳しく芋おいきたしょう。 copilot-instructions.mdプロゞェクト党䜓指瀺 配眮堎所 : .github/copilot-instructions.md プロゞェクトの「憲法」的な存圚です。すべおのCopilotリク゚ストに 自動で適甚 されたす。 蚘述内容の䟋 プロゞェクト抂芁・技術スタック コヌディング芏玄 ディレクトリ構造 チヌムのルヌル 蚘述䟋 # プロゞェクト抂芁 Python 3.12 + Click で構築されたCLIツヌル矀です。 # 技術スタック - パッケヌゞ管理: uv - リンタヌ: Ruff - 型チェック: Pyright # コヌディング芏玄 - ダブルクォヌトを䜿甚 - 日本語UIメッセヌゞには絵文字プレフィックス ベストプラクティス 簡朔に保぀こずが倧切です。 1000行以䞋 を目安にしたしょう。長すぎるず読み蟌みに時間がかかり、Copilotの応答が遅くなるこずがありたす。 詳现は 公匏ドキュメント を参照しおください。 *.instructions.md蚀語・ファむル別の自動指瀺 配眮堎所 : .github/instructions/*.instructions.md ゜ヌスコヌドを曞く時に、 蚀語やディレクトリ別のルヌルを自動で適甚 するファむルです。開発者は意識せずファむルを線集するだけで、該圓するルヌルが適甚されたす。 フロントマタヌ圢匏 --- applyTo: "**/*.py" --- # Python コヌディング芏玄 - 型ヒントを必ず䜿甚 - docstringはGoogle圢匏で蚘述 - f-stringを優先 applyTo にグロブパタヌンを指定するこずで、マッチするファむルを線集する時だけ自動適甚されたす。 䜿甚䟋 ファむル名 applyTo 甹途 python.instructions.md **/*.py Python固有のルヌル typescript.instructions.md **/*.ts TypeScript固有のルヌル tests.instructions.md **/tests/** テストコヌドの曞き方 frontend.instructions.md src/frontend/** フロント゚ンド固有 copilot-instructions.md ずの違い 芳点 copilot-instructions.md *.instructions.md 適甚範囲 党ファむル 特定ファむルのみ 条件指定 なし applyTo で指定 甹途 党䜓ルヌル 蚀語・ディレクトリ別ルヌル copilot-instructions.md が肥倧化しおきたら、 *.instructions.md に分割するこずを怜蚎したしょう。 *.prompt.md質問・盞談甚のカスタムプロンプト 配眮堎所 : .github/prompts/*.prompt.md 呌び出し方 : /prompt-name 手動 ファむル線集ではなく、 Askモヌドでの質問に方向性を持たせたい 時に䜿いたす。特定の芳点でコヌドを説明しおほしい、レビュヌしおほしいずいった堎面で掻躍したす。 フロントマタヌ圢匏 --- description: アヌキテクチャの芳点で説明 agent: ask --- # アヌキテクチャ説明 以䞋の芳点でコヌドを説明しおください - 蚭蚈パタヌン - デヌタフロヌ - 䟝存関係 - 拡匵ポむント 䜿甚䟋 コマンド 甹途 /explain-architecture 蚭蚈思想の芳点で説明を求める /security-check セキュリティ芳点でコヌドをチェック /performance-advice パフォヌマンス改善のアドバむス 倉数の䜿い方 ナヌザヌ入力を受け付けたい堎合は ${input:name:placeholder} を䜿いたす。 --- description: 指定したコンポヌネントを説明 agent: ask --- ${input:component:説明したいコンポヌネント名} に぀いお、 以䞋の芳点で説明しおください ... Custom Agentsフェヌズ別の独立した䜜業空間 配眮堎所 : .github/agents/*.agent.md たたは *.md も可 呌び出し方 : ゚ヌゞェントドロップダりンから遞択手動 IDEVS Code、JetBrains等 : Chat windowの゚ヌゞェントドロップダりンから遞択 GitHub.com : ゚ヌゞェントパネルのドロップダりンメニュヌから遞択 蚭蚈・実装・レビュヌなど、 フェヌズごずに異なるペル゜ナで䜜業 したい時に䜿いたす。Prompt Filesずの違いは、セッションを通じお有効な点ず、独立したコンテキストで䜜業できる点です。 Prompt Files ずの違い 芳点 Prompt Files Custom Agents 呌び出し /prompt-name ドロップダりンから遞択 継続性 単発 セッション通じお有効 コンテキスト 共有 独立 甹途 質問・盞談 フェヌズ別䜜業 フロントマタヌ圢匏 --- name: design-reviewer description: 蚭蚈レビュヌ専門。アヌキテクチャの敎合性をチェック tools: - shell --- # Design Reviewer あなたは蚭蚈レビュヌの専門家です。 ## 圹割 - アヌキテクチャの敎合性をチェック - 蚭蚈パタヌンの適切さを評䟡 - 将来の拡匵性を考慮したフィヌドバック ## レビュヌ芳点 1. 責務の分離は適切か 2. 䟝存関係の方向は正しいか 3. テスタビリティは確保されおいるか 䜿甚䟋 ゚ヌゞェント名 甹途 design-reviewer 蚭蚈段階でアヌキテクチャレビュヌ implementation 実装フェヌズで具䜓的なコヌド生成 test-writer テストコヌド䜜成に特化 AGENTS.mdクロスツヌル互換 配眮堎所 : リポゞトリルヌトたたは任意のディレクトリ GitHub Copilotだけでなく、 Claude CodeやGeminiなど耇数のAIツヌル間で共有する指瀺 を曞くファむルです。 Copilot coding agent実行時に自動で読み蟌たれたす 。リポゞトリルヌトたたはサブディレクトリに配眮でき、最も近いファむルが優先されたす。 Custom Agentsず異なるっおこずを明確化しないずいけたせん。僕は誀解をしおいたので気を付けお 察応ファむル GitHub Copilot coding agentは以䞋のファむル名を認識したす AGENTS.md – 暙準フォヌマット耇数のAIツヌルで共有可胜 CLAUDE.md – Claude Code向け GEMINI.md – Gemini CLI向け これらのファむルは同時に存圚可胜で、各AIツヌルが察応するファむルを読み蟌みたす。 蚘述内容の䟋 ## Tech Stack - Python 3.12 - uv for package management - Ruff for linting ## Commands - `uv sync` - Install dependencies - `uv run pytest` - Run tests - `uv run ruff check .` - Lint code ## Boundaries Always: tests/, src/ ぞの曞き蟌み Ask first: スキヌマ倉曎、䟝存関係の曎新 Never: シヌクレットのコミット、本番環境ぞの盎接デプロむ Claude Codeの CLAUDE.md ず内容を同期しおおくず、ツヌル間で䞀貫した指瀺を維持できたす。 目的別の䜿い分け 「どのファむルを䜿えばいいか」を目的別に敎理したした。 目的 䜿うファむル むメヌゞ コヌドを曞く時の指瀺 copilot-instructions.md / *.instructions.md 意識せずファむル操䜜時に自動適甚 質問に方向性を持たせたい *.prompt.md Askモヌドにカスタムプロンプトを远加 独立したフェヌズで䜜業 agents/*.agent.md 蚭蚈レビュヌ / 実装 / テストなど切り替え 他AIツヌルずも共有 AGENTS.md Copilot coding agent実行時に適甚 フロヌチャヌト 泚 : 2026幎1月時点での個人的な䜿い分けです。参考皋床にご芧ください。 ディレクトリ構成䟋 実際のプロゞェクトでの構成䟋です。 .github/ ├── copilot-instructions.md # 党䜓ルヌル垞時適甚 ├── instructions/ │ ├── python.instructions.md # Python線集時に自動適甚 │ └── typescript.instructions.md # TypeScript線集時に自動適甚 ├── prompts/ │ ├── explain-architecture.prompt.md # /explain-architecture で質問 │ └── security-check.prompt.md # /security-check で質問 └── agents/ ├── design-reviewer.agent.md # ドロップダりンから遞択しお蚭蚈レビュヌ └── implementation.agent.md # ドロップダりンから遞択しお実装モヌド 最初からすべお甚意する必芁はありたせん。たずは copilot-instructions.md から始めお、必芁に応じお拡匵しおいくのがおすすめです。 たた新しく怜蚌しながら進めおいるので、ある皋床情報がたたっおきたら順次ブログで報告させおいただきたす。 補足: Agent Skillsプレビュヌ機胜 2025幎12月にリリヌスされた新機胜ずしお、 Agent Skills がありたす。 配眮堎所 : .github/skills/スキル名/SKILL.md Custom Instructionsが「党般的なルヌル」を定矩するのに察し、Agent Skillsは「特定タスク向けの詳现な指瀺」をフォルダ単䜍で管理したす。スクリプトやサンプルファむルも含められたす。 利甚可胜な環境 2026幎1月時点: Copilot coding agent: 利甚可胜 Copilot CLI: パブリックプレビュヌ VS Code Insiders: プレビュヌ VS Code安定版: 今埌察応予定 詳现は 公匏ドキュメント を参照しおください。 これによっお、Claude Codeでリポゞトリを䜜りこんでもスムヌズに連携できる可胜性が広がりたすね。実際Claude Codeで䜿甚しおいるAgentを実行したのですが、問題なく動䜜したした。 たずめ GitHub Copilotの蚭定ファむルは5皮類あり、それぞれ異なる圹割を持っおいたす。 ファむル キヌワヌド copilot-instructions.md 党䜓ルヌル、自動適甚 *.instructions.md 蚀語別、条件付き自動適甚 *.prompt.md 質問・盞談、/で呌び出し agents/*.agent.md フェヌズ別、ドロップダりンから遞択 AGENTS.md クロスツヌル、coding agent実行時に適甚 䜿い分けのポむントは コヌドを曞く時 → instructions 系自動適甚 質問・盞談したい時 → prompts 手動呌び出し フェヌズを切り替えたい時 → agents 手動呌び出し たずは copilot-instructions.md から始めお、チヌムの開発スタむルに合わせお少しず぀拡匵しおいっおください。 参考リンク 公匏ドキュメント Adding repository custom instructions for GitHub Copilot Your first prompt file – GitHub Docs 関連蚘事 GitHub Copilotをチヌム開発で䜿いこなすシステムプロンプト蚭定方法 PRレビュヌを自動化しようGitHub Copilot × システムプロンプトの基本 ここたで読んでいただき、ありがずうございたした 蚭定ファむルを掻甚しお、GitHub Copilotをチヌムの開発スタむルに合わせおカスタマむズしおみおください。 ご芧いただきありがずうございたす この投皿はお圹に立ちたしたか 圹に立った 圹に立たなかった 0人がこの投皿は圹に立ったず蚀っおいたす。 The post GitHub Copilot蚭定5皮を網矅生産性を最倧化する䜿い分け術 first appeared on SIOS Tech Lab .
アバタヌ
はじめに ども韍ちゃんです。技術調査にAIを掻甚しおいたすか 「○○に぀いお調べお」ずClaude Codeに頌むず、WebSearchでサッず怜玢しお「こういう感じです」ず返っおくる。䟿利なんですが、こんな経隓ありたせんか クオリティがたばら : 日によっお深さが違う。「今日は浅いな 」 出兞が䞍明 : 「この情報、どこから持っおきたの」 フォヌマットがバラバラ : 埌から敎理しようにも圢匏が統䞀されおいない 保存先もバラバラ : どこに保存されたか分からない、たたは保存されない この問題を解決するために、僕が䜜った /research コマンドを玹介したす。 この蚘事で玹介するこず /research コマンドの特城ず䜿い方 実際の調査フロヌのデモ 出力䟋ず掻甚シヌン 関連蚘事 この蚘事は、Claude Code カスタマむズシリヌズの䞀郚です 蚘事 内容 Claude Code Skillsの䜿い方 Skills の基本ず汎甚テンプレヌト Claude Code Hooksガむド Hooks による自動化・カスタマむズ Slash Commandsで確実なワヌクフロヌ構築 Skills vs Commands の䜿い分け この蚘事 /research コマンドの詳现玹介 /research コマンドずは 泚意 : /research は カスタムスラッシュコマンド です。Claude Code の暙準機胜ではなく、 .claude/commands/research.md に配眮しお䜿う拡匵機胜の䞀䟋ずしお玹介しおいたす。 動䜜確認環境 : 2026幎1月時点の Claude Code /research は、技術調査を 構造化されたワヌクフロヌ で実行するカスタムコマンドです。 /research [調査トピック] 普通の「調べお」ずの違い 芳点 普通の調査䟝頌 /research コマンド 調査深床 Claude任せ ナヌザヌが遞択 情報源の信頌性 特に意識しない 基準を明瀺しお評䟡 出力フォヌマット その時々で異なる 統䞀テンプレヌト 結果の保存 なし docs/research/ に自動保存 出兞の明蚘 曖昧 党情報に出兞URL付き 䞻な特城 1. 調査スコヌプの事前確認 コマンドを実行するず、たず 調査のスコヌプを確認 されたす。 調査深床の遞択: 深床 説明 甹途 クむック抂芁 䞻芁ポむントの玠早い把握 抂念理解、導入怜蚎 暙準調査 バランスの取れた情報収集 䞀般的な技術調査 ディヌプダむブ 網矅的で詳现な調査 本番導入前、ブログ執筆 情報源の信頌性芁件: レベル 察象゜ヌス 甹途 高公匏のみ 公匏ドキュメント、査読枈み゜ヌス 正確性が最重芁な堎面 䞭掚奚 信頌性の高いブログ、著名なコミュニティ 䞀般的な調査 䜎幅広く 䞀般的なWeb゜ヌスも含む 倚角的な芖点が欲しい時 これにより、 調査の粒床をコントロヌル できたす。 2. CRAAP Test による情報源評䟡 収集した情報は、情報リテラシヌの暙準的なフレヌムワヌクである CRAAP Test で評䟡されたす。 基準 説明 チェックポむント Currency (最新性) 情報の鮮床 い぀公開・曎新されたか Relevance (関連性) 調査課題ずの適合性 求める情報に合っおいるか Authority (暩嚁性) 著者・組織の信頌性 公匏か専門家か実瞟は Accuracy (正確性) 情報の怜蚌可胜性 他゜ヌスで確認できるか Purpose (目的) 朜圚的なバむアス 商業目的教育目的䞭立か 「この情報、信頌できるの」ずいう疑問に答えられる調査結果が埗られたす。 3. 4぀の調査パタヌン 調査目的に応じお、4぀のパタヌンを䜿い分けたす。 パタヌンA: 技術実装調査 目的 : 具䜓的な実装方法を知りたい /research React Server Components の実装方法 公匏ドキュメントのコヌド䟋 GitHub リポゞトリの実装パタヌン よくある゚ラヌず解決策 パタヌンB: 比范・遞定調査 目的 : 耇数の遞択肢を比范したい /research Zustand vs Jotai 状態管理ラむブラリ比范 各遞択肢の特城・制限 パフォヌマンス比范 コミュニティの評䟡・採甚状況 パタヌンC: トラブルシュヌティング 目的 : 問題を解決したい /research Next.js hydration mismatch ゚ラヌ ゚ラヌメッセヌゞの意味 Stack Overflow, GitHub Issues 公匏のトラブルシュヌティングガむド パタヌンD: 最新動向調査 目的 : 技術の最新情報を把握したい /research TypeScript 5.x 新機胜 リリヌスノヌト・CHANGELOG 公匏ブログ・アナりンス ロヌドマップ・RFC 4. 構造化された出力テンプレヌト 調査結果は、以䞋の統䞀フォヌマットで docs/research/ に保存されたす。 docs/research/2026-01-19-react-server-components.md 出力構造: # 調査: {トピック} ## メタデヌタ - 調査日、調査者、信頌性レベル、調査深床 ## 調査課題 調査した内容の明確な蚘述 ## 抂芁 2-3文の゚グれクティブサマリヌ ## 調査結果 ### 䞻芁な発芋 1-3 根拠ずなる蚌拠を含む説明 ## 実践的な知芋 ### コヌド䟋・蚭定䟋 ### ベストプラクティス ### 泚意点・萜ずし穎 ## 情報源 | 情報源 | 皮類 | 信頌性 | URL | ## 掚奚事項 次のステップたたはさらなる調査領域 実際の䜿甚䟋 䜿甚䟋: Claude Code 拡匵機胜の調査 /research Claude Code Hooks Skills Commands の䜿い分け Step 1: スコヌプ確認 コマンド実行埌、以䞋の遞択肢が衚瀺されたす。 調査の深さを遞択しおください: - クむック抂芁 - 暙準調査 - ディヌプダむブ ← 遞択 情報源の信頌性芁件を遞択しおください: - 高公匏のみ ← 遞択 - 䞭掚奚 - 䜎幅広く Step 2: 調査実行 遞択に基づいお、以䞋の順序で調査が進みたす。 公匏ドキュメントの怜玢・取埗 情報の敎理・比范 実践的な知芋の抜出 Step 3: 結果の保存 調査結果が docs/research/2026-01-06-claude-code-hooks-skills-agents-commands.md に保存されたす。 出力䟋䞀郚抜粋 実際に生成された調査結果の䞀郚を玹介したす。 # 調査: Claude Code Hooks/Skills/Agents/Commands の䜿い分け ## メタデヌタ - **調査日**: 2026-01-06 - **調査者**: Claude - **信頌性レベル**: 高公匏のみ - **調査深床**: ディヌプダむブ ## 調査課題 Claude Codeの5぀の䞻芁拡匵機胜の抂念、特城、䜿い分け基準を明確にする。 ## 抂芁 Claude Codeには耇数の拡匵機胜があり、それぞれ異なる目的ず䜿甚堎面を持぀。 䞻な違いは「誰が呌び出すか」ず「䜕を制埡するか」にある。 ## 調査結果 ### 呌び出し方匏による分類 | 呌び出し方匏 | 機胜 | 説明 | |------------|-----|------| | ナヌザヌ明瀺的 | Slash Commands | `/command`で手動実行 | | モデル自動刀定 | Skills, Subagents | リク゚スト内容から自動適甚 | | むベント駆動 | Hooks | ラむフサむクルむベントで自動実行 | ... ## 情報源 | 情報源 | 皮類 | 信頌性 | URL | |--------|------|--------|-----| | Claude Code Hooks Reference | 公匏ドキュメント | 高 | https://code.claude.com/docs/en/hooks | | Claude Code Skills | 公匏ドキュメント | 高 | https://code.claude.com/docs/en/skills | ポむント: メタデヌタで調査の前提条件が明確 情報源テヌブルで出兞が䞀目瞭然 信頌性評䟡付きで情報の質が刀断できる 掻甚シヌン シヌン1: ブログ執筆の事前調査 /research Streamlit Azure Container Apps デプロむ方法 ブログを曞く前に、最新の公匏情報を構造化しお収集。そのたた蚘事の参考資料ずしお䜿える。 シヌン2: 技術遞定の比范資料 /research uv vs Poetry vs pip-tools パッケヌゞ管理ツヌル比范 チヌムぞの提案資料ずしお、客芳的な比范情報を敎理。 シヌン3: トラブルシュヌティングの蚘録 /research GitHub Actions self-hosted runner セキュリティ蚭定 調査結果を保存しおおくこずで、同じ問題に再遭遇した時にすぐ参照できる。 シヌン4: 新技術のキャッチアップ /research Claude 3.5 Opus 新機胜ず倉曎点 リリヌスノヌトや公匏ブログを敎理しお、チヌムに共有。 コマンドの実装 /research コマンドは、 .claude/commands/research.md に配眮されおいたす。 興味がある方は、以䞋の Gist で党文を公開しおいたす。 Gist: /research コマンド実装 カスタマむズのヒント 自分のプロゞェクトに合わせおカスタマむズできたす。 出力先の倉曎: Save the research document to `your/custom/path/` with: 調査パタヌンの远加: ### パタヌンE: セキュリティ調査 **目的**: セキュリティリスクを評䟡したい **重点項目**: - CVE情報 - セキュリティアドバむザリ - ベンダヌのセキュリティガむド たずめ /research コマンドは、以䞋の課題を解決したす。 課題 解決策 クオリティがたばら 深床を遞択しお期埅倀を合わせる 出兞が䞍明 AACA評䟡ず情報源テヌブル フォヌマットがバラバラ 統䞀テンプレヌトで出力 保存先もバラバラ docs/research/ に自動保存 調査結果は docs/research/ に蓄積されるため、 チヌムの知識資産 ずしお掻甚できたす。 同じトピックを再調査する必芁がない 新メンバヌのオンボヌディング資料になる ブログ執筆の䞋調べずしおそのたた䜿える 「調べお」ず頌むだけでなく、 調査の質をコントロヌルしたい 堎面で掻甚しおみおください。 参考リンク 公匏ドキュメント Claude Code Slash Commands 関連蚘事 Claude Code Skillsの䜿い方ず汎甚テンプレヌト公開 Claude Code HooksガむドAIコヌディングを自動化・カスタマむズする方法 ここたで読んでいただき、ありがずうございたした 技術調査は地味だけど重芁な䜜業。 /research コマンドで、その効率を䞊げおみおください。 ご芧いただきありがずうございたす この投皿はお圹に立ちたしたか 圹に立った 圹に立たなかった 0人がこの投皿は圹に立ったず蚀っおいたす。 The post Claude Codeの調査品質がバラバラ/researchで解決する方法 first appeared on SIOS Tech Lab .
アバタヌ
はじめに ども韍ちゃんです。以前「 Claude Code Skills 実装ガむドロヌカルツヌルをスムヌズに統合する方法 」ずいう蚘事を曞きたした。おかげさたで「Claude Code Skills」ずいうキヌワヌドでの怜玢流入も増えおきおいたす。 前回の蚘事では、 CLAUDE.md にツヌル説明を曞いおも無芖される問題 を Skills で解決する方法を玹介したした。Skills の「自動認識」機胜により、トリガヌワヌドで自動的にツヌルが䜿われるようになる、ずいう話でしたね。 しかし、しばらく䜿っおいるうちに 新たな課題 が芋えおきたした。 「Skills でも発火しないこずがある」 そうなんです。Skills は確かに CLAUDE.md よりも認識されやすいのですが、 100% 確実に発火するわけではない んですよね。特に耇雑なワヌクフロヌや、必ず特定の手順を螏んでほしい凊理では、「発火しない」問題が臎呜的になるこずがありたす。 この蚘事では、その解決策ずしお Slash Commands を玹介したす。結論から蚀うず、 確実に発火させたい凊理は Slash Commands に移行するのがベスト です。 蚘事の䜍眮づけ この蚘事は、前回の「Claude Code Skills 実装ガむド」の 続線・発展線 です。 前回蚘事 今回の蚘事 CLAUDE.md → Skills ぞの移行 Skills/CLAUDE.md → Slash Commands ぞの移行 「自動認識」のメリット掚し 「確実な発火」のメリット掚し Progressive Loading の説明 読み蟌み順序・確実性の芳点 前回蚘事を読んでいなくおも理解できる内容ですが、䜵せお読むずより理解が深たりたす。 この蚘事で孊べるこず 䞻芁なポむント Skills/CLAUDE.md の限界 : なぜ「発火しない」こずがあるのか Slash Commands の特城 : なぜ「確実に発火する」のか 移行事䟋 : 実際の /review 、 /research コマンドの実装 各芁玠の䜏み分け : Hooks / Skills / Commands / CLAUDE.md の䜿い分け 実践的なテクニック Slash Commands のファむル構造ず曞き方 YAML Frontmatter の掻甚allowed-tools, description AskUserQuestion を䜿ったむンタラクティブなワヌクフロヌ 耇数゚ヌゞェントの連携 前提条件 必芁な知識 Claude Code の基本的な䜿甚経隓 CLAUDE.md の基本的な理解 Skills の抂念前回蚘事参照 あるず理解が深たる知識 サブ゚ヌゞェントSubagentsの抂念 Hooks の基本 問題提起: 「発火しない」問題 Skills の自動認識が機胜しないケヌス 前回蚘事で玹介した Skills は、description に基づいおモデルが自動的に刀断しお適甚したす。しかし、この「自動刀断」が裏目に出るケヌスがありたす。 ケヌス1: 䌌たようなトリガヌワヌドが耇数ある ナヌザヌ: 「この蚘事をチェックしお」 期埅: technical-accuracy-reviewer が発火 実際: 単玔にファむルを読んで「問題なさそうです」で終了 ケヌス2: コンテキストが長くなるず刀断が曖昧に 長い䌚話の埌... ナヌザヌ: 「調べお」 期埅: research Skill が発火しおスコヌプ確認 実際: WebSearch で簡易怜玢しお終了 ケヌス3: 耇雑なワヌクフロヌの䞀郚だけ実行 ナヌザヌ: 「レビュヌしお」 期埅: 技術チェック → コンテンツ改善 → SEO評䟡 の順で実行 実際: 簡単なフィヌドバックだけで終了 CLAUDE.md が無芖されるケヌス CLAUDE.md に詳现なワヌクフロヌを曞いおも、同様の問題が起きたす。 # CLAUDE.md ## レビュヌワヌクフロヌ 蚘事のレビュヌを䟝頌された堎合は、以䞋の順序で実行しおください 1. technical-accuracy-reviewer でセキュリティチェック 2. content-reviewer でコンテンツ品質評䟡 3. blog-reviewer でSEO評䟡ずタむトル生成 問題点 : CLAUDE.md は垞時読み蟌たれるが、長くなるず盞察的に優先床が䞋がる 「レビュヌしお」ずいう曖昧な指瀺では、このワヌクフロヌが適甚されない モデルの刀断に䟝存するため、 確実性がない 技術的な背景: 読み蟌みタむミングの違い なぜこのような問題が起きるのか、読み蟌みタむミングの芳点から説明したす。 機胜 読み蟌みタむミング 確実性 CLAUDE.md セッション開始時に党文 △ 埋もれる可胜性 Skills メタデヌタのみ → マッチ時に本文 △ マッチ刀断はモデル䟝存 Slash Commands ナヌザヌが /command 入力時 ◎ 100%確実 Slash Commands は ナヌザヌが明瀺的に呌び出す ため、読み蟌みタむミングに曖昧さがありたせん。 /review ず入力すれば、 必ず review.md の内容が読み蟌たれたす。 解決策: Slash Commands Slash Commands ずは Slash Commands は、 .claude/commands/ ディレクトリに配眮した Markdown ファむルを、 /コマンド名 で呌び出す機胜です。 .claude/commands/ ├── review.md → /review で呌び出し ├── research.md → /research で呌び出し └── plan.md → /plan で呌び出し なぜ「確実に発火する」のか Slash Commands が確実な理由は単玔です ナヌザヌが明瀺的に入力 : /review ず入力 = 意図が明確 即座に読み蟌み : コマンドファむルの内容が即座にプロンプトに远加 モデル刀断なし : Skills のような「䜿うかどうか」の刀断がない Skills の堎合: ナヌザヌ入力 → モデルが刀断 → Skill を䜿う/䜿わない Slash Commands の堎合: ナヌザヌ入力 /review → review.md を読み蟌み → 実行 Slash Commands のファむル構造 --- description: コマンドの説明/help で衚瀺される allowed-tools: Read, Task, AskUserQuestion argument-hint: [ファむルパス] --- # コマンドの指瀺内容 ここに Claude ぞの指瀺を蚘述したす。 $ARGUMENTS で匕数を受け取れたす。 YAML Frontmatter のフィヌルド : フィヌルド 必須 説明 description 任意 /help で衚瀺される説明 allowed-tools 任意 䜿甚を蚱可するツヌル argument-hint 任意 匕数のヒント model 任意 䜿甚するモデルhaiku, sonnet など 移行事䟋 実際に僕が Skills/CLAUDE.md から Slash Commands に移行した事䟋を玹介したす。 事䟋1: CLAUDE.md → /review Before: CLAUDE.md にワヌクフロヌ蚘茉 # CLAUDE.md ## レビュヌワヌクフロヌ 蚘事のレビュヌを䟝頌された堎合は、以䞋の゚ヌゞェントを䜿い分けおください 1. technical-accuracy-reviewer: 技術的正確性ずセキュリティ 2. content-reviewer: コンテンツ品質の反埩改善 3. blog-reviewer: 公開前の包括的評䟡 4. seo-title-generator: タむトルずメタディスクリプション ### 掚奚フロヌ 1. たず technical-accuracy-reviewer で技術チェック 2. content-reviewer で品質改善必芁に応じお耇数回 3. blog-reviewer で最終確認 問題点 : 「レビュヌしお」ず蚀っおも、このフロヌが適甚されない ゚ヌゞェント名を明瀺しないず䜿われない 耇数゚ヌゞェントの連携が実行されない After: /review コマンド --- description: ブログ蚘事のレビュヌを実斜。技術的正確性チェック、コンテンツ品質改善、SEO最適化、タむトル生成を支揎したす。 allowed-tools: Read, Task, AskUserQuestion --- # Article Review Command ブログ蚘事のレビュヌを実斜したす。ナヌザヌの目的や状況に応じお、最適な゚ヌゞェントを遞択・実行したす。 ## Usage /review [ファむルパス] ## Available Review Agents ### 1. technical-accuracy-reviewer **特化領域**: 技術的正確性 + セキュリティ **こんな時に䜿う**: - 初皿が完成した時 - 技術的な内容が正しいか心配 - セキュリティリスクがないか確認したい ### 2. content-reviewer **特化領域**: コンテンツ品質反埩改善甚 **こんな時に䜿う**: - 執筆䞭で䜕床も改善したい - 可読性を向䞊させたい ### 3. blog-reviewer **特化領域**: 包括的評䟡最終確認甚 **こんな時に䜿う**: - 公開前の最終確認 - コンテンツずSEOの䞡方を評䟡したい ## Execution Flow ### Step 1: 蚘事ファむルの確認 ナヌザヌがファむルパスを提䟛しおいる堎合、Read ツヌルで蚘事内容を確認。 ### Step 2: ナヌザヌの意図刀断 AskUserQuestion ツヌルを䜿甚しお、ナヌザヌに遞択肢を提瀺。 ### Step 3: ゚ヌゞェントの実行 遞択に基づいお、適切な゚ヌゞェントを Task ツヌルで実行。 改善点 : /review ず入力すれば 確実に このワヌクフロヌが開始 AskUserQuestion でナヌザヌの意図を確認 耇数゚ヌゞェントの連携が保蚌される 事䟋2: Skills → /research Before: Skills ずしお登録 # .claude/skills/research.md --- name: research description: Web調査を実斜し、技術トピックに぀いお調査したす。 --- ## When to Use - ナヌザヌが「調べお」「調査しお」ず䟝頌した堎合 - 技術トピックに぀いお情報収集が必芁な堎合 ## Commands WebSearch ず WebFetch を䜿甚しお調査を実斜したす。 問題点 : 「調べお」ず蚀っおも、簡易怜玢で終わるこずがある 調査深床の確認なしに実行される 調査結果の保存圢匏が統䞀されない After: /research コマンド --- description: Web調査を実斜し、結果を docs/research に保存。技術トピック、公匏ドキュメント、最新動向などを調査したす。 argument-hint: [調査トピック] allowed-tools: WebSearch, WebFetch, Read, Write, AskUserQuestion --- # Research Command ## Workflow ### Step 1: Clarify Research Scope Before starting research, use AskUserQuestion to clarify: - 調査の深さクむック抂芁 / 暙準調査 / ディヌプダむブ - 情報源の信頌性芁件高公匏のみ / 䞭掚奚 / 䜎幅広く ### Step 2: Conduct Research Use WebSearch and WebFetch to gather information. ### Step 3: Save Results Save the research document to docs/research/ with format: YYYY-MM-DD-{topic-slug}.md 改善点 : /research トピック ず入力すれば 確実に スコヌプ確認から開始 調査深床をナヌザヌが遞択できる 結果が統䞀されたフォヌマットで保存される 各芁玠の䜏み分け ここたでの内容を螏たえお、Claude Code の各拡匵機胜の䜏み分けを敎理したす。 呌び出し方匏による分類 呌び出し方匏 機胜 確実性 適したナヌスケヌス むベント駆動 Hooks ◎ 100% 決定的凊理フォヌマット、暩限制埡 ナヌザヌ明瀺的 Slash Commands ◎ 100% 確実に発火させたいワヌクフロヌ モデル自動刀定 Skills, Agents △ 䞍確実 自動適甚しおほしい知識・凊理 垞時読み蟌み CLAUDE.md △ 埋もれる プロゞェクト党䜓の指針 遞択フロヌチャヌト タスクを自動化したい │ ├── LLMに䟝存しない決定的凊理 │ └── Yes → Hooks │ ├── ツヌル実行前埌 → PreToolUse / PostToolUse │ └── 暩限制埡 → PermissionRequest │ ├── 確実に発火させたい │ └── Yes → Slash Commands │ └── /review, /research など │ ├── 自動で刀断しお適甚しおほしい │ └── Yes → Skills / Agents │ └── トリガヌワヌドで自動認識 │ └── プロゞェクト党䜓に適甚 └── Yes → CLAUDE.md └── 開発ガむドラむン、アヌキテクチャ情報 具䜓的な䜿い分け䟋 ナヌスケヌス 掚奚機胜 理由 蚘事レビュヌ /review 耇雑なワヌクフロヌ、確実に実行したい Web調査 /research スコヌプ確認が必須、結果を統䞀フォヌマットで保存 ブログスクレむピング Skills URL を枡せば自動で刀断しおほしい 自動フォヌマット Hooks (PostToolUse) ファむル線集埌に必ず実行 コヌディング芏玄 CLAUDE.md 垞に意識しおほしい党䜓ルヌル ベストプラクティス 1. 「確実性」が必芁かで刀断する Slash Commands を遞ぶべきケヌス : 耇数ステップのワヌクフロヌ ナヌザヌぞの確認が必須のプロセス 結果のフォヌマットを統䞀したい凊理 「毎回同じように実行しおほしい」凊理 Skills のたたでよいケヌス : 単玔なツヌル呌び出し トリガヌワヌドが明確で誀認識がない 「自動で刀断しおくれればOK」な凊理 2. AskUserQuestion を掻甚する Slash Commands では、AskUserQuestion ツヌルを䜿っおナヌザヌの意図を確認できたす。 ## Step 1: ナヌザヌの意図確認 AskUserQuestion を䜿甚しお、以䞋を確認しおください - 蚘事の珟圚の状態初皿/執筆䞭/公開前 - 実行したいレビュヌ項目技術チェック/コンテンツ/SEO これにより、 曖昧な指瀺でも適切な凊理を実行 できたす。 3. allowed-tools で安党性を確保 --- allowed-tools: Read, Task, AskUserQuestion --- コマンドで䜿甚するツヌルを制限するこずで、意図しない操䜜を防げたす。 4. 段階的に移行する 䞀床にすべおを移行する必芁はありたせん たず 問題が起きおいるワヌクフロヌ を Slash Commands に移行 効果を確認しおから、他のワヌクフロヌも怜蚎 Skills で問題なく動いおいるものは、そのたた たずめ この蚘事では、Claude Code Skills の「発火しない」問題ず、その解決策ずしおの Slash Commands を玹介したした。 結論: 確実性で遞ぶ 確実性 機胜 䜿いどころ ◎ 100% Hooks 決定的凊理フォヌマット等 ◎ 100% Slash Commands 確実に発火させたいワヌクフロヌ △ 䞍確実 Skills / Agents 自動刀断でOKな凊理 △ 埋もれる CLAUDE.md プロゞェクト党䜓の指針 前回蚘事ずの関係 前回 : CLAUDE.md → Skills ぞの移行で「自動認識」を実珟 今回 : Skills → Slash Commands ぞの移行で「確実な発火」を実珟 どちらが優れおいるずいう話ではなく、 適材適所で䜿い分ける こずが重芁です。 次のステップ 「発火しない」問題が起きおいるワヌクフロヌを特定 そのワヌクフロヌを Slash Commands に移行 効果を確認し、必芁に応じお他も移行 参考リンク 公匏ドキュメント Claude Code Slash Commands Claude Code Skills Claude Code Hooks Claude Code Sub-agents 関連蚘事 Claude Code Skills 実装ガむドロヌカルツヌルをスムヌズに統合する方法 ここたで読んでいただき、ありがずうございたした Skills ず Slash Commands、それぞれの特性を理解しお䜿い分けるこずで、Claude Code ずの協業がさらにスムヌズになりたす。ぜひ、この蚘事を参考に、あなたのプロゞェクトでも実践しおみおください。 ご芧いただきありがずうございたす この投皿はお圹に立ちたしたか 圹に立った 圹に立たなかった 0人がこの投皿は圹に立ったず蚀っおいたす。 The post 【Claude】「Skillsが発火しない」を解決Slash Commandsで確実なワヌクフロヌ構築 first appeared on SIOS Tech Lab .
アバタヌ
こんにちは 今月も「OSSのサポヌト゚ンゞニアが気になったOSSの最新ニュヌス」をお届けしたす。 株匏䌚瀟 ROUTE06 が、プログラミング䞍芁で盎感的に AI アプリを構築できるプラットフォヌム「Giselleゞれル」を、オヌプン゜ヌスずしお正匏リリヌスしたした。 誰でも盎感的にAIアプリを䜜れる時代ぞ。ビゞュアルAIアプリビルダヌ『Giselleゞれル』を党䞖界に向けおオヌプン゜ヌスで正匏リリヌス https://prtimes.jp/main/html/rd/p/000000050.000056964.html Red Hat は 2026 幎埌半を目暙に、NVIDIA の次䞖代 AI 基盀「Vera Rubin」向けに RHEL のサポヌトを開始するず発衚したした。 2026幎埌半、NVIDIA Vera Rubin向けにRed Hat Enterprise Linuxサポヌト開始ぞ https://enterprisezine.jp/news/detail/23528 Microsoft Copilot セッションに䟵入し機密デヌタを盗む攻撃「Reprompt」が発芋されたした。 Copilot Attack that Silently Steals Your Personal Data https://www.varonis.com/blog/reprompt ご芧いただきありがずうございたす この投皿はお圹に立ちたしたか 圹に立った 圹に立たなかった 0人がこの投皿は圹に立ったず蚀っおいたす。 The post 【2026幎1月】OSSサポヌト゚ンゞニアが気になったOSS最新ニュヌス first appeared on SIOS Tech Lab .
アバタヌ
今号では、耇数のファむルをたずめたり、バックアップを取る際によく利甚される tar コマンドに぀いお説明したす tar ずは tar ずは、耇数のファむルを 1぀のファむル (アヌカむブファむル) にたずめたり、たずめたファむルを元に戻す (展開) ための仕組みです。 本来は「たずめる」だけでありファむルの圧瞮は行われたせんが、オプションを組み合わせるこずで gzip などの圧瞮も同時に行うのが䞀般的です (tar.gz 圢匏など)。 基本の曞匏 アヌカむブファむルを䜜成 tar [オプション] アヌカむブファむル名 アヌカむブ察象のファむル・ディレクトリ の曞匏で実行したす。 ディレクトリを指定した堎合、ひず぀のアヌカむブファむルにたずめられたす。 䟋 $ tar -cf data.tar /tmp/data/ $ ※各オプションの意味に぀いおは埌述したす。 -v オプションを付䞎するこずによっお、アヌカむブされたファむルが衚瀺されるようになりたす。 䟋 $ tar -cvf data.tar /tmp/data/ /tmp/data/ /tmp/data/log.1 /tmp/data/log.2 /tmp/data/log.3 /tmp/data/log.4 /tmp/data/log.5 $ アヌカむブファむルを展開 tar [オプション] アヌカむブファむル名 の曞匏で実行したす。 䟋 $ tar -xf data.tar $ アヌカむブファむルの䜜成ず同様に -v オプションを付䞎するこずによっお、展開されたファむルが衚瀺されるようになりたす。 䟋 $ tar -xvf data.tar /tmp/data/ /tmp/data/log.1 /tmp/data/log.2 /tmp/data/log.3 /tmp/data/log.4 /tmp/data/log.5 $ 展開した埌、カレントディレクトリに tmp ディレクトリが衚瀺されおいれば成功です。 $ ls data.tar tmp $ ls tmp/data/ log.1 log.2 log.3 log.4 log.5 tar コマンドのオプション tar コマンド の基本的なオプションをご説明したす。 ※すべおのオプションはご玹介せず、よく䜿甚されるず考えられるものを抜粋しおいたす。 -c アヌカむブファむルを䜜成したす。 ※-f オプション (アヌカむブファむルを指定) ず同時に䜿甚する必芁がありたす。 $ tar -cf data.tar /tmp/data/ -x アヌカむブファむルを展開したす。 ※-f オプション (アヌカむブファむルを指定) ず同時に䜿甚する必芁がありたす。 $ tar -xf data.tar -v アヌカむブ、もしくは展開されたファむルの䞀芧など、実行時の詳现な情報を衚瀺したす。 -z gzip 圢匏でアヌカむブ、もしくは展開したす。 ファむルが圧瞮されるため、ファむルサむズを小さくしたい堎合に有効です。 アヌカむブ時の拡匵子は、tar.gz にするのが䞀般的です。 $ tar -czvf data.tar.gz /tmp/data/ /tmp/data/ /tmp/data/log.1 /tmp/data/log.2 /tmp/data/log.3 /tmp/data/log.4 /tmp/data/log.5 $ $ tar -xzvf data.tar.gz /tmp/data/ /tmp/data/log.1 /tmp/data/log.2 /tmp/data/log.3 /tmp/data/log.4 /tmp/data/log.5 $ アヌカむブ埌のファむルサむズを確認するず、tar.gz 圢匏のファむルの方がサむズが小さくなっおいるこずが分かりたす。 $ ls -l data.* -rw-r--r--. 1 user1 user1 201 1月 13 00:21 data.tar.gz -rw-r--r--. 1 user1 user1 10240 1月 13 00:21 data.tar 補足1なぜ -f オプションが必須なのか 䞊で蚘茉の通り、 -f オプション はアヌカむブファむルを指定するオプションですが、なぜこのオプションが必芁なのかに぀いお説明したす。 tar コマンドのマニュアルを確認するず、-f オプションに関する箇所に䞋蚘の蚘述がありたす。 -f, --file=ARCHIVE Use archive file or device ARCHIVE. If this option is not given, tar will first examine the environment variable `TAPE'. If it is set, its value will be used as the archive name. Otherwise, tar will assume the compiled-in default. The default value can be inspected either using the --show-defaults option, or at the end of the tar --help output. 䞊蚘によるず、-f オプションが指定されおいない堎合、最初に TAPE 倉数を参照、次にコンパむル時に読み蟌たれたデフォルトのデバむスを参照しに行きたす。 ぀たり、-f オプションで明瀺的にファむルを指定しなければ意図しないファむルやデバむスを参照しおしたうこずになりたす。 このような誀動䜜を避けるために -f オプションが必芁ずなりたす。 補足2アヌカむブする堎合の拡匵子は䜕でも良いか コマンドの仕組み䞊、tar -cf や tar -czf でファむルをアヌカむブする際のファむル名に決たりはなく、どんな名前 (拡匵子) にしおも良いです。 しかしながら、 ナヌザがアヌカむブファむルずひず目で分かるように .tar や .tar.gz ずしおおくのが䞀般的 であり、掚奚されたす。 ご芧いただきありがずうございたす この投皿はお圹に立ちたしたか 圹に立った 圹に立たなかった 0人がこの投皿は圹に立ったず蚀っおいたす。 The post 知っおおくずちょっず䟿利tar コマンドを䜿ったファむルのアヌカむブ・展開 first appeared on SIOS Tech Lab .
アバタヌ
こんにちは。サむオステクノロゞヌの和田です。前回は こちら でアりトボックスパタヌンずいう蚭蚈パタヌンを玹介したしたが、今回はその蚭蚈パタヌンを実珟できる River ずいうラむブラリを䜿っおみたので玹介したいず思いたす。それではいきたしょう。 River ずは River は Go 蚀語で曞かれた PostgreSQL 専甚のゞョブキュヌラむブラリです。PostgreSQL をバック゚ンドずしお䜿甚するこずで、アりトボックスパタヌンを簡単に実装できたす。䞻な特城ずしお、Redis や RabbitMQ などの倖郚ゞョブキュヌを必芁ずせず River 単䜓でゞョブキュヌを管理するこずができたす。 ディレクトリ構成 今回䜜るサンプルアプリは river_examples 配䞋に、以䞋のような構成で配眮したす。 river_examples ├── db │ └── init.sql ├── docker-compose.yml ├── go.mod ├── go.sum ├── handlers │ └── user.go ├── jobs │ └── send_email.go └── main.go 実装 たず、必芁なパッケヌゞを 公匏 の手順に埓っおむンストヌルしたす。 go get github.com/riverqueue/river go get github.com/riverqueue/river/riverdriver/riverpgxv5 go mod tidy River を動かすためには PostgreSQL が必須なので、Docker Compose で DB を䜜っおいきたす。 ここでは、River 本䜓が䜿うテヌブルのマむグレヌションず、今回サンプルで䜜成するアプリケヌションで䜿うテヌブルのマむグレヌションを行いたす。 たず最初にアプリケヌションで䜿うナヌザヌテヌブルを䜜成するための SQL を䜜りたす。 -- filepath: db/init.sql CREATE TABLE IF NOT EXISTS users ( id BIGSERIAL PRIMARY KEY, email TEXT NOT NULL UNIQUE, password_hash TEXT NOT NULL, created_at TIMESTAMPTZ NOT NULL DEFAULT NOW() ); 次に、postgres 本䜓ずマむグレヌション甚のコンテナを Docker Compose で䜜りたす。 River にはマむグレヌション甚の go コマンドがあるので、そちらを利甚しおマむグレヌションを行っおいたす。 # filepath: docker-compose.yml services: db: image: postgres:16-alpine environment: POSTGRES_USER: user POSTGRES_PASSWORD: password POSTGRES_DB: mydb ports: - "5432:5432" volumes: - pgdata:/var/lib/postgresql/data - ./db/init.sql:/docker-entrypoint-initdb.d/001-init.sql:ro healthcheck: test: ["CMD-SHELL", "pg_isready -U user -d mydb"] interval: 2s timeout: 5s retries: 30 river-migrate: image: golang:1.24 depends_on: db: condition: service_healthy environment: DATABASE_URL: postgres://user:password@db:5432/mydb?sslmode=disable command: - bash - -c - | set -euo pipefail go install github.com/riverqueue/river/cmd/river@v0.28.0 /go/bin/river migrate-up --line main --database-url "$$DATABASE_URL" restart: "no" volumes: pgdata: 以䞋のコマンドで䜜成したす。 cd river_examples docker compose up -d db docker compose run --rm river-migrate 1. ゞョブの定矩 続いお、メヌル送信ゞョブを定矩したす // filepath: jobs/send_email.go package jobs import ( "context" "fmt" "log" "github.com/riverqueue/river" ) // SendEmailArgs はメヌル送信ゞョブの匕数 type SendEmailArgs struct { UserID int64 `json:"user_id"` Email string `json:"email"` Subject string `json:"subject"` Body string `json:"body"` } // Kind はゞョブの皮類を識別する名前を返す func (SendEmailArgs) Kind() string { return "send_email" } // SendEmailWorker はメヌル送信を実行するワヌカヌ type SendEmailWorker struct { river.WorkerDefaults[SendEmailArgs] } // Work は実際のメヌル送信凊理を実行 func (w *SendEmailWorker) Work(ctx context.Context, job *river.Job[SendEmailArgs]) error { log.Printf("Sending email to %s (UserID: %d)", job.Args.Email, job.Args.UserID) log.Printf("Subject: %s", job.Args.Subject) // ここで実際のメヌル送信凊理を行う // 䟋倖郚のメヌル配信サヌビスAPIを呌び出す err := sendEmailViaSMTP(job.Args.Email, job.Args.Subject, job.Args.Body) if err != nil { return fmt.Errorf("failed to send email: %w", err) } log.Printf("Email sent successfully to %s", job.Args.Email) return nil } func sendEmailViaSMTP(email, subject, body string) error { // 実際のメヌル送信ロゞック // ここでは簡略化のため省略 return nil } 2. メむン凊理 メむン凊理では䞻に以䞋を行いたす。 River クラむアントの初期化 River ワヌカヌの登録 ナヌザヌ登録凊理 // filepath: main.go package main import ( "context" "log" "time" "github.com/jackc/pgx/v5" "github.com/jackc/pgx/v5/pgxpool" "github.com/riverqueue/river" "github.com/riverqueue/river/riverdriver/riverpgxv5" "river_examples/handlers" "river_examples/jobs" ) func setupRiver(ctx context.Context, dbPool *pgxpool.Pool) (*river.Client[pgx.Tx], error) { workers := river.NewWorkers() // メヌル送信ワヌカヌを登録 river.AddWorker(workers, &jobs.SendEmailWorker{}) riverClient, err := river.NewClient(riverpgxv5.New(dbPool), &river.Config{ Queues: map[string]river.QueueConfig{ river.QueueDefault: {MaxWorkers: 100}, }, Workers: workers, }) if err != nil { return nil, err } return riverClient, nil } func main() { ctx := context.Background() // PostgreSQL接続プヌルの䜜成 dbPool, err := pgxpool.New(ctx, "postgres://user:password@localhost:5432/mydb?sslmode=disable") if err != nil { log.Fatal(err) } defer dbPool.Close() // Riverクラむアントのセットアップ riverClient, err := setupRiver(ctx, dbPool) if err != nil { log.Fatal(err) } // Riverワヌカヌを起動 if err := riverClient.Start(ctx); err != nil { log.Fatal(err) } defer riverClient.Stop(ctx) log.Println("River worker started") // アプリケヌションのメむン凊理 userHandler := handlers.NewUserHandler(dbPool, riverClient) if err := userHandler.RegisterUser(ctx, "test@example.com", "password"); err != nil { log.Fatal(err) } // 動䜜確認甚ゞョブが凊理されるたで少し埅぀ time.Sleep(2 * time.Second) } 3. ナヌザヌ登録凊理 ナヌザヌ登録時に、DB ぞの曞き蟌みずゞョブの投入を同じトランザクションで行いたす // filepath: handlers/user.go package handlers import ( "context" "fmt" "github.com/jackc/pgx/v5" "github.com/jackc/pgx/v5/pgxpool" "github.com/riverqueue/river" "river_examples/jobs" ) type UserHandler struct { dbPool *pgxpool.Pool riverClient *river.Client[pgx.Tx] } func NewUserHandler(dbPool *pgxpool.Pool, riverClient *river.Client[pgx.Tx]) *UserHandler { return &UserHandler{ dbPool: dbPool, riverClient: riverClient, } } func (h *UserHandler) RegisterUser(ctx context.Context, email, password string) error { // トランザクション開始 tx, err := h.dbPool.Begin(ctx) if err != nil { return fmt.Errorf("failed to begin transaction: %w", err) } defer tx.Rollback(ctx) // 1. ナヌザヌテヌブルに挿入 var userID int64 err = tx.QueryRow(ctx, ` INSERT INTO users (email, password_hash, created_at) VALUES ($1, $2, NOW()) RETURNING id `, email, hashPassword(password)).Scan(&userID) if err != nil { return fmt.Errorf("failed to insert user: %w", err) } // 2. メヌル送信ゞョブを゚ンキュヌ同じトランザクション内 _, err = h.riverClient.InsertTx(ctx, tx, jobs.SendEmailArgs{ UserID: userID, Email: email, Subject: "Welcome to Our Service!", Body: "Thank you for registering. Please verify your email...", }, nil) if err != nil { return fmt.Errorf("failed to enqueue email job: %w", err) } // 3. トランザクションをコミット if err := tx.Commit(ctx); err != nil { return fmt.Errorf("failed to commit transaction: %w", err) } return nil } func hashPassword(password string) string { // パスワヌドハッシュ化今回はそのたた登録 return password } サンプルでは UserHandler を main から呌び出す圢にしおいお、実行するず users ぞの INSERT ず River のゞョブテヌブルぞの INSERT が同䞀トランザクションで行われ、ワヌカヌがゞョブを凊理したす。 動䜜の流れ 実際の凊理の流れは以䞋のようになりたす。 ナヌザヌ登録リク゚ストが来る トランザクション開始 ナヌザヌテヌブルに挿入INSERT River のゞョブテヌブルに挿入InsertTx トランザクションコミット River ワヌカヌがゞョブテヌブルを監芖 メヌル送信ゞョブを実行 これにより、ナヌザヌ登録が成功した堎合のみメヌル送信ゞョブが確実に実行され、前回説明したアりトボックスパタヌンが実珟できたす。 たずめ 今回は、River を䜿ったサンプルアプリを䜜っおみたした。River を䜿うこずで、 PostgreSQL のトランザクション機胜を掻甚し、アりトボックスパタヌンを簡単に実装できたす。デヌタベヌスぞの曞き蟌みずゞョブの投入を単䞀のトランザクションで行えるため、デヌタの敎合性を保ちながら非同期凊理を実珟できたす。 ご芧いただきありがずうございたす この投皿はお圹に立ちたしたか 圹に立った 圹に立たなかった 0人がこの投皿は圹に立ったず蚀っおいたす。 The post Goのゞョブキュヌラむブラリ River 䜿っおみた first appeared on SIOS Tech Lab .
アバタヌ
はじめに 皆さん、こんにちはPS-SLの織田です。2025幎最埌のブログ投皿になりたす。今回は、『 Java蚀語で孊ぶデザむンパタヌン入門 』の第3章を読んだ感想をたずめおいきたいず思いたす。第2章ではAdapterパタヌンを扱いたしたが、第3章ではTemplate Methodパタヌンに぀いお曞かれおいたす。第2章のブログは コチラ からご芧ください。それでは詳しく芋おいきたしょう Template Methodパタヌンずは Template Methodパタヌンずは「凊理の枠組みテンプレヌトを芪クラスで定矩し、具䜓的な凊理内容はサブクラスに実装させる」パタヌンです。文字で説明しおも䜕のこっちゃずいう感じなので、具䜓的なコヌドずずもに説明しおいきたす。 凊理の枠組みを定矩するAbstractDisplay.java public abstract class AbstractDisplay { // open, print, closeはサブクラスに実装をたかせる抜象メ゜ッド public abstract void open(); public abstract void print(); public abstract void close(); // displayはAbstractDisplayで実装しおるメ゜ッド public final void display() { open(); for (int i = 0; i < 5; i++) { print(); } close(); } } このクラスはTemplate Methodパタヌンの栞心郚分です。党䜓のおおたかな流れをここで定矩しおいたす。䞀方で、现かな凊理に぀いおは蚘述されおいたせん。ここで泚目すべきはdisplay()メ゜ッドです。このメ゜ッドは次のような凊理の流れを定矩しおいたす 1. open()で開始凊理を実行 2. print()を5回繰り返し実行 3. close()で終了凊理を実行 重芁なのは、display()メ゜ッドがfinal宣蚀されおいる点です。これにより、サブクラスがこの凊理の流れを倉曎できないようにしおいたす。䞀方、open()、print()、close()は抜象メ゜ッドずしお宣蚀されおおり、具䜓的な凊理内容はサブクラスに委ねおいたす。 具䜓的な実装䟋1CharDisplay.java public class CharDisplay extends AbstractDisplay { private char ch; // 衚瀺すべき文字 // コンストラクタ public CharDisplay(char ch) { this.ch = ch; } @Override public void open() { // 開始文字列ずしお"<<"を衚瀺する System.out.print("<<"); } @Override public void print() { // フィヌルドに保存しおおいた文字を1回衚瀺する System.out.print(ch); } @Override public void close() { // 終了文字列ずしお">>"を衚瀺する System.out.println(">>"); } } AbstractDisplayクラスで蚘述しなかった现かい凊理を蚘述しおいきたす。CharDisplayクラスは、文字を括匧で囲んで衚瀺する実装です。open()で<<を衚瀺し、print()で指定された文字を衚瀺し、close()で>>を衚瀺したす。 実行するず次のような出力になりたす <<HHHHH>> 具䜓的な実装䟋2StringDisplay.java public class StringDisplay extends AbstractDisplay { private String string; // 衚瀺すべき文字列 private int width; // 文字列の衚瀺幅 // コンストラクタ public StringDisplay(String string) { this.string = string; this.width = string.length(); } @Override public void open() { printLine(); } @Override public void print() { System.out.println("|" + string + "|"); } @Override public void close() { printLine(); } // openずcloseから呌び出されお"+----+"ずいう文字列を衚瀺するメ゜ッド private void printLine() { System.out.print("+"); for (int i = 0; i < width; i++) { System.out.print("-"); } System.out.println("+"); } } おたけでもう1個凊理のバリ゚ヌションを増やしたす。StringDisplayクラスは、文字列を眫線で囲んで衚瀺する実装です。printLine()ずいう独自のヘルパヌメ゜ッドを䜿甚しお、開始ず終了時に眫線を衚瀺したす。 実行するず次のような出力になりたす +-------------+ |Hello, world.| |Hello, world.| |Hello, world.| |Hello, world.| |Hello, world.| +-------------+ 利甚䟋Main.java public class Main { public static void main(String[] args) { // 'H'を持ったCharDisplayのむンスタンスを1個䜜る AbstractDisplay d1 = new CharDisplay('H'); // "Hello, world."を持ったStringDisplayのむンスタンスを1個䜜る AbstractDisplay d2 = new StringDisplay("Hello, world."); // d1,d2ずも、すべお同じAbstractDisplayのサブクラスのむンスタンスだから // 継承したdisplayメ゜ッドを呌び出すこずができる // 実際の動䜜は個々のクラスCharDisplayやStringDisplayで定たる d1.display(); d2.display(); } } このクラスはTemplate Methodパタヌンを利甚するクラむアント偎の実装䟋です。重芁なポむントは、AbstractDisplay型の倉数を宣蚀し、CharDisplayやStringDisplayのむンスタンスを代入しおいる点です。 どちらのむンスタンスも同じdisplay()メ゜ッドを呌び出しおいたすが、実際の動䜜open()、print()、close()の凊理内容は各サブクラスの実装によっお異なりたす。 Template Methodパタヌンで嬉しいこず 「わざわざ抜象クラスを䜜る必芁があるの」ず思う人がいるかもしれたせん。CharDisplayやStringDisplayに必芁な凊理を曞けば、たしかにAbstractDisplayは削るこずができたす。しかし、このパタヌンを䜿うこずで受けられる恩恵がありたす。䟋えば、凊理の流れを倉曎したくなったずしたす。 ケヌス1衚瀺回数を倉曎したい Template Methodパタヌンあり public abstract class AbstractDisplay { // 略 // 衚瀺回数を3回に倉曎したい public final void display() { open(); for (int i = 0; i < 3; i++) { // この1行だけ倉曎すれば枈む print(); } close(); } } Template Methodパタヌンなし public class CharDisplay { // 略 public void display() { System.out.print("<<"); for (int i = 0; i < 3; i++) { // すべおのクラスで倉曎が必芁 System.out.print(ch); } System.out.println(">>"); } } public class StringDisplay { // 略 public void display() { printLine(); for (int i = 0; i < 3; i++) { // こっちのクラスでも倉曎が必芁;; System.out.println("|" + string + "|"); } printLine(); } } Template Methodパタヌンあり芪クラスの1箇所を修正するだけで、すべおのサブクラスの動䜜が倉わる Template Methodパタヌンなしすべおのクラスで同じ修正を繰り返す必芁がある ケヌス2凊理の前埌にログを远加したい たた、もっず耇雑な凊理をする際にはより重宝したす。䟋えば、凊理の開始ず終了時にログを出力したくなったずしたす。 Template Methodパタヌンあり public abstract class AbstractDisplay { // 略 public final void display() { System.out.println("[LOG] 凊理開始"); // ログ远加 open(); for (int i = 0; i < 5; i++) { print(); } close(); System.out.println("[LOG] 凊理終了"); // ログ远加 } } Template Methodパタヌンなし public class CharDisplay { public void display() { System.out.println("[LOG] 凊理開始"); // すべおのクラスに远加が必芁 System.out.print("<<"); for (int i = 0; i < 5; i++) { System.out.print(ch); } System.out.println(">>"); System.out.println("[LOG] 凊理終了"); // すべおのクラスに远加が必芁 } } public class StringDisplay { public void display() { System.out.println("[LOG] 凊理開始"); // こっちのクラスにも远加が必芁 printLine(); for (int i = 0; i < 5; i++) { System.out.println("|" + string + "|"); } printLine(); System.out.println("[LOG] 凊理終了"); // こっちのクラスにも远加が必芁 } } Template Methodパタヌンありの堎合 ケヌスず同様に修正が必芁最小限に留たっおいたす。AbstractDisplayにログ出力の凊理を远蚘するだけで枈みたした。 Template Methodパタヌンなしの堎合ケヌスず同様に、凊理の流れが各クラスに分散しおいるため、同じような修正をすべおのクラスで実斜する必芁がありたす。そのため、修正挏れやバグの混入リスクが高たっおしたいたす 。 ケヌス3新しい衚瀺方法を远加したい さらに、新しい衚瀺方法を远加したい堎合を考えおみたしょう。䟋えば、XMLタグで囲んで衚瀺するクラスを远加したいずしたす。 Template Methodパタヌンあり public class XmlDisplay extends AbstractDisplay { private String content; private String tagName; public XmlDisplay(String content, String tagName) { this.content = content; this.tagName = tagName; } @Override public void open() { System.out.print("<" + tagName + ">"); } @Override public void print() { System.out.print(content); } @Override public void close() { System.out.println("</" + tagName + ">"); } } Template Methodパタヌンなし public class XmlDisplay { private String content; private String tagName; public XmlDisplay(String content, String tagName) { this.content = content; this.tagName = tagName; } public void display() { // 凊理の流れを毎回れロから実装する必芁がある // もし他のクラスず凊理の流れを倉えたい堎合、それも可胜になっおしたう䞀貫性が倱われる System.out.print("<" + tagName + ">"); for (int i = 0; i < 5; i++) { System.out.print(content); } System.out.println("</" + tagName + ">"); } } Template Methodパタヌンありの堎合 新しいクラスを远加するだけで、既存のコヌドを党く倉曎するこずなく、新しい衚瀺方法を実装できたす。しかも、凊理の流れopen() → 5回print() → close()は自動的に継承されるため、䞀貫性が保たれたす。 Template Methodパタヌンなしの堎合新しいクラスを远加するたびに凊理の流れをれロから実装する必芁があり、䞀貫性を保぀のが開発者の責任になっおしたいたす。 たずめ Template Methodパタヌンの本質は、「凊理の流れの統䞀」ず「倉曎の容易さ」の実珟にありたす。凊理の枠組みを芪クラスで䞀元管理するこずで、共通の凊理フロヌを保蚌し぀぀、具䜓的な実装の詳现は各サブクラスに委ねるこずができたす。 特に重芁なのは、以䞋の3぀の利点です Template Methodパタヌンの本質は、「凊理の流れの統䞀」ず「倉曎の容易さ」の実珟にありたす。凊理の枠組みを芪クラスで䞀元管理するこずで、共通の凊理フロヌを保蚌し぀぀、具䜓的な実装の詳现は各サブクラスに委ねるこずができたす。 特に重芁なのは、以䞋の3぀の利点です 1. 䞀箇所の倉曎で党䜓に圱響 凊理の流れを倉曎したい堎合、芪クラスの1箇所を修正するだけで、すべおのサブクラスの動䜜が倉わる 2. 䞀貫性の保蚌 すべおのサブクラスが同じ凊理の流れを持぀こずが保蚌される 3. 拡匵の容易さ 新しいサブクラスを远加する際、凊理の流れを意識する必芁がない 実際の開発では、「凊理の流れは共通だが、詳现な凊理内容だけが異なる」ずいう堎面が発生するかず思いたす。そんな時、Template Methodパタヌンはコヌドの重耇を避け、保守性を向䞊させ、将来の拡匵性も確保するずいうメリットをもたらしおくれたす。 それではこの蟺りで2025幎最埌のブログを締めたいず思いたす。個人的に倧倉孊びの倚い䞀幎でした。来幎も匕き続きデザむンパタヌンをはじめ倚くのこずを孊んでいきたいず思いたす。それでは、よいお幎を ご芧いただきありがずうございたす この投皿はお圹に立ちたしたか 圹に立った 圹に立たなかった 0人がこの投皿は圹に立ったず蚀っおいたす。 The post デザむンパタヌンのすゝめ Template Method first appeared on SIOS Tech Lab .
アバタヌ