mcpField
S
self-improvement

self-improvement

github.com/wanikuaエージェントワークフロー2.7k42 回インストール23 週間前に更新
リポジトリ

self-improvement について

self-improvementは、コーディングエージェント向けのスキルです。エラーや修正、実践知をMarkdownに記録し、広く役立つ内容をプロジェクトやワークスペースのガイダンスに反映します。OpenClawなどでの設定方法も示します。

主な機能

  1. 01エラー、学び、機能要望の記録
  2. 02構造化テンプレートによる分類
  3. 03エージェント用ガイダンスへの反映
  4. 04繰り返すパターンと関連項目の追跡
  5. 05記録項目の確認と解決

活用シーン

  1. 01コマンドや連携の失敗を後で確認する記録
  2. 02ユーザーの修正や知識の不足の記録
  3. 03今後の作業に向けた機能要望の保存
  4. 04繰り返す学びをプロジェクト指示に反映

インストール

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

$npx skills add https://github.com/wanikua/danghuangshang --skill self-improvement

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

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

_meta.json
package.json
.clawdhub/
origin.json
.learnings/
ERRORS.md
FEATURE_REQUESTS.md
LEARNINGS.md
assets/
LEARNINGS.md
SKILL-TEMPLATE.md
hooks/openclaw/
handler.js
handler.ts
HOOK.md
references/
examples.md
hooks-setup.md
openclaw-integration.md
scripts/
activator.sh
error-detector.sh
extract-skill.sh

詳細

自己改善スキル

継続的な改善のために、学びやエラーを Markdown ファイルに記録します。コーディングエージェントが後からこれらを処理して修正に反映でき、重要な学びはプロジェクトのメモリに昇格されます。

クイックリファレンス

状況対応
コマンド/操作に失敗した.learnings/ERRORS.md に記録します
ユーザーから訂正されたカテゴリを correction として .learnings/LEARNINGS.md に記録します
ユーザーが不足している機能を求めた.learnings/FEATURE_REQUESTS.md に記録します
API/外部ツールに失敗した統合の詳細とともに .learnings/ERRORS.md に記録します
知識が古くなっていたカテゴリを knowledge_gap として .learnings/LEARNINGS.md に記録します
より良い方法を見つけたカテゴリを best_practice として .learnings/LEARNINGS.md に記録します
繰り返し発生するパターンを簡素化/強化するSource: simplify-and-harden と安定した Pattern-Key を付けて .learnings/LEARNINGS.md に記録/更新します
既存のエントリーに類似している**See Also** でリンクし、優先度の引き上げを検討します
幅広く適用できる学びCLAUDE.md、AGENTS.md、および/または .github/copilot-instructions.md に昇格します
ワークフローの改善AGENTS.md(OpenClaw ワークスペース)に昇格します
ツールの注意点TOOLS.md(OpenClaw ワークスペース)に昇格します
振る舞いのパターンSOUL.md(OpenClaw ワークスペース)に昇格します

OpenClaw のセットアップ(推奨)

OpenClaw は、このスキルの主要なプラットフォームです。ワークスペースベースのプロンプトインジェクションを使用し、スキルを自動的に読み込みます。

インストール

ClawdHub 経由(推奨):

clawdhub install self-improving-agent

手動:

git clone https://github.com/peterskoett/self-improving-agent.git ~/.openclaw/skills/self-improving-agent

元のリポジトリから OpenClaw 用に作り直しました:https://github.com/pskoett/pskoett-ai-skills - https://github.com/pskoett/pskoett-ai-skills/tree/main/skills/self-improvement

ワークスペース構成

OpenClaw は、これらのファイルをすべてのセッションに挿入します。

~/.openclaw/workspace/
├── AGENTS.md          # Multi-agent workflows, delegation patterns
├── SOUL.md            # Behavioral guidelines, personality, principles
├── TOOLS.md           # Tool capabilities, integration gotchas
├── MEMORY.md          # Long-term memory (main session only)
├── memory/            # Daily memory files
│   └── YYYY-MM-DD.md
└── .learnings/        # This skill's log files
    ├── LEARNINGS.md
    ├── ERRORS.md
    └── FEATURE_REQUESTS.md
学びのファイルを作成する
mkdir -p ~/.openclaw/workspace/.learnings

次に、ログファイルを作成します(または assets/ からコピーします)。

  • LEARNINGS.md — 訂正、知識の不足、ベストプラクティス
  • ERRORS.md — コマンドの失敗、例外
  • FEATURE_REQUESTS.md — ユーザーが求めた機能
昇格先

学びが幅広く適用できるとわかったら、ワークスペースファイルに昇格します。

学びの種類昇格先例
振る舞いのパターンSOUL.md「簡潔にし、免責事項を避ける」
ワークフローの改善AGENTS.md「長時間のタスクではサブエージェントを起動する」
ツールの注意点TOOLS.md「Git のプッシュ前に認証を設定する」
セッション間のコミュニケーション

OpenClaw には、セッション間で学びを共有するためのツールがあります。

  • sessions_list — アクティブなセッション/最近のセッションを表示します
  • sessions_history — 別のセッションのトランスクリプトを読み取ります
  • sessions_send — 別のセッションに学びを送信します
  • sessions_spawn — バックグラウンド作業用のサブエージェントを起動します
任意:フックを有効にする

セッション開始時に自動でリマインダーを表示するには:

# Copy hook to OpenClaw hooks directory
cp -r hooks/openclaw ~/.openclaw/hooks/self-improvement

# Enable it
openclaw hooks enable self-improvement

詳しくは references/openclaw-integration.md を参照してください。


汎用セットアップ(その他のエージェント)

Claude Code、Codex、Copilot、その他のエージェントでは、プロジェクト内に .learnings/ を作成します。

mkdir -p .learnings

assets/ からテンプレートをコピーするか、ヘッダーを付けてファイルを作成します。

学びの記録を促すために、エージェントのファイル AGENTS.md、CLAUDE.md、または .github/copilot-instructions.md に参照を追加します。(これはフックベースのリマインダーの代替手段です)
自己改善ワークフロー

エラーや訂正が発生した場合:

  1. .learnings/ERRORS.md、LEARNINGS.md、または FEATURE_REQUESTS.md に記録します
  2. 幅広く適用できる学びを確認し、次のファイルに昇格します。
    • CLAUDE.md - プロジェクトの事実と規約
    • AGENTS.md - ワークフローと自動化
    • .github/copilot-instructions.md - Copilot のコンテキスト

記録形式

学びのエントリー

.learnings/LEARNINGS.md に追記します。

## [LRN-YYYYMMDD-XXX] category

**Logged**: ISO-8601 timestamp
**Priority**: low | medium | high | critical
**Status**: pending
**Area**: frontend | backend | infra | tests | docs | config

### Summary
One-line description of what was learned

### Details
Full context: what happened, what was wrong, what's correct

### Suggested Action
Specific fix or improvement to make

### Metadata
- Source: conversation | error | user_feedback
- Related Files: path/to/file.ext
- Tags: tag1, tag2
- See Also: LRN-20250110-001 (if related to existing entry)
- Pattern-Key: simplify.dead_code | harden.input_validation (optional, for recurring-pattern tracking)
- Recurrence-Count: 1 (optional)
- First-Seen: 2025-01-15 (optional)
- Last-Seen: 2025-01-15 (optional)

---
エラーのエントリー

.learnings/ERRORS.md に追記します。

## [ERR-YYYYMMDD-XXX] skill_or_command_name

**Logged**: ISO-8601 timestamp
**Priority**: high
**Status**: pending
**Area**: frontend | backend | infra | tests | docs | config

### Summary
Brief description of what failed

### Error

実際のエラーメッセージまたは出力


### Context
- Command/operation attempted
- Input or parameters used
- Environment details if relevant

### Suggested Fix
If identifiable, what might resolve this

### Metadata
- Reproducible: yes | no | unknown
- Related Files: path/to/file.ext
- See Also: ERR-20250110-001 (if recurring)

---
機能リクエストのエントリー

.learnings/FEATURE_REQUESTS.md に追記します。

## [FEAT-YYYYMMDD-XXX] capability_name

**Logged**: ISO-8601 timestamp
**Priority**: medium
**Status**: pending
**Area**: frontend | backend | infra | tests | docs | config

### Requested Capability
What the user wanted to do

### User Context
Why they needed it, what problem they're solving

### Complexity Estimate
simple | medium | complex

### Suggested Implementation
How this could be built, what it might extend

### Metadata
- Frequency: first_time | recurring
- Related Features: existing_feature_name

---

ID の生成

形式:TYPE-YYYYMMDD-XXX

  • TYPE:LRN(学習)、ERR(エラー)、FEAT(機能)
  • YYYYMMDD:現在の日付
  • XXX:連番またはランダムな 3 文字(例:001、A7B)

例:LRN-20250115-001、ERR-20250115-A3F、FEAT-20250115-002

エントリーの解決

問題を修正したら、エントリーを更新します。

  1. **Status**: pending を **Status**: resolved に変更します
  2. Metadata の後に解決ブロックを追加します。
### Resolution
- **Resolved**: 2025-01-16T09:00:00Z
- **Commit/PR**: abc123 or #42
- **Notes**: Brief description of what was done

その他のステータス値:

  • in_progress - 対応中
  • wont_fix - 対応しないことを決定(Resolution notes に理由を追加)
  • promoted - CLAUDE.md、AGENTS.md、または .github/copilot-instructions.md に昇格

プロジェクトメモリへの昇格

学習内容が広く適用可能な場合(その場限りの修正ではない場合)、永続的なプロジェクトメモリに昇格させます。

昇格する場合
  • 複数のファイルや機能に適用される学習内容
  • 人間または AI を問わず、すべてのコントリビューターが知っておくべき知識
  • 同じ間違いの再発を防ぐもの
  • プロジェクト固有の規約を記録するもの
昇格先
対象記載する内容
CLAUDE.mdすべての Claude とのやり取りに関するプロジェクト情報、規約、注意点
AGENTS.mdエージェント固有のワークフロー、ツールの使用パターン、自動化ルール
.github/copilot-instructions.mdGitHub Copilot 向けのプロジェクトの背景情報と規約
SOUL.md行動指針、コミュニケーションスタイル、原則(OpenClaw ワークスペース)
TOOLS.mdツールの機能、使用パターン、連携時の注意点(OpenClaw ワークスペース)
昇格の方法
  1. 要約:学習内容を簡潔なルールまたは事実にまとめます
  2. 追加:対象ファイルの適切なセクションに追加します(必要に応じてファイルを作成します)
  3. 元のエントリーを更新:
    • **Status**: pending を **Status**: promoted に変更します
    • **Promoted**: CLAUDE.md、AGENTS.md、または .github/copilot-instructions.md を追加します
昇格の例

学習内容(詳細):

プロジェクトでは pnpm のワークスペースを使用します。npm install を試しましたが失敗しました。 ロックファイルは pnpm-lock.yaml です。pnpm install を使用する必要があります。

CLAUDE.md 内(簡潔):

## Build & Dependencies
- Package manager: pnpm (not npm) - use `pnpm install`

学習内容(詳細):

API エンドポイントを変更する際は、TypeScript クライアントを再生成する必要があります。 これを忘れると、実行時に型の不一致が発生します。

AGENTS.md 内(実行可能な指示):

## After API Changes
1. Regenerate client: `pnpm run generate:api`
2. Check for type errors: `pnpm tsc --noEmit`

繰り返しパターンの検出

既存のエントリーと似た内容を記録する場合:

  1. まず検索:grep -r "keyword" .learnings/
  2. エントリーをリンク:Metadata に **See Also**: ERR-20250110-001 を追加します
  3. 問題が繰り返し発生する場合は、優先度を上げます
  4. システム的な修正を検討:繰り返し発生する問題は、多くの場合、次のことを示しています。
    • ドキュメントの不足(→ CLAUDE.md または .github/copilot-instructions.md に昇格)
    • 自動化の不足(→ AGENTS.md に追加)
    • アーキテクチャ上の問題(→ 技術的負債のチケットを作成)

フィードの簡素化と強化

このワークフローを使用して、simplify-and-harden スキルから繰り返しパターンを取り込み、永続的なプロンプトガイダンスに変換します。

取り込みワークフロー
  1. タスクの要約から simplify_and_harden.learning_loop.candidates を読み取ります。
  2. 各候補について、pattern_key を安定した重複排除キーとして使用します。
  3. .learnings/LEARNINGS.md で、そのキーを持つ既存のエントリーを検索します。
    • grep -n "Pattern-Key: <pattern_key>" .learnings/LEARNINGS.md
  4. 見つかった場合:
    • Recurrence-Count を増やします
    • Last-Seen を更新します
    • 関連するエントリーやタスクへの See Also リンクを追加します
  5. 見つからなかった場合:
    • 新しい LRN-... エントリーを作成します
    • Source: simplify-and-harden を設定します
    • Pattern-Key、Recurrence-Count: 1、First-Seen/Last-Seen を設定します
昇格ルール (システムプロンプトへのフィードバック)

以下のすべてに当てはまる場合、繰り返し発生するパターンをエージェントのコンテキスト/システムプロンプトファイルに昇格させます:

  • Recurrence-Count >= 3
  • 少なくとも 2 つの異なるタスクにまたがって確認されている
  • 30 日以内の期間に発生している

昇格先:

  • CLAUDE.md
  • AGENTS.md
  • .github/copilot-instructions.md
  • 該当する場合は OpenClaw のワークスペースレベルのガイダンス用の SOUL.md / TOOLS.md

昇格させるルールは、長いインシデント報告ではなく、短い予防ルール (コーディングの前/最中に何をすべきか) として記述します。

定期的なレビュー

自然な区切りで .learnings/ をレビューします:

レビューのタイミング
  • 新しい大きなタスクを始める前
  • 機能を完成させた後
  • 過去の学びがある領域で作業するとき
  • 活発に開発している間は毎週
クイックステータス確認
# Count pending items
grep -h "Status\*\*: pending" .learnings/*.md | wc -l

# List pending high-priority items
grep -B5 "Priority\*\*: high" .learnings/*.md | grep "^## \["

# Find learnings for a specific area
grep -l "Area\*\*: backend" .learnings/*.md
レビューのアクション
  • 修正済みの項目を解決する
  • 該当する学びを昇格させる
  • 関連するエントリをリンクする
  • 繰り返し発生する問題をエスカレーションする

検出トリガー

以下のことに気づいたら自動的に記録します:

訂正 (→ correction カテゴリの学び):

  • 「いや、それは正しくない...」
  • 「実は、こうあるべきです...」
  • 「〜について間違っています...」
  • 「それは古くなっています...」

機能リクエスト (→ 機能リクエスト):

  • 「〜もできますか...」
  • 「〜できたらいいのに...」
  • 「〜する方法はありますか...」
  • 「なぜ〜できないのですか...」

知識のギャップ (→ knowledge_gap カテゴリの学び):

  • ユーザーがあなたの知らなかった情報を提供する
  • 参照したドキュメントが古くなっている
  • API の動作があなたの理解と異なる

エラー (→ エラーエントリ):

  • コマンドが非ゼロの終了コードを返す
  • 例外またはスタックトレース
  • 予期しない出力や動作
  • タイムアウトまたは接続失敗

優先度のガイドライン

優先度使用する場合
criticalコア機能をブロックする、データ損失のリスク、セキュリティ問題
high重大な影響、一般的なワークフローに影響、繰り返し発生する問題
medium中程度の影響、回避策が存在する
low軽微な不便、エッジケース、あると便利

エリアタグ

コードベースの領域で学びを絞り込むために使用します:

エリア範囲
frontendUI、コンポーネント、クライアントサイドのコード
backendAPI、サービス、サーバーサイドのコード
infraCI/CD、デプロイ、Docker、クラウド
testsテストファイル、テストユーティリティ、カバレッジ
docsドキュメント、コメント、README
config設定ファイル、環境、設定

ベストプラクティス

  1. すぐに記録する - 問題の直後が最もコンテキストが新鮮です
  2. 具体的にする - 将来のエージェントがすぐに理解できる必要があります
  3. 再現手順を含める - 特にエラーの場合
  4. 関連ファイルをリンクする - 修正が容易になります
  5. 具体的な修正を提案する - 「調査する」だけではなく
  6. 一貫したカテゴリを使用する - フィルタリングが可能になります
  7. 積極的に昇格させる - 迷ったら、CLAUDE.md や .github/copilot-instructions.md に追加します
  8. 定期的にレビューする - 古くなった学びは価値を失います

Gitignore のオプション

学びをローカルに保つ (開発者ごと):

.learnings/

学びをリポジトリで追跡する (チーム全体): .gitignore に追加しないでください - 学びは共有知識になります。

ハイブリッド (テンプレートを追跡し、エントリは無視する):

.learnings/*.md
!.learnings/.gitkeep

フックの統合

エージェントフックを通じて自動リマインダーを有効にします。これはオプトインです - フックを明示的に設定する必要があります。

クイックセットアップ (Claude Code / Codex)

プロジェクトに .claude/settings.json を作成します:

{
  "hooks": {
    "UserPromptSubmit": [{
      "matcher": "",
      "hooks": [{
        "type": "command",
        "command": "./skills/self-improvement/scripts/activator.sh"
      }]
    }]
  }
}

これにより、各プロンプトの後に学習評価のリマインダーが挿入されます (オーバーヘッドは約 50〜100 トークン)。

フルセットアップ (エラー検出あり)
{
  "hooks": {
    "UserPromptSubmit": [{
      "matcher": "",
      "hooks": [{
        "type": "command",
        "command": "./skills/self-improvement/scripts/activator.sh"
      }]
    }],
    "PostToolUse": [{
      "matcher": "Bash",
      "hooks": [{
        "type": "command",
        "command": "./skills/self-improvement/scripts/error-detector.sh"
      }]
    }]
  }
}
利用可能なフックスクリプト
スクリプトフックタイプ目的
scripts/activator.shUserPromptSubmitタスク後に学びを評価するよう促します
scripts/error-detector.shPostToolUse (Bash)コマンドエラー時にトリガーされます

詳細な設定とトラブルシューティングについては references/hooks-setup.md を参照してください。

自動スキル抽出

学びが再利用可能なスキルになるほど価値がある場合、提供されているヘルパーを使用して抽出します。

スキル抽出の基準

次のいずれかに該当する学びは、スキル抽出の対象となります。

基準説明
繰り返し発生類似する問題への See Also リンクが 2 件以上ある
検証済みステータスが resolved で、修正が機能している
自明ではない発見するために実際のデバッグや調査が必要だった
幅広く適用可能プロジェクト固有ではなく、さまざまなコードベースで役立つ
ユーザーからの指定ユーザーが「これをスキルとして保存して」などと伝えている
抽出ワークフロー
  1. 候補を特定する:学びが抽出基準を満たしている
  2. ヘルパーを実行する(または手動で作成する):
    ./skills/self-improvement/scripts/extract-skill.sh skill-name --dry-run
    ./skills/self-improvement/scripts/extract-skill.sh skill-name
    
  3. SKILL.md をカスタマイズする:テンプレートに学びの内容を記入する
  4. 学びを更新する:ステータスを promoted_to_skill に設定し、Skill-Path を追加する
  5. 検証する:新しいセッションでスキルを読み、単独で完結していることを確認する
手動での抽出

手動で作成する場合:

  1. skills/<skill-name>/SKILL.md を作成する
  2. assets/SKILL-TEMPLATE.md のテンプレートを使用する
  3. Agent Skills spec に従う:
    • name と description を含む YAML フロントマター
    • 名前はフォルダー名と一致させる
    • スキルフォルダー内に README.md を作成しない
抽出を検出するトリガー

学びをスキルにするべき兆候に注意してください。

会話での兆候:

  • 「これをスキルとして保存して」
  • 「これに何度も遭遇する」
  • 「これはほかのプロジェクトでも役立ちそう」
  • 「このパターンを覚えておいて」

学習エントリでの兆候:

  • See Also リンクが複数ある(繰り返し発生する問題)
  • 優先度が高く、ステータスが resolved
  • カテゴリーが best_practice で、幅広く適用可能
  • 解決策を称賛するユーザーからのフィードバック
スキル品質ゲート

抽出する前に、次の点を確認してください。

  • 解決策がテスト済みで、機能している
  • 説明が元のコンテキストなしで理解できる
  • コード例が単独で完結している
  • プロジェクト固有の値がハードコードされていない
  • スキルの命名規則(小文字、ハイフン)に従っている

マルチエージェント対応

このスキルは、エージェントごとの有効化方法により、さまざまな AI コーディングエージェントで動作します。

Claude Code

有効化:フック(UserPromptSubmit、PostToolUse) セットアップ:フック設定を含む .claude/settings.json 検出:フックスクリプトによる自動検出

Codex CLI

有効化:フック(Claude Code と同じパターン) セットアップ:フック設定を含む .codex/settings.json 検出:フックスクリプトによる自動検出

GitHub Copilot

有効化:手動(フック非対応) セットアップ:.github/copilot-instructions.md に追加します。

## Self-Improvement

After solving non-obvious issues, consider logging to `.learnings/`:
1. Use format from self-improvement skill
2. Link related entries with See Also
3. Promote high-value learnings to skills

Ask in chat: "Should I log this as a learning?"

検出:セッション終了時に手動で確認

OpenClaw

有効化:ワークスペースへの注入+エージェント間メッセージング セットアップ:上記の「OpenClaw Setup」セクションを参照してください 検出:セッションツールとワークスペースファイルを使用

エージェントに依存しないガイダンス

エージェントにかかわらず、次の場合は自己改善を適用してください。

  1. 自明ではないことを発見したとき — 解決策がすぐには分からなかった
  2. 自分の誤りを訂正したとき — 最初のアプローチが間違っていた
  3. プロジェクトの規約を学んだとき — 文書化されていないパターンを発見した
  4. 予期しないエラーに遭遇したとき — 特に原因の特定が難しかった場合
  5. より良いアプローチを見つけたとき — 最初の解決策を改善できた
Copilot Chat との統合

Copilot ユーザーは、必要に応じてプロンプトに次の内容を追加してください。

このタスクの完了後、自己改善スキルの形式を使って、.learnings/ に記録すべき学びがあるか評価してください。

または、次のクイックプロンプトを使用してください。

  • 「これを学習記録に残して」
  • 「この解決策からスキルを作成して」
  • 「関連する問題がないか .learnings/ を確認して」

コメント