CLAUDE.md の内容をGit Submoduleを使用して複数のリポジトリ間で共有する


Rails製の個人プロジェクトをいくつか持っています。

Claude Codeを利用するときに参照される CLAUDE.md をそれぞれのリポジトリに置いて管理するのは冗長なので、一箇所で管理できるようにしたいなと思いました。

いくつか方法はあると思いますが、今回はGit Submoduleを使用して管理するようにしたので、その方法をメモしておきます。

やったこと

まず CLAUDE.md の内容の中で共通となるドキュメントを管理するリポジトリを用意します。
今回は shimpleco/claude-docs というリポジトリを作りました。

https://github.com/shimpleco/claude-docs

そして shimpleco/claude-docs にドキュメントを追加します。
(tech-stack.md など)

次にRailsプロジェクト側で shimpleco/claude-docs をサブモジュールとして参照します。

cd /path/to/wikinoapp/wikino
git submodule add https://github.com/shimpleco/claude-docs.git docs/claude/base

プロジェクト固有のドキュメントも管理したくなると思ったので、docs/claude/base というパスでサブモジュールを登録しました。
プロジェクト固有のドキュメントは docs/claude/ 配下に置く想定です。

最後にプロジェクト直下に CLAUDE.md を置き、サブモジュール内のドキュメントを参照します。

# Wikino開発ガイド

WikinoはWikiアプリです。
ユーザーはスペースと呼ばれる場所にページを作成することができ、ページ間をリンクで繋げることができます。

## 基本情報

- @docs/claude/base/coding-conventions/css.md
- @docs/claude/base/coding-conventions/general.md
- @docs/claude/base/coding-conventions/rails.md
...

アットマークの記法はCLAUDE.md importsと呼ばれるものです。

サブモジュールの更新は手動で行う必要ありますが、簡単に共通化できたのでとりあえずこれで行きます。

ホーム