CAT 01 — 環境設計 | ClaudeCode本質活用100ノック
CATEGORY 01 / 10 KNOCKS

環境設計
── ClaudeCodeを"社内標準"にする土台作り

「とりあえずClaudeCodeを入れた」から「ClaudeCodeが無いと仕事が止まる」まで、環境の土台を一気に整える10ノック。CLI導入・CLAUDE.md・MCP・dotenvx暗号化・スキル設計・サブエージェント・スラッシュコマンド・フックまで、れんが自社で実装している構成を完全公開。

CAT 01 / 10 KNOCKS

▼ このカテゴリの10ノック

  1. Claude Code CLIインストール →初回起動まで最短3分
  2. .claude/ フォルダ構成を理解する(skills / agents / commands)
  3. CLAUDE.md の書き方 ─ Claudeに"社内前提"を共有する
  4. MCP サーバー追加の壁 ─ ダブルクォート地獄を抜ける
  5. CLI / MCP / API の違い ─ 使い分け判断フロー
  6. APIキー管理 ─ dotenvx で .env を暗号化して commit 可能に
  7. 最初のスキル(SKILL.md)1本 ─ 雑務を Claude に記憶させる
  8. サブエージェント(.claude/agents/)の使い所
  9. カスタムスラッシュコマンドで社内標準化
  10. フックで"起動時自動実行"をチーム全員に強制する
KNOCK 01 / CAT 01 — 環境設計

Claude Code CLIインストール
→初回起動まで最短3分

「ClaudeCodeって結局どこから入れるの?」でほとんどの経営者が止まります。実はnpmパッケージを1本入れて、ターミナルで claude と打つだけです。この3分で全てが始まります。

🎯 このノックが解く問題

「ChatGPTは入れた」「Cursorも試した」。でもClaudeCodeだけはハードルが高く感じる──この正体はターミナル(黒い画面)への苦手意識です。でも安心してください。このノックは"ターミナルを初めて開く経営者"でも3分で終わる粒度で書きます。

ここで躓くと、このあとの99ノック全部が始まりません。最初の1ミリを越えさせるのが目的です。

🧭 前提(3行)
  • macOS / Windows / Linux どれでも動きます(本ノックはMac想定、Windowsの人も同じコマンド)
  • 必要なのはターミナル(MacならLaunchpadから「ターミナル.app」)とnpmというパッケージ管理ツール
  • Claude の有料プラン(Pro or Max)があるとフル機能。無料でも起動できます
✅ 実装ステップ

Step 1 — Node.js (npm) を入れる

ターミナルを開いて、以下を打ちます。すでに入ってれば v20.x.x みたいに出ます。

# バージョン確認
node -v
npm -v

入ってない場合は nodejs.org から LTS版をインストール。Macユーザーなら brew install node でもOK。

Step 2 — Claude Code CLI をインストール

npm install -g @anthropic-ai/claude-code

これだけ。所要30秒。グローバルインストール(-g)なので、どのフォルダからでも claude と打てば起動します。

Step 3 — 任意のフォルダで起動

# 適当な作業フォルダに移動
cd ~/Desktop
mkdir ai-experiment && cd ai-experiment

# 起動
claude

初回は Anthropic アカウントのログインを求められます。ブラウザが自動で開くのでログインして戻ってくるだけ。これでClaudeCodeが起動します。おめでとうございます。

僕も最初の頃は「ターミナル黒い画面が怖い」派でした。でも1回入れてしまえば、もう普通のアプリと変わりません。むしろChromeやVS Codeよりも軽い(Mac M4・16GBメモリでほぼ固まらない)。僕の講座の第1回でもまずここを全員で同時にやりました。20人中19人が3分以内に起動完了しています。

⚙️ コピペ用テンプレ
TEMPLATE — 3分セットアップ
# 1) npm確認(なければ nodejs.org から入れる)
npm -v

# 2) Claude Code CLI インストール
npm install -g @anthropic-ai/claude-code

# 3) 作業フォルダ作成して起動
mkdir -p ~/Desktop/ai-experiment && cd ~/Desktop/ai-experiment
claude

🚨 ハマりポイント3つ

  • Windowsの人:WSL2(Windows Subsystem for Linux)の上で動かすのが推奨。素のPowerShellだと一部機能が動かない場合あり。
  • npm install で permission エラーsudoを付けると通るが、本来は nvm(Node Version Manager)を入れて sudoなしで動かすのが正解。
  • ログインブラウザが開かない:表示されたURLをコピペして手動でブラウザで開く。callback URLが localhost なので社用PCのセキュリティ設定で弾かれる場合は個人PCでまず試すのが近道。
KNOCK 02 / CAT 01 — 環境設計

.claude/ フォルダ構成を
理解する(skills / agents / commands)

ClaudeCodeの"賢さ"は、すべて .claude/ フォルダに入ります。このフォルダに何を入れれば何が起きるのか、を理解することが社内標準化の土台になります。

🎯 このノックが解く問題

.claude/ の中身を知らないまま使ってる経営者は「Claude頭いいなぁ」で終わります。でも、このフォルダを意図的に設計すれば、自社専用のClaudeが作れます。つまりチームの誰が起動しても「自社のやり方」で動く状態。これが実装できて初めて"社内標準ツール"になります。

🧭 構成の全体像
your-project/
├── .claude/
│   ├── skills/          # 仕事のやり方を覚えさせる(社内ノウハウ)
│   │   └── my-skill/
│   │       └── SKILL.md
│   ├── agents/          # 長時間タスク専用のサブエージェント
│   │   └── code-reviewer.md
│   ├── commands/        # /自社コマンド で一発実行
│   │   └── deploy.md
│   ├── hooks/           # 起動時・停止時の自動処理
│   │   └── on-session-start.sh
│   └── settings.json    # 権限・環境変数
└── CLAUDE.md              # プロジェクトの前提共有(最重要)
✅ 各フォルダが何をするか

skills/ ─ 社内ノウハウの格納庫

繰り返す仕事を1回SKILL.mdに書くと、2回目以降Claudeが勝手に判断して呼び出します。僕の会社には現在50本以上の自作スキルがあります。例:「X投稿作成」「UTAGEシナリオ作成」「議事録→タスク化」「経費CSV生成」等、全てここに入ってます。

agents/ ─ 長時間タスクのサブエージェント

「コード全体をレビューする」「セキュリティスキャンする」みたいな重い単発タスク専用。メインセッションとは別プロセスで走るため、待ち時間中もメインでは別作業できます。

commands/ ─ 社内標準の一発実行コマンド

/deploy /estimate /review みたいに、社内固有の業務をスラッシュコマンドとして登録する場所。これをチーム全員で共有すれば、誰がClaudeを起動しても同じ手順が使えます。

hooks/ ─ 起動時・停止時の自動処理

「セッション開始時に最新のナレッジDBをPull」「終了時にログを社内Slackに通知」など、人が忘れがちな処理を強制自動化できる場所。

settings.json ─ 権限・環境変数

「このプロジェクトでは bash の rm -rf を禁止」「Python実行は事前許可制」のようなガードレール設定を置くファイル。社内ルールをコードで強制できる。

CC講座第6回で僕がよく受ける質問が「どんなプロジェクトでも必要になるスキルって最初に作ってますか?」──僕はプロジェクト専用のスキルは作りません。なぜなら個別プロジェクト用のスキルは~/.claude/skills/(ホーム直下)に置けば、どこでClaudeを立ち上げても呼び出せるからです。プロジェクト内の .claude/skills/その案件だけで必要な業務ルールを入れる場所、と使い分けてます。

⚙️ まず作るべき最小構成
TEMPLATE — 初日に作る.claude/
mkdir -p .claude/skills .claude/commands
touch CLAUDE.md

# CLAUDE.md に会社の前提を1ページだけ書く(K03で詳説)
echo "# ${会社名} ClaudeCode プロジェクト" > CLAUDE.md

🚨 ハマりポイント3つ

  • .claude/ を .gitignore に入れてしまう:ノウハウごと消す自殺行為。逆にチームで共有したい(個人APIキーだけ除外)。
  • skillsを作り過ぎて迷子になる:最初は3本で十分。必要を感じた時だけ1本増やす。
  • .claude/ と ~/.claude/ を混同:プロジェクト固有は前者、どこでも使えるグローバルは後者。置き場所を間違えると「あれ?呼ばれない」になる。
KNOCK 03 / CAT 01 — 環境設計

CLAUDE.md の書き方 ─
Claudeに"社内前提"を共有する

CLAUDE.md はプロジェクトの起動時に毎回読み込まれる仕様書です。ここに何を書いておくかで、Claudeのアウトプットは別人レベルに変わります。

🎯 このノックが解く問題

「毎回同じ前提を説明するのが疲れる」が止まります。自社の業界専門用語、独自ルール、禁止事項、過去の失敗例、全部1回書けば次から勝手に踏襲してくれる。これがClaudeCodeが他のAIツールと決定的に違うポイントです。

🧭 書くべき7項目
  1. プロジェクト概要 ─ 何の事業/プロダクトか(3行)
  2. ユーザー像 ─ このプロジェクトで"誰に向けて"作るのか
  3. 技術スタック ─ 使ってる言語・フレームワーク・外部サービス
  4. ディレクトリ構成 ─ プロジェクト直下に何があるか(ツリー)
  5. コーディング規約 ─ インデント・命名・禁止事項
  6. ドメイン用語 ─ 業界・自社特有の言葉(例:「顧問先」「本契約」の意味)
  7. 運用ルール ─ Git運用、コミットメッセージ形式、デプロイ手順
✅ サンプル(本プロジェクトで実際に使ってるもの)
# CLAUDE.md - CC講座プロジェクト

## Git運用ルール(必須)
- ファイルの作成・編集・削除が発生したら**毎回必ずGitHubにプッシュ**する
- リモート: `origin` → https://github.com/RenTonoduka/03-ALA.git

## プロジェクト構成

```
03_ALA/
├── .claude/            # 自作スキル・コマンド
├── AIWSプロジェクト/    # 関連プロジェクト群
└── _触らないでください/ # MCP・スクリプト(変更禁止)
```

## 企画作成ルール
"新しい企画を作成したい" と言われたら:
1. 企画名確認
2. 連番自動判定
3. セミナー型テンプレ8ステップで一括作成
...

これが起動時に自動で読まれるので、「新しい企画作りたい」と言うだけで、Claudeが勝手に 03_企画シーケンス/XX_企画名/ を作って、8ステップのフォルダまで整えます。

CC講座第2回で「MCPってどう違うの?」と質問を受けた時、僕は即答しました。その即答ができたのは、CLAUDE.mdに"MCPはAPIを内蔵化するレイヤー"と自分で書いてたからです。Claudeに教えるという行為は、自分の思考を構造化することでもある。書き出すことで経営者自身の理解も言語化されます。

⚙️ コピペ用テンプレ
TEMPLATE — 初日に書くCLAUDE.md
# CLAUDE.md - ${会社名}

## 言語
- 日本語で応答

## プロジェクト概要
- 事業: ${事業内容3行}
- 対象顧客: ${ターゲット}
- 価値提案: ${独自性}

## 技術スタック
- ${言語}, ${フレームワーク}, ${主要外部サービス}

## ディレクトリ構成
```
project/
├── src/          # ソースコード
├── docs/         # ドキュメント
└── .claude/      # スキル・コマンド
```

## コーディング規約
- シンプルで読みやすいコード
- 過剰な抽象化を避ける
- 必要最小限の変更のみ

## Git運用ルール
- feature/xxx ブランチで開発
- mainへのマージはPR経由
- コミットメッセージは日本語OK

🚨 ハマりポイント3つ

  • 書きすぎて長大化:200行超えたら分割を検討(詳細は別ファイル docs/architecture.md に逃がし、CLAUDE.mdからリンク)
  • 更新されないまま放置:CLAUDE.md は生き物。四半期に1回は見直す(これを /review-claude-md コマンドに登録すると自動化できる)
  • センシティブ情報をそのまま書く:APIキー・社内機密は絶対書かない。CLAUDE.mdはgit commitされる前提
KNOCK 04 / CAT 01 — 環境設計

MCP サーバー追加の壁 ─
ダブルクォート地獄を抜ける

MCP(Model Context Protocol)は、ClaudeCodeに外部API・ツール群を追加する仕組みです。Slack、Notion、Google Drive、自社システム、全部繋げます。しかし最初の接続でほぼ全員が詰まるのがクォート問題。

🎯 このノックが解く問題

MCP公式ドキュメントの例を真似して claude mcp add … と打つと、謎の構文エラーや「already exist」の罠にハマります。CC講座第2回でも全員ここで止まりました。原因は1つ:HTTPSから末尾までをダブルクォートで囲む必要があるという暗黙ルール。

🧭 前提
  • MCP は "Claude が外部ツールを呼び出すための共通規格"
  • 追加する場所はプロジェクトローカル.mcp.json)かユーザーグローバル~/.claude/mcp.json
  • 追加コマンドは claude mcp add。手動で mcp.json を編集してもOK
✅ 実装ステップ

Step 1 — まず接続可能なMCPサーバー一覧を知る

公式リストは modelcontextprotocol/servers。経営者が最初に入れるべきは:

  • filesystem ─ ローカルフォルダ読み書き
  • github ─ リポジトリ操作
  • slack / notion ─ 社内コミュニケーションツール
  • google-drive ─ ファイル・スプレッドシート操作

Step 2 — Slack MCPを追加する(実例)

# NG: クォートなしだとエラー
claude mcp add slack --url https://example.com/mcp

# OK: URLとトークンをダブルクォートで囲む
claude mcp add slack --url "https://example.com/mcp?token=xoxb-xxx"

URL中に?&が入ってる場合、シェルが誤解釈するためクォート必須。これに気づかず1時間溶かすのが定番パターンです。

Step 3 — 接続確認

claude mcp list

slack ✓ connected のように出れば成功。"already exist" は実は成功のサインなので慌てない。

CC講座第2回で「MCPなんとなくわかった方?」と聞いた時、半分くらい手が上がりました。第3回の冒頭で「前回のおさらい:APIとCLIとMCPの違い」を必ず振り返ります。なぜならMCPを腹落ちさせる前に走ると、全員が迷子になるから。このノックはその腹落ち加速装置です。

⚙️ .mcp.json 直接編集テンプレ
TEMPLATE — .mcp.json(プロジェクト直下)
{
  "mcpServers": {
    "slack": {
      "type": "http",
      "url": "https://example.com/mcp",
      "headers": {
        "Authorization": "Bearer ${SLACK_TOKEN}"
      }
    },
    "github": {
      "type": "stdio",
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-github"],
      "env": { "GITHUB_TOKEN": "${GITHUB_TOKEN}" }
    }
  }
}

変数展開(${SLACK_TOKEN})を使うと、APIキーは別途 .env で管理できる。これがK06に繋がる。

🚨 ハマりポイント3つ

  • stdio型とhttp型の違いで詰まる:npx で起動する系はstdio、URL直叩き系はhttp。公式READMEの例を必ず確認。
  • トークンを.mcp.jsonに直書き:コミットしたら即リーク。必ず環境変数経由にする(K06参照)。
  • "already exist"をエラーと勘違い:既に追加済みという意味。claude mcp listで確認すれば安心。
KNOCK 05 / CAT 01 — 環境設計

CLI / MCP / API の違い ─
使い分け判断フロー

「これClaudeでやりたいんだけど、CLI?MCP?それともAPI?」── 経営者が詰まるNo.1論点です。このノックで一生迷わなくなります。

🎯 このノックが解く問題

技術選択を間違うと「スキル作り直し」「MCP入れ直し」の二度手間。判断基準さえ持てば、要件を聞いた瞬間に5秒で選択肢が1つに絞れます

🧭 3つの違いを1行で
  • CLI:ターミナルからclaudeで対話する窓口。人間とClaudeの会話
  • MCP:Claudeが外部ツールを呼ぶ規格。Slack・Notion・Google Drive等を"Claudeの手足"にする
  • API:Claudeを自社プロダクト内に組み込む時に使うプログラム接続口。顧客にClaude機能を提供したい時
✅ 判断フロー
Q: Claudeで何をしたい?

├── 自分が社内業務で使う
│   → CLI(claude コマンド)
│   → 必要に応じてMCPで外部ツール追加
│
├── 社内の他の人にも使わせる(ダッシュボード等)
│   → MCP + 社内ツール連携
│   → CLAUDE.md + スキル共有で横展開
│
└── 自社プロダクトの機能として顧客に提供Anthropic API(課金は自社負担)
    → Claude SDKを使ってアプリ組込
✅ 具体例
  • 「毎朝の売上レポートを作らせたい」 → CLI + Google Sheets MCP
  • 「全社員がClaudeで議事録化できる仕組みを」 → CLI + 共通CLAUDE.md + Slack MCP
  • 「自社SaaSにAI要約機能を追加」 → Anthropic API(Claude APIを組み込む)
  • 「社内Notionの情報をClaudeから引く」 → Notion MCP

CC講座第3回の冒頭、僕は毎回"前回のおさらい"をやります。なぜならAPIとCLIとMCPの違いを曖昧にしたまま進むと、第4回以降のRAG構築で全員が迷子になるから。この3つの違いを腹落ちさせる30分が、CC講座の価値の半分と言ってもいいくらい大事です。

⚙️ 経営者向け決断表
TEMPLATE — 新規案件の判断シート
# 新しいAI活用を始める時のチェックリスト

□ 誰が使う?
  □ 自分1人          → CLI
  □ 社内チーム全員    → CLI + 共通CLAUDE.md
  □ 顧客             → API

□ 外部データは必要?
  □ ローカルファイル → filesystem MCP
  □ Slack/Notion    → 各MCP
  □ 独自システム    → 自作MCP

□ 課金主体は?
  □ 個人             → Claude Pro / Max
  □ 会社             → 法人プラン(Max)
  □ 顧客             → Anthropic API(自社負担)

🚨 ハマりポイント3つ

  • 最初からAPIに手を出す:開発コストが10倍。まずCLI+MCPで業務改善してから、顧客向け機能としてAPI化する順番。
  • MCPを入れればOKと思い込む:MCPは"接続口"。それを使う"スキル"や"CLAUDE.md"の方が重要。
  • APIの課金体系を見積もらない:Claude APIは従量課金。事前に想定利用量×単価で月額試算必須。
KNOCK 06 / CAT 01 — 環境設計

APIキー管理 ─ .env は絶対に
commit しない(鉄則)

「APIキーをコード内にベタ書きしてGitHubに上げちゃった」は経営損失に直結する事故です。ルールは1つだけ。.env ファイルは絶対に commit しない。このノックでその運用を固めます。

🎯 このノックが解く問題

公開リポジトリに流出したAPIキーは、botが秒単位でスキャンしています。流出発覚から数分で不正利用・課金事故・本番DB改変まで起きます。"暗号化すればcommit可能"というライブラリ宣伝を鵜呑みにしないのが経営者の鉄則。本ノックは「.env は commit しない」を前提にした安全運用を徹底解説します。

🧭 鉄則3つ
  1. .env は必ず .gitignore に入れる。暗号化済みでも commit 禁止。
  2. APIキーはパスワードマネージャー(1Password / Bitwarden)で共有する。Slack平文は絶対NG。
  3. 万が一commitしてしまったら即キー無効化&再発行。履歴削除は"漏れた前提"で対応。
✅ 実装ステップ

Step 1 — .gitignore を最初に書く

# .gitignore(プロジェクト直下)
.env
.env.*
*.pem
*.key

# サンプル用テンプレは commit OK
!.env.example

プロジェクト作成の初日に必ず書く。後回しにするとほぼ事故る。

Step 2 — .env.example を置いてチームに共有

# .env.example(commit OK。実キーは書かない)
OPENAI_API_KEY=your_key_here
ANTHROPIC_API_KEY=your_key_here
SLACK_TOKEN=your_token_here

これで「どのキーが必要か」だけチームに伝わる。実キーは各自が1Password経由で取得して .env を作る。

Step 3 — 実キーの共有ルートを確立

  • 1Password / Bitwarden の共有ボールトで管理(監査ログ・アクセス権制御が効く)
  • 退職・異動時は即キー無効化&再発行(ボールトから外すだけでは不十分)
  • 本番用と開発用を必ず別キーにする。事故時の被害局所化

Step 4 — git-secrets で事故防止

# Mac(brew)の場合
brew install git-secrets
git secrets --install
git secrets --register-aws

# commit時に sk-xxx / cmk_xxx 等を自動検出してブロック

これがあれば sk-xxxcmk_xxx のようなキー形式を含む commit をgit側で強制的に拒否できる。

僕の自作スキル x-viral-research(Grok API)と cmkiller-crud(ナレッジハブAPI)でも、.env はすべて .gitignore に入れています。受講生への共有は.env.example とセットアップ手順だけで、実キーは各自がAnthropic/Grok/CMKillerのダッシュボードから自分で発行。責任範囲が明確になり、事故時の被害も局所化できます。

⚙️ コピペ用テンプレ
TEMPLATE — .gitignore(最小構成)
# 絶対にcommitしない
.env
.env.local
.env.*.local
*.pem
*.key
credentials.json
secrets/

# commit OK(テンプレのみ)
!.env.example
TEMPLATE — .env.example
# 各自 1Password から取得して .env を作る
OPENAI_API_KEY=your_openai_key
ANTHROPIC_API_KEY=your_anthropic_key
SLACK_TOKEN=your_slack_token
TEMPLATE — スキル用 run.sh
#!/bin/bash
# .claude/skills/my-skill/run.sh

cd "$(dirname "$0")"
# .env を環境変数にロードして実行
export $(grep -v '^#' .env | xargs)
node cli.mjs "$@"

🚨 ハマりポイント3つ

  • commitしてから気づく:キーはもう漏れた前提で即無効化&再発行。履歴削除(BFG Repo-Cleaner)は二次対応。
  • .env.example と .env を逆に置く:.example は commit、実キー入りの .env は commit 禁止。git status で毎回確認する癖をつける。
  • "暗号化すればcommitできる"論を鵜呑み:鍵管理ミスで結局漏れる。"そもそも置かない"が一番安全
KNOCK 07 / CAT 01 — 環境設計

最初のスキル(SKILL.md)1本 ─
雑務を Claude に記憶させる

Claude Skillsは「仕事のやり方を一度書けば、2回目以降Claudeが勝手に回す」仕組み。最初の1本を正しく書けば、スキルが雪だるま式に増えていきます。

🎯 このノックが解く問題

経営者には「毎回自分で指示しないとClaudeが間違える」という時間泥棒があります。例えば議事録の要約形式、コミットメッセージのフォーマット、採用メールの書き方、全部毎回説明してる。これをSKILL.md に1回書くだけで、Claudeがそれ以降記憶して勝手に使います。

🧭 Skillの構造
.claude/skills/my-first-skill/
└── SKILL.md           # Claudeへの指示書(必須)

これだけ。Pythonコードもシェルスクリプトも不要。Markdownファイル1個でスキル完成です。

✅ SKILL.md の書き方(5要素)
  1. YAMLフロントマター:name(スキル名)+ description(いつ発動するか)
  2. Role:Claudeは何者として振る舞うか
  3. Task:何をするか
  4. Process:具体的な手順
  5. Output:出力フォーマット
✅ 実例:議事録→タスク化スキル
---
name: meeting-to-tasks
description: Zoom議事録をActionable Task Listに変換する。「議事録をタスクに」
allowed-tools: Read, Write, Edit
---

# 議事録 → タスク化スキル

## トリガー
「議事録をタスクに」「ミーティングログをタスクリストに」「会議メモを整理」

## 実行フロー

Step 1: 議事録ファイルを読む(Read)

Step 2: 以下の形式でタスクを抽出:
- [ ] {タスク名} | 担当: {名前} | 期限: {YYYY-MM-DD}

Step 3: 元議事録の末尾に"## アクションアイテム"として追記(Edit)

## 注意
- "やる"と明示された発言のみ抽出(雑談や可能性は除外)
- 担当が曖昧なものは"@未割当"で出力

僕が最初に作ったスキルは x-writing(X投稿生成)でした。理由は毎日3投稿しないといけなかったから。"毎日やる雑務"を狙い撃ちするのが最初のスキル1本目の鉄則です。CC講座受講生にも「1週間で3回以上やる仕事を1個だけ選んで、それをSKILL.md化して」と言ってます。そこから全てが始まる。

⚙️ 最初の1本コピペテンプレ
TEMPLATE — 初めてのSKILL.md
---
name: {スキル名 ケバブケース}
description: {いつ発動するか 1〜2行}。「発動キーワード」
---

# {スキル名}

## 役割
{Claudeは何者として動くか}

## トリガー
「{発動キーワード1}」「{発動キーワード2}」

## 実行フロー

Step 1: {何をする}
Step 2: {何をする}
Step 3: {何をする}

## 出力フォーマット
```
{具体的な出力例}
```

## 禁止事項
- {やってほしくないこと}

🚨 ハマりポイント3つ

  • descriptionが曖昧:Claudeはdescriptionで発動判定するので、具体キーワードを入れないと呼ばれない
  • スキルの粒度が大きすぎる:1スキル=1仕事。「マーケ全般」ではなく「X投稿生成」まで絞る
  • 完璧主義で書けない:最初は10行でOK。使いながら育てる
KNOCK 08 / CAT 01 — 環境設計

サブエージェント(.claude/agents/)の
使い所 ─ 長時間タスクの分離

サブエージェントはClaudeCodeの中にもう1人Claudeを呼び出す機能。長時間タスクや専門作業を分離することで、メインセッションを止めずに並列作業できます。

🎯 このノックが解く問題

「コード全体レビュー」「セキュリティスキャン」「大量ファイル整理」など重いタスクを走らせると、メインセッションが数分〜数十分止まります。サブエージェントは別プロセスで実行するので、待ち時間に別作業できる。経営者の1時間を2時間に変える武器です。

🧭 エージェントとスキルの違い
  • スキル:仕事のやり方を"覚えさせる"。Claudeが呼び出すか判断。短時間実行。
  • サブエージェント:独立した"もう1人のClaude"。明示的に起動。長時間実行OK。別の権限も持てる。
✅ 実装ステップ

Step 1 — agents/ フォルダに定義を置く

.claude/agents/code-reviewer.md

---
name: code-reviewer
description: Performs thorough code review. Use when user says "コードレビューして"
tools: Read, Grep, Glob
model: sonnet
---

あなたは厳格なシニアエンジニアです。
コード全体を読んで、以下の観点で100点満点評価してください:

- 正確性 (40%)
- セキュリティ (30%)
- パフォーマンス (20%)
- 保守性 (10%)

出力フォーマット:
- 総合スコア: XX/100
- 各観点の詳細
- 改善提案(Priority順 / 最大5件)

Step 2 — メインセッションから呼び出す

# メインセッションで
"code-reviewerで、src/ 配下を全部レビューして"

するとメインは即座に空く。サブエージェントが別プロセスで走り、完了時に結果が返ってくる。

僕のシステムでは 49個のサブエージェント(AIT42)を稼働させてます。それぞれが「API設計」「DB設計」「フロント実装」「QAテスト」「デプロイ」に特化。大きなプロダクト開発では、僕自身は"オーケストレーター"になり、具体作業は全部サブエージェントに振ります。経営者が作業者に戻らない仕組みの核心です。

⚙️ 最初の1体コピペテンプレ
TEMPLATE — 調査型サブエージェント
---
name: explorer
description: コードベース全体を探索して質問に答える調査専用エージェント
tools: Glob, Grep, Read
model: sonnet
---

あなたは探偵型エンジニアです。
ユーザーの質問に答えるため、コードベースを徹底調査してください。

手順:
1. 関連ファイルを Glob で列挙
2. キーワードを Grep で検索
3. 重要なファイルを Read で精読
4. 回答を200字以内で返す(冗長な説明は禁止)

禁止:
- コードの変更(調査のみ)
- 推測での回答(必ず根拠ファイル名+行番号を示す)

🚨 ハマりポイント3つ

  • エージェントに権限を与えすぎるtools: Allにすると予期せぬファイル改変リスク。必要最小限に絞る。
  • エージェント数を最初から増やす:1体目から完璧を狙わず、"今困ってる1タスク"から始める。
  • 並列実行のコスト感:サブエージェントは別セッション=別課金。同時5体走らせると月額が跳ねる。
KNOCK 09 / CAT 01 — 環境設計

カスタムスラッシュコマンドで
社内標準化する

/deploy /review /estimate ── 社内固有業務を1コマンドで起動できるようにするのがスラッシュコマンド。「あの作業どうやるんだっけ?」を永遠に終わらせる仕組み。

🎯 このノックが解く問題

社内業務は"個々人の頭の中"に依存しがち。ベテランが辞めた瞬間に誰もできなくなる。スラッシュコマンドは業務手順そのものをコード化して、新人でも"/estimate"と打つだけで100%再現できる状態を作ります。

🧭 スキルとの違い
  • スキル:Claudeが発動判定する。トリガー曖昧でもOK
  • スラッシュコマンド:人間が明示的に /xxx で起動。判定の揺れゼロ

つまり"絶対に同じ手順で動かしたい業務"はスラッシュコマンド。流れで判断してほしいものはスキル。

✅ 実装ステップ

Step 1 — commands/ に定義を置く

.claude/commands/deploy.md

---
description: Build and deploy to staging environment
---

# /deploy コマンド

手順:
1. テスト実行(npm test)
2. ビルド(npm run build)
3. dist/ をステージングサーバーにrsync
4. ヘルスチェック(curl /health)
5. Slack #deploy チャンネルに完了通知

失敗時:
- テスト失敗 → 即中断、エラー内容を表示
- デプロイ失敗 → ロールバック実行

Step 2 — 使う

# Claudeのセッション内で
/deploy

これだけ。Claudeが上記手順を順番に実行してくれる。失敗時の振る舞いもコマンド定義に書いてあるから事故らない。

僕のALA48システムには50個以上のスラッシュコマンドが登録されてます。/launch-seminar(セミナー型launch一括生成)、/create-optin(opt-inLP生成)、/deploy-sales-lp等々。新企画を立ち上げる時、僕は /start と打つだけ。あとはClaudeが全部やります。経営者の頭に"手順"を置かない状態は、この積み重ねで作られます。

⚙️ 最初の1コマンドテンプレ
TEMPLATE — /weekly-report コマンド
---
description: 週次レポート自動生成
---

# /weekly-report

手順:
1. Git log --since="1 week ago" で今週のコミット取得
2. Slack #general の自分の発言を全文抽出
3. Google Calendarの今週の予定を取得
4. 以下フォーマットで ${日付}_weekly.md を生成:

```
# 週次レポート YYYY-MM-DD
## 達成事項
- (コミット・発言から抽出)
## 進行中
- (未完了タスク)
## 来週フォーカス
- (カレンダーから推定)
```

5. できたMDをSlack #weekly に投稿

🚨 ハマりポイント3つ

  • コマンド名の衝突:Claude Code 組込コマンド(/help等)と同名にしない
  • 手順の抽象度:「うまくやって」は禁句。具体コマンド・API呼び出しまで書く
  • エラー処理抜け:必ず"失敗時の振る舞い"を書く。書かないと中途半端で止まって事故る
KNOCK 10 / CAT 01 — 環境設計

フックで"起動時自動実行"を
チーム全員に強制する

フック(hooks)はClaudeCodeのライフサイクルに処理を差し込む仕組み。「セッション開始時に必ずXをやる」をコード化することで、人間の"うっかり忘れ"をゼロにする。

🎯 このノックが解く問題

「毎朝Gitをpullする」「コミット前にlintを走らせる」「終了時にログを送る」──これら全部、人に任せると必ず誰かが忘れる。フックは強制実行レイヤー。チーム全員にミスなく運用を徹底させたい経営者の必須機能です。

🧭 主なフックの種類
  • UserPromptSubmit:ユーザーが送信する直前(入力の検証・追加指示)
  • SessionStart:Claudeセッション開始時(環境変数ロード、最新Pull等)
  • Stop:セッション終了時(ログ保存、通知等)
  • PreToolUse / PostToolUse:ツール実行前後(権限チェック、監査ログ)
✅ 実装ステップ

Step 1 — settings.json にフック定義

.claude/settings.json

{
  "hooks": {
    "SessionStart": [
      {
        "hooks": [
          { "type": "command", "command": "git pull --rebase" },
          { "type": "command", "command": "./scripts/load-env.sh" }
        ]
      }
    ],
    "Stop": [
      {
        "hooks": [
          { "type": "command", "command": "./scripts/post-session-log.sh" }
        ]
      }
    ]
  }
}

Step 2 — スクリプト本体を作る

scripts/load-env.sh

#!/bin/bash
# セッション開始時に必ず走る
dotenvx decrypt  # 暗号化された .env を使える状態に
echo "✓ 環境変数ロード完了"

僕のプロジェクトではStopフックが一番強力に効いてます。セッション終了時に、そのセッションで何を変更したかを自動要約して社内Slackに投稿。これで"誰がいつ何を作業したか"が全員に見える。属人化ゼロ、情報格差ゼロ。経営者の"チームの動きが見えない"という悩みの多くがこれ1つで消えます。

⚙️ 最初の1フック
TEMPLATE — "必ずGit pullしてから開始"フック
.claude/settings.json

{
  "hooks": {
    "SessionStart": [
      {
        "hooks": [
          {
            "type": "command",
            "command": "git pull --rebase --autostash || true"
          }
        ]
      }
    ]
  }
}

|| true を付けておくと、Pullに失敗してもセッション自体は起動します(ネットが無い時などに強制終了しない)。

🚨 ハマりポイント3つ

  • フックが失敗するとセッション全体が止まる:必ず || true でエラー許容。
  • 機密処理をフックで叩く:APIキー等をechoするような雑なスクリプトだと、ログに残って漏洩する。
  • settings.json の commit:チームで同じフック走らせたいので commit すべき。個人用だけ settings.local.json に分ける。

CAT 01 完了、おつかれさまでした。
次はCAT 02 ─ 経営実装

ここまでで"土台"が整いました。次は経営者の日次意思決定をClaudeCodeで加速させる10ノックです。

← 全カテゴリ一覧に戻る