セッションログから価値ある発見を抽出し、カテゴリ別に整理する。「棚卸し」「セッションログの整理」「発見をまとめて」などと言われたら実行。
/plugin marketplace add chatii/claude-code-finding-tanaoroshi/plugin install tanaoroshi@chatii-pluginsThis skill inherits all available tools. When active, it can use any tool Claude has access to.
セッションログから価値ある Findings(発見)を抽出し、プロジェクト知識として蓄積する。
.claude/tanaoroshi.json があれば読み込む。なければデフォルト値を使用。
{
"outputDir": ".claude/findings",
"categories": []
}
| キー | デフォルト | 説明 |
|---|---|---|
outputDir | .claude/findings | 発見の出力先 |
categories | [](空配列) | ユーザーが特に分類を明示する場合に設定。カテゴリ定義の配列 |
{
"categories": [
{ "name": "docker" },
{ "name": "testing" },
{
"name": "decisions",
"description": "技術選択の理由、方針決定の経緯"
}
]
}
| フィールド | 必須 | 説明 |
|---|---|---|
name | ✓ | カテゴリ名(英語小文字ケバブケース) |
description | - | 補足説明(名前だけでは意図が伝わりにくい場合) |
Claude Codeが name のみでカテゴライズできそうな場合は description は省略可能。
Claude Codeに推測されては困る場合に description を指定する。
.claude/tanaoroshi.json を確認。なければデフォルト設定を使用。
ls .claude/.tanaoroshi/logs/pending/session-*.jsonl 2>/dev/null
ファイルがなければ「未処理のセッションログはありません」と報告して終了。
重要: セッションログはサイズが大きい(数百KB〜数MB)ため、Read() ツールを使わない。必ず bash + jq で処理する。
# 行数とファイルサイズ
wc -l .claude/.tanaoroshi/logs/pending/session-*.jsonl
# メッセージタイプの分布
cat {file} | jq -r '.type' | sort | uniq -c
cat {file} | jq -r '
select(.type == "user" or .type == "assistant") |
.message.content // .message |
if type == "array" then
map(select(.type == "text") | .text) | join("\n")
else
.
end
' 2>/dev/null
抽出結果が大きい場合、head/tail や行番号指定で分割:
# 前半
cat {file} | jq -r '...' | head -n 500
# 後半
cat {file} | jq -r '...' | tail -n 500
以下のパターンが含まれるログは棚卸し作業のログなので、発見抽出の対象外:
Launching skill: tanaoroshi が含まれるこれらは処理済みとして削除する。
抽出したメッセージから、価値ある発見を探す(判定基準は後述)。
発見の内容と設定された categories を照合:
{outputDir}/{name}/ に保存{outputDir}/_etc/{autoCategoryName}/ に保存{outputDir}/index.md に新しい発見への参照を追加。
.claude/rules/findings.md を生成/更新:
# プロジェクト知識(Findings)
このプロジェクトの技術知見は `{outputDir}/` に蓄積されている。
関連する作業を行う際は、まず `{outputDir}/index.md` を確認し、
過去の発見や決定事項を参照すること。
特に以下の場合は必ず確認:
- 同じ技術・ライブラリを扱う時
- エラーや問題に遭遇した時
- 設計・実装の方針を決める時
.claude/.tanaoroshi/logs/{year}/{month}/ に移動{outputDir}/
├── index.md
├── {category}/ # ユーザー定義カテゴリ
└── _etc/ # 自動振り分け
└── {autoCategoryName}/
_etc/ に同じカテゴリが増えてきたら: .claude/tanaoroshi.json の categories に追加して正式なカテゴリに昇格_etc/{name}/ から {outputDir}/{name}/ に移動し、index.md を更新docker, api-design, ci-cd)NG: 「Dockerの基本的な使い方」
→ マニュアルに書いてある
OK: 「docker-compose.ymlでvolumesのパーミッションが原因でビルドが失敗する件」
→ 実際にやってみないとわからない
NG: 「ReactのuseStateの説明」
→ 公式ドキュメント参照
OK: 「React 18のSuspenseとTanStack Queryを組み合わせた際のハイドレーションエラー」
→ 両者を組み合わせた実践的知見
具体的なトピックを反映したファイル名にする。
パターン: {対象}-{状況や組み合わせ}-{何についてか}.md
# OK
docker-compose-volume-permission-fix.md
react-suspense-tanstack-query-hydration.md
vitest-mock-esm-module-workaround.md
# NG(抽象的すぎる)
docker.md
error.md
config.md
# {タイトル: 具体的な発見内容}
- **発見日**: YYYY-MM-DD
- **タグ**: 関連キーワード(カンマ区切り)
## 状況
何をしようとしていたか、どういう前提条件だったか。
## 問題 / 疑問
何が起きたか、何がわからなかったか。
## 発見 / 解決策
何がわかったか、どう解決したか。
## コード例
(該当する場合、動作確認済みのコードを記載)
カテゴリごとにセクションを作成。_etc/ のカテゴリも含める。
# Findings Index
このプロジェクトで蓄積された技術知見の一覧。
## Docker
- [docker-composeのボリュームパーミッション問題](docker/docker-compose-volume-permission-fix.md)
## Testing
- [Vitestでのモジュールモック](testing/vitest-mock-esm-module-workaround.md)
## _etc/performance
- [N+1クエリの検出と対策](_etc/performance/n-plus-one-query-detection.md)
棚卸し完了後、以下を報告する:
_etc/ カテゴリがあればその旨Create distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
This skill should be used when the user asks to "create a hookify rule", "write a hook rule", "configure hookify", "add a hookify rule", or needs guidance on hookify rule syntax and patterns.