BEACON

← candidates

npm skillshelf @0.3.0

score
0.6435 med
flagged 2026-06-15 21:36
signals by category
content 1 topology 1

maintainers added:

package profile →

amplifiers co-occurring signal pairs that lift the final score

Signals fired

signalweightrationale
content
install_script_payload 1.0 install/lifecycle script matches payload regex
topology
typosquat 1.0 combosquat of 'skill'

Prior profile (what it deviated from)

{
  "had_install_script": true,
  "maintainers": [
    "flykun0620"
  ],
  "versions": 3
}

Evidence (package doc at flag time)

{
  "dependencies_count": 0,
  "dist": {
    "integrity": "sha512-8K2FqufjjNLCX7Nk45D6XtHafw3hcNe36g5Ibvyvnvo8pRfoV7fZhQLaAPKsLH5f9ef+f8mcvLkHBLEBxnONkA==",
    "tarball": "https://registry.npmjs.org/skillshelf/-/skillshelf-0.3.0.tgz",
    "unpackedSize": 412039
  },
  "dist-tags": {
    "latest": "0.3.0"
  },
  "latest_version": "0.3.0",
  "maintainers": [
    {
      "email": "flykun0620@gmail.com",
      "name": "flykun0620"
    }
  ],
  "num_versions": 3,
  "repository": {
    "type": "git",
    "url": "git+https://github.com/Wang-Cankun/skillshelf.git"
  },
  "scripts": {
    "preinstall": "bun --version >/dev/null 2>&1 || { echo '\\nskillshelf requires the Bun runtime (https://bun.sh) \u2014 its bin is a TypeScript entrypoint, not a compiled Node script.\\nInstall Bun, then:  bun add -g skillshelf   (or run without installing:  bunx skillshelf <command>)\\n' >&2; exit 1; }",
    "skl": "bun run src/cli.ts",
    "test": "bun test"
  },
  "signal_details": {
    "_amplifiers": [
      "typosquat + install_script_payload: typosquat shape with active payload or stub-rush surface (+0.15)"
    ],
    "install_script_payload": "install/lifecycle script matches payload regex",
    "typosquat": "combosquat of 'skill'"
  },
  "time": {
    "created": "2026-06-12T17:43:53.912Z",
    "modified": "2026-06-14T22:48:51.750Z"
  }
}