===== H4: prompt-injection bypass resistance ===== PASS: H4 blocks whitespace-padded injection (rc=2) PASS: H4 blocks leetspeak injection (rc=2) PASS: H4 blocks synonym injection (rc=2) PASS: H4 blocks forget-variant injection (rc=2) PASS: H4 blocks uppercase injection (rc=2) ===== H4: secret material must not pass as input ===== PASS: H4 blocks private key input (rc=2) PASS: H4 blocks DB connection string input (rc=2) ===== H4: output mode fails closed on secret material ===== PASS: H4 fails closed on secret in output (rc=2) ===== H4: benign content must pass (no false positives) ===== PASS: H4 allows benign spec text (rc=0) ===== H5: separation of duties ===== PASS: H5 denies self-approval (actor==approver) (rc=2) PASS: H5 allows distinct approver (rc=0) ===== H5: audit chain re-forge is detected ===== PASS: H5 verifies the genuine signed chain (rc=0) PASS: H5 rejects a re-forged chain (signature anchor) (rc=1) ===== H2: per-agent least privilege ===== PASS: H2 denies unauthorized agent for deploy (rc=2) PASS: H2 denies missing agent identity for deploy (rc=2) PASS: H2 allows authorized agent with key (rc=0) ===== H2: tool-registry gate is in the execution line of fire ===== PASS: H2 wrapper aborts side-effect for unauthorized agent (rc=2) PASS: H2 wrapper allows side-effect for authorized agent (rc=0) ===== H2: tool-call audit re-forge is detected ===== PASS: H2 verifies the genuine tool audit (rc=0) PASS: H2 rejects a re-forged tool audit (rc=1) ===== H6: hallucination detection is populated ===== PASS: H6 populates hallucination_signals (count=4) PASS: H6 reports 0 signals for clean output ===== PUSH-TO-90: H7 real rollback (genuine undo, not a marker) ===== PASS: H7 rollback genuinely restores the file ===== PUSH-TO-90: H7 real drift (two different artifacts, not cp-of-self) ===== PASS: H7 drift detects real difference (similarity=0.661 < 1.0) PASS: H7 drift passes identical artifacts ===== PUSH-TO-90: H7 fallback triggered by a REAL primary failure ===== PASS: H7 fallback runs after a genuine primary failure ===== PUSH-TO-90: H2 runtime rate limit (deploy capped at 2/run) ===== PASS: H2 denies 3rd deploy in one run (rate limit) ===== PUSH-TO-90: H2 tool-input schema validation ===== PASS: H2 schema accepts valid tool input PASS: H2 schema rejects malformed tool input (rc=2) ===== PUSH-TO-90: H4 tool-execution timeout ===== PASS: H4 kills a runaway tool call (rc=124) PASS: H4 allows a fast tool call (rc=0) ===== PUSH-TO-90: H1 context path validation ===== PASS: H1 context-validate passes when artifact exists PASS: H1 context-validate catches a missing artifact (rc=2) ===== PUSH-TO-90: H5 signing private key is OFF-REPO ===== PASS: H5 private signing key absent from repo ===== WAVE 3: H4 indirect artifact injection (WP-S7) ===== PASS: H4 artifact-scan blocks injected content in artifacts PASS: H4 artifact-scan passes clean artifacts ===== WAVE 3: H4 secrets scan — no leaked keys (WP-S4) ===== PASS: H4 secrets scan passes (no committed .env or private keys) ===== WAVE 3: H4 circuit breaker — no bypass patterns (WP-S6) ===== PASS: H4 no bypass patterns; circuit breaker closed ===== WAVE 3: H4 tool-exec.sh wired into harness — kills runaway via harness ===== PASS: H4 tool-exec timeout fires through casan-harness.sh ===== WAVE 3: H3 judge gate fail-before (WP-B) ===== PASS: H3 judge gate T1-T4 all pass (fail-before and fix cycle) ===== ADVERSARIAL SUMMARY: PASS=40 FAIL=0 =====