gstack/docs
Garry Tan b86ef06706
test(security): live + fixture-replay bench harness with 500-case capture
Adds two new benches that permanently guard the v2 tuning:

- security-bench-ensemble-live.test.ts (opt-in via GSTACK_BENCH_ENSEMBLE=1).
  Runs full ensemble on BrowseSafe-Bench smoke with real Haiku calls.
  Worker-pool concurrency (default 8, tunable via
  GSTACK_BENCH_ENSEMBLE_CONCURRENCY) cuts wall clock from ~2hr to
  ~25min on 500 cases. Captures Haiku responses to fixture for replay.
  Subsampling via GSTACK_BENCH_ENSEMBLE_CASES for faster iteration.
  Stop-loss iterations write to ~/.gstack-dev/evals/stop-loss-iter-N-*
  WITHOUT overwriting canonical fixture.

- security-bench-ensemble.test.ts (CI gate, deterministic replay).
  Replays captured fixture through combineVerdict, asserts
  detection >= 55% AND FP <= 25%. Fail-closed when fixture is missing
  AND security-layer files changed in branch diff. Uses
  `git diff --name-only base` (two-dot) to catch both committed
  and working-tree changes — `git diff base...HEAD` would silently
  skip in CI after fixture lands.

- browse/test/fixtures/security-bench-haiku-responses.json — 500 cases
  × 3 classifier signals each. Header includes schema_version, pinned
  model, component hashes (prompt, exemplars, thresholds, combiner,
  dataset version). Any change invalidates the fixture and forces
  fresh live capture.

- docs/evals/security-bench-ensemble-v2.json — durable PR artifact
  with measured TP/FN/FP/TN, 95% CIs, knob state, v1 baseline delta.
  Checked in so reviewers can see the numbers that justified the ship.

Measured baseline on the new harness:
  TP=146 FN=114 FP=55 TN=185 → 56.2% / 22.9% → GATE PASS

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-21 20:32:15 -07:00
..
designs feat(security): ML prompt injection defense for sidebar (v1.4.0.0) (#1089) 2026-04-20 22:18:37 +08:00
evals test(security): live + fixture-replay bench harness with 500-case capture 2026-04-21 20:32:15 -07:00
images feat: Completeness Principle — Boil the Lake (v0.6.1) (#140) 2026-03-17 16:34:08 -05:00
ADDING_A_HOST.md feat: declarative multi-host platform + OpenCode, Slate, Cursor, OpenClaw (v0.15.5.0) (#793) 2026-04-04 15:32:20 -07:00
ON_THE_LOC_CONTROVERSY.md feat: gstack v1 — simpler prompts + real LOC receipts (v1.0.0.0) (#1039) 2026-04-18 15:05:42 +08:00
OPENCLAW.md feat: native OpenClaw skills + ClaHub publishing (v0.15.10.0) (#832) 2026-04-05 10:07:03 -07:00
REMOTE_BROWSER_ACCESS.md feat: content security — 4-layer prompt injection defense for pair-agent (#815) 2026-04-06 14:41:06 -07:00
skills.md feat(security): ML prompt injection defense for sidebar (v1.4.0.0) (#1089) 2026-04-20 22:18:37 +08:00