用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
直接命令不会经过审查 Prompt;运行前请先检查来源。
npx skills add https://github.com/voidzero-dev/vite-plus --skill add-ecosystem-ci命令会保持在同一行。复制前请横向滚动并检查完整内容。
想先保存到本地?可下载 SkillsMP 当前能够提供的文件。
正在显示 SKILL.md
| name | add-ecosystem-ci |
| description | Add a new ecosystem-ci test case for testing real-world projects against vite-plus |
| allowed-tools | Bash, Read, Edit, Write, WebFetch, AskUserQuestion |
Add a new ecosystem-ci test case following this process:
Ask the user for the GitHub repository URL if not provided as argument: $ARGUMENTS
Use GitHub CLI to get repository info:
gh api repos/OWNER/REPO --jq '.default_branch'
gh api repos/OWNER/REPO/commits/BRANCH --jq '.sha'
Fetch the repository's root to check if the main package.json is in a subdirectory (like web/, app/, frontend/).
Check the project's root package.json for vite-plus in dependencies or devDependencies. If the project already uses vite-plus, set forceFreshMigration: true in repo.json. This tells patch-project.ts to set VP_FORCE_MIGRATE=1 so vp migrate forces full dependency rewriting instead of skipping with "already using Vite+".
Fetch the project's GitHub workflow files to detect available commands:
# List workflow files
gh api repos/OWNER/REPO/contents/.github/workflows --jq '.[].name'
# Fetch workflow content (for each .yml/.yaml file)
gh api repos/OWNER/REPO/contents/.github/workflows/ci.yml --jq '.content' | base64 -d
Look for common patterns in workflow files:
pnpm run <command> / npm run <command> / yarn <command>lint, build, test, type-check, typecheck, format, format:checkvp equivalents: vp run lint, vp run build, etc.Present the auto-detected configuration and ask user to confirm or modify:
Add to ecosystem-ci/repo.json:
{
"project-name": {
"repository": "https://github.com/owner/repo.git",
"branch": "main",
"hash": "full-commit-sha",
"forceFreshMigration": true // only if project already uses vite-plus
}
}
Add to .github/workflows/e2e-test.yml matrix:
- name: project-name
node-version: 24
directory: web # only if subdirectory is needed
command: |
vp run lint
vp run build
Always rebuild tgz packages from latest source to avoid using stale cached versions:
# Rebuild the global CLI first (includes Rust binary + NAPI binding)
pnpm bootstrap-cli
# Pack fresh tgz files into tmp/tgz/
rm -rf tmp/tgz && mkdir -p tmp/tgz
cd packages/core && pnpm pack --pack-destination ../../tmp/tgz && cd ../..
cd packages/test && pnpm pack --pack-destination ../../tmp/tgz && cd ../..
cd packages/cli && pnpm pack --pack-destination ../../tmp/tgz && cd ../..
ls -la tmp/tgz
node ecosystem-ci/clone.ts project-name
# Run from the ecosystem-ci temp directory
cd $(node -e "const os=require('os'); console.log(os.tmpdir() + '/vite-plus-ecosystem-ci')")
# Migrate the project (uses tgz files from tmp/tgz/)
node /path/to/vite-plus/ecosystem-ci/patch-project.ts project-name
# Run the configured commands
cd project-name
vp run build
Add OS exclusion to .github/workflows/e2e-test.yml (if not running on both):
For ubuntu-only:
exclude:
- os: windows-latest
project:
name: project-name
For windows-only:
exclude:
- os: ubuntu-latest
project:
name: project-name
directory field is optional - only add it if the project commands must run in a subdirectory (like a workspace member)patch-project.ts always runs vp migrate and vp install at the clone root; vp migrate rejects workspace member targetsforceFreshMigration is required for projects that already have vite-plus in their package.json — it sets VP_FORCE_MIGRATE=1 so vp migrate forces full dependency rewriting instead of skippingexclude section in the workflow matrix基于 SOC 职业分类