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.
- Versions published
- 28
- First published
- Mar 2026
- Publisher
- blundergoat
Recommended action
Review before promotingMixed signals: the package has indicators worth reading before allowing the update in automated dependency flows.
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":["@blundergoat/[email protected]"],"fail_on":"review"}'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":["@blundergoat/[email protected]"],"fail_on":"review"}'Why flagged
What the scanner saw
Remote Payload: matched "curl "
Not observed: package install, lifecycle script execution, or sandbox execution. PkgRadar only inspects on-disk artifacts.
Availability ledger
available
Status history (2 events)
- available → available · risk review · score 38 · status available -> available, risk high -> review, score 60 -> 38
- new → available · risk high · score 60 · status changed
Evidence
Static findings
8 static · 0 from release diff · showing high-signal first.
| Severity | Kind | Path | Detail | Points |
|---|---|---|---|---|
| medium | Remote Payload | package/workflow/hooks/deny-dangerous.self-test.sh | matched "curl " | 12 |
Show all 8 findings (low-signal and informational)
| Severity | Kind | Path | Detail | Points |
|---|---|---|---|---|
| medium | Remote Payload | package/workflow/hooks/deny-dangerous.self-test.sh | matched "curl " | 12 |
| low | Credential file access | package/dist/cli/facts/agent/hooks.js | matched ".ssh/" | 5 |
| low | Credential file access | package/dist/cli/facts/agent/settings.js | matched ".ssh/" | 5 |
| low | Credential file access | package/workflow/hooks/deny-dangerous.self-test.sh | matched ".ssh/" | 5 |
| low | Install-time lifecycle script | package.json | postinstall="node scripts/warn-node-pty.mjs" | 5 |
| low | Credential file access | package/workflow/hooks/agent-config/claude.json | matched ".ssh/" | 3 |
| low | Credential file access | package/workflow/hooks/agent-config/gemini.json | matched ".ssh/" | 3 |
| low | Obfuscation Density | package/dist/dashboard/markdown-it.js | high encoded/escaped-token density | 0 |
Manifest
Package metadata
Scripts25
auditnode dist/cli/cli.js audit .audit:harnessnode dist/cli/cli.js audit . --harnessaudit:jsonnode dist/cli/cli.js audit . --format jsonbuildnode -e "require('node:fs').rmSync('dist', { recursive: true, force: true });" && tsc && node -e "require('node:fs').chmodSync('dist/cli/cli.js', 0o755);" && npm run build:dashboardbuild:dashboardtsc -p tsconfig.dashboard.json && node scripts/build-dashboard-assets.mjscheck-instruction-paritynode scripts/check-instruction-parity.mjscheck-package-linksnode scripts/check-package-readme-links.mjscheck-versionsnode scripts/check-versions.mjsdashboardnpm run build && node dist/cli/cli.js dashboard .devtsc && npm run build:dashboard && node dist/cli/cli.js dashboard . --devformatprettier --write --no-error-on-unmatched-pattern "src/**/*.{ts,js,html}" "test/**/*.ts" "scripts/**/*.mjs"format:checkprettier --check --no-error-on-unmatched-pattern "src/**/*.{ts,js,html}" "test/**/*.ts" "scripts/**/*.mjs"goat-flow:clinode dist/cli/cli.jspostinstallnode scripts/warn-node-pty.mjspreflightbash scripts/preflight-checks.shprepublishOnlynpm run build && npm run check-versions && npm run check-package-linksprofile:dashboard-auditnode scripts/profile-dashboard-audit.mjsskill-quality:snapshotnode --import tsx --input-type=module -e "import { writeFileSync } from 'node:fs'; import { scoreAllArtifacts } from './src/cli/quality/skill-quality.ts'; const fixture = Object.fromEntries(scoreAllArtifacts(process.cwd()).map((report) => { const pct = Math.round((report.totalScore / report.profileMax) * 100); return [report.artifact.id, { minPct: Math.max(0, pct - 2), maxPct: Math.min(100, pct + 2), recommendation: report.recommendation, subtype: report.subtype }]; })); writeFileSync('test/fixtures/skill-quality/expected-scores.json', JSON.stringify(fixture, null, 2) + '\n');"testnpm run test:fasttest:coveragenode --import tsx --experimental-test-coverage --test --test-concurrency=8 $(find test -name '*.test.ts' ! -path 'test/integration/audit-drift.test.ts' ! -path 'test/integration/audit-quality.test.ts' ! -path 'test/integration/dashboard-server.test.ts' ! -path 'test/integration/quality-constraint-isolation.test.ts' ! -path 'test/unit/audit-harness/check-evidence-before-claims.test.ts' ! -path 'test/unit/dashboard-terminal-launch.test.ts' ! -path 'test/performance/*.test.ts' | sort)test:fastnode --import tsx --test --test-concurrency=8 $(find test -name '*.test.ts' ! -path 'test/integration/audit-drift.test.ts' ! -path 'test/integration/audit-quality.test.ts' ! -path 'test/integration/dashboard-server.test.ts' ! -path 'test/integration/quality-constraint-isolation.test.ts' ! -path 'test/unit/audit-harness/check-evidence-before-claims.test.ts' ! -path 'test/unit/dashboard-terminal-launch.test.ts' ! -path 'test/performance/*.test.ts' | sort)test:fullnpm run test:fast && npm run test:slowtest:performancenpm run build && GOAT_FLOW_PERF_TESTS=1 node --import tsx --test test/performance/*.test.tstest:slownpm run build && node --import tsx --test test/integration/audit-drift.test.ts test/integration/audit-quality.test.ts test/integration/dashboard-server.test.ts test/integration/quality-constraint-isolation.test.ts test/unit/audit-harness/check-evidence-before-claims.test.ts test/unit/dashboard-terminal-launch.test.tstypechecktsc --noEmit && tsc -p tsconfig.dashboard.json --noEmit
Dependencies3
js-yaml^4.1.0markdown-it^14.1.1ws^8.20.1
Optional dependencies1
node-pty1.1.0