name: hn-reader description: > Hacker News (https://news.ycombinator.com/) のトップ記事を和訳して提示し、 ユーザーが選んだ記事を要約して /jot で yoooz_vault のデイリーノートに記録する。 「HN見たい」「Hacker News読みたい」「HNで気になる記事ある?」のような リクエストでユーザーが明示的に呼び出すスキル。
hn-reader
Hacker News のトップ記事をユーザーと一緒に「眺めて → 選んで → 要約して記録する」までを行う対話型スキル。
いつ使うか
ユーザーが以下のように明示的に指示した時:
- 「HN見せて」「Hacker News読みたい」
- 「HNで気になる記事ある?」
/hn-readerと直接スキル呼び出し
逆に使わない場面:
- ユーザーが特定のHN記事URLをすでに貼っている時(その時は単にWebFetchで内容を返せばよい)
- HNのコメント欄だけを読みたい時
動作フロー
ステップ1: トップ10件を取得
WebFetch で https://news.ycombinator.com/ を取得し、トップ10件について以下を抽出する:
- 順位 (1〜10)
- タイトル (原文 英語)
- リンク先URL (記事本体)
- HNディスカッションURL (
https://news.ycombinator.com/item?id=XXXXX) - ポイント数
- コメント数
「Ask HN:」「Show HN:」「Tell HN:」など本文がHN内にある記事は、リンク先URLにHNディスカッションURLを使う。
ステップ2: タイトルを和訳して提示
ユーザーに以下の形式でMarkdownリストを提示する:
今日のHacker Newsトップ10をお持ちしましたわ、ドクター。
1. **【和訳タイトル】** (XXX points, YY comments)
原文: Original Title Here
🔗 https://example.com/article
2. **【和訳タイトル】** (XXX points, YY comments)
原文: Original Title Here
🔗 https://example.com/article
...
どの記事を読みたい?番号でお知らせくださいませ(複数可、例: `1,3,5` または `all`)。
- 和訳は意味が通る自然な日本語にする(直訳すぎない)
- 専門用語は適度に原語のままでよい(例: "LLM", "Rust", "Kubernetes")
ステップ3: ユーザー選択を待つ
AskUserQuestion は4択までしか提示できないため使わず、Markdownリストを提示して自由入力でユーザーから番号を受け取る。
受け取った番号をパースする:
3→ 3番のみ1,3,5→ 1番, 3番, 5番1-3→ 1番, 2番, 3番all→ 全件
ステップ4: 各記事を要約(read-article スキルに委譲)
選ばれた各記事について順番に処理する。記事本文の取得と要約は read-article スキルに
委譲する(WebFetch の小型モデルには要約させない。数字・日付の捏造を防ぐため)。
- 各記事のリンク先 URL を
read-articleの手順で要約する (read-article/scripts/fetch_article.pyで本文取得 → Claude 本体が本文を読んで要約)。PAGES:(複数ページ)/PAYWALL:の注記が出たら、要約にその旨を添える。- 本文がほぼ空(exit 2 / SPA の可能性)の場合は、read-article の手順どおり
WebFetchの全文抽出にフォールバックする。 - PDF / 動画 / それでも本文が取れない場合: HN ディスカッション URL にフォールバックし、 議論の内容を要約する。
- それでも要約できない場合: ユーザーに「この記事は要約できなかった」と報告してスキップ。
- 要約は、read-article の出力フォーマットに HN 固有の 💬 行を足した形で表示する:
## 【和訳タイトル】 🔗 元記事: <URL> 💬 HN: <HNディスカッションURL> ### 要点 - ポイント1 - ポイント2 - ポイント3 ### 詳細メモ - 補足の事実や数値(本文にあるもののみ) - 注目すべき主張や結論 - HNコメント欄で議論になっている論点(取得できた場合) - 要約をユーザーに表示してから、次のステップへ
ステップ5: /jot で記録
各記事の要約ごとに 1回ずつ jot スキル (Skill ツール経由) を呼び出す。
jot に渡すメッセージは以下の形式(複数行可):
HN: 【和訳タイトル】 <元記事URL>
要点: ポイント1 / ポイント2 / ポイント3
詳細: 補足事項を簡潔に1-2文で
- 1行目: タイトルとURL(後から検索しやすくするため)
- 2行目以降: 要点と詳細を凝縮(Thinoでざっと振り返れる粒度)
- 改行を含む長文は避ける(Thinoのつぶやき1件として扱いたいため)
ステップ6: 完了報告
すべての記事を処理したら、何件をjotに記録したかをユーザーに報告して終了。
エラー時の振る舞い
- HNトップページが取得できない: 「Hacker Newsに接続できなかった」と報告して終了
- タイトル抽出が10件に満たない: 取得できた件数で進める(ユーザーに件数を伝える)
- 記事本文が取得できない: HNディスカッションにフォールバック → それも無理なら該当記事をスキップして次へ
- jot失敗(今日のデイリーノートが無いなど): 残りの記事は要約のみ表示し、jot は一度報告したら以降スキップ
Out of scope
- 過去日付のHNフロントページ(
/front?day=YYYY-MM-DD)の閲覧 - コメントスレッドの完全な要約(あくまで論点の抽出のみ)
- 記事のブックマーク管理(jotへの記録以上のことはしない)
- ユーザー指定URLの単発要約(この場合はスキル外で WebFetch を直接使う)