Sentinel benchmark

Decision-level TP/FP/F1 computed from public, verifiable inputs · 2026-09-25 · machine version

P 0.75 R 1.00 F1 0.857 n = 18 (small — read the limitations)

This benchmark measures Sentinel where it matters for trust: decisions (quarantine vs. no-quarantine), not raw rule hits. Every positive is a signed ledger record or a documented incident; every negative is a first-party package you can download yourself. No number in the matrix is simulated — each links to its evidence.

0.75
Precision
TP / (TP + FP)
1.00
Recall
TP / (TP + FN)
0.857
F1
18
Total labeled decisions

Confusion matrix

Pred: quarantine
Pred: pass
Actual: malicious
3
True positives
0
False negatives
Actual: benign
1
False positives
14
True negatives

Positives — every record verifiable

CaseLabelOutcomeClassEvidence
Prompt-injection submissionmaliciousquarantinedTP qd_2026_08_15_001.json (L1.7/L1.8/L1.9 fail, sha256-signed)
Crypto wallet with hardcoded mnemonicmaliciousquarantinedTP qd_2026_08_16_002.json (L1.6 fail)
Weather API — API key in test fixturesbenign (fixture)quarantined pending reviewFP qd_2026_08_17_003.json (self-declared false positive, appealable)
Trojan in nested zip (issue #9, July 2026)maliciouscaught by L1.7 + sandboxTP FN pre-L1.7 lib/sentinel-l17.mjs — the incident predates L1.7; current pipeline has the regression vector

Negatives (TN=14): MarketNow first-party npm packages — audited, 0 vulnerabilities, published from source. None was quarantined. Verify per-package results at /api/certification-scans.json (own=true).

Flag-level analysis on the benign corpus

Scanning known-benign packages is where false-positive discipline shows. Of 14 first-party packages, error-severity findings fired on 4:

PackageRuleHonest classification
agent-trust-card@1.1.2MCP-TP-002False positive — UTF-8 BOM (EF BB BF) at the start of package.json reads as a zero-width char. Confirmed in the published tarball. Remediable.
@marketnow/uts@2.0.1MCP-TP-002False positive — same BOM class.
@marketnow/trust-core@2.0.1MCP-CI-001 / AC-002True pattern, benign context — real execSync(openssl…) in build code and detection regexes shipped in dist. The scanner is right about the pattern; the context is our own build.
@marketnow/sentinel-rules@1.0.0PI/AC familyTrue positive by design — the package contains the detection signatures themselves ("ignore previous instructions" is rule PI-001's corpus).

Error-severity FP rate on the benign corpus: 2/14 = 14.3% — published, not hidden. WARNING-level rules (SSRF localhost heuristics, readFileSync) are high-sensitivity by design.

How to reproduce

# 1. Fetch the ledger (SHA-256 per record)
curl -s https://marketnow.site/api/quarantine

# 2. Fetch raw L2 scans (2,839 packages, per-rule findings)
curl -s https://marketnow.site/api/certification-scans.json | jq '.stats'

# 3. Per-package verdict for any flagged own package
curl -s 'https://marketnow.site/api/certification?package=@marketnow/trust-core'

# 4. Rules (29): npm @marketnow/sentinel-rules or repo
#    uta-monorepo/packages/sentinel-rules/rules/rules-lite.json

Limitations — read before quoting this benchmark

This is a transparency artifact, not statistical power.