[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6C27DMGZ4D6ERNHSVA8H8RJ":3,"skill-same:01M6C27DMGZ4D6ERNHSVA8H8RJ":107},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":15,"categories":16,"keywords":25,"publishedAt":45,"linkOnly":46,"markdownContent":47,"markdownBody":48,"frontMatter":49,"refName":55,"commitSha":56,"skillDirectory":57,"forksCount":13,"repositoryHtmlUrl":58,"repositoryHomepageUrl":6,"ownerHtmlUrl":59,"ownerBlogUrl":6,"ownerDescription":6,"updatedAt":60,"install":61,"resources":74},"01M6C27DMGZ4D6ERNHSVA8H8RJ","pulse",null,"Multi-source recency research skill that takes the pulse of any topic across Reddit, Hacker News, the open web, and optionally X\u002FTwitter within a configurable recent window (default 30 days). Forcing intake clarifies topic specificity, angle (trend\u002Fsentiment\u002Fproblems\u002Fopportunities\u002Fcomparison), time window, and platform scope before searching. Returns a synthesized briefing with citations, engagement metrics, and cross-platform pattern analysis. Use when the user requests multi-source recency intelligence on a topic (e.g., '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]'), and for competitor research, trend discovery, tool comparisons, and audience sentiment analysis.","mne20114-hash\u002Fgest35bi","mne20114-hash","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F224168109?v=4","01M6C0JCR7334CZ39YWTZXX2NG","01M6C0JCWN0NBWMQTW1CPG2Z4G",0,"MIT","https:\u002F\u002Fgithub.com\u002Fmne20114-hash\u002Fgest35bi\u002Fblob\u002Fmain\u002Fclaude-skills\u002Fresearch\u002Fpulse\u002Fskills\u002Fpulse\u002FSKILL.md",[17,22],{"categoryNo":18,"categoryName":19,"taxonomyType":20,"taxonomyTypeDesc":21},"01JBSEEDCAT000000000000021","资料检索与研究","SCENARIO","使用场景",{"categoryNo":23,"categoryName":24,"taxonomyType":20,"taxonomyTypeDesc":21},"01JBSEEDCAT000000000000023","Skill与智能体开发",[5,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44],"discovery","use","user","find","twitter","Rules","direct","tool","open","research","analysis","integrity","Citations","sentiment","audit","intake","sentiment analysis","pr","web","2026-11-10 10:12:30",false,"---\nname: pulse\ndescription: \"Multi-source recency research skill that takes the pulse of any topic across Reddit, Hacker News, the open web, and optionally X\u002FTwitter within a configurable recent window (default 30 days). Forcing intake clarifies topic specificity, angle (trend\u002Fsentiment\u002Fproblems\u002Fopportunities\u002Fcomparison), time window, and platform scope before searching. Returns a synthesized briefing with citations, engagement metrics, and cross-platform pattern analysis. Use when the user requests multi-source recency intelligence on a topic (e.g., '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]'), and for competitor research, trend discovery, tool comparisons, and audience sentiment analysis.\"\nlicense: MIT\nmetadata:\n  source_spec: \"megaprompts\u002F01-pulse-megaprompt.md\"\n  build_pattern: \"Path B (direct conversion)\"\n  research_pack_convention: \"Agent Integrity Rules block preserved verbatim per PR #657 audit\"\n  version: 1.0.0\n---\n\n# Pulse — Multi-Source Recency Research\n\n> **Portability:** Works in Claude Code CLI and Claude.ai. Phase 4 accepts a local X\u002FTwitter search export before trying a live interface.\n\nA recency-oriented research skill that synthesizes what people are saying about a topic across Reddit, Hacker News, the open web, and (optionally) X\u002FTwitter — 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.\n\n## Invocation\n\n**Explicit trigger phrases:**\n- \"pulse on [topic]\"\n- \"what's happening with [topic]\"\n- \"what are people saying about [topic]\"\n- \"current conversation about [topic]\"\n- \"take the pulse of [topic]\"\n- \"trending: [topic]\"\n- \"find me info on [topic]\"\n\nAlso covers: competitor research with recency flavor, trend discovery, tool comparisons, audience sentiment analysis.\n\n## Agent Integrity Rules (Research-Pack Convention)\n\nThe 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.\n\n- **Execution discipline.** Phases 1–3 run in parallel (Reddit + HN + Web are independent). Within each phase, sequential calls only. **1 q\u002Fsec rate limit per platform.** Confirm response received before next call within the same phase.\n- **Source discipline.** Cite only sources returned by **this session's tool calls.** Training knowledge is labeled `[Background — not from search]` and excluded from primary findings count.\n- **Three-count tracking.** Queries sent \u002F sources received (shown) \u002F sources cited. Surfaced in the audit log inline in the synthesis section. Use `scripts\u002Fcitation_tracker.py` for the deterministic count.\n- **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.\n- **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.\n\nSee `references\u002Fresearch_pack_conventions.md` for the canon and `references\u002Fparallel_execution_discipline.md` for the rate-limit rationale.\n\n## Phase 0: Grill-Me Intake (2–4 forcing questions, one at a time)\n\nDependency-ordered. Each question carries explicit \"why I'm asking\". Stop condition: max 4.\n\n### Q1 (root) — Topic Specificity\n\n> **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.**\n>\n> *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.\n\n**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.\n\n### Q2 (depends on Q1) — Angle\n\n> **What angle matters most? Pick one:**\n>\n> 1. **Trend** — what's accelerating or decelerating\n> 2. **Sentiment** — what people feel about it\n> 3. **Problems** — pain points and complaints\n> 4. **Opportunities** — gaps and unmet needs\n> 5. **Comparison** — how it stacks up against alternatives\n>\n> *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.\n\nForcing choice. **Recommended default:** trend, unless the topic obviously calls for a different angle.\n\n### Q3 (always) — Time Window\n\n> **Time window: 7 \u002F 14 \u002F 30 \u002F 60 \u002F 90 days? Default is 30.**\n>\n> *Why I'm asking:* 7 days catches breaking conversation; 90 days catches sustained narrative shift. Pick based on how recent the news matters.\n\nForcing choice with default.\n\n### Q4 (depends on Q1) — Platform Scope\n\n> **Any platform to skip? By default I'll cover Reddit + Hacker News + open web, plus X\u002FTwitter if browser automation is available. Skip any you don't care about.**\n>\n> *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.\n\nAsked only if Q1 + Q2 suggest some platforms are clearly off-target (e.g., consumer sentiment topic → HN less useful). Otherwise default to \"all platforms\".\n\n**Stop condition:** After Q4 (or earlier with dependency skips), commit and start Phase 1. Max 4 questions, never bundle.\n\n## Pre-flight\n\nBefore any phase fires:\n\n1. **Compute the time window** with `scripts\u002Ftime_window_calculator.py --window \u003CNd>`. Get back the Unix timestamp for `created_at_i>` (HN) and the `t=` parameter (`hour|day|week|month|year|all`) for Reddit.\n2. **Generate the output slug** with `scripts\u002Ftopic_slug_generator.py --topic \"\u003Ctopic>\" --date $(date +%Y-%m-%d)`. Detect if `${RESEARCH_DIR}\u002Fpulse\u002F\u003Cslug>-\u003Cdate>.md` already exists; if yes, append `-v2` suffix or warn user.\n3. **Start the three-count audit log** with `scripts\u002Fcitation_tracker.py --action start --session pulse-\u003Cdate>-\u003Cslug>`. This file at `~\u002F.pulse_sessions\u002F\u003Csession>.json` persists across the run.\n\n## Phase 1: Reddit (parallel with HN + Web)\n\n**API:** `reddit.com\u002Fsearch.json` (unauthenticated, public JSON).\n\n**Queries (sequential within Reddit, 1 q\u002Fsec):**\n1. `sort=top&t=\u003Cwindow>&q=\u003Ctopic>` — top posts in window\n2. `sort=new&t=\u003Cwindow>&q=\u003Ctopic>` — new posts in window (catches breaking signal)\n3. For each of the top 3–5 posts by score: fetch the comments JSON (`\u003Cpost-url>.json?limit=top`) for the top 10–20 comments.\n\n**Headers \u002F rate limits.** Reddit rate-limits by IP, not plan. Throttle to 1 q\u002Fsec. If response has `X-Ratelimit-Remaining: 0` or returns 429, wait 3s, retry once. If still failing, fall back to subreddit-restricted search (`r\u002F\u003Ctopic-subreddit>\u002Fsearch.json`) or `?raw_json=1`.\n\n**Record each query:** `citation_tracker.py --action record_sent --session NAME --query \"...\"`.\n**Record received counts:** `citation_tracker.py --action record_received --session NAME --count N`.\n\n## Phase 2: Hacker News (parallel with Reddit + Web)\n\n**API:** Algolia HN search (`hn.algolia.com\u002Fapi\u002Fv1\u002F`).\n\n**Queries (sequential within HN, 1 q\u002Fsec):**\n1. `search?query=\u003Ctopic>&numericFilters=created_at_i>\u003Ctimestamp>&tags=story` — stories in window\n2. `search?query=\u003Ctopic>&numericFilters=created_at_i>\u003Ctimestamp>&tags=comment` — comments in window (catches discussion signal)\n\n**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\".\n\n**HN bias note.** HN skews technical \u002F builder. Surface this in synthesis: \"HN's voice is implementation-oriented; consumer sentiment will be under-represented here.\"\n\n## Phase 3: Web Search (parallel with Reddit + HN)\n\n**Tools:** Available web search + fetch (e.g., `WebSearch` + `WebFetch`).\n\n**Query strategy (sequential within Web, 1 q\u002Fsec):**\n1. **Trusted publishers** — `\"\u003Ctopic>\" site:nytimes.com OR site:wsj.com OR site:wired.com OR site:theverge.com OR site:techcrunch.com after:\u003Cdate>`\n2. **Recent reviews** — `\"\u003Ctopic>\" review \u003Cyear>` or `\"\u003Ctopic>\" \"honest review\" after:\u003Cdate>`\n3. **Honest-opinion sources** — `\"\u003Ctopic>\" problems OR complaints OR \"worth it\" after:\u003Cdate>`\n\nFetch the top 3–5 URLs per query. Truncate at the body, skip cookie\u002Fnav markup.\n\n**Citation discipline.** Every claim in the Web section must trace to a fetched URL. Do NOT cite from snippets alone; fetch first.\n\n## Phase 4: X\u002FTwitter (sequential, optional)\n\nRun last. Reasons:\n- Most likely to fail \u002F require browser automation\n- X content overlaps significantly with Reddit\u002FHN — so it adds delta, not primary signal\n\n**Interface (in priority order):**\n1. **User-provided JSON export.** Import it before any live request:\n   ```bash\n   python3 scripts\u002Fcitation_tracker.py \\\n     --action import_sources \\\n     --session NAME \\\n     --input \u002Fpath\u002Fto\u002Fx-search.json \\\n     --platform x \\\n     --since 2026-07-01T00:00:00Z \\\n     --until 2026-08-01T00:00:00Z\n   ```\n   The importer accepts Xquik Tweet Search, X API v2, and generic JSON exports.\n   It normalizes legacy and snake-case fields, joins X API `includes.users`,\n   filters the requested window, and deduplicates by Tweet ID. It makes no\n   network calls and requires no API key. The audit stores the filename and\n   SHA-256 digest, not the user's absolute path.\n2. **Grok** if available in the harness.\n3. **X API** if authenticated.\n4. **Browser automation** if the harness supports it.\n5. **Skip with note** if none of the above are available.\n\n**Documented behavior:**\n> If Phase 4 is skipped: include the section header `## X\u002FTwitter` with body `Skipped — [reason: no browser automation \u002F no Grok \u002F no X API]`. Do NOT pretend to have data.\n\n## Synthesis (Cross-Platform Patterns)\n\nAfter Phases 1–4 complete (or Phase 4 skipped), produce the synthesis:\n\n1. **Consensus signals** — points where 3+ platforms agree (highest confidence). Tag each with cited source URLs.\n2. **Controversy signals** — points where platforms disagree. Note who says what.\n3. **Pain points** — recurring complaints across sources (esp. Reddit + Web).\n4. **Excitement signals** — recurring enthusiasm (esp. HN + X if available).\n5. **Emerging trends** — first-time mentions in newest posts but absent from older ones (compare `sort=new` vs `sort=top`).\n6. **Gaps** — what's notably absent that you'd expect to find.\n\nFor each pattern, **cite the source URLs** that support it. Use `citation_tracker.py --action record_cited --session NAME --url \"...\"` per citation.\n\nSee `references\u002Fcross_platform_synthesis.md` for detection heuristics.\n\n## Output\n\nSave to file AND paste in chat:\n\n**File:** `${RESEARCH_DIR}\u002Fpulse\u002F\u003Ctopic-slug>-\u003CYYYY-MM-DD>.md` (path from `topic_slug_generator.py`).\n\n**Format:**\n\n```markdown\n# [TOPIC] — Pulse (Last [N] Days)\n*Generated: [DATE] | Angle: [Q2 choice]*\n\n## TL;DR\n[2-3 sentences max]\n\n## Reddit\n### Top Posts\n- **[Title]** (r\u002Fsub) — [score, comments] — [summary] — [URL]\n### What Reddit Is Saying\n[Narrative paragraph]\n\n## Hacker News\n### Notable Stories\n- **[Title]** — [points, comments] — [summary] — [URL]\n### What HN Is Saying\n[Narrative paragraph; note HN's technical\u002Fbuilder bias]\n\n## Web\n### Key Sources\n- **[Title]** ([Publication]) — [takeaway] — [URL]\n### What the Web Is Saying\n[Narrative paragraph]\n\n## X\u002FTwitter (if available)\n[Cleaned response, with handles\u002Freferences preserved]\n[Or: \"Skipped — [reason]\"]\n\n## Cross-Platform Patterns\n[Highest-confidence signals across sources]\n\n## Key Takeaways\n- [3-5 bullets]\n\n## Content Angles (if applicable)\n[2-3 specific angles supported by the data]\n\n---\n*Audit:* Queries sent: N (Reddit: a, HN: b, Web: c, X: d|skipped).\nSources received: M. Sources cited: K. Training knowledge: 0 ([Background] excluded from count).\n```\n\n## Error Handling\n\n| Failure | Behavior |\n|---|---|\n| Topic is too vague (Q1) | Refuse to start. Re-ask Q1 once with examples. After 1 push-back, deliver with \"vague topic\" caveat. |\n| Reddit blocks \u002F rate-limits | Try `?raw_json=1` or fall back to subreddit-restricted search. Honor 3s-retry. |\n| HN returns empty | Broaden query, drop timestamp filter as last resort, label results \"outside window\". |\n| Web search returns nothing useful | Note in output; don't fabricate sources. |\n| Browser automation unavailable | Import a supplied export. Otherwise skip Phase 4 with a note. |\n| Local X export is invalid | Stop Phase 4. Report the parse error. Do not guess missing records. |\n| WebFetch times out | Use what loaded, mark the source as \"truncated\". |\n| 3 consecutive failures across sources | Stop. Return what was collected with explicit \"stopped early\" note. Do NOT deliver empty file. |\n| All sources fail | Return error with diagnostic info. Do NOT deliver empty file. |\n\n## Tooling\n\n| Script | Role |\n|---|---|\n| `scripts\u002Ftime_window_calculator.py` | Compute Unix timestamps + Reddit `t=` parameter from window string (`30d`, `7d`, etc.). Deterministic from `datetime.now()`. |\n| `scripts\u002Fcitation_tracker.py` | Three-count audit log plus local X export normalization and deduplication. |\n| `scripts\u002Ftopic_slug_generator.py` | Filesystem-safe slug + duplicate-date detection for output paths. |\n\n## References\n\n- `references\u002Fresearch_pack_conventions.md` — Agent Integrity Rules canon (7+ sources: Google SRE, Reddit API docs, Algolia HN docs, exponential-backoff literature, citation discipline)\n- `references\u002Fcross_platform_synthesis.md` — consensus \u002F controversy \u002F pain detection across platforms (7+ sources)\n- `references\u002Fparallel_execution_discipline.md` — 1 q\u002Fsec rationale + plan-tier signals (7+ sources)\n\n## Anti-Patterns To Reject\n\n- Starting any search before the user commits to topic specificity (Q1)\n- Batching intake questions instead of one at a time\n- Hardcoded URLs that won't survive API changes (note format, explain may evolve)\n- Irrelevant person or brand references in the skill body\n- Tight coupling to one X\u002FTwitter interface\n- Counting duplicate Tweet IDs or repeated citation URLs as separate sources\n- Missing fallback behavior on source failure\n- \"Just use [specific tool]\" without explaining what the tool does\n- Citing training knowledge in the cited count\n- Fabricating sources to fill out a section\n\n---\n\n**Version:** 1.0.0\n**Source spec:** `megaprompts\u002F01-pulse-megaprompt.md` (maintainer-local draft spec — gitignored, not present in the public repository)\n**Build pattern:** Path B (direct conversion). Re-grill with `\u002Fcs:grill-with-docs` if drift between spec and implementation surfaces.\n","# Pulse — Multi-Source Recency Research\n\n> **Portability:** Works in Claude Code CLI and Claude.ai. Phase 4 accepts a local X\u002FTwitter search export before trying a live interface.\n\nA recency-oriented research skill that synthesizes what people are saying about a topic across Reddit, Hacker News, the open web, and (optionally) X\u002FTwitter — 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.\n\n## Invocation\n\n**Explicit trigger phrases:**\n- \"pulse on [topic]\"\n- \"what's happening with [topic]\"\n- \"what are people saying about [topic]\"\n- \"current conversation about [topic]\"\n- \"take the pulse of [topic]\"\n- \"trending: [topic]\"\n- \"find me info on [topic]\"\n\nAlso covers: competitor research with recency flavor, trend discovery, tool comparisons, audience sentiment analysis.\n\n## Agent Integrity Rules (Research-Pack Convention)\n\nThe 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.\n\n- **Execution discipline.** Phases 1–3 run in parallel (Reddit + HN + Web are independent). Within each phase, sequential calls only. **1 q\u002Fsec rate limit per platform.** Confirm response received before next call within the same phase.\n- **Source discipline.** Cite only sources returned by **this session's tool calls.** Training knowledge is labeled `[Background — not from search]` and excluded from primary findings count.\n- **Three-count tracking.** Queries sent \u002F sources received (shown) \u002F sources cited. Surfaced in the audit log inline in the synthesis section. Use `scripts\u002Fcitation_tracker.py` for the deterministic count.\n- **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.\n- **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.\n\nSee `references\u002Fresearch_pack_conventions.md` for the canon and `references\u002Fparallel_execution_discipline.md` for the rate-limit rationale.\n\n## Phase 0: Grill-Me Intake (2–4 forcing questions, one at a time)\n\nDependency-ordered. Each question carries explicit \"why I'm asking\". Stop condition: max 4.\n\n### Q1 (root) — Topic Specificity\n\n> **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.**\n>\n> *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.\n\n**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.\n\n### Q2 (depends on Q1) — Angle\n\n> **What angle matters most? Pick one:**\n>\n> 1. **Trend** — what's accelerating or decelerating\n> 2. **Sentiment** — what people feel about it\n> 3. **Problems** — pain points and complaints\n> 4. **Opportunities** — gaps and unmet needs\n> 5. **Comparison** — how it stacks up against alternatives\n>\n> *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.\n\nForcing choice. **Recommended default:** trend, unless the topic obviously calls for a different angle.\n\n### Q3 (always) — Time Window\n\n> **Time window: 7 \u002F 14 \u002F 30 \u002F 60 \u002F 90 days? Default is 30.**\n>\n> *Why I'm asking:* 7 days catches breaking conversation; 90 days catches sustained narrative shift. Pick based on how recent the news matters.\n\nForcing choice with default.\n\n### Q4 (depends on Q1) — Platform Scope\n\n> **Any platform to skip? By default I'll cover Reddit + Hacker News + open web, plus X\u002FTwitter if browser automation is available. Skip any you don't care about.**\n>\n> *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.\n\nAsked only if Q1 + Q2 suggest some platforms are clearly off-target (e.g., consumer sentiment topic → HN less useful). Otherwise default to \"all platforms\".\n\n**Stop condition:** After Q4 (or earlier with dependency skips), commit and start Phase 1. Max 4 questions, never bundle.\n\n## Pre-flight\n\nBefore any phase fires:\n\n1. **Compute the time window** with `scripts\u002Ftime_window_calculator.py --window \u003CNd>`. Get back the Unix timestamp for `created_at_i>` (HN) and the `t=` parameter (`hour|day|week|month|year|all`) for Reddit.\n2. **Generate the output slug** with `scripts\u002Ftopic_slug_generator.py --topic \"\u003Ctopic>\" --date $(date +%Y-%m-%d)`. Detect if `${RESEARCH_DIR}\u002Fpulse\u002F\u003Cslug>-\u003Cdate>.md` already exists; if yes, append `-v2` suffix or warn user.\n3. **Start the three-count audit log** with `scripts\u002Fcitation_tracker.py --action start --session pulse-\u003Cdate>-\u003Cslug>`. This file at `~\u002F.pulse_sessions\u002F\u003Csession>.json` persists across the run.\n\n## Phase 1: Reddit (parallel with HN + Web)\n\n**API:** `reddit.com\u002Fsearch.json` (unauthenticated, public JSON).\n\n**Queries (sequential within Reddit, 1 q\u002Fsec):**\n1. `sort=top&t=\u003Cwindow>&q=\u003Ctopic>` — top posts in window\n2. `sort=new&t=\u003Cwindow>&q=\u003Ctopic>` — new posts in window (catches breaking signal)\n3. For each of the top 3–5 posts by score: fetch the comments JSON (`\u003Cpost-url>.json?limit=top`) for the top 10–20 comments.\n\n**Headers \u002F rate limits.** Reddit rate-limits by IP, not plan. Throttle to 1 q\u002Fsec. If response has `X-Ratelimit-Remaining: 0` or returns 429, wait 3s, retry once. If still failing, fall back to subreddit-restricted search (`r\u002F\u003Ctopic-subreddit>\u002Fsearch.json`) or `?raw_json=1`.\n\n**Record each query:** `citation_tracker.py --action record_sent --session NAME --query \"...\"`.\n**Record received counts:** `citation_tracker.py --action record_received --session NAME --count N`.\n\n## Phase 2: Hacker News (parallel with Reddit + Web)\n\n**API:** Algolia HN search (`hn.algolia.com\u002Fapi\u002Fv1\u002F`).\n\n**Queries (sequential within HN, 1 q\u002Fsec):**\n1. `search?query=\u003Ctopic>&numericFilters=created_at_i>\u003Ctimestamp>&tags=story` — stories in window\n2. `search?query=\u003Ctopic>&numericFilters=created_at_i>\u003Ctimestamp>&tags=comment` — comments in window (catches discussion signal)\n\n**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\".\n\n**HN bias note.** HN skews technical \u002F builder. Surface this in synthesis: \"HN's voice is implementation-oriented; consumer sentiment will be under-represented here.\"\n\n## Phase 3: Web Search (parallel with Reddit + HN)\n\n**Tools:** Available web search + fetch (e.g., `WebSearch` + `WebFetch`).\n\n**Query strategy (sequential within Web, 1 q\u002Fsec):**\n1. **Trusted publishers** — `\"\u003Ctopic>\" site:nytimes.com OR site:wsj.com OR site:wired.com OR site:theverge.com OR site:techcrunch.com after:\u003Cdate>`\n2. **Recent reviews** — `\"\u003Ctopic>\" review \u003Cyear>` or `\"\u003Ctopic>\" \"honest review\" after:\u003Cdate>`\n3. **Honest-opinion sources** — `\"\u003Ctopic>\" problems OR complaints OR \"worth it\" after:\u003Cdate>`\n\nFetch the top 3–5 URLs per query. Truncate at the body, skip cookie\u002Fnav markup.\n\n**Citation discipline.** Every claim in the Web section must trace to a fetched URL. Do NOT cite from snippets alone; fetch first.\n\n## Phase 4: X\u002FTwitter (sequential, optional)\n\nRun last. Reasons:\n- Most likely to fail \u002F require browser automation\n- X content overlaps significantly with Reddit\u002FHN — so it adds delta, not primary signal\n\n**Interface (in priority order):**\n1. **User-provided JSON export.** Import it before any live request:\n   ```bash\n   python3 scripts\u002Fcitation_tracker.py \\\n     --action import_sources \\\n     --session NAME \\\n     --input \u002Fpath\u002Fto\u002Fx-search.json \\\n     --platform x \\\n     --since 2026-07-01T00:00:00Z \\\n     --until 2026-08-01T00:00:00Z\n   ```\n   The importer accepts Xquik Tweet Search, X API v2, and generic JSON exports.\n   It normalizes legacy and snake-case fields, joins X API `includes.users`,\n   filters the requested window, and deduplicates by Tweet ID. It makes no\n   network calls and requires no API key. The audit stores the filename and\n   SHA-256 digest, not the user's absolute path.\n2. **Grok** if available in the harness.\n3. **X API** if authenticated.\n4. **Browser automation** if the harness supports it.\n5. **Skip with note** if none of the above are available.\n\n**Documented behavior:**\n> If Phase 4 is skipped: include the section header `## X\u002FTwitter` with body `Skipped — [reason: no browser automation \u002F no Grok \u002F no X API]`. Do NOT pretend to have data.\n\n## Synthesis (Cross-Platform Patterns)\n\nAfter Phases 1–4 complete (or Phase 4 skipped), produce the synthesis:\n\n1. **Consensus signals** — points where 3+ platforms agree (highest confidence). Tag each with cited source URLs.\n2. **Controversy signals** — points where platforms disagree. Note who says what.\n3. **Pain points** — recurring complaints across sources (esp. Reddit + Web).\n4. **Excitement signals** — recurring enthusiasm (esp. HN + X if available).\n5. **Emerging trends** — first-time mentions in newest posts but absent from older ones (compare `sort=new` vs `sort=top`).\n6. **Gaps** — what's notably absent that you'd expect to find.\n\nFor each pattern, **cite the source URLs** that support it. Use `citation_tracker.py --action record_cited --session NAME --url \"...\"` per citation.\n\nSee `references\u002Fcross_platform_synthesis.md` for detection heuristics.\n\n## Output\n\nSave to file AND paste in chat:\n\n**File:** `${RESEARCH_DIR}\u002Fpulse\u002F\u003Ctopic-slug>-\u003CYYYY-MM-DD>.md` (path from `topic_slug_generator.py`).\n\n**Format:**\n\n```markdown\n# [TOPIC] — Pulse (Last [N] Days)\n*Generated: [DATE] | Angle: [Q2 choice]*\n\n## TL;DR\n[2-3 sentences max]\n\n## Reddit\n### Top Posts\n- **[Title]** (r\u002Fsub) — [score, comments] — [summary] — [URL]\n### What Reddit Is Saying\n[Narrative paragraph]\n\n## Hacker News\n### Notable Stories\n- **[Title]** — [points, comments] — [summary] — [URL]\n### What HN Is Saying\n[Narrative paragraph; note HN's technical\u002Fbuilder bias]\n\n## Web\n### Key Sources\n- **[Title]** ([Publication]) — [takeaway] — [URL]\n### What the Web Is Saying\n[Narrative paragraph]\n\n## X\u002FTwitter (if available)\n[Cleaned response, with handles\u002Freferences preserved]\n[Or: \"Skipped — [reason]\"]\n\n## Cross-Platform Patterns\n[Highest-confidence signals across sources]\n\n## Key Takeaways\n- [3-5 bullets]\n\n## Content Angles (if applicable)\n[2-3 specific angles supported by the data]\n\n---\n*Audit:* Queries sent: N (Reddit: a, HN: b, Web: c, X: d|skipped).\nSources received: M. Sources cited: K. Training knowledge: 0 ([Background] excluded from count).\n```\n\n## Error Handling\n\n| Failure | Behavior |\n|---|---|\n| Topic is too vague (Q1) | Refuse to start. Re-ask Q1 once with examples. After 1 push-back, deliver with \"vague topic\" caveat. |\n| Reddit blocks \u002F rate-limits | Try `?raw_json=1` or fall back to subreddit-restricted search. Honor 3s-retry. |\n| HN returns empty | Broaden query, drop timestamp filter as last resort, label results \"outside window\". |\n| Web search returns nothing useful | Note in output; don't fabricate sources. |\n| Browser automation unavailable | Import a supplied export. Otherwise skip Phase 4 with a note. |\n| Local X export is invalid | Stop Phase 4. Report the parse error. Do not guess missing records. |\n| WebFetch times out | Use what loaded, mark the source as \"truncated\". |\n| 3 consecutive failures across sources | Stop. Return what was collected with explicit \"stopped early\" note. Do NOT deliver empty file. |\n| All sources fail | Return error with diagnostic info. Do NOT deliver empty file. |\n\n## Tooling\n\n| Script | Role |\n|---|---|\n| `scripts\u002Ftime_window_calculator.py` | Compute Unix timestamps + Reddit `t=` parameter from window string (`30d`, `7d`, etc.). Deterministic from `datetime.now()`. |\n| `scripts\u002Fcitation_tracker.py` | Three-count audit log plus local X export normalization and deduplication. |\n| `scripts\u002Ftopic_slug_generator.py` | Filesystem-safe slug + duplicate-date detection for output paths. |\n\n## References\n\n- `references\u002Fresearch_pack_conventions.md` — Agent Integrity Rules canon (7+ sources: Google SRE, Reddit API docs, Algolia HN docs, exponential-backoff literature, citation discipline)\n- `references\u002Fcross_platform_synthesis.md` — consensus \u002F controversy \u002F pain detection across platforms (7+ sources)\n- `references\u002Fparallel_execution_discipline.md` — 1 q\u002Fsec rationale + plan-tier signals (7+ sources)\n\n## Anti-Patterns To Reject\n\n- Starting any search before the user commits to topic specificity (Q1)\n- Batching intake questions instead of one at a time\n- Hardcoded URLs that won't survive API changes (note format, explain may evolve)\n- Irrelevant person or brand references in the skill body\n- Tight coupling to one X\u002FTwitter interface\n- Counting duplicate Tweet IDs or repeated citation URLs as separate sources\n- Missing fallback behavior on source failure\n- \"Just use [specific tool]\" without explaining what the tool does\n- Citing training knowledge in the cited count\n- Fabricating sources to fill out a section\n\n---\n\n**Version:** 1.0.0\n**Source spec:** `megaprompts\u002F01-pulse-megaprompt.md` (maintainer-local draft spec — gitignored, not present in the public repository)\n**Build pattern:** Path B (direct conversion). Re-grill with `\u002Fcs:grill-with-docs` if drift between spec and implementation surfaces.\n",{"name":5,"license":14,"metadata":50,"description":7},{"version":51,"source_spec":52,"build_pattern":53,"research_pack_convention":54},"1.0.0","megaprompts\u002F01-pulse-megaprompt.md","Path B (direct conversion)","Agent Integrity Rules block preserved verbatim per PR #657 audit","main","510dd2917e051cc953dc55f56fd6ef442aa01b38","claude-skills\u002Fresearch\u002Fpulse\u002Fskills\u002Fpulse","https:\u002F\u002Fgithub.com\u002Fmne20114-hash\u002Fgest35bi","https:\u002F\u002Fgithub.com\u002Fmne20114-hash","2026-10-28 07:50:31",{"source":8,"skillName":5,"commands":62,"prompt":72,"zipAvailable":73},[63,66,69],{"tool":64,"command":65},"npx","npx skills add mne20114-hash\u002Fgest35bi --skill pulse",{"tool":67,"command":68},"bunx","bunx skills add mne20114-hash\u002Fgest35bi --skill pulse",{"tool":70,"command":71},"pnpm","pnpm dlx skills add mne20114-hash\u002Fgest35bi --skill pulse","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fmne20114-hash\u002Fgest35bi\u002Fblob\u002Fmain\u002Fclaude-skills\u002Fresearch\u002Fpulse\u002Fskills\u002Fpulse\u002FSKILL.md",true,[75,81,85,89,93,99,103],{"path":76,"resourceType":77,"resourceTypeDesc":78,"sizeBytes":79,"sourceHtmlUrl":80},"references\u002Fboundaries.md","REFERENCE","参考文档",500,"https:\u002F\u002Fgithub.com\u002FNharu\u002Fcc-cmds\u002Fblob\u002Fmaster\u002Ftests\u002Ffixtures\u002Flint-notify-env-name\u002FFAIL-unregistered-switch\u002Fskills\u002Fautopilot\u002Freferences\u002Fboundaries.md",{"path":82,"resourceType":77,"resourceTypeDesc":78,"sizeBytes":83,"sourceHtmlUrl":84},"references\u002Fcross_platform_synthesis.md",9058,"https:\u002F\u002Fgithub.com\u002Fmne20114-hash\u002Fgest35bi\u002Fblob\u002Fmain\u002Fclaude-skills\u002Fresearch\u002Fpulse\u002Fskills\u002Fpulse\u002Freferences\u002Fcross_platform_synthesis.md",{"path":86,"resourceType":77,"resourceTypeDesc":78,"sizeBytes":87,"sourceHtmlUrl":88},"references\u002Fparallel_execution_discipline.md",8601,"https:\u002F\u002Fgithub.com\u002Fmne20114-hash\u002Fgest35bi\u002Fblob\u002Fmain\u002Fclaude-skills\u002Fresearch\u002Fpulse\u002Fskills\u002Fpulse\u002Freferences\u002Fparallel_execution_discipline.md",{"path":90,"resourceType":77,"resourceTypeDesc":78,"sizeBytes":91,"sourceHtmlUrl":92},"references\u002Fresearch_pack_conventions.md",8651,"https:\u002F\u002Fgithub.com\u002Fmne20114-hash\u002Fgest35bi\u002Fblob\u002Fmain\u002Fclaude-skills\u002Fresearch\u002Fpulse\u002Fskills\u002Fpulse\u002Freferences\u002Fresearch_pack_conventions.md",{"path":94,"resourceType":95,"resourceTypeDesc":96,"sizeBytes":97,"sourceHtmlUrl":98},"scripts\u002Fcitation_tracker.py","SCRIPT","脚本",21747,"https:\u002F\u002Fgithub.com\u002Fmne20114-hash\u002Fgest35bi\u002Fblob\u002Fmain\u002Fclaude-skills\u002Fresearch\u002Fpulse\u002Fskills\u002Fpulse\u002Fscripts\u002Fcitation_tracker.py",{"path":100,"resourceType":95,"resourceTypeDesc":96,"sizeBytes":101,"sourceHtmlUrl":102},"scripts\u002Ftime_window_calculator.py",5028,"https:\u002F\u002Fgithub.com\u002Fmne20114-hash\u002Fgest35bi\u002Fblob\u002Fmain\u002Fclaude-skills\u002Fresearch\u002Fpulse\u002Fskills\u002Fpulse\u002Fscripts\u002Ftime_window_calculator.py",{"path":104,"resourceType":95,"resourceTypeDesc":96,"sizeBytes":105,"sourceHtmlUrl":106},"scripts\u002Ftopic_slug_generator.py",4970,"https:\u002F\u002Fgithub.com\u002Fmne20114-hash\u002Fgest35bi\u002Fblob\u002Fmain\u002Fclaude-skills\u002Fresearch\u002Fpulse\u002Fskills\u002Fpulse\u002Fscripts\u002Ftopic_slug_generator.py",[108,135,158,183,203,218],{"skillNo":109,"name":110,"nameZh":6,"description":111,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":112,"categories":113,"keywords":123,"publishedAt":45},"01M6C27N3H0F9RGG2KASPASH04","syllabus","Generates a curated supplementary reading list from any course syllabus using Consensus academic search. Grill-me intake (syllabus input format + course audience + year range) plus a grouping forcing-options checkpoint before any search runs — so the reading list matches the course's level and recency need. Parses the syllabus to extract topics and learning outcomes, searches Consensus for recent peer-reviewed papers per topic, and produces a professionally formatted .docx with clickable Consensus links, plain-language summaries calibrated to audience level, and Bloom-higher-order discussion questions tied to course learning goals. Use when the user uploads a syllabus, course outline, or curriculum document and wants supplementary readings (e.g., 'create a reading list from this syllabus', 'find recent papers for my course') — even casual mentions with a syllabus attached should trigger this skill.","https:\u002F\u002Fgithub.com\u002Fmne20114-hash\u002Fgest35bi\u002Fblob\u002Fmain\u002Fclaude-skills\u002Fresearch\u002Fsyllabus\u002Fskills\u002Fsyllabus\u002FSKILL.md",[114,117,118],{"categoryNo":115,"categoryName":116,"taxonomyType":20,"taxonomyTypeDesc":21},"01JBSEEDCAT000000000000002","文档处理",{"categoryNo":23,"categoryName":24,"taxonomyType":20,"taxonomyTypeDesc":21},{"categoryNo":119,"categoryName":120,"taxonomyType":121,"taxonomyTypeDesc":122},"01JBSEEDCAT000000000000034","行政与办公人员","PROFESSION","适用职业",[110,124,43,125,41,126,40,37,127,128,129,130,32,31,29,131,132,133,27,134],"docx","create","search","checkpoint","learning","js","format","consensus","list","extract","outcomes",{"skillNo":136,"name":137,"nameZh":6,"description":138,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":139,"categories":140,"keywords":146,"publishedAt":45},"01M6C279M59X635VPD6Y9R616J","patent","Patent prior-art and landscape intelligence skill — not generic patent help. Commits to one of five sub-use-cases via forcing intake (novelty search \u002F freedom-to-operate \u002F competitive landscape \u002F acquisition diligence \u002F litigation prior-art) before any search runs. Searches Google Patents, Espacenet, USPTO, and optionally Lens.org for citation-graph signals. Output is an editable Word document (.docx) with verdict, ranked closest art (claim-text extracted), CPC-class-aware landscape, family-resolved hits, geographic coverage, FTO flags where applicable, strategy recommendations, and full audit log. Use when the user asks for patent searching or analysis (e.g., 'prior art search for [invention]', 'freedom to operate analysis for [product]'). Produces search signal, not legal advice — always recommends consulting a patent attorney before filing or licensing decisions. Trademark, copyright, and trade-secret questions are out of scope.","https:\u002F\u002Fgithub.com\u002Fmne20114-hash\u002Fgest35bi\u002Fblob\u002Fmain\u002Fclaude-skills\u002Fresearch\u002Fpatent\u002Fskills\u002Fpatent\u002FSKILL.md",[141,142,143],{"categoryNo":115,"categoryName":116,"taxonomyType":20,"taxonomyTypeDesc":21},{"categoryNo":23,"categoryName":24,"taxonomyType":20,"taxonomyTypeDesc":21},{"categoryNo":144,"categoryName":145,"taxonomyType":121,"taxonomyTypeDesc":122},"01JBSEEDCAT000000000000037","律师与法务",[137,124,43,147,148,149,41,126,40,36,150,151,152,31,153,154,155,156,27,157],"competitive landscape","routing","product","commits","Word","text","acquisition","decisions","strategy","coverage","advice",{"skillNo":159,"name":160,"nameZh":6,"description":161,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":162,"categories":163,"keywords":168,"publishedAt":45},"01M6C275RZWNRB3CCB14QQM7ES","notebooklm","Browser automation skill for controlling Google's NotebookLM. Use when the user wants anything done in NotebookLM (e.g., 'open NotebookLM', 'check my [name] notebook', 'ask my notebook about X', 'add [source] to NotebookLM', 'generate a Video Overview from my notebook', 'use NotebookLM Studio'). Handles reading and querying notebooks, adding sources (URLs, text, files, YouTube links, synthesized content), generating Studio outputs (Audio\u002FVideo Overviews, Mind Maps, Reports incl. Briefing Doc\u002FStudy Guide\u002FFAQ, Flashcards, Quiz, slide decks, infographics — discover the exact set from the live Studio panel; the UI evolves fast), and creating new notebooks. Requires browser automation environment — fails gracefully when unavailable.","https:\u002F\u002Fgithub.com\u002Fmne20114-hash\u002Fgest35bi\u002Fblob\u002Fmain\u002Fclaude-skills\u002Fresearch\u002Fnotebooklm\u002Fskills\u002Fnotebooklm\u002FSKILL.md",[164,167],{"categoryNo":165,"categoryName":166,"taxonomyType":20,"taxonomyTypeDesc":21},"01JBSEEDCAT000000000000016","图像与多媒体",{"categoryNo":23,"categoryName":24,"taxonomyType":20,"taxonomyTypeDesc":21},[160,169,170,35,171,172,173,174,175,176,177,178,34,152,32,179,180,181,182,27],"google","browser automation","automation","generate","browser","fast","SET","doc","Video","Audio","check","ask","environment","overview",{"skillNo":184,"name":185,"nameZh":6,"description":186,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":187,"categories":188,"keywords":193,"publishedAt":45},"01M6C2717B0QDJ3Y4PJP77BMW5","litreview","Academic literature orientation skill that searches papers via free keyless APIs (PubMed E-utilities + OpenAlex) by default — with the Consensus MCP as an optional enhancement lane when connected — builds a strategic search plan using PICO (default) or SPIDER \u002F Decomposition \u002F hybrid as fallbacks, and synthesizes findings into a formatted Word (.docx) research guide. Grill-me intake (research question specificity + framework hint + tentative depth) before the recon search; a second forcing checkpoint after Phase 2 confirms framework + sub-areas + depth before searches consume budget. Configurable depth (5\u002F10\u002F20 queries) controls coverage vs. speed. Output is a 'launching pad' — an orientation guide that lets a researcher dive in confidently, not a finished review. Use when the user starts literature-oriented research (e.g., 'litreview on [topic]', 'literature review on [topic]', 'I'm starting a literature review on X', 'I'm writing a paper on X', 'help me research X', 'I'm doing research on X', 'can you help me research X'). Do NOT use for single one-off paper searches wanting a quick list — that's a plain PubMed\u002FOpenAlex (or Consensus) query.","https:\u002F\u002Fgithub.com\u002Fmne20114-hash\u002Fgest35bi\u002Fblob\u002Fmain\u002Fclaude-skills\u002Fresearch\u002Flitreview\u002Fskills\u002Flitreview\u002FSKILL.md",[189,190,191,192],{"categoryNo":115,"categoryName":116,"taxonomyType":20,"taxonomyTypeDesc":21},{"categoryNo":18,"categoryName":19,"taxonomyType":20,"taxonomyTypeDesc":21},{"categoryNo":23,"categoryName":24,"taxonomyType":20,"taxonomyTypeDesc":21},{"categoryNo":119,"categoryName":120,"taxonomyType":121,"taxonomyTypeDesc":122},[185,124,194,195,196,43,41,126,197,198,199,127,200,151,201,31,131,202,156,27],"MCP","writing","review","lane","keyless","literature review","plan","researcher","question",{"skillNo":204,"name":205,"nameZh":6,"description":206,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":207,"categories":208,"keywords":213,"publishedAt":45},"01M6C26X5G3WDVWQ40Y16ZS19F","grants","NIH grant research skill for clinical researchers. Grill-me intake (research idea + career stage + preliminary data + environment + submission posture + known institute targets) locks down the funding strategy before any search runs. Runs a 5-facet Consensus positioning analysis (with draft Significance\u002FInnovation language), maps the research to the right NIH institutes and study sections via RePORTER, finds NOSIs and funded overlap, and produces an editable Word document (.docx) with budget\u002Fscope-aware mechanism recommendations, submission timelines, and a mandatory program officer recommendation. Use when the user asks about research funding or makes any grant-related request (e.g., 'grants for [topic]', 'find grants for my research idea', 'what grants match my research', 'help me find NIH funding', 'grant opportunities for my research'). NIH-only scope — non-NIH funders (PCORI, DOD CDMRP, VA, foundations) are out of scope and flagged at intake.","https:\u002F\u002Fgithub.com\u002Fmne20114-hash\u002Fgest35bi\u002Fblob\u002Fmain\u002Fclaude-skills\u002Fresearch\u002Fgrants\u002Fskills\u002Fgrants\u002FSKILL.md",[209,210,211,212],{"categoryNo":115,"categoryName":116,"taxonomyType":20,"taxonomyTypeDesc":21},{"categoryNo":18,"categoryName":19,"taxonomyType":20,"taxonomyTypeDesc":21},{"categoryNo":23,"categoryName":24,"taxonomyType":20,"taxonomyTypeDesc":21},{"categoryNo":119,"categoryName":120,"taxonomyType":121,"taxonomyTypeDesc":122},[205,124,35,43,214,41,126,40,215,216,37,36,151,31,29,131,155,181,27,217],"help","data","Budget","innovation",{"skillNo":219,"name":220,"nameZh":6,"description":221,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":222,"categories":223,"keywords":228,"publishedAt":45},"01M6C26SDXA3MT5XZEDVWZZDWR","dossier","Decision-grade entity research skill — produces a hypothesis-tested dossier on a specific company, person, nonprofit, or government org, not a generic profile. Forcing intake makes the user state their hypothesis upfront (what they already believe and want to verify or disprove) so the dossier tests it rather than confirms it. Output is an editable Word document (.docx) with verdict on the hypothesis, identity facts, 12-month activity timeline, network and reputation signals, red flags, conversation hooks tied to specific findings, and source-provenance audit log. Uses WebSearch + WebFetch + free APIs (SEC EDGAR, GitHub, ProPublica) as workhorses; optional BYOK MCPs enhance coverage. Use when the user asks for background research, diligence, or meeting prep on a specific entity (e.g., 'prep me for a meeting with [person\u002Fcompany]', 'due diligence on [company]'). Honors sensitivity exclusions for journalism + personal-vetting contexts.","https:\u002F\u002Fgithub.com\u002Fmne20114-hash\u002Fgest35bi\u002Fblob\u002Fmain\u002Fclaude-skills\u002Fresearch\u002Fdossier\u002Fskills\u002Fdossier\u002FSKILL.md",[224,225,226,227],{"categoryNo":115,"categoryName":116,"taxonomyType":20,"taxonomyTypeDesc":21},{"categoryNo":18,"categoryName":19,"taxonomyType":20,"taxonomyTypeDesc":21},{"categoryNo":23,"categoryName":24,"taxonomyType":20,"taxonomyTypeDesc":21},{"categoryNo":119,"categoryName":120,"taxonomyType":121,"taxonomyTypeDesc":122},[220,124,229,230,35,43,231,41,40,232,233,234,151,235,31,156,236,237,238,27],"testing","github","state","meeting prep","provenance","verify","decision","webfetch","reputation","byok"]