fix(skills): align Vercel deploy name and mounted script path (#5656)

* fix(skills): align Vercel deploy path

* test: align shard duration key with vercel-deploy rename

* docs: align demo transcript with vercel-deploy mount path

* test: keep duration baseline surgical after skill rename

* test(skills): align Vercel demo and strengthen path coverage

---------

Co-authored-by: Willem Jiang <willem.jiang@gmail.com>
This commit is contained in:
Roli Bosch 2026-09-22 10:39:49 -04:00 committed by GitHub
parent 36b124c7fc
commit 61ae228b0e
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
5 changed files with 20 additions and 9 deletions

View File

@ -10142,7 +10142,7 @@
"tests/test_skills_bundled.py::test_bundled_skill_frontmatter_is_valid[skill-reviewer]": 0.0012424320001400702,
"tests/test_skills_bundled.py::test_bundled_skill_frontmatter_is_valid[surprise-me]": 0.0012647949999973207,
"tests/test_skills_bundled.py::test_bundled_skill_frontmatter_is_valid[systematic-literature-review]": 0.0013007800000650604,
"tests/test_skills_bundled.py::test_bundled_skill_frontmatter_is_valid[vercel-deploy-claimable]": 0.0014600299999756317,
"tests/test_skills_bundled.py::test_bundled_skill_frontmatter_is_valid[vercel-deploy]": 0.0014600299999756317,
"tests/test_skills_bundled.py::test_bundled_skill_frontmatter_is_valid[video-generation]": 0.0011253740000256585,
"tests/test_skills_bundled.py::test_bundled_skill_frontmatter_is_valid[web-design-guidelines]": 0.0014314249998506057,
"tests/test_skills_bundled.py::test_runtime_registry_excludes_skill_reviewer_eval_fixtures": 0.015141091000032247,

View File

@ -29,12 +29,23 @@ def test_bundled_skill_frontmatter_is_valid(skill_dir: Path) -> None:
valid, msg, name = _validate_skill_frontmatter(skill_dir)
assert valid, f"{skill_dir.relative_to(SKILLS_PUBLIC_DIR)}: {msg}"
assert name, f"{skill_dir.relative_to(SKILLS_PUBLIC_DIR)}: no name extracted"
assert name == skill_dir.name, f"{skill_dir.relative_to(SKILLS_PUBLIC_DIR)}: frontmatter name {name!r} must match directory name {skill_dir.name!r}"
def test_skills_public_dir_has_skills() -> None:
assert BUNDLED_SKILL_DIRS, f"no SKILL.md found under {SKILLS_PUBLIC_DIR}"
def test_vercel_deploy_commands_use_the_mounted_script_path() -> None:
skills = get_or_new_skill_storage(skills_path=SKILLS_PUBLIC_DIR.parent).load_skills(enabled_only=False)
skill = next(skill for skill in skills if skill.name == "vercel-deploy")
mounted_script = f"{skill.get_container_path()}/scripts/deploy.sh"
content = skill.skill_file.read_text(encoding="utf-8")
assert content.count(mounted_script) == 4
assert content.count("deploy.sh") == content.count(mounted_script)
def test_runtime_registry_excludes_skill_reviewer_eval_fixtures() -> None:
skills = get_or_new_skill_storage(skills_path=SKILLS_PUBLIC_DIR.parent).load_skills(enabled_only=False)
names = {skill.name for skill in skills}

View File

@ -589,7 +589,7 @@
"name": "read_file",
"args": {
"description": "Load vercel-deploy skill",
"path": "/mnt/skills/public/vercel-deploy-claimable/SKILL.md"
"path": "/mnt/skills/public/vercel-deploy/SKILL.md"
},
"id": "read_file:11",
"type": "tool_call"
@ -599,7 +599,7 @@
"usage_metadata": null
},
{
"content": "---\nname: vercel-deploy\ndescription: Deploy applications and websites to Vercel. Use this skill when the user requests deployment actions such as \"Deploy my app\", \"Deploy this to production\", \"Create a preview deployment\", \"Deploy and give me the link\", or \"Push this live\". No authentication required - returns preview URL and claimable deployment link.\nmetadata:\n author: vercel\n version: \"1.0.0\"\n---\n\n# Vercel Deploy\n\nDeploy any project to Vercel instantly. No authentication required.\n\n## How It Works\n\n1. Packages your project into a tarball (excludes `node_modules` and `.git`)\n2. Auto-detects framework from `package.json`\n3. Uploads to deployment service\n4. Returns **Preview URL** (live site) and **Claim URL** (transfer to your Vercel account)\n\n## Usage\n\n```bash\nbash /mnt/skills/user/vercel-deploy/scripts/deploy.sh [path]\n```\n\n**Arguments:**\n- `path` - Directory to deploy, or a `.tgz` file (defaults to current directory)\n\n**Examples:**\n\n```bash\n# Deploy current directory\nbash /mnt/skills/user/vercel-deploy/scripts/deploy.sh\n\n# Deploy specific project\nbash /mnt/skills/user/vercel-deploy/scripts/deploy.sh /path/to/project\n\n# Deploy existing tarball\nbash /mnt/skills/user/vercel-deploy/scripts/deploy.sh /path/to/project.tgz\n```\n\n## Output\n\n```\nPreparing deployment...\nDetected framework: nextjs\nCreating deployment package...\nDeploying...\n✓ Deployment successful!\n\nPreview URL: https://skill-deploy-abc123.vercel.app\nClaim URL: https://vercel.com/claim-deployment?code=...\n```\n\nThe script also outputs JSON to stdout for programmatic use:\n\n```json\n{\n \"previewUrl\": \"https://skill-deploy-abc123.vercel.app\",\n \"claimUrl\": \"https://vercel.com/claim-deployment?code=...\",\n \"deploymentId\": \"dpl_...\",\n \"projectId\": \"prj_...\"\n}\n```\n\n## Framework Detection\n\nThe script auto-detects frameworks from `package.json`. Supported frameworks include:\n\n- **React**: Next.js, Gatsby, Create React App, Remix, React Router\n- **Vue**: Nuxt, Vitepress, Vuepress, Gridsome\n- **Svelte**: SvelteKit, Svelte, Sapper\n- **Other Frontend**: Astro, Solid Start, Angular, Ember, Preact, Docusaurus\n- **Backend**: Express, Hono, Fastify, NestJS, Elysia, h3, Nitro\n- **Build Tools**: Vite, Parcel\n- **And more**: Blitz, Hydrogen, RedwoodJS, Storybook, Sanity, etc.\n\nFor static HTML projects (no `package.json`), framework is set to `null`.\n\n## Static HTML Projects\n\nFor projects without a `package.json`:\n- If there's a single `.html` file not named `index.html`, it gets renamed automatically\n- This ensures the page is served at the root URL (`/`)\n\n## Present Results to User\n\nAlways show both URLs:\n\n```\n✓ Deployment successful!\n\nPreview URL: https://skill-deploy-abc123.vercel.app\nClaim URL: https://vercel.com/claim-deployment?code=...\n\nView your site at the Preview URL.\nTo transfer this deployment to your Vercel account, visit the Claim URL.\n```\n\n## Troubleshooting\n\n### Network Egress Error\n\nIf deployment fails due to network restrictions (common on claude.ai), tell the user:\n\n```\nDeployment failed due to network restrictions. To fix this:\n\n1. Go to https://claude.ai/settings/capabilities\n2. Add *.vercel.com to the allowed domains\n3. Try deploying again\n```\n",
"content": "---\nname: vercel-deploy\ndescription: Deploy applications and websites to Vercel. Use this skill when the user requests deployment actions such as \"Deploy my app\", \"Deploy this to production\", \"Create a preview deployment\", \"Deploy and give me the link\", or \"Push this live\". No authentication required - returns preview URL and claimable deployment link.\nmetadata:\n author: vercel\n version: \"1.0.0\"\n---\n\n# Vercel Deploy\n\nDeploy any project to Vercel instantly. No authentication required.\n\n## How It Works\n\n1. Packages your project into a tarball (excludes `node_modules` and `.git`)\n2. Auto-detects framework from `package.json`\n3. Uploads to deployment service\n4. Returns **Preview URL** (live site) and **Claim URL** (transfer to your Vercel account)\n\n## Usage\n\n```bash\nbash /mnt/skills/public/vercel-deploy/scripts/deploy.sh [path]\n```\n\n**Arguments:**\n- `path` - Directory to deploy, or a `.tgz` file (defaults to current directory)\n\n**Examples:**\n\n```bash\n# Deploy current directory\nbash /mnt/skills/public/vercel-deploy/scripts/deploy.sh\n\n# Deploy specific project\nbash /mnt/skills/public/vercel-deploy/scripts/deploy.sh /path/to/project\n\n# Deploy existing tarball\nbash /mnt/skills/public/vercel-deploy/scripts/deploy.sh /path/to/project.tgz\n```\n\n## Output\n\n```\nPreparing deployment...\nDetected framework: nextjs\nCreating deployment package...\nDeploying...\n✓ Deployment successful!\n\nPreview URL: https://skill-deploy-abc123.vercel.app\nClaim URL: https://vercel.com/claim-deployment?code=...\n```\n\nThe script also outputs JSON to stdout for programmatic use:\n\n```json\n{\n \"previewUrl\": \"https://skill-deploy-abc123.vercel.app\",\n \"claimUrl\": \"https://vercel.com/claim-deployment?code=...\",\n \"deploymentId\": \"dpl_...\",\n \"projectId\": \"prj_...\"\n}\n```\n\n## Framework Detection\n\nThe script auto-detects frameworks from `package.json`. Supported frameworks include:\n\n- **React**: Next.js, Gatsby, Create React App, Remix, React Router\n- **Vue**: Nuxt, Vitepress, Vuepress, Gridsome\n- **Svelte**: SvelteKit, Svelte, Sapper\n- **Other Frontend**: Astro, Solid Start, Angular, Ember, Preact, Docusaurus\n- **Backend**: Express, Hono, Fastify, NestJS, Elysia, h3, Nitro\n- **Build Tools**: Vite, Parcel\n- **And more**: Blitz, Hydrogen, RedwoodJS, Storybook, Sanity, etc.\n\nFor static HTML projects (no `package.json`), framework is set to `null`.\n\n## Static HTML Projects\n\nFor projects without a `package.json`:\n- If there's a single `.html` file not named `index.html`, it gets renamed automatically\n- This ensures the page is served at the root URL (`/`)\n\n## Present Results to User\n\nAlways show both URLs:\n\n```\n✓ Deployment successful!\n\n- [Preview URL](https://skill-deploy-abc123.vercel.app)\n- [Claim URL](https://vercel.com/claim-deployment?code=...)\n\nView your site at the Preview URL.\nTo transfer this deployment to your Vercel account, visit the Claim URL.\n```\n\n## Troubleshooting\n\n### Network Restriction Error\n\nIf deployment fails due to network restrictions (common on claude.ai), tell the user:\n\n```\nDeployment failed due to network restrictions. To fix this:\n\n1. Go to https://claude.ai/settings/capabilities\n2. Add *.vercel.com to the allowed domains\n3. Try deploying again\n```\n",
"additional_kwargs": {},
"response_metadata": {},
"type": "tool",
@ -626,7 +626,7 @@
"name": "bash",
"args": {
"description": "Deploy to Vercel",
"command": "bash /mnt/skills/public/vercel-deploy-claimable/scripts/deploy.sh /mnt/user-data/outputs"
"command": "bash /mnt/skills/public/vercel-deploy/scripts/deploy.sh /mnt/user-data/outputs"
},
"id": "bash:12",
"type": "tool_call"

View File

@ -20,7 +20,7 @@ Deploy any project to Vercel instantly. No authentication required.
## Usage
```bash
bash /mnt/skills/user/vercel-deploy/scripts/deploy.sh [path]
bash /mnt/skills/public/vercel-deploy/scripts/deploy.sh [path]
```
**Arguments:**
@ -30,13 +30,13 @@ bash /mnt/skills/user/vercel-deploy/scripts/deploy.sh [path]
```bash
# Deploy current directory
bash /mnt/skills/user/vercel-deploy/scripts/deploy.sh
bash /mnt/skills/public/vercel-deploy/scripts/deploy.sh
# Deploy specific project
bash /mnt/skills/user/vercel-deploy/scripts/deploy.sh /path/to/project
bash /mnt/skills/public/vercel-deploy/scripts/deploy.sh /path/to/project
# Deploy existing tarball
bash /mnt/skills/user/vercel-deploy/scripts/deploy.sh /path/to/project.tgz
bash /mnt/skills/public/vercel-deploy/scripts/deploy.sh /path/to/project.tgz
```
## Output
@ -99,7 +99,7 @@ To transfer this deployment to your Vercel account, visit the Claim URL.
## Troubleshooting
### Network Egress Error
### Network Restriction Error
If deployment fails due to network restrictions (common on claude.ai), tell the user: