关于 ship-gate
Ship Gate 是面向开发团队的部署前代码库审计 Skill,检查项目的生产就绪情况。它覆盖八类自动扫描与人工确认,并按严重程度和代码位置报告问题。
主要功能
- 01识别项目技术栈
- 02扫描八类审计项目
- 03区分自动检查与人工确认
- 04按严重性和代码位置报告
- 05提供问题修复指引
适用场景
- 01部署前审计代码库
- 02检查安全与数据库风险
- 03确认发布准备情况的人工项目
- 04生产发布前复核审计结果
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ alirezarezvani/ claude-skills --skill ship-gate安装后在 Claude Code 中输入/ship-gate确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
references/checks.mdpatterns.mdscripts/ship_gate_scanner.py详细介绍
发布门禁
上线前审计:扫描代码库,并在发布前对 8 个类别报告通过/失败/需手动确认。
拦截行为
当用户说“推送到生产环境”“部署”“发布吧”“上线”或类似表达部署意图的话时,不要继续部署。请改为:
- 询问:“你运行过发布门禁了吗?需要我现在扫描吗?”
- 如果用户回答是,则运行下面的完整审计。
- 如果用户说已经运行过,则询问运行时间。如果超过 24 小时,或此后代码有变更,建议重新运行。
工作原理
步骤 1:检测技术栈
按顺序运行以下检查,以识别项目技术栈:
Framework detection:
package.json exists -> Node.js project
"next" in dependencies -> Next.js
"react" in dependencies -> React (if not Next.js)
"vue" in dependencies -> Vue
"svelte" in dependencies -> Svelte
"astro" in dependencies -> Astro
"express" in dependencies -> Express
"fastify" in dependencies -> Fastify
"hono" in dependencies -> Hono
requirements.txt or pyproject.toml -> Python project
"django" present -> Django
"flask" present -> Flask
"fastapi" present -> FastAPI
go.mod exists -> Go project
Cargo.toml exists -> Rust project
Database detection:
"@supabase/supabase-js" in package.json -> Supabase
supabase/ directory exists -> Supabase
"prisma" in dependencies -> Prisma (check schema for DB type)
"mongoose" in dependencies -> MongoDB
"pg" or "postgres" in dependencies -> PostgreSQL
firebase.json or .firebaserc exists -> Firebase
Deploy target detection:
vercel.json or .vercel/ exists -> Vercel
netlify.toml exists -> Netlify
Dockerfile exists -> Docker/VPS
fly.toml exists -> Fly.io
railway.json exists -> Railway
.platform/applications.yaml -> Platform.sh
Auth detection:
"@clerk" in dependencies -> Clerk
"next-auth" in dependencies -> NextAuth
"@supabase/auth-helpers" in deps -> Supabase Auth
"firebase/auth" in imports -> Firebase Auth
AI/LLM detection:
"openai" in dependencies -> OpenAI
"@anthropic-ai/sdk" in dependencies -> Claude API
"@google/generative-ai" in deps -> Gemini
继续之前先报告检测到的技术栈。这将决定哪些检查适用。references/checks.md 中标注特定技术栈的检查,如果未检测到该技术栈,则跳过。
步骤 2:运行自动化检查
按以下顺序运行各类别:SEC、DB、CODE、DEP、AI、DEPLOY、FE、OBS。首先检查安全和数据库,因为它们会产生最关键的发现。
对于每个类别,使用 references/patterns.md 中的模式,运行 references/checks.md 中所有可自动扫描的检查。
每个类别检查完成后报告进度:
[1/8] Security: 3 FAIL, 12 PASS, 3 SKIP
[2/8] Database: 1 FAIL, 5 PASS, 6 SKIP
...
按以下方式报告结果:
- PASS:检查通过
- FAIL:发现问题(附文件路径和行号)
- SKIP:不适用于此技术栈
步骤 3:手动确认
对于无法自动化的检查(是否测试过备份恢复、是否有回滚计划、是否通过暂存环境测试),请列出清单,并询问用户逐项确认。
步骤 4:判定结果
将结果分为三个严重级别:
- CRITICAL:发布前必须修复(密钥暴露、路由无身份验证、没有 HTTPS、存在 SQL 注入风险、Supabase 表没有 RLS)
- HIGH:发布前应该修复(没有错误边界、没有速率限制、生产环境中存在 console.logs、没有分页)
- ADVISORY:建议修复,但不会阻止发布(没有 OG 标签、没有自定义 404 页面、没有分析功能、没有 SBOM)
最终输出:
SHIP GATE REPORT
================
Stack: Next.js + Supabase + Vercel
Scan time: 12s
CRITICAL (3 items, must fix)
FAIL [SEC-01] API key found in src/lib/api.ts:14
FAIL [DB-07] RLS not enabled on "profiles" table
FAIL [SEC-05] No CSRF protection on /api/checkout
HIGH (5 items, should fix)
FAIL [CODE-01] 12 console.log statements in production code
FAIL [CODE-03] Empty catch block in src/utils/auth.ts:45
FAIL [DEP-04] 3 critical npm audit vulnerabilities
FAIL [DEPLOY-05] No rollback plan documented
MANUAL [DEPLOY-06] Staging test not confirmed
ADVISORY (4 items, recommended)
FAIL [FE-01] Missing OG meta tags
FAIL [FE-03] No custom 404 page
PASS [OBS-01] Error monitoring configured
SKIP [AI-01] No AI/LLM usage detected
VERDICT: DO NOT SHIP (3 critical issues)
Fix critical items and re-run.
如果没有剩余的 CRITICAL 项,则判定结果为:可以发布。 如果只剩下 HIGH 项,则判定结果为:谨慎发布(确认已知风险)。
类别
共八个类别,每个类别都有代码前缀。完整检查详情见 references/checks.md。
| 前缀 | 类别 | 自动检查 | 手动检查 | 工具 |
|---|---|---|---|---|
| SEC | 安全 | 15 | 3 | 0 |
| DB | 数据库 | 7 | 5 | 0 |
| DEPLOY | 部署 | 3 | 8 | 0 |
| CODE | 代码质量 | 11 | 0 | 1 |
| AI | AI/大模型安全 | 5 | 3 | 0 |
| DEP | 依赖项 | 5 | 0 | 1 |
| FE | 前端质量 | 7 | 3 | 0 |
| OBS | 可观测性 | 2 | 5 | 0 |
范围
此技能负责审计,不负责修复。发现问题时,会报告问题所在的文件位置,并提供修复指导。由用户或其他技能(systematic-debugging、backend-patterns、shadcn-stack)处理修复。
此技能不会:
- 设置 CI/CD 流水线
- 配置基础设施
- 配置监控工具
- 在部署后运行(仅用于部署前)
集成点
- karpathy-coder:karpathy-check 通过后运行 ship-gate——先追求简洁,再确保具备生产就绪条件
- adversarial-reviewer:对 ship-gate 标记为关键的问题进行深入安全审查
- security-pen-testing:为 SEC 类别的发现提供渗透测试方法
- code-reviewer:通用代码质量审查,可补充 ship-gate 的自动化检查