mcpField
S
self-learning

self-learning

github.com/pixel-process-ugエージェントワークフロー383 回インストール33 週間前に更新
リポジトリ

self-learning について

コードベースを調べ、プロジェクトの背景や規約、ユーザーの好みを記録するエージェント向けスキルです。発見、メモリ更新、訂正への対応、保存内容の検証手順を定めています。

主な機能

  1. 01プロジェクト構成とコードパターンの調査
  2. 02Git 履歴の確認
  3. 03プロジェクトメモリファイルの保存
  4. 04訂正に基づくメモリ更新
  5. 05セッション開始時のメモリ検証

活用シーン

  1. 01不慣れなコードベースの把握
  2. 02セッションをまたいだプロジェクト規約の維持
  3. 03ユーザーの訂正後の前提記録の更新

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/pixel-process-ug/superkit-agents --skill self-learning

インストール後、Claude Code で/self-learningを入力して読み込まれたか確認します。

詳細

概要

自己学習スキルは、セッションをまたいでプロジェクトのコンテキストを自動的に発見し、理解して保持します。実際のプロジェクト成果物をスキャンすることで、コードベース、技術スタック、慣習、チームの好みに関するメンタルモデルを構築します。自己学習がなければ、セッションは毎回ゼロから始まります。自己学習があれば、エージェントは組織内の知識を蓄積し、時間の経過とともに精度を高め、エラーを減らします。

開始時に宣言します:「このプロジェクトを理解するために、自己学習スキルを使用しています。」


フェーズ 1:トリガーの特定

このスキルを起動したトリガーを特定します。

トリガーコンテキストアクション
新規プロジェクトメモリファイルが存在しない全体の調査(フェーズ 2~5)
不慣れな領域コードベースの未知の部分で作業している対象を絞った調査(その領域のフェーズ 2~3)
ユーザーによる修正ユーザーが「それは間違っています」と言う、または前提を修正する修正プロトコル(フェーズ 6)
明示的な /learnユーザーがコマンドを実行する全体の調査(フェーズ 2~5)
セッション開始メモリファイルが存在するが、古くなっている可能性があるメモリを読み込み、検証する(フェーズ 7)

停止:先に進む前に、トリガーを特定してください。トリガーによって必要なフェーズは異なります。


フェーズ 2:プロジェクト構成のスキャン

Explore エージェントを使用して、優先度順に以下のファイルを調べます。

ファイル/ディレクトリ判明する内容優先度
package.json / pyproject.toml / go.mod / Cargo.toml / composer.json技術スタック、依存関係、スクリプト最重要
README.md / CLAUDE.md / AGENTS.mdプロジェクトの目的、慣習、ルール最重要
ディレクトリ構成(上位 2 階層)アーキテクチャパターン(モノレポ、MVC、ヘキサゴナルなど)最重要
tsconfig.json / eslint.config.* / .prettierrc / phpstan.neonコーディング規約、厳格さのレベル高
.gitignore除外対象、デプロイの手掛かり高
docker-compose.yml / Dockerfileインフラストラクチャ、サービス中
.github/workflows/ / .gitlab-ci.ymlCI/CD の構成、必須チェック中
.env.example環境変数、外部サービス中
specs/ / docs/既存の仕様とドキュメント中

アクション: 見つかった各ファイルから重要な情報を抽出します。すべてのファイルを読むのではなく、要点を絞ってスキャンしてください。

停止:コードパターンを分析する前に、構成のスキャンを完了してください。


フェーズ 3:コードパターンの分析

代表的なファイルを 3~5 個調べて、パターンを特定します。

パターンのカテゴリ確認する内容指標の例
命名規則変数/関数/ファイルの命名camelCase、snake_case、kebab-case、PascalCase
インポート/エクスポートモジュールの構成バレルエクスポート、相対パスと絶対パス、パスエイリアス
エラー処理失敗の管理方法try/catch、Result 型、エラーバウンダリー、カスタム例外
テストパターンテストフレームワークとスタイルファイル名(*.test.ts と *.spec.ts など)、構成(describe/it と test など)
状態管理データの流れRedux、Zustand、Context、Vuex、Pinia、Livewire
API パターン通信方式REST、GraphQL、tRPC、RPC、WebSocket
データベースアクセスデータレイヤーの方式ORM(Prisma、Eloquent、TypeORM)、生 SQL、クエリビルダー
コンポーネントパターンUI の構造アトミックデザイン、機能別フォルダー、スタイルの同一配置

アクション: コードベースの異なる領域から 3~5 個のファイルを開きます。具体例とともに、観察したパターンを記録します。


フェーズ 4:Git 履歴の分析

git log --oneline -20          # Recent commits — development velocity, commit style
git shortlog -sn -20           # Active contributors
git branch -a                  # Branching strategy
git log --diff-filter=A --name-only --pretty=format: -10 | head -30  # Recently added files

抽出する内容: 開発の速度、コミットメッセージの慣習、ブランチ戦略、活発な領域。

停止:メモリに保存する前に、すべての調査フェーズを完了してください。


フェーズ 5:メモリへの保存

以下のメモリファイルを更新します(存在しない場合は作成し、存在する場合は追記します)。

memory/project-context.md
# Project Context



## Purpose
[What this project does, who it is for]

## Tech Stack
- Language: [e.g., TypeScript 5.x]
- Framework: [e.g., Next.js 15]
- Database: [e.g., PostgreSQL via Prisma]
- Testing: [e.g., Vitest + Playwright]
- CI/CD: [e.g., GitHub Actions]

## Architecture
[e.g., Monorepo with apps/ and packages/]
[Key directories and their purposes]

## Key Dependencies
[Critical libraries and their roles]
memory/learned-patterns.md
# Learned Patterns



## Naming Conventions
[What was observed with specific examples]

## Code Organization
[Import patterns, file structure, module boundaries]

## Error Handling
[How errors are handled in this project with examples]

## Testing Approach
[Framework, patterns, naming, coverage expectations]
memory/user-preferences.md
# User Preferences



## Communication Style
[Terse? Detailed? Prefers code over explanation?]

## Workflow Preferences
[PR workflow? Branch naming? Commit style?]

## Review Preferences
[What they focus on in reviews?]
memory/decisions-log.md
# Decisions Log


## YYYY-MM-DD: [Decision Title]
**Decision:** [What was decided]
**Context:** [Why this came up]
**Rationale:** [Why this was chosen over alternatives]
**Alternatives considered:** [What else was considered]

フェーズ 6:修正プロトコル

ユーザーが前提を訂正した場合:

  1. 受け止める — すぐに訂正を認め、誤った前提を正当化しないでください
  2. 特定する — 更新すべきメモリファイルを特定してください
  3. 更新する — 日付と背景情報を含めて、メモリファイルを訂正内容で更新してください
  4. 適用する — 現在の作業にすぐに訂正を反映してください
  5. 波及を確認する — 訂正によってメモリ内のほかの前提が無効にならないか確認してください
訂正の種類更新するメモリファイル例
命名規則の誤りlearned-patterns.md「camelCaseではなく、snake_caseを使います」
技術スタックの誤りproject-context.md「Jestではなく、Vitestを使います」
ワークフローの好みuser-preferences.md「必ずPRを作成し、mainにはプッシュしないでください」
アーキテクチャの誤解project-context.md「それはモノリスではなく、マイクロサービスです」
決定の背景decisions-log.md「Zではなく、Yを理由にXを選びました」

メモリの更新を省略しないでください。保存されない訂正は、繰り返されます。


フェーズ 7:セッション開始時 — メモリの検証

メモリファイルがすでに存在する場合:

  1. memory/ ディレクトリからすべてのメモリファイルを読み込みます
  2. Last updated の日付を確認し、30日を超えて古いものがあればフラグを立てます
  3. 2~3件の事実を現在のコードベースと照合します(例:package.json に今も同じフレームワークが記載されているか)
  4. 不一致が見つかった場合、変更された領域を対象に再スキャンを実施します
  5. 古くなった項目を最新情報で更新します

決定表:調査の深さ

状況調査の深さ所要時間
メモリファイルのない新規プロジェクト全フェーズ3~5分
既知のプロジェクトの新しい領域対象を絞る(その領域のみフェーズ 2~3)1~2分
ユーザーによる訂正訂正プロトコルのみ(フェーズ 6)30秒
既存メモリがある状態でのセッション開始検証のみ(フェーズ 7)1分
大規模なリファクタリングを検出(変更ファイル多数)全体を再スキャン3~5分

反パターン/よくある間違い

やってはいけないこと失敗する理由代わりにすること
プロジェクト内の全ファイルを読むコンテキストウィンドウを浪費し、時間がかかります戦略的にスキャンします。まず設定ファイルを確認し、次に代表的なコードファイルを3~5件確認します
1つのファイルから規約を推測するそのファイルだけが例外かもしれません保存する前に、2つ以上のファイルでパターンを確認します
メモリファイルを完全に上書きする履歴やユーザーの訂正が失われます履歴を残しながら、特定のセクションを追記または更新します
Gitの履歴を確認しない開発の速度やチームのパターンを見落とします必ず最近のコミットとコントリビューターを確認します
推測を事実として保存する誤った情報で今後のセッションに悪影響を与えます証拠に裏付けられた観察事項のみを保存します
ユーザーの訂正を無視する同じ間違いを繰り返します訂正はただちに観察事項に優先させます
実装の詳細を深掘りする木を見て森を見失います個別のロジックではなく、パターンと規約に注目します
セッション開始時にメモリの検証を省略する古い情報を使ってしまいますメモリを現在のコードベースと必ず照合します

自己正当化を防ぐガード

考え実際のところ
「このフレームワークはもう知っています」このプロジェクト固有の規約は分かりません。スキャンしてください。
「メモリファイルは十分新しいはずです」それでも照合してください。コードは急速に変化します。
「この訂正は些細なことです」些細な訂正が大きな間違いを防ぎます。保存してください。
「書き留めなくても覚えておけます」覚えていられません。セッションは独立しています。メモリに保存してください。
「スキャンには時間がかかりすぎます」スキャンをしないと誤った前提につながり、修正にさらに時間がかかります。

メモリへの保存を省略しないでください。発見したことは書き留めてください。


統合ポイント

スキル関係
using-toolkitセッション開始時に自己学習を開始します
brainstormingアイデア生成の前にプロジェクトのコンテキストを読み込みます
planning学習したパターンを活用し、一貫性のあるアプローチを提案します
code-review学習した規約に照らしてコードをチェックします
auto-improvement発見の有効性に関する指標を記録します
resilient-execution失敗パターンを今後のアプローチ選択に活用します

具体例

発見コマンドの実行順序
# Step 1: Identify tech stack
cat package.json | head -50
# or
cat composer.json | head -50
# or
cat pyproject.toml

# Step 2: Check project structure
ls -la
ls -la src/ || ls -la app/ || ls -la lib/

# Step 3: Examine coding standards
cat tsconfig.json 2>/dev/null || cat phpstan.neon 2>/dev/null
cat .eslintrc* 2>/dev/null || cat .prettierrc* 2>/dev/null

# Step 4: Git activity
git log --oneline -20
git shortlog -sn -20
修正後のメモリ更新
## 2026-03-15: Naming Convention Correction
**Previous assumption:** Project uses camelCase for database columns
**Correction:** Project uses snake_case for database columns (user corrected)
**Evidence:** Checked `migrations/` directory — all columns use snake_case
**Updated:** learned-patterns.md, Naming Conventions section

主な原則

  • 推測せず、観察する — コードベースの証拠に基づいて学習します
  • 段階的に更新する — メモリファイルに追記し、上書きしません
  • 保存前に検証する — 2つ以上の例で観察内容を再確認します
  • 修正を尊重する — ユーザーによる修正は、直ちに観察内容より優先されます
  • 最新の状態を保つ — 大きな変更があった場合は再スキャンします

スキルの種類

RIGID — 発見フェーズは順番どおりに実施する必要があります。メモリへの保存は必須です。修正は直ちに記録する必要があります。フェーズを省略したり、スキャンの必要性を正当化して回避したりしないでください。

コメント