• #claude-code
  • #skills
  • #rules
  • #migration
開発claude-code-tools完了

背景

現在、.claude/rules/に複数のルールファイルが配置されている。セッション開始時にすべてがコンテキストに読み込まれ、毎回トークンを消費している。

BEFORE
> /context
  ⎿
  ⎿   Context Usage
  ⎿  ⛁ ⛀ ⛁ ⛁ ⛁ ⛁ ⛁ ⛁ ⛁ ⛁   claude-opus-4-5-20251101 · 92k/200k tokens (46%)
  ⎿  ⛁ ⛁ ⛁ ⛁ ⛁ ⛁ ⛁ ⛁ ⛁ ⛁
  ⎿  ⛁ ⛁ ⛁ ⛶ ⛶ ⛶ ⛶ ⛶ ⛶ ⛶   ⛁ System prompt: 3.3k tokens (1.7%)
  ⎿  ⛶ ⛶ ⛶ ⛶ ⛶ ⛶ ⛶ ⛶ ⛶ ⛶   ⛁ System tools: 15.7k tokens (7.8%)
  ⎿  ⛶ ⛶ ⛶ ⛶ ⛶ ⛶ ⛶ ⛶ ⛶ ⛶   ⛁ MCP tools: 19.0k tokens (9.5%)
  ⎿  ⛶ ⛶ ⛶ ⛶ ⛶ ⛶ ⛶ ⛶ ⛶ ⛶   ⛁ Memory files: 6.4k tokens (3.2%)
  ⎿  ⛶ ⛶ ⛶ ⛶ ⛶ ⛶ ⛶ ⛶ ⛶ ⛶   ⛁ Messages: 2.4k tokens (1.2%)
  ⎿  ⛶ ⛶ ⛶ ⛶ ⛶ ⛶ ⛶ ⛝ ⛝ ⛝   ⛶ Free space: 108k (54.1%)
  ⎿  ⛝ ⛝ ⛝ ⛝ ⛝ ⛝ ⛝ ⛝ ⛝ ⛝   ⛝ Autocompact buffer: 45.0k tokens (22.5%)
  ⎿  ⛝ ⛝ ⛝ ⛝ ⛝ ⛝ ⛝ ⛝ ⛝ ⛝
  ⎿
  ⎿  MCP tools · /mcp
  ⎿  └ mcp__chrome-devtools__click (chrome-devtools): 636 tokens
  ⎿  └ mcp__chrome-devtools__close_page (chrome-devtools): 624 tokens
  ⎿  └ mcp__chrome-devtools__drag (chrome-devtools): 638 tokens
  ⎿  └ mcp__chrome-devtools__emulate (chrome-devtools): 855 tokens
  ⎿  └ mcp__chrome-devtools__evaluate_script (chrome-devtools): 780 tokens
  ⎿  └ mcp__chrome-devtools__fill (chrome-devtools): 644 tokens
  ⎿  └ mcp__chrome-devtools__fill_form (chrome-devtools): 676 tokens
  ⎿  └ mcp__chrome-devtools__get_console_message (chrome-devtools): 631 tokens
  ⎿  └ mcp__chrome-devtools__get_network_request (chrome-devtools): 635 tokens
  ⎿  └ mcp__chrome-devtools__handle_dialog (chrome-devtools): 645 tokens
  ⎿  └ mcp__chrome-devtools__hover (chrome-devtools): 609 tokens
  ⎿  └ mcp__chrome-devtools__list_console_messages (chrome-devtools): 823 tokens
  ⎿  └ mcp__chrome-devtools__list_network_requests (chrome-devtools): 829 tokens
  ⎿  └ mcp__chrome-devtools__list_pages (chrome-devtools): 575 tokens
  ⎿  └ mcp__chrome-devtools__navigate_page (chrome-devtools): 704 tokens
  ⎿  └ mcp__chrome-devtools__new_page (chrome-devtools): 637 tokens
  ⎿  └ mcp__chrome-devtools__performance_analyze_insight (chrome-devtools)697 tokens
  ⎿
  ⎿  └ mcp__chrome-devtools__performance_start_trace (chrome-devtools): 689 tokens
  ⎿  └ mcp__chrome-devtools__performance_stop_trace (chrome-devtools): 579 tokens
  ⎿  └ mcp__chrome-devtools__press_key (chrome-devtools): 673 tokens
  ⎿  └ mcp__chrome-devtools__resize_page (chrome-devtools): 629 tokens
  ⎿  └ mcp__chrome-devtools__select_page (chrome-devtools): 650 tokens
  ⎿  └ mcp__chrome-devtools__take_screenshot (chrome-devtools): 803 tokens
  ⎿  └ mcp__chrome-devtools__take_snapshot (chrome-devtools): 713 tokens
  ⎿  └ mcp__chrome-devtools__upload_file (chrome-devtools): 651 tokens
  ⎿  └ mcp__chrome-devtools__wait_for (chrome-devtools): 643 tokens
  ⎿  └ mcp__ide__getDiagnostics (ide): 611 tokens
  ⎿  └ mcp__ide__executeCode (ide): 682 tokens
  ⎿
  ⎿  Memory files · /memory
  ⎿  └ User (C:\Users\numbe\.claude\CLAUDE.md): 127 tokens
  ⎿  └ Project (C:\Users\numbe\Git_repo\mdx-playground\CLAUDE.md): 507 tokens
  ⎿  └ Project (C:\Users\numbe\Git_repo\mdx-playground\.claude\rules\archi516 tokens
  ⎿  ecture.md):
  ⎿  └ Project (C:\Users\numbe\Git_repo\mdx-playground\.claude\rules\conten831
  ⎿  -management.md):                                                      tokens
  ⎿  └ Project (C:\Users\numbe\Git_repo\mdx-playground\.claude\rules\data1.3k tokens
  ⎿  generation.md):
  ⎿  └ Project                                                             167
  ⎿  (C:\Users\numbe\Git_repo\mdx-playground\.claude\rules\deployment.md): tokens
  ⎿  └ Project                                                            909 tokens
  ⎿  (C:\Users\numbe\Git_repo\mdx-playground\.claude\rules\drawio.md):
  ⎿  └ Project (C:\Users\numbe\Git_repo\mdx-playground\.claude\rules\qa-ve784 tokens
  ⎿  ification.md):
  ⎿  └ Project                                                            614 tokens
  ⎿  (C:\Users\numbe\Git_repo\mdx-playground\.claude\rules\testing.md):
  ⎿  └ Project                                                            705 tokens
  ⎿  (C:\Users\numbe\Git_repo\mdx-playground\.claude\rules\windows.md):
  ⎿
  ⎿  SlashCommand Tool · 1 commands
  ⎿  └ Total: 981 tokens
  ⎿
  ⎿

AFTER
⎿
  ⎿   Context Usage
  ⎿  ⛁ ⛀ ⛁ ⛁ ⛁ ⛁ ⛁ ⛁ ⛁ ⛁   claude-opus-4-5-20251101 · 87k/200k tokens (43%)
  ⎿  ⛁ ⛁ ⛁ ⛁ ⛁ ⛁ ⛁ ⛁ ⛁ ⛁
  ⎿  ⛁ ⛀ ⛶ ⛶ ⛶ ⛶ ⛶ ⛶ ⛶ ⛶   ⛁ System prompt: 3.3k tokens (1.7%)
  ⎿  ⛶ ⛶ ⛶ ⛶ ⛶ ⛶ ⛶ ⛶ ⛶ ⛶   ⛁ System tools: 17.5k tokens (8.8%)
  ⎿  ⛶ ⛶ ⛶ ⛶ ⛶ ⛶ ⛶ ⛶ ⛶ ⛶   ⛁ MCP tools: 19.0k tokens (9.5%)
  ⎿  ⛶ ⛶ ⛶ ⛶ ⛶ ⛶ ⛶ ⛶ ⛶ ⛶   ⛁ Memory files: 1.9k tokens (0.9%)
  ⎿  ⛶ ⛶ ⛶ ⛶ ⛶ ⛶ ⛶ ⛶ ⛶ ⛶   ⛁ Messages: 8 tokens (0.0%)
  ⎿  ⛶ ⛶ ⛶ ⛶ ⛶ ⛶ ⛶ ⛝ ⛝ ⛝   ⛶ Free space: 113k (56.7%)
  ⎿  ⛝ ⛝ ⛝ ⛝ ⛝ ⛝ ⛝ ⛝ ⛝ ⛝   ⛝ Autocompact buffer: 45.0k tokens (22.5%)
  ⎿  ⛝ ⛝ ⛝ ⛝ ⛝ ⛝ ⛝ ⛝ ⛝ ⛝
  ⎿
  ⎿  MCP tools · /mcp
  ⎿  └ mcp__chrome-devtools__click (chrome-devtools): 636 tokens
  ⎿  └ mcp__chrome-devtools__close_page (chrome-devtools): 624 tokens
  ⎿  └ mcp__chrome-devtools__drag (chrome-devtools): 638 tokens
  ⎿  └ mcp__chrome-devtools__emulate (chrome-devtools): 855 tokens
  ⎿  └ mcp__chrome-devtools__evaluate_script (chrome-devtools): 780 tokens
  ⎿  └ mcp__chrome-devtools__fill (chrome-devtools): 644 tokens
  ⎿  └ mcp__chrome-devtools__fill_form (chrome-devtools): 676 tokens
  ⎿  └ mcp__chrome-devtools__get_console_message (chrome-devtools): 631 tokens
  ⎿  └ mcp__chrome-devtools__get_network_request (chrome-devtools): 635 tokens
  ⎿  └ mcp__chrome-devtools__handle_dialog (chrome-devtools): 645 tokens
  ⎿  └ mcp__chrome-devtools__hover (chrome-devtools): 609 tokens
  ⎿  └ mcp__chrome-devtools__list_console_messages (chrome-devtools): 823 tokens
  ⎿  └ mcp__chrome-devtools__list_network_requests (chrome-devtools): 829 tokens
  ⎿  └ mcp__chrome-devtools__list_pages (chrome-devtools): 575 tokens
  ⎿  └ mcp__chrome-devtools__navigate_page (chrome-devtools): 704 tokens
  ⎿  └ mcp__chrome-devtools__new_page (chrome-devtools): 637 tokens
  ⎿  └ mcp__chrome-devtools__performance_analyze_insight (chrome-devtools)697 tokens
  ⎿
  ⎿  └ mcp__chrome-devtools__performance_start_trace (chrome-devtools): 689 tokens
  ⎿  └ mcp__chrome-devtools__performance_stop_trace (chrome-devtools): 579 tokens
  ⎿  └ mcp__chrome-devtools__press_key (chrome-devtools): 673 tokens
  ⎿  └ mcp__chrome-devtools__resize_page (chrome-devtools): 629 tokens
  ⎿  └ mcp__chrome-devtools__select_page (chrome-devtools): 650 tokens
  ⎿  └ mcp__chrome-devtools__take_screenshot (chrome-devtools): 803 tokens
  ⎿  └ mcp__chrome-devtools__take_snapshot (chrome-devtools): 713 tokens
  ⎿  └ mcp__chrome-devtools__upload_file (chrome-devtools): 651 tokens
  ⎿  └ mcp__chrome-devtools__wait_for (chrome-devtools): 643 tokens
  ⎿  └ mcp__ide__getDiagnostics (ide): 611 tokens
  ⎿  └ mcp__ide__executeCode (ide): 682 tokens
  ⎿
  ⎿  Memory files · /memory
  ⎿  └ User (C:\Users\numbe\.claude\CLAUDE.md): 127 tokens
  ⎿  └ Project (C:\Users\numbe\Git_repo\mdx-playground\CLAUDE.md): 507 tokens
  ⎿  └ Project (C:\Users\numbe\Git_repo\mdx-playground\.claude\rules\archi516 tokens
  ⎿  ecture.md):
  ⎿  └ Project                                                            705 tokens
  ⎿  (C:\Users\numbe\Git_repo\mdx-playground\.claude\rules\windows.md):
  ⎿
  ⎿  SlashCommand Tool · 8 commands
  ⎿  └ Total: 2.8k tokens
  ⎿
  ⎿

Rules vs Skills の違い

特性RulesSkills
読み込みセッション開始時に全てオンデマンド(必要時のみ)
コンテキスト消費常に消費必要な時だけ消費
呼び出し自動(常にアクティブ)Claudeが自律的に判断
適切な用途常に守るべき安全ルールタスク固有の手順・ルール

移行対象の判断基準

Rulesに残すべきもの:

  • 常に意識すべき安全ルール(例:Node.jsプロセス終了禁止)
  • プロジェクト構造の基本理解

Skillsに移行すべきもの:

  • ユーザーの明示的な指示がトリガーとなるもの
  • 特定タスク時のみ必要な手順・ルール

移行計画

Rulesに残す(プロジェクト固有)

ファイル理由
windows.md常に意識すべき安全ルール(Node.js終了禁止など)
architecture.mdプロジェクト構造の基本理解に常に必要

Skillsに移行(ユーザー固有)

ファイル移行先トリガー理由
content-management.md~/.claude/skills/content-management/「マークダウンに保存して」等MD作成時のみ必要
data-generation.md~/.claude/skills/data-generation/「データを生成して」等データ生成時のみ必要
drawio.md~/.claude/skills/drawio/「図を作成して」等draw.io作成時のみ必要
qa-verification.md~/.claude/skills/qa-verification/ブラウザテスト時テスト時のみ必要

検討中

ファイル判断理由
deployment.mdどちらでも可デプロイ時のみ必要だが、コマンドは簡潔
testing.mdどちらでも可テスト時のみ必要だが、コマンドは簡潔

Skill作成の基本構造

~/.claude/skills/
└── content-management/
    └── SKILL.md

SKILL.mdのフォーマット:

---
name: "content-management"
description: "Markdownコンテンツ作成時のfrontmatter形式ルールと更新手順"
---

# Content Management

(既存のcontent-management.mdの内容をここに移動)

期待される効果

  1. コンテキスト節約: 不要なルールがコンテキストを消費しなくなる
  2. ユーザー横断: ユーザー固有のSkillsは全プロジェクトで利用可能
  3. 明確な責務分離: 「常に守るべきこと」と「タスク時に参照すること」の区別が明確になる

実施状況

  • content-management Skillの作成
  • data-generation Skillの作成
  • drawio Skillの作成
  • qa-verification Skillの作成
  • deployment Skillの作成
  • testing Skillの作成
  • vue-pages Skillの作成
  • 移行完了後、元のrulesファイルを削除