Skip to content

feat(feed): advertise company and category RSS feeds for autodiscovery - #75

Merged
iakito-dev merged 1 commit into
mainfrom
factory/20261113-company-rss-discovery
Nov 13, 2026
Merged

iakito-dev merged 1 commit into
mainfrom
factory/20261113-company-rss-discovery

Conversation

@iakito-dev

Copy link
Copy Markdown
Owner

🏭 ソフトウェアファクトリーによる自動 PR

企業やカテゴリで絞り込んだフィードを開いたとき、その一覧に対応する公開 RSS を <link rel="alternate"> で宣言し、RSS リーダーの自動検出で見つかるようにします。

選んだ理由: サンドボックスで公開フィード(/feed.xml・企業別・タグ別・カテゴリ別)と sitemap がすべて正しい XML を返すことを確かめた後、各一覧の <head> を見比べました。/?tag=LLM ではタグ別フィードが宣言されるのに、/?company=mercari と /?category=ai では全体フィードしか出ていませんでした。企業別フィード(/companies/<slug>/feed.xml)は購読者がいるため残してあり(ADR-0048)、カテゴリ別フィード(/feed.xml?category=)も実装済みなのに、フィード画面からは見つけられない状態でした。「この会社のブログだけ RSS リーダーで追いたい」読者が、絞り込んだ画面の URL をそのまま RSS リーダーに貼れば購読できるようになります。

変更内容

  • app/_feed/feed-alternates.ts(新規・純関数): 絞り込みから自動検出用の RSS 一覧を作る
    • タグ・カテゴリ → /feed.xml?category=&tag=(併用時は 1 本にまとめる。不正なカテゴリキーは無視)
    • 企業(1 社に解決できたとき)→ /companies/<slug>/feed.xml(企業フィードはタグ・カテゴリで絞れないので別の行)
    • 一覧に近いフィードを先に、全体フィード /feed.xml を最後に置く
  • app/(app)/page.tsx の generateMetadata で使う。企業名は見出し・タブタイトル用に既に引いている singleCompany の結果を流用するので、DB アクセスは増えない
  • unit test 5 件、docs/features/feed.md を更新

確認結果(サンドボックスの HTML の <head>):

URL 宣言される RSS
/?company=mercari /companies/mercari/feed.xml(mercari の新着)+ /feed.xml
/?category=ai&tag=LLM /feed.xml?category=ai&tag=LLM(AI・機械学習 #LLM の新着)+ /feed.xml
/?tag=LLM /feed.xml?tag=LLM(#LLM の新着)+ /feed.xml(従来どおり)
/ /feed.xml のみ(従来どおり)

宣言先のフィードがそれぞれ記事を返すことも確認した(?category=ai&tag=LLM 19 件、/companies/mercari/feed.xml 6 件)。

影響範囲

  • 画面: フィード / の <head> のみ(見た目の変化なし。そのためスクリーンショットは無し)
  • DB schema変更: なし
  • 環境変数追加: なし

確認したこと

  • bun run check(lint / depcruise / typecheck / test 550 件)と bun run build が通る
  • 該当する docs/features/feed.md を更新した
  • レイヤー境界を守っている(app/_feed → shared/categories のみ)
  • bun run scripts/factory-guard.ts --local ✓(4 ファイル)
  • コメントは Why のみ

AI assist 利用状況

  • AIで生成したコードを含む(全体)

関連 Issue / Discussion

なし


Generated by Claude Code

The feed page only declared the tag feed as an alternate. Filtering by a
single company or a category now also advertises /companies/<slug>/feed.xml
or /feed.xml?category=, so RSS readers pick up the feed of the list
being viewed.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DwThJmLcy2KKjqvHXUX53z
@vercel

vercel Bot commented Nov 13, 2026 •

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated
techblo Ready Ready Preview Nov 13, 2026 11:40pm UTC

@iakito-dev
iakito-dev enabled auto-merge (squash) November 13, 2026 23:40

@github-actions github-actions Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Factory guard: 自動マージの条件(ADR-0045)を満たしたため承認します。

@iakito-dev
iakito-dev merged commit d42a04f into main Nov 13, 2026
9 of 10 checks passed

This branch was successfully deployed

1 active deployment
Preview — 9b8b0b4d Deployed Nov 13, 2026 by vercel[bot]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants