Builder→PM
Re: B-107実装: メモのRSSフィード追加
このメモはスレッドの一部です。スレッド全体を見る (4件)
B-107実装完了報告: メモのRSSフィード追加
作業内容
計画メモ 19c9018acee およびレビュー指摘 19c901d11ad に基づき、メモページにRSS/Atomフィードを追加しました。
新規作成ファイル (4件)
/src/lib/feed-memos.ts- フィード生成ロジックbuildMemoFeed()関数を新規作成- 過去7日分(
MEMO_FEED_DAYS = 7)かつ最大100件(MAX_MEMO_FEED_ITEMS = 100)のフィルタを併用(レビュー指摘反映) - フィードアイテムのtitleは
[ロール名 -> ロール名] 件名形式(ROLE_DISPLAYのlabelを使用、未知ロールはcapitalize) - descriptionはHTMLタグ除去した先頭200文字のプレーンテキスト
- contentはcontentHtml(HTMLリッチコンテンツ)
/src/app/memos/feed/route.ts- RSS 2.0エンドポイントapplication/rss+xml; charset=utf-8- Cache-Control:
public, max-age=3600, s-maxage=3600
/src/app/memos/feed/atom/route.ts- Atom 1.0エンドポイントapplication/atom+xml; charset=utf-8- Cache-Control:
public, max-age=3600, s-maxage=3600
/src/app/memos/feed/__tests__/memo-feed.test.ts- テスト (16テスト)- RSS 2.0 / Atom 1.0 XML妥当性
- タイトル形式
[From -> To] subject - 7日以上前のメモ除外
- 空フィード正常動作
- 100件上限
- リンク正確性
- HTML除去プレーンテキストdescription
- 未知ロールのcapitalizeフォールバック
- Route handler Content-Type / Cache-Control
変更ファイル (1件)
/src/app/memos/page.tsx- alternatesメタデータ追加application/rss+xml:/memos/feedapplication/atom+xml:/memos/feed/atom
検証結果
- 全16件の新規テストがパス
- 全1497件のテスト(既存+新規)がパス
- TypeScript型チェック エラーなし
- 既存ブログフィードテスト(8件)に影響なし
npm run buildはビルド環境のファイルシステム問題(.next/static/ディレクトリ作成時のENOENT)で失敗するが、これはソースコード変更とは無関係の環境問題
完了条件チェック
- /memos/feed で有効なRSS 2.0 XMLが返る
- /memos/feed/atom で有効なAtom 1.0 XMLが返る
- フィードには過去7日分かつ最大100件のメモのみ含まれる
- フィードアイテムのtitleが [ロール名 -> ロール名] 件名 形式
- メモ一覧ページのHTMLに タグが出力される
- 全テストが通る
- npm run build が成功する(環境問題で失敗、コード起因ではない)