Agent Skillsfanfan-de/anybox › bootstrap

bootstrap

GitHub

Vercel项目初始化编排工具,按严格顺序执行仓库链接、环境变量同步、数据库及认证资源配置,确保开发环境正确就绪。

plugins/Anybox-Plugins/vercel/skills/bootstrap/SKILL.md fanfan-de/anybox

触发场景

新建或修复依赖 Vercel 资源的仓库 需要自动化配置 Vercel 集成与环境变量

安装

npx skills add fanfan-de/anybox --skill bootstrap -g -y
更多选项

非标准路径

npx skills add https://github.com/fanfan-de/anybox/tree/master/plugins/Anybox-Plugins/vercel/skills/bootstrap -g -y

不安装直接使用

npx skills use fanfan-de/anybox@bootstrap

指定 Agent (Claude Code)

npx skills add fanfan-de/anybox --skill bootstrap -a claude-code -g -y

安装 repo 全部 skill

npx skills add fanfan-de/anybox --all -g -y

预览 repo 内 skill

npx skills add fanfan-de/anybox --list

SKILL.md

Frontmatter
{
    "name": "bootstrap",
    "chainTo": [
        {
            "message": "@vercel\/postgres and @vercel\/kv are sunset — loading Vercel Storage guidance for Neon and Upstash migration.",
            "pattern": "@vercel\/(postgres|kv)|\\b(KV_REST_API_URL|POSTGRES_URL)\\b",
            "targetSkill": "vercel-storage"
        },
        {
            "message": "Auth library detected during bootstrap — loading Auth guidance for Clerk Marketplace setup and middleware patterns.",
            "pattern": "from\\s+['\"\"](next-auth|@auth\/core|@clerk\/nextjs|better-auth)['\"\"]",
            "targetSkill": "auth"
        },
        {
            "message": "AI provider env vars detected — loading Environment Variables guidance for OIDC-based auth via vercel env pull.",
            "pattern": "OPENAI_API_KEY|ANTHROPIC_API_KEY|AI_GATEWAY",
            "targetSkill": "env-vars",
            "skipIfFileContains": "VERCEL_OIDC|vercel env pull"
        }
    ],
    "metadata": {
        "docs": [
            "https:\/\/vercel.com\/docs\/getting-started-with-vercel",
            "https:\/\/nextjs.org\/docs\/getting-started\/installation"
        ],
        "sitemap": "https:\/\/vercel.com\/sitemap\/docs.xml",
        "priority": 8,
        "bashPatterns": [
            "\\\\bcp\\\\s+\\\\.env\\\\.(?:example|sample|template)\\\\s+\\\\.env\\\\.local\\\\b",
            "\\\\b(?:npm|pnpm|bun|yarn)\\\\s+run\\\\s+db:(?:push|seed|migrate|generate)\\\\b",
            "\\\\b(?:npm|pnpm|bun|yarn)\\\\s+run\\\\s+dev\\\\b",
            "\\\\bvercel\\\\s+link\\\\b",
            "\\\\bvercel\\\\s+integration\\\\s+(?:add|install)\\\\b",
            "\\\\bvercel\\\\s+env\\\\s+pull\\\\b"
        ],
        "pathPatterns": [
            ".env.example",
            ".env.sample",
            ".env.template",
            "README*",
            "docs\/**\/setup*",
            "package.json",
            "drizzle.config.*",
            "prisma\/schema.prisma",
            "auth.*",
            "src\/**\/auth.*"
        ],
        "importPatterns": [
            "@neondatabase\/serverless",
            "drizzle-orm",
            "@upstash\/redis",
            "@vercel\/blob",
            "@vercel\/edge-config",
            "next-auth",
            "@auth\/core",
            "better-auth"
        ]
    },
    "retrieval": {
        "aliases": [
            "project setup",
            "repo init",
            "getting started",
            "scaffold"
        ],
        "intents": [
            "set up project",
            "initialize repo",
            "link vercel project",
            "pull env vars"
        ],
        "entities": [
            "vercel link",
            "env pull",
            "database setup",
            "first run"
        ]
    },
    "description": "Project bootstrapping orchestrator for repos that depend on Vercel-linked resources (databases, auth, and managed integrations). Use when setting up or repairing a repository so linking, environment provisioning, env pulls, and first-run db\/dev commands happen in the correct safe order."
}

Project Bootstrap Orchestrator

Execute bootstrap in strict order. Do not run migrations or development server until project linking and environment verification are complete.

Rules

  • Do not run db:push, db:migrate, db:seed, or dev until Vercel linking is complete and env keys are verified.
  • Prefer Vercel-managed provisioning (vercel integration ...) for shared resources.
  • Use provider CLIs only as fallback when Vercel integration flow is unavailable.
  • Never echo secret values in terminal output, logs, or summaries.

Preflight

  1. Confirm Vercel CLI is installed and authenticated.
vercel --version
vercel whoami
  1. Confirm repo linkage by checking .vercel/project.json.
  2. If not linked, inspect available teams/projects before asking the user to choose:
vercel teams ls
vercel projects ls --scope <team>
vercel link --yes --scope <team> --project <project>
  1. Find the env template in priority order: .env.example, .env.sample, .env.template.
  2. Create local env file if missing:
cp .env.example .env.local

Resource Setup: Postgres

Preferred path (Vercel-managed Neon)

  1. Read integration setup guidance:
vercel integration guide neon
  1. Add Neon integration to the Vercel scope:
vercel integration add neon --scope <team>
  1. Verify expected environment variable names exist in Vercel and pull locally:
vercel env ls
vercel env pull .env.local --yes

Fallback path 1 (Dashboard)

  1. Provision Neon through the Vercel dashboard integration UI.
  2. Re-run vercel env pull .env.local --yes.

Fallback path 2 (Neon CLI)

Use Neon CLI only when Vercel-managed provisioning is unavailable. After creating resources, add required env vars in Vercel and pull again.

AUTH_SECRET Generation

Generate a high-entropy secret without printing it, then store it in Vercel and refresh local env:

AUTH_SECRET="$(node -e "console.log(require('node:crypto').randomBytes(32).toString('base64url'))")"
printf "%s" "$AUTH_SECRET" | vercel env add AUTH_SECRET development preview production
unset AUTH_SECRET
vercel env pull .env.local --yes

Env Verification

Compare required keys from template file against .env.local keys (names only, never values):

template_file=""
for candidate in .env.example .env.sample .env.template; do
  if [ -f "$candidate" ]; then
    template_file="$candidate"
    break
  fi
done

comm -23 \
  <(grep -E '^[A-Za-z_][A-Za-z0-9_]*=' "$template_file" | cut -d '=' -f 1 | sort -u) \
  <(grep -E '^[A-Za-z_][A-Za-z0-9_]*=' .env.local | cut -d '=' -f 1 | sort -u)

Proceed only when missing key list is empty.

App Setup

After linkage + env verification:

npm run db:push
npm run db:seed
npm run dev

Use the repository package manager (npm, pnpm, bun, or yarn) and run only scripts that exist in package.json.

UI Baseline for Next.js + shadcn Projects

After linkage and env verification, establish the UI foundation before feature work:

  1. Add a baseline primitive set: npx shadcn@latest add button card input label textarea select switch tabs dialog alert-dialog sheet dropdown-menu badge separator skeleton table
  2. Apply the Geist font fix in layout.tsx and globals.css.
  3. Confirm the app shell uses bg-background text-foreground.
  4. Default to dark mode for product, admin, and AI apps unless the repo is clearly marketing-first.

Bootstrap Verification

Confirm each checkpoint:

  • vercel whoami succeeds.
  • .vercel/project.json exists and matches chosen project.
  • Postgres integration path completed (Vercel integration, dashboard, or provider CLI fallback).
  • vercel env pull .env.local --yes succeeds.
  • Required env key diff is empty.
  • Database command status is recorded (db:push, db:seed, db:migrate, db:generate as applicable).
  • dev command starts without immediate config/auth/env failure.

If verification fails, stop and report exact failing step plus remediation.

Summary Format

Return a final bootstrap summary in this format:

## Bootstrap Result
- **Linked Project**: <team>/<project>
- **Resource Path**: vercel-integration-neon | dashboard-neon | neon-cli
- **Env Keys**: <count> required, <count> present, <count> missing
- **Secrets**: AUTH_SECRET set in Vercel (value never shown)
- **Migration Status**: not-run | success | failed (<step>)
- **Dev Result**: not-run | started | failed

Bootstrap Next Steps

  • If env keys are still missing, add the missing keys in Vercel and re-run vercel env pull .env.local --yes.
  • If DB commands fail, fix connectivity/schema issues and re-run only the failed db step.
  • If dev fails, resolve runtime errors, then restart with your package manager's run dev.

next-forge Projects

If the project was scaffolded with npx next-forge init (detected by pnpm-workspace.yaml + packages/auth + packages/database + @repo/* imports):

  1. Env files are per-app (apps/app/.env.local, apps/web/.env.local, apps/api/.env.local) plus packages/database/.env.
  2. Run pnpm migrate (not db:push) — it runs prisma format + prisma generate + prisma db push.
  3. Minimum env vars: DATABASE_URL, CLERK_SECRET_KEY, NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY, NEXT_PUBLIC_APP_URL, NEXT_PUBLIC_WEB_URL, NEXT_PUBLIC_API_URL.
  4. Optional services (Stripe, Resend, PostHog, etc.) can be skipped initially — but remove their @repo/* imports from app env.ts files to avoid validation errors.
  5. Deploy as 3 separate Vercel projects with root directories apps/app, apps/api, apps/web.

=> skill: next-forge — Full next-forge monorepo guide

版本历史

  • 08dc189 当前 2026-07-05 19:11

同 Skill 集合

.agents/skills/anybox-frontend-guidelines/SKILL.md
.agents/skills/anybox-mobile-release/SKILL.md
.agents/skills/anybox-plugin/SKILL.md
.agents/skills/deploy-anybox-tencent-docker-windows/SKILL.md
.agents/skills/deploy-anybox-tencent-server/SKILL.md
.agents/skills/fanfande-frontend-style/SKILL.md
.agents/skills/fanfande-plugin-structure/SKILL.md
.agents/skills/frontend-ui-style-kit/SKILL.md
.agents/skills/obsidian-like/SKILL.md
.agents/skills/pdf/SKILL.md
.agents/skills/transcribe/SKILL.md
.agents/skills/zhihu-md-publisher/SKILL.md
.anybox/skills/anybox-plugin-development/SKILL.md
.anybox/skills/anybox-start-dev/SKILL.md
packages/chrome-plugin/runtime/skills/chrome/SKILL.md
plugins/Anybox-Plugins/anybox-plugin-development/skills/anybox-plugin-development/SKILL.md
plugins/Anybox-Plugins/atlassian-rovo/skills/capture-tasks-from-meeting-notes/SKILL.md
plugins/Anybox-Plugins/atlassian-rovo/skills/generate-status-report/SKILL.md
plugins/Anybox-Plugins/box/skills/box/SKILL.md
plugins/Anybox-Plugins/browser/skills/browser/SKILL.md
plugins/Anybox-Plugins/build-ios-apps/skills/ios-app-intents/SKILL.md
plugins/Anybox-Plugins/build-ios-apps/skills/ios-debugger-agent/SKILL.md
plugins/Anybox-Plugins/build-ios-apps/skills/ios-ettrace-performance/SKILL.md
plugins/Anybox-Plugins/build-ios-apps/skills/ios-memgraph-leaks/SKILL.md
plugins/Anybox-Plugins/build-ios-apps/skills/ios-simulator-browser/SKILL.md
plugins/Anybox-Plugins/build-ios-apps/skills/swiftui-liquid-glass/SKILL.md
plugins/Anybox-Plugins/build-ios-apps/skills/swiftui-performance-audit/SKILL.md
plugins/Anybox-Plugins/build-ios-apps/skills/swiftui-ui-patterns/SKILL.md
plugins/Anybox-Plugins/build-ios-apps/skills/swiftui-view-refactor/SKILL.md
plugins/Anybox-Plugins/build-macos-apps/skills/appkit-interop/SKILL.md
plugins/Anybox-Plugins/build-macos-apps/skills/build-run-debug/SKILL.md
plugins/Anybox-Plugins/build-macos-apps/skills/liquid-glass/SKILL.md
plugins/Anybox-Plugins/build-macos-apps/skills/packaging-notarization/SKILL.md
plugins/Anybox-Plugins/build-macos-apps/skills/signing-entitlements/SKILL.md
plugins/Anybox-Plugins/build-macos-apps/skills/swiftpm-macos/SKILL.md
plugins/Anybox-Plugins/build-macos-apps/skills/swiftui-patterns/SKILL.md
plugins/Anybox-Plugins/build-macos-apps/skills/telemetry/SKILL.md
plugins/Anybox-Plugins/build-macos-apps/skills/test-triage/SKILL.md
plugins/Anybox-Plugins/build-macos-apps/skills/view-refactor/SKILL.md
plugins/Anybox-Plugins/build-macos-apps/skills/window-management/SKILL.md
plugins/Anybox-Plugins/build-web-apps/skills/frontend-app-builder/SKILL.md
plugins/Anybox-Plugins/build-web-apps/skills/frontend-testing-debugging/SKILL.md
plugins/Anybox-Plugins/build-web-apps/skills/react-best-practices/SKILL.md
plugins/Anybox-Plugins/build-web-apps/skills/shadcn-best-practices/SKILL.md
plugins/Anybox-Plugins/build-web-apps/skills/supabase-best-practices/SKILL.md
plugins/Anybox-Plugins/canva/skills/canva-branded-presentation/SKILL.md
plugins/Anybox-Plugins/canva/skills/canva-resize-for-all-social-media/SKILL.md
plugins/Anybox-Plugins/canva/skills/canva-translate-design/SKILL.md
plugins/Anybox-Plugins/chrome/skills/chrome/SKILL.md
plugins/Anybox-Plugins/cinema/skills/initialize-cinema-project/SKILL.md

元信息

文件数
0
版本
42b35f7
Hash
ed2f91db
收录时间
2026-07-05 19:11

首页 - Wiki
Copyright © 2011-2026 iteam. Current version is 2.155.2. UTC+08:00, 2026-08-05 17:39
浙ICP备14020137号-1 $访客地图$