46 Commits

Author SHA1 Message Date
MelkeyDev 358400ace0 adding skill invocation for plugin (#166)
* adding skill invocation for plugin

* Address review: namespace allowlist, skill:injected, harness tagging

- Only accept skills under the plugin's own namespaces (vercel, vercel-plugin);
  other-plugin:deploy, netlify:deploy, and bare slugs are dropped
- Emit skill:injected from the opt-in inject hooks via the same detached sender
- Persist the detected harness per session and attach plugin:agent_harness to
  every skill event batch
- Fix normalizeDetectedAgentHarness for AI_AGENT-style names
  (claude-code_<version>_agent was reporting as "other")
- Accept Cursor-shaped payloads (conversation_id) through compat normalizeInput
- Disable telemetry for the whole test suite via bunfig preload so hook tests
  never phone home

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
2026-09-05 11:23:35 -07:00
Vincent Derks 93a4de9d97 Add flags-sdk skill synced from vercel/flags (#154)
* Add flags-sdk skill synced from vercel/flags

Co-authored-by: Vincent Derks <vincent-derks@users.noreply.github.com>

* Use vercel flags create instead of the add alias

Co-authored-by: Vincent Derks <vincent-derks@users.noreply.github.com>

* Revert "Use vercel flags create instead of the add alias"

This reverts commit 274dcbc4d9.

* Fix dead docs sitemap URL (vercel.com/sitemap/docs.xml soft-404s)

Co-authored-by: Vincent Derks <vincent-derks@users.noreply.github.com>

* Rename Edge Config to Global Config (product renamed July 2026)

Co-authored-by: Vincent Derks <vincent-derks@users.noreply.github.com>

---------

Co-authored-by: Cursor Agent <cursoragent@cursor.com>
Co-authored-by: Vincent Derks <vincent-derks@users.noreply.github.com>
2026-08-27 15:52:10 -07:00
Ricardo Gonzalez 7f60d3237d [create-a-backend-skill] creating a skill for backends on vercel (#147)
* Add create-a-backend skill

* Refine create-a-backend metadata

* feedback

* db and ws

* Update skills/create-a-backend/SKILL.md

Co-authored-by: Yury Selivanov <yury@vercel.com>

* fixes

* front + back pair

* minor uptick

* docker and queues

* Sync telemetry with plugin version

* combinations

* combinations v2

* + flask

---------

Co-authored-by: Yury Selivanov <yury@vercel.com>
2026-08-20 12:47:45 -07:00
MelkeyDev 11c3258878 [Plugin] adding harness detection and install session ID (#136)
* adding plugin telemetry

* adding kimi and grok detection logic

* upticking version

* fixing headers

* adding harness calls

* fixing installing-id

* fixing detect agent logic to include more

* fixing await to not block other calls
2026-08-12 14:43:51 -07:00
Mitul Shah 9d3018171b [workflow] Adopt Workflow SDK branding (#133)
* [workflow] Adopt Workflow SDK branding

Retire user-facing DevKit and WDK terminology while retaining legacy matcher aliases and syncing the current upstream workflow skill.

Co-authored-by: Cursor <cursoragent@cursor.com>

* [workflow] Add Analytics API import

Expose getWorld in the quick reference so users can access workflow analytics through the runtime World.

Co-authored-by: Cursor <cursoragent@cursor.com>

* fix: narrow build-agents prompt suppression

Co-authored-by: mitul-s <19615826+mitul-s@users.noreply.github.com>

* Revert "fix: narrow build-agents prompt suppression"

Restore the dedicated Vercel Agent routing exclusion because the matcher change was unrelated to PR #133.

This reverts commit 248f11c044.

Co-authored-by: Cursor <cursoragent@cursor.com>

---------

Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: mitul-s <19615826+mitul-s@users.noreply.github.com>
2026-08-12 13:10:12 -07:00
Shar 844ff08edc Add eve-first build-agents skill (#138)
* Add eve-first build-agents skill

* Fix build-agents validation coverage

* Refine build-agents guidance
2026-08-11 20:30:15 -07:00
Ricardo Gonzalez 12d077072a [services] Add Vercel Services skill (#134)
* Add Vercel Services skill

* Prepare Services skill release; bump to 0.47.0

* Reframe Services skill around coupled-components use case

Lead with when Services is the right call (tightly coupled frontend +
backend in one project) and its concrete benefits: skew protection,
synced previews, atomic deploys and rollbacks, private bindings. The
separate-projects escape hatch is now about independent deploy cadence.

Drop framework pinning from examples, add /api namespace-split guidance
(SPA vs frameworks with their own API routes), prefix stripping via
service-scoped rewrite, SPA catch-all to /index.html, and a subdomain
section with the preview-environment caveat.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

* Make :path prefix capture optional so bare /api matches

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

* Warn against destination.path instead of teaching it

The proxy only reads destination.service when dispatching into a
service; the path field is compiled and validated but never consumed
at request time.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

* Spell out the private-by-default rule for services

No top-level rewrite means a service is unreachable from the public
internet and only accessible through bindings; adding a rewrite makes
it public regardless of bindings.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

* Drop frontend from the backend+vercel prompt signal group

Review feedback: the frontend term made the group miss backend-led
phrasings. The wider [backend, vercel] group can reach the threshold
with anyOf hits, which we accept for now.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

* Rework retrieval intents and examples

Intents: one line per job the skill teaches, anchored by domain
vocabulary (services, binding, rewrites, vercel.json) rather than
product-name prefixes, and covering the private-by-default, subdomain,
and prefix-stripping content added in this PR.

Examples: verbatim-style prompts carrying stack names (FastAPI, Vite,
Express, Go) and symptom phrasings, which is what the lowest-weight
retrieval field is for.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

* Remove 'frontend' option from skill manifest

Removed 'frontend' from the 'anyOf' array in skill manifest.

* Drop frontend from anyOf in skill source, not just the manifest

The manifest is generated from SKILL.md, so removing the term only
from generated/skill-manifest.json left the two out of sync and
failed the manifest check.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
2026-08-07 11:19:15 -07:00
MelkeyDev 1e821f3087 [Plugin] Adds a new skill for deployment protection (#130)
* Adding new deployment protection skill

* bumping plugin versoin

* fixing token access preview

* fixing skill to have header and request header
2026-07-31 15:18:55 -07:00
MelkeyDev 19606ac163 [chore] Adding license to Vercel Plugin (#124)
* updating the readme

* adding license for vercel plugin
2026-07-20 08:36:29 -07:00
Shina Patel d71c61cedb [skills] Extend cdn-caching with per-request cache reason guidance (#110)
* [skills] Add cache-reason skill for per-request cache reason debugging

Adds a `cache-reason` skill that explains the per-request `cacheReason`
field (cold, collapsed, error, draft_mode, prerender_bypass, crawler,
stale_time, stale_tag, stale_error) — why a single request was a MISS,
STALE, or BYPASS. Complements `cdn-caching`, which covers aggregate hit
rate and ISR cost via `vercel metrics`.

Written for the public audience: all observation paths route through the
dashboard Logs "Reason" row and `vercel logs --json`. The internal-only
`x-vercel-cache-reason` response header (gated behind is_timing_header_visible)
is explicitly flagged as not user-visible, and the skill avoids the
not-yet-published /docs/caching/cache-status anchors.

- New: skills/cache-reason/SKILL.md (with promptSignals + retrieval block)
- vercel.md: graph reference in the caching section
- README.md: skills table row + count
- cdn-caching: mutual cross-link
- Regenerated skill-manifest.json, skill-catalog.md, build-from-skills.manifest.json

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

* [skills] Merge cache-reason guidance into cdn-caching instead of a new skill

Fold the per-request cacheReason content into the existing cdn-caching
skill (from #108) rather than shipping a separate cache-reason skill:

- cdn-caching: add the 9-value cacheReason table (cold, collapsed, error,
  draft_mode, prerender_bypass, crawler, stale_time, stale_tag, stale_error)
  refining the x-vercel-cache status, the MISS→BYPASS displayed-status rule,
  and how to read cacheReason via `vercel logs --json` / the Logs "Reason"
  row (with the internal-only x-vercel-cache-reason header caveat).
- Absorb cache-reason prompt signals + add a retrieval block so questions
  like "why is my page stale" / "what does stale_tag mean" route here.
- Remove skills/cache-reason/ and revert its README/vercel.md wiring
  (back to 30 skills).
- Regenerate manifest, catalog, build-from-skills manifest.

Verified: 899 tests pass; the real UserPromptSubmit hook injects cdn-caching
for the three cache-reason prompts and correctly ignores unrelated prompts.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

* [skills] Tighten cdn-caching cacheReason merge (287→133 lines)

Condense the skill while keeping all 6 cache statuses and all 9 cache
reasons (3 MISS: cold/collapsed/error, 3 BYPASS: draft_mode/
prerender_bypass/crawler, 3 STALE: stale_time/stale_tag/stale_error).
Cut verbose prose, repeated metrics examples, and the FAQ; keep the two
reference tables, the core metrics/logs investigation commands, and the
cacheReason observation guidance. Add [cache, miss] prompt signal so
MISS questions trigger.

Verified: 899 tests pass; the real UserPromptSubmit hook injects
cdn-caching for MISS/STALE/BYPASS/hit-rate prompts and ignores unrelated
and generic-error prompts.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

* [skills] Complete cacheReason retrieval entities (add error, collapsed, stale_time)

The retrieval.entities list included some cache reasons but omitted
`error` (and `collapsed`, `stale_time`), making it inconsistent with the
canonical 9-reason table. List all nine reason slugs, ordered to mirror
the table.

Low-risk: the "error" token was already in the lexical index via
stale_error, and injection is gated on exact score — verified generic
error prompts ("fix this null pointer error", etc.) still inject nothing,
while MISS/STALE/BYPASS/hit-rate prompts still route to cdn-caching.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

* [skills] Restore docs/caching/cdn-cache link dropped during trim

The cdn-cache docs URL was inadvertently removed while tightening the
docs list; it's the canonical CDN-cache reference for this skill. Restore
it alongside the caching overview, ISR, metrics, and logs links.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

* [skills] Redo cacheReason as a small additive change to cdn-caching

Prior commits had rewritten (gutted) the existing cdn-caching skill.
Restore the original #108 skill verbatim and add only what's needed:

- A 9-row cacheReason table under Key concepts (3 MISS: cold/collapsed/
  error, 3 BYPASS: draft_mode/prerender_bypass/crawler, 3 STALE:
  stale_time/stale_tag/stale_error), the MISS→BYPASS displayed-status
  rule, and how to read cacheReason (vercel logs / Logs panel; the
  x-vercel-cache-reason header is internal-only).
- Additive promptSignals + a retrieval block so cache-reason questions
  route here.

Net diff vs the original: +47 / -2 lines. All existing metrics/ISR/BYPASS
runbook content preserved. 899 tests pass; routing verified via the real
UserPromptSubmit hook.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

* [skills] Make cacheReason prompt signals consistent across reasons

Previously only stale_tag was a phrase. Add the other distinctive reason
slugs so pasting any of them from a log triggers the skill:
stale_time, stale_error, draft_mode, prerender_bypass (+ existing
stale_tag). Add 'cold cache' and 'request collapsed' to anyOf for MISS
coverage.

Bare cold/collapsed/error are intentionally NOT phrases — as ordinary
English words they would false-match unrelated prose. Verified:
"cacheReason: stale_error" and "prerender_bypass" fire cdn-caching, while
"fix this null pointer error" / "handle the error case" inject nothing.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

* [skills] Route the cacheReason field name to cdn-caching

* [skills] Drop generic single-word cache-reason entities (cold, error, crawler) per review

---------

Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-07 10:41:26 -07:00
MelkeyDev 18dd7fdeed Updating Readme for all the agents we support (#115)
* updating the readme

* updating the link
2026-07-07 10:33:27 -07:00
Jathin Pranav Singaraju c9b1d8ff93 [marketplace] fix skill shadowed by command + discover-first routing (#107)
* feat(marketplace): discover-first commerce routing + provisioning guidance

Make the model reliably reach for the Marketplace when an app needs an
external service, instead of hardcoding a provider from memory.

- knowledge-update (always-injected at session start): add a discover-first
  directive — load the `marketplace` skill, then discover + provision a real
  integration BEFORE planning/writing code/asking.
- marketplace SKILL.md: broaden the description (commerce/payments/etc. as the
  catch-all for capabilities without a dedicated skill); restructure into
  discover -> install -> build with an anti-mock/anti-punt rule; add a
  Recommendations section keyed on the product-catalog test (commerce vs
  payments), with no hardcoded providers (discover names them).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>

* fix(marketplace): remove command that shadowed the skill; tighten routing

The `marketplace` skill and `/marketplace` command shared a name, so the
command shadowed the skill — Skill(vercel:marketplace) loaded the command's
runbook instead, and the skill's routing guidance never reached the model.

Remove the command (marketplace is skill-only, like the other capabilities)
so the skill loads, and tighten routing: discover-first flow, a preferred-
provider table (commerce -> Shopify, payments -> Stripe), and a slimmer
knowledge-update that points at the skill.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>

* chore(release): patch-bump plugin manifests to 0.45.1

Backwards-compatible fix (marketplace skill routing); bump the version in
all three shipped manifests (.claude-plugin, .cursor-plugin, .plugin).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-01 12:18:42 -07:00
Mark Knichel 5325c6567f [skills] Add skill to analyze and debug Vercel CDN + ISR caching (#108) 2026-07-01 11:09:37 -07:00
MelkeyDev 375ea4c515 Adding Eve Skill (#104)
* adding eve skill

* fixing generated skills
2026-06-29 09:53:03 -07:00
MelkeyDev 1edb125d13 Adding new active session telemetry (#83) 2026-05-15 20:51:00 -07:00
melkeydev a2c094f036 Adding back telemetry for vercel plugin 2026-04-28 11:34:42 -07:00
melkeydev fc26960da4 adding proper gating 2026-04-12 12:20:23 -07:00
melkeydev 81bc9647e4 removing everything but DAU 2026-04-11 12:47:02 -07:00
melkeydev 4f4043886b removing more agents hooks 2026-04-10 12:58:44 -07:00
melkeydev 7af9ad9387 WIP 2026-04-10 11:32:20 -07:00
melkeydev 6205e61949 removing bash 2026-04-09 12:28:14 -07:00
melkeydev 969eae3f41 removing telemetry 2026-04-09 11:26:28 -07:00
melkeydev fbbead58af changing telemetry gating 2026-04-09 11:23:16 -07:00
melkeydev 3df45a85e9 adding a kill switch for telemetry 2026-04-06 08:37:28 -07:00
melkeydev 35bf7ef55f making telemetry fully opt-out 2026-04-06 08:13:43 -07:00
melkeydev 77a65a9918 removing observability, turborepo and more skills 2026-03-29 18:26:07 -07:00
melkeydev 7a73b56791 removing 12 skills 2026-03-29 17:52:10 -07:00
melkeydev eab4da0aba fixing readme and CI 2026-03-22 15:51:45 -07:00
melkeydev 26440d4332 removing ai-generation-persistence 2026-03-22 14:00:36 -07:00
melkeydev 0b375ac333 updating readme 2026-03-18 11:15:50 -07:00
melkeydev c649033060 removing vercel-lab references 2026-03-16 11:14:28 -07:00
melkeydev a2cbc8e45e fixing and making telemetry more stable 2026-03-15 21:15:20 -07:00
melkeydev 05c4b57168 Adding list of suported platforms 2026-03-13 10:49:56 -07:00
melkeydev f4292a914c changing readme.md 2026-03-12 20:29:07 -07:00
melkeydev 5ef93cb0c0 adding plugins add 2026-03-11 16:58:28 -07:00
melkeydev 6caf9f9494 adding npx 2026-03-11 16:41:51 -07:00
melkeydev b4f819a57a fix 2026-03-11 15:47:45 -07:00
melkeydev 89ef27e143 modifying readme 2026-03-11 15:46:05 -07:00
John Lindquist ef6a6160e0 docs: add "How Do I Use This?" section to README 2026-03-06 16:14:15 -07:00
John Lindquist 3f3059a281 Add installation instructions to README 2026-03-06 15:22:33 -07:00
John Lindquist e449377742 docs: update README and CLAUDE.md for 34 skills, new hooks, and 20 test files
Reflect additions since last docs update: 13 new skills (agent-browser,
ai-elements, auth, bootstrap, chat-sdk, cms, cron-jobs, deployments-cicd,
email, env-vars, json-render, payments, shadcn), bootstrap command,
session-start-profiler and inject-claude-md hooks, and expanded test suite.
2026-03-06 15:22:03 -07:00
John Lindquist cc18742dbd chore: remove assets/ dir, point validator and tests at vercel.md
The ecosystem graph now lives at vercel.md (root). Remove the redundant
assets/ directory and update all references in the validator, tests, and
README.
2026-03-04 11:10:33 -07:00
John Lindquist a9ce4311f1 docs: update README for CLAUDE.md → vercel.md rename 2026-03-04 10:54:48 -07:00
John Lindquist dbb17d4eeb refactor: move ecosystem graph + conventions to CLAUDE.md, remove rules/
Rules (.mdc files) aren't supported by Claude Code's plugin system — they
were silently ignored. Move the ecosystem knowledge graph and all three
convention sets (Next.js 16, AI SDK v6, Vercel platform) into CLAUDE.md
so they're always loaded into context.

Also updates repo references from anthropics/open-plugin to
vercel-labs/vercel-plugin.
2026-03-04 10:22:29 -07:00
John Lindquist 6a3c0d30e1 docs(manifest): align plugin.json and README with 21 skills
Update plugin.json to enumerate all 21 skills and align README
skill table and counts with the expanded manifest.
2026-03-03 20:18:29 -07:00
John Lindquist 2a56636bbe Initial commit: vercel-plugin project setup 2026-03-03 15:13:06 -07:00