Package evidence
[email protected]
Install Lifecycle Remote Or Exec: postinstall="node -e \"if(process.env.CI==='true'||process.env.MARTIN_SUPPRESS_POSTINSTALL==='1'){process.exit(0)};const lines=['','MartinLoop installed. First-run guided flow:',' npx -y martin-loop@latest start',' npx -y martin-loop@latest demo',' npx -y martin-loop@latest run \\\"your objective\\\" --verify \\\"npm test\\\"','','Governed runs are default. MartinLoop auto-checks doctor, session-start, and preflight, then executes when the environment is ready.'];console.log(lines.join('\\\\n'));\""
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
- 27
- First published
- Apr 2026
- Publisher
- GitHub ActionsTrusted automation · −70% score
Effective trust discount applied: −70% (max across signals — discounts don’t stack). New install-lifecycle deltas vs the previous release would clear the discount.
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":["[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":["[email protected]"],"fail_on":"high"}'Why flagged
What the scanner saw
New Lifecycle Script Vs Previous: postinstall added in 0.3.3 vs 0.3.2: "node -e \"if(process.env.CI==='true'||process.env.MARTIN_SUPPRESS_POSTINSTALL==='1'){process.exit(0)};const lines=['','MartinLoop installed. First-run guided flow:',' npx -y martin-loop@latest start',' npx -y martin-loop@latest demo',' npx -y martin-loop@latest run \\\"your objective\\\" --verify \\\"npm test\\\"','','Governed runs are default. MartinLoop auto-checks doctor, session-start, and preflight, then executes when the environment is ready.'];console.log(lines.join('\\\\n'));\""
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.3.3 vs 0.3.2: "node -e \"if(process.env.CI==='true'||process.env.MARTIN_SUPPRESS_POSTINSTALL==='1'){process.exit(0)};const lines=['','MartinLoop installed. First-run guided flow:',' npx -y martin-loop@latest start',' npx -y martin-loop@latest demo',' npx -y martin-loop@latest run \\\"your objective\\\" --verify \\\"npm test\\\"','','Governed runs are default. MartinLoop auto-checks doctor, session-start, and preflight, then executes when the environment is ready.'];console.log(lines.join('\\\\n'));\"" | 40 |
| high | Install Lifecycle Remote Or Exec | package.json | postinstall="node -e \"if(process.env.CI==='true'||process.env.MARTIN_SUPPRESS_POSTINSTALL==='1'){process.exit(0)};const lines=['','MartinLoop installed. First-run guided flow:',' npx -y martin-loop@latest start',' npx -y martin-loop@latest demo',' npx -y martin-loop@latest run \\\"your objective\\\" --verify \\\"npm test\\\"','','Governed runs are default. MartinLoop auto-checks doctor, session-start, and preflight, then executes when the environment is ready.'];console.log(lines.join('\\\\n'));\"" | 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.3.3 vs 0.3.2: "node -e \"if(process.env.CI==='true'||process.env.MARTIN_SUPPRESS_POSTINSTALL==='1'){process.exit(0)};const lines=['','MartinLoop installed. First-run guided flow:',' npx -y martin-loop@latest start',' npx -y martin-loop@latest demo',' npx -y martin-loop@latest run \\\"your objective\\\" --verify \\\"npm test\\\"','','Governed runs are default. MartinLoop auto-checks doctor, session-start, and preflight, then executes when the environment is ready.'];console.log(lines.join('\\\\n'));\"" | 40 |
| high | Install Lifecycle Remote Or Exec | package.json | postinstall="node -e \"if(process.env.CI==='true'||process.env.MARTIN_SUPPRESS_POSTINSTALL==='1'){process.exit(0)};const lines=['','MartinLoop installed. First-run guided flow:',' npx -y martin-loop@latest start',' npx -y martin-loop@latest demo',' npx -y martin-loop@latest run \\\"your objective\\\" --verify \\\"npm test\\\"','','Governed runs are default. MartinLoop auto-checks doctor, session-start, and preflight, then executes when the environment is ready.'];console.log(lines.join('\\\\n'));\"" | 30 |
| low | Install-time lifecycle script | package.json | postinstall="node -e \"if(process.env.CI==='true'||process.env.MARTIN_SUPPRESS_POSTINSTALL==='1'){process.exit(0)};const lines=['','MartinLoop installed. First-run guided flow:',' npx -y martin-loop@latest start',' npx -y martin-loop@latest demo',' npx -y martin-loop@latest run \\\"your objective\\\" --verify \\\"npm test\\\"','','Governed runs are default. MartinLoop auto-checks doctor, session-start, and preflight, then executes when the environment is ready.'];console.log(lines.join('\\\\n'));\"" | 5 |
Manifest
Package metadata
Scripts22
bench:buildpnpm --filter @martin/benchmarks buildbench:evalpnpm --filter @martin/benchmarks evalbench:report:ralphypnpm --filter @martin/benchmarks report:ralphybench:testpnpm --filter @martin/benchmarks testbuildpnpm --filter @martin/contracts build && pnpm --filter @martin/core build && pnpm --filter @martin/adapters build && pnpm --filter @martin/benchmarks build && pnpm --filter @martin/cli build && pnpm --filter @martinloop/mcp build && node ./scripts/build-public-facade.mjslintpnpm -r lintmcp:pack:smokepnpm --filter @martinloop/mcp smoke:packmcp:published:smokepnpm --filter @martinloop/mcp smoke:publishedmcp:published:smoke:packpnpm --filter @martinloop/mcp smoke:published:packoss:validatenode ./scripts/oss-boundary.mjspostinstallnode -e "if(process.env.CI==='true'||process.env.MARTIN_SUPPRESS_POSTINSTALL==='1'){process.exit(0)};const lines=['','MartinLoop installed. First-run guided flow:',' npx -y martin-loop@latest start',' npx -y martin-loop@latest demo',' npx -y martin-loop@latest run \"your objective\" --verify \"npm test\"','','Governed runs are default. MartinLoop auto-checks doctor, session-start, and preflight, then executes when the environment is ready.'];console.log(lines.join('\\n'));"prepackpnpm build && node ./scripts/root-release-guard.mjs --packpublic:copy-scannode ./scripts/public-copy-scan.mjspublic:git-surfacenode ./scripts/public-git-surface-guard.mjspublic:smokenode ./scripts/public-facade-smoke.mjsrelease:matrix:localnode ./scripts/release-matrix.mjsrelease:root:guardnode ./scripts/root-release-guard.mjs --packrelease:validate-localnode ./scripts/rc-validation.mjsrelease:validate-local:installnode ./scripts/rc-validation.mjs --installrelease:validate:platformsnode ./scripts/release-matrix.mjsrun:clipnpm --filter @martin/cli devtestpnpm -r --workspace-concurrency=1 test && node --test scripts/tests/*.mjs
Dependencies7
@open-policy-agent/opa-wasm^1.10.0@opentelemetry/api-logs^0.214.0@opentelemetry/exporter-logs-otlp-http^0.214.0@opentelemetry/resources^2.6.1@opentelemetry/sdk-logs^0.214.0@opentelemetry/semantic-conventions^1.38.0ts-morph^21.0.0