pulse
Compare original and translation side by side
🇺🇸
Original
English🇨🇳
Translation
ChinesePulse — Multi-Source Recency Research
Pulse — 多源时效性研究
Portability: Works in both Claude Code CLI and Claude.ai. The optional X/Twitter phase requires browser automation and is skipped automatically if unavailable.
A recency-oriented research skill that synthesizes what people are saying about a topic across Reddit, Hacker News, the open web, and (optionally) X/Twitter — within a configurable time window. Output is a single coherent briefing with citations, engagement signals, and cross-platform pattern analysis. The skill captures the current conversation, not the canonical reference.
可移植性:支持在Claude Code CLI和Claude.ai中运行。可选的X/Twitter环节需要浏览器自动化能力,若不可用则会自动跳过。
这是一款面向时效性的研究Skill,可综合Reddit、Hacker News、公开网页及(可选)X/Twitter平台上用户对某一话题的讨论内容,时间窗口可配置。输出为一份连贯的综合简报,包含引用来源、互动信号和跨平台模式分析。该Skill聚焦于当前讨论动态,而非权威参考内容。
Invocation
调用方式
Explicit trigger phrases:
- "pulse on [topic]"
- "what's happening with [topic]"
- "what are people saying about [topic]"
- "current conversation about [topic]"
- "take the pulse of [topic]"
- "trending: [topic]"
- "find me info on [topic]"
Also covers: competitor research with recency flavor, trend discovery, tool comparisons, audience sentiment analysis.
明确触发短语:
- "pulse on [话题]"
- "what's happening with [话题]"
- "what are people saying about [话题]"
- "current conversation about [话题]"
- "take the pulse of [话题]"
- "trending: [话题]"
- "find me info on [话题]"
还适用于:带时效性的竞品调研、趋势发现、工具对比、受众情感分析。
Agent Integrity Rules (Research-Pack Convention)
Agent 完整性规则(研究包约定)
The following rules apply throughout the run. They are inherited from the research-pack convention and locked down by PR #657's cross-skill consistency audit.
- Execution discipline. Phases 1–3 run in parallel (Reddit + HN + Web are independent). Within each phase, sequential calls only. 1 q/sec rate limit per platform. Confirm response received before next call within the same phase.
- Source discipline. Cite only sources returned by this session's tool calls. Training knowledge is labeled and excluded from primary findings count.
[Background — not from search] - Three-count tracking. Queries sent / sources received (shown) / sources cited. Surfaced in the audit log inline in the synthesis section. Use for the deterministic count.
scripts/citation_tracker.py - Retry policy. On failure → wait 3s → retry once → log. After 3 consecutive failures across all sources: stop, alert user, share what was collected. Never deliver an empty file.
- Plan-tier detection. Reddit + HN are unauthenticated public JSON APIs (rate-limited per IP, not per plan). Surface rate-limit signals from response headers when available; degrade gracefully otherwise.
See for the canon and for the rate-limit rationale.
references/research_pack_conventions.mdreferences/parallel_execution_discipline.md以下规则在运行全程适用,继承自研究包约定,并通过PR #657的跨Skill一致性审核锁定。
- 执行规范:第1-3阶段并行运行(Reddit + HN + 网页彼此独立)。每个阶段内仅按顺序调用接口。每个平台每秒最多1次查询。在同一阶段内,需确认收到响应后再发起下一次调用。
- 来源规范:仅引用本次会话工具调用返回的来源。训练知识需标记为,且不计入主要发现来源数量。
[Background — not from search] - 三项计数追踪:已发送查询数 / 已接收来源数(显示) / 已引用来源数。在综合分析部分的审核日志中展示。使用进行确定性计数。
scripts/citation_tracker.py - 重试策略:调用失败 → 等待3秒 → 重试1次 → 记录日志。若所有来源连续失败3次:停止操作,告知用户,并分享已收集到的内容。绝不返回空文件。
- 方案层级检测:Reddit + HN 使用无需认证的公开JSON API(按IP限制速率,而非按方案)。若响应头中包含速率限制信号则展示;否则优雅降级。
详见中的标准约定,以及中的速率限制依据。
references/research_pack_conventions.mdreferences/parallel_execution_discipline.mdPhase 0: Grill-Me Intake (2–4 forcing questions, one at a time)
阶段0:强制信息采集(2-4个问题,逐个提问)
Dependency-ordered. Each question carries explicit "why I'm asking". Stop condition: max 4.
按依赖顺序提问。每个问题都会明确说明「提问原因」。停止条件:最多4个问题。
Q1 (root) — Topic Specificity
Q1(核心)—— 话题明确性
What's the topic? State it in 1–2 sentences — be specific. "AI" or "tech" will get you a vague survey; "self-hosted LLM deployment for small teams" or "Claude Code adoption among enterprise engineering orgs" will get you a useful answer.Why I'm asking: Specificity dictates search quality. Vague topics produce vague briefings. If your topic is broad, I'd rather narrow it now than spend a search budget on noise.
Refuse mush. If the user says "AI", push back once: "What about AI — adoption, safety, capability, regulation, or comparison? Pick an angle." If the user still won't narrow after one push-back, deliver with the explicit "vague topic — survey level, not depth" caveat.
话题是什么?用1-2句话说明,请尽量具体。如果只说“AI”或“科技”,会得到一份宽泛的概览;而“面向小团队的自托管LLM部署”或“企业工程组织对Claude Code的采用情况”则会得到有用的结果。提问原因:话题的明确性决定了搜索质量。模糊的话题会产生模糊的简报。如果你的话题范围较广,我宁愿现在就缩小范围,也不愿把搜索预算浪费在无效信息上。
拒绝模糊表述。如果用户只说“AI”,需追问一次:“关于AI的哪方面——落地应用、安全、能力、监管还是竞品对比?请选择一个角度。”如果用户仍不愿缩小范围,需在交付结果时明确标注「话题模糊——仅为概览级别,无深度分析」的提示。
Q2 (depends on Q1) — Angle
Q2(依赖Q1)—— 分析角度
What angle matters most? Pick one:
- Trend — what's accelerating or decelerating
- Sentiment — what people feel about it
- Problems — pain points and complaints
- Opportunities — gaps and unmet needs
- Comparison — how it stacks up against alternatives
Why I'm asking: The angle dictates which sources weight more (Reddit for sentiment, HN for technical critique, Web for trend coverage) and how I rank the synthesis.
Forcing choice. Recommended default: trend, unless the topic obviously calls for a different angle.
哪个分析角度最重要?请选择一项:
- 趋势——哪些内容在加速或放缓
- 情感——人们对此的看法
- 问题——痛点和抱怨
- 机遇——空白和未满足的需求
- 对比——与同类方案的优劣比较
提问原因:分析角度决定了各来源的权重(Reddit适合情感分析,HN适合技术点评,网页适合趋势覆盖)以及综合分析的排序方式。
强制选择。推荐默认选项:趋势,除非话题明显适合其他角度。
Q3 (always) — Time Window
Q3(必问)—— 时间窗口
Time window: 7 / 14 / 30 / 60 / 90 days? Default is 30.Why I'm asking: 7 days catches breaking conversation; 90 days catches sustained narrative shift. Pick based on how recent the news matters.
Forcing choice with default.
时间窗口:7/14/30/60/90天?默认30天。提问原因:7天可捕捉突发讨论;90天可捕捉长期叙事变化。请根据你对信息时效性的需求选择。
提供默认选项的强制选择。
Q4 (depends on Q1) — Platform Scope
Q4(依赖Q1)—— 平台范围
Any platform to skip? By default I'll cover Reddit + Hacker News + open web, plus X/Twitter if browser automation is available. Skip any you don't care about.Why I'm asking: Skipping a platform saves search budget. Reddit dominates sentiment; HN dominates technical critique; Web dominates breadth; X dominates breaking conversation. Skip what doesn't fit your angle.
Asked only if Q1 + Q2 suggest some platforms are clearly off-target (e.g., consumer sentiment topic → HN less useful). Otherwise default to "all platforms".
Stop condition: After Q4 (or earlier with dependency skips), commit and start Phase 1. Max 4 questions, never bundle.
是否需要跳过某些平台?默认我会覆盖Reddit + Hacker News + 公开网页,若浏览器自动化可用则额外包含X/Twitter。请跳过你不关心的平台。提问原因:跳过平台可节省搜索预算。Reddit在情感分析方面占主导;HN在技术点评方面占主导;网页覆盖范围最广;X在突发讨论方面占主导。请跳过不符合你分析角度的平台。
仅当Q1 + Q2表明某些平台明显不相关时才提问(例如,消费者情感话题 → HN用处不大)。否则默认选择「所有平台」。
停止条件:完成Q4后(或因依赖关系提前结束),确认信息并启动第1阶段。最多4个问题,绝不批量提问。
Pre-flight
预准备
Before any phase fires:
- Compute the time window with . Get back the Unix timestamp for
scripts/time_window_calculator.py --window <Nd>(HN) and thecreated_at_i>parameter (t=) for Reddit.hour|day|week|month|year|all - Generate the output slug with . Detect if
scripts/topic_slug_generator.py --topic "<topic>" --date $(date +%Y-%m-%d)already exists; if yes, append${RESEARCH_DIR}/pulse/<slug>-<date>.mdsuffix or warn user.-v2 - Start the three-count audit log with . This file at
scripts/citation_tracker.py --action start --session pulse-<date>-<slug>persists across the run.~/.pulse_sessions/<session>.json
在启动任何阶段前:
- 计算时间窗口:使用。获取用于HN的
scripts/time_window_calculator.py --window <Nd>Unix时间戳,以及用于Reddit的created_at_i>参数(t=)。hour|day|week|month|year|all - 生成输出文件名:使用。检测
scripts/topic_slug_generator.py --topic "<topic>" --date $(date +%Y-%m-%d)是否已存在;若存在,则添加${RESEARCH_DIR}/pulse/<slug>-<date>.md后缀或提醒用户。-v2 - 启动三项计数审核日志:使用。该文件存储于
scripts/citation_tracker.py --action start --session pulse-<date>-<slug>,在运行全程持续更新。~/.pulse_sessions/<session>.json
Phase 1: Reddit (parallel with HN + Web)
阶段1:Reddit(与HN + 网页并行)
API: (unauthenticated, public JSON).
reddit.com/search.jsonQueries (sequential within Reddit, 1 q/sec):
- — top posts in window
sort=top&t=<window>&q=<topic> - — new posts in window (catches breaking signal)
sort=new&t=<window>&q=<topic> - For each of the top 3–5 posts by score: fetch the comments JSON () for the top 10–20 comments.
<post-url>.json?limit=top
Headers / rate limits. Reddit rate-limits by IP, not plan. Throttle to 1 q/sec. If response has or returns 429, wait 3s, retry once. If still failing, fall back to subreddit-restricted search () or .
X-Ratelimit-Remaining: 0r/<topic-subreddit>/search.json?raw_json=1Record each query: .
Record received counts: .
citation_tracker.py --action record_sent --session NAME --query "..."citation_tracker.py --action record_received --session NAME --count NAPI:(无需认证的公开JSON接口)。
reddit.com/search.json查询(Reddit内部按顺序执行,每秒1次):
- — 时间窗口内的热门帖子
sort=top&t=<window>&q=<topic> - — 时间窗口内的最新帖子(捕捉突发信号)
sort=new&t=<window>&q=<topic> - 针对得分最高的3-5个帖子:获取评论JSON(),提取前10-20条评论。
<post-url>.json?limit=top
请求头 / 速率限制:Reddit按IP限制速率,而非按方案。限制为每秒1次查询。若响应包含或返回429状态码,等待3秒后重试1次。若仍失败,则退回到子版块限制搜索()或使用参数。
X-Ratelimit-Remaining: 0r/<topic-subreddit>/search.json?raw_json=1记录每个查询:。
记录已接收来源数:。
citation_tracker.py --action record_sent --session NAME --query "..."citation_tracker.py --action record_received --session NAME --count NPhase 2: Hacker News (parallel with Reddit + Web)
阶段2:Hacker News(与Reddit + 网页并行)
API: Algolia HN search ().
hn.algolia.com/api/v1/Queries (sequential within HN, 1 q/sec):
- — stories in window
search?query=<topic>&numericFilters=created_at_i><timestamp>&tags=story - — comments in window (catches discussion signal)
search?query=<topic>&numericFilters=created_at_i><timestamp>&tags=comment
Failure handling. If HN returns empty: broaden the query (remove uncommon nouns); if still empty, drop the timestamp filter as last resort and label results "outside window".
HN bias note. HN skews technical / builder. Surface this in synthesis: "HN's voice is implementation-oriented; consumer sentiment will be under-represented here."
API:Algolia HN搜索接口()。
hn.algolia.com/api/v1/查询(HN内部按顺序执行,每秒1次):
- — 时间窗口内的故事帖
search?query=<topic>&numericFilters=created_at_i><timestamp>&tags=story - — 时间窗口内的评论(捕捉讨论信号)
search?query=<topic>&numericFilters=created_at_i><timestamp>&tags=comment
失败处理:若HN返回空结果:放宽查询条件(删除不常见名词);若仍为空,则作为最后手段移除时间戳过滤器,并标记结果为「超出时间窗口」。
HN偏向说明:HN用户群体偏向技术/开发者。在综合分析中需注明:「HN的观点以实现为导向;消费者情感在此处代表性不足。」
Phase 3: Web Search (parallel with Reddit + HN)
阶段3:网页搜索(与Reddit + HN并行)
Tools: Available web search + fetch (e.g., + ).
WebSearchWebFetchQuery strategy (sequential within Web, 1 q/sec):
- Trusted publishers —
"<topic>" site:nytimes.com OR site:wsj.com OR site:wired.com OR site:theverge.com OR site:techcrunch.com after:<date> - Recent reviews — or
"<topic>" review <year>"<topic>" "honest review" after:<date> - Honest-opinion sources —
"<topic>" problems OR complaints OR "worth it" after:<date>
Fetch the top 3–5 URLs per query. Truncate at the body, skip cookie/nav markup.
Citation discipline. Every claim in the Web section must trace to a fetched URL. Do NOT cite from snippets alone; fetch first.
工具:可用的网页搜索 + 抓取工具(例如 + )。
WebSearchWebFetch查询策略(网页搜索内部按顺序执行,每秒1次):
- 可信发布商 —
"<topic>" site:nytimes.com OR site:wsj.com OR site:wired.com OR site:theverge.com OR site:techcrunch.com after:<date> - 近期评测 — 或
"<topic>" review <year>"<topic>" "honest review" after:<date> - 真实观点来源 —
"<topic>" problems OR complaints OR "worth it" after:<date>
每个查询抓取前3-5个URL。仅保留正文内容,跳过Cookie/导航标记。
引用规范:网页部分的每一个结论都必须追溯到已抓取的URL。不得仅引用摘要;必须先抓取内容。
Phase 4: X/Twitter (sequential, optional)
阶段4:X/Twitter(按顺序执行,可选)
Run last. Reasons:
- Most likely to fail / require browser automation
- X content overlaps significantly with Reddit/HN — so it adds delta, not primary signal
Interface (in priority order):
- Grok if available in the harness
- X API if authenticated
- Browser automation if the harness supports it (Claude Code CLI with or similar)
playwright - Skip with note if none of the above available
Documented behavior:
If Phase 4 is skipped: include the section headerwith body## X/Twitter. Do NOT pretend to have data.Skipped — [reason: no browser automation / no Grok / no X API]
最后运行。原因:
- 最可能失败 / 需要浏览器自动化
- X的内容与Reddit/HN高度重叠——仅提供增量信号,而非核心信号
接口优先级:
- 若环境中可用则使用Grok
- 若已认证则使用X API
- 若环境支持则使用浏览器自动化(如带的Claude Code CLI)
playwright - 若以上均不可用则跳过并注明原因
文档化行为:
若跳过阶段4:添加章节标题,正文为## X/Twitter。不得伪造数据。Skipped — [原因: 无浏览器自动化 / 无Grok / 无X API]
Synthesis (Cross-Platform Patterns)
综合分析(跨平台模式)
After Phases 1–4 complete (or Phase 4 skipped), produce the synthesis:
- Consensus signals — points where 3+ platforms agree (highest confidence). Tag each with cited source URLs.
- Controversy signals — points where platforms disagree. Note who says what.
- Pain points — recurring complaints across sources (esp. Reddit + Web).
- Excitement signals — recurring enthusiasm (esp. HN + X if available).
- Emerging trends — first-time mentions in newest posts but absent from older ones (compare vs
sort=new).sort=top - Gaps — what's notably absent that you'd expect to find.
For each pattern, cite the source URLs that support it. Use per citation.
citation_tracker.py --action record_cited --session NAME --url "..."See for detection heuristics.
references/cross_platform_synthesis.md完成阶段1-4后(或跳过阶段4),生成综合分析:
- 共识信号——3个及以上平台达成一致的观点(可信度最高)。每个观点标记引用来源URL。
- 争议信号——平台间观点不一致的地方。注明各方观点。
- 痛点——各来源中反复出现的抱怨(尤其Reddit + 网页)。
- 积极信号——各来源中反复出现的正面反馈(尤其HN + 若可用的X)。
- 新兴趋势——最新帖子中首次提及但旧帖中未出现的内容(对比与
sort=new结果)。sort=top - 空白点——明显缺失的、你预期会存在的内容。
针对每个模式,引用支持该模式的来源URL。每次引用使用。
citation_tracker.py --action record_cited --session NAME --url "..."详见中的检测启发式规则。
references/cross_platform_synthesis.mdOutput
输出
Save to file AND paste in chat:
File: (path from ).
${RESEARCH_DIR}/pulse/<topic-slug>-<YYYY-MM-DD>.mdtopic_slug_generator.pyFormat:
markdown
undefined保存到文件并粘贴到聊天中:
文件路径:(路径由生成)。
${RESEARCH_DIR}/pulse/<topic-slug>-<YYYY-MM-DD>.mdtopic_slug_generator.py格式:
markdown
undefined[TOPIC] — Pulse (Last [N] Days)
[TOPIC] — Pulse (Last [N] Days)
Generated: [DATE] | Angle: [Q2 choice]
Generated: [DATE] | Angle: [Q2 choice]
TL;DR
TL;DR
[2-3 sentences max]
[2-3 sentences max]
Top Posts
Top Posts
- [Title] (r/sub) — [score, comments] — [summary] — [URL]
- [Title] (r/sub) — [score, comments] — [summary] — [URL]
What Reddit Is Saying
What Reddit Is Saying
[Narrative paragraph]
[Narrative paragraph]
Hacker News
Hacker News
Notable Stories
Notable Stories
- [Title] — [points, comments] — [summary] — [URL]
- [Title] — [points, comments] — [summary] — [URL]
What HN Is Saying
What HN Is Saying
[Narrative paragraph; note HN's technical/builder bias]
[Narrative paragraph; note HN's technical/builder bias]
Web
Web
Key Sources
Key Sources
- [Title] ([Publication]) — [takeaway] — [URL]
- [Title] ([Publication]) — [takeaway] — [URL]
What the Web Is Saying
What the Web Is Saying
[Narrative paragraph]
[Narrative paragraph]
X/Twitter (if available)
X/Twitter (if available)
[Cleaned response, with handles/references preserved]
[Or: "Skipped — [reason]"]
[Cleaned response, with handles/references preserved]
[Or: "Skipped — [reason]"]
Cross-Platform Patterns
Cross-Platform Patterns
[Highest-confidence signals across sources]
[Highest-confidence signals across sources]
Key Takeaways
Key Takeaways
- [3-5 bullets]
- [3-5 bullets]
Content Angles (if applicable)
Content Angles (if applicable)
[2-3 specific angles supported by the data]
Audit: Queries sent: N (Reddit: a, HN: b, Web: c, X: d|skipped).
Sources received: M. Sources cited: K. Training knowledge: 0 ([Background] excluded from count).
undefined[2-3 specific angles supported by the data]
Audit: Queries sent: N (Reddit: a, HN: b, Web: c, X: d|skipped).
Sources received: M. Sources cited: K. Training knowledge: 0 ([Background] excluded from count).
undefinedError Handling
错误处理
| Failure | Behavior |
|---|---|
| Topic is too vague (Q1) | Refuse to start. Re-ask Q1 once with examples. After 1 push-back, deliver with "vague topic" caveat. |
| Reddit blocks / rate-limits | Try |
| HN returns empty | Broaden query, drop timestamp filter as last resort, label results "outside window". |
| Web search returns nothing useful | Note in output; don't fabricate sources. |
| Browser automation unavailable | Skip Phase 4 with documented note. |
| WebFetch times out | Use what loaded, mark the source as "truncated". |
| 3 consecutive failures across sources | Stop. Return what was collected with explicit "stopped early" note. Do NOT deliver empty file. |
| All sources fail | Return error with diagnostic info. Do NOT deliver empty file. |
| 故障场景 | 处理行为 |
|---|---|
| 话题过于模糊(Q1) | 拒绝启动。重新提问Q1一次并给出示例。若用户仍不明确,交付结果时标注「话题模糊」提示。 |
| Reddit拦截 / 速率限制 | 尝试使用 |
| HN返回空结果 | 放宽查询条件,最后手段是移除时间戳过滤器,并标记结果为「超出时间窗口」。 |
| 网页搜索无有效结果 | 在输出中注明;不得伪造来源。 |
| 浏览器自动化不可用 | 跳过阶段4并记录原因。 |
| WebFetch超时 | 使用已加载的内容,标记该来源为「已截断」。 |
| 所有来源连续失败3次 | 停止操作。返回已收集内容并明确标注「提前终止」提示。绝不返回空文件。 |
| 所有来源均失败 | 返回错误及诊断信息。绝不返回空文件。 |
Tooling
工具集
| Script | Role |
|---|---|
| Compute Unix timestamps + Reddit |
| JSON-backed three-count audit log (sent / received / cited) at |
| Filesystem-safe slug + duplicate-date detection for output paths. |
| 脚本 | 作用 |
|---|---|
| 根据时间窗口字符串( |
| 基于JSON的三项计数审核日志(已发送 / 已接收 / 已引用),存储于 |
| 生成文件系统安全的文件名 + 重复日期检测,用于输出路径。 |
References
参考文档
- — Agent Integrity Rules canon (7+ sources: Google SRE, Reddit API docs, Algolia HN docs, exponential-backoff literature, citation discipline)
references/research_pack_conventions.md - — consensus / controversy / pain detection across platforms (7+ sources)
references/cross_platform_synthesis.md - — 1 q/sec rationale + plan-tier signals (7+ sources)
references/parallel_execution_discipline.md
- — Agent完整性规则标准(参考7+来源:Google SRE、Reddit API文档、Algolia HN文档、指数退避文献、引用规范)
references/research_pack_conventions.md - — 跨平台共识/争议/痛点检测规则(参考7+来源)
references/cross_platform_synthesis.md - — 每秒1次查询的依据 + 方案层级信号(参考7+来源)
references/parallel_execution_discipline.md
Anti-Patterns To Reject
需拒绝的反模式
- Starting any search before the user commits to topic specificity (Q1)
- Batching intake questions instead of one at a time
- Hardcoded URLs that won't survive API changes (note format, explain may evolve)
- Specific person / brand references in the skill body
- Tight coupling to one X/Twitter interface
- Missing fallback behavior on source failure
- "Just use [specific tool]" without explaining what the tool does
- Citing training knowledge in the cited count
- Fabricating sources to fill out a section
Version: 1.0.0
Source spec:
Build pattern: Path B (direct conversion). Re-grill with if drift between spec and implementation surfaces.
megaprompts/01-pulse-megaprompt.md/cs:grill-with-docs- 在用户明确话题范围(Q1)前启动任何搜索
- 批量提问信息采集问题而非逐个提问
- 使用硬编码URL,无法适应API变更(需注明格式可能会演进)
- Skill主体中包含特定人物/品牌引用
- 与单一X/Twitter接口强耦合
- 缺失来源失败时的 fallback 行为
- 仅说「使用[特定工具]」而不解释工具功能
- 将训练知识计入引用来源数
- 伪造来源以填充章节内容
版本:1.0.0
来源规范:
构建模式:路径B(直接转换)。若规范与实现出现偏差,使用重新审核。
megaprompts/01-pulse-megaprompt.md/cs:grill-with-docs