Ship Gate 是一个上线前审计技能,用于在代码发布前扫描代码库,并针对八大类别报告通过(PASS)、失败(FAIL)或需人工确认(MANUAL)的结果。
用途 Ship Gate 的核心用途是在任何内容上线之前进行生产就绪性检查。当用户说出“push to production”“deploy”“ship it”“go live”或类似部署意图的短语时,该技能不会继续执行部署,而是先询问:“Have you run the ship gate? Want me to scan now?” 如果用户同意,则运行完整审计;如果用户表示已经运行过,则询问运行时间,若超过 24 小时或代码此后有变更,建议重新运行。
主要能力 该技能按顺序执行以下步骤:
第一步:检测技术栈。通过检查项目文件识别框架、数据库、部署目标、认证和 AI/LLM 使用情况。例如,存在 package.json 则识别为 Node.js 项目,并根据依赖中的 next、react、vue、svelte、astro、express、fastify、hono 等进一步判断具体框架;存在 requirements.txt 或 pyproject.toml 则识别为 Python 项目,并根据 django、flask、fastapi 判断框架;存在 go.mod 识别为 Go 项目,存在 Cargo.toml 识别为 Rust 项目。数据库检测包括 Supabase、Prisma、MongoDB、PostgreSQL、Firebase 等。部署目标检测包括 Vercel、Netlify、Docker/VPS、Fly.io、Railway、Platform.sh 等。认证检测包括 Clerk、NextAuth、Supabase Auth、Firebase Auth。AI/LLM 检测包括 OpenAI、Claude API、Gemini。检测完成后会先报告识别到的技术栈,以决定哪些检查项相关;在 references/checks.md 中标记为特定技术栈的检查项,若未检测到该技术栈则跳过。
第二步:运行自动化检查。按 SEC、DB、CODE、DEP、AI、DEPLOY、FE、OBS 的顺序运行类别,其中安全与数据库优先,因为它们产生最关键的发现。每个类别使用 references/patterns.md 中的模式运行 references/checks.md 中所有可自动扫描的检查项。每完成一个类别报告进度,例如 [1/8] Security: 3 FAIL, 12 PASS, 3 SKIP。结果分为 PASS(检查通过)、FAIL(发现问题,附带文件路径和行号)、SKIP(不适用于当前技术栈)。
第三步:人工确认。对于无法自动化的检查项(如备份恢复已测试、回滚计划存在、预发布测试通过),以清单形式呈现,请用户逐项确认。
第四步:给出结论。将结果分为三个严重级别:CRITICAL(上线前必须修复,如密钥暴露、路由无认证、无 HTTPS、SQL 注入向量、Supabase 表未启用 RLS);HIGH(上线前应修复,如无错误边界、无限流、生产环境存在 console.log、无分页);ADVISORY(建议但不阻塞,如无 OG 标签、无自定义 404、无分析、无 SBOM)。最终输出格式为 SHIP GATE REPORT,包含技术栈、扫描时间、各严重级别下的具体条目及文件位置,并给出结论:若存在 CRITICAL 项,结论为 DO NOT SHIP;若零 CRITICAL 项,结论为 CLEAR TO SHIP;若仅剩 HIGH 项,结论为 SHIP WITH CAUTION。
八大类别 每个类别有代码前缀,完整检查详情在 references/checks.md 中。
SEC(安全):15 项自动检查,3 项人工检查,0 项工具检查。 DB(数据库):7 项自动检查,5 项人工检查,0 项工具检查。 DEPLOY(部署):3 项自动检查,8 项人工检查,0 项工具检查。 CODE(代码质量):11 项自动检查,0 项人工检查,1 项工具检查。 AI(AI/LLM 安全):5 项自动检查,3 项人工检查,0 项工具检查。 DEP(依赖):5 项自动检查,0 项人工检查,1 项工具检查。 FE(前端质量):7 项自动检查,3 项人工检查,0 项工具检查。 OBS(可观测性):2 项自动检查,5 项人工检查,0 项工具检查。
使用方式 该技能通过检测技术栈、运行自动化检查、人工确认和给出结论四个步骤工作。它只审计,不修复。当发现问题时,会报告问题及文件位置和修复指导,由用户或其他技能(systematic-debugging、backend-patterns、shadcn-stack)处理修复。
适用场景 适用于在部署到生产环境之前对代码库进行生产就绪性审计,尤其适合需要覆盖安全、数据库、部署、代码质量、AI/LLM、依赖、前端和可观测性等多方面的项目。
限制 该技能不设置 CI/CD 流水线,不配置基础设施,不配置监控工具,且仅在部署前运行,不用于部署后。它只做审计,不负责修复问题。
集成点 karpathy-coder:在 karpathy-check 通过后运行 ship-gate,先保证简洁性,再检查生产就绪性。 adversarial-reviewer:对 ship-gate 标记为 critical 的项进行深度安全审查。 security-pen-testing:针对 SEC 类别发现的问题提供渗透测试方法论。 code-reviewer:通用代码质量审查,补充 ship-gate 的自动化检查。