diff --git a/SKILL.md b/SKILL.md index d7a72d8fb..0d6116dcb 100644 --- a/SKILL.md +++ b/SKILL.md @@ -52,7 +52,41 @@ updated centrally — you'll always get the latest sources automatically." (Replace [N] and [M] with actual counts from default-sources.json) -### Step 2: Delivery Preferences +### Step 2: User Profiling (1 min) + +Before setting up logistics, understand what the user needs from this digest. +Ask these 3 questions concisely: + +**Q1:** "What best describes your current focus?" (single choice) +- AI 产品/创业 (building AI products or startup) +- AI 自媒体/内容创作 (AI content creator on social media) +- 运营/增长 (operations & growth) +- 产品经理 (product manager) +- 文科生转型 AI (career transition from non-tech) +- 投资/研究 (investor or analyst) + +**Q2:** "你主要关注 AI 在哪个方向的应用?" (multiple choice, pick 1-3) +- 产品构建 (building products with AI) +- 运营效率 (operational efficiency & workflows) +- 内容/自媒体创作 (content creation & social media) +- 求职面试 (job hunting & interviews) +- 技术趋势判断 (tech trend spotting) +- 商业模式分析 (business model analysis) + +**Q3:** "除了信息本身,你最希望日报帮你解决什么问题?" (single choice) +- 找选题灵感 (I need content angle ideas from the news) +- 拆解商业逻辑 (I want to understand the business implications) +- 直接可用的结论 (I want ready-to-use takeaways I can apply today) +- 判断趋势方向 (I want to spot what's coming next) + +Save answers to config.json as `userProfile`. + +**Design notes (for you):** +- Keep this fast — 3 questions, ~40 seconds total. Don't over-explain. +- Do NOT ask for customization details like "what topics specifically". The angle generation is smart enough to derive that from their role + focus. +- If they ask "what does this change?", say: "Based on your profile, the digest will include relevant angle suggestions under each key point — headlines you can directly use as content ideas, tailored to your role." + +### Step 3: Delivery Preferences Ask: "How often would you like your digest?" - Daily (recommended) @@ -63,7 +97,7 @@ Then ask: "What time works best? And what timezone are you in?" For weekly, also ask which day. -### Step 3: Delivery Method +### Step 4: Delivery Method **If OpenClaw:** SKIP this step entirely. OpenClaw already delivers messages to the user's Telegram/Discord/WhatsApp/etc. Set `delivery.method` to `"stdout"` in config @@ -113,17 +147,17 @@ Add the key to the .env file. Set `delivery.method` to `"stdout"`. Tell them: "No problem — just type /ai whenever you want your digest. No automatic delivery will be set up." -### Step 4: Language +### Step 5: Language Ask: "What language do you prefer for your digest?" - English - Chinese (translated from English sources) - Bilingual (both English and Chinese, side by side) -### Step 5: API Keys +### Step 6: API Keys **If the user chose "stdout" or "right here" delivery:** No API keys needed at all! -All content is fetched centrally. Skip to Step 6. +All content is fetched centrally. Skip to Step 7. **If the user chose Telegram or Email delivery:** Create the .env file with only the delivery key they need: @@ -145,7 +179,7 @@ Tell the user: "All podcast and X/Twitter content is fetched for you automatical from a central feed — no API keys needed for that. You only need a key for [Telegram/email] delivery." -### Step 6: Show Sources +### Step 7: Show Sources Show the full list of default builders and podcasts being tracked. Read from `config/default-sources.json` and display as a clean list. @@ -153,7 +187,7 @@ Read from `config/default-sources.json` and display as a clean list. Tell the user: "The source list is curated and updated centrally. You'll automatically get the latest builders and podcasts without doing anything." -### Step 7: Configuration Reminder +### Step 8: Configuration Reminder "All your settings can be changed anytime through conversation: - 'Switch to weekly digests' @@ -163,7 +197,7 @@ automatically get the latest builders and podcasts without doing anything." No need to edit any files — just tell me what you want." -### Step 8: Set Up Cron +### Step 9: Set Up Cron Save the config (include all fields — fill in the user's choices): ```bash @@ -180,6 +214,11 @@ cat > ~/.follow-builders/config.json << 'CFGEOF' "chatId": "", "email": "" }, + "userProfile": { + "role": "", + "focusAreas": ["<1-3 items from Q2: building, efficiency, content, career, trends, business>"], + "digestionMode": "" + }, "onboardingComplete": true } CFGEOF @@ -276,7 +315,7 @@ or switch to OpenClaw. Skip cron setup entirely. Tell the user: "Since you chose on-demand delivery, there's no scheduled job. Just type /ai whenever you want your digest." -### Step 9: Welcome Digest +### Step 10: Welcome Digest **DO NOT skip this step.** Immediately after setting up the cron job, generate and send the user their first digest so they can see what it looks like. @@ -346,18 +385,32 @@ Read the prompts from the `prompts` field in the JSON: - `prompts.digest_intro` — overall framing rules - `prompts.summarize_podcast` — how to remix podcast transcripts - `prompts.summarize_tweets` — how to remix tweets +- `prompts.generate_angles` — how to dig multi-dimensional angle directions from content - `prompts.translate` — how to translate to Chinese **Tweets (process first):** The `x` array has builders with tweets. Process one at a time: 1. Use their `bio` field for their role (e.g. bio says "ceo @box" → "Box CEO Aaron Levie") -2. Summarize their `tweets` using `prompts.summarize_tweets` +2. Summarize their `tweets` using `prompts.summarize_tweets` — keep summary tight (1-2 sentences) 3. Every tweet MUST include its `url` from the JSON +4. Then generate 3‑5 multi-dimensional angle directions using `prompts.generate_angles` (skip if `digestionMode` is "takeaways"; angle types adapt based on userProfile.role). Note: 面试素材 is not a separate type — mark any angle with `(面试可用)` if it fits an interview context. **Podcast (process second):** The `podcasts` array has at most 1 episode. If present: -1. Summarize its `transcript` using `prompts.summarize_podcast` +1. Summarize its `transcript` using `prompts.summarize_podcast` — keep summary tight (1-2 sentences) 2. Use `name`, `title`, and `url` from the JSON object — NOT from the transcript +3. Generate 3‑5 multi-dimensional angle directions using `prompts.generate_angles` (same condition as tweets) + +Assemble the digest following `prompts.digest_intro`. Number each content item sequentially across the whole digest (not per-section restart). -Assemble the digest following `prompts.digest_intro`. +**Role-based footer:** After the main digest, read `userProfile.role` from config. +Add exactly ONE line: + +- `product` → 💡 这里哪条信息对你的产品决策最有冲击? +- `content` → 📝 每条延展方向都能独立成篇。选一个今天发。 +- `operations` → ⚙️ 哪条信息明天就能复用? +- `pm` → 📋 用户的真实需求在怎么变?roadmap 需要调整吗? +- `transition` → 🎯 AI 缺的不是技术,是懂场景的人。 +- `investment` → 📊 今天有没有被低估的方向?注意反共识信号。 +- if no profile → skip. **ABSOLUTE RULES:** - NEVER invent or fabricate content. Only use what's in the JSON. @@ -370,26 +423,7 @@ Assemble the digest following `prompts.digest_intro`. Read `config.language` from the JSON: - **"en":** Entire digest in English. - **"zh":** Entire digest in Chinese. Follow `prompts.translate`. -- **"bilingual":** Interleave English and Chinese **paragraph by paragraph**. - For each builder's tweet summary: English version, then Chinese translation - directly below, then the next builder. For the podcast: English summary, - then Chinese translation directly below. Like this: - - ``` - Box CEO Aaron Levie argues that AI agents will reshape software procurement... - https://x.com/levie/status/123 - - Box CEO Aaron Levie 认为 AI agent 将从根本上重塑软件采购... - https://x.com/levie/status/123 - - Replit CEO Amjad Masad launched Agent 4... - https://x.com/amasad/status/456 - - Replit CEO Amjad Masad 发布了 Agent 4... - https://x.com/amasad/status/456 - ``` - - Do NOT output all English first then all Chinese. Interleave them. +- **"bilingual":** Digest in Chinese only. (Bilingual interleaving is deprecated — single language is cleaner for phone reading.) **Follow this setting exactly. Do NOT mix languages.** diff --git a/config/config-schema.json b/config/config-schema.json index bb15c45f8..946aadc36 100644 --- a/config/config-schema.json +++ b/config/config-schema.json @@ -60,6 +60,30 @@ "type": "boolean", "default": false, "description": "Whether the user has completed initial setup" + }, + "userProfile": { + "type": "object", + "description": "User profiling collected during onboarding for personalized digest angles", + "properties": { + "role": { + "type": "string", + "enum": ["product", "content", "operations", "pm", "transition", "investment"], + "description": "User's primary focus role (collected in Step 2)" + }, + "focusAreas": { + "type": "array", + "items": { + "type": "string", + "enum": ["building", "efficiency", "content", "career", "trends", "business"] + }, + "description": "1-3 AI focus areas the user cares most about" + }, + "digestionMode": { + "type": "string", + "enum": ["angles", "business", "takeaways", "trends"], + "description": "Preferred way to digest information: angles (headline ideas), business (business logic), takeaways (ready-to-use), trends (trend spotting)" + } + } } } } diff --git a/examples/sample-digest.md b/examples/sample-digest.md index 9d7bb5981..4129396ca 100644 --- a/examples/sample-digest.md +++ b/examples/sample-digest.md @@ -1,60 +1,84 @@ # Sample Digest Output -This is an example of what your AI Builders Digest looks like. +This is an example of the final format with sequential numbering and detailed summaries. --- -AI Builders Digest — March 14, 2026 - -PODCASTS - -Latent Space — "Why Agents Keep Failing (And How to Fix Them)" -Bottom line: Most agent failures aren't intelligence failures — they're tool-use failures. -The system can reason fine, it just can't reliably call the right API at the right time. - -Key insights: -- Tool selection accuracy drops from 95% to 60% when agents have more than 15 tools - available. The fix isn't smarter models — it's better tool curation per task. -- "Eval-driven development" is replacing vibe-driven prompt iteration at serious - AI companies. If you're not measuring, you're guessing. -- The hosts predict 2026 is the year agent frameworks consolidate from 50+ to 3-4 - winners. Their bet: OpenAI Agents SDK, Claude Code, and LangGraph. -https://youtube.com/watch?v=example123 - -No Priors — "Scaling Laws Are Dead, Long Live Scaling Laws" (with Ilya Sutskever) -Bottom line: Pre-training scaling laws have hit diminishing returns, but post-training -and inference-time compute scaling are just getting started. - -Key insights: -- Ilya argues the next 10x improvement comes from models that can "think longer" - at inference time, not from bigger pre-training runs. -- Synthetic data quality matters more than quantity. "One perfect textbook is worth - a million Reddit comments." -- He's surprisingly bullish on open-source: "The gap will narrow to months, not years." -https://youtube.com/watch?v=example456 - - -X / TWITTER - -Andrej Karpathy (@karpathy) -Shared a deep thread on why he thinks "Software 3.0" (natural language programming) -will make traditional coding a niche skill within 5 years. Key argument: the compile -target is changing from machine code to LLM prompts. Sparked massive debate. -Also released a new Eureka Labs tutorial on building a code interpreter from scratch. -https://x.com/karpathy/status/example1 -https://x.com/karpathy/status/example2 - -Guillermo Rauch (@rauchg) -Announced Vercel's new "v0 Teams" — collaborative AI prototyping where multiple -people can prompt and iterate on the same UI simultaneously. Called it "Google Docs -for vibe coding." Ships next week. -https://x.com/rauchg/status/example3 - -Amanda Askell (@AmandaAskell) -Published a nuanced take on AI safety benchmarks: "We're measuring what's easy to -measure, not what matters. Capability evals tell you what the model CAN do. -Alignment evals should tell you what it WILL do unprompted." Linked to a new -Anthropic research paper on behavioral evaluations. -https://x.com/AmandaAskell/status/example4 - -Reply to adjust your settings, sources, or summary style. +AI Builders Digest — May 6, 2026 + +▎播客 +━━━━━━━━━━━━━━━━━━━━ + +1. Training Data — Waymo's Dmitri Dolgov: 20 Million Rides and the Road to Full Autonomy + +Waymo 联合 CEO Dmitri Dolgov 回顾从 2009 年 Google 自动驾驶项目至今的 21 年征程。他提出一个核心观点:让自动驾驶从"能开"到"安全可靠"的跨越,远比从"不能开"到"能开"难得多——从 90% 到 99.9999% 不是量变,是质变。Waymo 目前完成了 2000 万次商业行程,其系统架构是一个"司机-模拟器-裁判"三体结构:核心模型负责驾驶,模拟器负责验证,裁判负责安全裁决。 + +📌 延展方向: +[内容方向] Waymo 21 年 vs AI 创业速成心态——"长期主义在 AI 时代还成立吗",这个反差本身就是好选题。 +[商业洞察] 纯端到端只够 demo,规模化需要额外安全层。这个 gap 适用于所有 AI 产品。 +[认知刷新] "90%→99.9999% 不是量变是质变"——这个认知框架适用于聊天机器人、代码生成、Agent 任何落地场景。(面试可用) +[产品启示] Waymo"司机-模拟器-裁判"架构:你的 AI 产品除了核心模型,还需要什么配套系统才能可靠运行? +🔗 https://youtube.com/playlist?list=PLOhHNjZItNnMm5tdW61JpnyxeYH5NDDx8 + +▎推特 +━━━━━━━━━━━━━━━━━━━━ + +2. Swyx + +Swyx 对比 OpenAI 和 Anthropic 的最新估值与收入:OpenAI 8500 亿估值对应约 300 亿 ARR,Anthropic 9000 亿估值对应约 440 亿 ARR。但关键在收入确认方式——Anthropic CFO Denise Dresser 表示按 OpenAI 同一口径算,Anthropic 的 ARR 要低 80-100 亿。这意味着 Anthropic 的实际估值倍数可能比 OpenAI 贵得多,两家公司的财务可比性远没有表面看起来那么直接。 + +📌 延展方向: +[商业洞察] AI 巨头之间还没有统一估值坐标系——谁先跑通"可比财务模型",谁在融资中更有话语权。 +[内容方向] "OpenAI vs Anthropic 全面对比":估值、收入、技术路线、企业策略。竞品对比在小红书和公众号都很能打。 +🔗 https://x.com/swyx/status/2051440392722391180 + +3. Box CEO Aaron Levie + +Anthropic 和 OpenAI 同时推出企业 Agent 部署计划。Levie 认为 Agent 进入知识工作领域后,企业软件采购方式将被根本性重塑——企业要做的不仅是选模型,还要升级 IT 系统、打通上下文、改造工作流、设计人机协作关系。AI 模型的"能力"和"能不能稳定跑在业务流程里"是两回事,这中间产生了大量新机会。 + +📌 延展方向: +[需求洞察] 用户需求从"我要一个工具"变成"我要这件事被搞定"——产品定义需要重新思考。 +[商业洞察] SaaS 按席位→按价值收费。这个定价范式转变是未来几年的核心信号。(面试可用) +[内容方向] "SaaS 死了吗?"切入点:企业买的不是软件,是结果。这个转变值得一篇深度。 +[产品启示] 当 Agent 替代知识工作,你的产品是被替代还是成为基础设施? +🔗 https://x.com/levie/status/2051344780328858040 + +4. YC CEO Garry Tan + +GBrain v0.27 发布,新增多模态嵌入和深度照片 OCR,同时支持非 Anthropic/OpenAI 的 LLM。Tan 强调 GBrain 的差异化定位:它不是记忆层,不是代码工具,也不是搜索引擎——三者统一在一个图结构下。他本人每天在 10 万 markdown 文件的 OpenClaw+Hermes Agent 环境中使用。 + +📌 延展方向: +[产品启示] "不是 A 不是 B,是 A+B+C 的统一体"——这种反定义定位策略值得产品经理学习。 +[趋势判断] YC CEO 亲自下场做知识库,说明个人知识管理正在成为 AI 重要战场。 +🔗 https://x.com/garrytan/status/2051517574589116510 + +5. Sam Altman + +Altman 对语音模型表达强烈兴奋,表示已经观察到人们开始改变与 AI 交互的方式。同时预告 GPT-5.5 派对会给未入选的申请者准备惊喜。 + +📌 延展方向: +[趋势判断] Altman 专门提语音是强信号——AI 下一个交互范式可能是语音优先,产品需要为"只说不动手"的场景做准备。 +[内容方向] 可以做"2026 下半年 AI 行业 5 个关键趋势"预测向内容,语音交互排第一。 +🔗 https://x.com/sama/status/2051464865634742334 + +6. Peter Yang (Product at Roblox) + +Yang 提出 AI 发展的三波框架:Coding 是第一波(开发者工具),知识工作是第二波(企业效率工具),个人 Agent 是第三波(每个人拥有的 AI 助手)。大多数人还在第一波焦虑时,第三波已经来了。 + +📌 延展方向: +[认知刷新] 大多数人还在第一波焦虑,但第三波已经来了——这个时间差本身就是内容选题和创业机会。 +[内容方向] 用"三波论"框架做一篇梳理内容:你在第几波?每个阶段的入场策略是什么? +🔗 https://x.com/petergyang/status/2051508988936937764 + +7. Vercel CEO Guillermo Rauch + +Rauch 发布 deepsec——一个开源 Agent 安全审查编排器。数千个 Agent 并行扫描代码库,几分钟找到团队几个月才能发现的漏洞。核心卖点:内部 dogfooding 验证后开源,结合 Vercel Sandbox 实现大规模并行。 + +📌 延展方向: +[产品启示] "内部工具→开源产品"是很好的 launch 策略——先有 dogfooding 的底气,再推向市场。 +[趋势判断] AI 安全审查正在从"辅助工具"变成"标配流程",这本身是一个新品类机会。 +🔗 https://x.com/rauchg/status/2051386798899888539 + +📝 每条延展方向都能独立成篇。选一个今天发。 + +Generated through the Follow Builders skill: https://github.com/zarazhangrui/follow-builders diff --git a/prompts/digest-intro.md b/prompts/digest-intro.md index fc7b6e52f..deae4755c 100644 --- a/prompts/digest-intro.md +++ b/prompts/digest-intro.md @@ -4,56 +4,88 @@ You are assembling the final digest from individual source summaries. ## Format -Start with this header (replace [Date] with today's date): +Start with: +``` AI Builders Digest — [Date] +``` -Then organize content in this order: - -1. X / TWITTER section — list each builder with new posts -2. OFFICIAL BLOGS section — list each blog post from AI company blogs (OpenAI, Anthropic, etc.) -3. PODCASTS section — list each podcast with new episodes - -## Rules - -- Only include sources that have new content -- Skip any source with nothing new -- Under each source, paste the individual summary you generated - -### Podcast links -- After each podcast summary, include the specific video URL from the JSON `url` field - (e.g. https://youtube.com/watch?v=Iu4gEnZFQz8) -- NEVER link to the channel page. Always link to the specific video. -- Include the exact episode title from the JSON `title` field in the heading - -### Tweet author formatting -- Use the author's full name and role/company, not just their last name - (e.g. "Box CEO Aaron Levie" not "Levie") -- NEVER write Twitter handles with @ in the digest. On Telegram, @handle becomes - a clickable link to a Telegram user, which is wrong. Instead write handles - without @ (e.g. "Aaron Levie (levie on X)" or just use their full name) -- Include the direct link to each tweet from the JSON `url` field - -### Blog post formatting -- Use the blog name as a section header (e.g. "Anthropic Engineering", "OpenAI News", "Claude Blog") -- Under each blog, list each new post with its title and summary -- Include the author name if available -- Include the direct link to the original article - -### Mandatory links -- Every single piece of content MUST have an original source link -- Blog posts: the direct article URL (e.g. https://www.anthropic.com/engineering/...) -- Podcasts: the YouTube video URL (e.g. https://youtube.com/watch?v=xxx) -- Tweets: the direct tweet URL (e.g. https://x.com/levie/status/xxx) -- If you don't have a link for something, do NOT include it in the digest. - No link = not real = do not include. - -### No fabrication -- Only include content that came from the feed JSON (blogs, podcasts, and tweets) -- NEVER make up quotes, opinions, or content you think someone might have said -- NEVER speculate about someone's silence or what they might be working on -- If you have nothing real for a builder, skip them entirely - -### General -- At the very end, add a line: "Generated through the Follow Builders skill: https://github.com/zarazhangrui/follow-builders" -- Keep formatting clean and scannable — this will be read on a phone screen +Then organize by section. **全文中文**,不中英混排。产品名/公司名/人名保留英文。 + +### Template + +``` +▎播客 +━━━━━━━━━━━━━━━━━━━━ + +[N]. [Author] — [Title] +[详细摘要:说清楚背景、核心观点、关键数据,让读者不点链接也能理解全貌] + +📌 延展方向: +[角度类型] 一句话。 +[角度类型] 一句话。 +🔗 [URL] +``` + +同一套格式适用于 推特 和 博客。 + +## 关键规则 + +### 摘要:详细、自包含 +摘要要有足够的信息量,让读者**在当前页面就能理解全貌**,不需要二次跳转。 + +- 说清楚背景 + 核心观点 + 关键数据/引述 +- 长度灵活:如果是复杂信息(如估值对比、产品发布),写 3-5 句也不嫌多 +- 不做概括式摘要(❌ "Swyx 讨论了两家 AI 公司的估值"),要给出实质内容(✅ "Swyx 对比 OpenAI 8500 亿估值/300 亿 ARR 和 Anthropic 9000 亿估值/440 亿 ARR,但指出按同一口径 Anthropic 要低 80-100 亿") +- 角度部分依然保持短小精悍(一条一句话) + +### 序号 +每条内容前面加连续序号,贯穿全文: + +``` +▎播客 + +1. Training Data — Waymo... + ... + +▎推特 + +2. Swyx + ... + +3. Aaron Levie + ... +``` + +序号帮助扫读时定位:"看到第 5 条了,还有 2 条看完"。 + +### 角度方向 +- 直接粘贴 `prompts.generate_angles` 的输出,不要修改或概括 +- 如果 `digestionMode` 是 "takeaways" 或 "business",跳过角度 + +### 作者格式 +- 用全名 + 身份(如 "Box CEO Aaron Levie") +- 不要写 @ 符号(Telegram 会变成可点击链接),用 "levie on X" + +### 必守 +- 每条内容必须有来源链接,没有就不放 +- 绝不编造内容 + +### Footer + +根据 `userProfile.role` 加一行(如果没设 role 就跳过): + +| role | 文案 | +|------|------| +| `product` | 💡 这里哪条信息对你的产品决策最有冲击? | +| `content` | 📝 每条延展方向都能独立成篇。选一个今天发。 | +| `operations` | ⚙️ 哪条信息明天就能复用? | +| `pm` | 📋 用户的真实需求在怎么变?roadmap 需要调整吗? | +| `transition` | 🎯 AI 缺的不是技术,是懂场景的人。 | +| `investment` | 📊 今天有没有被低估的方向?注意反共识信号。 | + +最后加: + +``` +Generated through the Follow Builders skill: https://github.com/zarazhangrui/follow-builders +``` diff --git a/prompts/generate-angles.md b/prompts/generate-angles.md new file mode 100644 index 000000000..5e0a758be --- /dev/null +++ b/prompts/generate-angles.md @@ -0,0 +1,74 @@ +# Angle Directions Prompt + +你是一个 AI 行业信息的"角度拆解师"。你的任务不是总结信息,而是从一条信息中 +挖掘出多个可以延展的维度——每个维度代表一种"这个信息可以怎么用"的方向。 + +## 核心原则 + +每条角度必须做到: +- **短小精悍**:一句话讲完,不要铺垫、解释、设问。直接给核心。 +- **具体可操作**:读者看完知道这个角度怎么用。 +- **差异化**:同一条信息的 3-5 条角度之间不能重复,每个维度提供不同视角。 + +## Instructions + +给定一条内容(推特摘要或播客摘要),生成 3-5 条**不同维度**的延展方向。 +每条方向 = `[角度类型]` + `一句话说明`。 + +### 角度类型表 + +从以下 7 个类型中选 3-5 个(不要全部用同一个类型): + +- `[内容方向]` — 这个信息适合做成什么内容?切入点和叙事角度是什么? +- `[产品启示]` — 对产品功能、体验、定位的启发。 +- `[商业洞察]` — 商业模式、竞争格局、变现逻辑的分析。 +- `[趋势判断]` — 这条信息暗示了什么即将发生的变化? +- `[运营借鉴]` — 可复用到工作中的具体操作方法。 +- `[需求洞察]` — 反映了什么用户需求或行为的变化? +- `[认知刷新]` — 挑战了哪些普遍共识? + +🎯 **面试素材不单独成类**:如果某个角度特别适合面试场景引用,在描述末尾加 `(面试可用)` 标记即可。 + +### 类型选择规则 + +1. 优先选与信息本身最适配的 3-5 个维度(不是每条信息都适合所有类型) +2. 如果用户 profile 中有 `role`,该角色对应的类型至少要出现 1 条: + - `content` → 优先 `[内容方向]` + - `product` → 优先 `[产品启示]` + - `operations` → 优先 `[运营借鉴]` + - `pm` → 优先 `[产品启示]` + `[商业洞察]` + - `transition` → 优先 `[认知刷新]` + - `investment` → 优先 `[商业洞察]` + `[趋势判断]` +3. 即使有优先类型,**也要保留 2-3 个其他类型**——让用户看到多维度的可能性 + +### 输出格式 + +**中文模式:** +``` +📌 延展方向: +[角度类型] 一句话,直接给核心。 +[角度类型] 一句话,直接给核心。 +[角度类型] 一句话,直接给核心。 +``` + +**英文模式:** +``` +📌 Angle directions: +[angle type] One sentence, straight to the point. +[angle type] One sentence, straight to the point. +[angle type] One sentence, straight to the point. +``` + +### 示例 + +输入:Box CEO Aaron Levie 认为 AI Agent 将重塑企业软件采购... + +输出: +``` +📌 延展方向: +[内容方向] 切入点:"企业买的不是软件,是结果"——传统 SaaS 和 Agent 按结果付费的对比,适合短视频口播。 +[商业洞察] SaaS "按席位收费"正在被"按结果收费"挑战,这个定价范式转变值得国内 SaaS 行业追踪。 +[需求洞察] 用户需求从"我要一个工具"变成了"我要这件事被搞定"——产品定义需要重新思考。 +[产品启示] 产品设计的核心从"功能完整"转向"结果可靠"。你的 AI 产品怎么定义"交付"?(面试可用) +[认知刷新] "AI Agent 不是取代 SaaS,而是让 SaaS 从工具变成服务"——这个认知反转本身就是好内容。 +``` diff --git a/scripts/prepare-digest.js b/scripts/prepare-digest.js index b85d0e404..474032c9f 100755 --- a/scripts/prepare-digest.js +++ b/scripts/prepare-digest.js @@ -36,6 +36,7 @@ const PROMPT_FILES = [ 'summarize-tweets.md', 'summarize-blogs.md', 'digest-intro.md', + 'generate-angles.md', 'translate.md' ]; @@ -129,7 +130,8 @@ async function main() { config: { language: config.language || 'en', frequency: config.frequency || 'daily', - delivery: config.delivery || { method: 'stdout' } + delivery: config.delivery || { method: 'stdout' }, + userProfile: config.userProfile || null }, // Content to remix