
Claude Codeを活用してスキル成長支援&成長見守りができる仕組みを作ってみた
はじめに
まだスキル的には成長段階のフェーズで、案件に1人でアサインされることが多い場合、具体的に何ができて何ができないのかと言った点について、自身のスキルメンターと情報を共有することが難しいです。
そこで、Claude Codeのメモリー機能とプロジェクト設定(CLAUDE.md)を活用して、以下の仕組みを作りました。
- AIが弱点に基づいた課題を自動生成
- 取り組み中はAIがコーチとして伴走
- 添削後に現在のスキルレベルを具体的に表したマップと、メンター向けレポートを自動更新
- 週次1on1前に週次レポートを自動生成
メンター向けレポートの中身については、下のセクションで具体例を掲載しておりますので、そちらをご覧ください。
この記事では、仕組みの全体像、具体的な構成、実際の出力例を紹介します。
全体の仕組み
フロー
これまでやってきた課題やその結果、現在のスキルレベルを考慮してAIが課題を生成
↓
自分が取り組む ←→ AIがコーチとして伴走
↓
AIが添削
↓
メモリー自動更新(スキルのステータス、課題履歴、メンター用レポート)
↓
週次レポート自動生成 → メンターとの1on1で使用
ポイントは会話がクリアされても状態が保持される点です。Claude Codeのメモリー機能を使い、スキル情報や課題履歴をファイルとして永続化しています。新しい会話を始めても、前回の続きからスタートできます。
使っている Claude Code の機能
| 機能 | 使い方 |
|---|---|
| CLAUDE.md | プロジェクトルートに配置。AIの振る舞いルール(課題生成フロー、コーチングルール、テンプレート等)を定義 |
| プロジェクト別メモリー | ~/.claude/projects/<project-path>/memory/ にスキルマップや課題履歴を保存。会話をまたいで永続化 |
| 会話開始時の自動チェック | CLAUDE.md に「会話開始時にメモリーを読む」「進行中の課題を確認する」等のルールを記載 |
ディレクトリ構成
exercises配下に課題が作成されていきます。
以下の図におけるexercises配下の内容は例です。
~/Desktop/PJ/skill-challenge/
├── CLAUDE.md # AIの振る舞いルール
├── exercises/ # 課題格納
│ └── 001-read-and-review/
│ ├── task.md # 課題説明・評価観点・難易度
│ ├── result.md # 添削結果(AI生成)
│ ├── package.json
│ ├── tsconfig.json
│ ├── vite.config.ts
│ └── src/
│ ├── main.tsx
│ ├── App.tsx
│ ├── types/
│ ├── lib/
│ ├── hooks/
│ └── components/
└── reports/ # メンター向け(人が読む場所)
├── mentor-report.md # スキル全体像(累積)
└── weekly/ # 週次レポート(差分)
└── 2026-03-06.md
~/.claude/projects/<project-path>/memory/ # AI内部データ
├── MEMORY.md # インデックス
├── skill-profile.md # スキルのステータス
└── challenge-log.md # 課題履歴
メンター向けファイルとAI用の内部データを分離しているのがポイントです。
CLAUDE.md の設計
CLAUDE.md には以下のルールを記載しています。主要な部分を抜粋して紹介します。
会話開始時の自動復元
## 会話開始時(必ず実行)
1. メモリーファイル(MEMORY.md → 各ファイル)を読む
2. `exercises/` 内に `result.md` が存在しないディレクトリがあるか確認する
- あれば「進行中の課題がある」と判断し、ユーザーに状況を確認する
- なければ新規課題の生成が可能な状態
3. 今日が木曜日で、その週の週次レポートが未生成なら自動で生成する
曜日については例です。私はメンターとの1on1が毎週木曜日にあるので、このような例にしてありますが、自由に設定可能です。
もちろん月次にすることもできます。
Claude Code のメモリー(MEMORY.md)は自動で読み込まれますが、「進行中の課題があるかチェックする」「木曜なら週次レポートを生成する」といった動的な振る舞いは CLAUDE.md に書くことでルール化しています。
コーチングルール
## コーチング(課題取り組み中)
- 課題を出した後、いきなり完成回答を出させない。
まず「読んだ順番と気になった点を共有して」と促す
- ユーザーから質問があれば答える。ただし直接的な答えは出さない
- 考え方のヒント、調べるべきキーワード、着眼点を示す
- ユーザーが完全に詰まっている場合は、段階的にヒントのレベルを上げる
(方向性 → 具体的な観点 → 該当箇所の示唆)
- 答えそのものは、ユーザーが回答を提出するまで絶対に言わない
いきなり回答を見て添削するだけでは力がつきません。取り組みの過程でコーチとして伴走し、思考を促す仕組みにしています。
課題の構成ルール
### 課題の構成ルール
- 実務ベースの構成にすること。package.json、tsconfig.json、
ディレクトリ構成等を含め、実際のプロジェクトに近い形にする
- yarn install して動かせる状態が望ましい
- 実務で使われるライブラリ(zod, SWR, React Hook Form 等)も適宜含める
- 「src/ にファイルが数個あるだけ」のような非現実的な構成にしない
- 難易度に応じてプロジェクト規模を段階的に上げる
実務とかけ離れた構成では学びが薄くなります。
理想としては、いくつかの実務的なコードを食わせることができれば、かなり課題の精度は上がります(※顧客案件等問題のある情報を与えないように十分気をつけること)
スキルのステータス(skill-profile.md)
各スキルに対して4段階のステータスを管理しています。
未学習: まだ触れていない学習中: 教えたが実践での成功なし成功1回: 課題で1回できた定着: 複数回の課題で安定してできている
例えばこのような形です:
## 設計・アーキテクチャ
| スキル | ステータス | 備考 |
|---|---|---|
| コンポーネント設計(責務分離) | 定着 | Container/Presentational パターンを安定して使える |
| カスタムフック設計 | 成功1回 | 課題012: データフェッチをhookに切り出せた。エラー境界との連携が課題 |
| モノレポ構成の理解 | 学習中 | 課題015: packages/ の依存関係を読み解けなかった |
## テスト
| スキル | ステータス | 備考 |
|---|---|---|
| コンポーネントテスト(Testing Library) | 成功1回 | 課題014: userEvent でのフォーム操作テストを書けた |
| API モック(MSW) | 学習中 | 課題014: ハンドラ定義はできたが、エラーケースのモックを漏らした |
| E2E テスト(Playwright) | 未学習 | |
「どの課題で何が起きたか」も備考に記録しているため、次の課題生成時に AI がこれを読み、弱点を重点的に補強するための課題を生成できます。
実際の出力例
課題の task.md
# 課題015: モノレポ構成の注文管理システムのコードリーディング & 機能追加
## 難易度: A
## 形式: コードリーディング + 穴埋め実装
## 評価観点(メンター向け)
この課題で確認するスキル:
- モノレポ構成(Turborepo + pnpm workspace)の理解
- OpenAPI 生成型の活用
- Server Components と Client Components の使い分け
- TanStack Query によるデータフェッチとキャッシュ戦略
- MSW を使ったテストの追加
## 状況設定
あなたはモノレポ構成の EC バックオフィスにアサインされました。
注文管理画面に「注文ステータスの一括変更機能」を追加してください。
API スキーマ(OpenAPI)は既に定義済みで、型は自動生成されています。
## やること
1. プロジェクト構成を読み、各 package の役割を説明する
2. 既存の注文一覧取得の実装を読み、データの流れを説明する
3. `PATCH /orders/bulk-status` エンドポイントに対応する
フロント実装を追加する(API クライアント、hook、UI)
4. 追加した機能のテストを1つ書く
添削結果の result.md
課題完了後に AI が自動生成する添削結果です。
# 課題015: モノレポ構成の注文管理システム - 結果
- 日付: 2026-05-15
- 形式: コードリーディング + 穴埋め実装
- 難易度: A
## 課題の目的
モノレポ構成の理解、OpenAPI 生成型の活用、Server/Client Components の使い分け、
TanStack Query、テスト
## 結果
| 評価観点 | 結果 | 備考 |
|---|---|---|
| モノレポ構成の理解 | 部分的 | packages/ の役割は説明できたが、依存関係の解決順序(ビルド順)を説明できなかった |
| OpenAPI 生成型の活用 | OK | 生成された型を正しく import して使えた。手動で型を書かなかった |
| Server/Client Components | 部分的 | "use client" の配置は正しかったが、Server Component で取得→Client に渡すパターンを見落とした |
| TanStack Query | OK | useMutation + invalidateQueries でキャッシュ更新まで実装できた |
| テスト | 部分的 | MSW ハンドラは書けたが、楽観的更新のロールバックテストを漏らした |
## できたこと
- OpenAPI で生成された型を手動定義せず正しく使えた
- TanStack Query の useMutation → invalidateQueries のパターンを自力で実装
- MSW でAPIモックを定義してテストを書けた
## できなかったこと
- Turborepo のビルド依存グラフ(pipeline 設定)を説明できなかった
- Server Component でデータを取得して Client Component に渡す設計パターン
- 楽観的更新のテスト(エラー時のロールバック検証)
## 学んだこと(添削で伝えた内容)
- turbo.json の pipeline でビルド順序を定義する仕組み
- RSC でデータ取得 → Client Component に props で渡す設計の利点(バンドルサイズ削減)
- useMutation の onMutate / onError でロールバックを実装するパターン
メンター向けレポート(mentor-report.md)
メンターが「この人は今どのレベルか」を一目で把握できるレポートです。課題完了のたびに自動更新されます。
# メンター向けレポート
## 現在のスキル総括
### できること(定着済み)
- React hooks 全般(useState, useEffect, useCallback, useMemo, useReducer)
- TypeScript の型定義・union 型・型ガード・ジェネリクス
- fetch / エラーハンドリング / zod バリデーション
- コンポーネント設計(Container/Presentational, カスタムフック切り出し)
- TanStack Query の基本(useQuery, useMutation, キャッシュ無効化)
### 学習中(理解はあるが実践で不安定)
- モノレポ構成(パッケージ間依存の理解が浅い)
- Server Components / Client Components の使い分け
- テストの網羅性(正常系は書けるが、エラーケース・エッジケースを漏らす)
- 楽観的更新のパターン
### 主要な弱点・課題
1. モノレポのビルドパイプライン(turbo.json)を理解していない
2. RSC でデータ取得 → Client に渡す設計パターンが身についていない
3. テストで「何をテストすべきか」の判断力が不足(正常系偏重)
## 成長の推移
| 課題 | 日付 | 特筆事項 |
|---|---|---|
| 001 | 2026-03-06 | コードリーディング初回 |
| ... | ... | ... |
| 012 | 2026-04-24 | カスタムフック設計を自力で実装。エラー境界連携は課題 |
| 014 | 2026-05-08 | Testing Library + MSW でテストを初めて書けた |
| 015 | 2026-05-15 | モノレポ初挑戦。OpenAPI 型活用・TanStack Query は問題なし |
## 推奨する強化領域(優先度順)
1. モノレポのビルドパイプラインとパッケージ間依存の理解
2. Server Components の設計パターン(RSC でフェッチ → Client に渡す)
3. テスト設計力(エラーケース・境界値・ロールバック)
週次レポート(weekly/YYYY-MM-DD.md)
毎週木曜の1on1に向けて自動生成されます。その週の成長の差分にフォーカスしています。
# 週次レポート: 2026-05-15
対象期間: 2026-05-08 〜 2026-05-14
## 今週取り組んだ課題
| # | テーマ | 形式 | 難易度 | 結果サマリ |
|---|---|---|---|---|
| 014 | フォーム + テスト | 新規実装 | B | React Hook Form + zod + Testing Library + MSW で実装。エラーケーステストが不足 |
| 015 | モノレポ注文管理 | コードリーディング+実装 | A | OpenAPI型活用・TanStack Query はOK。モノレポのビルド依存とRSC設計が課題 |
## 今週できるようになったこと
- MSW でAPIモックを書いてテストを実行する一連の流れ
- TanStack Query の useMutation + invalidateQueries を自力実装
- OpenAPI 生成型を手動定義せず活用する習慣
## 今週も改善が見られなかったこと
- テストで「エラーケースも書く」という意識(正常系偏重が続いている)
## 来週の推奨フォーカス
- テスト設計力の強化(エラーケース・境界値の洗い出し方法)
- モノレポのビルドパイプライン(turbo.json の読み方)
仕組みを作る過程で得た気づき
コーチングの設計が大事
最初はAIに「課題を出して、回答を添削する」だけのフローにしていました。しかしそれだと「答え合わせ」にしかなりません。取り組みの過程で質問には直接答えず考え方を示す、というコーチング設計を入れたことで学習効果が上がりました。
コンテキスト肥大化への対処
課題を重ねるとデータが増えますが、以下の設計で対処しています。
- MEMORY.md: インデックスだけ記載し、詳細は別ファイルにリンク
- skill-profile.md: スキルごとに1行のサマリ。コードそのものは保存しない
- challenge-log.md: 課題ごとに1行のサマリ
- result.md: 各課題ディレクトリに分散配置
AI は必要なファイルだけを読むので、課題数が増えてもコンテキストが爆発しません。
まとめ
Claude Code の CLAUDE.md とメモリー機能を組み合わせることで、以下を実現するシステムを作りました。
- 弱点に基づいた課題の自動生成
- 取り組み中のコーチング
- 添削後のスキルマップ・レポート自動更新
- メンターとの1on1で使える週次レポートの自動生成
特別なツールやサービスは不要で、Claude Code の標準機能(CLAUDE.md + メモリー)だけで構築できます。ジュニアエンジニアや、育成を担当されている方の参考になれば幸いです。
また、設定画面から現在のスキルレベルや目標を入力するだけで、自動でこの育成システムを使えるようなアプリケーションも開発予定です。
完成した際はまたブログで発表できればと思います。








