📃

Zettelkasten におけるアウトプットを Claude Code で支援する

に公開

はじめに

以前、頑張りすぎない Zettelkasten という記事で、継続可能な知識管理の仕組みとして「三層知識管理術」を紹介しました。
その記事では、学習ログからナレッジへの変換(アウトプット)を支援するワークフローとして、以下の手順を紹介しました。

  1. テーマ設定(例:「知識管理術」)
  2. AI に相談(Cursor で関連ファイルを読み込ませて構成案を作成)
  3. 下書き作成(構成案を元に執筆)
  4. 推敲・仕上げ(Cursor rules で文章をチェック)

この方法は確かにアウトプットのハードルを下げてくれますが、実際に運用していく中で「もっと自動化できないか」という欲求が生まれました。関連する学習ログのファイルを手動で選ぶのは面倒ですし、毎回同じようなプロンプトを書くのも非効率です。

そこで、この手動のワークフローを Claude Code のサブエージェントとスキルを使って自動化してみました。この記事では、その実装例と実際の動作例を紹介します。

想定読者

  • Obsidian で Zettelkasten を運用しているが、アウトプットに苦労している方
  • Claude Code と Obsidian を掛け合わせた運用をしたい方

この記事で得られること

  • コマンド一発で学習ログからナレッジドキュメント(下書き)を自動生成できるようになる
  • Claude Code のサブエージェントとスキルを組み合わせた実装パターンを学べる
  • 手動の手間を減らしつつ、段階的な支援と自分の言葉で肉付けする良さを維持する方法

前提

この記事では、以下の環境を前提にしています。

  • 知識管理ツールとして Obsidian を使用
  • Claude Code が利用可能な環境
  • 前回記事で紹介した三層ディレクトリ構造を採用している

結論

Claude Code のサブエージェントとスキルを組み合わせて、コマンド一発で「タグ収集→提案生成→ドキュメント作成」まで自動化する。

  1. /learning-doc-generator <タグ名> を実行
  2. 生成された提案から選択
  3. 自動生成された下書きを自分の言葉で肉付け

本題

前回の記事で紹介したワークフロー

前回の記事では、以下のような手動のワークフローを紹介しました。

  1. テーマ設定(例:「Git について書こう」)
  2. ファイル選択(関連する学習ログを手動で選び、Cursor に読み込ませる)
  3. プロンプト作成(「これらのメモを元に、『Git の取り消し操作』というテーマでブログ記事の構成案を作成してください」のようなプロンプトを書く)
  4. 構成案の確認(AI が生成した構成案を確認し、必要に応じて修正)
  5. 下書き作成(構成案を元に、自分の経験や言葉で肉付けしながら執筆)
  6. 推敲・仕上げ(Cursor rules で定義したルールに基づき、AI に文章をチェック)

この方法は効果的ですが、関連ファイルを手動で探したり、毎回似たようなプロンプトを書いたりする手間がかかります。

自動化のアプローチ

これらの手間を減らすため、Claude Code のサブエージェントとスキルを使って、ワークフローを自動化しました。

なぜサブエージェントとスキルを使うのか

手動のワークフローをそのまま自動化するのではなく、役割を分離して各エージェントに担当させることで、以下のメリットがあります。

  • コンテキストの分離: 各エージェントが特定の役割に集中できるため、処理が明確になる
  • 専門化: タグ検索のようなルールベースの処理は、スキル(Python スクリプト)として定義することで、正確で高速な処理を実現できる

サブエージェントとスキルについては、以下の公式ドキュメントを参照してください。

実装構成

以下の4つのコンポーネントで実装しました。

  1. learning-logs-tag-collector (Skill): 指定タグのファイルを自動検索し、YML ファイルを生成
  2. learning-doc-proposer (Agent): YML ファイルを分析し、具体的な記事提案を自動生成
  3. learning-doc-writer (Agent): 提案を元に実際のドキュメントを自動生成
  4. learning-doc-generator (Command): 上記の流れを一括実行

これらの関係を図解すると以下のようになります。

各コンポーネントは独立しており、必要に応じて個別に実行することもできます。例えば、タグ収集だけを実行したい場合は、Skill を直接呼び出すことも可能です。

Phase 1: タグ収集(learning-logs-tag-collector)

タグを指定するだけで、関連ファイルを自動検索するスキルです。標準ライブラリのみで動作する Python スクリプトとして実装しています。

.claude/skills/learning-logs-tag-collector/SKILL.md
---
name: learning-logs-tag-collector
description: LearningLogs内のマークダウンファイルから指定されたタグを含むファイルを検索し、ファイル名とパスをYML形式で出力する。
---

# Learning Logs Tag Collector

## 使用方法

python3 scripts/collect_by_tag.py <タグ名>

...(省略)

## 出力

- 出力先: `LearningLogs/{タグ名}_LearningLogs.yml`
- 形式: シンプルなYML形式(ファイル名とパスのリスト)

...(省略)

このスキルは、YAML フロントマターの tags フィールドを部分一致(大文字小文字を区別しない)で検索し、該当するファイルの一覧を YML ファイルとして出力します。

出力例(git_LearningLogs.yml):

tag: "git"
count: 10
files:
  - name: "gitで直前のコミットを削除する方法.md"
    path: "/Users/.../LearningLogs/Fleeting/2025/12/gitで直前のコミットを削除する方法.md"
  - name: "gitのrebaseとmergeの使い分け.md"
    path: "/Users/.../LearningLogs/Literature/2025/12/gitのrebaseとmergeの使い分け.md"

// ...(省略)

Phase 2: 提案生成(learning-doc-proposer)

YML ファイルを読み込んで、自動的に具体的な記事提案を生成するエージェントです。毎回似たようなプロンプトを手動で書く必要がなくなります。

.claude/agents/learning-doc-proposer.md
---
name: learning-doc-proposer
description: LearningLogs/直下のYMLファイルを分析し、技術記事・チートシート・まとめドキュメントなどの生成お題を提案する。
model: sonnet
color: purple
---

You are a **Learning Documentation Proposer**

...(省略)

## Workflow

1. YML ファイルを読み込み、リストされたマークダウンファイルを分析
2. 共通テーマやパターンを識別
3. 具体的で実現可能なドキュメント提案を最大5つ生成
4. `doc-proposals-{tag}.md` として保存

...(省略)

このエージェントは、単に「Git について書く」ではなく、「Git の取り消し操作パターン集」「Git のブランチ戦略比較」のように、具体的なテーマとして提案してくれます。

出力例(doc-proposals-git.md):

# ドキュメント生成提案

生成日: 2025-12-30

## 提案1: Git の取り消し操作パターン集

種類: チートシート

概要:
Git でよくある「やっぱり元に戻したい」シーンに対応する操作をパターン別に整理したリファレンス。reset、revert、checkout の使い分けを具体例とともに解説。

想定読者:
Git の基本操作は理解しているが、取り消し操作で迷うことがある開発者

参照元ファイル:
- `LearningLogs/Fleeting/2025/12/gitで直前のコミットを削除する方法.md`

含めるべき要素:
- 各操作の違いと使い分け基準
- シーン別のコマンド例
- 注意点とリカバリ方法

Phase 3: ドキュメント作成(learning-doc-writer)

提案を元に、構造化されたドキュメントを自動生成するエージェントです。生成後は自分の言葉で肉付けすることを推奨します。

.claude/agents/learning-doc-writer.md
---
name: learning-doc-writer
description: LearningLogs/ 直下の doc-proposals-{tag_name}.md を元に、指定されたお題のドキュメントを作成する
model: sonnet
color: green
---

You are a Learning Document Writer

## Workflow

1. doc-proposals-*.md を読み込み
2. 参照元ファイルをすべて読み込み
3. ユーザーにインタビュー(重点を置きたい内容の確認)
4. Knowledge/Categories/ 配下にドキュメントを作成
5. 参考資料セクションを追加

...(省略)

このエージェントは、以下のような役割を果たします。

  • 学習ログを元に、構造化されたドキュメントを生成
  • YAML フロントマター(tags、created、updated)を適切に設定
  • 参考資料セクションで元の学習ログへのリンクを記載

ポイント

  • 元の学習ログは削除せず、参考文献として残します。これにより、知識の出自を追跡でき、後から情報を補完することも可能になります。
  • AI が生成したドキュメントは「素材」として捉え、自分の経験や言葉で肉付けすることで、知識として昇華できます。

統合コマンド(learning-doc-generator)

コマンド一発で一連の流れを自動実行します。

.claude/commands/learning-doc-generator.md
---
description: LearningLogsから指定タグのドキュメントを生成するパイプライン
argument-hint: <タグ名>
---

# Learning Doc Generator

## 実行手順

### Step 1: タグ収集
Skill ツールで learning-logs-tag-collector を呼び出す

### Step 2: 提案生成
Task ツールで learning-doc-proposer を起動
AskUserQuestion ツールで、どの提案でドキュメントを作成するか確認する(提案番号を選択してもらう)

### Step 3: ドキュメント作成
ユーザーが選択した提案に基づき、learning-doc-writer を起動

AskUserQuestion ツールを利用するのが肝で、これを指定することでこちらからわざわざプロンプトを入力せずとも選択肢を選ぶだけで、そのお題のドキュメントの下書きを自動生成してくれます。

カスタムコマンドについては、公式ドキュメントを参照してください。

実際の動作例

実際に Git 関連のドキュメントを生成する例を見てみましょう。

実行コマンド

/learning-doc-generator git

タグ収集

learning-logs-tag-collector を実行
git_LearningLogs.yml を生成
→ 10件のファイルが見つかりました

提案生成

learning-doc-proposer を起動
doc-proposals-git.md を生成
→ 5つの提案が生成されました:
  1. Git の取り消し操作パターン集
  2. Git のブランチ戦略比較
  3. Git コンフリクト解決の実践ガイド
  4. Git のコミットメッセージ規約
  5. Git のトラブルシューティング集

どの提案でドキュメントを作成しますか?

ドキュメント作成

ユーザー: 1番の取り消し操作パターン集をお願いします

learning-doc-writer を起動
参照元の12ファイルを読み込み
Knowledge/Categories/Git/git-undo-operations.md を生成

ドキュメントが完成しました!

このように、コマンド一発で「散在した学習ログ」→「具体的な提案」→「構造化されたドキュメント」まで生成できるようになりました。

前回の方法との比較

項目 前回の方法(手動) 今回の方法(エージェント)
ファイル選択 手動で関連ファイルを探して選ぶ タグを指定するだけで自動検索
プロンプト作成 毎回似たようなプロンプトを書く エージェントが自動で処理
構成案生成 手動でプロンプトを実行 エージェントが自動で提案生成
下書き作成 手動で執筆 エージェントが自動で生成(その後、自分の言葉で肉付け)
実行方法 各ステップを手動で実行 コマンド一発で自動実行

実際に使ってみて感じた効果

このシステムを運用して、以下の効果を実感しています。

手動の手間が減った

関連ファイルを探したり、毎回プロンプトを書いたりする手間がなくなりました。タグを指定するだけで、自動的に提案まで生成されるため、アウトプットへの心理的ハードルが下がりました。

前回のワークフローの良さを維持

自動化したからといって、前回のワークフローの良さ(段階的な支援、自分の言葉で肉付け)は失われていません。エージェントが生成したドキュメントは「素材」として捉え、自分の経験や言葉で肉付けすることで、知識として昇華できます。

学習ログの「見える化」

タグで検索することで、「このテーマについてこんなに学習していたんだ」という気づきが得られます。散在していた知識が可視化されることで、アウトプットへのモチベーションも上がります。

継続的な改善が可能

参考資料として元の学習ログへのリンクが残るため、後から情報を追加したり、内容を更新したりするのが容易です。「一度書いたら終わり」ではなく、継続的に育てるドキュメントになります。

まとめ

今回紹介した「学習ログからナレッジへの変換支援システム」は、前回の記事で紹介した手動のワークフローを自動化したものです。

  • タグ収集(Skill): 手動でのファイル選択を自動化
  • 提案生成(Agent): 手動でのプロンプト作成を自動化
  • ドキュメント作成(Agent): 下書きの自動生成を支援
  • 統合コマンド: 各ステップの手動実行を自動化

サブエージェントとスキルを適切に組み合わせることで、手動の手間を減らしつつ、前回のワークフローの良さ(段階的な支援、自分の言葉で肉付け)を維持できたと思います。

「学習ログは溜まるけどアウトプットできない」という悩みを抱えている方は、今回紹介した自動化を導入してみてください!

Discussion