Communitygithub.com

samber/cc-skills

网站或Web应用上线前的启动清单,涵盖分析工具、DNS、TLS、备份、法律合规、SEO/GEO、文案润色、社交预览、性能检查及发布后监控。

cc-skills 是什么?

这是一个为AI代码助手(如Claude Code、Cursor等)设计的交互式技能包,用于执行新网站或Web应用上线的全面预启动审计与设置工作流。它整合了从DNS/TLS配置、分析工具(GA4、PostHog、Google Search Console、Ahrefs)集成、法律合规(CNIL/GDPR)、SEO/GEO优化(robots.txt、sitemaps、llms.txt、hreflang、schema标记、关键词研究),到文案语气定义(TONE.md)与人性化润色、OpenGraph/社交预览生成、性能质量门控(Lighthouse、Core Web Vitals、WCAG)、目录提交(Product Hunt、G2/Capterra),以及发布后监控等10个阶段。该技能强调通过环境提问工具进行交互式决策,每次询问一个问题并提供2-4个选项,直到获得明确输入后才继续推进。它还支持与其他六个专业子技能包(如SEO、安全审计、营销技能等)联动,根据站点类型按需选择安装子技能,避免一次性导入过多不必要的内容。

兼容平台✓Claude Code✓Codex CLI~Cursor✓Gemini CLI
npx skills add https://github.com/samber/cc-skills/tree/HEAD/skills/site-launch-checklist

在你喜欢的 AI 中提问

打开一个已预加载此 Agent Skill 的新对话。

文档

问题: 通过环境的提问工具向用户提问——绝不要用纯文本散文。一次只问一个问题,提供2-4个可点击选项,等待回答。如果环境没有提问工具,则用散文形式提出同样选项,一次一个。

网站上线检查清单

新网站上线前的预启动审计与设置工作流。针对 Cloudflare DNS + Vercel 托管 + PostHog + 法律上下文进行定制。

交互方式(请先阅读)

此技能本质上是交互式的。要主动提问,而不是假设。用户会点击,而不是输入。

每次运行时都必须先问这些问题(按顺序,一次一个):

  1. 站点类型:doc-site | marketing/lead-gen | SaaS-app | training/paid-course | personal-portfolio
  2. 迁移情况:greenfield-new-domain | migration-need-301-redirects | replacing-existing-on-same-domain
  3. 多语言:single-locale | en | fr+en | other-multi
  4. PostHog 设置:hogpost.samber.dev | set-up-new-proxy | skip-PostHog
  5. AI 爬虫策略:use-default-for-site-type | customize-per-bot | block-all
  6. 浏览器工具可用性:claude-chrome-extension | playwright | neither-skip-browser-checks

在后续每个阶段的决策点处也要再次询问,包括:

  • 是否安装 Sentry / BetterStack / Crisp(取决于站点类型,明确询问)
  • www 与 apex 域名的规范偏好(大多数站点:apex;但仍然要问)
  • 如果用户选择了 customize-per-bot,允许哪些 AI 机器人
  • CSP 严格程度:strict-default-src-none | balanced-allow-self | permissive-for-marketing
  • 是否完全跳过某个阶段(例如,非法国站点跳过阶段 3)

未获得明确的用户输入之前,绝不要越过任何决策点。冗长的无检查点清单不是目标。

未经用户明确确认,绝不要安装任何 MCP 服务器或技能。 在运行 npx skills add、claude mcp add 或任何等效安装命令之前,始终通过提问工具询问——即使技能选择工作流建议了一个精选子集。

如何使用此技能

  1. 运行上面的会话开始问题。
  2. 按顺序引导用户完成阶段 1-10。对于每个阶段:a. 列出项目,询问是否有任何应跳过。b. 对于每个剩余项目,运行验证命令(见下面“验证工具”)。c. 报告通过/失败。如果失败,询问用户是现在修复还是稍后排队。
  3. 最后提供按阶段分组的状态报告,清晰区分阻塞项、推荐修复项和可选改进项。

配套技能

有六个技能包对网站上线很有用。绝不要安装整个多技能包。实际安装的子集取决于用户在启动时确认的站点类型。

包清单

包涵盖内容通常对谁有用
AgriciDaniel/claude-seoSEO + GEO + schema + hreflang + sitemaps 审计,并行子代理所有站点类型
addyosmani/web-quality-skillsLighthouse、Core Web Vitals、可访问性、性能、最佳实践所有站点类型
trailofbits/skills安全审计(OWASP、标头、依赖项)所有站点类型
aaron-he-zhu/seo-geo-claude-skills20 个 SEO+GEO 技能、CORE-EEAT + CITE 框架、/seo: 斜杠命令内容密集型站点、竞争激烈的利基市场
coreyhaines31/marketingskills~30 个营销技能(CRO、文案、广告、弹窗、电子邮件、付费墙等)marketing/lead-gen、SaaS-app、training/paid-course
jonathimer/devmarketing-skills33 个开发者营销技能(人物画像、文档即营销、技术教程等)doc-site、面向开发者的 SaaS-app

技能选择工作流(在会话开始时运行)

用户确认站点类型后,针对与该站点类型相关的每个包:

  1. 列出可用子技能:npx skills add owner/repo --list
  2. 基于站点类型和此技能将执行的阶段,提出一个精选子集。将每个阶段的需求与列表返回的特定子技能相匹配。
  3. 与用户确认。 当提议列表超过 3 项时使用多选,否则使用单选(install-as-proposed | let-me-modify | skip-this-pack)。
  4. 批量安装商定的子集:npx skills add owner/repo --skill A B C

规则:

  • 子技能名称存在于包中,而非此 SKILL.md 中。始终查询 --list 以获取最新状态。包的内容会变化。
  • 绝不要在没有 --skill 的情况下运行 npx skills add owner/repo(那会安装所有内容)。
  • 站点类型 → 包的映射(要枚举哪些包,子技能仍按工作流选择):
    • doc-site: claude-seo, web-quality-skills, trailofbits, seo-geo-claude-skills, devmarketing-skills
    • marketing/lead-gen: claude-seo, web-quality-skills, trailofbits, seo-geo-claude-skills, marketingskills
    • SaaS-app: 全部六个
    • training/paid-course: claude-seo, web-quality-skills, trailofbits, marketingskills
    • personal-portfolio: claude-seo, web-quality-skills, trailofbits, seo-geo-claude-skills(轻量级子集)
  • 如果用户稍后请求一个需要尚未安装的子技能的阶段,针对该单个子技能再次运行工作流,而不是重新安装整个子集。

这样可以避免导入用户不需要的 80+ 个技能,避免子技能名称过时,并避免过度依赖单个包版本。

在阶段中委派任务时,不要重复此技能编排的工作。以狭窄范围调用专家(例如,“仅在 URL X 上运行安全标头子审计”)。

阶段 0:上线准备门控

在任何其他阶段之前运行此项。 产品不会自己营销——但一个没准备好的产品也不会营销成功。只有当你即将发布的产品值得发布时,启动机制才有意义。

两种失败模式从相反方向扼杀发布:

  • 隐身模式 — 发布太晚。“穿西装的拖延症。”你在私下里不断打磨,等待产品完美。它永远不会发布,没人知道你的存在。
  • “再来一个功能” — 从不发布。每个提议的发布日期都为了多一个功能而推迟。范围无限蔓延;发布永远不会到来。

中间道路是 SLC — 简单、可爱、完整(Simple, Lovable, Complete) (Jason Cohen 提出),是发布没人想要的、最小但不可爱的 MVP 的解药。一个可发布的 v1 是:

  • 简单 — 它只做_一件事_。而不是把很多事情做差。一个清晰的工作,做好。
  • 可爱 — 人们_想要_使用它,而不仅仅是忍受它。一个 MVP 要求用户为了“提供反馈”而忍受一个精简的体验。SLC 给了他们一个他们会选择的东西。如果没有人会为失去它而感到悲伤,那它还不够可爱。
  • 完整 — 对于那一件事来说,它是一个_完整_的体验,而不是一个有明显漏洞的残次品。在其选择的范围内是完整的,而不是一个更大承诺的预告片。

门控: 如果它还不是简单、可爱、完整的,那么只有当你缺少的正是增加范围时,你才处于“再来一个功能”的领域——否则你处于隐身模式,应该发布。削减范围,直到一件事是可爱且完整的,然后发布那个。SLC 给你一个现在的真实发布,而不是一个永远不会到来的完美发布。

在运行各个阶段之前快速检查:

  • 它是否做一件清晰定义的事?(简单)
  • 目标用户是否会_选择_使用它,而不仅仅是忍受它?(可爱)
  • 那一件事是否是一个完整的体验,没有明显的漏洞?(完整)
  • 你是否已经超过了这个标准还在打磨?→ 停止。你处于隐身模式。发布。
  • 你是否还在向范围中添加新东西?→ 停止。你处于“再来一个功能”。回退到 SLC。

目录提交准备(来自 directory-submissions 技能): 问这 9 个问题。如果有任何答案是“否”,他们还没准备好——先帮助他们构建缺失的部分。

  1. 产品是否可公开访问(无密码墙)?
  2. 是否有定价页面(即使是“Beta 期间免费”)?
  3. 隐私政策 + 服务条款是否已上线?
  4. Logo 资源是否为 PNG + SVG + 正方形 + favicon?
  5. 是否有 5-8 张真实截图 + 60-90 秒演示视频?
  6. 着陆页是否已为 GEO 做好准备(单个 H1、顺序层次结构、FAQ schema、结构化数据)?
  7. 是否至少有 3 个替代页面和 3 个用例页面已上线并被索引?
  8. 模板库或磁石资源是否可用(如果适用于类别)?
  9. 是否至少有 20 名 Beta/早期用户可以在 G2 上留下评论?

1-7 中任何一项为“否”是硬阻塞。8-9 项为“否”是软阻塞:你可以发布,但会失去 Tier 2 评论价值和 Typeform 式的复合效应。

ORB 渠道策略(来自 launch 技能): 在三种渠道类型中构建你的发布营销。所有内容最终都应引导回自有渠道。

自有渠道

你拥有渠道(尽管不拥有受众)。无需算法或平台规则即可直接访问。

  • 电子邮件列表、博客、播客、品牌社区(Slack、Discord)、网站/产品
  • 根据受众开始 1-2 个: 行业缺乏优质内容 → 博客;人们想要直接更新 → 电子邮件;参与度重要 → 社区

租赁渠道

提供可见性但你无法控制的平台。算法变化,规则改变,付费游戏增加。

  • 社交媒体(Twitter/X、LinkedIn、Instagram)、应用商店、YouTube、Reddit
  • 如何正确使用: 选择你的受众活跃的 1-2 个平台;使用它们将流量引流到自有渠道;不要依赖它们作为你唯一的策略

借用的渠道

利用他人的受众来绕过最困难的部分——被注意到。

  • 客座内容(博客文章、播客采访、新闻通讯专题)
  • 合作(网络研讨会、联合营销、社交接管)
  • 演讲活动(会议、小组讨论、虚拟峰会)
  • 影响者合作
  • 要主动: 列出你的受众追随的行业领袖 → 推介双赢合作 → 使用 SparkToro 或 Listen Notes 等工具找到受众重叠

通过门控,然后运行下面的阶段。

文案语气和人性化润色

每个站点都有可见的营销文案(主标题、功能、CTA、元描述、OG 描述、博客文章、404 页面文本)。在上线前,必须进行两个层次的润色:

1. 每个站点定义一次 TONE.md

询问用户:“这个站点已经有 TONE.md 了吗?”(yes-already-exists | no-create-from-template | skip-use-default)。

如果要创建:将其写入 .agents/TONE.md 或仓库根目录的 TONE.md。参见 references/templates.md(“TONE.md 模板”部分)了解结构。

TONE.md 指定:语气(简洁、反主流等)、禁止模式(例如“深入”、“至关重要”、破折号、AI 感强的开头句)、句子长度偏好、受众阅读水平、来自用户自己写作的好句子和坏句子示例。

2. 以匹配的语言运行人性化润色

在每个起草步骤之后(无论是通过文案技能、手动还是直接由 Claude 完成),运行人性化工具以去除 AI 模式。

在会话开始时询问用户站点的主要受众语言(如果还不知道):

  • english-global → npx skills add https://github.com/blader/humanizer --skill humanizer
  • french → 使用 samber/cc-skills@humaniseur-fr(自定义法语人性化工具)或等效的法语优化技能
  • other → 如果可用则安装匹配的人性化工具;否则技能会内联编写一个简短的语言特定反模式检查清单

对以下内容应用人性化工具:主标题文案、功能描述、CTA 按钮、元描述、OG/Twitter 卡片描述、博客文章、电子邮件注册确认、404 页面文本。跳过法律页面(品牌信息、一般销售条款),因为它们有严格的措辞要求。

3. 在调用文案技能时始终引用 TONE.md

在委派给任何文案或内容写作子技能(在调用时根据技能选择工作流选择)时,将 TONE.md 包含在提示上下文中。明确传递语气约束:“遵循 .agents/TONE.md。避免列出的模式。起草后应用人性化工具。”

浏览器交互偏好

许多检查需要真实浏览器(Lighthouse 运行、securityheaders.com 扫描、opengraph.xyz 验证、Twitter 卡片验证器、移动视口、屏幕阅读器烟雾测试、网络标签检查)。

始终优先使用 Claude Chrome 扩展。 只有当 Chrome 扩展不可用时才回退到 Playwright。如果两者都不可用,询问用户是跳过浏览器检查完全,还是等到他们启用其中一个。

验证工具

大多数检查可以从命令行完成,无需第三方服务。在每个阶段内联使用这些工具。不要单独信任 Cloudflare/Vercel/Google 仪表板中的面板,用 curl 验证。

DNS(阶段 1):

dig +short A example.com                          # A 记录
dig +short AAAA example.com                       # AAAA(IPv6)
dig +short MX example.com                         # MX(邮件)
dig +short TXT example.com                        # SPF + 验证 TXT
dig +short TXT _dmarc.example.com                 # DMARC
dig +short TXT default._domainkey.example.com     # DKIM(选择器可变)
dig +short CAA example.com                        # CAA
dig +dnssec example.com | grep RRSIG              # DNSSEC 活跃

TLS / HTTPS(阶段 1):

curl -sIL https://example.com | head             # 跟随重定向
curl -sI https://www.example.com                 # 检查 www 处理
openssl s_client -showcerts -connect example.com:443 < /dev/null 2>/dev/null | openssl x509 -noout -dates

标头(阶段 4):

curl -sI https://example.com | grep -iE 'content-security-policy|strict-transport-security|x-frame-options|x-content-type-options|referrer-policy|permissions-policy'
# 完整标头转储:
curl -sI https://example.com
# 外部评分器:
curl -s "https://api.securityheaders.com/?q=https://example.com&followRedirects=on&hide=on" -I | grep -i 'x-grade'

SEO 文件(阶段 5):

curl -s https://example.com/robots.txt
curl -sI ht

…

[为翻译而截断]

相关技能