Claude Code Docs読んでみた

Claude Code Docs読んでみた

※ サムネは妻が書いたファンアート

Claude Code Docs読んでみた

Docsを読むきっかけ

自分は昨年末から何となく使っていました。 エンジニアとしてDocs読めよっていう意見は真っ当ですが、 「わからんかったらClaudeに聞く」をしているのであまり読む必要性を感じていなかったんですよね。 ※ 実際この姿勢はClaude Codeに触れ始める上では正解と今でも思っている。変化が激しすぎて書籍はすぐ陳腐化するので

なのですが最近ClaudeCode”にも”詳しい優秀な同僚と話す機会があり、 ちゃんとClaudeのことを理解しているっぽく、 自分もちゃんと体系的に勉強しないとなーとDocsを読んでみることにしました

正直、自分にありがちな誰かが読むためというより自分用のメモです

今日から初めて触ります!という人には以下のページおすすめです

前述した通り、ClaudeのことはClaudeに聞く。とにかく触ったほうが早いとは思います

Claude Code の仕組み - Claude Code Docs
agentic ループ、組み込みツール、Claude Code がプロジェクトとどのように相互作用するかを理解します。
Claude Code Docs
Claude Code のベストプラクティス - Claude Code Docs
環境設定から並列セッションでのスケーリングまで、Claude Code を最大限に活用するためのヒントとパターン。
Claude Code Docs

読んでみて

結局わからず知りたいこと

  • 最適な実行環境(Windowsのコマンドプロンプト、VSCodeターミナル、VSCode拡張機能…結局WSL使うのがいい気もしている)

まじで意見をくれ。特にWindows環境での正解がないように感じる。

自分の場合

VSCodeの拡張機能でClaudeCodeを動かしています 自分のディレクトリ構成はこんな感じです。

~/Claude/
├── .claude/
├── CLAUDE.md
├── PJ1
│   ├── .claude/
│   ├── CLAUDE.md
│   ├── .....
├── PJ2
│   ├── .claude/
│   ├── CLAUDE.md
│   ├── .....

面倒なので~/Claude/でVSCodeを起動してClaudeCodeも起動してしまう。

するとPJxのCLAUDE.mdは読んでくれない可能性があるようです。 ルートのCLAUDE.mdに読み込ませるよう指示することもできるのだけど、コンテキストが汚れるのでやりたくないな

結局VSCodeをPJごとに別ウィンドウで立ち上げればOKなのですが面倒くさい

VSCodeの拡張機能を使うな、 ターミナルで起動するのがよいという意見もあると思うけど、VSCodeのターミナルでもコマンドプロンプトでも、 PowerShellでもClaudeCodeの日本語入力の挙動控えめに言ってゴミでは?

知らなかった概念

  • 各PJフォルダにClaude.mdを置いていても、そのフォルダでClaudeを起動しないと明記しない限り読み込まれないこと
  • skillsの説明は設定しない限り起動時に読み込まれること(内容は必要があってから)。読み込み有無は設定できるのでトークン削減したかったら無効にするといい
  • SkillsとSubagentとAgentTeamは大分違うこと。自分は混同していた。。。
    • Skillsは人間が手動でもClaudeが自動でも実行できる。
    • SubagentsはAgent(Claude本体)が自動で呼び出す。なのでdescriptionにどんな場面で使うべきか必ず記載する
    • SubagentはClaudeが並行調査とかさせるときに呼び出すけど、AgentTeamではないのでSubagent同士が会話はしない
    • AgentTeamではSubagent同士が会話しながら仕事を進めることができる
    • ここらをまとめていい感じにやりたい→ハーネスエンジニアリング
  • Cluadeが思考中でも、とりまEsc2回押しでキャンセルしていいこと。
    • わいはClaudeに気を遣って一回答え出すまで待つことあるけど、トークンの無駄らしい(/rewindも使える)
  • Memory.mdは読み込まれる行数が決まっている
    • MEMORY.md(インデックス)→ 200行で切り捨て。1エントリ1行、150文字以内に収める

微妙に知ってた概念

  • Claude.mdは階層構造。セキュリティルールとか組織が守るべきものをトップ階層に置くのが一般的
  • ハーネスエンジニアリング。。。実際に試してみたのでこれは別記事に

知らなかったコマンド類

  1. (VSCode拡張のみ?)@でファイルで参照できる。これ便利やで
  2. /init・・・Claude.mdの生成。既存の場合はClaude.mdの改善提案してくれる
  3. /agents・・・subagentの編集や追加ができる。追加はClaudeがやってくれる。 まあ結局ClaudeにSubagentも作ってもらうので使わないんだけどね

微妙に知ってたけど使っていなかったコマンド類

  1. /effort・・・細かく思考能力を切り替えられる
  2. /rename・・・セッションの名前変えられる(Claudeの方がわいより命名うまい説は大分ある)
  3. /memory・・・何が勝手に記憶されているのか確認できる
  4. /permission・・・Claudeが使えるコマンドの権限を変更できるよ

説明したいこと

skillsはただのmd

※Skill.mdに本体が記載されていて、スクリプトとかも置くことできるが基本md

パーミッションはAlways Allow押下すると自動追加されている

デフォルトでは、Claude Code はシステムを変更する可能性のあるアクション (ファイル書き込み、Bash コマンド、MCP ツールなど)の許可をリクエストします。 これは安全ですが、面倒です。10 回目の承認後、あなたは本当にレビューしていません。 クリックしているだけです。これらの中断を減らすには 3 つの方法があります。

草。わかってんじゃんていう感じ。安全のためのコマンド許可を形骸化させると意味ないよね

settings.jsonに書き込むのと/permissionでの追加は本質的には同じ 前述の通り「Always allow」を押したコマンドは自動追加されるので、 自分のは整理されておらずsettings.jsonがひどい状態だった。定期的にClaudeに整理してもらうのが良いかも PJごとに作られているんだけど、重複が多いので良い感じにマージしてもらうと良いかもね

人類の敗北1:

ありがとう。けど結局Claudeに編集してもらうほうが楽だわ、よろしく

まあ僕ごときが操作してもミスるだけなんでClaudeにやってもらった方がましなのは真実

SubAgentはAgent(Claude本体)が自動で呼び出すもの

skillsとの違いはClaudeが自動実行するか、手動実行が可能な点 あとSkillsはClaudeの本体で実行されるが、subagentは別のコンテキストウィンドウで実行される

以下の項目を/agentsから設定することができる

---
name: エージェント名
description: いつ使うかの説明(Claudeがここを読んで使うかどうか判断する)
model: claude-haiku-4-5-20251001   # 省略可。軽いタスクはHaikuが速い
tools:
  # 使えるツールを絞る(省略=全部使える)
  - Read
  - Glob
  - Grep
---

Subagentはコンテキストウィンドウが別なので本当に社員に任せるイメージが正しいと思う モデルを個別に設定できるので、社員のグレードも設定することができる

AgentTeam

使用時に特定のSubagentを言及すると、そいつを使ってくれる。

初期設定は無効になっている

CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=1

元ネタを見てもらいたいがSubAgentsは単にメインタスクを分割して、 子分が一人で頑張った結果をメインのClaudeがもらう感じ AgentTeamは子分たちが話し合うことができる

なので前者はトークンコストは低いけど、後者は高くなる。

Claude Code セッションのチームを調整する - Claude Code Docs
複数の Claude Code インスタンスがチームとして連携して動作するように調整し、共有タスク、エージェント間メッセージング、および一元管理を実現します。
Claude Code Docs

人類の敗北2:

このPJでsubagentを作るならどんなのが良いと思う?

まあ僕ごときが提案しても変な方向に行くだけなのでClaudeに…

3を作ってみようかな。作り方を教えてくれ。1回自分で設定してみたい。 あとでClaudeにレビューしてもらうんで心配しないで

Claudeはお前が一番心配だと思ってそう

ハーネスエンジニアリング(最近流行り)

AgentTeamはClaudeがいい感じにSubagentを使ってくれるけど、 結局ハーネスエンジニアリングが良いとなる。

詳しい人が聞いたら怒るかもしれないけど、 フローやゲートを設定して自己改善ループを明示的に回させるのがハーネスエンジニアリング

矛盾した感覚を持っていて、

  • Claude本体のAgentが勝手にループを回してくれるようにすればいいじゃんという感覚
  • こっちでちゃんと回してやった方がいいじゃんという感覚

※ everything-claude-code ハーネスエンジニアリングのベストプラクティス的存在らしい。自分はお遊びなのでここまで高尚なものはいらなそう

ということで試してみた

これいいな。賢い人たちがやっていることにはちゃんと意味があるのです

  • 責任区分がしっかりしているので、突っ込む相手がわかる
    • 意図しない挙動をしていたらそいつのmdを直接書き換えてやればいい
  • PMが要件定義のSubagentに指示→Codexにレビューさせる→PMが取捨選択→要件定義Subagemtが再度要件作成のループを勝手に回し始めるのは便利。
  • PMがClaudeなので、適当にCodexを嗜めてくれるから快適

よくないところ

  • 知っていたがいつもの3倍くらいコンテキストを食っている
  • いつもより時間がかかる
  • CodexとClaudeが喧嘩を始める
Share:Post

関連記事