self-eval について
self-eval は、完了した作業を評価する Claude Code スキルです。タスクの難易度と実行品質を分けて採点し、反対意見の検討とセッションをまたぐ記録で、評価の偏りを検出します。
主な機能
- 01タスク難易度と実行品質の二軸評価
- 02マトリックスによる総合スコア算出
- 03高低両方の評価根拠を検討
- 04スコア履歴の保存
- 05スコアの集中傾向を検出
活用シーン
- 01Claude Code セッション終了時の作業評価
- 02定型作業の過大評価チェック
- 03セッション間の自己評価の比較
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ alirezarezvani/ claude-skills --skill self-evalインストール後、Claude Code で/self-evalを入力して読み込まれたか確認します。
詳細
自己評価:誠実な作業評価
深く考えてください
Tier: STANDARD カテゴリ: エンジニアリング/品質 依存関係: なし(プロンプトのみ。外部ツールは不要です)
説明
Self-eval は、誠実で適切に調整された作業評価を行う Claude Code スキルです。あらゆる評価をデフォルトで 5 点中 4 点にしがちな AI の傾向を、2 軸の構造化スコアリングシステム、必須の反対意見の検討、セッションをまたいだスコアの過大評価検出に置き換えます。
核心となる考え方:AI の自己評価が「すべて 4 点」に収束するのは、単一軸のスコアではタスクの難易度と実行品質が混同されるためです。Self-eval はこの 2 つの軸を分けて評価し、モデルが変更できない固定マトリクスを使って組み合わせます。
機能
- 2 軸スコアリング — タスクの意欲度(低/中/高)と実行品質(不十分/妥当/優秀)を個別に評価し、照合マトリクスで組み合わせます
- 必須の反対意見の検討 — 最終決定の前に、より高いスコアとより低いスコアの両方を支持する根拠を述べ、その矛盾を解決する必要があります
- スコアの保存 — 作業ディレクトリの
.self-eval-scores.jsonlにスコアを追記し、セッションをまたいで履歴を作成します - 過大評価の検出 — 過去のスコアを読み込み、スコアの集中(直近 5 件中 4 件以上が同一)にフラグを立てます
- マトリクスに基づくスコアリング — 総合スコアは直接選ぶのではなく、マトリクスから決まります。実行品質にかかわらず、意欲度が低い場合は 5 点中 2 点が上限です
使用方法
Claude Code のセッションで作業を完了した後:
/self-eval
評価対象に関するコンテキストを指定する場合:
/self-eval the authentication refactor we just completed
このスキルは会話履歴を確認し、達成した内容を特定して、両方の軸で評価します。さらに、反対意見の検討を行い、その結果をスコア履歴ファイルに追記します。
例
例 1:機能の実装
/self-eval added pagination to the user list API
出力:
## Self-Evaluation
**Task:** Added cursor-based pagination to the user list API endpoint
**Ambition:** Medium — New feature with established patterns, but required careful backwards compatibility
**Execution:** Strong — All tests pass, handles edge cases, existing clients unaffected
**Devil's Advocate:**
- Lower: Pagination is well-documented. The pattern was copied from another endpoint with minor changes. Could argue Low ambition.
- Higher: The backwards-compat requirement made this harder than a greenfield implementation. Had to support both offset and cursor modes.
- Resolution: Medium ambition holds — the backwards-compat constraint added real complexity beyond copy-paste.
**Score: 4** — Solid execution on meaningful work with real constraints.
例 2:バグ修正
/self-eval
出力:
## Self-Evaluation
**Task:** Fixed race condition in the checkout flow causing duplicate orders
**Ambition:** Medium — Required debugging across 3 services to find the root cause
**Execution:** Adequate — Fix works but the test only covers the exact scenario reported, not the general class of race conditions
**Devil's Advocate:**
- Lower: The fix was a single line (adding a mutex). Once found, it was trivial.
- Higher: Finding the root cause across 3 services took real investigation. The mutex placement required understanding the full flow.
- Resolution: Medium ambition is correct for the investigation, but execution drops to Adequate — a more thorough fix would address the pattern, not just the instance.
**Score: 3** — Good debugging work but the fix is narrow.
評価対象
$ARGUMENTS
引数が指定されていない場合は、会話履歴全体を確認して、このセッションで達成した内容を特定します。スコアを付ける前に、作業内容を 1 文で要約します。
スコアの付け方 — 2 軸モデル
2 つの独立した軸で評価してから、マトリクスを使って組み合わせます。最初に数値を選んでから理屈を付けるのは避けてください。各軸を個別に評価し、その後マトリクスでスコアを確認します。
軸 1:タスクの意欲度(何に取り組んだか)
取り組んだ内容の難易度とリスクを評価します。どれだけうまくできたかは評価しません。
- 低(1) — 安全で慣れており、定型的です。失敗する現実的なリスクはありません。例:軽微な設定変更、簡単なリファクタリング、小さな変更を加えたコピー&ペースト、着手前から完了できると確信していたタスク。
- 中(2) — 新規性や難しさを伴う有意義な作業です。一部失敗する可能性がありました。例:新機能の実装、慣れていない API の統合、アーキテクチャの変更、難しい問題のデバッグ。
- 高(3) — 意欲的で、慣れていない、または重大な結果を伴う取り組みです。完全に失敗する現実的なリスクがあります。例:慣れていない分野でのゼロからの構築、複雑なシステムの再設計、パフォーマンスが重要な最適化、プレッシャーの下での本番環境へのリリース。
自己確認: 着手前から成功を確信していた場合、意欲度は「高」ではなく「低」または「中」です。
軸 2:実行品質(どれだけうまくできたか)
タスクの意欲度とは独立して、実際の成果物の品質を評価します。
- 不十分(1) — 重大な失敗、不完全な成果、誤った出力、または途中での放棄。成果物が、掲げた基準を満たしていません。
- 妥当(2) — 完了していますが、不足や近道があり、十分な厳密さに欠けています。作業は完了したものの、明らかな改善の余地が残っています。
- 優秀(3) — 適切に実行され、徹底されており、質の高い成果です。範囲を踏まえると、未対応の明らかな改善点はありません。
複合スコアマトリックス
| 実行力が低い(1) | 実行力が十分(2) | 実行力が高い(3) | |
|---|---|---|---|
| 野心が低い(1) | 1 | 2 | 2 |
| 野心が中程度(2) | 2 | 3 | 4 |
| 野心が高い(3) | 2 | 4 | 5 |
マトリックスを読み取り、結果を覆さないでください。 複合スコアがあなたのスコアです。以下の悪魔の代弁者の検討によって軸の評価を変更することはできますが、マトリックスの結果を直接覆すことはできません。
主な特性:
- 野心が低い場合、スコアは最大2です。安全な仕事を完璧にこなしても、安全な仕事であることに変わりはありません。
- 5を付けるには、野心の高さと実行力の高さの両方が必要です。5はまれであるべきです。
- 野心が高く、実行力が低い場合は2です。大胆な失敗は評価を下げます。
- 堅実な仕事に対する、最もよくある正直なスコアは3です(野心が中程度、実行力が十分)。
悪魔の代弁者(必須)
最終スコアを書く前に、以下の3項目をすべて必ず記述してください。
- 低く評価する根拠: この仕事に低いスコアを付けるべき理由は何でしょうか? 簡単だった点、避けた点、見かけほど野心的ではなかった点は何でしょうか? 懐疑的な評価者は、あなたの各軸の評価に同意するでしょうか?
- 高く評価する根拠: この仕事に高いスコアを付けるべき理由は何でしょうか? 本当に難しかったこと、予想外だったこと、当初の計画を上回ったことは何でしょうか?
- 結論: どちらかの検討によって軸の評価を誤っていたことが明らかになった場合は、評価を修正し、マトリックスの結果を再計算してください。そのうえで、両方の検討内容に少なくとも1点ずつ触れながら、最終スコアを1~2文で述べてください。
悪魔の代弁者の検討が合計3文に満たない場合、十分に検討できていません。もっと深く考えてください。
スコアのインフレ確認
現在の作業ディレクトリにある .self-eval-scores.jsonl でスコア履歴ファイルを確認してください。
ファイルがある場合は読み込み、直近5件のスコアを確認してください。直近5件のうち4件以上が同じ数値なら、そのことを明記してください。
警告:スコアの偏りを検出しました。 直近5件のスコア:[リスト]。既定のスコアに引きずられていないか検討してください。
ファイルがない場合は、自問してください。「外部の観察者も同じ評価をするだろうか?」
スコアの保存
評価を提示した後、現在の作業ディレクトリにある .self-eval-scores.jsonl に次の1行を追加してください。
{"date":"YYYY-MM-DD","score":N,"ambition":"Low|Medium|High","execution":"Poor|Adequate|Strong","task":"1-sentence summary"}
これにより、セッションをまたいでスコアのインフレ確認を行えます。ファイルがない場合は作成してください。
出力形式
評価は次の形式で提示してください。
自己評価
タスク: 試みたことを1文で要約 野心: [低/中/高] — [根拠を1文で] 実行力: [低/十分/高] — [根拠を1文で]
悪魔の代弁者:
- 低く評価する根拠:[低いスコアに値する可能性]
- 高く評価する根拠:[高いスコアに値する可能性]
- 結論:[最終的な判断]
スコア:[1~5] — [最終的な根拠を1文で]