← VercelCONTENT HISTORY

Update to Vercel

Snapshot Oct 6, 2026 · 18:03 UTC · version 0.54.1

Collection source: downloaded plugin package. These snapshots do not have a confirmed matching collection source. Differences in file lists alone do not establish changes to the package.

WHAT CHANGED · RULE-BASED ANALYSIS

Instructions updated for bootstrap

Instruction wording changed from “"https://nextjs.org/docs/getting-started/installation"” to “"https://nextjs.org/docs/app/getting-started/installation"”. 38 additional added or edited lines are in the evidence.

Observed in instructions or declared skills. Runtime behavior has not been tested.

Skill instructions

Before

"https://nextjs.org/docs/getting-started/installation" sitemap: "https://vercel.com/sitemap/docs.xml" printf "%s" "$AUTH_SECRET" | vercel env add AUTH_SECRET development preview production If the project was scaffolded with `npx next-f...

After

"https://nextjs.org/docs/app/getting-started/installation" sitemap: "https://vercel.com/sitemap.xml" - '@vercel/global-config' chainTo: - pattern: '@vercel/(postgres|kv)|\b(KV_REST_API_URL|POSTGRES_URL)\b' targetSkill: ve...

Compare saved observations

Download comparison JSON
Full technical diff · 1 changed fields

changed /skill_md_contents

BEFORE
"---\nname: bootstrap\ndescription: 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.\nmetadata:\n  priority: 8\n  docs:\n    - \"https://vercel.com/docs/getting-started-with-vercel\"\n    - \"https://nextjs.org/docs/getting-started/installation\"\n  sitemap: \"https://vercel.com/sitemap/docs.xml\"\n  pathPatterns:\n    - '.env.example'\n    - '.env.sample'\n    - '.env.template'\n    - 'README*'\n    - 'docs/**/setup*'\n    - 'package.json'\n    - 'drizzle.config.*'\n    - 'prisma/schema.prisma'\n    - 'auth.*'\n    - 'src/**/auth.*'\n  bashPatterns:\n    - '\\\\bcp\\\\s+\\\\.env\\\\.(?:example|sample|template)\\\\s+\\\\.env\\\\.local\\\\b'\n    - '\\\\b(?:npm|pnpm|bun|yarn)\\\\s+run\\\\s+db:(?:push|seed|migrate|generate)\\\\b'\n    - '\\\\b(?:npm|pnpm|bun|yarn)\\\\s+run\\\\s+dev\\\\b'\n    - '\\\\bvercel\\\\s+link\\\\b'\n    - '\\\\bvercel\\\\s+integration\\\\s+(?:add|install)\\\\b'\n    - '\\\\bvercel\\\\s+env\\\\s+pull\\\\b'\n  importPatterns:\n    - '@neondatabase/serverless'\n    - 'drizzle-orm'\n    - '@upstash/redis'\n    - '@vercel/blob'\n    - '@vercel/edge-config'\n    - 'next-auth'\n    - '@auth/core'\n    - 'better-auth'\n---\n\n# Project Bootstrap Orchestrator\n\nExecute bootstrap in strict order. Do not run migrations or development server until project linking and environment verification are complete.\n\n## Rules\n\n- Do not run `db:push`, `db:migrate`, `db:seed`, or `dev` until Vercel linking is complete and env keys are verified.\n- Prefer Vercel-managed provisioning (`vercel integration ...`) for shared resources.\n- Use provider CLIs only as fallback when Vercel integration flow is unavailable.\n- Never echo secret values in terminal output, logs, or summaries.\n\n## Preflight\n\n1. Confirm Vercel CLI is installed and authenticated.\n\n```bash\nvercel --version\nvercel whoami\n```\n\n2. Confirm repo linkage by checking `.vercel/project.json`.\n3. If not linked, inspect available teams/projects before asking the user to choose:\n\n```bash\nvercel teams ls\nvercel projects ls --scope <team>\nvercel link --yes --scope <team> --project <project>\n```\n\n4. Find the env template in priority order: `.env.example`, `.env.sample`, `.env.template`.\n5. Create local env file if missing:\n\n```bash\ncp .env.example .env.local\n```\n\n## Resource Setup: Postgres\n\n### Preferred path (Vercel-managed Neon)\n\n1. Read integration setup guidance:\n\n```bash\nvercel integration guide neon\n```\n\n2. Add Neon integration to the Vercel scope:\n\n```bash\nvercel integration add neon --scope <team>\n```\n\n3. Verify expected environment variable names exist in Vercel and pull locally:\n\n```bash\nvercel env ls\nvercel env pull .env.local --yes\n```\n\n### Fallback path 1 (Dashboard)\n\n1. Provision Neon through the Vercel dashboard integration UI.\n2. Re-run `vercel env pull .env.local --yes`.\n\n### Fallback path 2 (Neon CLI)\n\nUse Neon CLI only when Vercel-managed provisioning is unavailable. After creating resources, add required env vars in Vercel and pull again.\n\n## AUTH_SECRET Generation\n\nGenerate a high-entropy secret without printing it, then store it in Vercel and refresh local env:\n\n```bash\nAUTH_SECRET=\"$(node -e \"console.log(require('node:crypto').randomBytes(32).toString('base64url'))\")\"\nprintf \"%s\" \"$AUTH_SECRET\" | vercel env add AUTH_SECRET development preview production\nunset AUTH_SECRET\nvercel env pull .env.local --yes\n```\n\n## Env Verification\n\nCompare required keys from template file against `.env.local` keys (names only, never values):\n\n```bash\ntemplate_file=\"\"\nfor candidate in .env.example .env.sample .env.template; do\n  if [ -f \"$candidate\" ]; then\n    template_file=\"$candidate\"\n    break\n  fi\ndone\n\ncomm -23 \\\n  <(grep -E '^[A-Za-z_][A-Za-z0-9_]*=' \"$template_file\" | cut -d '=' -f 1 | sort -u) \\\n  <(grep -E '^[A-Za-z_][A-Za-z0-9_]*=' .env.local | cut -d '=' -f 1 | sort -u)\n```\n\nProceed only when missing key list is empty.\n\n## App Setup\n\nAfter linkage + env verification:\n\n```bash\nnpm run db:push\nnpm run db:seed\nnpm run dev\n```\n\nUse the repository package manager (`npm`, `pnpm`, `bun`, or `yarn`) and run only scripts that exist in `package.json`.\n\n## UI Baseline for Next.js + shadcn Projects\n\nAfter linkage and env verification, establish the UI foundation before feature work:\n1. 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`\n2. Apply the Geist font fix in `layout.tsx` and `globals.css`.\n3. Confirm the app shell uses `bg-background text-foreground`.\n4. Default to dark mode for product, admin, and AI apps unless the repo is clearly marketing-first.\n\n## Bootstrap Verification\n\nConfirm each checkpoint:\n\n- `vercel whoami` succeeds.\n- `.vercel/project.json` exists and matches chosen project.\n- Postgres integration path completed (Vercel integration, dashboard, or provider CLI fallback).\n- `vercel env pull .env.local --yes` succeeds.\n- Required env key diff is empty.\n- Database command status is recorded (`db:push`, `db:seed`, `db:migrate`, `db:generate` as applicable).\n- `dev` command starts without immediate config/auth/env failure.\n\nIf verification fails, stop and report exact failing step plus remediation.\n\n## Summary Format\n\nReturn a final bootstrap summary in this format:\n\n```md\n## Bootstrap Result\n- **Linked Project**: <team>/<project>\n- **Resource Path**: vercel-integration-neon | dashboard-neon | neon-cli\n- **Env Keys**: <count> required, <count> present, <count> missing\n- **Secrets**: AUTH_SECRET set in Vercel (value never shown)\n- **Migration Status**: not-run | success | failed (<step>)\n- **Dev Result**: not-run | started | failed\n```\n\n## Bootstrap Next Steps\n\n- If env keys are still missing, add the missing keys in Vercel and re-run `vercel env pull .env.local --yes`.\n- If DB commands fail, fix connectivity/schema issues and re-run only the failed db step.\n- If `dev` fails, resolve runtime errors, then restart with your package manager's `run dev`.\n\n## next-forge Projects\n\nIf the project was scaffolded with `npx next-forge init` (detected by `pnpm-workspace.yaml` + `packages/auth` + `packages/database` + `@repo/*` imports):\n\n1. Env files are per-app (`apps/app/.env.local`, `apps/web/.env.local`, `apps/api/.env.local`) plus `packages/database/.env`.\n2. Run `pnpm migrate` (not `db:push`) — it runs `prisma format` + `prisma generate` + `prisma db push`.\n3. 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`.\n4. Optional services (Stripe, Resend, PostHog, etc.) can be skipped initially — but remove their `@repo/*` imports from app `env.ts` files to avoid validation errors.\n5. Deploy as 3 separate Vercel projects with root directories `apps/app`, `apps/api`, `apps/web`.\n\n=> skill: next-forge — Full next-forge monorepo guide\n"
AFTER
"---\nname: bootstrap\ndescription: 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.\nmetadata:\n  priority: 8\n  docs:\n    - \"https://vercel.com/docs/getting-started-with-vercel\"\n    - \"https://nextjs.org/docs/app/getting-started/installation\"\n  sitemap: \"https://vercel.com/sitemap.xml\"\n  pathPatterns:\n    - '.env.example'\n    - '.env.sample'\n    - '.env.template'\n    - 'README*'\n    - 'docs/**/setup*'\n    - 'package.json'\n    - 'drizzle.config.*'\n    - 'prisma/schema.prisma'\n    - 'auth.*'\n    - 'src/**/auth.*'\n  bashPatterns:\n    - '\\\\bcp\\\\s+\\\\.env\\\\.(?:example|sample|template)\\\\s+\\\\.env\\\\.local\\\\b'\n    - '\\\\b(?:npm|pnpm|bun|yarn)\\\\s+run\\\\s+db:(?:push|seed|migrate|generate)\\\\b'\n    - '\\\\b(?:npm|pnpm|bun|yarn)\\\\s+run\\\\s+dev\\\\b'\n    - '\\\\bvercel\\\\s+link\\\\b'\n    - '\\\\bvercel\\\\s+integration\\\\s+(?:add|install)\\\\b'\n    - '\\\\bvercel\\\\s+env\\\\s+pull\\\\b'\n  importPatterns:\n    - '@neondatabase/serverless'\n    - 'drizzle-orm'\n    - '@upstash/redis'\n    - '@vercel/blob'\n    - '@vercel/edge-config'\n    - '@vercel/global-config'\n    - 'next-auth'\n    - '@auth/core'\n    - 'better-auth'\nchainTo:\n  -\n    pattern: '@vercel/(postgres|kv)|\\b(KV_REST_API_URL|POSTGRES_URL)\\b'\n    targetSkill: vercel-storage\n    message: '@vercel/postgres and @vercel/kv are sunset — loading Vercel Storage guidance for Neon and Upstash migration.'\n  -\n    pattern: 'from\\s+[''\"\"](next-auth|@auth/core|@clerk/nextjs|better-auth)[''\"\"]'\n    targetSkill: auth\n    message: 'Auth library detected during bootstrap — loading Auth guidance for Clerk Marketplace setup and middleware patterns.'\n  -\n    pattern: 'OPENAI_API_KEY|ANTHROPIC_API_KEY|AI_GATEWAY'\n    targetSkill: env-vars\n    message: 'AI provider env vars detected — loading Environment Variables guidance for OIDC-based auth via vercel env pull.'\n    skipIfFileContains: 'VERCEL_OIDC|vercel env pull'\nretrieval:\n  aliases:\n    - project setup\n    - repo init\n    - getting started\n    - scaffold\n  intents:\n    - set up project\n    - initialize repo\n    - link vercel project\n    - pull env vars\n  entities:\n    - vercel link\n    - env pull\n    - database setup\n    - first run\n\n---\n\n# Project Bootstrap Orchestrator\n\nExecute bootstrap in strict order. Do not run migrations or development server until project linking and environment verification are complete.\n\n## Rules\n\n- Do not run `db:push`, `db:migrate`, `db:seed`, or `dev` until Vercel linking is complete and env keys are verified.\n- Prefer Vercel-managed provisioning (`vercel integration ...`) for shared resources.\n- Use provider CLIs only as fallback when Vercel integration flow is unavailable.\n- Never echo secret values in terminal output, logs, or summaries.\n\n## Preflight\n\n1. Confirm Vercel CLI is installed and authenticated.\n\n```bash\nvercel --version\nvercel whoami\n```\n\n2. Confirm repo linkage by checking `.vercel/project.json`.\n3. If not linked, inspect available teams/projects before asking the user to choose:\n\n```bash\nvercel teams ls\nvercel projects ls --scope <team>\nvercel link --yes --scope <team> --project <project>\n```\n\n4. Find the env template in priority order: `.env.example`, `.env.sample`, `.env.template`.\n5. Create local env file if missing:\n\n```bash\ncp .env.example .env.local\n```\n\n## Resource Setup: Postgres\n\n### Preferred path (Vercel-managed Neon)\n\n1. Read integration setup guidance:\n\n```bash\nvercel integration guide neon\n```\n\n2. Add Neon integration to the Vercel scope:\n\n```bash\nvercel integration add neon --scope <team>\n```\n\n3. Verify expected environment variable names exist in Vercel and pull locally:\n\n```bash\nvercel env ls\nvercel env pull .env.local --yes\n```\n\n### Fallback path 1 (Dashboard)\n\n1. Provision Neon through the Vercel dashboard integration UI.\n2. Re-run `vercel env pull .env.local --yes`.\n\n### Fallback path 2 (Neon CLI)\n\nUse Neon CLI only when Vercel-managed provisioning is unavailable. After creating resources, add required env vars in Vercel and pull again.\n\n## AUTH_SECRET Generation\n\nGenerate a high-entropy secret without printing it, then store it in Vercel and refresh local env:\n\n```bash\nAUTH_SECRET=\"$(node -e \"console.log(require('node:crypto').randomBytes(32).toString('base64url'))\")\"\nprintf \"%s\" \"$AUTH_SECRET\" | vercel env add AUTH_SECRET production,preview\nprintf \"%s\" \"$AUTH_SECRET\" | vercel env add AUTH_SECRET development  # separate command: development-only adds default to Config\nunset AUTH_SECRET\nvercel env pull .env.local --yes\n```\n\n## Env Verification\n\nCompare required keys from template file against `.env.local` keys (names only, never values):\n\n```bash\ntemplate_file=\"\"\nfor candidate in .env.example .env.sample .env.template; do\n  if [ -f \"$candidate\" ]; then\n    template_file=\"$candidate\"\n    break\n  fi\ndone\n\ncomm -23 \\\n  <(grep -E '^[A-Za-z_][A-Za-z0-9_]*=' \"$template_file\" | cut -d '=' -f 1 | sort -u) \\\n  <(grep -E '^[A-Za-z_][A-Za-z0-9_]*=' .env.local | cut -d '=' -f 1 | sort -u)\n```\n\nProceed only when missing key list is empty.\n\n## App Setup\n\nAfter linkage + env verification:\n\n```bash\nnpm run db:push\nnpm run db:seed\nnpm run dev\n```\n\nUse the repository package manager (`npm`, `pnpm`, `bun`, or `yarn`) and run only scripts that exist in `package.json`.\n\n## UI Baseline for Next.js + shadcn Projects\n\nAfter linkage and env verification, establish the UI foundation before feature work:\n1. 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`\n2. Apply the Geist font fix in `layout.tsx` and `globals.css`.\n3. Confirm the app shell uses `bg-background text-foreground`.\n4. Default to dark mode for product, admin, and AI apps unless the repo is clearly marketing-first.\n\n## Bootstrap Verification\n\nConfirm each checkpoint:\n\n- `vercel whoami` succeeds.\n- `.vercel/project.json` exists and matches chosen project.\n- Postgres integration path completed (Vercel integration, dashboard, or provider CLI fallback).\n- `vercel env pull .env.local --yes` succeeds.\n- Required env key diff is empty.\n- Database command status is recorded (`db:push`, `db:seed`, `db:migrate`, `db:generate` as applicable).\n- `dev` command starts without immediate config/auth/env failure.\n\nIf verification fails, stop and report exact failing step plus remediation.\n\n## Summary Format\n\nReturn a final bootstrap summary in this format:\n\n```md\n## Bootstrap Result\n- **Linked Project**: <team>/<project>\n- **Resource Path**: vercel-integration-neon | dashboard-neon | neon-cli\n- **Env Keys**: <count> required, <count> present, <count> missing\n- **Secrets**: AUTH_SECRET set in Vercel (value never shown)\n- **Migration Status**: not-run | success | failed (<step>)\n- **Dev Result**: not-run | started | failed\n```\n\n## Bootstrap Next Steps\n\n- If env keys are still missing, add the missing keys in Vercel and re-run `vercel env pull .env.local --yes`.\n- If DB commands fail, fix connectivity/schema issues and re-run only the failed db step.\n- If `dev` fails, resolve runtime errors, then restart with your package manager's `run dev`.\n\n## next-forge Projects\n\nIf the project was scaffolded with `npx next-forge init` (detected by `packages/auth` + `packages/database` + `@repo/*` imports; package manager is chosen at init):\n\n1. Env files are per-app (`apps/app/.env.local`, `apps/web/.env.local`, `apps/api/.env.local`) plus `packages/database/.env`.\n2. Run the `migrate` script with the repo's package manager (not `db:push`) — it runs `prisma format` + `prisma generate` + `prisma migrate dev` and prompts for a migration name.\n3. Minimum env vars: `DATABASE_URL`, `NEXT_PUBLIC_APP_URL`, `NEXT_PUBLIC_WEB_URL`, `NEXT_PUBLIC_API_URL` (URLs are pre-configured for local dev).\n4. Optional services (Clerk, Stripe, Resend, PostHog, etc.) can be skipped initially — integrations whose keys are unset are skipped at runtime. Delete the empty `KEY=\"\"` placeholders copied from `.env.example`: an empty string fails the `keys.ts` format checks.\n5. Deploy as 3 separate Vercel projects with root directories `apps/app`, `apps/api`, `apps/web`.\n"

SKILL.md line diff

--- before
+++ after
@@ -5,8 +5,8 @@
   priority: 8
   docs:
     - "https://vercel.com/docs/getting-started-with-vercel"
-    - "https://nextjs.org/docs/getting-started/installation"
-  sitemap: "https://vercel.com/sitemap/docs.xml"
+    - "https://nextjs.org/docs/app/getting-started/installation"
+  sitemap: "https://vercel.com/sitemap.xml"
   pathPatterns:
     - '.env.example'
     - '.env.sample'
@@ -31,9 +31,41 @@
     - '@upstash/redis'
     - '@vercel/blob'
     - '@vercel/edge-config'
+    - '@vercel/global-config'
     - 'next-auth'
     - '@auth/core'
     - 'better-auth'
+chainTo:
+  -
+    pattern: '@vercel/(postgres|kv)|\b(KV_REST_API_URL|POSTGRES_URL)\b'
+    targetSkill: vercel-storage
+    message: '@vercel/postgres and @vercel/kv are sunset — loading Vercel Storage guidance for Neon and Upstash migration.'
+  -
+    pattern: 'from\s+[''""](next-auth|@auth/core|@clerk/nextjs|better-auth)[''""]'
+    targetSkill: auth
+    message: 'Auth library detected during bootstrap — loading Auth guidance for Clerk Marketplace setup and middleware patterns.'
+  -
+    pattern: 'OPENAI_API_KEY|ANTHROPIC_API_KEY|AI_GATEWAY'
+    targetSkill: env-vars
+    message: 'AI provider env vars detected — loading Environment Variables guidance for OIDC-based auth via vercel env pull.'
+    skipIfFileContains: 'VERCEL_OIDC|vercel env pull'
+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
+
 ---
 
 # Project Bootstrap Orchestrator
@@ -110,7 +142,8 @@
 
 ```bash
 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
+printf "%s" "$AUTH_SECRET" | vercel env add AUTH_SECRET production,preview
+printf "%s" "$AUTH_SECRET" | vercel env add AUTH_SECRET development  # separate command: development-only adds default to Config
 unset AUTH_SECRET
 vercel env pull .env.local --yes
 ```
@@ -191,12 +224,10 @@
 
 ## next-forge Projects
 
-If the project was scaffolded with `npx next-forge init` (detected by `pnpm-workspace.yaml` + `packages/auth` + `packages/database` + `@repo/*` imports):
+If the project was scaffolded with `npx next-forge init` (detected by `packages/auth` + `packages/database` + `@repo/*` imports; package manager is chosen at init):
 
 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.
+2. Run the `migrate` script with the repo's package manager (not `db:push`) — it runs `prisma format` + `prisma generate` + `prisma migrate dev` and prompts for a migration name.
+3. Minimum env vars: `DATABASE_URL`, `NEXT_PUBLIC_APP_URL`, `NEXT_PUBLIC_WEB_URL`, `NEXT_PUBLIC_API_URL` (URLs are pre-configured for local dev).
+4. Optional services (Clerk, Stripe, Resend, PostHog, etc.) can be skipped initially — integrations whose keys are unset are skipped at runtime. Delete the empty `KEY=""` placeholders copied from `.env.example`: an empty string fails the `keys.ts` format checks.
 5. Deploy as 3 separate Vercel projects with root directories `apps/app`, `apps/api`, `apps/web`.
-
-=> skill: next-forge — Full next-forge monorepo guide
Full snapshot data
{
  "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.",
  "included_files": [
    {
      "relative_path": "agents/openai.yaml",
      "size_in_bytes": 173
    }
  ],
  "name": "bootstrap",
  "skill_md_contents": "---\nname: bootstrap\ndescription: 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.\nmetadata:\n  priority: 8\n  docs:\n    - \"https://vercel.com/docs/getting-started-with-vercel\"\n    - \"https://nextjs.org/docs/app/getting-started/installation\"\n  sitemap: \"https://vercel.com/sitemap.xml\"\n  pathPatterns:\n    - '.env.example'\n    - '.env.sample'\n    - '.env.template'\n    - 'README*'\n    - 'docs/**/setup*'\n    - 'package.json'\n    - 'drizzle.config.*'\n    - 'prisma/schema.prisma'\n    - 'auth.*'\n    - 'src/**/auth.*'\n  bashPatterns:\n    - '\\\\bcp\\\\s+\\\\.env\\\\.(?:example|sample|template)\\\\s+\\\\.env\\\\.local\\\\b'\n    - '\\\\b(?:npm|pnpm|bun|yarn)\\\\s+run\\\\s+db:(?:push|seed|migrate|generate)\\\\b'\n    - '\\\\b(?:npm|pnpm|bun|yarn)\\\\s+run\\\\s+dev\\\\b'\n    - '\\\\bvercel\\\\s+link\\\\b'\n    - '\\\\bvercel\\\\s+integration\\\\s+(?:add|install)\\\\b'\n    - '\\\\bvercel\\\\s+env\\\\s+pull\\\\b'\n  importPatterns:\n    - '@neondatabase/serverless'\n    - 'drizzle-orm'\n    - '@upstash/redis'\n    - '@vercel/blob'\n    - '@vercel/edge-config'\n    - '@vercel/global-config'\n    - 'next-auth'\n    - '@auth/core'\n    - 'better-auth'\nchainTo:\n  -\n    pattern: '@vercel/(postgres|kv)|\\b(KV_REST_API_URL|POSTGRES_URL)\\b'\n    targetSkill: vercel-storage\n    message: '@vercel/postgres and @vercel/kv are sunset — loading Vercel Storage guidance for Neon and Upstash migration.'\n  -\n    pattern: 'from\\s+[''\"\"](next-auth|@auth/core|@clerk/nextjs|better-auth)[''\"\"]'\n    targetSkill: auth\n    message: 'Auth library detected during bootstrap — loading Auth guidance for Clerk Marketplace setup and middleware patterns.'\n  -\n    pattern: 'OPENAI_API_KEY|ANTHROPIC_API_KEY|AI_GATEWAY'\n    targetSkill: env-vars\n    message: 'AI provider env vars detected — loading Environment Variables guidance for OIDC-based auth via vercel env pull.'\n    skipIfFileContains: 'VERCEL_OIDC|vercel env pull'\nretrieval:\n  aliases:\n    - project setup\n    - repo init\n    - getting started\n    - scaffold\n  intents:\n    - set up project\n    - initialize repo\n    - link vercel project\n    - pull env vars\n  entities:\n    - vercel link\n    - env pull\n    - database setup\n    - first run\n\n---\n\n# Project Bootstrap Orchestrator\n\nExecute bootstrap in strict order. Do not run migrations or development server until project linking and environment verification are complete.\n\n## Rules\n\n- Do not run `db:push`, `db:migrate`, `db:seed`, or `dev` until Vercel linking is complete and env keys are verified.\n- Prefer Vercel-managed provisioning (`vercel integration ...`) for shared resources.\n- Use provider CLIs only as fallback when Vercel integration flow is unavailable.\n- Never echo secret values in terminal output, logs, or summaries.\n\n## Preflight\n\n1. Confirm Vercel CLI is installed and authenticated.\n\n```bash\nvercel --version\nvercel whoami\n```\n\n2. Confirm repo linkage by checking `.vercel/project.json`.\n3. If not linked, inspect available teams/projects before asking the user to choose:\n\n```bash\nvercel teams ls\nvercel projects ls --scope <team>\nvercel link --yes --scope <team> --project <project>\n```\n\n4. Find the env template in priority order: `.env.example`, `.env.sample`, `.env.template`.\n5. Create local env file if missing:\n\n```bash\ncp .env.example .env.local\n```\n\n## Resource Setup: Postgres\n\n### Preferred path (Vercel-managed Neon)\n\n1. Read integration setup guidance:\n\n```bash\nvercel integration guide neon\n```\n\n2. Add Neon integration to the Vercel scope:\n\n```bash\nvercel integration add neon --scope <team>\n```\n\n3. Verify expected environment variable names exist in Vercel and pull locally:\n\n```bash\nvercel env ls\nvercel env pull .env.local --yes\n```\n\n### Fallback path 1 (Dashboard)\n\n1. Provision Neon through the Vercel dashboard integration UI.\n2. Re-run `vercel env pull .env.local --yes`.\n\n### Fallback path 2 (Neon CLI)\n\nUse Neon CLI only when Vercel-managed provisioning is unavailable. After creating resources, add required env vars in Vercel and pull again.\n\n## AUTH_SECRET Generation\n\nGenerate a high-entropy secret without printing it, then store it in Vercel and refresh local env:\n\n```bash\nAUTH_SECRET=\"$(node -e \"console.log(require('node:crypto').randomBytes(32).toString('base64url'))\")\"\nprintf \"%s\" \"$AUTH_SECRET\" | vercel env add AUTH_SECRET production,preview\nprintf \"%s\" \"$AUTH_SECRET\" | vercel env add AUTH_SECRET development  # separate command: development-only adds default to Config\nunset AUTH_SECRET\nvercel env pull .env.local --yes\n```\n\n## Env Verification\n\nCompare required keys from template file against `.env.local` keys (names only, never values):\n\n```bash\ntemplate_file=\"\"\nfor candidate in .env.example .env.sample .env.template; do\n  if [ -f \"$candidate\" ]; then\n    template_file=\"$candidate\"\n    break\n  fi\ndone\n\ncomm -23 \\\n  <(grep -E '^[A-Za-z_][A-Za-z0-9_]*=' \"$template_file\" | cut -d '=' -f 1 | sort -u) \\\n  <(grep -E '^[A-Za-z_][A-Za-z0-9_]*=' .env.local | cut -d '=' -f 1 | sort -u)\n```\n\nProceed only when missing key list is empty.\n\n## App Setup\n\nAfter linkage + env verification:\n\n```bash\nnpm run db:push\nnpm run db:seed\nnpm run dev\n```\n\nUse the repository package manager (`npm`, `pnpm`, `bun`, or `yarn`) and run only scripts that exist in `package.json`.\n\n## UI Baseline for Next.js + shadcn Projects\n\nAfter linkage and env verification, establish the UI foundation before feature work:\n1. 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`\n2. Apply the Geist font fix in `layout.tsx` and `globals.css`.\n3. Confirm the app shell uses `bg-background text-foreground`.\n4. Default to dark mode for product, admin, and AI apps unless the repo is clearly marketing-first.\n\n## Bootstrap Verification\n\nConfirm each checkpoint:\n\n- `vercel whoami` succeeds.\n- `.vercel/project.json` exists and matches chosen project.\n- Postgres integration path completed (Vercel integration, dashboard, or provider CLI fallback).\n- `vercel env pull .env.local --yes` succeeds.\n- Required env key diff is empty.\n- Database command status is recorded (`db:push`, `db:seed`, `db:migrate`, `db:generate` as applicable).\n- `dev` command starts without immediate config/auth/env failure.\n\nIf verification fails, stop and report exact failing step plus remediation.\n\n## Summary Format\n\nReturn a final bootstrap summary in this format:\n\n```md\n## Bootstrap Result\n- **Linked Project**: <team>/<project>\n- **Resource Path**: vercel-integration-neon | dashboard-neon | neon-cli\n- **Env Keys**: <count> required, <count> present, <count> missing\n- **Secrets**: AUTH_SECRET set in Vercel (value never shown)\n- **Migration Status**: not-run | success | failed (<step>)\n- **Dev Result**: not-run | started | failed\n```\n\n## Bootstrap Next Steps\n\n- If env keys are still missing, add the missing keys in Vercel and re-run `vercel env pull .env.local --yes`.\n- If DB commands fail, fix connectivity/schema issues and re-run only the failed db step.\n- If `dev` fails, resolve runtime errors, then restart with your package manager's `run dev`.\n\n## next-forge Projects\n\nIf the project was scaffolded with `npx next-forge init` (detected by `packages/auth` + `packages/database` + `@repo/*` imports; package manager is chosen at init):\n\n1. Env files are per-app (`apps/app/.env.local`, `apps/web/.env.local`, `apps/api/.env.local`) plus `packages/database/.env`.\n2. Run the `migrate` script with the repo's package manager (not `db:push`) — it runs `prisma format` + `prisma generate` + `prisma migrate dev` and prompts for a migration name.\n3. Minimum env vars: `DATABASE_URL`, `NEXT_PUBLIC_APP_URL`, `NEXT_PUBLIC_WEB_URL`, `NEXT_PUBLIC_API_URL` (URLs are pre-configured for local dev).\n4. Optional services (Clerk, Stripe, Resend, PostHog, etc.) can be skipped initially — integrations whose keys are unset are skipped at runtime. Delete the empty `KEY=\"\"` placeholders copied from `.env.example`: an empty string fails the `keys.ts` format checks.\n5. Deploy as 3 separate Vercel projects with root directories `apps/app`, `apps/api`, `apps/web`.\n"
}

SHA-256 of public snapshot: 8fb0e76e913aceee9efee1c44c56ff434d91f2f8812fbbf14a131d46d34125ab