npm @schoolai/shipyard @3.14.0
score
0.6
med
flagged
2026-06-16 12:52
Signals fired
| signal | weight | rationale |
|---|---|---|
| content | ||
| install_script_payload | 1.0 | install/lifecycle script matches payload regex |
| topology | ||
| no_repo | 0.3 | package.json has no repository field |
| dist_tag_anomaly | 0.5 | dist-tags.latest=3.14.0 but max published is 3.15.0-rc.20260616.0 |
Prior profile (what it deviated from)
{
"had_install_script": true,
"maintainers": [
"canadaduane",
"cahlan_schoolai",
"jacobpetterle",
"sai-ops"
],
"versions": 396
}
Evidence (package doc at flag time)
{
"dependencies_count": 23,
"dist": {
"integrity": "sha512-+CHXRYmvbrdyB5itJmNIQdvrApdRC1NutTEmiMTanz5W/vqr3zuOKE7MjHZ9ziiKCaOp91fuCsYlm4of0qyhfA==",
"tarball": "https://registry.npmjs.org/@schoolai/shipyard/-/shipyard-3.14.0.tgz",
"unpackedSize": 43109933
},
"dist-tags": {
"latest": "3.14.0",
"next": "3.15.0-rc.20260616.0",
"nightly": "3.14.0-nightly.20260616.0"
},
"latest_version": "3.14.0",
"maintainers": [
{
"email": "duane.johnson@gmail.com",
"name": "canadaduane"
},
{
"email": "cahlan@schoolai.com",
"name": "cahlan_schoolai"
},
{
"email": "jacobpetterle@gmail.com",
"name": "jacobpetterle"
},
{
"email": "ops@schoolai.com",
"name": "sai-ops"
}
],
"num_versions": 397,
"repository": null,
"scripts": {
"postinstall": "node -e \"const fs=require('fs'),path=require('path');const d=path.join(__dirname,'node_modules','node-pty','prebuilds');if(fs.existsSync(d))for(const a of fs.readdirSync(d)){const h=path.join(d,a,'spawn-helper');try{fs.chmodSync(h,0o755)}catch{}}\""
},
"signal_details": {
"dist_tag_anomaly": "dist-tags.latest=3.14.0 but max published is 3.15.0-rc.20260616.0",
"install_script_payload": "install/lifecycle script matches payload regex",
"no_repo": "package.json has no repository field"
},
"time": {
"created": "2026-02-15T23:52:08.911Z",
"modified": "2026-06-16T16:27:11.047Z"
}
}