コードベース全体のレビュー・監査。perf/sec/test/arch/cq/docs の6観点を並列委譲し、優先度付き issue ファイルと観点サマリをメモリディレクトリに生成する。コードベース全体の監査・定期レビュー・リリース前品質確認の依頼時、/codebase-review 実行時に使用。境界: PR 単位は pr-review、自ブランチの提出前確認は self-review。
session-analytics
セッションログ(~/.claude/projects の jsonl)を横断分析する。集計モード(既定)は skill 発火・tool 頻度・軌道修正シグナル・compaction・未発火 skill を定量集計し、mining モードはユーザー発話を全件マイニングして訂正の規則化と繰り返し指示の既定化の提案を作る。手動起動専用。境界: 単一セッションの振り返りは update-inst、実データを見ない静的監査は instructions-audit。
インストール方法を見る含まれるファイル(5)
- SKILL.md7.4 KB
- references/directive-mining.md9.7 KB
- scripts/analyze_sessions.py14.6 KB
- scripts/count_directives.py4.6 KB
- scripts/extract_user_turns.py7.8 KB
SKILL.md(原文)
インストールする前に、エージェントに与えられる指示の中身を確認できます。
Session Analytics
モード
| 引数 | モード | 手順 |
|---|---|---|
| なし | 集計: カウンタを出して示唆を抽出する | 本ファイル |
mining | 発話マイニング: ユーザー発話を全件読み、指示ファイルの修正提案を作る | references/directive-mining.md をReadして従う |
両方回すと、定量シグナル(中断・権限拒否の件数)と発話の内容を突き合わせられる。以下は集計モードの手順。
~/.claude/projects/**/*.jsonl(Claude Codeの全セッション生ログ)を横断集計し、ハーネス(AGENTS.md/context/skills)の改善点を見つけるためのデータを提供する。
既存設定との関係
- update-inst: 本skillは統計と示唆を出すだけで、指示ファイルへの反映は行わない(適用は
/update-inst・/instructions-auditに委ねる) - findmem: メモリディレクトリ(
.local/memory/,.local/issues/)のテキスト検索。本skillはそれとは別データソース(生セッションログ)を扱う - メモリディレクトリ: 分析結果を保存する場合は@context/memory-file-formats.mdの既存構造(
${MEMORY_DIR}/memory/YYMMDD_<context>/)に従う
ワークフロー
Step 1: 実行
uv run ~/.claude/skills/session-analytics/scripts/analyze_sessions.py [オプション]
主なオプション(すべて任意):
| オプション | 用途 |
|---|---|
--since YYYY-MM-DD | このmtime以降に更新されたセッションファイルのみ対象 |
--project SUBSTR | プロジェクトディレクトリ名の部分一致フィルタ(大小無視) |
--top-n N | 各ランキングの表示件数(既定15) |
--json-out PATH | 集計結果全体をJSONで書き出す(追加分析・時系列比較用) |
--skills-dir DIR(複数指定可) | 未発火skill棚卸しの比較対象。既定は~/.claude/skills。project-levelも見たい場合は--skills-dir ./.claude/skillsを追加指定 |
依存パッケージはゼロ(stdlibのみ)。全セッション(600MB級)でも数秒で完走する。
完了基準: コマンドが正常終了し、標準出力にレポートセクション(プロジェクト別/Skill発火/Tool使用頻度/Agent tool/軌道修正シグナル/AskUserQuestion/Compaction/system event/permission mode/Skill棚卸し)が全て表示されている。
Step 2: 数値の解釈(このskillの本体価値)
生の集計値をそのまま報告せず、以下の観点で異常値・示唆を抽出する:
- Skill発火の偏り: 上位数件に極端に集中していないか。長期間(数ヶ月)未発火のskillは、
git log --diff-filter=A --format=%ad -- skills/<name>/SKILL.mdで追加日を確認し、「観測期間が短いだけ」か「本当に死蔵している」かを切り分ける - AskUserQuestion中断率・Other率:
中断件数のうち直前tool=AskUserQuestionとOther回答率が高い(目安: 合算で全体の3割超)場合、選択肢設計が実際の意図をカバーしきれていないシグナル。個別の質問文をサンプリングして具体的な改善提案に落とす - 権限拒否(has been denied): 対象コマンドのパターンを
grepでサンプル抽出し、「事前確認してから提案する」フローが徹底されているか、「実行してdenyで弾かれてから気づく」フローが常態化していないかを確認する - tool別エラー率: 特定tool(EnterWorktree/ExitWorktree等)のエラー率が突出している場合、該当guideのtroubleshooting不足を疑う
- Compaction: 平均preTokensが極端に大きい場合、セッション区切り(/handoff)がより早いタイミングで発動すべきというシグナル
- 未発火skill棚卸し: 「観測期間内に一度も呼ばれていない」skillは、description(発火条件)の弱さ・実需の欠如・他の指示ファイル(workflow-rules.md等)が同機能を直書きで代替してしまっている自己矛盾、のいずれかを疑い個別に確認する
完了基準: 上記6観点それぞれについて「該当あり(具体的数値付き)」か「該当なし」かが判定済みである。
Step 3: 報告
過程(集計コマンドと生データ)と結論(示唆)を分けて提示する。示唆は「観測された事実→考えられる原因→改善候補」の順で書き、改善候補の適用自体はユーザー確認を経てから行う(本skill単体でAGENTS.md/context/skillsを書き換えない)。
完了基準: 各示唆に、それを裏付ける具体的な集計数値(件数・割合)が紐づいている。
使用例
# 直近2週間・全プロジェクトのサマリ
uv run ~/.claude/skills/session-analytics/scripts/analyze_sessions.py --since YYYY-MM-DD
# 特定プロジェクトに絞って詳細JSONも保存
uv run ~/.claude/skills/session-analytics/scripts/analyze_sessions.py \
--project <PJ名> --json-out <scratchpad>/analysis.json
出力例(抜粋):
--- ユーザー軌道修正シグナル ---
中断([Request interrupted by user]): 243件
直前のtool=Bash: 106件
直前のtool=AskUserQuestion: 38件
権限拒否 (has been denied): 35件
tool=Bash: 35件
→ 「AskUserQuestion呼び出し199件中38件(19%)が回答されず中断」「権限拒否35件は全てBashのgit破壊的操作」のように、母数となる他の集計値(Tool使用頻度のAskUserQuestion呼び出し数など)と突き合わせて解釈する。
Gotchas
- ログの
type別意味:assistantのtool_use内nameが実際のtool呼び出し(Skillはinput.skillにskill名)。中断は"[Request interrupted by user]"または"...for tool use]"というテキストで表れる。権限拒否はtool_result.is_error=trueかつcontentにhas been denied - サブエージェント(Agent tool経由)のログは
<project>/<session-id>/subagents/*.jsonlに別ファイルとして存在する。メインセッションだけ見たい集計と、委譲先も含めた実働量を見る集計は目的に応じて使い分ける(レポートは両方出力する) --projectはディレクトリ名(-Users-xxx-workspace-yyy形式、パス区切りが-に変換されたもの)に対する部分一致。worktree配下のセッションは別ディレクトリとしてカウントされる点に注意- JSON出力は生カウンタのダンプであり文章化されていない。示唆抽出はStep 2を必ず自分で行うこと(スクリプトは決定論的集計のみを担当し、解釈はモデルの役割)
レビュー
まだレビューはありません。使ってみた感想をお寄せください。
同じリポジトリのスキル
概要と使いどころ
変更をコミットする。/commit 実行時、「コミットして」「pushして」等の依頼時に使用。--push 引数または「pushして」の依頼で push も行う。
PR を Draft で作成する。PR テンプレートを全セクション埋め、対象 repo の既存 PR の分量に合わせて書きすぎを削る。PR 作成の依頼時、実装が一段落して PR 化する時、/create-draft-pr 実行時に使用(gh pr create を直接実行しない)。引数でベースブランチを指定できる。境界: 個別レビューコメントへの対応は pr-comment。
スキルを新規作成する。「スキルを作って」「この手順をスキル化して」等の依頼時、/create-skill 実行時に使用。AGENTS.md・context・既存スキルと整合させ、重複・競合を避ける。境界: 既存スキル・指示ファイルの修正は update-inst、指示ファイル全体の監査は instructions-audit。
抽象的な要件・事業側の要求を深掘りし、既存実装との整合を確認して実装マスタとシステム要件書を作成する。「こういう機能を作りたい」「この要求を満たす機能を設計して」等の抽象要件の提示時、既存機能の拡張や Phase 分割の要件定義開始時、/design-feature 実行時に使用。境界: 要件確定後の実装計画書・PR 分割と実装進行は plan-feature-prs。
画面の設計判断(ナビゲーション・重ね方・通知と空状態と読み込み・外枠とトークンと状態表現)の型を決定表で選び、アプリ内の全画面で揃える。画面・ページ・レイアウト・ナビゲーション・ダイアログ・コンポーネントを新しく作る・作り直す時、モックやダッシュボードを作る時、サイドバー・タブ・モーダル・シート・toast・バナー・空状態のどれを使うか決める時に使用。PJ に components.json があれば shadcn の部品とトークンへの対応も扱う。主要なデザインシステム(Material・HIG・Carbon・Primer・Atlassian・Fluent・GOV.UK・NN/g・WAI-ARIA APG・WCAG)の一致点を規則にし、食い違いの採否を定めてある。境界: 画面の文言は writing-ui-text、画面に何を出すかと提示前の完了基準は context/ui-artifact-standards.md、コードの実装原則は writing-code、shadcn 部品の API と組み立ては shadcn。