Agent skill

What Happened

by kunchenguid in kunchenguid/whathappened

Briefs you on what just happened around a named topic and maps public opinion on X, using the host's native X search tools only.

MITAuto-check passedProductivity & Automation

Install What Happened

skills CLI
$ npx skills add kunchenguid/whathappened --skill whathappened -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install kunchenguid/whathappened whathappened --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/kunchenguid/whathappened.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/whathappened .claude/skills/whathappened && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
whathappened
GitHub stars
231
Token cost
~2.1k tokens
SKILL.md length
927 words
Files
3 (incl. references)
Skills in repo
1
Repo updated
First seen
Licence
MIT

At a glance

Briefs you on what just happened around a named topic and maps public opinion on X, using the host's native X search tools only.

  • Works in 8 steps: Parse topic → Optional entity web lookup (0 or 1 call) → X entity grounding → …
  • Getting a quick briefing on what happened with a person, product or launch
  • SKILL.md covers Host requirement, Hard rules, Pipeline and Output template, plus 2 more sections
  • Instructions only: no scripts, shell commands, URLs or credentials in SKILL.md

What it does

When you run /whathappened or ask what is going on around a person, product, launch or event, the skill produces a neutral analyst-style briefing built only from X search results: what happened, and which camps and debates are visible. It needs four native X tools (keyword search, semantic search, thread fetch and user search) and stops with an explanation if the host, such as Grok Build, lacks them, rather than faking a briefing from web search.

Its rules keep the output narrow. At most one web lookup is allowed, only to work out who or what the topic is, and it is reported under gaps. Posts, handles and quotes are never invented, citations use handles and post links where available, and sentiment is framed as conversation in the X sample, not ground truth. The time window adapts and favors the shortest period that still explains the story. A named topic is required, since there is no trending-feed mode, and flags are ignored in this first version. Two reference files cover query patterns and thin or noisy samples.

When your agent uses it

  • Getting a quick briefing on what happened with a person, product or launch
  • Seeing how people on X are reacting to an announcement or controversy
  • Mapping the main camps in a debate around a named topic
  • Checking public opinion on X about a recent event

Example prompts

  • “/whathappened the Notion pricing change”
  • “Brief me on what happened with the latest iOS release and what people on X are saying.”
  • “What is the X reaction to the keynote announcement from yesterday?”

Requirements

  • A host with native X tools, such as Grok Build
  • The x_keyword_search, x_semantic_search, x_thread_fetch and x_user_search tools

Workflow steps

8 steps, taken from the step headings in SKILL.md.

  1. Parse topic
  2. Optional entity web lookup (0 or 1 call)
  3. X entity grounding
  4. Pulse (always first)
  5. Search lattice (parallel)
  6. Thread enrichment
  7. Rank and cluster (in head, lightweight)
  8. Synthesize

What it can do on your machine

Read from SKILL.md and the folder at commit fe9e84b. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    No scripts in the folder and no shell commands in SKILL.md (its code samples are markdown).

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

What Happened loads about 2.1k tokens when it runs, and up to ~3.6k if it reads all its reference files. Until then it costs about 119 tokens; SKILL.md has 927 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~119
When it runs · the whole SKILL.md, loaded when a task matches
~2.1k
With references · SKILL.md plus every file in references/, read only if the agent opens them
~3.6k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from kunchenguid/whathappened at commit fe9e84b, republished under its MIT licence (© kunchenguid). 927 words, ~2,121 tokens.

Download SKILL.mdSave it as .claude/skills/whathappened/SKILL.md (or your agent's skills folder). This skill also uses 2 other files; get the full folder from GitHub.
name
whathappened
description
Brief what just happened on a topic and map public opinion from X (Twitter) only. Adaptive recency window biased to the freshest coherent story. Soft exception: at most one web lookup for entity resolution. Use when the user runs /whathappened, or asks what happened / what's going on / X or Twitter reaction / public opinion on X about a person, product, launch, or event. Grok Build only (requires native X tools). Neutral analyst tone. No discovery mode in v1.
metadata.short-description
X-only adaptive briefing of events + public opinion

/whathappened

You are running the whathappened skill. Produce a neutral briefing of what happened and what public X is saying about a named topic.

This is not generic research. Follow this file top to bottom.

Host requirement

You need these tools:

  • x_keyword_search
  • x_semantic_search
  • x_thread_fetch
  • x_user_search

If they are missing, stop. Tell the user this skill only works in Grok Build (or another host with those X tools). Do not fake an X briefing from web search.

Hard rules

  1. X-first synthesis. All claims about the event and public opinion come from X tool results. Never invent posts, handles, engagement, or quotes.
  2. Soft web exception. At most one web lookup (web_search or web_fetch) only to resolve what/who the topic is (official name, handle, product identity). Do not use web for opinions, sentiment, or "what people think." If you use the web lookup, say so in Gaps.
  3. No discovery. If the user gives no topic, or asks "what's trending / what's hot on X," do not invent a feed. Ask for a topic in one short question.
  4. No flags in v1. Ignore or gently ignore flag-like tokens (--deep, window overrides). Infer window from the pulse (below).
  5. Neutral analyst tone. No hype voice, no dunking, no "the room is screaming." Report camps and debates as observed.
  6. Adaptive window, freshest-first. Do not default to 30 days. Prefer the shortest window that still explains the story.
  7. Opinion is not ground truth. Frame sentiment as public conversation on this X sample.
  8. Citations. Prefer @handle plus post links when available. Use the host's inline post citation render when you have post citation IDs from X tools. Never invent URLs. Never append a trailing dump of unrelated Sources.

Read references/query-patterns.md when building search queries. Read references/failure-modes.md when the sample looks thin, mixed, or noisy.

Pipeline

Step 0 - Parse topic
  • Require a named topic (person, org, product, launch, event, controversy).
  • Strip intent modifiers for search entities (sentiment, drama, takes) but keep them as synthesis focus if the user asked for them.
  • Classify loosely: event | person/org | product/release | debate.
Step 1 - Optional entity web lookup (0 or 1 call)

If the topic is ambiguous or you lack an obvious official handle/name:

  • Make at most one web lookup to resolve identity.
  • Extract: canonical name, official @handle if stated, aliases, event date if the page states one.

If the topic is already clear (e.g. Kimi K3, @sama), skip web.

Step 2 - X entity grounding
  • Use x_user_search for likely official or primary accounts when useful.
  • Build aliases: exact phrase, alternate spellings, product codes, cashtags.
  • Prefer first-party from:handle when you have a confident handle.
Step 3 - Pulse (always first)

Run a cheap Latest keyword search with a short since: window to measure velocity. Example windows to try first:

  • Breaking candidate: last few hours (since:YYYY-MM-DD for today, Latest)
  • If almost empty: widen once (yesterday / last 2 days) before committing mode

Commit a mode and window:

Pulse signalModeDefault window
High volume, rising engagement, clear originBreakinglast 1–6 hours (minutes if still exploding)
Clear same-day event / launch chatterSame-daylast 24–48 hours
Ongoing debate, moderate velocityStorylast 3–7 days
Sparse posts, mostly references to older newsBackgroundlast 14–30 days; still prefer recent posts

State the chosen Window and Mode in the brief. Expand later only if:

  • No agreement on what happened
  • Missing first-party post from the obvious account
  • Debates point at an origin post you have not seen

When ranking, prefer recency over raw likes unless an older post is clearly the origin everyone quotes or replies to - then fetch that thread.

Show full SKILL.md (332 more words)Show less
Step 4 - Search lattice (parallel)

Use multiple lanes. Cap total X tool calls roughly 8–14 for a normal run.

LaneToolGoal
Topx_keyword_search mode=TopHigh-engagement consensus
Latestx_keyword_search mode=Latest + time operatorsFresh narrative
Semanticx_semantic_searchParaphrases and adjacent framing
First-partykeyword from:handle when knownOfficial statement
Debatecontroversy / quote / counter-claim queriesDisagreement surface

Use advanced operators from references/query-patterns.md. Always keep the primary entity in the query. Drop off-entity viral noise.

Step 5 - Thread enrichment

x_thread_fetch the 3–8 highest-signal posts, prioritizing:

  1. Origin / announcement
  2. Official first-party
  3. Highest-engagement summary take
  4. Strongest steelman and strongest criticism
  5. Posts that define a camp split
Step 6 - Rank and cluster (in head, lightweight)

Rough score:

text
score = engagement × freshness_weight × authority_weight × on_entity
  • On-entity: must clearly be about the primary topic (or hard alias).
  • Authority (soft): official accounts, domain experts, primary reporters - never a hard allowlist; do not over-weight bluechecks alone.
  • Clusters: merge posts that make the same claim into one camp bullet.

Discard engagement bait that fails entity grounding.

Step 7 - Synthesize

Emit the brief using the template below. Do not dump raw ranked lists. Include at least 2–3 short attributed quotes from real posts when the sample has usable text.

If the sample is thin, say so. Prefer honest uncertainty over fake consensus.

Output template

Use this structure. Keep headings. No extra blog-style sections.

markdown
# /whathappened: {topic}

**Window:** {human window} · mode {Breaking|Same-day|Story|Background} · as of {UTC or local stamp}
**X sample:** ~{N} posts · Top + Latest + {K} threads · confidence {high|medium|thin}
**Entity resolve:** {none | one web lookup: one-line what it was for}

## What happened
2–5 sentences. Prefer first-party and origin posts. Stick to what X supports.

## Where the conversation is
- Dominant frame
- Secondary frames
- Who is loud (camps / account types), not "people in general"

## Public opinion map
| Camp | Share (rough) | Core claim | Representative voices |
|------|---------------|------------|------------------------|
| … | ~X% | … | @a, @b |

Label shares as qualitative judgment from this sample, not polling.

## The live debates
1. **{title}** - Side A vs Side B; stakes in one line; best evidence posts
2. …

## Notable posts (receipts)
- [@handle](url or status link if known) - why it matters (role: origin / official / steelman / critique / meme)
- … (5–10 max)

## Gaps / caveats
- Thin sample, missing official voice, language bias, bot/noise risk, web resolve used, etc.
- What would change this read if true
Formatting notes
  • Use plain hyphens -, not em dashes.
  • Neutral wording: "many posts claim", "a common critique is", not "everyone knows".
  • Rough camp percentages must be marked as rough sample judgment.
  • If confidence is thin, shrink the opinion map and expand Gaps.
  • End after Gaps. No trailing invitation spam unless the user asked follow-ups.

Pre-flight checklist (before first tool call)

  • Topic present (else ask)
  • X tools available (else refuse)
  • Web budget remaining: 0 or 1 resolve-only
  • No discovery request

Post-synthesis checklist (before send)

  • Window + mode stated
  • Every quoted line attributable to a fetched post
  • No web-derived "sentiment"
  • Camps grounded in multiple posts when confidence is high
  • Receipts are real and on-entity
  • Gaps honest about sample limits

© kunchenguid, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 2 other files (references) in skills/whathappened of kunchenguid/whathappened.

  • SKILL.md
  • references/failure-modes.md
  • references/query-patterns.md

Open the folder on GitHubat commit fe9e84b

Compare with similar skills

What Happened next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

What Happened compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
What Happened this skillkunchenguid/whathappened231—~2.1kAutomated safety check: PassMIT
Agent ReachPanniantong/Agent-Reach94k—~1.4kAutomated safety check: PassMIT
Modsearchliustack/modsearch612—~2.6kAutomated safety check: NotesMIT
Agent ReachEdisonChenAI/agent-reach1101 repos~1.3kAutomated safety check: PassMIT
AIHOT AI News LookupKKKKhazix/khazix-skills21k—~461Automated safety check: PassMIT
X Search via xAIcode-yeongyu/oh-my-openagent70k—~1.4kAutomated safety check: PassCustom licence

Similar skills

  • Agent Reach

    Panniantong/Agent-Reach

    Routes web research and platform lookups across 16 sites, including Twitter, Reddit, YouTube, Bilibili, Xiaohongshu and GitHub, through one command-line tool.

    94k GitHub stars~1.4k tokensUpdated yesterday
    Productivity & AutomationAuto-check passed
  • Modsearch

    liustack/modsearch

    Plug-in web search, X (Twitter) search, and page fetch for models without native web access.

    612 GitHub stars~2.6k tokensUpdated 5 days ago
    Productivity & AutomationAuto-check: notes
  • Agent Reach

    EdisonChenAI/agent-reach

    Use the internet: search, read, and interact with 13+ platforms including Twitter/X, Reddit, YouTube, GitHub, Bilibili, XiaoHongShu (小红书), Douyin (抖音), WeChat Articles (微信公众号), LinkedIn, Boss直聘…

    110 GitHub starsUsed in 1 repo~1.3k tokens
    Productivity & AutomationAuto-check passed
  • AIHOT AI News Lookup

    KKKKhazix/khazix-skills

    Answers questions about recent AI news by querying AIHOT's Chinese-language agent API live, covering daily highlights, search, hot events and the daily digest.

    21k GitHub stars~461 tokensUpdated 8 days ago
    Productivity & AutomationAuto-check passed
  • X Search via xAI

    code-yeongyu/oh-my-openagent

    Rules for using the x_search tool to search X (Twitter) through a connected xAI account: date-bound queries, trusted handles, search operators and split searches.

    70k GitHub stars~1.4k tokensUpdated today
    Productivity & AutomationAuto-check passed
  • Content Harvester

    charlie-chann/ai-agent-langgraph-main

    多源内容采集专家。能从网页、RSS、Tavily搜索、Twitter抓取内容。适用于:信息收集、竞品监控、行业动态追踪。

    114 GitHub stars~233 tokensUpdated 26 days ago
    Productivity & AutomationAuto-check passed

Works with

Questions about What Happened

What does What Happened do?

Briefs you on what just happened around a named topic and maps public opinion on X, using the host's native X search tools only. When you run /whathappened or ask what is going on around a person, product, launch or event, the skill produces a neutral analyst-style briefing built only from X search results: what happened, and which camps and debates are visible. It needs four native X tools (keyword search, semantic search, thread fetch and user search) and stops with an explanation if the host, such as Grok Build, lacks them, rather than faking a briefing from web search.

When should I use What Happened?

What Happened fits situations like: getting a quick briefing on what happened with a person, product or launch; seeing how people on X are reacting to an announcement or controversy; mapping the main camps in a debate around a named topic; checking public opinion on X about a recent event.

How do I install What Happened in Claude Code?

Run `npx skills add kunchenguid/whathappened --skill whathappened -a claude-code`. Or copy the skill folder (skills/whathappened in kunchenguid/whathappened) into .claude/skills/whathappened in your project. Claude Code loads it when a task matches its description.

How do I install What Happened in Codex?

Run `npx skills add kunchenguid/whathappened --skill whathappened -a codex`. Or copy the skill folder (skills/whathappened in kunchenguid/whathappened) into .agents/skills/whathappened in your project. Codex loads it when a task matches its description.

Can I use What Happened in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add kunchenguid/whathappened --skill whathappened -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/whathappened, .gemini/skills/whathappened, .github/skills/whathappened and .opencode/skills/whathappened in your project.

What does What Happened need to run?

SKILL.md names no scripts, command-line tools or credentials: What Happened is instructions for the agent only. Our summary lists: A host with native X tools, such as Grok Build; The x_keyword_search, x_semantic_search, x_thread_fetch and x_user_search tools.

Does What Happened access the network?

SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.

Is What Happened safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does What Happened use?

What Happened is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does What Happened use?

About 2.1k tokens (SKILL.md is roughly 8.5k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 1.5k tokens, read only when the agent opens those files.

What are the alternatives to What Happened?

Skills that share tags, products or a category with What Happened: Agent Reach (Panniantong/Agent-Reach, 94k stars), Modsearch (liustack/modsearch, 612 stars), Agent Reach (EdisonChenAI/agent-reach, 110 stars) and AIHOT AI News Lookup (KKKKhazix/khazix-skills, 21k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains What Happened?

kunchenguid (a GitHub user) maintains it in kunchenguid/whathappened, which has 231 GitHub stars. The repository was last updated on July 16, 2026.

Source: kunchenguid/whathappened on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.