← All skills
rankup
65 / 100 · Review before installing
Check before installing. Some of what it can do is expected: a marketing skill usually talks to online services.
By yan-labs/yan-skills (GitHub) · marketing · 232 stars · scanned at commit 7c6856a
独立开发者的项目全生命周期管理:需求验证、选词选品、建站或做原生 App、上线接入、SEO/GEO 获客、支付变现、监控迭代与跨会话接力。以下情况使用:用户提到 rankup 或 /rankup(check、review、init;doctor 仅指整理项目 .rankup 记录);当前目录或工作区有 .rankup/,或要读取、续做、整理项目计划、路线图、待办、PRD、交接或进度文档;在这些项目记录上下文里说「继续」「接着做」「上次做到哪」「下一步做什么」;以及项目规划、需求验证、关键词调研与 SERP、独立 Google Trends 热度查询或对比、AI 搜索推荐(GEO)、网站体检、sitemap/IndexNow/Search Console、流量、建站、上线、支付(Stripe、Anyway、PayPal)、变现与增长。SEO/GEO 是主要手段,不是适用边界,非 SEO 的项目计划与 macOS、iOS、iPad 原生 App 同样适用。纯文案(含 SEO 趋势博客等主题写作)、纯视觉设计、与项目管理无关的通用开发及基础设施排错(含 Cloudflare 部署报错、普通…
Works with any agent that supports SKILL.md skills.
What this skill can do
Downloads and installs other software
The author does not mention this.
Found in 57 places.
Show 17 more
- rankup/SKILL.md, line 203
npx skills add yan-labs/yan-skills --skill rankup -g -y # 全局安装 - rankup/SKILL.md, line 204
npx skills update rankup -g -y # 全局更新 - rankup/SKILL.md, line 205
npx skills update rankup -p -y # 项目级更新 - rankup/references/analytics-platforms.md, line 247
推荐用 Firebase CLI(`npm install -g firebase-tools`): - rankup/references/capability-map.md, line 225
`npx skills add yan-labs/yan-skills --skill backlink -g -y`。下表是外链能力的**唯一底账**,SKILL.md 不再复制。 - rankup/references/cloudflare-stack.md, line 32
pnpm dlx shadcn@latest init --preset b1D0eCA4 --template start --monorepo --rtl --pointer - rankup/references/cloudflare-stack.md, line 129
npm i -g cf - rankup/references/cloudflare-stack.md, line 130
npx skills add yan-labs/yan-skills --skill cf-cli -g -y - rankup/references/cloudflare-stack.md, line 131
npx skills add cloudflare/skills --skill wrangler -g -y - rankup/references/cloudflare-stack.md, line 132
npx skills add cloudflare/skills --skill workers-best-practices -g -y - rankup/references/design-references.md, line 73
| **技术实现** | 已查 shadcn/ui 官方文档(`ui.shadcn.com/docs/components/sidebar`)确认现成有 **Sidebar** 组件,官方原话就是"A sidebar that collapses to icons",`pnpm dlx shadcn@latest ad - rankup/references/discipline.md, line 219
未安装:`npx skills add yan-labs/yan-skills --skill opencli -g -y`。 - rankup/references/discipline.md, line 274
npx @yan-labs/rankup catalog semrush --modules # 展开工具箱 → 功能页树 - rankup/references/discipline.md, line 275
npx @yan-labs/rankup catalog --gaps # 只看两家没摸到的地方 - rankup/references/discipline.md, line 276
npx @yan-labs/rankup capture semrush keyword-overview --keyword "<词>" --db us --out-dir .rankup/provider-audit/keyword-us - rankup/references/discipline.md, line 277
npx @yan-labs/rankup audit similarweb --manifest .rankup/provider-audit/similarweb.json --out-dir .rankup/provider-audit/live/similarweb --resume - rankup/references/discipline.md, line 553
| 先 `ls components/ui/` 看有没有;有就用,没有就 `pnpm dlx shadcn@latest add <组件>`;shadcn 没有的装同一生态(Radix / React 生态里带可访问性的现成包),装完再用 | 组件库带着键盘导航、焦点管理、暗色模式、ARIA 和统一视觉,手写一个下拉框
and 37 more places
Runs commands on your computer
The author does not mention this.
Found in 241 places.
Show 17 more
- rankup/scripts/ahrefs-site-audit.mjs, line 105
import { execFileSync } from "node:child_process"; - rankup/scripts/ahrefs-site-audit.mjs, line 236
return execFileSync("opencli", ["browser", session, ...args], { - rankup/scripts/analytics-beacon-check.mjs, line 9
import { execFileSync } from "node:child_process"; - rankup/scripts/analytics-beacon-check.mjs, line 201
return execFileSync("opencli", ["browser", session, "--window", "dedicated", ...args], - rankup/scripts/anyway-checkout-sessions.mjs, line 27
import { spawnSync } from 'node:child_process' - rankup/scripts/anyway-checkout-sessions.mjs, line 43
const r = spawnSync('opencli', ['browser', SESSION, '--window', 'dedicated', ...parts], { encoding: 'utf8', timeout, maxBuffer: 50 * 1024 * 1024 }) - rankup/scripts/anyway-checkout-sessions.mjs, line 138
spawnSync('opencli', ['browser', SESSION, 'close'], { encoding: 'utf8', timeout: 20000 }) - rankup/scripts/anyway/scripts/archive-product.mjs, line 7
import { execFileSync } from 'node:child_process'; - rankup/scripts/anyway/scripts/archive-product.mjs, line 32
return JSON.parse(execFileSync('node', [ANYWAY_CLI, '--env', ENV, ...(flags['env-file'] ? ['--env-file', flags['env-file']] : []), ...args, '--json'], { cwd: AN - rankup/scripts/anyway/scripts/archive-product.mjs, line 36
return execFileSync('opencli', ['browser', SESSION, ...args, '--window', WINDOW], { encoding: 'utf8', stdio: ['ignore', 'pipe', 'pipe'] }); - rankup/scripts/anyway/scripts/archive-product.mjs, line 53
const doctor = execFileSync('opencli', ['doctor'], { encoding: 'utf8' }); - rankup/scripts/anyway/scripts/create-product.mjs, line 10
import { execFileSync } from 'node:child_process'; - rankup/scripts/anyway/scripts/create-product.mjs, line 68
const out = execFileSync('node', [ANYWAY_CLI, '--env', ENV, ...(flags['env-file'] ? ['--env-file', flags['env-file']] : []), ...args, '--json'], { - rankup/scripts/anyway/scripts/create-product.mjs, line 75
execFileSync('sleep', ['2']); - rankup/scripts/anyway/scripts/create-product.mjs, line 83
const out = execFileSync('opencli', ['browser', SESSION, ...args, '--window', WINDOW], { - rankup/scripts/anyway/scripts/create-product.mjs, line 101
const out = execFileSync('opencli', ['doctor'], { encoding: 'utf8' }); - rankup/scripts/anyway/scripts/create-webhook.mjs, line 10
import { execFileSync } from 'node:child_process';
and 221 more places
Sends data to these websites: tranco-list.eu, web.archive.org, www.v2ex.com
The author does not mention this. Expected for a marketing skill.
Found in 116 places.
Show 17 more
- rankup/references/checklists.md, line 166
| D9 · 路由与协商中间件已处理边界 | 尾斜杠 301 规范化到全站统一形态;`curl -H 'Accept: text/markdown' <404路径>` 与 `curl -H 'Accept: application/json'` 均不返回 500 | curl 输出进 `.rankup/audit.md - rankup/references/checklists.md, line 225
| 域名跳转是 301 且不超过一跳 | 裸域/www、http/https 收敛到同一个规范域,**中间每一跳都是 301**;302/307 不传权重 | `.rankup/infrastructure.md` | `curl -sIL <四种入口> \| grep -iE '^(HTTP/\|location:) - rankup/references/checklists.md, line 230
| 真实域名返回预期 SSR HTML | curl 拿到的原始 HTML 里有预期正文,不是壳;本轮涉及的 D1 / D12 / D13 与分析项按原判据回读,批量内容按 P3 验证包括 sitemap 外索引页的 SSR 图覆盖。**构建成功 / Worker upload 成功 / 健康页 200 都不算完成** - rankup/references/checklists.md, line 272
| 本轮改过的旧 URL 跳转正确 | 每个被改/被删的旧 URL 都 301 到新址,**不是 302,也不是软 404 落回首页** | `.rankup/audit.md` | `curl -sIL <旧 URL>`,见 [`seo-box.md`](seo-box.md) 二 | 动了 URL | - rankup/references/cloudflare-stack.md, line 392
1. 本机 `curl -o /dev/null -s -w 'ttfb %{time_starttransfer}\n' <url>` 连跑两次,第二次响应带 `x-edge-cache: HIT` 且 TTFB 明显下降。 - rankup/references/demand-sources/validation-chain.md, line 141
| **Tranco** | 多源 DNS 请求聚合 | `curl -s "https://tranco-list.eu/api/ranks/domain/<d>"` | 可用,但**必须拿已测过流量的同类站做标定**再插值,单看排名无意义 | - rankup/references/demand-sources/validation-chain.md, line 266
curl -s "http://web.archive.org/cdx/search/cdx?url=<域名>&matchType=domain&output=json&filter=statuscode:200&collapse=timestamp:6" - rankup/references/demand-sources/validation-chain.md, line 267
curl -s "http://web.archive.org/web/<timestamp>id_/<url>" # 取当年内容判断用途 - rankup/references/discipline.md, line 186
opencli browser "$S" eval '(async()=>{ /* fetch(..., {credentials:"include"}) */ })()' - rankup/references/experiences/demand-discovery.md, line 204
第一反应是「这个方向流量很低」。实际原因是页面被 CDN 整页缓存了——`curl -sI` 出来 - rankup/references/experiences/demand-discovery.md, line 210
1. **引用任何页面上的「实时」数字之前,先 `curl -sI` 那个页面**,看 `age` / - rankup/references/lifecycle/stage-5-launch.md, line 267
| D15 | 四个入口(裸域/www × http/https)收敛到同一规范域,每跳 301 且不超过一跳 | `curl -sIL` 输出 | - rankup/references/playbooks/research.md, line 234
| 自有计数器 | [`demand-discovery.md`](../experiences/demand-discovery.md) 一·7:引用竞品页面上任何「实时数字」之前**先 `curl -sI` 看 `age` / `x-*-cache` / `cache-control`**——实测某站 Live S - rankup/references/playbooks/research/p2-keyword-root.md, line 171
【实测调用归档,2026-09-03;不是现行步骤】**X / YouTube / B 站 / 小红书**走 `/agent-reach` 的命令组(下面四条 2026-09-03 在本机实跑通过;先 `agent-reach doctor --json` 看每个平台的 `active_backend`,doctor - rankup/references/playbooks/site-review.md, line 81
| **e · 线上探测(把候选变成事实)** | 对 0–d 得到的每个候选跑:<br>`curl -sIL -A 'Mozilla/5.0' <候选> \| grep -v 'Connection established' \| grep -iE '^(HTTP/\|location:)'`<br>200 的再 ` - rankup/references/playbooks/site-review.md, line 88
**HTTP 代理会多出一跳假的。** 走 HTTPS 代理时 `curl -sIL` 每个请求会先打印一行 - rankup/references/playbooks/site-review.md, line 91
本文所有 `curl -sIL … | grep -iE '^(HTTP/|location:)'` 都要先接一段
and 96 more places
Changes files outside its own folder
The author does not mention this.
Found in 3 places.
Install
Paste this into your terminal. It downloads exactly the version we scanned, not whatever is newest.
if [ -e ~/.agents/skills/'rankup' ] || [ -L ~/.agents/skills/'rankup' ]; then echo 'A skill folder named rankup already exists — not replacing it' >&2; false; else d=$(mktemp -d) && git clone --quiet --filter=blob:none --no-checkout 'https://github.com/yan-labs/yan-skills' "$d" && git -C "$d" checkout --quiet '7c6856a9db1bd5c28cbe5047010458fc1a3e29b9' -- 'rankup' && mkdir -p ~/.agents/skills && cp -R "$d"/'rankup' ~/.agents/skills/'rankup' && rm -rf "$d"; fi
Codex reads ~/.agents/skills directly. For Claude Code, Cursor, Copilot, Gemini CLI, Antigravity or OpenCode, also link it. For Claude Code: ln -s ~/.agents/skills/'rankup' ~/.claude/skills/'rankup' (other agents: ~/.cursor/skills, ~/.copilot/skills, ~/.gemini/skills, ~/.gemini/config/skills, ~/.config/opencode/skills). Or install through the finder skill, which does both.
Badge for your README
The badge for yan-labs/yan-skills shows the score of its lowest-scoring skill.

[](https://zalavijaysinh.github.io/skilltrust/repos/yan-labs/yan-skills/)
Score history
| Date | Version | Score |
|---|
| 2026-11-10 | 7c6856a | 65 |
| 2026-11-07 | 3164ecd | 75 |