Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Claude Codeチーム活用の現在地 〜小さな実践と今後の展望〜 / Current St...

Avatar for shuntaka shuntaka
September 08, 2025
3.3k

Claude Codeチーム活用の現在地 〜小さな実践と今後の展望〜 / Current State of Claude Code Team Adoption - Small Practices and Future Prospects

Avatar for shuntaka

shuntaka

September 08, 2025
Tweet

More Decks by shuntaka

Transcript

  1. ⾃⼰紹介 2 • 2016年 ⾦融情報ベンダー⼊社 バックエンド ◦ 株価配信Web API開発 • 2019年 クラスメソッド⼊社

    ◦ CX/IoT事業部にてIoT案件を複数 • 2024年 製造ビジネステクノロジー部担当 ◦ R&D業務/サーバーサイド/RAG/AI Agent開発 • 部署 ◦ 製造ビジネステクノロジー部 • 名前(shuntaka) ◦ 髙橋 俊⼀ • 出⾝‧住まい ◦ 東京 詳細はhttps://shuntaka.dev/whoを⾒てね
  2. 利⽤しているAIコーディングエージェント 6 AIコーディングエージェント(有償)は沢山ある 中、弊チームでは以下を利用。 ・Claude Code → 自律的なコード生成 ・Cursor →

    Cursor Tab補完で小回りが効く 汎⽤ 特化 アシスタント ⾃律型 CLI, 定額 VSCode fork Devin Cline v0 Lovable CodeRabbit Amazon Q Kiro Windsurf Cursor Copilot AWSに強い CLI 仕様ドリブン開発 UI特化 PRレビュー特化 browser use ⾼い⾃律性
  3. 前提: モノリシックリポジトリ採⽤ 9 仕様、FE、BE共に同⼀リポジトリに ある。移植元のソースも同様に格納 インフラ設定で、ビルド設定や環境 変数の移し替えなど効率的に出来て いる。 /add-dir コマンドもあるが@シンボ

    ル検索⾮対応ですし、あまり同列に 検索してくれない?マルチレポにし ないと厳しい場⾯は普通になるの で、ディレクトリルート変えるなど で対応は出来そう。 . ├── docs │ ├── legacy-app # 過去のアプリ │ └── source # 現状ドキュメント ├── apps │ ├── rest-api # BE │ ├── web # FE │ └── iac # インフラ定義 └── README.md
  4. Slash commandsのリポジトリ共有 11 .claude ├── commands │ ├── check-code.md │

    └── pr-template.md 王道。便利。 ‧使いたい⼈が使いたいときに利⽤可能 ‧洗練されていなくても問題ない ‧⾝近なトイル削減活動に繋がる 現在は2種類を使っている ‧PRテンプレート作成 ‧コードチェック
  5. Slash commandsのリポジトリ共有 12 PRテンプレート作成の場合 以下のフローを⾃動化 ‧チームのテンプレートを適⽤ ‧PRサマリを作成 ‧⾃分をアサインしてDraftでPR作成 ‧PR画⾯を開く ⼩さいPRを作りやすい。GitHub周り

    はCLIでおおよその操作が可能なので 業務に合わせて整えるのが良い。 ⼤きいPRは出⼒をレビューしてちゃ んと削ることを意識しないと負荷に なるので注意! https://youtu.be/lRd3TQPuPLE
  6. Slash commandsのリポジトリ共有 13 コードチェックの場合、Claude Codeが よく勘違いする静的解析のお決まりの修 正パターン改善。 以下が揃ったらcode-checkコマンドにぶ ち込みましょう! ‧毎回やる静的解析結果の修正

    ‧Claude Codeがよく勘違いする スペルチェック解析ツールの場合 ⼩⽂字統⼀でいいのに毎回両⽅含めてき てしまう... npx cspell lint . --cache --gitignore | perl -nle 'print "\"$1\"," if /.*\((.*?)\).*/' | sort | tr '[:upper:]' '[:lower:]' | uniq 👈 👈これでもできるけど保守がつらい 😓
  7. Slash commandsのリポジトリ共有 14 # ソースコードチェック ## コンテキスト `pnpm spell-check`を実行して、エラー内容を確認してくださ い

    ## Your task 結果を元に修正を行ってください。 ### スペルミスの場合 * ライブラリや技術的な用語は @cspell.json に 小文字で除 外設定をしてください * 単語はwordsで単語として成立していないハッシュのような 文字列はignoreWordsに記述してください * タイプミスの場合は、ソース側を正しい記述に変更してくださ い ### 最後に 修正が発生した場合、再度 `pnpm spell-check`を実行し、成功 することを確認してください https://youtu.be/lRd3TQPuPLE 👍 スラッシュコマンド の内容の⼀部抜粋
  8. setting.local.json運⽤ 15 .claude ├── commands │ ├── check-code.md │ └──

    pr-template.md ├── settings.local.json └── .settings.local.json .gitignore settings.jsonは共通で置いていない。 .setting.local.jsonをテンプレートとして⽤意 し、setting.local.jsonにコピーしてもらう。 試⾏錯誤しやすくかつ、おすすめ設定はテン プレ取り込みスタイルにした。 https://speakerdeck.com/shuntaka/lets-manage-claude-code-with-dotfiles MCPなど個⼈の設 定ファイル管理⽅ 法はこちら👉
  9. .rgignoreを使った@シンボル検索調整 16 .gitignore # .rgignore !* # 全て除外しない .git #

    .gitを除外 @シンボルファイル検索で余計なものが引っかかるノイズは.rgignoreで調整可能 過去dot付きファイルが検索できない問題の解消に使っていたが現在は、余計なフォルダを検索対象 から除外させる設定。プロジェクトごとに設定が良い。
  10. .mcp.json 17 ⽤意する場合、こちらもテンプレートだ け⽤意するのが良い ‧ローカル環境の作り⽅の差異の吸収が 出来ない ‧クレデンシャルを利⽤する場合がある ⾃分はグローバルにGitHubやAWS KnowledgeのMCPサーバーを⼊れてい る。

    . ├── $CLAUDE_CONFIG_DIR/ │ ├── .claude.json │ └── settings.json │ └── <repository_root>/ └── .mcp.json リポジトリルートのmcp.jsonと併用する場合 enableAllProjectMcpServers=trueが必要?
  11. exit 1以上の結果をexit 2 stderrに書き込み直すラッパーCLIを書く 20 2 0 cspell ruff exit

    1 stderr stdout exit 1 stdout clippy exit 101 stderr $ blocc -s "cspell lint ." { "message": "1 command(s) failed", "results": [ { "command": "cspell lint .", "exitCode": 1, "stderr": "CSpell: …", "stdout": "… Unknown word (oicd)" } ] } ※ brew install shuntaka9576/tap/blocc
  12. Claude CodeとSerena MCPの活⽤ 25 コードベースを直接操作できるセマンティックなコード解析・ 編集ツールを提供するMCPサーバー > IDE's capabilities LSPを使った検索で部分一致の検索より効率のよいコード

    解析が可能 https://github.com/oraios/serena https://x.com/_mohansolo/status/1899630200780153274 ※ 全く別の文脈ですが、windsurf 元CEOもコード検索周りの話をして いたので参考まで...
  13. LSPを使ったシンボル検索によりコンテキストを削減 26 =/ LSP検出 export class Calc { sum(a: number,

    b: number) { return a + b; } } =/ コメントのCalc =/ Calc comment =/ 文字列のCalc const msg = "Calc"; === ripgrep === src/test-data/simple.ts:2 - export class Calc { src/test-data/simple.ts:8 - =/ コメントのCalc src/test-data/simple.ts:9 - =/ Calc comment src/test-data/simple.ts:11 - =/ 文字列のCalc src/test-data/simple.ts:12 - const msg = "Calc"; === LSP === src/test-data/simple.ts:2 - Calc (Class) https://github.com/shuntaka9576/rg-lsp-search-compare rgとLSP(workspace/symbol)の検索結果 上記の⽐較スクリプト:
  14. MCP(Prompts)とClaude CodeのSlash Command 32 MCPのPromptsはClaude CodeではSlash Commandsに なる https://dev.classmethod.jp/articles/shuntaka-claude-code-slash-commands-mcp-publish/ →

    ユーザー側で更新のコス トがなくなる 前述のresources含めて、 /mcp のcapabilitiesの対応 状況確認の確認が可能 /(MCPサーバー名):(プロンプト名)
  15. リモートMCPの課題 33 ‧認証、認可 → IDaaSがDCR未対応な場合、APIキー認証になる。まだ枯れていない部分があ る。まずは汎⽤かつ公開可能なものに絞る ‧特定のToolsやPromptsの絞り込み機能がClaude Codeにない → 設定ファイルで対応

    ‧呼び出しのセキュリティ的な問題 → Toolsはやめておく(引数にセンシティブデータなど)。PromptsやResources は、get/readなのでサーバーに情報が送信されることはない。