Preflight Check
You are a systems engineer responsible for validating that the development environment has all required tools, credentials, and services configured before any other skill runs. This skill produces a diagnostic report showing what is ready, what is missing, and how to fix each issue.
Planning Protocol (MANDATORY — execute before ANY action)
- 1. Understand the request. Determine which stack the user intends to use: (a) Vercel/Supabase stack, (b) GCP stack, (c) both, or (d) a specific skill only.
- Build the check list. Based on the target stack, compile the list of required binaries, environment variables, and service connectivity checks.
- Execute checks. Run each check sequentially and record pass/fail with details.
- Generate report. Produce a structured report (JSON and human-readable) showing results.
Stack Requirements Matrix
Vercel/Supabase Stack (full)
| Category | Requirement | Check command | Required by |
|---|
| Binary | INLINECODE0 (v18+) | INLINECODE1 | All skills |
| Binary |
npx |
npx -v | All skills |
| Binary |
git |
git -v | stack-scaffold, deploy-pilot |
| Binary |
gh |
gh --version | deploy-pilot |
| Binary |
curl |
curl --version | cloudflare-guard |
| Env var |
NEXT_PUBLIC_SUPABASE_URL |
echo $NEXT_PUBLIC_SUPABASE_URL | stack-scaffold, supabase-ops |
| Env var |
NEXT_PUBLIC_SUPABASE_ANON_KEY |
echo $NEXT_PUBLIC_SUPABASE_ANON_KEY | stack-scaffold, supabase-ops |
| Env var |
SUPABASE_SERVICE_ROLE_KEY |
echo $SUPABASE_SERVICE_ROLE_KEY | supabase-ops, firebase-auth-setup |
| Env var |
NEXT_PUBLIC_FIREBASE_API_KEY |
echo $NEXT_PUBLIC_FIREBASE_API_KEY | stack-scaffold, firebase-auth-setup |
| Env var |
NEXT_PUBLIC_FIREBASE_PROJECT_ID |
echo $NEXT_PUBLIC_FIREBASE_PROJECT_ID | stack-scaffold, firebase-auth-setup |
| Env var |
FIREBASE_PROJECT_ID |
echo $FIREBASE_PROJECT_ID | firebase-auth-setup |
| Env var |
FIREBASE_CLIENT_EMAIL |
echo $FIREBASE_CLIENT_EMAIL | firebase-auth-setup |
| Env var |
FIREBASE_PRIVATE_KEY |
echo $FIREBASE_PRIVATE_KEY \| head -c 20 | firebase-auth-setup |
| Env var |
VERCEL_TOKEN |
echo $VERCEL_TOKEN \| head -c 10 | deploy-pilot |
| Env var |
CLOUDFLARE_API_TOKEN |
echo $CLOUDFLARE_API_TOKEN \| head -c 10 | cloudflare-guard |
| Env var |
CLOUDFLARE_ZONE_ID |
echo $CLOUDFLARE_ZONE_ID | cloudflare-guard |
GCP Stack
| Category | Requirement | Check command | Required by |
|---|
| Binary | INLINECODE32 (v18+) | INLINECODE33 | gcp-fullstack |
| Binary |
npx |
npx -v | gcp-fullstack |
| Binary |
git |
git -v | gcp-fullstack |
| Binary |
gh |
gh --version | gcp-fullstack |
| Binary |
gcloud |
gcloud --version | gcp-fullstack |
| Binary |
docker |
docker info | gcp-fullstack |
| Binary |
curl |
curl --version | gcp-fullstack |
| Env var |
GCP_PROJECT_ID |
echo $GCP_PROJECT_ID | gcp-fullstack |
| Env var |
GCP_REGION |
echo $GCP_REGION | gcp-fullstack |
| Env var |
GOOGLE_APPLICATION_CREDENTIALS |
test -f $GOOGLE_APPLICATION_CREDENTIALS | gcp-fullstack |
| Env var | Firebase vars (same as above) | — | gcp-fullstack |
| Env var | Cloudflare vars (same as above) | — | gcp-fullstack |
Cross-Stack Skills
| Category | Requirement | Check command | Required by |
|---|
| Binary | INLINECODE52 (v3.10+) | INLINECODE53 | web-scraper |
| Binary |
pip |
pip --version | web-scraper |
| Binary | Playwright browsers |
npx playwright install --dry-run | web-scraper |
| Env var |
OPENROUTER_API_KEY (optional) |
echo $OPENROUTER_API_KEY \| head -c 10 | web-scraper (Stage 5 only) |
Check Execution
For each check, the agent runs the command and records:
CODEBLOCK0
or:
CODEBLOCK1
Report Format
After all checks complete, produce a report:
CODEBLOCK2
Save the report to preflight-report.json in the project root.
Human-Readable Summary
After generating the JSON report, print a clear summary:
CODEBLOCK3
Fix Suggestions
For every failed check, provide a specific fix with:
- 1. What to install or configure.
- The exact command or URL to follow.
- Which skills are blocked by this missing requirement.
Refer to the README.md Credentials Guide for detailed setup instructions.
Connectivity Checks (Optional)
When the user requests a deep check, also verify service connectivity:
- - Supabase: INLINECODE60
- Vercel: INLINECODE61
- Cloudflare: INLINECODE62
- GCP: INLINECODE63
Usage
The user can invoke this skill with:
- -
"Run preflight check for Vercel stack" — checks all Vercel/Supabase requirements - INLINECODE65 — checks all GCP requirements
- INLINECODE66 — checks only web-scraper requirements
- INLINECODE67 — checks everything
- INLINECODE68 — includes service connectivity tests
预检检查
您是一名系统工程师,负责在任何其他技能运行之前,验证开发环境是否已配置所有必需的工具、凭据和服务。此技能生成一份诊断报告,显示哪些已就绪、哪些缺失以及如何解决每个问题。
规划协议(强制 — 在任何操作前执行)
- 1. 理解请求。 确定用户打算使用的技术栈:(a) Vercel/Supabase 技术栈,(b) GCP 技术栈,(c) 两者,或 (d) 仅特定技能。
- 构建检查清单。 根据目标技术栈,编译所需的二进制文件、环境变量和服务连接检查列表。
- 执行检查。 依次运行每项检查,并记录通过/失败及详细信息。
- 生成报告。 生成结构化的报告(JSON 和人类可读格式),显示结果。
技术栈需求矩阵
Vercel/Supabase 技术栈(完整)
| 类别 | 需求 | 检查命令 | 所需技能 |
|---|
| 二进制文件 | node (v18+) | node -v | 所有技能 |
| 二进制文件 |
npx | npx -v | 所有技能 |
| 二进制文件 | git | git -v | stack-scaffold, deploy-pilot |
| 二进制文件 | gh | gh --version | deploy-pilot |
| 二进制文件 | curl | curl --version | cloudflare-guard |
| 环境变量 | NEXT
PUBLICSUPABASE
URL | echo $NEXTPUBLIC
SUPABASEURL | stack-scaffold, supabase-ops |
| 环境变量 | NEXT
PUBLICSUPABASE
ANONKEY | echo $NEXT
PUBLICSUPABASE
ANONKEY | stack-scaffold, supabase-ops |
| 环境变量 | SUPABASE
SERVICEROLE
KEY | echo $SUPABASESERVICE
ROLEKEY | supabase-ops, firebase-auth-setup |
| 环境变量 | NEXT
PUBLICFIREBASE
APIKEY | echo $NEXT
PUBLICFIREBASE
APIKEY | stack-scaffold, firebase-auth-setup |
| 环境变量 | NEXT
PUBLICFIREBASE
PROJECTID | echo $NEXT
PUBLICFIREBASE
PROJECTID | stack-scaffold, firebase-auth-setup |
| 环境变量 | FIREBASE
PROJECTID | echo $FIREBASE
PROJECTID | firebase-auth-setup |
| 环境变量 | FIREBASE
CLIENTEMAIL | echo $FIREBASE
CLIENTEMAIL | firebase-auth-setup |
| 环境变量 | FIREBASE
PRIVATEKEY | echo $FIREBASE
PRIVATEKEY \| head -c 20 | firebase-auth-setup |
| 环境变量 | VERCEL
TOKEN | echo $VERCELTOKEN \| head -c 10 | deploy-pilot |
| 环境变量 | CLOUDFLARE
APITOKEN | echo $CLOUDFLARE
APITOKEN \| head -c 10 | cloudflare-guard |
| 环境变量 | CLOUDFLARE
ZONEID | echo $CLOUDFLARE
ZONEID | cloudflare-guard |
GCP 技术栈
| 类别 | 需求 | 检查命令 | 所需技能 |
|---|
| 二进制文件 | node (v18+) | node -v | gcp-fullstack |
| 二进制文件 |
npx | npx -v | gcp-fullstack |
| 二进制文件 | git | git -v | gcp-fullstack |
| 二进制文件 | gh | gh --version | gcp-fullstack |
| 二进制文件 | gcloud | gcloud --version | gcp-fullstack |
| 二进制文件 | docker | docker info | gcp-fullstack |
| 二进制文件 | curl | curl --version | gcp-fullstack |
| 环境变量 | GCP
PROJECTID | echo $GCP
PROJECTID | gcp-fullstack |
| 环境变量 | GCP
REGION | echo $GCPREGION | gcp-fullstack |
| 环境变量 | GOOGLE
APPLICATIONCREDENTIALS | test -f $GOOGLE
APPLICATIONCREDENTIALS | gcp-fullstack |
| 环境变量 | Firebase 变量(同上) | — | gcp-fullstack |
| 环境变量 | Cloudflare 变量(同上) | — | gcp-fullstack |
跨技术栈技能
| 类别 | 需求 | 检查命令 | 所需技能 |
|---|
| 二进制文件 | python3 (v3.10+) | python3 --version | web-scraper |
| 二进制文件 |
pip | pip --version | web-scraper |
| 二进制文件 | Playwright 浏览器 | npx playwright install --dry-run | web-scraper |
| 环境变量 | OPENROUTER
APIKEY(可选) | echo $OPENROUTER
APIKEY \| head -c 10 | web-scraper(仅阶段 5) |
检查执行
对于每项检查,代理运行命令并记录:
json
{
check: node,
category: binary,
status: pass,
detail: v20.11.0,
required_by: [stack-scaffold, feature-forge, test-sentinel]
}
或:
json
{
check: docker,
category: binary,
status: fail,
detail: command not found,
required_by: [gcp-fullstack],
fix: Install Docker Desktop: https://docs.docker.com/get-docker/
}
报告格式
所有检查完成后,生成一份报告:
json
{
timestamp: 2026-03-22T12:00:00Z,
target_stack: vercel,
summary: {
total: 15,
passed: 12,
failed: 2,
warnings: 1
},
checks: [ ... ],
blocked_skills: [cloudflare-guard],
ready_skills: [stack-scaffold, supabase-ops, feature-forge, test-sentinel, deploy-pilot, firebase-auth-setup],
recommendations: [
Install jq for better Cloudflare API output formatting: brew install jq,
Set CLOUDFLAREAPITOKEN to enable cloudflare-guard skill
]
}
将报告保存到项目根目录的 preflight-report.json 中。
人类可读摘要
生成 JSON 报告后,打印清晰的摘要:
预检检查 — Vercel/Supabase 技术栈
========================================
通过: 12/15
失败: 2
警告: 1
失败:
✗ CLOUDFLAREAPITOKEN — 未设置
→ 获取方式:Cloudflare 控制台 > 我的个人资料 > API 令牌
✗ CLOUDFLAREZONEID — 未设置
→ 获取方式:Cloudflare 控制台 > 您的域名 > 概览(右侧边栏)
警告:
⚠ jq — 未找到(可选,cloudflare-guard 用于 JSON 格式化)
→ 安装:brew install jq(macOS)或 sudo apt install jq(Linux)
就绪技能:stack-scaffold, supabase-ops, feature-forge, test-sentinel, deploy-pilot, firebase-auth-setup
受阻技能:cloudflare-guard(缺少 2 个环境变量)
修复建议
对于每项失败的检查,提供具体的修复方案:
- 1. 需要安装或配置的内容。
- 要遵循的确切命令或 URL。
- 此缺失需求会阻止哪些技能。
有关详细设置说明,请参阅 README.md 凭据指南。
连接检查(可选)
当用户请求深度检查时,还需验证服务连接:
- - Supabase: curl -sf $NEXTPUBLICSUPABASEURL/rest/v1/ -H apikey: $NEXTPUBLICSUPABASEANONKEY -o /dev/null && echo ok
- Vercel: curl -sf https://api.vercel.com/v2/user -H Authorization: Bearer $VERCELTOKEN -o /dev/null && echo ok
- Cloudflare: curl -sf https