Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
52 changes: 34 additions & 18 deletions docs/reference/benchmarks/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -1926,16 +1926,17 @@ The preserved phone and cued-cell prose above describes the historical
[v8 measurements](agentic-adjacency-v8-history.json), and the release
statement of the CRLF and plate section the historical
[v9 measurements](agentic-adjacency-v9-history.json). Their links lead to this
current comparison, which has since been re-measured on v14 below.
current comparison, which has since been re-measured on v15 below.

The release rows below use generator v14's test partition and each release's
setup policy, so they include the v5 to v14 cells (labelled lookalikes, address
The release rows below use generator v15's test partition and each release's
setup policy, so they include the v5 to v15 cells (labelled lookalikes, address
blocks, phone shapes, cued ages, birth dates, short cards, postcodes, CRLF
blocks and German plates, URLs in structured text, tax and government IDs,
ZIP compression lookalikes, personal age wording and the shipped-class
identifier, credential, name and phone cells, plus person-linked CRM/HR IDs).
identifier, credential, name and phone cells, plus person-linked CRM/HR IDs, numeric JSON ID scalars and benign JSON keywords).
The table is rendered from
the [v14 ledger](agentic-adjacency-v14-history.json). The earlier
the [v15 ledger](agentic-adjacency-v15-history.json). The earlier
[v14 ledger](agentic-adjacency-v14-history.json) on corpus `1e07150b…`,
[v13 ledger](agentic-adjacency-v13-history.json) on corpus `db3c3f36…`,
[v12 ledger](agentic-adjacency-v12-history.json) on corpus `0748ced8…`,
[v11 ledger](agentic-adjacency-v11-history.json) on corpus `bab908df…`,
Expand All @@ -1950,7 +1951,7 @@ retained as historical data and do not feed this table.
Record the past-release `agentic_layers.py measure` outputs with
`render_agentic_adjacency_doc.py --record`, then render this table from its
committed ledger. Do not edit the rows by hand. The renderer pins the
generator version, so a later generator leaves these rows bound to v14 until
generator version, so a later generator leaves these rows bound to v15 until
they are re-measured.

Generator v12 adds 80 postcode and age positives and 80 benign counterweights
Expand Down Expand Up @@ -1988,7 +1989,7 @@ cases per partition for explicitly labelled customer, employee and person/contac
record identifiers. [Cell definitions](person-linked-record-ids.md) describe
numeric, UUID, grouped and long opaque values, semantic JSON fields, same-line
English/German cues, public resource IDs and prose placeholders. All previous
v3–v13 corpora remain byte-identical. The full test partition now has 3,698 A,
v3–v13 corpora remain byte-identical. The v14 test partition has 3,698 A,
2,029 D and 250 R documents. The primary corpus inputs and scoring are unchanged,
so layer C release rows retain their committed measurements.

Expand All @@ -1998,25 +1999,40 @@ sweep's six-digit floor, without deterministic sweep protection. Independent
short-ID positives, repeats and benign counterweights are required before
changing that floor.

Generator v15 adds 30 A numeric JSON scalar IDs, 115 D benign counterweights
and 30 R repeat cases per partition. [Cell definitions](record-id-scalar-syntax.md)
cover unquoted numeric customer/employee/person/contact IDs, bare JSON
`null`/`true`/`false`, and quoted-label prose placeholders. A quote around a key
or label does not quote its value. These CC0 cells derive from JSON scalar
semantics and agent record layouts independently of detector expressions.
All v3–v14 corpora and their contracts remain frozen. The full test partition
now has 3,728 A, 2,144 D and 280 R documents; layer C inputs and scoring stay
unchanged. The added numeric IDs also have six digits, so the short-repeat
limitation above remains.
Generator v15 has no curly or typographic value-quote cases and no cases where
a rejected unquoted placeholder precedes a valid labelled-ID cue. These results
do not establish coverage for either behavior. Independent positive, repeat and
benign counterweight cells for both boundaries are deferred.

<!-- BEGIN GENERATED: agentic-adjacency -->

| Release and arm | A leaked / gold B | A FP B | D FP B | R leaked / gold B | R FP B |
| --- | ---: | ---: | ---: | ---: | ---: |
| `v0.16.0` `policy-file` | 16,955 / 76,311 | 1,963 | 6,762 | 9,354 / 15,912 | 479 |
| `v0.15.1` `policy-file` | 33,048 / 76,311 | 2,820 | 7,922 | 9,494 / 15,912 | 463 |
| `v0.15.0` `policy-file` | 33,221 / 76,311 | 2,820 | 7,922 | 9,494 / 15,912 | 463 |
| `v0.14.0` `full-stack-kiji-resolve` | 43,553 / 76,311 | 10,161 | 7,678 | 9,704 / 15,912 | 323 |
| `v0.14.0` `pass2-ner` | 44,296 / 76,311 | 2,282 | 5,977 | 9,730 / 15,912 | 200 |
| `v0.16.0` `policy-file` | 17,135 / 76,491 | 1,966 | 6,898 | 9,894 / 16,452 | 479 |
| `v0.15.1` `policy-file` | 33,228 / 76,491 | 2,823 | 8,058 | 10,034 / 16,452 | 463 |
| `v0.15.0` `policy-file` | 33,401 / 76,491 | 2,823 | 8,058 | 10,034 / 16,452 | 463 |
| `v0.14.0` `full-stack-kiji-resolve` | 43,733 / 76,491 | 10,161 | 7,846 | 10,244 / 16,452 | 323 |
| `v0.14.0` `pass2-ner` | 44,476 / 76,491 | 2,282 | 5,977 | 10,270 / 16,452 | 200 |

| Release and arm | Refused A / D / R | Leaked on all processed A / D / R B |
| --- | ---: | ---: |
| `v0.16.0` `policy-file` | 0 / 0 / 0 | 16,955 / 0 / 9,354 |
| `v0.15.1` `policy-file` | 0 / 0 / 0 | 33,048 / 0 / 9,494 |
| `v0.15.0` `policy-file` | 0 / 0 / 0 | 33,221 / 0 / 9,494 |
| `v0.14.0` `full-stack-kiji-resolve` | 0 / 0 / 0 | 43,553 / 0 / 9,704 |
| `v0.14.0` `pass2-ner` | 0 / 0 / 0 | 44,296 / 0 / 9,730 |
| `v0.16.0` `policy-file` | 0 / 0 / 0 | 17,135 / 0 / 9,894 |
| `v0.15.1` `policy-file` | 0 / 0 / 0 | 33,228 / 0 / 10,034 |
| `v0.15.0` `policy-file` | 0 / 0 / 0 | 33,401 / 0 / 10,034 |
| `v0.14.0` `full-stack-kiji-resolve` | 0 / 0 / 0 | 43,733 / 0 / 10,244 |
| `v0.14.0` `pass2-ner` | 0 / 0 / 0 | 44,476 / 0 / 10,270 |

These are layers A, D and R only, measured by the current harness against each release's own binary. Layer C release headlines above are unchanged. The [committed measurement ledger](agentic-adjacency-v14-history.json) records binary and scorecard SHA-256 digests, arm and manifest semantics. Generator v14, test corpus `1e07150bb9ba…`. Each release uses its own setup policy; v0.15.x `f909a23aecac…`, v0.16.0 `65cd6aa588ce…`; v0.14.0 retains the v0.15.x model settings.
These are layers A, D and R only, measured by the current harness against each release's own binary. Layer C release headlines above are unchanged. The [committed measurement ledger](agentic-adjacency-v15-history.json) records binary and scorecard SHA-256 digests, arm and manifest semantics. Generator v15, test corpus `0a5f6576f2d5…`. Each release uses its own setup policy; v0.15.x `f909a23aecac…`, v0.16.0 `65cd6aa588ce…`; v0.14.0 retains the v0.15.x model settings.

<!-- END GENERATED: agentic-adjacency -->

Expand Down
187 changes: 187 additions & 0 deletions docs/reference/benchmarks/agentic-adjacency-v15-history.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,187 @@
{
"schema_version": 1,
"generator_version": 15,
"corpus_sha256": "0a5f6576f2d5f5c8143628e88ec9d2985197fa3bd74c3823de86f611979c09ba",
"contract_sha256": "c8542632aad9373bc251c8ab10f2eaabd5df01f9f66ba217e914f93a4ffecabb",
"policy_sha256": "f909a23aecacc5695388223be5e71bc1e303c845563396d6658448396a0a9ebe",
"rows": [
{
"version": "v0.16.0",
"arm": "policy-file",
"binary_revision": "5a7dac0fa198f20a628ed6b7fa2b5c9d41a91eb0",
"binary_sha256": "afe7a2000945126cd08363c3dcc5203c1a7a1e89d121bb6c743d98ac0356e2b4",
"scorecard_sha256": "a9253231d33286513d514e3e4251cc59bcbdc1c18f55f5aa7198f2e6243ae971",
"manifest_actions": [
"redact",
"tokenize"
],
"split_composite_source_ids": false,
"layers": {
"A": {
"gold": 76491,
"leaked": 17135,
"false_positive": 1966
},
"D": {
"gold": 0,
"leaked": 0,
"false_positive": 6898
},
"R": {
"gold": 16452,
"leaked": 9894,
"false_positive": 479
}
},
"scorecard_file": "agentic-layers-v15-v0.16.0.json.gz",
"policy_sha256": "65cd6aa588ce6923f9e2156699893fcffb9a870967d9a0db5018deaa0c22c8cc",
"refused": {
"A": 0,
"D": 0,
"R": 0
}
},
{
"version": "v0.15.1",
"arm": "policy-file",
"binary_revision": "4927f7c0a862ece2cdcd8c00df34538a510d008e",
"binary_sha256": "76faf0ab4088f8c1b321522ed651ce05fd8b6191022de586ef3234d99fb49a20",
"scorecard_sha256": "a80b1f0947c03a4dab008f3e1ac1da19e2023f42ddf4ec668c9dea60953a97fb",
"manifest_actions": [
"redact",
"tokenize"
],
"split_composite_source_ids": false,
"layers": {
"A": {
"gold": 76491,
"leaked": 33228,
"false_positive": 2823
},
"D": {
"gold": 0,
"leaked": 0,
"false_positive": 8058
},
"R": {
"gold": 16452,
"leaked": 10034,
"false_positive": 463
}
},
"scorecard_file": "agentic-layers-v15-v0.15.1.json.gz",
"policy_sha256": "f909a23aecacc5695388223be5e71bc1e303c845563396d6658448396a0a9ebe",
"refused": {
"A": 0,
"D": 0,
"R": 0
}
},
{
"version": "v0.15.0",
"arm": "policy-file",
"binary_revision": "5127788b089f0f6f4e3b8bcf176503953744be01",
"binary_sha256": "d3696c1483cdb7fa8066afd7930a06067c124470e5d43fff806d72de34e9ea50",
"scorecard_sha256": "73b6201041c7573520d61802e5de5bb91ec3cc05075a0ad291f688e30e8e6aa1",
"manifest_actions": [
"redact",
"tokenize"
],
"split_composite_source_ids": false,
"layers": {
"A": {
"gold": 76491,
"leaked": 33401,
"false_positive": 2823
},
"D": {
"gold": 0,
"leaked": 0,
"false_positive": 8058
},
"R": {
"gold": 16452,
"leaked": 10034,
"false_positive": 463
}
},
"scorecard_file": "agentic-layers-v15-v0.15.0.json.gz",
"policy_sha256": "f909a23aecacc5695388223be5e71bc1e303c845563396d6658448396a0a9ebe",
"refused": {
"A": 0,
"D": 0,
"R": 0
}
},
{
"version": "v0.14.0",
"arm": "full-stack-kiji-resolve",
"binary_revision": "616e8a10b957961f9f7dcb745610afa978783c3a",
"binary_sha256": "c2de4dd80b59d3df3c12913af7d2e4b037d62194fc54554aeac542a3f6b6473f",
"scorecard_sha256": "940c60fa5d447da7b833ff073060747a2e6991cb23f6318f13d2e438df6355d7",
"manifest_actions": [
"tokenize"
],
"split_composite_source_ids": true,
"layers": {
"A": {
"gold": 76491,
"leaked": 43733,
"false_positive": 10161
},
"D": {
"gold": 0,
"leaked": 0,
"false_positive": 7846
},
"R": {
"gold": 16452,
"leaked": 10244,
"false_positive": 323
}
},
"scorecard_file": "agentic-layers-v15-v0.14.0.json.gz",
"policy_sha256": "f909a23aecacc5695388223be5e71bc1e303c845563396d6658448396a0a9ebe",
"refused": {
"A": 0,
"D": 0,
"R": 0
}
},
{
"version": "v0.14.0",
"arm": "pass2-ner",
"binary_revision": "616e8a10b957961f9f7dcb745610afa978783c3a",
"binary_sha256": "c2de4dd80b59d3df3c12913af7d2e4b037d62194fc54554aeac542a3f6b6473f",
"scorecard_sha256": "940c60fa5d447da7b833ff073060747a2e6991cb23f6318f13d2e438df6355d7",
"manifest_actions": [
"tokenize"
],
"split_composite_source_ids": true,
"layers": {
"A": {
"gold": 76491,
"leaked": 44476,
"false_positive": 2282
},
"D": {
"gold": 0,
"leaked": 0,
"false_positive": 5977
},
"R": {
"gold": 16452,
"leaked": 10270,
"false_positive": 200
}
},
"scorecard_file": "agentic-layers-v15-v0.14.0.json.gz",
"policy_sha256": "f909a23aecacc5695388223be5e71bc1e303c845563396d6658448396a0a9ebe",
"refused": {
"A": 0,
"D": 0,
"R": 0
}
}
]
}
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
2 changes: 1 addition & 1 deletion docs/reference/benchmarks/competitors.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Competitor comparison

Same corpus and scorer; tools run with documented configurations. UTF-8 byte counts use the Gaze scorer. For v4 and v3, FP is the scorer's false-positive count after its audited gold-gap credit. Presidio all runs English, German, Dutch, French, and Portuguese spaCy models with the documented German recognizers. Presidio English default is a secondary row. Latency was not measured under a quiet machine; timing comparisons are withheld. This measures detection; competitor restore and manifest behavior is not scored. The agentic-layer rows were measured on generator v4 (test corpus `387a35ac1551…`, 3,250 documents). The current generator is v14; its added documents are not measured here.
Same corpus and scorer; tools run with documented configurations. UTF-8 byte counts use the Gaze scorer. For v4 and v3, FP is the scorer's false-positive count after its audited gold-gap credit. Presidio all runs English, German, Dutch, French, and Portuguese spaCy models with the documented German recognizers. Presidio English default is a secondary row. Latency was not measured under a quiet machine; timing comparisons are withheld. This measures detection; competitor restore and manifest behavior is not scored. The agentic-layer rows were measured on generator v4 (test corpus `387a35ac1551…`, 3,250 documents). The current generator is v15; its added documents are not measured here.

Leaked and false-positive byte counts are class-agnostic. A skipped document's scored gold counts in full as leaked. Subtract Skipped gold B from Leaked B to get leakage on processed documents. For example, Presidio English-only v4 Synthetic identifiers in agentic formats leaks 34,733 B, including 28,151 B of scored gold from 1,320 skipped non-English documents. The reviewed label map controls repeated-gold credit and the exact typed-span metrics below.

Expand Down
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
33 changes: 33 additions & 0 deletions docs/reference/benchmarks/record-id-scalar-syntax.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
# Record identifier scalar syntax

Generator v15 adds authored CC0 synthetic scalar syntax cases for person-linked
customer, employee and person/contact record identifiers. The cells follow JSON
value semantics and schema-writing traffic, independently of recognizer patterns.
They add 30 A positives, 115 D counterweights and 30 R repeats per partition.

A supplies explicitly labelled six-digit database keys as JSON numbers, alongside
the quoted-string values covered by v14. R repeats each numeric value three times,
including later references without a repeated label. Every occurrence is gold,
and each gold span selects the inserted number in UTF-8 bytes.

D supplies valid JSON fields whose values are bare `null`, `true` or `false`.
These keywords supply no identifier value. A public tool-turn field makes each
scalar document distinct without changing its identifier semantics. Other counterweights quote the schema
label while leaving an ordinary placeholder word unquoted. Quoting the label
alone does not establish an opaque string value. All predicted bytes in these
documents are false positives.

Numeric pools are independently seeded and disjoint between dev and test. Field
vocabulary and template IDs also differ between partitions. Values are invented
locally; no real customer or employee data is used. All earlier generator versions
3–14 remain byte-identical and retain their frozen agentic contracts. The new
syntax cells use the same three scored labels under primary contracts v1–v4;
the primary corpus, contracts and gate-credit exceptions are unchanged.

Known limitations: numeric identifiers still have six digits. Shorter unlabelled
repeats remain unmeasured and below the existing deterministic sweep floor.
Separate positive, repeat and benign coverage is required before changing it.
Generator v15 has no curly or typographic value-quote cases and no cases where
a rejected unquoted placeholder precedes a valid labelled-ID cue. These results
do not establish coverage for either behavior. Independent positive, repeat and
benign counterweight cells for both boundaries are deferred.
Loading
Loading