Claude Codeを使用してナレッジを蓄積・管理する

Claude Codeを使用してナレッジを蓄積・管理する

2025.10.10

はじめに

こんにちは!山本です。
今回はClaude Codeを利用したナレッジ蓄積・管理のアイデアを共有したいと思います。

背景

こんなことはありませんか?

  • AIにいろいろ聞いたけれど、何を聞いたか忘れてしまった
  • 一つのチャットでいろいろ聞きすぎて振り返りができない
  • 質問したことを抽象化して今後の知識として管理したい

私自身がこのような悩みを抱えていました。

やりたいこと

上記の課題を解決するために、次のように自分のやりたいことを整理しました。

  1. Claude Codeに質問した場合、適宜特定のフォルダにアウトプットしてほしい
  2. 回答の内容によって、適切なディレクトリに回答を保存してほしい
  3. これらのアウトプットのルールを厳密に守ってほしい

前提

我々のチームの場合、Backlog や GitHub Wiki を用いて情報管理を行っており、それぞれの情報取得は以下を用いました。

考えてみる

  1. Claude Codeに質問した場合、適宜特定のフォルダにアウトプットしてほしい

背景課題:「何を聞いたか忘れてしまう」への対応

新規の案件に参画した場合、不明点や文脈が追えない部分が多くありました。
そういった場合に、backlog-exporterで取得した情報をClaude Codeに読ませてから疑問点を解消するようにしていました。
ただ、このままだと知り得た知識を蓄積できません。
そのため、この部分は claude_output というフォルダを作成しました。そこにClaude Codeのアウトプットをすべて格納するように指示しました。

  1. 回答の内容によって、適切なディレクトリに回答を保存してほしい

背景課題:「振り返りができない」への対応

次のようなディレクトリ構成を考えました。
大きな方針として、この構成で運用していくことにしました。
この運用により、目的別に振り返りがしやすくなると考えました。

			
			  claude_output/
  ├── CLAUDE.md          # 本ファイル - 運用方針
  ├── QA/                # Q&A形式の技術説明
  ├── task/              # タスク固有の作業ドキュメント
  │   ├── PROJECT-00001/ # Backlog課題キー別ディレクトリ
  │   └── update-library-202401/ # ブランチ名での例外管理
  ├── guides/            # 実装ガイド(恒久的手順書)
  ├── prompt/            # Claude動作指示(新規作成対象外)
  └── input/             # 参考資料とインプット(新規作成対象外)
      ├── wiki/          # プロジェクトGitHub Wiki情報
      ├── backlog-data/  # Backlogプロジェクトアーカイブ
      ├── tmp/           # 一時的な参照ファイル(ログ情報など)
      └── references/    # その他参考ドキュメント

		
  1. これらのアウトプットのルールを厳密に守ってほしい

背景課題:「質問を抽象化して今後の知識として管理したい」への対応

ルールを厳格化し、一貫性のあるナレッジ管理を行うため、以下2点を行いました。

1. プロンプトの作成

上記のアイデアをもとにClaude Codeにプロンプト作成を依頼しました。
試行錯誤の結果、それに加えて以下も遵守するようにプロンプト作成を指示しました。

			
			- 私が「アウトプットしてください」という旨の指示をした場合、対象アウトプットディレクトリを提案し、アウトプットファイルを格納すること
- アウトプットファイルの格納先を必ず確認すること
- アウトプット先に新規ディレクトリが必要と判断した場合、そのディレクトリが必要なのか事前確認を行うこと
- `/task` 配下にディレクトリ作成時は「Backlog課題キー」または「ブランチ名」を提案すること
- ディレクトリ構成を把握するために適宜 `CLAUDE.md` を更新すること

		

主な指示は上記を遵守するように指示し、細かい部分はClaude Codeに補ってもらう形でプロンプトを作成しました。
最終的にはClaude Docsに従う形で、XML形式でプロンプトを仕上げてもらいました。
XML形式で記述することにより、プロンプトの「明確さ」「正確性」「柔軟性」「解析可能性」が向上します。

2. 初期化ファイルの作成
Claude Codeのコマンドである /init コマンド実行時に「1. プロンプトの作成」で作成したプロンプトを読み込ませて、その運用に従うように初期化を指示しました。
仮にプロンプトのファイル名を「アウトプットガイドライン.xml」とした場合、以下の指示を行いました。
 例:/init アウトプットガイドライン.xmlの運用方針を前提に初期化してください
 ※プロンプトについては次のセクションに記載します。

そうすることで、生成される初期化ファイルのCLAUDE.mdに明記され、アウトプットを指示した場合でも高い確率で運用方針を遵守してくれるようになりました。

実行プロンプト

実行したプロンプトは以下です。

実行プロンプト
			
			<?xml version="1.0" encoding="UTF-8"?>
<claude_code_output_guidelines version="1.0">
  <metadata>
    <last_updated>2025-09-01</last_updated>
    <description>Claude Code 出力管理プロンプト(XML構造化版)</description>
  </metadata>

  <critical_rules priority="CRITICAL">
    <rule id="1">
      <name>格納先確認を必須実行</name>
      <description>明らかな場所でも必ず確認</description>
    </rule>
    <rule id="2">
      <name>新規ディレクトリ判定</name>
      <description>必要と判断した場合は事前確認</description>
    </rule>
    <rule id="3">
      <name>タスク関連の課題キー確認</name>
      <description>Backlog課題キーまたはブランチ名を確認</description>
    </rule>
  </critical_rules>

  <trigger_keywords>
    <keyword>○○をまとめて</keyword>
    <keyword>○○を作成して</keyword>
    <keyword>○○を記録して</keyword>
    <keyword>○○をアウトプット</keyword>
    <keyword>QAに記載</keyword>
    <keyword>ドキュメント化</keyword>
    <keyword>調査結果</keyword>
    <keyword>実装記録</keyword>
    <keyword>テスト結果</keyword>
    <keyword>手順書</keyword>
    <keyword>ガイド</keyword>
  </trigger_keywords>

  <confirmation_template>
    <message>
○○の内容を作成いたします。保存先について以下から選択してください:

1. claude_output/QA/ - Q&A形式の技術説明
2. claude_output/task/[課題キー]/ - タスク関連作業
3. claude_output/guides/ - 恒久的な手順書(3回以上参照予定)
4. 新規ディレクトリが必要(理由をお聞かせください)

タスク関連の場合は、Backlog課題キー(例:PROJECT-00001)もお教えください。
    </message>
  </confirmation_template>

  <execution_checklist>
    <item>ユーザーに格納先を確認したか?</item>
    <item>タスク関連の場合、課題キーを確認したか?</item>
    <item>新規ディレクトリが必要な場合、理由を説明したか?</item>
    <item>ユーザーから明示的な許可を得たか?</item>
  </execution_checklist>

  <execution_protocol>
    <step number="1">
      <name>即座に確認実行</name>
      <description>アウトプット依頼 → 3秒以内に確認テンプレートで確認</description>
    </step>
    <step number="2">
      <name>判定・提案</name>
      <options>
        <option>既存ディレクトリで対応可能 → 最適な場所を提案</option>
        <option>新規ディレクトリが必要 → 理由説明 + 承認要求</option>
      </options>
    </step>
    <step number="3">
      <name>実行・報告</name>
      <description>許可確認後 → ファイル作成 → 結果報告</description>
    </step>
  </execution_protocol>

  <rules>
    <forbidden_actions priority="CRITICAL">
      <action>確認せずにファイルを作成</action>
      <action>独断でディレクトリを決定</action>
      <action>「明らかだから」という理由で確認を省略</action>
      <action>ユーザー許可前の作業開始</action>
    </forbidden_actions>

    <mandatory_actions priority="CRITICAL">
      <action>全アウトプットで事前確認</action>
      <action>タスク関連は課題キー確認</action>
      <action>新規ディレクトリは理由説明 + 承認要求</action>
      <action>作成後の結果報告</action>
    </mandatory_actions>
  </rules>

  <directory_structure>
    <root path="claude_output/">
      <directory name="CLAUDE.md" description="本ファイル - 運用方針"/>
      <directory name="QA/" description="Q&A形式の技術説明">
        <usage>ユーザーが「QAに記載してください」と指示した内容を保存</usage>
        <format>トピック別にファイルを作成</format>
        <content>質問、詳細な回答、理解のポイントを含める</content>
      </directory>
      <directory name="task/" description="タスク固有の作業ドキュメント">
        <usage>Backlog課題キーごとにサブディレクトリを作成</usage>
        <example>task/PROJECT-00001/, task/PROJECT-00002/</example>
        <exception>ブランチ名での作成(例:task/feature-library-update/)</exception>
        <content>調査結果、実装記録、テスト結果等</content>
      </directory>
      <directory name="guides/" description="実装ガイド">
        <usage>恒久的な手順書</usage>
        <criteria>3回以上参照される可能性があるプロジェクト全体で再利用される内容</criteria>
        <example>テスト実行手順書.md</example>
      </directory>
      <directory name="prompt/" description="Claude動作指示">
        <usage>保存のみ、新規作成対象外</usage>
      </directory>
      <directory name="input/" description="参考資料とインプット">
        <subdirectory name="wiki/" description="プロジェクトWiki情報"/>
        <subdirectory name="backlog-data/" description="Backlogプロジェクトアーカイブ"/>
        <subdirectory name="tmp/" description="一時的な参照ファイル"/>
        <subdirectory name="references/" description="その他参考ドキュメント"/>
        <usage>新規作成対象外</usage>
      </directory>
    </root>
  </directory_structure>

  <file_operations>
    <management priority="HIGH">
      <rule>ユーザー確認なしでディレクトリを作成しない</rule>
      <rule>既存ディレクトリは自動作成(存在しない場合)</rule>
      <rule>既存ファイルに追記する際は、ファイルの末尾にコンテンツを追加</rule>
      <rule>番号付きファイルは連番を維持(既存最大番号 + 1を使用)</rule>
      <rule>新しいディレクトリ作成時はCLAUDE.mdを更新</rule>
      <rule>タスク関連作業では、常にユーザーにBacklog課題キーを確認</rule>
      <rule>課題キー特定が必要な場合はclaude_output/input/backlog-data/issues/ファイルを参照</rule>
    </management>

    <error_handling priority="MEDIUM">
      <rule>ファイル作成・更新の成功をユーザーに報告</rule>
      <rule>ディレクトリ作成が失敗した場合、具体的なエラー詳細を報告</rule>
      <rule>ユーザーの指示が曖昧な場合は明確化を求める</rule>
      <rule>新しいディレクトリ作成やファイル整理パターン変更前は常に確認</rule>
    </error_handling>

    <naming_conventions>
      <rule>内容を明確に示す説明的な名前を使用</rule>
      <rule>ファイル名は日本語で作成(ユーザー指定ルール)</rule>
      <rule>日付付きファイルの場合:YYYY-MM-DD_説明 形式を使用</rule>
      <rule>タスク関連ファイルの場合:タスクID PROJECT-00001_ドキュメント名 を含める</rule>
      <rule>カテゴリ内で一貫性を維持</rule>
      <rule>検索性を最優先に考慮</rule>
    </naming_conventions>
  </file_operations>

  <claude_code_behavior>
    <response_pattern>
      <format>Created/Updated: /path/to/file.md - 追加・変更内容の簡潔な説明</format>
    </response_pattern>

    <decision_making priority="HIGH">
      <rule>複数の適切な場所が存在する場合、必ずユーザーに選択を求める</rule>
      <rule>ファイル配置に迷う場合は、選択肢をユーザーに説明し確認を求める</rule>
      <rule>既存のファイル整理パターンとの一貫性を保つ</rule>
      <rule>ファイル配置やディレクトリ作成について独断で決定しない</rule>
      <rule>不明な場合はオプションをユーザーに説明し、最も具体的な場所を推奨</rule>
    </decision_making>
  </claude_code_behavior>

  <task_content_protocol>
    <step>課題キー確認: タスク関連コンテンツでは常にユーザーにBacklog課題キーを確認</step>
    <step>参照チェック: 必要時はclaude_output/input/backlog-data/issues/ファイルを使用</step>
    <step>例外処理: コンテンツがブランチ名を使用すべきか確認(ライブラリアップデート等)</step>
  </task_content_protocol>

  <qa_document_rules>
    <rule>ユーザーが「QAに記載してください」「Add to Q&A」等と言った場合: Q&A内容を /claude_output/QA/ に保存</rule>
    <rule>検索性向上のためトピック別ファイルを作成</rule>
    <rule>質問、詳細な回答、理解のポイントを含める</rule>
  </qa_document_rules>

  <project_specific_rules>
    <rule>新しいプロジェクト全体の規約やパターンが確立された場合は CLAUDE.md を更新</rule>
    <rule>開発中に発見されたアーキテクチャ決定やコーディング標準を文書化</rule>
  </project_specific_rules>

  <important_principles>
    <uncertainty_handling priority="HIGH">
      <rule>情報が不明確または判断が困難な場合は「わかりません」と明確に述べる</rule>
      <rule>仮定を述べる場合は「〜と思われます」「〜の可能性があります」などの表現で明確にマークする</rule>
      <rule>不確実な情報を事実として述べない</rule>
      <rule>疑問がある場合はユーザーに選択肢を提示して確認</rule>
    </uncertainty_handling>
  </important_principles>

  <initial_setup>
    <step>このガイドラインをプロジェクトルートの CLAUDE.md に追加</step>
    <step>以下のパスを実際のプロジェクトパスに置換:
      - /path/to/your/project/ → あなたのプロジェクトルートパス
    </step>
  </initial_setup>

  <claude_md_integration>
    <importance>
      Claude Code がこれらのガイドラインを認識し従うため、上記のプロンプトをプロジェクトの CLAUDE.md ファイルに追加してください。
      これはプロジェクトのルートディレクトリに配置する必要があります:
      /path/to/your/project/CLAUDE.md
    </importance>
    <behavior>
      CLAUDE.md ファイルは Claude Code によって自動的に読み込まれ、全てのセッションで一貫したドキュメント管理が保証されます。
    </behavior>
  </claude_md_integration>

  <dialogue_examples>
    <example id="1" type="QA作成">
      <scenario>ユーザーがQ&A形式での記録を依頼</scenario>
      <user>認証システムの仕組みについて調査した結果をQAに記載してください</user>
      <claude>
認証システムの仕組みについての調査結果を作成いたします。保存先について以下から選択してください:

1. claude_output/QA/ - Q&A形式の技術説明
2. claude_output/task/[課題キー]/ - タスク関連作業
3. claude_output/guides/ - 恒久的な手順書(3回以上参照予定)
4. 新規ディレクトリが必要(理由をお聞かせください)

QAディレクトリに「認証システムの理解.md」として保存することを推奨します。よろしいでしょうか?
      </claude>
      <user>はい、QAディレクトリでお願いします</user>
      <claude>
承知しました。claude_output/QA/認証システムの理解.md を作成します。

Created: /Users/yamamoto.kakeru/Documents/git/jleague-line-app/claude_output/QA/認証システムの理解.md
- 認証システムの仕組みに関するQ&A形式のドキュメントを作成しました
      </claude>
    </example>

    <example id="2" type="タスク作業">
      <scenario>タスク関連の作業ドキュメント作成</scenario>
      <user>ライブラリアップデートの調査結果をまとめてください</user>
      <claude>
ライブラリアップデートの調査結果を作成いたします。保存先について以下から選択してください:

1. claude_output/QA/ - Q&A形式の技術説明
2. claude_output/task/[課題キー]/ - タスク関連作業
3. claude_output/guides/ - 恒久的な手順書(3回以上参照予定)
4. 新規ディレクトリが必要(理由をお聞かせください)

タスク関連の場合は、Backlog課題キー(例:PROJECT-00001)もお教えください。
ブランチ名での管理の場合は、ブランチ名(例:feature-library-update)をお教えください。
      </claude>
      <user>ブランチ名はupdate-library-202401です</user>
      <claude>
承知しました。claude_output/task/update-library-202401/ ディレクトリに調査結果を保存します。

ファイル名は「ライブラリアップデート調査結果.md」でよろしいでしょうか?
      </claude>
    </example>

    <example id="3" type="エラーハンドリング">
      <scenario>ファイル重複エラー</scenario>
      <user>テスト手順書を作成してください</user>
      <claude>
エラー: ファイル「テスト実行手順書.md」は既に存在します。

以下のオプションから選択してください:
1. 既存ファイルに追記する
2. 新しいファイル名で作成する(例:テスト実行手順書_v2.md)
3. 既存ファイルを上書きする(警告:既存の内容が失われます)

どちらを選択されますか?
      </claude>
    </example>

    <example id="4" type="曖昧な指示の明確化">
      <scenario>ユーザーの指示が不明確な場合</scenario>
      <user>調査結果をまとめて</user>
      <claude>
調査結果をまとめさせていただきます。内容を確認させてください:

1. どのような調査の結果でしょうか?
   a. 技術調査
   b. バグ調査
   c. パフォーマンス調査
   d. その他

2. この調査は特定のタスクに関連していますか?
   a. はい → Backlog課題キーまたはブランチ名をお教えください
   b. いいえ → 適切な保存先を提案します

詳細をお教えください。
      </claude>
    </example>
  </dialogue_examples>
</claude_code_output_guidelines>

		

実行後の変化

余談ですが、私の場合タスクごとに作業ログを作成しています。
プロンプトを実行することで、作業ログを効率的に作成することができました。
それを作成することで「あの時のエラーどうやって解決したっけ?」というケースで、すぐに対象の情報にアクセスできます。
さらに、もしClaude Codeのセッションが切れても、作業ログを読み込ませることで再度作業を続けられるメリットがあります。
また、タスクごとに質疑応答や特定の情報をまとめているため、ナレッジの蓄積がしやすく検索性も向上しました。

最後に

今回は、Claude Codeを使用したナレッジ管理のアイデアを共有いたしました。
参考になれば幸いです。

アノテーション株式会社について

アノテーション株式会社はクラスメソッドグループのオペレーション専門特化企業です。サポート・運用・開発保守・情シス・バックオフィスの専門チームが、最新 IT テクノロジー、高い技術力、蓄積されたノウハウをフル活用し、お客様の課題解決を行っています。当社は様々な職種でメンバーを募集しています。「オペレーション・エクセレンス」と「らしく働く、らしく生きる」を共に実現するカルチャー・しくみ・働き方にご興味がある方は、アノテーション株式会社 採用サイトをぜひご覧ください。

この記事をシェアする

FacebookHatena blogX

関連記事

Claude Codeを使用してナレッジを蓄積・管理する | DevelopersIO