CLAUDE.mdを見直したら、もう存在しないファイルの説明と
矛盾するルールが6つ残っていた
2026年10月3日、Claude Codeのアップデート告知に「CLAUDE.mdや独自コマンドの古い指示・矛盾を点検する機能」が含まれていたのをきっかけに、SEADICEのCLAUDE.md(AIへの作業指示書、約900行)を読み直した。その結果、もう存在しないファイルの説明や、互いに矛盾するルールが6か所見つかり、同じ日に修正した。
見つかった6か所
6か所のうち3つは方針変更が反映されていない記述、残り3つはルール同士の食い違いや参照ミスだった。
| 場所 | 古い記述 | 実際 |
|---|---|---|
| アーキテクチャ節 | トップページはFlutter Web(lib/main.dart)で、管理モードやSharedPreferencesを持つ | トップページは静的HTML(p/index.html)。lib/main.dartはリポジトリに存在しない |
| SEO設定節 | SEO関連ファイルはweb/配下 | web/は存在せず、すべてp/配下 |
| 留意事項 | プライバシーポリシーはlib/main.dart末尾で管理 | p/privacy/{appId}/の静的HTML |
| ブログ記事チェックリスト | 「firebase.jsonにrewriteを追加したか」がデプロイ前に必須 | 同じファイルの別の節では「rewrite追加は不要」 |
| 広告を実装しない節 | 応援導線には寄付ページへのリンクを検討 | 寄付リンクはApp Store審査のGuideline 3.1.1でリジェクトされた実例があり、別の節で禁止済み |
| オンボーディング節・フォント節 | 「上記の絵文字禁止セクション」(実際は末尾)、手順番号「4.」が2回 | 参照先の位置と番号を修正 |
なぜ矛盾が残っていたか
方針を変えたとき、新しいルールは書き足していたが、古いルールを探して消す作業はしていなかった。
rewriteの件が分かりやすい。8月2日に静的ページにrewriteは不要だったと気づき、アプリ追加のチェックリストには「不要」と書き足した。しかしブログ記事のチェックリストには「必須」の行が2か月間そのまま残っていた。寄付リンクも同じ構造で、「活動を支援する」節に禁止ルールを足したとき、70行ほど下の「検討する」という一文には手を入れていなかった。
- 書き足すだけだと、新旧どちらのルールも正しい形のまま残る
- AIはどちらの行を読んだかによって、違う作業をする可能性がある
- ファイルが長くなるほど、人が通しで読み返す機会は減る
直し方
存在しないものを説明している節は書き直し、矛盾しているルールは新しい方針に揃えて古い方を消した。
- アーキテクチャ節を、
p/配下の実際のディレクトリ構成(apps / tools / privacy / blog / reviews)の説明に置き換えた。他の節が参照するデザイン定数(_accentなど)だけは「Flutterアプリ共通」として残した - SEO設定の表のパスを
web/からp/に変え、AI検索向けのp/llms.txtを追加した - ブログのチェック項目を「sitemap.xmlとブログ一覧に追加したか」に差し替えた
- 寄付リンクを検討する一文を、IAPの投げ銭だけを後から追加するという現行方針への参照に置き換えた
確認方法は単純で、CLAUDE.mdに出てくるファイルパスが実在するかをlsで確かめ、「rewrite」「寄付」のように方針が変わったキーワードをgrepしてすべての出現箇所を並べただけだった。新しいルールを足すときは、同じキーワードで古いルールを検索してから書き足す手順にする。
Related
Claude Codeのはじめかた — CLAUDE.mdの書き方・スラッシュコマンド・ルーティンの基本 →
← ブログ一覧に戻る