113
125

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【保存版】Claude Code完全設定ガイド2026 - Hooks/Skills/MCP/権限を全部入りで本番運用する

113
Last updated at Posted at 2026-02-28

Claude Codeの設定、なんとなくで使っていませんか?

Hooks、Skills、CLAUDE.md、settings.json、MCP、権限管理…… 2026年のClaude Codeは機能が爆発的に増えた。でも全部を正しく設定しているエンジニアは1%もいない

この記事では、すべての機能を網羅した「本番運用できる設定ファイル一式」を提供する。コピペで即使える。

今すぐ使いたい人向け: この記事の設定をすべてパッケージ化したリポジトリを公開している。ワンコマンドで任意のプロジェクトにプロビジョニングできる。

bash <(curl -fsSL https://raw.githubusercontent.com/babushkai/claude-code-config/main/setup.sh)

GitHub: https://github.com/babushkai/claude-code-config

結論から言うと

Claude Codeの設定は7つのレイヤーで構成されている:

  1. CLAUDE.md - Claudeへの指示書(チーム共有 / 個人用)
  2. Auto Memory - Claudeが自動で学習するメモ
  3. .claude/rules/ - モジュール型のルールファイル
  4. settings.json - 権限・許可ツール・環境設定
  5. Hooks - ライフサイクルイベントの自動化(17イベント)
  6. Skills - カスタムスラッシュコマンド
  7. MCP - 外部ツール連携(GitHub, DB, Sentry等)

これら全部を正しく設定して初めて「本番運用」と言える。

ディレクトリ構成の全体像

まず、完成形のディレクトリ構成を見よう:

your-project/
├── CLAUDE.md                    # プロジェクト指示書(git管理)
├── CLAUDE.local.md              # 個人用指示書(gitignore)
├── .mcp.json                    # チーム共有MCP設定(git管理)
├── .claude/
│   ├── CLAUDE.md                # 別名配置OK(CLAUDE.mdと同等)
│   ├── settings.json            # 共有設定(git管理)
│   ├── settings.local.json      # 個人設定(gitignore)
│   ├── rules/                   # モジュール型ルール
│   │   ├── code-style.md
│   │   ├── testing.md
│   │   ├── security.md
│   │   └── frontend/
│   │       ├── react.md
│   │       └── styles.md
│   ├── skills/                  # カスタムスキル
│   │   ├── deploy/
│   │   │   └── SKILL.md
│   │   ├── review-pr/
│   │   │   └── SKILL.md
│   │   └── fix-issue/
│   │       └── SKILL.md
│   ├── agents/                  # カスタムサブエージェント
│   │   └── security-reviewer/
│   │       └── AGENT.md
│   └── hooks/                   # Hookスクリプト
│       ├── lint-on-save.sh
│       ├── block-secrets.sh
│       └── notify-slack.sh
│
├── ~/.claude/                   # ユーザーグローバル設定
│   ├── CLAUDE.md                # 全プロジェクト共通の個人指示
│   ├── settings.json            # グローバル設定
│   ├── settings.local.json      # ローカルのみ
│   ├── rules/                   # 個人ルール
│   │   └── preferences.md
│   └── skills/                  # 個人スキル
│       └── explain-code/
│           └── SKILL.md

1. CLAUDE.md - Claudeへの指示書

CLAUDE.mdはClaudeの脳にインストールするプロジェクトのDNAだ。

メモリ階層(優先度順)

優先度 種類 パス 用途
最高 管理ポリシー /Library/Application Support/ClaudeCode/CLAUDE.md 組織全体のルール
プロジェクト ./CLAUDE.md チーム共有の指示
ルール .claude/rules/*.md モジュール型指示
ユーザー ~/.claude/CLAUDE.md 個人のグローバル設定
ローカル ./CLAUDE.local.md 個人のプロジェクト固有設定
自動 Auto Memory ~/.claude/projects/<project>/memory/ Claudeの自動学習メモ

CLAUDE.mdの黄金律:「人間だけが知っていること」を書く

最も多いミス:ソースコードから読み取れる情報をCLAUDE.mdに書くこと。

Claudeはpackage.jsonを読めばビルドコマンドがわかる。tsconfig.jsonを読めばTypeScriptの設定がわかる。ディレクトリを探索すればアーキテクチャがわかる。.eslintrcを読めばコーディング規約がわかる。

これらをCLAUDE.mdに書くのはトークンの無駄遣いだ。

CLAUDE.mdにはClaudeがソースコードを読んでも絶対にわからない情報だけを書く:

書くべき(人間の頭の中にしかない) 書くべきでない(コードから推論できる)
なぜこのアーキテクチャを選んだのか packages/配下のディレクトリ一覧
過去のインシデントで学んだ禁止事項 pnpm buildでビルドできること
ビジネス上の制約や優先順位 TypeScriptを使っていること
デプロイ先の環境情報 ESLintのルール
チーム間の取り決め・ワークフロー 依存パッケージの一覧
「このコードは触るな」の暗黙知 テストフレームワークがVitestであること

本番用CLAUDE.mdテンプレート

# プロジェクトの意思決定

## なぜこの構成なのか
- モノレポを採用した理由:フロント・バック間の型共有でバグを3件/週→0にした
- Honoを選んだ理由:Cloudflare Workersでのコールドスタートが50ms以下
- PlanetScaleを使う理由:本番DBのスキーマ変更をブランチで安全にできる

## 絶対にやってはいけないこと
- `packages/shared/src/legacy/` は旧APIとの互換層。リファクタしたくなるが触るな(顧客3社が依存中、2026年Q3に廃止予定)
- Stripeの webhook handler は冪等性を壊すと二重課金が発生する。過去に$12,000の事故があった
- `users`テーブルの`email`カラムにUNIQUE制約がない。歴史的経緯で重複がある。アプリ層でバリデーションしている

## デプロイと環境
- staging: Cloudflare Workers(`wrangler deploy --env staging`- production: 本番デプロイはGitHub Actionsのみ。手動デプロイ禁止
- DB migration: `pnpm db:migrate`は必ずstagingで先に実行して確認

## チームワークフロー
- PRは必ず1人以上のレビューを通す
- `feat/`ブランチはsquash merge、`fix/`ブランチは通常merge
- 金曜日の15時以降は本番デプロイ禁止(週末対応を避けるため)

## ビジネスコンテキスト
- エンタープライズ顧客はレスポンス200ms以内のSLAがある
- GDPR対応必須。ユーザーデータは必ず論理削除(物理削除禁止)
- 月次レポート生成は毎月1日深夜にcronで実行。この日はDB負荷が高い

このテンプレートのポイント

  • pnpm installpnpm testは書いていない → Claudeはpackage.jsonを読めばわかる
  • ディレクトリ構成は書いていない → Claudeはlsすればわかる
  • 代わりに「なぜ」「やるな」「過去の事故」を書いている → これはコードに書いてない

@importで外部ファイルを参照

CLAUDE.mdから他のファイルをインポートできる:

プロジェクトの概要は @README.md を参照。
利用可能なコマンドは @package.json を確認。
Git運用ルールは @docs/git-workflow.md に従う。

# 個人設定
- @~/.claude/my-project-instructions.md

importの注意点

  • 相対パスはCLAUDE.mdがあるディレクトリを起点に解決される
  • 最大5階層までの再帰importが可能
  • コードブロック内の@はimportとして解釈されない
  • 初回はインポート許可ダイアログが表示される

.claude/rules/ - 条件付きルール

特定のファイルパターンに対してだけ適用されるルールが書ける:

# .claude/rules/api-rules.md
---
paths:
  - "packages/backend/src/routes/**/*.ts"
---

# API開発ルール

- 全エンドポイントにzodバリデーションを入れる
- エラーレスポンスはRFC 7807形式にする
- レスポンスにはページネーション情報を含める
- レートリミットのヘッダーを返す
# .claude/rules/react-rules.md
---
paths:
  - "packages/frontend/src/**/*.{tsx,ts}"
---

# React開発ルール

- Server Componentsをデフォルトにする
- "use client"は最小限にする
- Suspenseでローディング状態を管理する
- key propにはindexを使わない

2. settings.json - 権限と設定

設定ファイルの優先順位

管理ポリシー(最高)
  ↓
CLIフラグ(--disallowedTools等)
  ↓
.claude/settings.local.json(プロジェクトローカル)
  ↓
.claude/settings.json(プロジェクト共有)
  ↓
~/.claude/settings.local.json(ユーザーローカル)
  ↓
~/.claude/settings.json(ユーザー共有・最低)

本番用 .claude/settings.json(チーム共有)

{
  "permissions": {
    "defaultMode": "default",
    "allow": [
      "Read",
      "Glob",
      "Grep",
      "Bash(pnpm run *)",
      "Bash(pnpm test *)",
      "Bash(pnpm build *)",
      "Bash(pnpm lint *)",
      "Bash(pnpm typecheck)",
      "Bash(git status)",
      "Bash(git diff *)",
      "Bash(git log *)",
      "Bash(git branch *)",
      "Bash(git checkout *)",
      "Bash(git add *)",
      "Bash(git commit *)",
      "Bash(gh pr *)",
      "Bash(gh issue *)",
      "Bash(npx prisma *)",
      "Bash(* --version)",
      "Bash(* --help)",
      "Edit(/packages/**)",
      "Write(/packages/**)"
    ],
    "deny": [
      "Bash(git push --force *)",
      "Bash(git reset --hard *)",
      "Bash(rm -rf *)",
      "Bash(curl *)",
      "Bash(wget *)",
      "Read(.env*)",
      "Read(**/*.pem)",
      "Read(**/*secret*)",
      "Edit(.env*)",
      "Edit(/.github/workflows/**)"
    ]
  },
  "env": {
    "MAX_MCP_OUTPUT_TOKENS": "50000"
  }
}

個人用 .claude/settings.local.json

{
  "permissions": {
    "allow": [
      "Bash(docker *)",
      "Bash(docker-compose *)"
    ]
  },
  "hooks": {
    "PostToolUse": [
      {
        "matcher": "Edit|Write",
        "hooks": [
          {
            "type": "command",
            "command": "\"$CLAUDE_PROJECT_DIR\"/.claude/hooks/lint-on-save.sh"
          }
        ]
      }
    ]
  }
}

コミット・PRの帰属表示(attribution)を制御する

Claude CodeはデフォルトでコミットメッセージにCo-Authored-By: Claudeを追加する。不要な場合はattribution設定で消せる:

{
  "attribution": {
    "commit": "",
    "pr": ""
  }
}
キー デフォルト 説明
attribution.commit Co-Authored-Byトレーラー付き コミットメッセージへの帰属表示
attribution.pr フッターにClaude Code表記 PRの説明への帰属表示

空文字""で完全に非表示にできる。カスタムメッセージも可能:

{
  "attribution": {
    "commit": "Generated with Claude Code"
  }
}

~/.claude/settings.jsonに入れれば全プロジェクトで有効。

権限パターンの詳細リファレンス

ツール パターン例 説明
Bash Bash(npm run *) npm runで始まるコマンドすべて
Bash Bash(git commit *) gitコミットを許可
Read Read(.env*) .envファイルの読み取り
Read Read(~/.ssh/*) ホームの.ssh配下
Read Read(//etc/passwd) 絶対パス(//で開始)
Edit Edit(/src/**) プロジェクトルートからの相対パス
Edit Edit(**/*.test.ts) 全テストファイル
WebFetch WebFetch(domain:github.com) ドメイン指定
MCP mcp__github__* GitHub MCPの全ツール
Task Task(Explore) Exploreサブエージェント
Skill Skill(deploy *) deployスキル

重要:*の前にスペースがあるかで動作が変わる

  • Bash(ls *)ls -laにマッチ、lsofにはマッチしない(単語境界あり)
  • Bash(ls*)ls -laにもlsofにもマッチ(単語境界なし)

3. Hooks - 17のライフサイクルイベント

HooksはCLAUDE.mdの「お願い」と違い、確実に実行される

全イベント一覧

イベント タイミング ブロック可能
SessionStart セッション開始・再開 -
UserPromptSubmit プロンプト送信直後 -
PreToolUse ツール実行前 Yes
PermissionRequest 権限ダイアログ表示時 -
PostToolUse ツール成功後 -
PostToolUseFailure ツール失敗後 -
Notification 通知送信時 -
SubagentStart サブエージェント起動時 -
SubagentStop サブエージェント終了時 -
Stop Claude応答完了時 -
TeammateIdle チームメイトがidle -
TaskCompleted タスク完了時 -
ConfigChange 設定ファイル変更時 -
WorktreeCreate worktree作成時 -
WorktreeRemove worktree削除時 -
PreCompact コンテキスト圧縮前 -
SessionEnd セッション終了時 -

ハンドラの4種類

command  → シェルスクリプト実行
http     → HTTP POSTリクエスト送信
prompt   → LLMに判断を委ねる(yes/no)
agent    → サブエージェントで検証

本番Hooks設定例

{
  "hooks": {
    "PreToolUse": [
      {
        "matcher": "Bash",
        "hooks": [
          {
            "type": "command",
            "command": "\"$CLAUDE_PROJECT_DIR\"/.claude/hooks/block-secrets.sh",
            "statusMessage": "セキュリティチェック中..."
          }
        ]
      }
    ],
    "PostToolUse": [
      {
        "matcher": "Edit|Write",
        "hooks": [
          {
            "type": "command",
            "command": "\"$CLAUDE_PROJECT_DIR\"/.claude/hooks/lint-on-save.sh",
            "timeout": 30
          }
        ]
      }
    ],
    "Stop": [
      {
        "hooks": [
          {
            "type": "command",
            "command": "\"$CLAUDE_PROJECT_DIR\"/.claude/hooks/notify-slack.sh",
            "async": true
          }
        ]
      }
    ]
  }
}

実用Hookスクリプト集

危険コマンドブロック(PreToolUse):

#!/bin/bash
# .claude/hooks/block-secrets.sh
INPUT=$(cat)
COMMAND=$(echo "$INPUT" | jq -r '.tool_input.command // empty')

# 秘密情報を含むコマンドをブロック
if echo "$COMMAND" | grep -qE '(password|secret|token|api.?key)'; then
  jq -n '{
    hookSpecificOutput: {
      hookEventName: "PreToolUse",
      permissionDecision: "deny",
      permissionDecisionReason: "秘密情報を含む可能性のあるコマンドがブロックされました"
    }
  }'
  exit 0
fi

# rm -rf をブロック
if echo "$COMMAND" | grep -qE 'rm\s+-rf'; then
  jq -n '{
    hookSpecificOutput: {
      hookEventName: "PreToolUse",
      permissionDecision: "deny",
      permissionDecisionReason: "rm -rf は禁止されています"
    }
  }'
  exit 0
fi

exit 0

ファイル保存後の自動リント(PostToolUse):

#!/bin/bash
# .claude/hooks/lint-on-save.sh
INPUT=$(cat)
FILE_PATH=$(echo "$INPUT" | jq -r '.tool_input.file_path // .tool_result.filePath // empty')

if [ -z "$FILE_PATH" ]; then
  exit 0
fi

# TypeScriptファイルのみリント
if [[ "$FILE_PATH" == *.ts || "$FILE_PATH" == *.tsx ]]; then
  RESULT=$(npx eslint --fix "$FILE_PATH" 2>&1)
  if [ $? -ne 0 ]; then
    jq -n --arg msg "$RESULT" '{
      hookSpecificOutput: {
        hookEventName: "PostToolUse"
      },
      transcript: ("ESLintエラー:\n" + $msg)
    }'
  fi
fi

exit 0

Slack通知(Stop - 非同期):

#!/bin/bash
# .claude/hooks/notify-slack.sh
INPUT=$(cat)
STOP_REASON=$(echo "$INPUT" | jq -r '.stop_reason // "unknown"')

if [ "$STOP_REASON" = "end_turn" ]; then
  curl -s -X POST "$SLACK_WEBHOOK_URL" \
    -H 'Content-Type: application/json' \
    -d "{\"text\": \"Claude Codeのタスクが完了しました\"}" \
    > /dev/null 2>&1
fi

Prompt Hook(LLM判断型)

{
  "hooks": {
    "PreToolUse": [
      {
        "matcher": "Bash",
        "hooks": [
          {
            "type": "prompt",
            "prompt": "次のBashコマンドが本番環境に影響を与える可能性があるか判断してください。コマンド: $ARGUMENTS。本番DBへの接続、本番サーバーへのデプロイ、環境変数の変更を含む場合はnoと回答してください。",
            "timeout": 15
          }
        ]
      }
    ]
  }
}

4. Skills - カスタムスラッシュコマンド

Skillのフロントマター全フィールド

フィールド 必須 説明
name No /コマンド名(省略時はディレクトリ名)
description 推奨 用途の説明(Claude自動起動の判断材料)
argument-hint No 引数のヒント(例:[issue-number]
disable-model-invocation No trueでClaude自動起動を無効化
user-invocable No false/メニューから非表示
allowed-tools No このSkill中に許可するツール
model No 使用モデル指定
context No forkでサブエージェント実行
agent No context: fork時のエージェント型
hooks No Skill固有のHooks

実用スキル例

PRレビュースキル:

# .claude/skills/review-pr/SKILL.md
---
name: review-pr
description: PRをレビューして改善提案する
context: fork
agent: Explore
allowed-tools: Bash(gh *)
argument-hint: "[PR番号]"
disable-model-invocation: true
---

## PRコンテキスト
- PR diff: !`gh pr diff $ARGUMENTS`
- PRコメント: !`gh pr view $ARGUMENTS --comments`
- 変更ファイル: !`gh pr diff $ARGUMENTS --name-only`

## レビュー手順
1. 変更の意図を理解する
2. コードの品質をチェック(型安全性、エラーハンドリング)
3. セキュリティ上の懸念がないか確認
4. パフォーマンスへの影響を評価
5. テストカバレッジを確認

レビュー結果を箇条書きでまとめ、重要度(Critical/Major/Minor)を付ける。

Issue修正スキル:

# .claude/skills/fix-issue/SKILL.md
---
name: fix-issue
description: GitHub Issueを修正する
disable-model-invocation: true
argument-hint: "[issue番号]"
---

GitHub issue #$ARGUMENTS を修正する。

1. `gh issue view $ARGUMENTS` でIssueの内容を確認
2. 関連コードを特定
3. 修正を実装
4. テストを追加
5. `git commit -m "fix: #$ARGUMENTS の修正"`

デプロイスキル(サブエージェント実行):

# .claude/skills/deploy/SKILL.md
---
name: deploy
description: ステージング環境にデプロイする
disable-model-invocation: true
context: fork
allowed-tools: Bash(pnpm *), Bash(git *), Bash(gh *)
---

$ARGUMENTS をステージングにデプロイする:

1. テストスイートを実行
2. ビルドを実行
3. デプロイコマンドを実行
4. デプロイ成功を確認
5. Slackに通知

動的コンテキスト注入

!`command`構文でShellコマンドの結果をSkillに注入できる:

---
name: status
description: プロジェクトの状態サマリー
context: fork
agent: Explore
---

## 現在の状態
- ブランチ: !`git branch --show-current`
- 未コミット: !`git status --short`
- 最新コミット: !`git log --oneline -5`
- テスト結果: !`pnpm test --silent 2>&1 | tail -5`
- 型チェック: !`pnpm typecheck 2>&1 | tail -3`

上記の情報をもとに、プロジェクトの状態をサマリーにまとめて報告する。

5. MCP - 外部ツール連携

MCPサーバーの追加

# HTTP(推奨)
claude mcp add --transport http github https://api.githubcopilot.com/mcp/

# SSE(非推奨)
claude mcp add --transport sse sentry https://mcp.sentry.dev/sse

# stdio(ローカル実行)
claude mcp add --transport stdio --env AIRTABLE_API_KEY=$KEY airtable \
  -- npx -y airtable-mcp-server

MCPのスコープ

スコープ 保存先 共有範囲
local(デフォルト) ~/.claude.json 自分のみ・このプロジェクト
project .mcp.json チーム全体(git管理)
user ~/.claude.json 自分のみ・全プロジェクト

チーム共有MCP設定(.mcp.json)

{
  "mcpServers": {
    "github": {
      "type": "http",
      "url": "https://api.githubcopilot.com/mcp/"
    },
    "sentry": {
      "type": "http",
      "url": "https://mcp.sentry.dev/mcp"
    },
    "database": {
      "type": "stdio",
      "command": "npx",
      "args": ["-y", "@bytebase/dbhub", "--dsn", "${DB_DSN}"],
      "env": {
        "DB_DSN": "${DB_DSN:-postgresql://readonly:pass@localhost:5432/dev}"
      }
    }
  }
}

MCP Tool Search

MCPツールが多すぎてコンテキストを圧迫する場合、自動的にTool Searchが有効になる:

# 閾値を5%に変更
ENABLE_TOOL_SEARCH=auto:5 claude

# 常に有効
ENABLE_TOOL_SEARCH=true claude

# 無効化
ENABLE_TOOL_SEARCH=false claude

6. Auto Memory - Claudeの自動学習

仕組み

~/.claude/projects/<project>/memory/
├── MEMORY.md          # インデックス(最初の200行がロード)
├── debugging.md       # デバッグパターン
├── api-conventions.md # API設計の決定事項
└── ...                # Claudeが自動作成

MEMORY.mdは200行までしかロードされない。
それ以上の情報はトピック別ファイルに分割し、MEMORY.mdからリンクする。Claudeは必要に応じてトピックファイルを読み込む。

明示的に記憶させる

> pnpmを使って、npmは使わないことを覚えておいて
> APIテストにはローカルRedisが必要だということをメモリに保存して

制御方法

// .claude/settings.json でプロジェクト単位で無効化
{ "autoMemoryEnabled": false }
# 環境変数で強制制御(settings.jsonより優先)
CLAUDE_CODE_DISABLE_AUTO_MEMORY=1 claude  # 強制OFF
CLAUDE_CODE_DISABLE_AUTO_MEMORY=0 claude  # 強制ON

7. 本番運用チェックリスト

すべて設定できているか確認しよう:

セキュリティ

  • .env*ファイルのRead/Editをdenyに設定
  • rm -rfをPreToolUseフックでブロック
  • git push --forceをdenyに設定
  • 秘密鍵(*.pem)の読み取りをdeny
  • curl/wgetをdenyしてWebFetchに限定
  • CI/CDワークフローの編集をdeny

開発効率

  • よく使うビルド/テストコマンドをallowに設定
  • PostToolUseで自動リントを設定
  • PRレビューのSkillを作成
  • Issue修正のSkillを作成
  • MCPでGitHub連携を設定

チーム標準化

  • .claude/settings.jsonをgit管理
  • .mcp.jsonをgit管理
  • .claude/rules/でコーディング規約を管理
  • CLAUDE.mdには「人間だけが知っていること」を記載
  • .gitignoreに以下を追加:
CLAUDE.local.md
.claude/settings.local.json

よくあるミスとその対策

ミス1:権限が緩すぎる

// NG: 危険
{ "permissions": { "allow": ["Bash"] } }

// OK: 必要なコマンドだけ許可
{
  "permissions": {
    "allow": [
      "Bash(pnpm *)",
      "Bash(git status)",
      "Bash(git diff *)"
    ]
  }
}

ミス2:CLAUDE.mdにソースコードから読める情報を書く

<!-- NG: Claudeはpackage.jsonとディレクトリ構造を読めばわかる -->
# プロジェクト概要
TypeScript + React + Node.jsのSaaSアプリ。
packages/frontend: Next.js 15
packages/backend: Hono

## コマンド
- `pnpm install` - 依存関係インストール
- `pnpm build` - ビルド
- `pnpm test` - テスト実行

<!-- OK: 人間の頭の中にしかない「なぜ」と「やるな」を書く -->
# 意思決定と制約
- legacy/ は2026年Q3廃止予定。触るな
- Stripe webhookの冪等性を壊すと二重課金(過去に$12K事故)
- 金曜15時以降は本番デプロイ禁止

ミス3:Hookのtimeoutを設定していない

// NG: タイムアウトなし(デフォルト600秒)
{
  "type": "command",
  "command": "npm run lint"
}

// OK: 適切なタイムアウト
{
  "type": "command",
  "command": "npm run lint",
  "timeout": 30
}

ミス4:Skillでdisable-model-invocationを忘れる

# NG: Claudeが勝手にデプロイスキルを実行する可能性
---
name: deploy
description: Deploy to production
---

# OK: 手動でのみ実行可能
---
name: deploy
description: Deploy to production
disable-model-invocation: true
---

まとめ

Claude Codeの本番運用に必要な設定を全部まとめた:

  • CLAUDE.md「人間だけが知っていること」を書く。ビルドコマンドやディレクトリ構成ではなく、意思決定の理由・禁止事項・ビジネス制約を
  • settings.json → 権限は最小権限の原則で。denyファーストで設計
  • Hooks → 17イベントを活用。セキュリティチェックとリント自動化は必須
  • Skills → よく使うワークフローをスラッシュコマンド化。副作用のあるものはdisable-model-invocation: true
  • MCP → チーム共有は.mcp.jsonで管理。認証情報は環境変数で
  • Auto Memory → 200行制限を意識。トピック別に分割
  • Attributionattribution.commitattribution.prで帰属表示を制御

これらを全部設定して初めて、Claude Codeは「おもちゃ」から「本番ツール」になる。


この記事が参考になったら、いいねとストックをお願いします!

質問:あなたのClaude Code設定で一番こだわっているポイントは何ですか?コメントで教えてください。


参考リンク

Production-Ready Claude Code Config Repo

Claude Code Hooks Reference

Extend Claude with Skills

Configure Permissions

Manage Claude's Memory

Connect Claude Code to Tools via MCP

Claude Code Best Practices (Morph)

Everything Claude Code Configuration Collection (GitHub)

113
125
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
113
125

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?