ワンクリックで
vv-horizon-briefing
Fetch tech news from configured sources, score and filter with AI, generate daily briefing with deep analysis
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
メニュー
Fetch tech news from configured sources, score and filter with AI, generate daily briefing with deep analysis
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
SOC 職業分類に基づく
| name | vv-horizon-briefing |
| description | Fetch tech news from configured sources, score and filter with AI, generate daily briefing with deep analysis |
Generate a daily tech briefing from configured data sources (GitHub, HackerNews, RSS, Reddit, Telegram). Fetches content via a Python script, then uses AI to score, filter, summarize, and deeply analyze top items. No external AI API key required.
User types /vv-horizon-briefing or asks to "generate a briefing" / "run horizon briefing".
config.json in the current working directory. If not found:
references/config-schema.md from this skill directory and show the exampleassets/presets/default-config.json to config.json (LLM/Agent engineering sources: HackerNews, Reddit r/LocalLLaMA + r/MachineLearning, 量子位, 新智元, Simon Willison, Hugging Face, LangChain, ArXiv cs.AI, Google Cloud Blog, GitHub releases for anthropics/anthropic-sdk-python and langchain-ai/langchain)python3 -c "import httpx; import feedparser; import bs4; print('OK')"scripts/install_deps.sh. If the user declines, stop and explain manual install.config.json and extract output.output_dir (if present). Determine the base output directory:
output.output_dir is set, use it as {base_dir}./data as {base_dir}{YYYY-MM-DD}. Create the output directory {base_dir}/{YYYY-MM-DD}/ if it does not exist.python3 <skill_dir>/scripts/fetch.py --config config.json --days Nfetched.json is not created, report the error output to the user and stop — do not proceed to Phase 3.fetched.json to {base_dir}/{YYYY-MM-DD}/fetched.json. Read it from that path. The file is a JSON object with an items array and a config_snapshot object.Read references/scoring-criteria.md from this skill directory before scoring.
Score each item 0–10 using the 5-dimension rubric (新颖性, 影响力, 技术深度, 社区信号, 时效性 — 2 points each). Sort descending, take top N from config_snapshot.top_n (default 10).
Output a scoring summary table to the user showing rank, title, and score.
After scoring, before generating summaries:
{source_analysis} paragraph:共抓取 {total} 条,来自 {source_count} 个源。
最活跃源:{top_source}({n} 条,均分 {avg}/10)
今日热点主题:{theme_1}、{theme_2}、{theme_3}
Read references/summary-writing-guide.md from this skill directory before writing.
For each language in config_snapshot.languages, generate a summary following assets/templates/summary.md:
"en" = English, "zh" = ChineseAnthropic 发布了 Claude 4 (not Anthropic发布了Claude4), 评分 8/10 (not 评分8/10). No exceptions — even in markdown link text and bullet points. After writing the summary, scan every line and fix any violations before writing the file.{one_sentence_abstract} — one complete sentence, not a title rewrite. CRITICAL: Every abstract MUST contain at least one specific fact — a number, version, percentage, metric, or named entity. Vague abstracts like "某公司发布了新模型" FAIL — write "某公司发布了 405B 参数的模型 X v3.1,性能提升 23%". If the source content is too short to extract specific data, infer from title keywords or note the significance explicitly (e.g. "首次开源" counts as a specific claim).{source_analysis} paragraph from Phase 3.5{other_items_by_category}: take all scored items NOT in top-N, group them by category (infer category from title/content, e.g. 模型发布、工具框架、研究论文、行业动态), render each group as a markdown section with bullet links: - [{title}]({url}) · {source_type} · {score}/10Write to: {base_dir}/{YYYY-MM-DD}/summary-{lang}.md
After writing summary-zh.md (if zh is in config languages), run a self-check:
summary-zh.md fileFor articles in Phase 5, the Pangu spacing rule is embedded in each sub-agent prompt — no separate check needed here.
Before dispatching, read both reference files from this skill directory:
references/article-writing-guide.md → store as {writing_guide}assets/templates/article.md → store as {article_template}Dispatch one independent agent per top-N item using the Agent tool. All agents run concurrently — do NOT generate articles yourself, delegate entirely.
Construct the following prompt for each item (substitute all placeholders with actual values, including the full contents of {writing_guide} and {article_template}):
You are writing a deep analysis article for a tech briefing.
Pangu Spacing Rule (CRITICAL): Every CJK character MUST have a space on both sides when adjacent to any ASCII character (letters, digits, punctuation, symbols). [Note: if the ASCII character is a single digit, then do not insert space.] Examples: Anthropic 发布了 Claude 4 (not Anthropic发布了Claude4), 评分 8/10 (not 评分8/10). No exceptions — apply to headings, body text, inline code references, and all content. Scan the entire article for violations before writing the file.
Item data:
Article template (fill every placeholder section):
{article_template}
Writing guide (follow strictly):
{writing_guide}
Output: Write the completed article to:
{base_dir}/{YYYY-MM-DD}/articles/{N}-{title_slug}-{lang}.md
{N} = rank number (1-based){title_slug} = lowercase title, spaces→hyphens, non-alphanumeric removed, truncated to 50 chars{lang} = language code from config (e.g. zh)Call Agent once per top-N item with the above prompt (all calls in a single message, in parallel). Wait for all agents to complete before proceeding to Phase 6.
Collect each agent's reported output path and any errors for the Phase 6 report.
content fields may contain multiple article snippets separated by --- From rss ---. When scoring or writing articles, use only the text before the first separator as the primary content.