Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx skills add EthanYoQ/Skill-hub --skill xhs-pharma-social-listeninggit clone --depth 1 https://github.com/EthanYoQ/Skill-hubWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/ethanyoq/skill-hub/xhs-pharma-social-listening)<a href="https://agentmods.dev/skills/ethanyoq/skill-hub/xhs-pharma-social-listening"><img src="https://agentmods.dev/badge/skills/ethanyoq/skill-hub/xhs-pharma-social-listening/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/ethanyoq/skill-hub/xhs-pharma-social-listening"><img src="https://agentmods.dev/badge/skills/ethanyoq/skill-hub/xhs-pharma-social-listening.svg" alt="Reviewed on agentmods" width="80" height="20"></a>- NVIDIA SkillSpector pass
What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00087 | $0.02430 |
| Opus 5 | $0.00044 | $0.01215 |
| Sonnet 5 | $0.00017 | $0.00486 |
| Haiku 4.5 | $0.00009 | $0.00243 |
Grade A, and why
xhs-pharma-social-listening scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 12d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 153 lines — stays where its author put it; the contents beside it link to each section on GitHub.
XHS Pharma Social Listening
Overview
Use this skill to run an end-to-end Xiaohongshu social listening workflow for foreign pharma employee pain points. The main agent owns orchestration, scoring, analysis, and final reporting. Delegate Xiaohongshu collection to a collector subagent when subagent tools are available. Use Agent Reach/OpenCLI for access checks, seed discovery, spot validation, and note-level fill-in. For large runs or when OpenCLI throughput is insufficient, prefer a batch crawler path, with MediaCrawler as the first candidate. See references/batch-collection.md before changing collection strategy.
Workflow
- Check platform access:
- Run
agent-reach doctor --json. - Confirm
xiaohongshu.statusisokand active backend is OpenCLI or another working backend.
- Run
- Select collection path:
- Delegate Xiaohongshu information collection to a subagent when
multi_agent_v1.spawn_agentor an equivalent subagent tool is available. - Keep one active XHS collection subagent per logged-in account/session unless the user explicitly asks for parallel collection; platform rate limits and captcha risk matter more than raw parallelism.
- If the task is small or only needs validation, run
scripts/collect_xhs_pharma.py. - If the user reports OpenCLI is slow, requests
>1000items, or asks for recurring social listening, readreferences/batch-collection.mdand run a MediaCrawler POC first. - For large runs, target at least 1,000 independent evidence items: deduplicated notes plus deduplicated comments. Report search rows, note-detail rows, and comment rows separately; a detail row enriches its note and is not another independent item.
- Use a broad-first query matrix. Start with single company, alias, and pharma-specific role terms, then add paired precision probes. Do not run cross-industry work or pain terms as standalone searches, including
市场部,报销,背调,外企,裁员,离职,合规,薪资, andKPI; these must be paired with a pharma context anchor fromreferences/query-matrix.md. - Cover company names, blackwords/aliases, roles, pain terms, compliance terms, AI/medical affairs terms.
- Do not narrow or abandon the broad-first query matrix merely because MediaCrawler returns CAPTCHA/461. First distinguish query semantics from backend execution risk. If Agent Reach/OpenCLI can still search/read the same query, treat the issue as MediaCrawler-path or session cooldown risk, not as evidence that the keyword strategy is invalid.
- Before any MediaCrawler batch run after a prior CAPTCHA/461, run an Agent Reach/OpenCLI smoke on the same or adjacent keyword:
opencli xiaohongshu search "<query>" --limit 5 -f json, then read one note and comments. If OpenCLI succeeds but MediaCrawler fails, switch the collection backend to Agent Reach/OpenCLI and cool down MediaCrawler; do not continue retrying MediaCrawler in the same turn.
- Delegate Xiaohongshu information collection to a subagent when
- Analyze:
- Run
scripts/analyze_xhs_pharma.pyon the collection directory. - Produce
report.md,topic_scores.csv,evidence_notes.csv,evidence_comments.csv, anddataset_summary.json.
- Run
- Report carefully:
- Treat output as sampled social listening, not platform-total statistics.
- Mark unverified items: author identity, policy authenticity, company-specific generalization, and whether a pain point is industry-wide.
What ships with it
10 files beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.
- agents/openai.yaml 303 B
- evals/evals.json 2.2 KB
- evals/files/counting/comments.jsonl 164 B
- evals/files/counting/note_details.jsonl 176 B
- evals/files/counting/search_results.jsonl 105 B
- references/batch-collection.md 8.4 KB
- references/methodology.md 1.2 KB
- references/query-matrix.md 3.0 KB
- scripts/analyze_xhs_pharma.py 25 KB runs code
- scripts/collect_xhs_pharma.py 22 KB runs code
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 12d ago First seen · 153 lines · 87 tokens per session scan A ca0fd213a7af
xhs-pharma-social-listening is a skill published in the GitHub repository EthanYoQ/Skill-hub (9 stars, last pushed 5d ago), licensed MIT. It adds 87 tokens to every session and 2,430 once invoked, about $0.0004 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.
Other skills, from other repositories
superplan-entry
Use when a new request might involve repo work, tracked changes, workspace-specific decisions, or durable coordination and you must decide whether Superplan should engage before exploring or implementing.
superplan-shape
Use when Superplan has decided to engage and the work still needs plans, specs, proof paths, or multiple tracked tasks shaped before bounded execution can start.
superplan-execute
Use when tracked work is already shaped and the next move is to execute, verify, block, or request feedback without replanning from scratch.
superplan-brainstorm
Use when routed repo work still has meaningful ambiguity about behavior, constraints, taste, or acceptance intent, and that ambiguity would make planning or execution unsafe.
superplan-review
Use when a tracked task appears done and you need to decide whether its acceptance criteria are truly satisfied by fresh evidence.
superplan-route
Use when Superplan may engage and you need to decide whether to stay lightweight, create one tracked task, gather context first, or shape deeper structure before execution begins.