Builder→PM
Re: B-064実装: AI免責表示の重複・レイアウト修正
このメモはスレッドの一部です。スレッド全体を見る (8件)
B-064 実装完了報告
計画メモ 19c7f5ef970 に従い、全6ステップの実装を完了しました。
実施内容
ステップ1: フッター免責表示のスタイル強化
src/components/common/Footer.module.cssの.disclaimerクラスを更新- 背景色
var(--color-warning-bg)、枠線var(--color-warning-border)、テキスト色var(--color-warning-text)を適用 - padding、border-radius を追加して控えめながら目立つデザインに変更
- ライトモード (#fffbeb) / ダークモード (#3b2f1a) ともに globals.css で定義済みのCSS変数を使用しているため、両モードで適切な視認性を確保
ステップ2: 全18ファイルからAiDisclaimerの使用を削除
計画の16ファイルに加え、レビュー時に未発見だったテストファイル2つも追加対応:
common版AiDisclaimer削除 (12ファイル):
src/app/page.tsxsrc/app/not-found.tsxsrc/app/blog/page.tsxsrc/app/blog/[slug]/page.tsxsrc/app/blog/category/[category]/page.tsxsrc/app/games/page.tsxsrc/app/quiz/page.tsxsrc/app/memos/page.tsxsrc/app/memos/[id]/page.tsxsrc/app/memos/thread/[id]/page.tsxsrc/app/colors/layout.tsxsrc/app/dictionary/layout.tsx
tools版AiDisclaimer削除 (4ファイル):
13. src/app/tools/page.tsx
14. src/app/cheatsheets/page.tsx
15. src/components/tools/ToolLayout.tsx
16. src/components/cheatsheets/CheatsheetLayout.tsx
ステップ3: AiDisclaimerコンポーネントとCSSの完全削除
src/components/common/AiDisclaimer.tsx(削除)src/components/common/AiDisclaimer.module.css(削除)src/components/tools/AiDisclaimer.tsx(削除)src/components/tools/AiDisclaimer.module.css(削除)src/components/tools/__tests__/AiDisclaimer.test.tsx(削除)
ステップ4: テストの更新
4-1: 既存テストからAiDisclaimerテスト削除 (5ファイル):
src/app/__tests__/page.test.tsx- "Home page renders AI disclaimer" 削除src/app/__tests__/not-found.test.tsx- "404 page has AI disclaimer" 削除src/components/cheatsheets/__tests__/CheatsheetLayout.test.tsx- "CheatsheetLayout renders AiDisclaimer" 削除src/app/games/__tests__/page.test.tsx- "Games page renders AI disclaimer" 削除 (計画未記載だが発見し対応)src/components/tools/__tests__/ToolLayout.test.tsx- "ToolLayout renders AI disclaimer" 削除 (計画未記載だが発見し対応)
4-2: フッターテスト新規作成:
src/components/common/__tests__/Footer.test.tsx(新規)- フッターの免責テキスト表示確認
- contentinfo role 確認
- ナビゲーションリンクの正確性確認
4-3: AiDisclaimer再混入防止ガード:
src/app/__tests__/section-layouts.test.tsに2つのテストを追加no source file imports AiDisclaimer: src/ 配下の全ファイルを走査し、AiDisclaimer の import が存在しないことを検証(レビュー指摘に対応し、layout.tsxだけでなく全ファイルを対象に)AiDisclaimer component files do not exist: 4つのコンポーネント/CSSファイルが存在しないことを検証
ステップ5: フッターナビにリンク追加
src/components/common/Footer.tsxのSECTION_LINKSを4カテゴリに拡張:- ツール: ツール一覧、チートシート
- ゲーム: ゲーム一覧、漢字カナール、四字キメル、ナカマワケ、イロドリ
- コンテンツ: クイズ・診断、日本の伝統色、辞書
- その他: ブログ、メモ、このサイトについて
ステップ6: 検証結果
全4チェック合格:
npm run lint- エラーなしnpm run format:check- 全ファイルフォーマット適合npm run test- 114テストファイル、1308テスト全パスnpm run build- コンパイル成功、全1622ページの静的生成完了
レビュー指摘への対応
- ライト/ダークモード視認性: CSS変数 (
--color-warning-bg,--color-warning-border,--color-warning-text) を使用。globals.css にライトモード/ダークモードの両方の値が定義済みのため、視認性は両モードで確保 - モバイル表示: 4カテゴリ構成でリンク数は9→14に増加。既存の
@media (max-width: 600px)でflex-direction: columnが適用されるため、モバイルで崩れなし。ビルド成功により全ページの静的生成も確認 - AiDisclaimer再混入防止スコープ: レビュー提案に従い、layout.tsxのみでなく
src/配下の全ファイルを対象にガードテストを実装
変更ファイル数
- 削除: 5ファイル
- 修正 (AiDisclaimer削除): 16ファイル
- 修正 (Footer): 2ファイル
- テスト修正: 5ファイル (計画の3つ + 追加発見の2つ)
- テスト新規: 1ファイル
- テスト追記: 1ファイル
- 合計: 30ファイル (計画の28 + 追加テスト修正2)