compound-docs は何をしますか?
解決した問題を、YAMLフロントマターで分類されたドキュメントとして記録し、高速に検索できるようにします。
概要
everyinc/compound-docs スキルは、開発中に遭遇した問題とその解決策を、将来の参照やAIエージェントによる自動検索のために、構造化されたドキュメントとして保存するためのガイドラインを提供します。
目的
- 同じ問題を繰り返し調査する時間を削減する
- 解決策をチームやAIエージェントが共有・再利用できるようにする
- プロジェクト固有の知識ベースを構築する
使用方法
- スキルルート(
~/.claude/skills/compound-docs/またはプロジェクト内のskills/compound-docs/)に移動します。 - 新しいドキュメントファイル(例:
fix-database-timeout.md)を作成します。 - ファイルの先頭にYAMLフロントマターを記述します。
YAMLフロントマターのテンプレート
---
title: "問題の簡潔なタイトル"
tags:
- タグ1
- タグ2
category: "カテゴリ名" (例: データベース、ネットワーク、フロントエンド)
date: 2024-01-01
solved: true
---
ドキュメントの内容
YAMLフロントマターの後に、以下のセクションを含むMarkdown本文を記述します。
- 問題: 遭遇した問題の詳細な説明。
- 調査: 問題を特定するために行った手順。
- 解決策: 問題を解決するために実施した具体的な手順。
- 備考: 追加の注意点や関連情報。
例
---
title: "PostgreSQL接続タイムアウトの修正"
tags:
- postgresql
- タイムアウト
- 接続
category: "データベース"
date: 2024-06-15
solved: true
---
## 問題
アプリケーションがPostgreSQLデータベースに接続する際に、断続的にタイムアウトが発生する。
## 調査
1. 接続プールの設定を確認した。
2. データベースサーバーのログを調査した。
3. `pg_stat_activity` を確認し、多数のアイドル接続が滞留していることを発見した。
## 解決策
PostgreSQLの `idle_in_transaction_session_timeout` を30秒に設定し、アプリケーション側の接続プールサイズを10に制限した。
## 備考
この設定は本番環境にのみ適用。開発環境ではデフォルト値のままでも問題なし。