docs: "warn, clean" is graded, never cleaned bytes -- measured at okf's door
okf measured that 0.7.0's no-URL narrowing dispositions four raw-HTML carrier forms (<a aria-label>, bare </a>, <Frame>, <video />) to warn with no active-content finding -- verified here directly against screen_output(..., PRESET_USER_UPLOAD), which returns the library's own "clean: no findings" reason string (disposition.py:264). At their door (llm-ingestion-okf 0.7.0), warn is the persist floor (inbox.py:139/323), and their adapter forwards the original extracted text because screen_output never hands back sanitized bytes -- defanging is a separate, deliberate neutralize() call. So the same four forms land written into the bundle, carrier present verbatim. Named per operator decision; CHANGELOG.md's "35 limitations" and GATE-G-v1.md's counts are dated snapshots of past states and are left as measured, not bumped. 35 -> 36: README.md's summary line is the only other live count.
This commit is contained in:
parent
869f9058f7
commit
45c2b06315
2 changed files with 24 additions and 1 deletions
|
|
@ -249,7 +249,7 @@ a green scan means safe content. The highest-impact items:
|
|||
two of the three corpora are living, so the cells are not rewritten in place.
|
||||
Method and before/after: [`docs/rawhtml-census.py`](docs/rawhtml-census.py).
|
||||
|
||||
**Full list — 35 items, each with the mechanism, plus the out-of-scope boundary:**
|
||||
**Full list — 36 items, each with the mechanism, plus the out-of-scope boundary:**
|
||||
[`docs/LIMITATIONS.md`](docs/LIMITATIONS.md). Several carry field measurements from
|
||||
consumer corpora, including the false positives the URL-shape rule actually produces.
|
||||
|
||||
|
|
|
|||
|
|
@ -312,6 +312,29 @@ items; this is the full list, each with the mechanism.
|
|||
every document carrying `</a>`, on a field whose meaning did not change. The
|
||||
finding count is unaffected: the class still collapses to one finding per class
|
||||
per document, and `count` was never a document count.
|
||||
- **"Clean" means *graded, no finding raised* — never *cleaned bytes* — and at one
|
||||
measured consumer's door, `warn` is the floor a document must clear to be
|
||||
persisted rather than rejected.** The word is the library's own: a WARN
|
||||
disposition with nothing to report carries the reason string `"clean: no
|
||||
findings"` (`disposition.py:264`), and this project has repeated that word in the
|
||||
tables it sends consumers. `screen_output` is a judgement API — its
|
||||
`DispositionResult` carries `assessment` / `disposition` / `max_severity` /
|
||||
`reasons`, with no sanitized-text field to read off it. Defanging lives in a
|
||||
separate, deliberate call — `neutralize` — that a caller must invoke itself;
|
||||
nothing upstream of that call transforms a byte. Measured against
|
||||
`llm-ingestion-okf`'s `0.7.0` pin (2026-08-13): `inbox.py:139` sets its persist
|
||||
floor to `warn`, and `inbox.py:323` persists anything carrying that disposition
|
||||
into the bundle; its adapter (`guard_adapter.py:70`) forwards the original
|
||||
extracted text, because nothing upstream ever handed it a transformed one. Four
|
||||
raw-HTML carrier forms the 0.7.0 no-URL narrowing grades inert — an
|
||||
`<a aria-label>` with no `href`, a bare `</a>`, `<Frame>`, `<video />` — verified
|
||||
here (`screen_output(..., PRESET_USER_UPLOAD)`) to dispose `warn, clean: no
|
||||
findings`; at that consumer's door the same four land written into the bundle,
|
||||
carrier present verbatim. Neither library is wrong: `screen_output` never
|
||||
promised transformed bytes, and the consumer never called `neutralize` for them.
|
||||
The gap is in reading "clean" as "sanitized" rather than "no finding raised" — a
|
||||
reading this project's own reports invite, and one that will mislead any caller
|
||||
that persists on `warn` without calling `neutralize` itself.
|
||||
- **Measured, document by document: a large minority of *benign* documents do not
|
||||
persist unattended at the upload door.** The bullets above bound single rules on
|
||||
single URLs. This one bounds the thing a consumer actually feels — how often an
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue