Communitygithub.com

ethanplusai/astro-conversion-kit

审计在线或预发布网站,在启动前报告所有潜在问题——包括爬取清单、可索引性、域名迁移的重定向、链接、图片、表单、可访问性、性能、分析、内容完整性以及全页面截图用于视觉检查。适合在网站启动前后使用,被要求QA、审计或检查网站时使用,或者当有人询问网站是否准备就绪时使用。只读模式:绝不提交表单、点击控件或编辑任何内容。

astro-conversion-kit 是什么?

该技能旨在对预发布或线上网站进行全面的、基于浏览的审计,生成一份可执行报告。其核心理念是**只读、仅报告**——绝不修改网站或与网站互动,仅收集证据并提出建议供人工处理。技能首先通过一个命令行脚本 `node scripts/launch-audit.mjs` 对网站进行系统化检查,生成详细的报告包,包括 `report.md`、`crawl.json`、`findings.json`、`redirects.csv` 以及该浏览器层级(如果安装了Playwright)的屏幕截图和Lighthouse/可访问性数据。审计涵盖可索引性、主机配置、头部元素、链接、图片、表单、可访问性、性能、分析、内容完整性和域名迁移重定向。审计之后,用户必须执行三项人工审核:检查屏幕截图是否有布局问题;表单测试说明;以及验证联系方式。最终,技能指导用户按照标准化格式呈现结果,重点关注阻止启动的关键问题,透明地列出未检查的内容,并记住最重要的两项检查(复制对比源文件、页面对比商定范围)无法自动完成,必须由人工完成。该过程旨在为启动决策提供多维度、基于证据的答案,每个发现都附有严重级别、可操作的建议以及明确区分的最低、信息性和阻止性问题。该技能的目标平台是任何可以通过命令行节点脚本访问的网页(预发布或线上,DNS迁移期间特别有用),在Claude Code或任何能够执行节点脚本的定制编码环境中运行,并提供关于如何解释结果的丰富文档。

兼容平台~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/ethanplusai/astro-conversion-kit/tree/HEAD/skills/launch-audit

在你喜欢的 AI 中提问

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

文档

launch-audit

抓取预发布或线上网站,收集证据,并向相关人员提供一份可执行的报告。

黄金法则

只读,仅报告。 本技能中的所有操作都不会编辑网站、提交表单、修改设置、写入提供商的API或点击破坏性控件。每个发现都附带证据,供人工处理。

以下是其衍生出的另外四条规则,请在呈现报告时重申:

  1. 没有静默上限。 对覆盖范围的任何限制——最大页面数、深度、抽样页面、无法验证的外部链接——都将在 “未覆盖” 部分中按名称报告。
  2. 每个发现都有证据。 一个URL、一个状态码、一个头部值、一个截图路径。
  3. “未覆盖”绝不意味着通过。 您需要逐字将该部分内容告知相关人员。
  4. 跳过不等于通过。 每个跳过的检查都必须说明原因。

1. 收集输入信息

询问您尚不知道的信息。请不要猜测以下任何一项。

  • 待审计的URL。 必填。
  • 这是预发布环境还是线上环境? 预发布目标预计会被设置为 noindex;传递 --staging 参数,以便将全站 noindex 从阻止项降级为信息项。在线上目标上,它是一个阻止项。
  • 这个站点是否正在替换现有站点? 如果是,获取旧站点的URL并传递 --old-url 参数。此操作必须在两个站点都还可达时进行——通常在DNS迁移之前。这是唯一可以自动构建重定向映射的时刻。
  • 是否可能泄露到构建中的任何开发或预发布主机名。 每个主机名都使用 --dev-host 参数传递。泄露的主机名是一个阻止项,且审计只能搜索它已知的那些。
  • 是否安装了Playwright? 如果安装了,则运行浏览器层级:截图、axe可访问性检查、Lighthouse,以及分析是否实际触发。如果没有安装,请说明——大约三分之一的报告将无法生成,且在报告中会明确指出是哪三分之一。

2. 运行脚本

运行它;切勿阅读其源代码,也切勿重新实现其功能。它所做的所有操作都是只读的:它获取页面,渲染样本页面,并将结果包写入磁盘。

node scripts/launch-audit.mjs --url <url> [--old-url <url>] [--dev-host <host>] [--staging] [--browser auto|on|off] [--out <dir>]

路径是相对于此技能自身目录的——从该目录运行命令,并使用 --out 将结果包写入工作目录所在的位置。

其他标志:--max-pages(默认200)、--max-depth(默认4)、--ignore-robots、--baseline <早期baseline.json的路径>、--json、--config <路径>、--help。

浏览器层级默认为 auto:如果存在Playwright则运行,否则跳过并给出原因。使用 --browser on 将其缺失视为错误,使用 off 则有意跳过。

无论有多少发现,它都返回退出码0——这是报告,而非关卡。退出码2表示用法错误。如果它建议安装Playwright,请转述该建议;未经要求,请勿安装任何内容。

3. 读取结果包

脚本会打印结果包的路径并写入:

  • report.md 按维度分类的发现,然后是与操作和访问相关的就绪情况,最后是“未覆盖”
  • findings.json 相同的发现,机器可读格式
  • crawl.json 每个访问到的URL、其状态、深度以及发现方式
  • baseline.json 一份快照,供上线后做差异比较
  • manifest.json 本次运行写入的具体文件列表
  • redirects.csv 每个旧URL对应一行(仅在使用 --old-url 时)
  • screenshots/ 每个渲染页面在桌面端、平板端和移动端的截图(仅限浏览器层级)
  • lighthouse/ Lighthouse测量的分数和指标,按页面和外形因素分类(仅限浏览器层级)

首先阅读 report.md:阻止项,然后是 “未覆盖”,最后是其他所有内容。了解哪些内容未被检查会改变您对某个“干净”部分的解读方式。references/reading-the-report.md 包含严重性等级表以及如何处理结果包。

4. 亲自完成三项判断性审查

脚本为三项任何检查工具都无法完成的审查收集证据。在呈现任何内容之前,请完成所有三项审查。每项审查都有一个参考文件;在进行该次审查之前阅读该文件,而不是之后。

截图——请参阅 references/reading-the-report.md。将每个渲染页面的移动端和桌面端截图并排打开,查找布局损坏、水平溢出、缺失图片、裁剪或截断的文本、在手机宽度下未折叠的导航,以及上线后仍然存在的占位图片。如果未运行浏览器,则没有截图,且此项审查未进行——请说明这一点,而不是让其缺失被解读为通过。

表单——请参阅 references/forms.md。使用报告中的证据,将清单中的每个表单归类为第一方、第三方或失效表单。然后告知相关人员哪些表单需要测试提交,以及具体需要确认什么:成功消息、到达受监控 收件箱(而非垃圾邮件文件夹)的通知,以及记录出现在其应到达的目标位置。您永远不应亲自提交表单。

联系方式——请参阅 references/content.md。将报告中找到的每个电话号码、电子邮件地址和邮政地址收集到一个列表中,检查 tel: 链接所拨打的号码是否与其旁边显示的电话号码一致,并询问网站所有者哪些是当前有效的。一个页面上遗留的第二个电话号码会使一半的电话无人接听,而从外部无法判断哪一个是正确的。

5. 呈现报告

按照报告的结构组织您的摘要,并以结论而非计数开始。四十条来自同一个模板的低严重性发现等于一次修复;一个阻止项就等于一次启动。

  1. 阻止启动的因素。 每个阻止项用一句简明的话说明。如果没有,请直接说明。
  2. 按维度分组的发现,每个维度内按最严重的严重性排序。 描述其形态,而非仅仅是数字:“十四个页面缺少描述——这是一个模板问题,因此是一次修复”。说出修复方法而非失败原因,并用通俗易懂的语言说明其代价。
  3. 操作和访问就绪情况。 这些是网站所有者的职责,也是那些会毁掉启动日的东西。逐项大声读出的 [human] 项目,并为每一项获得回答。
  4. “未覆盖”,逐字逐句。 每一行,未经编辑,诚实地介绍:“以下是本审计未检查的内容”。切勿总结、称其为次要或因其列表过长而省略。

永不运行的两项检查

每份报告都以这两个结束,之所以存在它们,是因为它们是最具破坏性且任何爬虫都无法达成的两项失败:

  • 文案与源文档对比。 本技能没有任何操作能将网站上的文字与已签核的文案进行比较。必须有人亲自对照两者进行阅读。
  • 页面与商定范围对比。 本技能没有任何操作知道哪些页面应该存在。一个从未被构建的页面对于爬虫来说是隐形的。

在呈现报告时,请将这两项大声说出来。一个网站可能通过了本技能中的所有检查,但仍然缺少了商定内容的一半。

参考资料

在解释某个维度的发现之前,请先阅读该维度的文件。每个文件都涵盖了发现的意义、在启动时为何重要、如何在常见技术栈上修复,以及该检查无法告诉您的内容。

文件涵盖内容
references/reading-the-report.md严重性等级、截图检查清单、“未覆盖”、向客户呈现
references/indexability.md爬取和清单、noindex、robots.txt、站点地图、规范化标签、hreflang
references/host.mdHTTPS、证书、www与根域名、重定向、安全头部、404页面
references/head.md标题、描述、标题标签、图标、社交卡片、结构化数据
references/links.md损坏和无法验证的链接、链接文本、mailto: 和 tel:
references/images.md替代文本、尺寸、加载策略、大小、格式、视频
references/forms.md清单、端点、分类及测试提交
references/accessibility.mdHTML基础、axe违规及十五分钟手动审查
references/performance.md提示与测量、Lighthouse以及工作排序
references/analytics.md标签检测、触发、同意及验证审查
references/content.md占位符、过期日期、联系方式变体
references/redirects.md过渡映射、redirects.csv以及编写规则
references/ops.md电子邮件认证、法律页面以及就绪检查清单

此技能的位置

pre-launch 是在部署前针对仓库运行的关卡。launch-audit 是当前技能:它仅报告,从不阻止。post-launch 在DNS迁移后立即运行,并将生产环境与本审计编写的基线进行差异比较。请按此顺序运行它们。

Individual skills in this repo

This repo contains 4 individual skills — each has its own dedicated page.

ethanplusai/astro-conversion-kit

Crawl a live website, read-only and paced, into a capture/ folder that a rebuild is checked against — every page's HTML, text and head tags, redirects with every hop, links, third-party scripts, the media set, stylesheets, fonts, logo and icons, feeds, templates, and live screenshots at three widths. Use before converting or rebuilding a site, when asked to crawl, capture, snapshot or inventory a site, or when a capture stopped on blocks and needs resuming.

ethanplusai/astro-conversion-kit

Convert a live website (WordPress first; Drupal, Webflow, Squarespace, Wix and static sites too) into a static Astro site with the same URLs, content, head tags, media, redirects and look, proven by parity gates and a pixel-level visual review, ending in one pull request, a noindexed staging deploy and a launch runbook. Use when asked to convert, rebuild, migrate or clone a site to Astro, when handed a site URL with this kit's link, to resume a conversion from .conversion/state.json, or with --apply <id> to apply one suggestion as a proposal.

ethanplusai/astro-conversion-kit

Freeze a site capture into baseline/ and prove an Astro build matches it — every route, redirect (one hop, through a simulation of the host), SEO head field, visible text, internal link, media file, sitemap entry, feed, form, third-party script and security header — with approved differences in exceptions.json and improvements in proposals.json. Use after a capture to build the baseline, when compiling redirects.csv for Vercel or Cloudflare, before calling any conversion page done, when a gate fails and needs reading, or to check a staging deploy against the baseline.

ethanplusai/astro-conversion-kit

The moment DNS moves and for the thirty days after — verifies the cutover (DNS propagation, certificate, http and www redirects, the noindex, robots and sitemap on the live host, every redirect the audit mapped, forms, analytics, the staging copy, the old host, security headers), diffs production against the pre-launch baseline, and schedules the watch. Use when asked did the launch work, is the site live, what should I check after launch, the domain just switched, or when a site went live in the last month and something looks wrong. It is read-only and exits 0 whatever it finds.

相关技能