spec(hunter-learning-loop): a pattern engine's miss is never evidence

A Semgrep, quick-rule or engine match may enter the feature table as
positive evidence; its absence is never a feature, filter, demotion or
gate on a hunter suspicion, and no acceptance rule counts it. The Semgrep
arm is a comparison only and may at most replace the regex quick tier.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
This commit is contained in:
Marius Ciepluch
2026-10-13 13:01:32 +02:00
co-authored by Claude Opus 5.5
parent c95b9241d8
commit d08dea19b8
2 changed files with 8 additions and 1 deletions
@@ -106,6 +106,13 @@ tests/test_hunt_*.py table, producers (planted-advisory test), progr
ablation masks, acceptance rule, artifact
```
### Rule: a pattern engine's miss is never evidence
Maintainer, 2026-10-13: "what does not work is that we dismiss things just because semgrep cannot find the bug.
if semgrep was enough we'd use it." A Semgrep (or quick-rule, or engine) match is positive evidence and may enter
the table as a feature ("matched here, rule X"). The absence of a match is not recorded as a feature, is never a
filter, a demotion, a down-weight or a gate on a hunter suspicion, and no acceptance rule may count it. The
Semgrep arm on the pilot is a comparison arm only.
## Components and interfaces
| Component | Intent | Requirements | Depends on | Contract |
|---|---|---|---|---|