Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion CLAUDE.md
Original file line number Diff line number Diff line change
Expand Up @@ -66,7 +66,7 @@ Special triggers in PreToolUse:

### Skill Structure (`skills/<name>/SKILL.md`)

33 skills in `skills/`. Each has a `SKILL.md` with YAML frontmatter:
35 skills in `skills/`. Each has a `SKILL.md` with YAML frontmatter:

```yaml
---
Expand Down
12 changes: 7 additions & 5 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ A text-form relational graph covering:
- Common cross-product workflows
- Migration awareness for sunset products

### Skills (34 skills)
### Skills (35 skills)

| Skill | Covers |
| ----------------------- | ------------------------------------------------------------------------------------------------------------------------------------ |
Expand All @@ -62,6 +62,7 @@ A text-form relational graph covering:
| `deployments-cicd` | Deployment and CI/CD — deploy, promote, rollback, --prebuilt, CI workflow files |
| `env-vars` | Environment variable management — .env files, vercel env commands, OIDC tokens |
| `eve` | Filesystem-first framework for durable AI agents, agent applications, channels, sandboxes, schedules, evals, and frontend clients |
| `flags-sdk` | Feature flags and A/B tests — Flags SDK, provider adapters, `vercel flags` CLI, precompute, Flags Explorer |
| `knowledge-update` | Knowledge update guidance for the plugin |
| `marketplace` | Integration discovery, installation, auto-provisioned env vars, unified billing |
| `microfrontends` | Multi-zone and microfrontend architecture, routing, deployment boundaries, and shared dependencies |
Expand All @@ -81,7 +82,7 @@ A text-form relational graph covering:
| `vercel-functions` | Serverless, Edge, Fluid Compute, streaming, Cron Jobs, configuration |
| `vercel-sandbox` | Ephemeral Firecracker microVMs for running untrusted/AI-generated code safely |
| `vercel-services` | Multiple frontends and backends in one project, with public rewrites and private service bindings |
| `vercel-storage` | Blob, Edge Config, Neon Postgres, Upstash Redis, migration from sunset packages |
| `vercel-storage` | Blob, Global Config (formerly Edge Config), Neon Postgres, Upstash Redis, migration from sunset packages |
| `verification` | Full-story verification — infers user story, verifies end-to-end browser → API → data → response |
| `workflow` | Workflow SDK — durable execution, DurableAgent, steps, Worlds, pause/resume |

Expand Down Expand Up @@ -182,7 +183,7 @@ setx VERCEL_PLUGIN_TELEMETRY off

## Upstream Skill Sync

11 skills are synced from their upstream source repos on [skills.sh](https://skills.sh). Each synced skill uses an **overlay + upstream** model:
12 skills are synced from their upstream source repos on [skills.sh](https://skills.sh). Each synced skill uses an **overlay + upstream** model:

```
skills/<name>/
Expand All @@ -204,6 +205,7 @@ skills/<name>/
| `ai-sdk` | [vercel/ai](https://github.com/vercel/ai) |
| `chat-sdk` | [vercel/chat](https://github.com/vercel/chat) |
| `eve` | [vercel/eve](https://github.com/vercel/eve) |
| `flags-sdk` | [vercel/flags](https://github.com/vercel/flags) |
| `next-cache-components` | [vercel-labs/next-skills](https://github.com/vercel-labs/next-skills) |
| `next-forge` | [vercel/next-forge](https://github.com/vercel/next-forge) |
| `next-upgrade` | [vercel-labs/next-skills](https://github.com/vercel-labs/next-skills) |
Expand Down Expand Up @@ -236,7 +238,7 @@ Exits non-zero if any `SKILL.md` is stale. Add to CI to catch drift.
vercel-plugin/
├── .plugin/plugin.json # Plugin manifest
├── vercel.md # Ecosystem graph + conventions (injected via SessionStart hook)
├── skills/ # 34 skills
├── skills/ # 35 skills
│ ├── ai-sdk/ # Upstream-synced skill example:
│ │ ├── overlay.yaml # Plugin injection metadata
│ │ ├── upstream/ # Pure upstream content
Expand Down Expand Up @@ -277,7 +279,7 @@ bun run build:from-skills # Stage 4: Resolve template includes
- AI Gateway (100+ models, provider routing, cost tracking)
- Vercel Functions (Fluid Compute, streaming, Cron Jobs)
- Vercel Services (multiple frontends and backends, public rewrites, private bindings)
- Storage (Blob, Edge Config, Neon Postgres, Upstash Redis)
- Storage (Blob, Global Config, Neon Postgres, Upstash Redis)
- Routing Middleware (request interception, Edge/Node.js/Bun runtimes)
- Runtime Cache API (per-region KV cache, tag-based invalidation)
- Vercel Flags (feature flags, Flags Explorer, gradual rollouts, A/B testing)
Expand Down
2 changes: 1 addition & 1 deletion agents/deployment-expert.md
Original file line number Diff line number Diff line change
Expand Up @@ -56,7 +56,7 @@ Build failed?
│ ├─ Under 5 min → Use Fluid Compute with streaming
│ ├─ Up to 15 min → Use Vercel Functions with `maxDuration` in vercel.json
│ └─ Hours/days → Use Workflow SDK (DurableAgent or workflow steps)
└─ DB query slow? → Add connection pooling, check cold start, use Edge Config
└─ DB query slow? → Add connection pooling, check cold start, use Global Config
```

<!-- Sourced from vercel-functions skill: Function Runtime Diagnostics > 500 Error Diagnostics -->
Expand Down
2 changes: 1 addition & 1 deletion agents/performance-optimizer.md
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@ LCP > 2.5s?
│ ├─ Using SSR for static content? → Switch to SSG or ISR
│ ├─ Can use Cache Components? → Add `'use cache'` to slow Server Components
│ ├─ Database queries slow? → Add connection pooling, check query plans
│ ├─ Edge Config available? → Use for configuration data (< 5ms reads)
│ ├─ Global Config available? → Use for configuration data (< 5ms reads)
│ └─ Region mismatch? → Deploy function in same region as database
└─ Render-blocking resources?
Expand Down
2 changes: 1 addition & 1 deletion agents/performance-optimizer.md.tmpl
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@ LCP > 2.5s?
│ ├─ Using SSR for static content? → Switch to SSG or ISR
│ ├─ Can use Cache Components? → Add `'use cache'` to slow Server Components
│ ├─ Database queries slow? → Add connection pooling, check query plans
│ ├─ Edge Config available? → Use for configuration data (< 5ms reads)
│ ├─ Global Config available? → Use for configuration data (< 5ms reads)
│ └─ Region mismatch? → Deploy function in same region as database
└─ Render-blocking resources?
Expand Down
192 changes: 96 additions & 96 deletions generated/build-from-skills.manifest.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"version": 1,
"generatedAt": "2026-08-12T03:07:25.183Z",
"generatedAt": "2026-08-25T10:09:15.534Z",
"templates": [
{
"template": "agents/ai-architect.md.tmpl",
Expand All @@ -25,72 +25,6 @@
}
]
},
{
"template": "agents/performance-optimizer.md.tmpl",
"output": "agents/performance-optimizer.md",
"dependencies": [
"nextjs",
"next-cache-components"
],
"includes": [
{
"marker": "{{include:skill:nextjs:file:references/rsc-boundaries.md}}",
"skillName": "nextjs",
"target": "file:references/rsc-boundaries.md",
"type": "section",
"lineNumber": 123
},
{
"marker": "{{include:skill:nextjs:file:references/bundling.md:Bundle Analysis}}",
"skillName": "nextjs",
"target": "file:references/bundling.md:Bundle Analysis",
"type": "section",
"lineNumber": 130
},
{
"marker": "{{include:skill:nextjs:file:references/data-patterns.md:Decision Tree}}",
"skillName": "nextjs",
"target": "file:references/data-patterns.md:Decision Tree",
"type": "section",
"lineNumber": 137
},
{
"marker": "{{include:skill:next-cache-components:Cache Invalidation}}",
"skillName": "next-cache-components",
"target": "Cache Invalidation",
"type": "section",
"lineNumber": 142
},
{
"marker": "{{include:skill:nextjs:file:references/image.md}}",
"skillName": "nextjs",
"target": "file:references/image.md",
"type": "section",
"lineNumber": 168
},
{
"marker": "{{include:skill:nextjs:file:references/font.md}}",
"skillName": "nextjs",
"target": "file:references/font.md",
"type": "section",
"lineNumber": 173
},
{
"marker": "{{include:skill:next-cache-components:`use cache` Directive}}",
"skillName": "next-cache-components",
"target": "`use cache` Directive",
"type": "section",
"lineNumber": 178
},
{
"marker": "{{include:skill:nextjs:file:references/data-patterns.md:Client Component Data Fetching}}",
"skillName": "nextjs",
"target": "file:references/data-patterns.md:Client Component Data Fetching",
"type": "section",
"lineNumber": 183
}
]
},
{
"template": "agents/deployment-expert.md.tmpl",
"output": "agents/deployment-expert.md",
Expand Down Expand Up @@ -172,46 +106,68 @@
]
},
{
"template": "commands/deploy.md.tmpl",
"output": "commands/deploy.md",
"template": "agents/performance-optimizer.md.tmpl",
"output": "agents/performance-optimizer.md",
"dependencies": [
"deployments-cicd"
"nextjs",
"next-cache-components"
],
"includes": [
{
"marker": "{{include:skill:deployments-cicd:Deployment Commands > Preview Deployment}}",
"skillName": "deployments-cicd",
"target": "Deployment Commands > Preview Deployment",
"marker": "{{include:skill:nextjs:file:references/rsc-boundaries.md}}",
"skillName": "nextjs",
"target": "file:references/rsc-boundaries.md",
"type": "section",
"lineNumber": 56
"lineNumber": 123
},
{
"marker": "{{include:skill:deployments-cicd:Deployment Commands > Production Deployment}}",
"skillName": "deployments-cicd",
"target": "Deployment Commands > Production Deployment",
"marker": "{{include:skill:nextjs:file:references/bundling.md:Bundle Analysis}}",
"skillName": "nextjs",
"target": "file:references/bundling.md:Bundle Analysis",
"type": "section",
"lineNumber": 61
"lineNumber": 130
},
{
"marker": "{{include:skill:deployments-cicd:Deployment Commands > Inspect Deployments}}",
"skillName": "deployments-cicd",
"target": "Deployment Commands > Inspect Deployments",
"marker": "{{include:skill:nextjs:file:references/data-patterns.md:Decision Tree}}",
"skillName": "nextjs",
"target": "file:references/data-patterns.md:Decision Tree",
"type": "section",
"lineNumber": 78
"lineNumber": 137
},
{
"marker": "{{include:skill:deployments-cicd:Deploy Summary Format}}",
"skillName": "deployments-cicd",
"target": "Deploy Summary Format",
"marker": "{{include:skill:next-cache-components:Cache Invalidation}}",
"skillName": "next-cache-components",
"target": "Cache Invalidation",
"type": "section",
"lineNumber": 132
"lineNumber": 142
},
{
"marker": "{{include:skill:deployments-cicd:Deploy Next Steps}}",
"skillName": "deployments-cicd",
"target": "Deploy Next Steps",
"marker": "{{include:skill:nextjs:file:references/image.md}}",
"skillName": "nextjs",
"target": "file:references/image.md",
"type": "section",
"lineNumber": 137
"lineNumber": 168
},
{
"marker": "{{include:skill:nextjs:file:references/font.md}}",
"skillName": "nextjs",
"target": "file:references/font.md",
"type": "section",
"lineNumber": 173
},
{
"marker": "{{include:skill:next-cache-components:`use cache` Directive}}",
"skillName": "next-cache-components",
"target": "`use cache` Directive",
"type": "section",
"lineNumber": 178
},
{
"marker": "{{include:skill:nextjs:file:references/data-patterns.md:Client Component Data Fetching}}",
"skillName": "nextjs",
"target": "file:references/data-patterns.md:Client Component Data Fetching",
"type": "section",
"lineNumber": 183
}
]
},
Expand Down Expand Up @@ -287,12 +243,6 @@
}
]
},
{
"template": "commands/status.md.tmpl",
"output": "commands/status.md",
"dependencies": [],
"includes": []
},
{
"template": "commands/env.md.tmpl",
"output": "commands/env.md",
Expand Down Expand Up @@ -343,6 +293,56 @@
"lineNumber": 128
}
]
},
{
"template": "commands/status.md.tmpl",
"output": "commands/status.md",
"dependencies": [],
"includes": []
},
{
"template": "commands/deploy.md.tmpl",
"output": "commands/deploy.md",
"dependencies": [
"deployments-cicd"
],
"includes": [
{
"marker": "{{include:skill:deployments-cicd:Deployment Commands > Preview Deployment}}",
"skillName": "deployments-cicd",
"target": "Deployment Commands > Preview Deployment",
"type": "section",
"lineNumber": 56
},
{
"marker": "{{include:skill:deployments-cicd:Deployment Commands > Production Deployment}}",
"skillName": "deployments-cicd",
"target": "Deployment Commands > Production Deployment",
"type": "section",
"lineNumber": 61
},
{
"marker": "{{include:skill:deployments-cicd:Deployment Commands > Inspect Deployments}}",
"skillName": "deployments-cicd",
"target": "Deployment Commands > Inspect Deployments",
"type": "section",
"lineNumber": 78
},
{
"marker": "{{include:skill:deployments-cicd:Deploy Summary Format}}",
"skillName": "deployments-cicd",
"target": "Deploy Summary Format",
"type": "section",
"lineNumber": 132
},
{
"marker": "{{include:skill:deployments-cicd:Deploy Next Steps}}",
"skillName": "deployments-cicd",
"target": "Deploy Next Steps",
"type": "section",
"lineNumber": 137
}
]
}
]
}
Loading
Loading