コンテンツへスキップ

media AI活用の最前線

Claude Codeログをスキル化するOSS|反復作業を自動検知【無料公開】

Claude Codeログをスキル化するOSS|反復作業を自動検知【無料公開】

結論:Claude Codeの会話ログから「何度も頼んでいる反復作業」を自動検知し、そのままエージェントスキルの下書きに変換する無料OSS「recurring-task-extractor」が、2026年5月1日に株式会社Uravationによって公開されました。

この記事の要点

  • 「ログ見て、スキル化できそうな反復作業出して」の一言で起動し、問い合わせ返信・X投稿化・調査ブリーフ・請求書確認・議事録整理などの反復パターンを候補として提示する(MIT License・完全無料公開)
  • 初版は固定テンプレのSKILL.md出力にとどまっていたが、代表セッションをAIに読ませて実ログから手順化する「AI生成ブリーフ」方式へ改良された
  • キーワード集計だけの高速モードと、意味で束ねる高精度モードの2つを選べ、GitHubから手動でコピーするだけで導入できる

対象読者:Claude Codeを日常的に使っていて、同じような指示を何度も出していると感じる経営者・企画部門・情報システム部門の担当者

読了後にできること:自分のPCに導入し、今日中に自分の過去ログから反復作業候補の一覧を出せます。

「この指示、Claude Codeにもう何回出しただろう」——毎日AIエージェントを使っていると、ふとそう思う瞬間があります。問い合わせへの返信、Xの投稿文、調査ブリーフ、請求書の確認、議事録の整理。似たような頼み方を、似たような順番で、何度も繰り返している。

ただ、その会話ログは普通、後から検索されるだけの「履歴」で終わってしまいます。せっかく毎回同じ判断をしているのに、その判断の型は次のセッションには引き継がれません。

この記事で紹介するのは、他社ツールのレビューではありません。株式会社Uravationが自社開発したOSSの公式解説です。開発は当社代表取締役・佐藤傑が行い、2026年5月1日に自身のXアカウント(@SuguruKun_ai)で無料公開した、Claude Code向けのメタスキル「recurring-task-extractor」です。会話ログを単なる履歴としてではなく、「次のスキルを作るための材料」として扱う点が最大の特徴です。

この記事では、公開されたGitHubリポジトリgonta223/claude-skill-recurring-task-extractorのREADME・SKILL.mdの内容と、公開時のXスレッドに基づいて、機能の中身、導入手順、開発の過程で分かった限界までをまとめました。

「recurring-task-extractor」とは何か

「recurring-task-extractor」は株式会社Uravationの自社開発スキルです。Claude Codeのローカルログ(~/.claude/projects~/claude-data/projects)を読み取り、各セッションの「最初のユーザー依頼」「作業ディレクトリ」「使われたツール列」を抽出したうえで、何度も出てくる作業パターンをランキング形式で提示します。候補を番号で選ぶと、そのまま呼び出せる SKILL.md の下書きが生成される仕組みです。

動作モードは2つ用意されています。

モード仕組み速度コスト向いている用途
keywordキーワードの共起カウントで高速に束ねる約30秒無料まず候補をざっと見る
semanticログをチャンク分割し、並列サブエージェントが意味ベースで分析する約3〜5分利用したAPI従量分(目安$1〜$3)「請求書出して」と「インボイス送って」のような言い回しの違いも同一視して精度高く棚卸しする

README上では「まずはkeywordで候補を見て、実用化したいものだけAI-backed generationに回すのがおすすめ」と案内されています(参照日: 2026-07-24)。AIエージェントの基本的な仕組みについてはAIエージェント完全ガイドで整理しています。

なぜ作られたのか — 「頼んだ仕事」を「次の能力」に変える発想

公開時のXスレッドで、開発者の佐藤はこう説明しています。

「Claude Codeを毎日使っていると、会話ログって気づいたら膨大になります……でもその中には、『何度も頼んでいる仕事』『毎回似た順番で確認していること』『次回から最初に読ませたい手順』がかなり入ってるんですよね。これを履歴として眠らせるんじゃなくて、次の能力の材料にできないか?と思って作りました。」

READMEの「なぜ作ったか」にも同様の考え方が書かれています。「AIエージェントを日常的に使っていると、会話ログには『自分が何度もAIに頼んでいる仕事の型』が溜まっていきます。ただ、そのログは普通だと後から検索されるだけで、次回以降の能力にはなりません」。このスキルは、ログを次のSkillを作るための材料として扱うことで、次の流れを回すために作られました(参照日: 2026-07-24)。

  1. Claude CodeのJSONLログが溜まる
  2. 反復作業を抽出する
  3. 代表セッションを選ぶ
  4. AIが実ログを読む
  5. SKILL.mdが生成される

公開スレッドの図解では、この5ステップの下に「固定テンプレではなく、実ログから再現手順を抽出」という一文が添えられています。

もう一つ、公開スレッドで示されている図解が「使うほどSkill候補が貯まる」という循環です。①AIに仕事を頼む → ②ログが残る → ③反復を見つける → ④Skill化する → ⑤次回が速くなる → また①AIに仕事を頼む、という5段階が輪になっており、その中心には「能力化ループ」という言葉が置かれています。図解の下には「毎回説明していたことを、環境側に移していく」という一文が添えられていました。使えば使うほど、自分専用のスキル候補が溜まっていく——これが、このOSSの核となる考え方です。

初版の反省 — テンプレだけでは「それっぽい空箱」になった

正直にお伝えすると、このスキルは最初から完成形だったわけではありません。初版は固定テンプレートに沿って SKILL.md を機械的に出力するだけで、実際に使えるスキルに必要な「何を見るか・どう判断するか・どう出すか」という中身が薄いという課題がありました。

公開スレッドでは、この反省が「固定テンプレ」と「実ログから作るSkill」の対比として図解されています。

固定テンプレ(初版)実ログから作るSkill(改良後)
名前・説明文・手順っぽい項目を並べるだけ①何を見るか ②どう判断するか ③どこで止まるか ④どう出力するか、を実ログから抽出
「それっぽい空箱」になりがち大事なのは「作業の判断手順」

この反省を踏まえて追加されたのが、後述する「AI-backed generation」です。テンプレート生成は骨組みを素早く出すためのfallbackと位置づけられ、実用スキルを作る本命は、代表セッションをAIに読ませて生成ブリーフを作る方式に変更されました。SKILL.md上でも「重要: keyword モードの自動生成はテンプレートベースの fallback。実用スキルを作る本命は、代表セッションを集めてAIに書かせる AI-backed generation」と明記されています(参照日: 2026-07-24)。

導入手順

導入方法は、リポジトリをそのままcloneして~/.claude/skills/配下にコピーする方式です。READMEに明記された手順は次のとおりです。

git clone https://github.com/gonta223/claude-skill-recurring-task-extractor.git /tmp/claude-skill-recurring-task-extractor
mkdir -p ~/.claude/skills
cp -R /tmp/claude-skill-recurring-task-extractor ~/.claude/skills/recurring-task-extractor

開発中のリポジトリをそのまま参照したい場合は、シンボリックリンクでも使えます。

git clone https://github.com/gonta223/claude-skill-recurring-task-extractor.git
ln -s "$PWD/claude-skill-recurring-task-extractor" ~/.claude/skills/recurring-task-extractor

スキルとしての起動名はrecurring-task-extractorです。必要環境はPython 3.10以上、そしてClaude Codeのログ(~/.claude/projects~/claude-data/projects)。keywordモードでは追加のPythonパッケージは不要です(参照日: 2026-07-24)。

使い方 — ログスキャンからSKILL.md生成まで

Claude Codeのセッション内で「このスキルを使って反復作業候補を出して」、あるいは公開スレッドで示されている「ログ見て、スキル化できそうな反復作業出して」と話しかけるだけで起動します。中身で動いているコマンドは次の流れです。

1. ログをスキャンする

python3 ~/.claude/skills/recurring-task-extractor/scripts/scan_logs.py \
  --days 30 \
  --out /tmp/recurring-task-extractor/sessions.jsonl

直近30日分のセッションから、最初のユーザー依頼と使われたツール列を抽出します。--days Nで期間指定、--allで全期間を対象にできます。

2. 反復作業をクラスタリングする(keywordモード)

python3 ~/.claude/skills/recurring-task-extractor/scripts/cluster_tasks.py \
  --in /tmp/recurring-task-extractor/sessions.jsonl \
  --min-count 5 \
  --top-n 25 \
  --out /tmp/recurring-task-extractor/clusters.json

3. 候補一覧を見る

python3 ~/.claude/skills/recurring-task-extractor/scripts/draft_skills.py \
  --in /tmp/recurring-task-extractor/clusters.json \
  --mode list

4. 採用する候補をAI-backed generationに回す

「1番をスキル化して」のように候補を指定すると、代表セッション・既存スキルとの重複・主要ツール・作業場所をまとめた生成ブリーフが作られます。

python3 ~/.claude/skills/recurring-task-extractor/scripts/prepare_ai_skill.py \
  --clusters /tmp/recurring-task-extractor/clusters.json \
  --sessions /tmp/recurring-task-extractor/sessions.jsonl \
  --pick 1 \
  --out-dir /tmp/recurring-task-extractor/ai-briefs/

出力されるのはbrief.json(代表セッション・既存スキルとの重複・主要ツール・作業場所をまとめた構造化データ)とPROMPT.md(AIに渡すSkill生成指示)の2つです。Claude/CodexはこのPROMPT.mdを読み、必要なら代表セッションのJSONLを数件確認したうえで、最終的なSKILL.mdを書きます。

5. 確認してからインストールする

生成されたスキルは、必ず中身を確認してから導入することがREADMEで念押しされています。テンプレート生成(fallback)を使う場合は、レビュー後に--installを付けて実行します。

python3 ~/.claude/skills/recurring-task-extractor/scripts/draft_skills.py \
  --in /tmp/recurring-task-extractor/clusters.json \
  --mode generate \
  --pick 1,3 \
  --out-dir /tmp/recurring-task-extractor/generated/ \
  --install

SKILL.md上の「重要ルール」にも「自動でSKILL.mdをインストールしない(低品質スキル乱立防止)」「ユーザー承認後のみ~/.claude/skills/へ実ファイル化」と明記されています(参照日: 2026-07-24)。

AI活用、何から始めればいい?

100社以上の研修実績をもとに、30分の無料相談で貴社の課題を整理します。

無料相談はこちら

semanticモードの中身 — 並列サブエージェントによる意味分析

keywordモードは高速ですが「言い回しの揺れに弱い」という弱点があります。この弱点を補うのがsemanticモードです。SKILL.mdには、その内部処理が具体的に記載されています。

Phase 2:チャンク分割

python3 ~/.claude/skills/recurring-task-extractor/scripts/chunk_sessions.py \
  --in /tmp/recurring-task-extractor/sessions.jsonl \
  --chunk-size 250 \
  --max-chunks 15 \
  --out-dir /tmp/recurring-task-extractor/chunks

全セッションを250件ずつ、最大15チャンクに分割します。

Phase 3:並列サブエージェント分析

ここが最も特徴的な部分です。SKILL.mdは「Claude(あなた)は全チャンクを並列でAgent toolにディスパッチします」と明記しており、「重要: 全チャンクを1メッセージ内で全て同時にAgent tool callする(並列実行)。順次実行すると遅い」と念押ししています。各サブエージェント(subagent_type: general-purpose)は、担当チャンク内のセッションを読み、「同じ目的の作業を繰り返し依頼しているパターン」を意味ベースで抽出し、次の形式のJSONを書き出します。

{
  "patterns": [
    {
      "name": "問い合わせ返信ドラフト",
      "description": "問い合わせフォームから来たメールに対して返信文を考える作業",
      "trigger_phrases": ["これ返信考えて", "問い合わせどう答える", "コレ返信"],
      "sample_session_ids": ["xxx", "yyy", "zzz"],
      "approximate_count": 8,
      "suggested_skill_name": "inquiry-reply-drafter",
      "suggested_tools": ["Bash", "Read", "WebSearch"]
    }
  ]
}

単発・1回限りの作業はこの時点でスキップされ、2件以上の類似セッションがあるパターンだけが採用されます。

Phase 4:統合

全チャンクの分析結果(findings_*.json)をClaudeが読み、意味が近い名前のパターン(例:「請求書発行」と「請求書作成」)を同一パターンとして束ね、出現回数を合算し、代表セッションIDを重複除去して結合します。最終的にdraft_skills.py互換のclusters.jsonとして書き出され、以降はkeywordモードと同じ--mode listで候補一覧を確認できます。

実行結果の例 — 「718回」が意味すること

READMEには、draft_skills.py --mode listを実行したときの出力例が掲載されています。

# 定期作業候補(25件 / トリガー出現回数の多い順)

## 1. 【記事】 718回 / 生成名: article-drafting-workflow
## 2. 【メール】 275回 / 生成名: inquiry-reply-drafter
## 3. 【投稿】 333回 / 生成名: x-post-drafter

この数字は、業務時間そのものを測定したものではなく、「同じトリガーが検出された回数」に基づく、あくまで作業の濃さの目安です。それでも、記事作成の下書き作業が718回、問い合わせ返信の下書きが275回、X投稿の下書き化が333回という水準で繰り返し検出される――これだけの頻度で似た指示を出しているという事実は、多くのClaude Codeユーザーにとって示唆的です。デフォルト設定では--min-count 5(5回以上繰り返されたパターンのみ)、--top-n 25(上位25件まで)で候補が絞り込まれます。

ファイル構成 — 中身を覗いてみる

リポジトリはシンプルな構成です。MIT Licenseで公開されているため、中身を読んで自分用に改造することもできます。

ファイル役割
SKILL.md起動条件・2モードの実行手順を定義するスキル本体
agents/openai.yamlCodex向けのインターフェース定義(表示名・起動プロンプト)
scripts/scan_logs.pyPhase1:Claude Codeのログをスキャンし、セッション要約を出力
scripts/cluster_tasks.pykeywordモード:キーワード共起でクラスタリング
scripts/chunk_sessions.pysemanticモード:セッションをチャンク分割
scripts/draft_skills.py候補一覧表示・テンプレート生成・インストール
scripts/prepare_ai_skill.pyAI-backed generation用の生成ブリーフ(brief.jsonPROMPT.md)を作成

トラブルシューティング・既知の制約

READMEとSKILL.mdには、実際に使う際に役立つトラブルシューティングも記載されています。

  • セッション数が少ない(100件未満)場合:無理にsemanticモードを使わなくても、keywordモードで十分な精度が出ます。
  • semanticモードでサブエージェントがtimeoutする場合--chunk-sizeを小さくし、--max-chunksを増やして1チャンクあたりの負荷を下げます。
  • ストップワードが効いていない場合cluster_tasks.py内のSTOP_*セットを編集してノイズになりやすい語を追加します。

README末尾の「配布性メモ」には、このスキル自体の性質についてこう書かれています。「このスキル本体はポータブル。公開・共有する場合は、ログ由来サンプルに含まれる固有名詞、ローカルパス、連絡先、URL、トークンを必ずマスクすること」。スキル自体を人に配る場面でも、同じ注意が必要ということです。

【要注意】使う前に知っておきたい注意点

README・SKILL.mdには、このスキルを使う上で見落としがちな注意点が明記されています。導入前に必ず確認してください。

注意1:クラスタリングは重複し得る

❌ keywordモードの出力候補を、そのまま最終的なスキル一覧として鵜呑みにする

⭕ 似た名前・似た説明の候補が複数出た場合は、同一パターンとして統合できないか確認する

なぜ重要か:keywordモードはSKILL.md上で「粗(言い回しの揺れに弱い)」と明記されている高速集計です。semanticモードでも、複数のサブエージェントが分析した結果をClaude自身が意味で束ねる工程が入るため、公開スレッドの図解でも「公開前チェック」の1項目に「クラスタ精度」が挙げられています。開発者の佐藤自身も、生成されたスキルは人間のレビューが前提であると説明しています。

注意2:生成スキルは自動インストールされない

❌ 生成されたSKILL.mdを確認せずにそのまま導入する

⭕ 起動条件・実行手順・出力フォーマットまで目を通してから--installを付ける

なぜ重要か:SKILL.mdの「重要ルール」に「自動でSKILL.mdをインストールしない(低品質スキル乱立防止)」「ユーザー承認後のみ~/.claude/skills/へ実ファイル化」と明記されています。公開スレッドの図解でも「最後は人がレビューして育てる」として、クラスタ精度・人間レビュー・固有名詞やパス、個人情報の除去の3点が公開前チェックとして挙げられています。

注意3:ログにはプライバシー情報が含まれる前提でマスキングする

❌ 生成されたスキルやログサンプルを、マスキング確認をせずに社外へ共有する

⭕ 公開・共有する前に、個人名・会社名・ローカルパス・メールアドレス・電話番号・SNSハンドル・APIキーやトークン・クライアント名や非公開の業務内容が残っていないか確認する

なぜ重要か:READMEには「生成時には、メールアドレス、電話番号、URL、Xハンドル、トークン、ホームディレクトリなどをマスクします」とある一方、「追加でマスクしたい固有名詞がある場合は、環境変数RECURRING_TASK_EXTRACTOR_PRIVATE_TERMSで指定できます」とも明記されています。自動マスキングは万能ではない前提で、最終確認は人間が行う設計です。

注意4:semanticモードには利用したAPIの従量費用がかかる

❌ semanticモードをコスト感なく実行してしまう

⭕ SKILL.mdの「重要ルール」どおり、実行前に「利用環境次第で費用がかかります、いいですか?」という確認を挟む

なぜ重要か:semanticモードは並列サブエージェントによる意味分析を行うため、目安として$1〜$3程度のAPI利用料が発生します。無料のkeywordモードでまず候補を絞り込んでから、必要な候補だけsemanticモードやAI-backed generationに回す使い方が、README上でも推奨されています。

研修・コンサル現場から見た位置づけ

Uravationでは法人向けのAI研修・導入支援を100社以上手掛けてきましたが、研修の場でよく出るのが「Claude Codeに毎回同じような指示を出しているのに、次のセッションではまたゼロから説明し直している」という悩みです。特に情報システム部門やバックオフィス部門では、担当者ごとに「AIへの頼み方」が微妙に異なり、それがそのまま出力品質のばらつきにつながっているケースも見られます。Claude Agent Skillsの仕組み自体についてはClaude Agent Skillsの作り方・仕様で解説していますが、「どんなスキルを作ればいいか」を決める最初の一歩でつまずくケースが少なくありません。

「recurring-task-extractor」は、その最初の一歩を、勘や思いつきではなく実ログの集計から始められるようにするスキルです。「誰か1人が毎回同じ判断をしている」状態は、その人が休んだ・辞めた瞬間に業務が止まる属人化のリスクそのものでもあります。ログから反復パターンを取り出し、SKILL.mdという共有可能なファイルに落とし込むことは、個人の頭の中にある判断基準をチームの資産に変える作業とも言えます。Claude Codeを業務全体に広げていく考え方についてはAI社員の作り方|Claude Code実装5ステップでも解説しています。あわせて参考にしてください。

よくある質問

Q. Claude Code以外(Codex等)でも使えますか?

A. リポジトリにはagents/openai.yamlが同梱されており、Codex向けのインターフェース定義(表示名・概要・起動プロンプト)が用意されています。ただし本文の実行手順(scripts/配下のPythonスクリプト)はClaude Codeのログディレクトリを前提に書かれているため、まずはClaude Code環境での利用が基本です。

Q. 費用はかかりますか?

A. スキル自体はMIT LicenseでGitHub上に完全無料公開されています。keywordモードの実行に追加費用はかかりません。一方でsemanticモードやAI-backed generationは、Claude/Codex側のAPI利用料(目安$1〜$3)が別途発生します。

Q. 会社の機密情報や個人情報が漏れませんか?

A. READMEには、生成時にメールアドレス・電話番号・URL・Xハンドル・トークン・ホームディレクトリなどを自動マスクする仕組みが明記されています。加えて、環境変数で追加の固有名詞をマスク対象に指定できます。ただし自動マスキングは万能ではないため、公開・共有前には個人名・会社名・クライアント名・非公開の業務内容が残っていないか、必ず人の目で確認する運用が前提です。

Q. どんな作業がスキル化に向いていますか?

A. README・公開スレッドで例示されているのは、問い合わせ返信、X投稿作成、調査ブリーフ、請求書確認、議事録整理、記事作成など、「毎回似た流れで頼んでいる作業」です。逆に、1回限りの調査や、そのつどまったく違う判断が必要な作業は繰り返し検出の対象になりにくく、スキル化のメリットも小さくなります。cluster_tasks.pyの既定値--min-count 5が示すとおり、最低でも5回以上繰り返された作業でなければ候補にすら挙がりません。

Q. 既存のスキルと重複したらどうなりますか?

A. SKILL.mdの「重要ルール」には「既存スキルと重複してないか必ず確認(ls ~/.claude/skills/)」と明記されています。AI-backed generationの生成ブリーフ(brief.json)にも既存スキルとの重複情報が含まれており、採用するかどうかを判断する材料として使う設計です。

まとめ:今日から始める3つのアクション

  1. 今日やることgit cloneでリポジトリを取得し、keywordモードで自分の過去ログから候補一覧を出してみる
  2. 今週中:出てきた候補のうち、実際に業務で繰り返している作業を1つ選び、AI-backed generationでSKILL.mdの下書きを作ってレビューする
  3. 今月中:チームで使う際のルール(公開・共有前のマスキング確認、生成スキルのレビュー体制)を決めた上で、月次の棚卸しに組み込む

参考・出典

あわせて読みたい


著者:佐藤傑(さとう・すぐる)
株式会社Uravation代表取締役。「recurring-task-extractor」開発者。X(@SuguruKun_ai)フォロワー約10万人。100社以上の企業向けAI研修・導入支援。著書『AIエージェント仕事術』(SBクリエイティブ)。

ご質問・ご相談は お問い合わせフォーム からお気軽にどうぞ。

無料・初回相談

Claude Code / Codex を“自社の業務”で使いこなすなら

週1回60分のマンツーマンで、御社の実務をその場で自動化。設計から定着まで、業務に合わせて伴走します。

  • 30分・オンライン
  • 売り込みでなく業務診断
  • 完全マンツーマン

お問い合わせフォームから24時間以内にUravation担当者がご返信します。

佐藤傑
この記事を書いた人 佐藤傑

株式会社Uravation 代表取締役CEO/生成AIエバンジェリスト。法人向けAI研修・コンサルティングを手がけ、日経・SBクリエイティブ・GMO等のメディアで生成AIについて執筆。

この記事をシェア

Claude Codeを本格的に使いこなしたい方へ

業務に合わせたマンツーマン指導で、Claude Codeを実務に組み込める状態まで伴走します。
現役エンジニアが貴方の業務に合わせてカリキュラムをカスタマイズ。

✓ 1対1のマンツーマン ✓ 業務に合わせた設計 ✓ 実務ベースの指導
Claude Code 個別指導の詳細を見る まずは無料相談

Contact お問い合わせ

生成AI研修や開発のご依頼、お見積りなど、
お気軽にご相談ください。

Claude Code 個別指導(1対1・12セッション)をご希望の方はこちらから別途お申し込みください

Claude Code 個別指導 無料相談