* 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
* 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>