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 kennyzir/7deer_skills --skill site-keyword-researchgit clone --depth 1 https://github.com/kennyzir/7deer_skillsWrote 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/kennyzir/7deer_skills/site-keyword-research)<a href="https://agentmods.dev/skills/kennyzir/7deer_skills/site-keyword-research"><img src="https://agentmods.dev/badge/skills/kennyzir/7deer_skills/site-keyword-research/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/kennyzir/7deer_skills/site-keyword-research"><img src="https://agentmods.dev/badge/skills/kennyzir/7deer_skills/site-keyword-research.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.00131 | $0.04215 |
| Opus 5 | $0.00066 | $0.02107 |
| Sonnet 5 | $0.00026 | $0.00843 |
| Haiku 4.5 | $0.00013 | $0.00421 |
Grade A, and why
site-keyword-research 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 13d 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 — 406 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Site Keyword Research Skill
输入一个网站域名,输出完整的关键词研究与竞争度分析报告。核心改进:递归式关键词树扩展——不是一次扩展就停,而是持续分叉挖掘,直到词库收敛。
核心工作流
阶段一:递归关键词树扩展(不限次数,直到词库收敛)
→ 种子词 → Google搜索 → 提取 Related Searches + PASF + 问题词
→ 每个新词 → 再搜索 → 再提取 → 持续分叉
→ 直到:不再发现新词 或 词库达到上限(100个)
阶段二:去重合并 → 分层筛选(20词)
→ 去重、去无关词
→ 选20个最有价值的词进详细分析
阶段三:10词SERP详细分析 → 3词定方向
→ 竞争度打分
→ 给出最重要的3个词 + 具体操作建议
关键词来源标注规范(强制):
| 标签 | 含义 | 可信度 |
|---|---|---|
[PASF] |
来自 Google「People Also Search For」的真实搜索推荐 | ⭐⭐⭐⭐⭐ |
[RS] |
来自 Google Related Searches 联想词 | ⭐⭐⭐⭐ |
[Q] |
来自 Google 搜索结果中的「People Also Ask」问题 | ⭐⭐⭐⭐ |
[AI-主题] |
AI 根据站点主题扩展生成,需人工验证 | ⭐⭐⭐ |
[竞品] |
从 SERP 结果中竞品内容提取 | ⭐⭐⭐⭐ |
输入参数
执行 skill 时需要提供以下参数:
| 参数 | 说明 | 默认值 |
|---|---|---|
domain |
要分析的网站域名(如 example.com) |
必填,从用户输入提取 |
output_dir |
报告输出目录 | 可选,默认为当前目录 |
域名格式支持:
https://example.com→ 自动提取 domainexample.com→ 直接使用www.example.com→ 提取 domain
第一阶段:递归关键词树扩展(核心改进)
1.1 站点主题分析
使用 web_fetch 抓取首页(maxChars: 2000),识别:
- 站点类型(产品工具/内容媒体/电商/SAAS/论坛)
- 核心主题(2-4个主题词,作为种子词根)
- 目标用户群体
- 主要功能/服务
同时抓取首页 HTML 标题、meta description。
1.2 种子词确定
根据站点分析,确定 3-5 个种子关键词(作为树的根节点):
- 核心产品/服务词
- 核心场景/用途词
- 核心用户需求词
1.3 递归扩展算法(关键词树构建)
这是本 skill 的核心改进——不是一次扩展就停,而是持续分叉。
扩展规则:
每次取队首关键词出列 → Google搜索 → 提取三类词 → 入库 → 新词继续入队
直到队列空(词库收敛)或达到上限(100个唯一词)
搜索格式:
https://www.google.com/search?q=<URL编码关键词>&hl=en
反爬策略(必须执行): 每次打开搜索页后,等待 3-5 秒 再执行 snapshot,给 JS 渲染足够时间:
browser(action=open, url="https://www.google.com/search?q=...&hl=en")
browser(action=wait, timeMs=4000) // 等待 JS 渲染
browser(action=snapshot, compact=true)
连续搜索时,两次搜索之间随机等待 2-4 秒,避免固定频率触发反爬:
browser(action=wait, timeMs=2000 + Math.random() * 2000)
如果遇到 CAPTCHA 验证页面:
- 等待 5 秒后刷新页面重试
- 最多重试 2 次
- 如果仍然失败,记录「CAPTCHA 拦截」标注,改用
web_search补充数据,并在报告中说明 SERP 数据为推算值
每次搜索必须提取以下内容:
A. Related Searches(RS)- 联想词
从搜索结果页底部「Related Searches」区域提取所有联想词,每个标注 [RS]。
What ships with it
2 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.
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.
- 13d ago First seen · 406 lines · 131 tokens per session scan A 1e9fa47ef527
site-keyword-research is a skill published in the GitHub repository kennyzir/7deer_skills (313 stars, last pushed 4d ago), licensed MIT. It adds 131 tokens to every session and 4,215 once invoked, about $0.0007 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-30.
Other skills, from other repositories
migrate-radix-to-base
Migrates React projects and components from Radix UI to Base UI. Use when asked to migrate from radix, move to base-ui, convert radix primitives, or switch a shadcn project's base library. Handles single components ("migrate accordion") and whole projects.
non-json-content-types
Handle FormData, file uploads, Blob, Uint8Array, and ReadableStream inputs in tRPC mutations. Use octetInputParser from @trpc/server/http for binary data. Route non-JSON requests with splitLink and isNonJsonSerializable() from @trpc/client. FormData and binary inputs only work with mutations (POST).
trigger-authoring-tasks
Covers writing backend Trigger.dev tasks with @trigger.dev/sdk: defining task() and schemaTask(), the run function and its ctx, retries, waits, queues and concurrency, idempotency keys, run metadata, logging, triggering other tasks (and the Result shape), scheduled/cron tasks, and the essentials of trigger.config.ts.…
saas-builder
Clone, verify, map, and build on top of ixartz/SaaS-Boilerplate for a user's SaaS idea. Use when a user wants to reuse SaaS Boilerplate, evaluate how their product fits it, or build product-specific pages, database schema, roles, permissions, MVP features, and launch scope on top of the boilerplate.
arcgis-to-portaljs
Migrate a whole ArcGIS Hub site into a PortalJS Arc portal end-to-end. Harvests the Hub /data.json (DCAT-US) inventory, exports every FeatureService layer through the ArcGIS REST query API with resultOffset paging, converts each to the serverless dual tier (PMTiles render + GeoParquet query) with tabular items to…
fast-typescript-check
Keep www-sacred's TypeScript fast to type-check and fast to run. Use when touching the ASCII/canvas animation components (the only real per-frame code here), tightening type-check wall-clock, or auditing a change for runtime or compiler regressions. Scoped to this repo — a React 19 / Next.js 16 component library plus…