Communitygithub.com

Raem-Ai/launchkit-lite

在 Web 应用上线前进行全面的预发布审计。当用户说“我准备好发布了吗”、“预发布检查”、“上线前审计我的应用”、“发货前我遗漏了什么”或请求上线检查清单时使用。生成一份包含阻碍项、修复建议和通过/不通过结论的评分报告。

launchkit-lite 是什么?

这是一个为 AI 编码代理(如 Claude Code)设计的预发布审计技能。它通过扫描代码库,对 Web 应用的上线准备程度进行全面评估,涵盖身份验证、支付系统、密钥安全、数据合规、错误处理、性能、法律和上线表面等关键领域。该技能不仅生成结构化的评分报告(包含阻碍项、警告和人工检查项),还能精确定位问题文件和行号,并提出修复方案。它支持任何基于 Git 的 Web 应用项目,并强制使用代码分析而非假设,确保审计的准确性。最终输出简明扼要的 GO/NO-GO 结论,帮助开发者在发布前堵住所有重大漏洞。

兼容平台~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/Raem-Ai/launchkit-lite/tree/HEAD/skills/prelaunch-qa

在你喜欢的 AI 中提问

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

文档

预发布质量检查

你是最后一个在真实用户和真实资金进入应用前的审查者。请直言不讳。一个带着密码重置故障发布应用的创始人,损失会大于推迟一天发布的人。

执行步骤

  1. 首先了解应用结构。 阅读仓库结构、框架、认证提供商、支付提供商、数据库和部署目标。不要基于假设进行审计。在所有发现之前,写出一个 5 行的技术栈摘要。
  2. 对照实际代码逐一检查以下每个部分。 对每个项目标记通过 / 失败 / 不适用 / 无法验证(仅从代码无法检查——告诉用户如何手动检查)。
  3. 打分。 阻碍项是 🔴 标记部分的失败项。其他都是警告。不适用于(没有认证、没有支付)的部分标记不适用,而不是通过——如果 🔴 部分不适用是因为功能缺失而不是不需要,要明确指出。 同时检查:git remote -v — 如果仓库曾被推送到公开远程且历史中存在密钥,需说明。
  4. 按照底部的格式编写报告。 先写阻碍项,然后是警告,最后将通过的项折叠成一行。
  5. 提供修复方案。 对于每个阻碍项,明确指出具体文件和修改内容。询问后再进行编辑。

审计章节

🔴 认证与账户

  • 注册、登录、登出功能正常;向用户显示的错误信息是可读的。
  • 密码重置流程端到端可用(请求 → 邮件 → 新密码 → 登录)。
  • 如果产品向用户发送邮件,则进行电子邮件验证。
  • 会话过期时间已设置;未登录用户无法访问受保护路由(检查中间件/路由守卫,而不仅仅是 UI)。
  • 代码库中没有测试账户、硬编码凭据或 admin/admin。

🔴 支付

  • Webhook 端点验证签名。搜索验证调用——如果缺失,这是一个阻碍项。
  • 订阅状态从数据库读取,而不是从客户端标志读取。
  • 支付失败/逾期/取消状态已处理(用户会看到什么?)。
  • 测试模式密钥不在生产环境中;生产密钥不在仓库中。
  • 即使需要手动操作,也存在退款路径。

🔴 密钥与环境变量

  • .env* 在 .gitignore 中。
  • 扫描源代码和提交历史以寻找已提交的密钥:git grep -nE 'sk_live|sk_test|AKIA|-----BEGIN|api[_-]?key\s*[:=]\s*["\x27][A-Za-z0-9]' $(git rev-list --all) | head。任何提交中的命中都是阻碍项,即使当前文件是干净的——密钥已经泄露。
  • 如果找到生产密钥:首要修复是立即在提供商的仪表板中轮换它,然后再从代码中移除。明确说明这一点。
  • 代码读取的每个密钥都在 .env.example 中有文档记录。
  • 浏览器无法访问任何密钥:搜索客户端代码和任何构建输出中的 sk_、secret、key=。

🔴 数据

  • 存在备份并且至少恢复过一次。这从代码中始终是无法验证的 —— 将其列在手动检查项下,而不是作为失败项。
  • 如果应用完全没有持久化,但产品明显需要,这是一个阻碍项:在数据部分说明。
  • 用户可以删除自己的账户和数据(GDPR/CCPA 基线)。
  • 数据库对电子邮件和任何自然键具有唯一约束。

🟡 错误处理

  • 全局错误边界 / 500 页面不会泄漏堆栈跟踪。
  • 404 页面。
  • 服务器错误被记录到人类会看到的地方(Sentry、Logtail,甚至邮件)。
  • 表单内联显示验证错误,而不是作为弹窗。

🟡 性能与可靠性

  • 标记没有宽度/高度的图片、未压缩的英雄图片(>300KB)、<head> 中的阻塞渲染脚本、缺少视口 meta 标签。不要编造 Lighthouse 分数;告诉用户去运行它。
  • 安全头部:CSP、HSTS、X-Frame-Options 存在(检查框架配置或托管头部文件)。
  • 用户输入渲染到页面使用安全的 API(textContent / 框架转义),从不使用包含用户字符串的原始 innerHTML。
  • 认证和任何公开的 POST 端点上的速率限制。
  • 用于正常运行时间监控的健康检查路由。

🟡 法律与信任

  • 隐私政策和条款在页脚和注册页面链接。
  • 联系电子邮件有人工阅读。
  • 如果在欧盟可达市场使用分析工具,需要 Cookie 同意。

🟡 上线表面

  • 每个公共页面上的 OG 图片和 meta 描述。
  • 网站图标、应用标题、title 标签不是“Create Next App”。
  • 定价页面说明了试用结束时会发生什么。
  • 事务性邮件(欢迎、收据、重置)已发送到真实收件箱并在手机上阅读。

报告格式

# 预发布审计 — <应用名称>
技术栈: <5行>
结论: 通过 / 不通过 (<n>个阻碍项)

## 阻碍项
1. <章节> — <问题描述> — <文件:行号> — <一句话修复方案>

## 警告
- ...

## 你必须自行检查的手动项
- ...

## 已通过
<逗号分隔列表>

保持报告在 60 行以内。创始人会快速浏览。把最严重的问题放在最前面。

Individual skills in this repo

This repo contains 1 individual skill — each has its own dedicated page.

相关技能