課題
Claude Codeを使って開発している中で以下の3点の課題を感じていました。
- 知見が再利用できない(例:以前同じエラーに当たった時の内容を活用した指示が出せない)
- プロジェクトごとに開発手順が統一されておらず品質が保証できない(例:あの小規模開発ではこういうテストのプロンプトだったけど、今回はまた別のプロンプトでテスト一覧を作成した)
- ツールに依存している(Claude Codeが使えなくなった時、自分の手元には何も残らないのでは...?)
解決策:ローカル・マークダウン・AI可読な知見管理
上記の課題を解決するために、知見の保存方法を考えました。
設計方針
- ローカル保存:通信不要、ツール非依存
- マークダウン:AIが読みやすい、かつ人間も編集可能
- タグ検索:必要な知見だけを読み込むことでトークンを節約できる
- 汎用性重視:プロジェクト固有ではなく、再利用可能な知見を収集する
使用ツール
Obsidian:マークダウンベースの知識管理アプリ
Obsidian(オブシディアン)とはMarkdown形式による個人ナレッジベース(英語版)とノート作成(英語版)のためのソフトウェアアプリケーションである。内部リンクを張ることができ、ノート同士の繋がりをグラフとして可視化することができる。(wikipediaより)
以下の実装はClaude Code専用となります。ただしClaude Codeが扱う知見の保存先はローカルであり、この知見は他のLLMツールやエディタでも再利用可能という意味で「ツール非依存」と言っています。
実装
Obsidianフォルダ構成
myIntelligence/
├── 10_KNOWLEDGE/ # 技術知見
│ ├── INDEX.md # 知見一覧
│ ├── TAGS.md # タグ標準
│ └── K-YYYYMMDD-.md # 個別知見
├── 20_ERROR_PATTERNS/ # エラーパターン
│ ├── INDEX.md
│ ├── TAGS.md
│ └── E-YYYYMMDD-.md
└── 90_TEMPLATES/
├── tpl_knowledge.md
├── tpl_error.md
└── tpl_dev_flow.md myIntelligence/
├── 10_KNOWLEDGE/ # 技術知見
│ ├── INDEX.md # 知見一覧
│ ├── TAGS.md # タグ標準
│ └── K-YYYYMMDD-.md # 個別知見
├── 20_ERROR_PATTERNS/ # エラーパターン
│ ├── INDEX.md
│ ├── TAGS.md
│ └── E-YYYYMMDD-.md
└── 90_TEMPLATES/
├── tpl_knowledge.md
├── tpl_error.md
└── tpl_dev_flow.mdClaude Code設定
/.claude/CLAUDE.md
ここに最低限のルールを書いていきます。
# Claude Code ルール
## 目的
- 開発全般(要件定義〜実装・振り返り)の相棒
- 技術的な判断・知見のみObsidianに保存
## Obsidian Vault
- パス: /Users/user/myIntelligence
- 既存ノート・フォルダは参照専用(編集禁止)
## コマンド
| コマンド | 説明 |
|---------|------|
| `/sr <タグ>` | 知見・エラー検索 |
| `/mk` | 知見保存 |
| `/me` | エラー保存 |
| `/req` | 要件ヒアリング |
| `/dev` | 開発フロー表示 |
## 基本ルール
- 設計・実装前に `/sr` で関連知見を検索
- 知見保存は事前確認必須(勝手に保存しない)
- 情報不足時は質問
- 秘密情報は記録禁止# Claude Code ルール
## 目的
- 開発全般(要件定義〜実装・振り返り)の相棒
- 技術的な判断・知見のみObsidianに保存
## Obsidian Vault
- パス: /Users/user/myIntelligence
- 既存ノート・フォルダは参照専用(編集禁止)
## コマンド
| コマンド | 説明 |
|---------|------|
| `/sr <タグ>` | 知見・エラー検索 |
| `/mk` | 知見保存 |
| `/me` | エラー保存 |
| `/req` | 要件ヒアリング |
| `/dev` | 開発フロー表示 |
## 基本ルール
- 設計・実装前に `/sr` で関連知見を検索
- 知見保存は事前確認必須(勝手に保存しない)
- 情報不足時は質問
- 秘密情報は記録禁止.claude/commands/コマンド名.md
commandsフォルダ内にマークダウンファイルを作成すれば、スキルとして使えるようになります。
毎回同じ指示文を書くのは面倒なのでよく使うものはここに登録していきます。
ファイルの中身はこんな感じの記述です↓(例:.claude/commands/mk.md)
# 知見保存 (Memo Knowledge)
引数: $ARGUMENTS
## Vault情報
- Vault: /Users/user/myIntelligence
- 保存先: 10_KNOWLEDGE/
- テンプレ: 90_TEMPLATES/tpl_knowledge.md
- 命名規則: K-YYYYMMDD-slug.md(slug は英数字・ハイフンのみ)
## 実行ルール
### 1. 汎用性チェック
保存前に以下を確認:
- ○ 他プロジェクトで適用可能か
- ○ 技術判断基準として再利用できるか
- × プロジェクト固有の仕様ではないか
- × 一度きりの判断ではないか
### 2. 保存フロー
1. テンプレート(tpl_knowledge.md)の構造に従って内容を整理
2. タグが TAGS.md に存在するかチェック(なければ既存タグで代用を提案)
3. **ユーザーに保存内容を提示して確認を取る**
4. 明示的なOKが出たら:
- K-YYYYMMDD-slug.md として保存
- INDEX.md のタグ別セクションに追記
### 3. 引数がある場合
引数をslugまたは知見の概要として使用する。
### 4. 引数がない場合
会話の文脈から保存すべき知見を特定し、ユーザーに確認する。# 知見保存 (Memo Knowledge)
引数: $ARGUMENTS
## Vault情報
- Vault: /Users/user/myIntelligence
- 保存先: 10_KNOWLEDGE/
- テンプレ: 90_TEMPLATES/tpl_knowledge.md
- 命名規則: K-YYYYMMDD-slug.md(slug は英数字・ハイフンのみ)
## 実行ルール
### 1. 汎用性チェック
保存前に以下を確認:
- ○ 他プロジェクトで適用可能か
- ○ 技術判断基準として再利用できるか
- × プロジェクト固有の仕様ではないか
- × 一度きりの判断ではないか
### 2. 保存フロー
1. テンプレート(tpl_knowledge.md)の構造に従って内容を整理
2. タグが TAGS.md に存在するかチェック(なければ既存タグで代用を提案)
3. **ユーザーに保存内容を提示して確認を取る**
4. 明示的なOKが出たら:
- K-YYYYMMDD-slug.md として保存
- INDEX.md のタグ別セクションに追記
### 3. 引数がある場合
引数をslugまたは知見の概要として使用する。
### 4. 引数がない場合
会話の文脈から保存すべき知見を特定し、ユーザーに確認する。使用方法
要件定義開始(/req)
req.mdで定義した通りの内容をヒヤリングしてくれます。
これで定義し忘れることがなくなります。
開発フローチェックリスト表示(/dev)
毎回同じ開発フローを実現してくれるようになっており、このコマンドで今どの段階かを表示することができます。
知見検索(/sr タグ名)
開発中、過去に保存した知見を調べたいときに役立ちます。もちろんobsidianアプリから直接検索することも可能です。
知見保存(/mk)
今後同じことを聞きそうな内容は知見として保存していきます。
エラー保存(/me)
同じエラーが出た時に何度も調べなくていいように保存していきます。
まとめ
この設定で判断(フロー)・想起(検索)・記憶(保存)を可能にする外付け脳が構築できました!しばらく使ってみてまた改善していきたいと思います。