---
name: tech-news
description: >
  パーソナライズされた技術ニュースの自動収集・整理コマンド。
  日本語（Zenn、はてブ、Qiita）と英語（Hacker News、Lobsters、Dev.to）の
  情報源からユーザーの技術スタックに関連するニュースを収集し、
  カテゴリ別・重要度順に整理してMarkdownドキュメントにまとめる。
  トリガー: 技術ニュース, tech news, ニュース収集, 情報収集, トレンド確認,
  今日のニュース, 最新技術, テックニュース
---

# Tech News Collector

## 概要

ユーザーの技術スタック（PHP/CakePHP/EC-CUBE、React/TypeScript、AI関連）に
基づいて、日英の技術情報源からニュースを収集・整理し、Markdownにまとめる。

## 実行手順

### 1. 情報源の確認

[references/sources.md](references/sources.md) を参照し、ユーザーの関心領域と
情報源リストを確認する。

### 2. ニュース収集

以下の情報源から WebFetch で並列に取得する（Agent tool を活用して並列化）:

**日本語ソース:**
- `https://zenn.dev/` - トレンド記事
- `https://b.hatena.ne.jp/hotentry/it` - テクノロジーホットエントリ
- `https://qiita.com/` - トレンド記事

**英語ソース:**
- `https://news.ycombinator.com/` - Hacker News フロントページ
- `https://lobste.rs/` - Lobsters（技術特化リンク集約、Reddit代替）
- `https://dev.to/` - 開発者向け記事

各ソースから記事タイトル・URL・概要を抽出する。

### 3. フィルタリングと分類

収集した記事を以下のカテゴリに分類する:

| カテゴリ | キーワード例 |
|---------|-------------|
| PHP / EC-CUBE | PHP, CakePHP, EC-CUBE, Laravel, Symfony |
| React / フロントエンド | React, TypeScript, React Native, Vite, Next.js, CSS |
| AI / LLM | AI, LLM, Claude, ChatGPT, Copilot, ML, 機械学習 |
| 言語・ツール | Rust, Go, Haskell, Neovim, Git |
| Web開発全般 | API, データベース, セキュリティ, DevOps |
| その他注目 | 上記に該当しないが注目すべき記事 |

### 4. 重要度の判定

各記事に重要度を付与する:

- **★★★ 必読**: ユーザーの主要技術スタック（PHP/EC-CUBE/React/AI）に直結
- **★★☆ 推奨**: 関連技術や学習中の技術（Rust/Go/Haskell）に関連
- **★☆☆ 参考**: その他の有用な技術トピック

### 5. ドキュメント出力

出力先: `research/YYYY/MM/tech-news-YYYY-MM-DD.md`

ディレクトリが存在しない場合は作成する。

#### 出力フォーマット

```markdown
# Tech News - YYYY-MM-DD

> 自動収集による技術ニュースダイジェスト

## PHP / EC-CUBE

### ★★★ 必読
- [記事タイトル](URL) - 概要1行（情報源名）

### ★★☆ 推奨
- [記事タイトル](URL) - 概要1行（情報源名）

## React / フロントエンド

### ★★★ 必読
- ...

## AI / LLM

### ★★★ 必読
- ...

## 言語・ツール

### ★★☆ 推奨
- ...

## Web開発全般

### ★☆☆ 参考
- ...

## その他注目
- ...

---
収集元: Zenn, はてなブックマーク, Qiita, Hacker News, Lobsters, Dev.to
収集日時: YYYY-MM-DD HH:MM
```

### 6. サマリー出力

ドキュメント保存後、会話内にも簡潔なサマリーを表示する:

- 収集した記事の総数
- カテゴリ別の記事数
- 特に注目すべき記事のトップ5
- 保存先ファイルパス

## 注意事項

- WebFetch が失敗した情報源はスキップし、取得できたものだけでまとめる
- 同じ記事が複数ソースに出ている場合は重複を除去する
- 記事の概要は元の言語で記載する（日本語記事は日本語、英語記事は英語）
- カテゴリ内に該当記事がない場合、そのカテゴリセクションは省略する
