Package evidence
@lemon30_npm/[email protected]
Install Lifecycle Remote Or Exec: postinstall="node -e \"var f=require('fs'),p=require('path');var cwd=process.env.INIT_CWD;if(!cwd)return;var dest=p.join(cwd,'.claude/skills/csit-vue2');if(f.existsSync(dest))return;var src=p.join(__dirname,'.claude/skills/csit-vue2');if(!f.existsSync(src))return;var skillsDir=p.join(cwd,'.claude/skills');f.mkdirSync(skillsDir,{recursive:true});f.cpSync(src,dest,{recursive:true});console.log('✅ csit-vue2 Skill 自动安装成功: .claude/skills/csit-vue2/')\""
Trust signals
Why this verdict
PkgRadar discounts a release’s score when public reputation argues against novel malware. The verdict above already reflects these — the panel just explains what was applied.
- Weekly downloads
- 9
- Versions published
- 5
- First published
- Jan 2026
- Publisher
- lemon30_npm
Recommended action
Block this updateStatic evidence trips multiple high-signal indicators. Quarantine the release until the publisher validates the change or you can rule out the indicators below.
Block this release in CIcurl · GitHub Actions
Fail the build when this package version is added or upgraded. Replace $PKGRADAR_TOKEN with a Pro / Team API key from your dashboard.
curl -fsS https://pkgradar.com/gate/npm \
-H "Authorization: Bearer $PKGRADAR_TOKEN" \
-H "Content-Type: application/json" \
-d '{"specs":["@lemon30_npm/[email protected]"],"fail_on":"high"}'GitHub Actions step:
- name: PkgRadar gate
run: |
curl -fsS https://pkgradar.com/gate/npm \
-H "Authorization: Bearer ${{ secrets.PKGRADAR_TOKEN }}" \
-H "Content-Type: application/json" \
-d '{"specs":["@lemon30_npm/[email protected]"],"fail_on":"high"}'Why flagged
What the scanner saw
New Lifecycle Script Vs Previous: postinstall added in 0.0.11 vs 0.0.10: "node -e \"var f=require('fs'),p=require('path');var cwd=process.env.INIT_CWD;if(!cwd)return;var dest=p.join(cwd,'.claude/skills/csit-vue2');if(f.existsSync(dest))return;var src=p.join(__dirname,'.claude/skills/csit-vue2');if(!f.existsSync(src))return;var skillsDir=p.join(cwd,'.claude/skills');f.mkdirSync(skillsDir,{recursive:true});f.cpSync(src,dest,{recursive:true});console.log('✅ csit-vue2 Skill 自动安装成功: .claude/skills/csit-vue2/')\""
Not observed: package install, lifecycle script execution, or sandbox execution. PkgRadar only inspects on-disk artifacts.
Availability ledger
available
Status history (1 event)
- new → available · risk high · score 75 · status changed
Evidence
Static findings
2 static · 1 from release diff · showing high-signal first.
| Severity | Kind | Path | Detail | Points |
|---|---|---|---|---|
| high | New Lifecycle Script Vs Previous | package.json | postinstall added in 0.0.11 vs 0.0.10: "node -e \"var f=require('fs'),p=require('path');var cwd=process.env.INIT_CWD;if(!cwd)return;var dest=p.join(cwd,'.claude/skills/csit-vue2');if(f.existsSync(dest))return;var src=p.join(__dirname,'.claude/skills/csit-vue2');if(!f.existsSync(src))return;var skillsDir=p.join(cwd,'.claude/skills');f.mkdirSync(skillsDir,{recursive:true});f.cpSync(src,dest,{recursive:true});console.log('✅ csit-vue2 Skill 自动安装成功: .claude/skills/csit-vue2/')\"" | 40 |
| high | Install Lifecycle Remote Or Exec | package.json | postinstall="node -e \"var f=require('fs'),p=require('path');var cwd=process.env.INIT_CWD;if(!cwd)return;var dest=p.join(cwd,'.claude/skills/csit-vue2');if(f.existsSync(dest))return;var src=p.join(__dirname,'.claude/skills/csit-vue2');if(!f.existsSync(src))return;var skillsDir=p.join(cwd,'.claude/skills');f.mkdirSync(skillsDir,{recursive:true});f.cpSync(src,dest,{recursive:true});console.log('✅ csit-vue2 Skill 自动安装成功: .claude/skills/csit-vue2/')\"" | 30 |
Show all 3 findings (low-signal and informational)
| Severity | Kind | Path | Detail | Points |
|---|---|---|---|---|
| high | New Lifecycle Script Vs Previous | package.json | postinstall added in 0.0.11 vs 0.0.10: "node -e \"var f=require('fs'),p=require('path');var cwd=process.env.INIT_CWD;if(!cwd)return;var dest=p.join(cwd,'.claude/skills/csit-vue2');if(f.existsSync(dest))return;var src=p.join(__dirname,'.claude/skills/csit-vue2');if(!f.existsSync(src))return;var skillsDir=p.join(cwd,'.claude/skills');f.mkdirSync(skillsDir,{recursive:true});f.cpSync(src,dest,{recursive:true});console.log('✅ csit-vue2 Skill 自动安装成功: .claude/skills/csit-vue2/')\"" | 40 |
| high | Install Lifecycle Remote Or Exec | package.json | postinstall="node -e \"var f=require('fs'),p=require('path');var cwd=process.env.INIT_CWD;if(!cwd)return;var dest=p.join(cwd,'.claude/skills/csit-vue2');if(f.existsSync(dest))return;var src=p.join(__dirname,'.claude/skills/csit-vue2');if(!f.existsSync(src))return;var skillsDir=p.join(cwd,'.claude/skills');f.mkdirSync(skillsDir,{recursive:true});f.cpSync(src,dest,{recursive:true});console.log('✅ csit-vue2 Skill 自动安装成功: .claude/skills/csit-vue2/')\"" | 30 |
| low | Install-time lifecycle script | package.json | postinstall="node -e \"var f=require('fs'),p=require('path');var cwd=process.env.INIT_CWD;if(!cwd)return;var dest=p.join(cwd,'.claude/skills/csit-vue2');if(f.existsSync(dest))return;var src=p.join(__dirname,'.claude/skills/csit-vue2');if(!f.existsSync(src))return;var skillsDir=p.join(cwd,'.claude/skills');f.mkdirSync(skillsDir,{recursive:true});f.cpSync(src,dest,{recursive:true});console.log('✅ csit-vue2 Skill 自动安装成功: .claude/skills/csit-vue2/')\"" | 5 |
Manifest
Package metadata
Scripts15
buildvue-cli-service buildbuild:libwebpack --config build/webpack.component.jsdocs:buildnpm --prefix docs run builddocs:devnpm --prefix docs run devdocs:previewpython3 docs-preview.pydocs:preview:browser-syncbrowser-sync start --server 'docs/.vuepress/dist' --files 'docs/.vuepress/dist/**/*'docs:preview:http-serverhttp-server docs/.vuepress/distdocs:preview:serveserve docs/.vuepress/distlintvue-cli-service lintlogin:internalnpm login --registry=http://10.132.17.6/nexus/repository/npm-local/postinstallnode -e "var f=require('fs'),p=require('path');var cwd=process.env.INIT_CWD;if(!cwd)return;var dest=p.join(cwd,'.claude/skills/csit-vue2');if(f.existsSync(dest))return;var src=p.join(__dirname,'.claude/skills/csit-vue2');if(!f.existsSync(src))return;var skillsDir=p.join(cwd,'.claude/skills');f.mkdirSync(skillsDir,{recursive:true});f.cpSync(src,dest,{recursive:true});console.log('✅ csit-vue2 Skill 自动安装成功: .claude/skills/csit-vue2/')"prepublishOnlynpm run build:libpublish:internalnpm publish --registry=http://10.132.17.6/nexus/repository/npm-local/publish:npmnpm publish --registry=https://registry.npmjs.org/servevue-cli-service serve
Dependencies1
view-design^4.5.0