docs(limitations): close the slugger question -- both consumers read, both whitelists
okf delivered the code read we asked for: materialize.py:71 is
`[^a-z0-9]+ -> "-"`, a whitelist, so their generated-path percent-escape
exposure is structurally zero. Verified independently against their source
rather than taken on the message: the regex is where they said, both their
worked examples reproduce against the real implementation, and the only
urllib.parse.quote in their tree builds a sqlite file: URI that never touches
a filename.
That retires the "still open for the one consumer whose slugger we have not
seen" clause. The Loekkene example already in this bullet was linkedin-studio's
run output, not a prediction -- checked before rewriting, because the two
clauses read as if they contradicted each other and only one was stale.
Adds the honest half that closing the question exposes: we have now read two
whitelist sluggers and zero encodeURIComponent-class ones, so the
"produces escapes systematically" arm of this axis is still a prediction from
the transform, not a field observation.
The {tenant} placeholder result goes on the generated-path side, deliberately
not appended to the %7B sentence -- that one is a link-corpus harvesting
artifact, and merging them would re-conflate the two axes this bullet exists
to separate.
No test is owed here: the claim pins okf's regex, which this suite cannot
assert. It is verifiable only by re-reading their source.
This commit is contained in:
parent
910a12455a
commit
434b74e766
1 changed files with 9 additions and 3 deletions
|
|
@ -152,11 +152,17 @@ items; this is the full list, each with the mechanism.
|
||||||
path built with `encodeURIComponent` produces escapes systematically the moment
|
path built with `encodeURIComponent` produces escapes systematically the moment
|
||||||
titles are non-ASCII. So non-ASCII language is a *confounder* for encode-vs-whitelist,
|
titles are non-ASCII. So non-ASCII language is a *confounder* for encode-vs-whitelist,
|
||||||
and the slugger class is the testable thing at a consumer — a one-line code read,
|
and the slugger class is the testable thing at a consumer — a one-line code read,
|
||||||
not a corpus census. That question is still open for the one consumer whose slugger
|
not a corpus census. **Both consumer sluggers we have now read are whitelists**, so
|
||||||
we have not seen.
|
their generated-path exposure is structurally zero rather than measured-zero; the
|
||||||
|
second was read on 2026-07-31 and reduces the same Norwegian input to the same
|
||||||
|
output. What this does *not* give us is the other half of the axis: we have never
|
||||||
|
seen an `encodeURIComponent`-class slugger in the field, so "produces escapes
|
||||||
|
systematically" above remains a prediction from the transform, not an observation.
|
||||||
One sub-class worth separating: `{tenant}`/`{agent-id}` template placeholders in
|
One sub-class worth separating: `{tenant}`/`{agent-id}` template placeholders in
|
||||||
API code samples encode to `%7B`/`%7D` (26 of that corpus's 36 hits — an artifact of
|
API code samples encode to `%7B`/`%7D` (26 of that corpus's 36 hits — an artifact of
|
||||||
harvesting, not of prose).
|
harvesting, not of prose). On the *generated-path* side those same placeholders
|
||||||
|
cannot reach that shape at all: braces and `/` are outside the grammar, so
|
||||||
|
`"{tenant}/{agent-id} mal"` reduces to `tenant-agent-id-mal`.
|
||||||
- **A percent-escaped path also defeats tokenization, which feeds the entropy
|
- **A percent-escaped path also defeats tokenization, which feeds the entropy
|
||||||
branch.** `%` is not in the separator class, so `NSMs%20Grunnprinsipper%20for%20IKT`
|
branch.** `%` is not in the separator class, so `NSMs%20Grunnprinsipper%20for%20IKT`
|
||||||
is one 34-character token where the same title with literal spaces would be four
|
is one 34-character token where the same title with literal spaces would be four
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue