ankitg12/agent-skills

エージェントのセッションログから繰り返されるユーザーの修正やワークフローの摩擦を抽出し、機械的に検出可能なパターンをテスト済みルールに変換します。

agent-skills とは?

このスキルは、AIアシスタント(Claude Code、Cursor、Codexなど)とのセッションログを分析し、ユーザーが繰り返し行う修正やワークフローの摩擦を自動的に検出して、機械的にチェック可能なルールに変換します。 主な用途は「mine rules」「what rules should we create」「turn this friction into a rule」などのコマンドや、繰り返し発生する修正指示、あるいは「/ffs」といった摩擦を示すキーワードです。 ワークフローは5段階で構成されています。 1. **抽出** — セッションログからユーザーの修正と前後のアシスタントの行動をペアで抽出。 2. **分類** — その失敗が機械的に検出可能かどうかを判断。 3. **生成と検証** — 既存のルール生成機構に証拠を渡してルール候補を生成。 4. **強制** — 承認されたルールをプロジェクトまたはグローバルルールとして保存。 5. **検証** — 陽性・陰性テストを実行し、1週間後に再度同じ修正が発生していないか確認。 ルールを作成する条件は「同じ動作が少なくとも2回修正された」「違反動作が機械的に認識可能」「安全な代替案が推測なしで記述できる」「既存のルールでカバーされていない」のすべてを満たすことです。自動生成されたセッション要約ではなく、生のトランスクリプトメッセージとツール呼び出しを使用します。

対応~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/ankitg12/agent-skills/tree/HEAD/ffs

Installed? Explore more 生産性&コラボレーション skills: steipete/gemini, steipete/gh-issues, steipete/skill-creator · View all 6 →

お気に入りのAIに質問する

このエージェントスキルを事前に読み込んだ状態で新しいチャットを開きます。

ドキュメント

FFS — 摩擦 → 修正 → 防御

セッションの摩擦を活用してハーネスを改善します。ユーザーが修正を繰り返さなければならない2回目は、説明では不十分で機械的な防御策が必要である証拠です。

アーキテクチャ

別のルールジェネレーターを構築しないでください。既存のレイヤーを使用します:

  1. 抽出 — エージェントのセッションログに対する決定論的マイナーが、繰り返されるユーザーの修正を見つけ、それぞれをその前のアシスタントのアクションと修正後のアクションとペアにします。(AgentsView対応のセットアップでは、avmine.py rules のような抽出ツールがこれを実行します。JSONLトランスクリプトストアであれば同じ方法でマイニングできます。)
  2. 分類 — 失敗が機械的に検出可能かどうかを判断します。
  3. 生成と検証 — 1つの証拠バンドルをハーネスの既存のルール生成パス(例:/omfg スタイルのコマンド)に渡します。再実装はしません。
  4. 強制 — 承認された出力をプロジェクトルール(.omp/rules/<name>.md)またはグローバルルール(~/.omp/agent/rules/<name>.md)として保存します。
  5. 検証 — 陽性例と陰性例をルールエンジンに対してテストします。その後、トランスクリプトを再マイニングして修正の再発が止まったことを確認します。

摩擦がルールになる条件

以下のすべてが真の場合にのみルールを作成します:

  • ユーザーが同じ動作を少なくとも2回修正した、または1回で明示的な安全上の結果があった。
  • 問題のある動作がアシスタントのテキストまたはツール引数で機械的に認識可能である。
  • 文脈を推測せずに安全な代替案を述べることができる。
  • 既存のルールがそのパターンをカバーしていない。

それ以外の場合は、他の適切な場所に振り分けます:

失敗の種類格納先
検出可能なコマンド、パス、フラグ、または出力フレーズルール
判断が必要なマルチステップワークフロースキル
安定した好みや原則AGENTS.md
ツールの事実や手順ノート / プロジェクト知識
一度限りの過去の修正ジャーナル / ソース記録

マイニング手順

最初に決定論的抽出ツールを実行します。それが利用できない場合は、生のトランスクリプトから修正フレーズを検索し、周囲のアシスタントのやり取りを調査します。修正だけで問題のある動作を推測しないでください。

各候補について以下を保持します:

  • 正確なユーザーの修正とタイムスタンプ
  • プロジェクトと安定したセッションID
  • その直前のアシスタントのコマンド/テキスト
  • その直後の修正されたコマンド/テキスト
  • 異なる論理セッションにわたる再発回数
  • 推奨スコープ:プロジェクトまたはグローバル
  • 陽性テスト(トリガーされる必要あり)
  • 陰性テスト(トリガーされてはならない)

自動生成されたセッション要約を証拠として使用しないでください。それらは言い換えや重複を含みます。生のトランスクリプトメッセージとツール呼び出しを使用してください。

ルール生成の引き継ぎ

不満と具体的なbefore/afterペアを既存のルールジェネレーターに渡します。既存のジェネレーターはすでに以下を実行します:

  • ルール候補を生成する
  • その条件をアシスタントの履歴に対して検証する
  • プロジェクトスコープとグローバルスコープを提供する
  • 保存前に修正を許可する

抽出ツールやこのスキルにそのメカニズムを複製しないでください。

検証

受け入れられたすべてのルールについて、ルールエンジン(OMPのTTSRを使用する場合など)で陰性ケースと陽性ケースの両方を実行します:

omp ttsr test --rule <absolute-rule-path> --source tool --tool <tool> '<bad input>' -v
omp ttsr test --rule <absolute-rule-path> --source tool --tool <tool> '<good input>' -v

最初のコマンドはトリガーされなければならず、2番目はトリガーされてはなりません。安全なパスをブロックするルールは、ルールがないことより悪いです。

1週間後、同じ修正を再度マイニングします。再発ゼロはルールが機能した証拠です。再発がある場合は、条件が実際の形式を見逃していたことを意味します。証拠に基づいて修正し、盲目的に広げないでください。

参考例:「puttys pls」

トランスクリプトは、2日連続で同じ修正を示していました。修正前は、セッションはリモートテストベッドホストに対して不透明なワンライナーSSH/execコマンドを実行し、表示可能な端末がありませんでした。修正後は、名前付きの putty-* ラッパースクリプトを通じて表示可能な端末セッションを起動しました。

結果として得られたプロジェクトルール(<project>/.omp/rules/visible-putty-operations.md)は、不透明なコマンドパスをキャッチし、表示可能なラッパーを許可します。このルールは、過去の修正イベント(推測ではなく3回の証拠ラウンド)に基づいています。

Individual skills in this repo

This repo contains 2 individual skills — each has its own dedicated page.

関連スキル