conductorscore について
ConductorScore は、ローカルのコーディングエージェントの利用指標を確認したい開発者向けのスキルです。スコアや関連する名前をアップロードし、会話テキストは送信せず、セッションをローカルの HTML タイムラインにも表示できます。
主な機能
- 01ローカルのコーディングエージェントセッションをスキャン
- 02利用指標を計算してアップロード
- 03Claude Code、Codex、Cursor に対応
- 04セッションのタイムラインをローカル HTML に描画
- 05デバッグ表示では既定でテキストを伏せる
活用シーン
- 01コーディングエージェントのセッションスコアを確認
- 02ローカルセッションのツール利用や待機時間を確認
- 03会話テキストを送信せずに利用状況を分析
MCP 対応
スキャンでは、セッションで呼び出された MCP サーバー名をプロフィール情報としてアップロードします。会話テキストはアップロードしません。
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ flatironconsulting/ conductorscore --skill conductorscoreインストール後、Claude Code で/conductorscoreを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
scripts/__init__.py_http.pyapproval_counter.pyauth_store.pybuild_skill_package.pycommit_counter.pyconfig_scanner.pyscripts/agents/__init__.pybase.pyconsent.pyregistry.pyscripts/agents/claude/__init__.pyconfig.pydiscovery.pyevents.pytaxonomy.pyscripts/agents/codex/__init__.pyconfig.pydiscovery.pyevents.pytaxonomy.pyscripts/agents/cursor/__init__.pycli_events.pyconfig.pydiscovery.pyevents.pystore.pytaxonomy.pyscripts/core/__init__.pynormalized.py詳細
ConductorScore は、ローカルのコーディングエージェントのトランスクリプトを読み取り、算出された数値(スコア)のみをアップロードします。トランスクリプトのテキストは一切アップロードしません。
実行方法
ユーザーがこのスキルを呼び出したら、「ConductorScore を計算しています」と伝え、次の行にスクリプトが報告するスキルのバージョンを表示してください(スクリプトの最初の出力行はVersion X.Y.Zです)。たとえば、見出しの下にVersion 0.5.0と表示します。オーケストレーターはこのスキル自身のディレクトリ(このSKILL.mdがあるフォルダーで、scripts/サブディレクトリにrun.pyがある場所)から実行してください。場所が固定だと想定しないでください。エージェントやインストーラーによって、スキルは~/.claude/skills/conductorscore/、~/.codex/skills/conductorscore/、~/.cursor/skills/conductorscore/、または~/.agents/skills/conductorscore/に配置される場合があります。このファイルの隣にあるscripts/run.pyを使用してください。
python3 <this-skill-dir>/scripts/run.py
Windowsでpython3が見つからない場合は、代わりにpythonまたはpy -3を使用してください。
スクリプトが↑ vX.Y.Z available — run: gh skill update …と出力した場合は、その行をユーザーに伝えて更新できるようにしてから、通常どおり続行してください。
スクリプトが処理の流れを制御します。手順を説明したり、進捗行を言い換えたりしないでください。担当するのは、(a) スクリプトの実行、(b) 以下のCONDUCTORSCORE_ASK行への対応、(c) スキャン完了時にCONDUCTORSCORE_RESULT行から最終レポートを表示すること(「最終レポート」を参照)です。
ASKの中継ルール
出力行がCONDUCTORSCORE_ASK <id> "<question>" [opt A] [opt B] …で始まる場合、スクリプトは停止してユーザーに判断を求めています。<question>を角括弧内の選択肢を使って複数選択肢として提示し(質問UIを使用し、説明文を追加しないでください)、対応するフラグを付けてrun.pyを再実行してください。
login→ スクリプトが出力したGitHubのURLとコードを表示し、ユーザーにブラウザーで認証してもらいます。認証したとユーザーが確認したら(「認証しました」)、新しいフラグを付けずにrun.pyを再実行します。ログインが再開され、処理が続行されます。キャンセルされた場合は停止してください。providers→--providers=all(すべて)、--providers=claude(Claude Code)、--providers=codex(Codex)、または--providers=cursor(Cursor)を付けて再実行します。キャンセルされた場合は停止してください。daily→ 選択肢を**「はい」と「いいえ」**のちょうど2つだけ提示してください(キャンセルやほかの選択肢は不可)。--daily=yesまたは--daily=noのみを付けて再実行してください。--providersは追加しないでください。これにより1日1回のフックを有効化または拒否します。再スキャンは行いません。
最終レポート
スキャンが完了すると、スクリプトは次の1行を出力します。
CONDUCTORSCORE_RESULT {"score":N,"url":"...","sessions":N,"verified_github":bool}。
この生の行は表示しないでください。dailyの質問が解決した後、次の形式で最終レポートをユーザーに提示してください(✓、📊、箇条書きはそのまま残してください)。
✓ ConductorScore: <score>
📊 View your full breakdown: <url>
- Scanned <sessions> sessions from your local transcripts
- <Daily auto-refresh enabled — your score updates once per day | Daily auto-refresh not enabled>
- Only your score (the numbers) was uploaded — never any transcript text
セッションのデバッグ/可視化 — /conductorscore debug
/conductorscore debug はセッションをローカルで自己完結型の HTML タイムライン(HITL/AFK/Tool/Idle)としてレンダリングし、ブラウザーで開きます。すべてユーザーのマシン上で実行され、スキャンで送信される数値さえ含め、何もアップロードしません。 ユーザーが /conductorscore debug … と入力した場合、またはセッションを可視化/表示/デバッグしたい、タイムラインを表示したい、あるいはHITL/AFK/Tool/Idle の内訳を確認したいと依頼した場合に、この方法を使います。
スラッシュインターフェースは session_viewer.py インターフェースそのものです。ユーザーが debug の後に入力した内容をそのまま Python CLI に渡してください。以下のフラグはすべて 1 対 1 で対応しているため、/conductorscore debug <ARGS> は session_viewer.py <ARGS> を実行します。
python3 <this-skill-dir>/scripts/session_viewer.py [ARGS]
(session_viewer.py は、このスキルの scripts/ 内で run.py の隣にあります。スキルのインストール先は問いません。Windows で python3 が見つからない場合は、python または py -3 を使用してください。)
サポートされている引数(Python CLI の全機能):
- (引数なし) → ユーザーが現在参加しているセッションです。SessionStart フックが現在のトランスクリプトを記録するため、引数なしで実行するとアクティブなセッションが可視化されます。以前のセッションを調べるには、まず組み込みのピッカー(
claude --resume//resume、またはcodex resume)でそのセッションに移動してから、/conductorscore debugを実行します。別の方法でその移動を実装しないでください。 <path.jsonl>→ 指定したトランスクリプトをレンダリングします。--list→ 検出可能なローカルセッション(インデックス、日付、ID、プロジェクト)を表示して終了します。--pick N→--listの N 番目のセッションをレンダリングします(新しい順)。--no-redact→ 実際のトランスクリプトテキストを表示します。デフォルトでは編集済みです。吹き出しにはワイヤー上と同等の表示(ハッシュ+トークン数、ツール名のみ。生テキストなし)が表示され、スキャンでアップロードされる内容と完全に一致するため、ページを安全に共有できます。--no-redactはローカルで安全に使え(マシンの外部には何も送信されません)、実際にデバッグする場合に最適です。--out <path>→ HTML を~/.cache/conductorscore/以外の場所に書き込みます。--no-open→ ブラウザーを起動せずにレンダリングします。
スクリプトはローカル限定のデバッグ概要(ソースのトランスクリプト、編集モード、メッセージ/ターン/連続回数/レバレッジの件数、および「何もアップロードされない」という明示的な保証)を表示した後、HTML を書き込んで開きます。スクリプトのコンソール概要と Rendered … → <path> の行をそのまま伝えてください。数値を改めて説明したり、言い換えたりしないでください。
デバイスフローによるログイン
初回実行時に https://github.com/login/device の URL とコードが表示され、その後停止します(バックグラウンドでポーリングは行いません)。URL とコードをユーザーに提示し、ブラウザーで認証してもらいます。ユーザーが認証を確認したら run.py を再実行してください。保留中のログインを再開して認証を完了し、スキャンを続行します。
プライバシーとデータの取り扱い
ConductorScore はすべてお使いのマシン上で実行されます。ローカルのコーディングエージェントのトランスクリプトを読み取ってメトリクスを計算し、次の情報のみをアップロードします。
- 数値 — 件数、トークンの合計、タイミング、派生スコア。
- 使用したことで既に表示される名前 — セッションで呼び出されたスキル、スラッシュコマンド、MCP サーバー、プラグイン、モデル ID(これらは公開プロフィールに表示されます)。名前のみで、引数や内容は含みません。
トランスクリプトやメッセージのテキスト、プロンプト、コード、ファイルの内容、ファイルパスはアップロードされません。メッセージとファイルのテキストは、メトリクスの計算前にデバイス上で切り詰められた SHA-256 ハッシュに変換されます(重複排除/類似性判定にのみ使用)。ワイヤー上の正確なペイロードは WIRE_FORMAT.md に記載され、確認できます(wire_format_sample.json は実際のサンプルです)。アップロードは、このデバイスをペアリングした後に限り、スキャンに同意したエージェントについてのみ行われます。ペアリングされていないマシンではアップロードされません。