
こんにちは。AI Central 事業部にてエンジニアをしております、ぽちぽちです。
AI Central 事業部では新規事業として、お客様の VoC データなどを LLM により構造化し、経営戦略・製品開発戦略等のアクションプランへ落とし込む「AI Central Voice」を開発しています。このようなサービスを作る上で、LLM を製品に組み込むことはもちろん、エンジニア、非エンジニア問わずチーム全員で意識的に LLM を活用し生産性を上げることを意識して、日々業務をこなしております。
今回はAI Central事業部にて、サービスのアーキテクチャやサービス仕様などを記載した開発ドキュメントをどのように管理し、生産性と品質を両立させているかについてご紹介していきます。具体的には
等について具体的にどうのようにやったのかをご紹介いたします。開発ドキュメントに悩んでいる方々にとって参考になれば幸いです。なお、以降は簡略化のため「ドキュメント=開発ドキュメント」として説明していきます。
新規事業では業務委託や本体事業部からの一時的なリソース借用など、人の出入りが激しいです。適切なドキュメント管理をすることで新規メンバーのキャッチアップ速度向上や属人化防止、サービス品質向上への効果が見込めます。
しかし、ドキュメント管理は面倒な作業であり、特に機能追加や変更が頻繁な0→1フェーズのサービス開発では優先度が低くなりがちです。
そこで我々は LLM を活用し、ドキュメントメンテナンスのコストを最小化しつつ、形骸化しないドキュメント戦略を考案しました。
3.1. 従来のドキュメント管理の課題
戦略立案にあたり、まず従来のドキュメント管理における課題を整理しました:
0→1フェーズのサービス開発では、技術的負債を適切に管理しながら高速に開発を進める必要があります。初期実装が変わらないことは稀であり、新規メンバーも増える中、機能・組織ともに変化が激しいフェーズでは、属人化を防ぎ、サービスの現状を正確に理解できる最新のドキュメントが重要です。
3.2. ドキュメント戦略の立案
これらの課題を解決するため、以下の方針でドキュメント戦略を策定しました:

立案したドキュメント戦略を具体的にどのように適用したかご紹介していきます。
4.1. Single Source of Truth
当初、チーム内ドキュメントは Notion や Github リポジトリに分散していました。そこで、Github リポジトリ内にwikiディレクトリを作成し、開発ルール、機能詳細、技術的負債など全ての情報を markdown で一元管理することにしました。
wikiでの一元管理にあたり、弊社では Devin を利用していたため、DevinWiki の内容をベースに加筆修正し、技術的負債も追記して機能の現状をより正確に表現しました。また、Notion 内のチーム開発ルール等も markdown 化して移行しました。
4.2. 統一されたドキュメントポリシー
次に、チーム内で統一されたドキュメントポリシーを作りました。 wiki にドキュメントを追加するとなっても全ての情報を wiki に追加すれば他のドキュメントは書かなくてよいというわけではありません。README にはそこに書くべき内容があり、 コード内ドキュメントにも書くべき内容があります。それらを改めてまとめ、チーム内のドキュメントポリシーとして策定し、その内容もチーム内開発ルールとして、 wiki に追加しました。
詳細は割愛しますが、5W1Hの観点でドキュメントポリシーを議論し整理しました:

4.3. ドキュメント更新の自動化
ドキュメント更新の自動化には Claude Code Github Actions を活用しました。Claude Code Github Actions は GitHub Actions ワークフロー内で Claude Code を実行できるツールです。インストール方法は公式ドキュメントに従い、claude code コマンドをローカル環境にインストールし、/install-guithub-appを実行するだけで導入できます。ここでは AI Central 事業部でのドキュメント自動更新の仕組み構築に焦点を当てます。
また、似たアウトプットとして Devin の Deep Wiki がありますが、これは全自動でコードを読み取り wiki を作成するため、開発ルールまで管理し、全ての情報を一元管理したかったので今回は見送りました。その他、Gemini CLI などのコーディングエージェント等も検討いたしましたが、開発フローと統合しやすく、現場では Claude Code がよく利用されていたことから、Claude Code Github Actions を採用いたしました。
様々な試行錯誤を経て、ドキュメント自動更新の仕組みは以下のように構築しました:
@cc-update-wikiを PR 内でメンションするだけで更新できるワークフローを設計@cc-update-wikiを追記し、PR 作成時に必要に応じて自動更新できるよう修正ワークフローにすると以下のようになります。

また、ドキュメント自動更新のためのワークフローのサンプルを追記しておきます。
name:UpdateWikion: issue_comment:types:[created] pull_request_review_comment:types:[created] pull_request_review:types:[submitted] pull_request:types:[opened]jobs:update-wiki:if: | ( (github.event_name =='issue_comment' &&contains(github.event.comment.body,'@cc-update-wiki')) || (github.event_name =='pull_request' &&contains(github.event.pull_request.body,'@cc-update-wiki')) || (github.event_name =='pull_request_review_comment' &&contains(github.event.comment.body,'@cc-update-wiki')) || (github.event_name =='pull_request_review' &&contains(github.event.review.body,'@cc-update-wiki')) )runs-on:ubuntu-latestpermissions:contents:writepull-requests:writeid-token:writesteps: -name:Checkoutrepositoryuses:actions/checkout@v4with:fetch-depth: 1 -name:RunClaudePRActionuses:anthropics/claude-code-action@betawith: anthropic_api_key: ${{secrets.ANTHROPIC_API_KEY}} timeout_minutes: "20" trigger_phrase: direct_prompt: | あなたはテクニカルドキュメントの専門家です。提供された変更履歴を分析し、wiki ディレクトリ内の関連するマークダウンファイルを更新または新規作成し、このPRにコミットしてください。PR内の変更ファイル: $CHANGED_FILES 以下のガイドラインに従ってください: 1.PR内のファイル変更内容を分析し、wiki配下の影響を受ける可能性のあるドキュメントを特定する 2. ドキュメントは日本語で記述する 3. 以下の形式でドキュメントを構成する: - 概要 - 実装の詳細(アーキテクチャ、データフロー) - 注意事項(該当する場合) - 技術的負債や今後対応予定の内容(具体的な課題と対応方針) 4.wikiを変更する必要がなければ、その旨をGithubにコメントしてください。その場合も、なぜ変更が不要と判断したかの理由を簡潔に説明してください。 ## ドキュメント更新の例 良いドキュメント更新の例: \`\`\`markdown # テスト属性機能 ## 概要 テスト属性機能は、テスト属性を作成・削除する機能です。 ## 実装の詳細 ### データモデル - \`TestAttribute\`: テストデータに付与される属性を表すモデル - \`id\`: 主キー - \`xxx_attribute_id\`: 関連する属性ID - \`value\`: 属性値 ### 提供メソッド - \`create_test_attribute()\`: テスト属性の作成 - \`delete_test_attribute()\`: テスト属性の削除 ## 注意事項 - 属性定義が存在しない場合はエラーになります - 属性値は属性定義で指定された型に従う必要があります ## 技術的負債と今後の対応 - パフォーマンス最適化: 大量のテスト属性を一括作成する機能の追加 - バリデーション強化: 属性値の型チェックの改善 \`\`\`
上記はこちらのサンプルコードをベースに、独自のコマンド + プロンプトの例を入れています。(2025年8月時点での情報を基にサンプルを構築しています。実際に利用される場合は自己責任でお願いいたします。)上記のプロンプトのポイントは
$CHANGED_FILES などの有益な変数の利用 (ref)です。特に「ドキュメント更新 ガイドライン」の 4. wikiを変更する必要がなければ、その旨をGithubにコメントしてください。その場合も、なぜ変更が不要と判断したかの理由を簡潔に説明してください。 は非常に効果的で、不要な変更を防ぐことができます。加えて、$CHANGED_FILES などの有益な変数の利用を行うことで、効率的に変更内容を LLM に伝えることができ、最後に実際のドキュメントフォーマットを例示することで、ドキュメントに一貫性をもたせることができます。
このワークフローが正常に実行されると、PR 上では以下のように Claude からコメントが追加され、PR に wiki を更新したコミットが追加されます。

このように、 ドキュメント更新を独自コマンドとしてワークフローに組み込むことで、他のClaude Code Actions のワークフローとコンフリクトさせることなく、実行させることができます。
4.4. ドキュメント活用基盤の構築
最後の仕上げとして、LLM がドキュメント活用できるようにするための仕掛けを加えました。やることは簡単です。Claude Code を利用していれば、 CLAUDE.md に以下の文を追記するだけです。
`wiki`に提供機能の説明やチーム開発ルールをmarkdownで記載しています。必要に応じて、これらを参照してください。
上記の要求でもドキュメント量が極端に多くなければ、LLM はwikiディレクトリ内のファイル名等から参照すべきドキュメントを適切に選択している印象です。
これにより、現在提供している機能の内容やチーム開発ルールなど、開発に必要なあらゆる内容について質問しても適切に回答してくれるようになりました。
試しにデプロイフローについて聞いてみると、このように回答が来ました。コードからは読み取れないブランチ戦略なども wiki から読み取り正確に回答してくれています。

Claude Code Github Actions によるドキュメント自動更新の仕組みを導入し、しばらく運用し、良かったことと改善できそうなことをそれぞれまとめます。
5.1. 良かったこと
↓ チームメンバーが作成した、技術的負債をドキュメントに追記したPRです。いつも丁寧な仕事をしてくれて感謝していると同時に、エンジニアとして私も日々刺激を受けています。

5.2. 改善できそうなこと
最後にドキュメント管理へ悩む人へ実際に私が試行錯誤してきた知見を共有します。
AI Central 事業部での生産性と品質を両立するためのドキュメント管理方法について、ご紹介いたしました。私自身、サービスの早い変化に追従するために苦労することがありましたが、このようにドキュメントを一元管理し、かつそれを自動更新する仕組みを導入することで、コード実態とドキュメントの乖離がなくなり、簡単にキャッチアップできるようになりました。
ですが、まだこれは始まりにすぎません。ドキュメント管理は自動化すれば解決するような問題ではありません。メンバー一人ひとりが強い意思でメンテナンスしていかなければ、すぐにこのフローは形骸化し、ドキュメントは陳腐化してしまいます。そのためにもメンテナンスされているドキュメントをより広く有効活用してもらい、ドキュメントを最新の状態に保つためのインセンティブを持たせる必要があります。
"5.2. 改善できそうなこと"でも記載しましたが、私はネクストステップとして、このドキュメント活用方法をチーム内で展開しようと思っています。将来的にドキュメント活用方法の知見がまとまり、皆さんにご共有できるようになりましたら、またテックブログ等でご紹介したいです。
id:tocomi
id:shoco55
id:pochipochi2X5
id:tabito-hara
id:okikutan
id:techtouch
id:cobalt_catal
id:taisa831
id:sok14
id:analogrecord
id:izzii
id:alluser
id:lexiko
id:yhoriuchi
id:daryo
id:murochi
id:mikatyy
id:komo-ri
id:homemade-ramen
id:toukoudo
id:tkr911
id:shuwccf
id:ohwatoshiyuki
id:keita03030303
id:shzawa
id:yamanoi-y
id:makky_tyuyan
id:ihirokyx
id:tt_kacchan引用をストックしました
引用するにはまずログインしてください
引用をストックできませんでした。再度お試しください
限定公開記事のため引用できません。