Skills/npm/siteready

siteready@1.22.2

CAUTION· startup only

Publisher claims: "Scan a website with agent-readiness scanners (afdocs, Vercel Is Agentic, Ora), get a unified scorecard, auto-fix supported issues (Astro + Starlight, or plain Astro, + Cloudflare Pages, Netlify, or GitLab Pages; Next.js + Vercel or Netlify; SvelteKit + Cl" Observed in sandbox: no network, touches nothing outside the project, writes no memory.

Registry npm (MCP server)Publisher dkdev24 · publishing for 65 daysInstalls 1,600Last detonated 2d ago

Coverage

Startup only; authenticated tool behavior not tested.
Tested
server startup over stdio (initialize sent) · every file read, file written and host contacted by what ran
Not tested
the tool list (the server exited before answering) · what the tools do when called with real credentials

Is [email protected] safe to install?

KillerSkills ran it in the KillerSkills honeypot sandbox (2 scenarios; startup only; authenticated tool behavior not tested) on 2026-11-12 and scored it 76/100 (Caution). It is not known to be malicious, but it has behaviour or code a security policy should decide on before install. Notable findings: Access to sensitive file paths; Access to sensitive file paths; Access to sensitive file paths. Summary: no network, touches nothing outside the project, writes no memory.

Behavior trace

Honeypot run · 20 s · 2 scenarios · 0 deviations
t+CategoryObserved action
0.0sprocessno install scripts in bundle
20sclaimedstartup only: exited (0) before answering · --global Install to the user-level path (~/.claude/skills, ~/.agents/skills) instead of the current project (./.claude/skills, ./.agents/skills). --force Overwrite an existing install instead of skipping it. --uninstall Remove the installed skill directory instead of writing it.
20sprocessscript backend runs setup only
20sprocessno install scripts to re-run

Static findings

MEDIUM
Process kill commandsrc/lib/npx-runner.js:145 · Process kill command — agent can terminate processes// Negative pid = kill the whole process group `spawnNpxCli` createdFix: Build commands from fixed arguments; do not interpolate untrusted strings into a shell.
AST05
MEDIUM
Process kill commandsrc/lib/npx-runner.js:112 · Process kill command — agent can terminate processes// Detached on POSIX so the caller can kill the whole process group (npxFix: Build commands from fixed arguments; do not interpolate untrusted strings into a shell.
AST05
MEDIUM
File type combined with upload actionsrc/fixers/sveltekit.js:65 · File type combined with upload action — agent may exfiltrate local data fileswarnings.push(`SvelteKit: package.json has no \`build\` script; run \`${POSTBUILD_COMMAND}\` after \`vite build\` yourself.`);Fix: Remove the call, or declare the host in frontmatter and explain in the README what is sent and why.
AST07
MEDIUM
npx invocation of non-well-known packagesrc/lib/npx-runner.js:73 · npx invocation of non-well-known package — may execute untrusted codenew Error(`npx ${packageSpec} failed (${error.message}).${stderr ? `\n${stderr}` : ""}`)Fix: Pin versions and sources; vendor anything fetched at install time.
AST06
HIGH
Access to sensitive file pathssrc/lib/local-server.js:91 · Access to sensitive file paths — SSH keys, AWS credentials, env files, or system filesenv: { ...process.env, ...env },Fix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.
AST05
MEDIUM
File type combined with upload actionscripts/check-sveltekit-agent-readiness.js:37 · File type combined with upload action — agent may exfiltrate local data filesassert.equal(JSON.parse(await readFile(path.join(site, "package.json"), "utf8")).scripts.postbuild, "node scripts/agent-readiness.mjs");Fix: Remove the call, or declare the host in frontmatter and explain in the README what is sent and why.
AST07
MEDIUM
npx invocation of non-well-known packagesrc/lib/tunnel.js:7 · npx invocation of non-well-known package — may execute untrusted code// unpinned npx call always fetches whatever's newest.Fix: Pin versions and sources; vendor anything fetched at install time.
AST06
MEDIUM
File type combined with upload actionsrc/fixers/sveltekit.js:21 · File type combined with upload action — agent may exfiltrate local data files* checkout: a permissive robots.txt and the build-output generator (wired asFix: Remove the call, or declare the host in frontmatter and explain in the README what is sent and why.
AST07
HIGH
Access to sensitive file pathsscripts/check-sveltekit-agent-readiness.js:20 · Access to sensitive file paths — SSH keys, AWS credentials, env files, or system filesconst run = (root, env = {}) => spawnSync(process.execPath, ["scripts/agent-readiness.mjs"], { cwd: root, env: { ...process.env, ...env }, encoding: "utf8" });Fix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.
AST05
MEDIUM
npx invocation of non-well-known packagesrc/skill-install.js:25 · npx invocation of non-well-known package — may execute untrusted code? `Running from a temporary/npx location (${root}) — a baked-in path may break once that cache is evicted. Run \`npm install -g siteready\` first for a stable install.`Fix: Pin versions and sources; vendor anything fetched at install time.
AST06
MEDIUM
npx invocation of non-well-known packagesrc/lib/local-server.js:34 · npx invocation of non-well-known package — may execute untrusted code* bespoke runner per platform. No CLI spawned, no npx download, no account.Fix: Pin versions and sources; vendor anything fetched at install time.
AST06
HIGH
Access to sensitive file pathsscripts/check-next-agent-readiness.js:56 · Access to sensitive file paths — SSH keys, AWS credentials, env files, or system filesconst run = (root, env = {}) => spawnSync(process.execPath, ["scripts/agent-readiness.mjs"], { cwd: root, encoding: "utf8", env: { ...process.env, ...env } });Fix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.
AST05
MEDIUM
npx invocation of non-well-known packagesrc/lib/npx-runner.js:11 · npx invocation of non-well-known package — may execute untrusted code// 1. A PATH-resolved npx can belong to an entirely different Node/npmFix: Pin versions and sources; vendor anything fetched at install time.
AST06
MEDIUM
File type combined with upload actionsrc/platforms/vercel.js:36 · File type combined with upload action — agent may exfiltrate local data files* Ensures `vercel.json` at the project root has a headers rule sendingFix: Remove the call, or declare the host in frontmatter and explain in the README what is sent and why.
AST07
MEDIUM
npx invocation of non-well-known packagesrc/scanners/afdocs.js:3 · npx invocation of non-well-known package — may execute untrusted code// Pinned, not a bare "afdocs" packageSpec — an unpinned npx call alwaysFix: Pin versions and sources; vendor anything fetched at install time.
AST06
MEDIUM
npx invocation of non-well-known packagesrc/lib/npx-runner.js:57 · npx invocation of non-well-known package — may execute untrusted code* ambiguity); falls back to a PATH-based npx (with manual shell-argFix: Pin versions and sources; vendor anything fetched at install time.
AST06
MEDIUM
File type combined with upload actionsrc/fixers/nextjs.js:45 · File type combined with upload action — agent may exfiltrate local data files* build-time llms.txt / .md-mirror generator (wired as `postbuild`). EachFix: Remove the call, or declare the host in frontmatter and explain in the README what is sent and why.
AST07
MEDIUM
npx invocation of non-well-known packagesrc/scanners/afdocs.js:6 · npx invocation of non-well-known package — may execute untrusted code// deliberately, re-verify normalize() against the new output, don't let npxFix: Pin versions and sources; vendor anything fetched at install time.
AST06
MEDIUM
npx invocation of non-well-known packagesrc/lib/npx-runner.js:101 · npx invocation of non-well-known package — may execute untrusted code* Spawns `npx --yes <packageSpec> ...args` as a long-running backgroundFix: Pin versions and sources; vendor anything fetched at install time.
AST06
HIGH
Tunneling service URLscripts/check-scan-routing.js:10 · Tunneling service URL — may route traffic to attacker infrastructureconst tunnel = "https://x.trycloudflare.com";Fix: Replace encoded or assembled strings with plain literals and remove undeclared network calls.
AST07
MEDIUM
npx invocation of non-well-known packagesrc/lib/npx-runner.js:55 · npx invocation of non-well-known package — may execute untrusted code* Runs `npx --yes <packageSpec> ...args` and returns raw stdout.Fix: Pin versions and sources; vendor anything fetched at install time.
AST06
MEDIUM
File type combined with upload actionsrc/fixers/nextjs.js:129 · File type combined with upload action — agent may exfiltrate local data fileswarnings.push(`Next.js: package.json has no \`build\` script; run \`${POSTBUILD_COMMAND}\` after \`next build\` yourself.`);Fix: Remove the call, or declare the host in frontmatter and explain in the README what is sent and why.
AST07
MEDIUM
Process kill commandsrc/lib/tunnel.js:58 · Process kill command — agent can terminate processes// so the retry unit is a whole tunnel: kill the connector, spawn a new one,Fix: Build commands from fixed arguments; do not interpolate untrusted strings into a shell.
AST05

Cost to the agent

Instructions loaded
≈3,588 tok
1 file · 65 in bundle
Tool list per prompt
≈0 tok
0 tools · 0 per tool
Handshake
no reply
launch to tools/list, stdio
Undocumented tools
0
description under 20 chars · avg 0

Tokens estimated at four characters each. The tool list is re-read by the agent on every turn, so it is the number to compare between servers that do the same job: ranked across the index.

Known vulnerabilities

No advisories in OSV for siteready@1.22.2 as of 2d ago. This is the package itself, not its dependencies.

What would make this Verified

4 points to 80 · weights: behavior 45%, static 25%, prompt 15%, publisher 15%
  1. Unclaimed publisher≈ +8 on the totalClaim dkdev24: a verified publisher gets +50 on publisher trust. It is free and usually instant with GitHub sign-in.
  2. Access to sensitive file paths≈ +4 on the totalStop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.
  3. Tunneling service URL≈ +4 on the totalReplace encoded or assembled strings with plain literals and remove undeclared network calls.
  4. Process kill command≈ +2 on the totalBuild commands from fixed arguments; do not interpolate untrusted strings into a shell.
  5. File type combined with upload action≈ +2 on the totalRemove the call, or declare the host in frontmatter and explain in the README what is sent and why.
  6. npx invocation of non-well-known package≈ +2 on the totalPin versions and sources; vendor anything fetched at install time.
Publish a new version to npm, then queue it here. Not your skill? Claim the handle to get verdict changes by email.Claim dkdev24Propose a patch to the maintainer