6
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

ECCのスキル設計と運用ルーチンを主要SKILL.mdから読み解く

6
Posted at

はじめに

GitHub で 205k スターを集める affaan-m/ECC は、Claude Code・Codex・Cursor などのエージェントハーネスを横断する「ハーネス性能最適化システム」です。公称 63 agents / 249 skills / 79 legacy command shims という規模ですが、数字だけ眺めても使い方は見えてきません。

本記事では、ECC のスキルの中から代表的な3つ(search-first / continuous-learning-v2 / strategic-compact)の SKILL.md を実際に読み解き、スキルがどういう構造で書かれているかと、導入後にどう日常運用するかを整理します。

  • この記事で分かること: ECC スキルの定義構造、主要スキル3つの動作原理、選定・学習・コンテキスト管理という3つの運用ルーチン
  • 対象読者: Claude Code でスキルやフックを使い始めていて、「設定を入れた後の運用」を設計したいエンジニア
  • 前提知識: Claude Code の基本操作(スラッシュコマンド、フック、コンテキストウィンドウの概念)

なお、本記事はリポジトリの README と各 SKILL.md(v2.0.0-rc.1 時点)を一次情報として読み解いたものです。

背景:なぜ「スキルの運用」が問題になるのか

ECC は「Skills are the primary workflow surface(スキルが主要なワークフロー面)」と明言しており、スラッシュコマンドは互換層、古いものは legacy-command-shims/ に退避という整理です。つまり ECC を導入するということは、実質的に249個のスキル群とどう付き合うかを決めることになります。

ここで問題になるのが次の2点です。

  • 選定の問題: 全部入れるとコンテキストを圧迫する。README には「MCP サーバーの入れすぎで 200k のコンテキストが実質 70k まで減る」という注意があり、MCP は10個以下・アクティブツール80個以下という目安が示されています
  • 運用の問題: スキルは入れて終わりではなく、セッションからの学習・コンテキストの圧縮・状態の引き継ぎといった日々のルーチンとセットで初めて機能します

この2点を、実際のスキル定義から逆算して見ていきます。

ECC スキルの解剖学:SKILL.md の構造

ECC のスキルはすべて frontmatter 付き Markdown(SKILL.md)で定義されます。search-first の冒頭はこうなっています。

---
name: search-first
description: Research-before-coding workflow. Search for existing tools,
  libraries, and patterns before writing custom code.
origin: ECC
---

本文は概ね次のセクションで構成されており、これは自作スキルのテンプレートとしてそのまま流用できる形です。

セクション 役割
When to Activate / Trigger スキルが発火すべき状況の列挙
Workflow 手順のステップ定義(図解付きが多い)
Decision Matrix 判断基準の表(採用/拡張/自作など)
Examples 入力→判断→結果の具体例
Anti-Patterns やってはいけないことの明示

特に Trigger(いつ使うか)と Anti-Patterns(何をしないか)を必ず書くスタイルは重要です。スキルの発火は LLM の判断に依存する確率的なものなので、発火条件を具体的な状況の列挙で書くほど安定します。

主要スキル解説①:search-first — 書く前に調べさせる

search-first は「コードを書く前に既存解を調べる」を強制するワークフローです。手順は、ツール可用性の事前確認 → 要求分析 → 並列調査(npm/PyPI・MCP・GitHub/Web)→ 評価 → 判断 → 実装、と進みます。

面白いのは判断が4択の Decision Matrix になっている点です。

シグナル アクション
完全一致・保守良好・MIT/Apache Adopt(そのまま採用)
部分一致・土台として良い Extend(薄いラッパーを書く)
弱い候補が複数 Compose(2〜3個の小パッケージを組み合わせる)
適切なものなし Build(調査結果を踏まえて自作)

Anti-Patterns には「検索チャネルが使えなかったのに『見つからなかった』と報告する(Silent skipping)」が挙げられており、エージェントの調査品質で実際に起きがちな問題を押さえています。筆者もユーティリティを書かせる前にこの4択を意識させるだけで、車輪の再発明がかなり減ると感じています。

主要スキル解説②:continuous-learning-v2 — instinct という学習単位

ECC で最も独創的なのが instinct(勘所)ベースの継続学習です。フックで全ツール呼び出しを観測し、バックグラウンドの観測エージェント(Haiku)がパターンを検出して、確信度スコア付きの instinct として蓄積します。

---
id: prefer-functional-style
trigger: "when writing new functions"
confidence: 0.7
domain: "code-style"
scope: project
---

設計上のポイントは3つあります。

1. 観測はスキルではなくフックで行う。 v1 はスキルで観測していましたが、スキルの発火は50〜80%程度と確率的です。フックは100%決定的に発火するため、v2 では観測をフックに移しています。「確実に実行したい処理はスキルではなくフックに置く」という使い分けは、ECC 以外のハーネス設計でも通用する原則です。

2. v2.1 でプロジェクトスコープが入った。 React の流儀が Python プロジェクトに漏れる「クロスプロジェクト汚染」を防ぐため、instinct は git remote URL のハッシュでプロジェクト単位に隔離されます。「入力検証は必ずやる」のような普遍的パターンだけがグローバルに昇格します。

3. 確信度が運用の軸になる。 0.3(暫定)から 0.9(ほぼ確実)まで、観測の繰り返しで上がり、ユーザーの訂正で下がります。0.7 以上で自動適用という閾値設計です。

主要スキル解説③:strategic-compact — 圧縮のタイミングを設計する

長いセッションで自動コンパクション(auto-compaction)がタスクの途中に走り、文脈が飛んだ経験は多くの人にあるはずです。strategic-compact は「論理的な区切りで手動 /compact する」ことを促すスキルで、フックがツール呼び出し回数を数えて閾値(デフォルト50回)で提案します。

判断基準の表が実用的です。

フェーズ遷移 圧縮する? 理由
調査 → 計画 する 調査コンテキストは嵩張る。計画が蒸留された成果物
計画 → 実装 する 計画はファイルにあるので、コードのために空ける
実装の途中 しない 変数名・ファイルパス・途中状態を失うコストが大きい
失敗したアプローチの後 する 袋小路の推論を消してから次の手を打つ

「何が圧縮を生き残るか」も明示されています。CLAUDE.md・タスクリスト・メモリファイル・git 状態・ディスク上のファイルは残り、中間推論・読んだファイル内容・口頭で伝えた細かい好みは消えます。だからこそ「圧縮の前にファイルへ書き出す」が鉄則になります。

日常運用の組み立て方

ここからは、上記のスキル群を前提にした運用ルーチンを3つに分けて整理します。

ルーチン1:選定 — 全部入れずに相談して絞る

ECC には同梱のアドバイザー CLI があり、欲しい能力を自然文で聞くと該当コンポーネントと選択的インストールのコマンドを返してくれます。

# どのコンポーネントが必要か相談
npx ecc consult "security reviews" --target claude

# 最小プロファイル + 必要な能力だけ追加
npx ecc install --profile minimal --target claude --with capability:machine-learning

インストール経路はプラグイン(/plugin install ecc@ecc)か手動インストーラのどちらか一方だけを使い、混ぜないのが大原則です(混在は重複登録の最頻出原因です)。

ルーチン2:学習 — instinct のライフサイクルを回す

continuous-learning-v2 を有効にしたら、定期的に次のコマンドで学習結果を棚卸しします。

/instinct-status     # 学習済み instinct を確信度付きで確認
/evolve              # 関連 instinct をクラスタリングしてスキル化を提案
/promote             # 2プロジェクト以上・確信度0.8以上をグローバル昇格
/instinct-export     # チーム共有用にエクスポート

筆者が良い設計だと思うのは、エクスポートできるのは instinct(パターン)だけで、生の観測ログやコード内容は共有されない点です。チームでの知見共有とプライバシーの線引きが明確です。

ルーチン3:コンテキスト管理 — フックの強度を環境変数で調整

フックの挙動はファイルを編集せずランタイムで制御できます。

# フックの厳格さ(minimal / standard / strict)
export ECC_HOOK_PROFILE=standard

# 特定フックだけ無効化
export ECC_DISABLED_HOOKS="pre:bash:tmux-reminder,post:edit:typecheck"

# セッション開始時に注入する追加コンテキストの上限
export ECC_SESSION_START_MAX_CHARS=4000

さらに v2.0.0-rc.1 では運用状態のスナップショット機能が入り、セッション・スキル実行の健全性・保留イベントを Markdown で書き出して引き継ぎに使えます。

ecc status --markdown --write status.md   # 状態を引き継ぎ用に書き出し
ecc status --exit-code                    # CI で readiness を検査

「エージェントの状態を人間に引き継ぐ」ところまで運用に含めている点は、個人利用を超えてチーム運用を見据えた設計だと言えます。

ハマりどころ

  • プラグイン導入後に observe.sh を settings.json へ手動コピーしない: Claude Code v2.1+ はプラグインの hooks.json を自動ロードするため、二重実行と ${CLAUDE_PLUGIN_ROOT} 解決エラーの原因になります
  • 学習データの置き場所が ~/.claude の外にある: instinct のデータは ~/.local/share/ecc-homunculus/(XDG 準拠)に置かれます。Claude Code のセンシティブパスガードがバックグラウンド書き込みをブロックしないための配置で、旧 ~/.claude/homunculus からは移行スクリプトが用意されています
  • 観測エージェントはデフォルト無効: config.jsonobserver.enabledfalse が初期値です。入れただけでは学習は始まりません
  • スキルの発火は確率的: 確実に実行したい処理(観測・検証・状態保存)はフックに置き、判断を伴うワークフローをスキルに置く、という役割分担を崩さないことです

まとめ

ECC のスキル群を読み解くと、「Trigger と Anti-Patterns を明示するスキル定義」「確実性が必要な処理はフック、判断はスキル」「圧縮・学習・引き継ぎをルーチン化する」という、リポジトリの規模に関係なく持ち帰れる設計原則が見えてきます。

249 スキルは全部入れるカタログではありません。ecc consult で必要な分だけ選び、instinct の棚卸しと区切りの良いタイミングでの /compact を日々のルーチンに組み込む——これが筆者の考える現実的な ECC 運用です。まずは本記事で取り上げた3つの SKILL.md を原文で読んでみることをおすすめします。スキル自作の教科書としても十分に元が取れる内容です。

参考

6
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?